.zbr{max-width:1100px;margin:18px auto 0;font-family:var(--zp-font,system-ui,-apple-system,Segoe UI,Roboto,sans-serif)}
.zbr-head{font-size:14px;color:var(--zp-text-soft,#5a6478);margin:6px 0 14px}
#zbr-list{display:flex;flex-direction:column;gap:14px}
.zbr-card{display:flex;gap:0;border:1px solid var(--zp-border,#e2e6ed);border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 1px 6px rgba(0,0,0,.05)}
.zbr-photos{position:relative;flex:0 0 240px;min-height:170px;background:#eef1f5;overflow:hidden}
.zbr-slide{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .25s}
.zbr-slide.on{opacity:1}
.zbr-noimg{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#9aa3b2}
.zbr-noimg span{font-size:34px}
.zbr-noimg small{font-size:11px;margin-top:4px}
/* La foto è dentro un pulsante (la tastiera deve poterla ingrandire): il
   pulsante non si vede, si vede la foto. */
.zbr-zoom{position:absolute;inset:0;width:100%;height:100%;padding:0;border:0;background:none;cursor:zoom-in;display:block}
.zbr-nav{position:absolute;top:50%;transform:translateY(-50%);width:30px;height:30px;border-radius:50%;border:0;background:rgba(255,255,255,.85);cursor:pointer;font-size:18px;line-height:1;z-index:2}
.zbr-prev{left:8px}.zbr-next{right:8px}
.zbr-body{flex:1;min-width:0;padding:14px 16px}
.zbr-name{font-size:19px;font-weight:800;color:var(--zp-text,#1c2032);margin-bottom:8px}
.zbr-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.zbr-chip{font-size:12px;color:#46526c;background:#f1f4f8;border:1px solid var(--zp-border,#e2e6ed);border-radius:6px;padding:3px 8px}
.zbr-board{display:flex;flex-direction:column;gap:6px;font-size:14px;color:var(--zp-text,#1c2032)}
.zbr-board label{display:flex;align-items:center;gap:8px;cursor:pointer}
.zbr-incl{color:#1b7c44;font-weight:600}
.zbr-buy{flex:0 0 200px;border-left:1px solid #eef1f5;padding:14px 16px;display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:4px;text-align:right}
.zbr-canc{font-size:11px;font-weight:700}
.zbr-free{color:#1b7c44}.zbr-nonref{color:#b26a00}
.zbr-price{font-size:26px;font-weight:800;color:var(--zp-accent,#1c2840)}
.zbr-pn{font-size:11px;color:var(--zp-muted,#5c7794)}
.zbr-book{margin-top:6px;border:0;border-radius:8px;background:var(--zp-accent,#1c2840);color:#fff;font-weight:700;padding:11px 22px;cursor:pointer}
.zbr-book:hover{filter:brightness(1.12)}
@media(max-width:680px){.zbr-card{flex-direction:column}.zbr-photos{flex-basis:180px}.zbr-buy{flex-basis:auto;border-left:0;border-top:1px solid #eef1f5;align-items:stretch;text-align:center}}
/* Date alternative + sezione calendario */
.zbr-alts{margin-top:12px}
.zbr-alts-t{font-size:13px;color:var(--zp-text-soft,#5a6478);margin-bottom:8px;font-weight:600}
.zbr-alt{display:inline-block;margin:0 8px 8px 0;border:1px solid var(--zp-accent,#1c2840);background:#fff;color:var(--zp-accent,#1c2840);border-radius:8px;padding:9px 14px;font-weight:700;cursor:pointer;font-size:13px}
.zbr-alt:hover{background:var(--zp-accent,#1c2840);color:#fff}
#zbr-calsec{margin-top:22px;border-top:1px solid var(--zp-border,#e2e6ed);padding-top:14px}
.zbr-cal-t{font-size:14px;font-weight:700;color:var(--zp-text,#1c2032);margin-bottom:10px}
/* Tipologie non disponibili (grigie) */
.zbr-off{opacity:.62;filter:grayscale(.4)}
.zbr-off .zbr-photos{filter:grayscale(1)}
.zbr-offmsg{font-size:13px;font-weight:700;color:#b85c50;text-align:right}
/* Checkout (Fase 2) */
.zbk{max-width:620px;margin:0 auto}
.zbk-back{background:none;border:0;color:var(--zp-accent,#1c2840);font-weight:700;cursor:pointer;padding:4px 0;font-size:14px}
.zbk-sum{background:var(--zp-bg-soft,#f5f6f8);border:1px solid var(--zp-border,#e2e6ed);border-radius:12px;padding:14px 16px;margin:8px 0 16px}
.zbk-sum-room{font-size:18px;font-weight:800;color:var(--zp-text,#1c2032)}
.zbk-sum-row{font-size:13px;color:var(--zp-text-soft,#5a6478);margin-top:3px}
.zbk-sum-tot{margin-top:8px;font-size:15px;color:var(--zp-text,#1c2032)}.zbk-sum-tot b{font-size:22px;color:var(--zp-accent,#1c2840)}
.zbk-form{display:flex;flex-direction:column;gap:12px}
.zbk-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.zbk-f{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--zp-text-soft,#5a6478)}
.zbk-f input,.zbk-f textarea{border:1px solid #d0d6e4;border-radius:8px;padding:10px;font-size:14px;font-family:inherit}
.zbk-consent{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:#46526c}
.zbk-msg{color:#b85c50;font-size:13px;font-weight:600;min-height:1px}
.zbk-nota{font-size:12px;color:var(--zp-text-soft,#5a6478)}
.zbk-promo-lb{font-size:12px;color:var(--zp-text-soft,#5a6478);flex:0 0 100%}
/* Dove si trova la tastiera si deve vedere, e solo a chi naviga così. */
.zbr :focus-visible,.zbk :focus-visible,.zbr-card :focus-visible{
  outline:3px solid var(--zp-accent,#1c2840);outline-offset:2px;border-radius:6px}
/* !important: i temi WordPress sovrascrivono i button generici con specificità alta */
.zbr .zbk-go,.zbk-go{border:0!important;border-radius:8px;background:var(--zp-accent,#1c2840)!important;color:var(--zp-accent-contrast,#fff)!important;font-weight:700;padding:13px;cursor:pointer;font-size:15px;opacity:1;transition:opacity .15s}
.zbr .zbk-go:disabled,.zbk-go:disabled{opacity:.35!important;cursor:default}
.zbk-done{max-width:520px;margin:10px auto;text-align:center;background:#fff;border:1px solid var(--zp-border,#e2e6ed);border-radius:14px;padding:28px}
.zbk-check{width:56px;height:56px;border-radius:50%;background:#dff3e6;color:#1b7c44;font-size:30px;line-height:56px;margin:0 auto 10px}
.zbk-done h3{margin:0 0 6px;color:var(--zp-text,#1c2032)}
.zbk-code{font-size:15px;color:var(--zp-text-soft,#5a6478);margin-bottom:10px}.zbk-code b{color:var(--zp-accent,#1c2840);font-size:18px;letter-spacing:.05em}
.zbk-done-row{font-size:14px;color:#46526c;margin-top:3px}
.zbk-done-note{margin-top:14px;font-size:13px;color:var(--zp-text-soft,#5a6478)}
/* Promemoria del codice prenotazione: separato dalla nota, così resta leggibile
   anche se l'ospite fa uno screenshot solo della parte finale */
.zbk-done-keep{margin-top:12px;padding-top:12px;border-top:1px solid var(--zp-border,#e2e6ed);font-size:12px;color:var(--zp-text-soft,#5a6478)}
.zbk-done-keep b{color:var(--zp-accent,#1c2840);letter-spacing:.05em}
@media(max-width:560px){.zbk-grid{grid-template-columns:1fr}}
/* Selettore tariffa (flessibile / non rimborsabile) */
.zbr-rate{display:flex;flex-wrap:wrap;gap:14px;margin-top:8px;font-size:13px;color:var(--zp-text,#1c2032)}
.zbr-rate label{display:flex;align-items:center;gap:6px;cursor:pointer}

/* ── Codice sconto ────────────────────────────────────────────────
   Il campo resta CHIUSO dietro un link: un riquadro aperto e vuoto dice a
   ogni visitatore che esiste uno sconto che lui non ha, e fa abbandonare
   il carrello. Chi ha ricevuto la campagna il link lo cerca. */
.zbk-promo{margin:12px 0 4px}
.zbk-promo-link{background:none;border:none;padding:0;cursor:pointer;font:inherit;
  font-size:13px;color:var(--zp-accent,#0b63ce);text-decoration:underline;text-underline-offset:2px}
.zbk-promo-box{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.zbk-promo-box input{flex:1 1 150px;min-width:130px;padding:9px 11px;font:inherit;font-size:14px;
  border:1px solid var(--zp-border,#d0d6e4);border-radius:var(--zp-radius,8px);
  text-transform:uppercase;background:#fff;color:var(--zp-text,#10233a)}
.zbk-promo-go{flex:0 0 auto;padding:9px 16px;font:inherit;font-size:14px;font-weight:600;cursor:pointer;
  border:1px solid var(--zp-accent,#0b63ce);border-radius:var(--zp-radius,8px);
  background:#fff;color:var(--zp-accent,#0b63ce)}
.zbk-promo-go:disabled{opacity:.55;cursor:default}
.zbk-promo-msg{font-size:12px;margin-top:6px;min-height:16px;color:var(--zp-text-soft,#44607f)}
.zbk-promo-msg.err{color:#c22c2c}
.zbk-promo-msg.ok{color:#146a3a}
/* Riga sconto nel riepilogo: l'ospite deve vedere quanto risparmia, non solo
   un totale piu' basso che non sa spiegarsi. */
.zbk-disc{display:flex;align-items:center;gap:8px;margin-top:8px;font-size:14px;color:#146a3a;font-weight:600}
.zbk-disc b{font-weight:700}
.zbk-promo-rm{background:none;border:none;cursor:pointer;color:var(--zp-muted,#5c7794);
  font-size:14px;line-height:1;padding:2px 4px}

/* ── Il CARRELLO ─────────────────────────────────────────────────────────
   Sta in cima all'elenco e non in fondo: chi aggiunge una camera deve vedere
   subito che è entrata, e su un telefono il fondo pagina è lontano quanto un
   altro sito. Resta appiccicato in alto mentre si scorre, perché il totale è
   l'unica cosa che si guarda mentre si sceglie. */
.zbr-cart{
  position:sticky; top:8px; z-index:20;
  border:1px solid #d7dbe3; border-radius:12px; background:#fff;
  padding:12px 14px; margin:0 0 16px; box-shadow:0 4px 18px rgba(20,30,60,.08);
}
.zbr-cart-vuoto{ color:#77808f; font-size:13px; text-align:center; box-shadow:none; }
.zbr-cart-err{ border-color:#e0a0a0; background:#fdf5f5; color:#a03030; font-size:13px; }
.zbr-cart-t{ font-weight:700; font-size:13px; margin-bottom:8px; }
.zbr-cart-r{ display:flex; justify-content:space-between; gap:10px; padding:4px 0; font-size:14px; }
.zbr-cart-r small{ color:#77808f; }
.zbr-cart-p{ white-space:nowrap; font-variant-numeric:tabular-nums; }
.zbr-cart-x{
  border:0; background:none; color:#a8b0bd; cursor:pointer; font-size:13px;
  padding:0 2px; line-height:1;
}
.zbr-cart-x:hover{ color:#c0392b; }
.zbr-cart-opt{ display:flex; align-items:center; gap:6px; font-size:13px; padding:3px 0; cursor:pointer; }
.zbr-cart-nota{ font-size:12px; color:#8a6d2b; background:#fdf6e3; border-radius:6px; padding:5px 8px; margin-top:6px; }
.zbr-cart-tot{
  display:flex; justify-content:space-between; align-items:baseline;
  margin-top:8px; padding-top:8px; border-top:1px solid #eceef2; font-size:15px;
}
.zbr-cart-tot b{ font-size:20px; }
.zbr-cart-go{
  width:100%; margin-top:10px; padding:11px; border:0; border-radius:9px;
  background:#1b7c44; color:#fff; font-weight:700; font-size:15px; cursor:pointer;
}
.zbr-cart-go:hover{ filter:brightness(1.06); }

/* Le persone di QUESTA camera: si scelgono prima di aggiungerla, perche' una
   Standard per uno e una per due non costano uguale. */
.zbr-occ{ display:flex; gap:8px; margin:8px 0 6px; }
.zbr-occ-f{ display:flex; flex-direction:column; gap:2px; font-size:11px; color:#77808f; flex:1; }
.zbr-occ-f select{
  padding:5px 6px; border:1px solid #d7dbe3; border-radius:7px;
  font-size:14px; background:#fff;
}
