/* ============================================================
   WC Tour Bookings – foglio di stile UNICO della scheda
   ------------------------------------------------------------
   Sostituisce la vecchia grafica (.wctb-cal-table, .wctb-section,
   .wctb-dp-option, .wctb-counter, .wctb-summary-table) che il
   template non genera più. Non duplicare queste regole inline.
   !important mantenuto per isolare la scheda dal tema/Elementor.
   ============================================================ */

.wctb-cart-form, .wctb-cart-form * { box-sizing:border-box !important; }
.wctb-cart-form [hidden] { display:none !important; }

/* token colore – unica fonte di verità lato CSS.
   Anche .wctb-sticky li usa: vive fuori dal form (in fondo a <body>),
   quindi non li erediterebbe. */
.wctb-cart-form, .wctb-sticky {
    --wctb-navy:#1C2B5E;
    --wctb-blue:#1A6FAD;
    --wctb-blue-soft:#EBF5FF;
    --wctb-text:#2D3748;
    --wctb-muted:#64748B;      /* 4.6:1 su bianco – testo secondario */
    --wctb-faint:#7D8B9E;      /* giorni passati: 3.47:1, restano recessivi ma leggibili */
    --wctb-border:#E2E8F0;
    --wctb-bg-soft:#F8FAFF;
    --wctb-ok:#16A34A;
    --wctb-err:#DC2626;
}

.wctb-cart-form {
    max-width:500px !important;
    margin:0 0 24px !important;
    padding:0 !important;
    background:none !important;
    border:none !important;
}

.wctb-cart-form .wctb-booking-card,
.wctb-cart-form .wctb-booking-card * {
    font-family:'Montserrat','Helvetica Neue',Arial,sans-serif !important;
}

/* Testo solo per screen reader */
.wctb-cart-form .wctb-sr {
    position:absolute !important; width:1px !important; height:1px !important;
    padding:0 !important; margin:-1px !important; overflow:hidden !important;
    clip:rect(0,0,0,0) !important; white-space:nowrap !important; border:0 !important;
}

/* ---- Focus visibile (era disattivato) ---- */
.wctb-cart-form .wctb-booking-card :focus-visible {
    outline:2px solid var(--wctb-blue) !important;
    outline-offset:2px !important;
    border-radius:6px;
}

/* ============================================================
   CARD
   ============================================================ */
.wctb-cart-form .wctb-booking-card {
    border:1.5px solid var(--wctb-border) !important;
    border-radius:16px !important;
    overflow:visible !important;
    box-shadow:0 8px 40px rgba(13,31,69,.10) !important;
    background:#fff !important;
}

.wctb-cart-form .wctb-bk-header {
    background:var(--wctb-navy) !important;
    padding:20px 22px !important;
    /* 14.5 = 16 (card) - 1.5 (bordo): niente filo chiaro negli angoli */
    border-radius:14.5px 14.5px 0 0 !important;
}
.wctb-cart-form .wctb-price-row { display:flex !important; align-items:baseline !important; gap:6px !important; flex-wrap:wrap !important; }
.wctb-cart-form .wctb-price { font-size:32px !important; font-weight:900 !important; color:#fff !important; line-height:1 !important; }
.wctb-cart-form .wctb-price-label { font-size:13px !important; color:rgba(255,255,255,.78) !important; }

.wctb-cart-form .wctb-bk-body { padding:20px 22px !important; }
.wctb-cart-form .wctb-bk-field { margin-bottom:14px !important; }

.wctb-cart-form .wctb-lbl {
    display:block !important; font-size:11px !important; font-weight:700 !important;
    color:var(--wctb-muted) !important; letter-spacing:1.2px !important;
    margin-bottom:6px !important; text-transform:uppercase !important;
}

/* ---- Campo data (vero <button>) ---- */
.wctb-cart-form .wctb-cal-anchor { position:relative !important; }
.wctb-cart-form .wctb-bk-input {
    all:unset !important;
    display:flex !important; align-items:center !important; justify-content:space-between !important; gap:8px !important;
    width:100% !important; height:46px !important;
    border:1.5px solid var(--wctb-border) !important; border-radius:8px !important;
    padding:0 14px !important; font-size:14px !important; color:var(--wctb-navy) !important;
    background:#fff !important; cursor:pointer !important;
    transition:border-color .2s !important; box-sizing:border-box !important;
}
.wctb-cart-form .wctb-bk-input:hover,
.wctb-cart-form .wctb-bk-input[aria-expanded="true"] { border-color:var(--wctb-blue) !important; }
.wctb-cart-form .wctb-bk-input.is-set { border-color:var(--wctb-blue) !important; }
.wctb-cart-form .wctb-df-val { font-size:14px !important; color:var(--wctb-navy) !important; }
.wctb-cart-form .wctb-df-val.is-empty { color:var(--wctb-muted) !important; }
.wctb-cart-form .wctb-bk-input svg { flex-shrink:0 !important; }

/* ---- Select luogo ---- */
.wctb-cart-form .wctb-select-wrap { position:relative !important; }
.wctb-cart-form .wctb-bk-select {
    width:100% !important; height:46px !important;
    border:1.5px solid var(--wctb-border) !important; border-radius:8px !important;
    padding:0 36px 0 14px !important; font-size:14px !important; color:var(--wctb-navy) !important;
    background:#fff !important; appearance:none !important; -webkit-appearance:none !important;
    cursor:pointer !important; transition:border-color .2s !important; margin:0 !important;
}
.wctb-cart-form .wctb-bk-select:hover { border-color:var(--wctb-blue) !important; }
.wctb-cart-form .wctb-select-wrap::after {
    content:'\25BC' !important; position:absolute !important; right:14px !important; top:50% !important;
    transform:translateY(-50%) !important; font-size:10px !important;
    color:var(--wctb-muted) !important; pointer-events:none !important;
}

/* ============================================================
   CALENDARIO
   ============================================================ */
@keyframes wctb-calshow { from{opacity:0;transform:translateY(4px)} to{opacity:1;transform:translateY(0)} }
@keyframes wctb-spin { to{transform:rotate(360deg)} }

.wctb-cart-form .wctb-cal-wrap[hidden] { display:none !important; }
.wctb-cart-form .wctb-cal-popup {
    animation:wctb-calshow .15s ease !important;
    position:absolute !important; top:calc(100% + 4px) !important; left:0 !important; right:0 !important;
    background:#fff !important; border:1.5px solid var(--wctb-border) !important;
    border-radius:10px !important; box-shadow:0 8px 28px rgba(13,31,69,.16) !important;
    z-index:9999 !important; padding:12px 10px !important;
}
/* Se non c'è spazio sotto, il JS aggiunge .is-up */
.wctb-cart-form .wctb-cal-popup.is-up { top:auto !important; bottom:calc(100% + 4px) !important; }

.wctb-cart-form .wctb-cal-nav { display:flex !important; align-items:center !important; justify-content:space-between !important; margin-bottom:10px !important; }
.wctb-cart-form .wctb-cal-nav button {
    all:unset !important;
    display:flex !important; align-items:center !important; justify-content:center !important;
    width:34px !important; height:34px !important;
    border:1.5px solid var(--wctb-border) !important; border-radius:50% !important;
    cursor:pointer !important; font-size:16px !important; color:var(--wctb-muted) !important;
    box-sizing:border-box !important; line-height:1 !important; transition:border-color .15s,color .15s !important;
}
.wctb-cart-form .wctb-cal-nav button:hover { border-color:var(--wctb-blue) !important; color:var(--wctb-blue) !important; }
.wctb-cart-form .wctb-cal-title { font-size:14px !important; font-weight:800 !important; color:var(--wctb-navy) !important; }

.wctb-cart-form .wctb-cal-grid { width:100% !important; border-collapse:collapse !important; table-layout:fixed !important; margin:0 !important; background:none !important; border:none !important; }
.wctb-cart-form .wctb-cal-grid th {
    text-align:center !important; font-size:10px !important; font-weight:700 !important;
    color:var(--wctb-muted) !important; text-transform:uppercase !important; letter-spacing:.8px !important;
    padding:0 0 8px !important; border:none !important; background:none !important;
}
.wctb-cart-form .wctb-cal-grid td { padding:1px !important; border:none !important; background:none !important; text-align:center !important; vertical-align:middle !important; }

/* Cella giorno: rettangolo arrotondato (non cerchio) per far stare
   un prezzo leggibile a 10px invece degli 8px illeggibili di prima. */
.wctb-cart-form .wctb-cal-day {
    all:unset !important;
    display:flex !important; flex-direction:column !important;
    align-items:center !important; justify-content:center !important; gap:1px !important;
    width:100% !important; height:42px !important;
    border-radius:10px !important; box-sizing:border-box !important;
    font-size:13px !important; line-height:1 !important;
    color:var(--wctb-muted) !important; cursor:default !important;
    transition:background .12s,color .12s !important;
}
.wctb-cart-form .wctb-cal-day .wctb-cal-price {
    display:block !important; font-size:10px !important; font-weight:700 !important;
    line-height:1 !important; letter-spacing:-.2px !important; white-space:nowrap !important;
}

/* Passato */
.wctb-cart-form .wctb-cal-day.is-past { color:var(--wctb-faint) !important; text-decoration:line-through !important; }
/* Oggi (senza disponibilità) */
.wctb-cart-form .wctb-cal-day.is-today { color:var(--wctb-err) !important; font-weight:800 !important; box-shadow:inset 0 0 0 1.5px currentColor !important; }
/* Disponibile */
.wctb-cart-form .wctb-cal-day.is-avail { color:var(--wctb-navy) !important; font-weight:800 !important; cursor:pointer !important; }
.wctb-cart-form .wctb-cal-day.is-avail .wctb-cal-price { color:var(--wctb-blue) !important; }
.wctb-cart-form .wctb-cal-day.is-avail:hover { background:var(--wctb-blue-soft) !important; }
/* Selezionato */
.wctb-cart-form .wctb-cal-day.is-sel,
.wctb-cart-form .wctb-cal-day.is-sel:hover { background:var(--wctb-navy) !important; color:#fff !important; }
.wctb-cart-form .wctb-cal-day.is-sel .wctb-cal-price { color:rgba(255,255,255,.85) !important; }

/* Legenda (era sparita nella nuova grafica) */
.wctb-cart-form .wctb-cal-legend {
    display:flex !important; flex-wrap:wrap !important; gap:14px !important;
    margin-top:10px !important; padding-top:10px !important;
    border-top:1px solid var(--wctb-border) !important;
    font-size:11px !important; color:var(--wctb-muted) !important;
}
.wctb-cart-form .wctb-leg { display:inline-flex !important; align-items:center !important; gap:5px !important; }
.wctb-cart-form .wctb-leg i {
    width:12px !important; height:12px !important; border-radius:4px !important;
    display:inline-block !important; flex-shrink:0 !important; font-style:normal !important;
}
.wctb-cart-form .wctb-leg-avail i { background:var(--wctb-blue-soft) !important; box-shadow:inset 0 0 0 1.5px var(--wctb-blue) !important; }
.wctb-cart-form .wctb-leg-sel i   { background:var(--wctb-navy) !important; }
.wctb-cart-form .wctb-leg-off i   { background:#fff !important; box-shadow:inset 0 0 0 1.5px var(--wctb-border) !important; }

/* ============================================================
   PARTECIPANTI
   ============================================================ */
.wctb-cart-form .wctb-pax-group { border:1.5px solid var(--wctb-border) !important; border-radius:8px !important; overflow:hidden !important; }
.wctb-cart-form .wctb-pax-row {
    display:flex !important; align-items:center !important; justify-content:space-between !important; gap:12px !important;
    padding:12px 14px !important; border-bottom:1px solid #EDF2F7 !important;
    background:#fff !important; margin:0 !important;
}
.wctb-cart-form .wctb-pax-row:last-child { border-bottom:none !important; }
.wctb-cart-form .wctb-pax-info strong { display:block !important; font-size:14px !important; font-weight:700 !important; color:var(--wctb-navy) !important; }
.wctb-cart-form .wctb-pax-info span   { font-size:12px !important; color:var(--wctb-muted) !important; }
.wctb-cart-form .wctb-unit { display:block !important; font-size:12px !important; color:var(--wctb-blue) !important; font-weight:600 !important; font-style:normal !important; margin-top:2px !important; }
.wctb-cart-form .wctb-unit:empty { display:none !important; }

.wctb-cart-form .wctb-pax-ctrl { display:flex !important; align-items:center !important; gap:10px !important; flex-shrink:0 !important; }
.wctb-cart-form .wctb-pax-btn {
    all:unset !important;
    display:flex !important; align-items:center !important; justify-content:center !important;
    width:40px !important; height:40px !important;
    border:1.5px solid var(--wctb-border) !important; border-radius:50% !important;
    background:var(--wctb-bg-soft) !important;
    font-size:20px !important; font-weight:400 !important; color:var(--wctb-navy) !important;
    cursor:pointer !important; box-sizing:border-box !important; line-height:1 !important;
    flex-shrink:0 !important; transition:border-color .15s,background .15s,color .15s !important;
}
.wctb-cart-form .wctb-pax-btn:hover:not([disabled]) { border-color:var(--wctb-blue) !important; color:var(--wctb-blue) !important; background:var(--wctb-blue-soft) !important; }
.wctb-cart-form .wctb-pax-btn[disabled] { opacity:.4 !important; cursor:not-allowed !important; }
.wctb-cart-form .wctb-pax-num { min-width:26px !important; text-align:center !important; font-size:16px !important; font-weight:700 !important; color:var(--wctb-navy) !important; }

/* ============================================================
   RIEPILOGO
   ============================================================ */
.wctb-cart-form .wctb-summary { background:var(--wctb-bg-soft) !important; border-radius:8px !important; padding:14px !important; margin-bottom:16px !important; }
.wctb-cart-form .wctb-sum-row { display:flex !important; align-items:center !important; justify-content:space-between !important; gap:10px !important; font-size:13px !important; color:var(--wctb-text) !important; margin-bottom:8px !important; }
.wctb-cart-form .wctb-sum-row:last-child { margin-bottom:0 !important; }
.wctb-cart-form .wctb-sum-tot { font-weight:800 !important; color:var(--wctb-navy) !important; font-size:15px !important; padding-top:10px !important; border-top:1px solid var(--wctb-border) !important; }
.wctb-cart-form .wctb-sum-empty { font-size:13px !important; color:var(--wctb-muted) !important; text-align:center !important; margin:0 !important; }

/* ============================================================
   PULSANTE
   ============================================================ */
.wctb-cart-form .wctb-btn-book {
    width:100% !important; padding:16px !important; border:none !important;
    font-weight:800 !important; font-size:13px !important; letter-spacing:1.4px !important;
    cursor:pointer !important; display:flex !important; align-items:center !important;
    justify-content:center !important; gap:8px !important; text-transform:uppercase !important;
    transition:filter .2s,transform .15s !important; margin:0 !important;
}
.wctb-cart-form .wctb-btn-book:hover:not([disabled]) { filter:brightness(.92) !important; transform:translateY(-1px) !important; }
.wctb-cart-form .wctb-btn-book[disabled] { opacity:.7 !important; cursor:progress !important; transform:none !important; }
.wctb-cart-form .wctb-btn-book svg, .wctb-cart-form .wctb-btn-book img { flex-shrink:0 !important; }
/* :not([hidden]) e' necessario: senza, questa regola ha la stessa specificita'
   di ".wctb-cart-form [hidden]" e vincendo per ordine terrebbe lo spinner
   sempre visibile accanto all'etichetta del pulsante. */
.wctb-cart-form .wctb-atc-lbl:not([hidden]),
.wctb-cart-form .wctb-atc-spn:not([hidden]) { display:inline-flex !important; align-items:center !important; gap:8px !important; }
.wctb-cart-form .wctb-spin { animation:wctb-spin 1s linear infinite !important; }

/* ---- Garanzie ---- */
.wctb-cart-form .wctb-guarantee { padding-top:14px !important; border-top:1px solid var(--wctb-border) !important; margin-top:14px !important; display:flex !important; flex-direction:column !important; gap:8px !important; }
.wctb-cart-form .wctb-g-item { display:flex !important; align-items:center !important; gap:8px !important; font-size:12px !important; color:var(--wctb-text) !important; }
.wctb-cart-form .wctb-g-item svg { flex-shrink:0 !important; }

/* ---- Errori ---- */
.wctb-cart-form .wctb-err {
    padding:10px 14px !important; background:#FEF2F2 !important;
    border:1px solid #FCA5A5 !important; border-radius:8px !important;
    color:var(--wctb-err) !important; font-size:13px !important; font-weight:600 !important;
    margin-top:8px !important;
}
.wctb-cart-form .wctb-err[hidden] { display:none !important; }

/* ============================================================
   BARRA STICKY MOBILE
   Vive in fondo a <body>, non dentro il form: un antenato con
   transform/filter (Elementor lo fa spesso) romperebbe position:fixed.
   Nascosta di default: la mostra solo la media query mobile,
   e solo quando il JS aggiunge .is-on (scheda fuori dallo schermo).
   ============================================================ */
.wctb-sticky {
    position:fixed !important; left:0 !important; right:0 !important; bottom:0 !important;
    z-index:99998 !important;
    display:none;
    align-items:center !important; justify-content:space-between !important; gap:14px !important;
    margin:0 !important;
    padding:10px 14px !important;
    padding-bottom:calc(10px + env(safe-area-inset-bottom, 0px)) !important;
    background:#fff !important;
    border-top:1px solid var(--wctb-border) !important;
    box-shadow:0 -4px 20px rgba(13,31,69,.14) !important;
    font-family:'Montserrat','Helvetica Neue',Arial,sans-serif !important;
    /* visibility, non display: consente la transizione e toglie
       comunque il pulsante dall'ordine di tabulazione quando e' fuori */
    transform:translateY(110%) !important;
    visibility:hidden !important;
    transition:transform .25s ease, visibility .25s ease !important;
}
.wctb-sticky.is-on { transform:translateY(0) !important; visibility:visible !important; }

@media (max-width:768px) { .wctb-sticky { display:flex !important; } }

.wctb-sticky-price { display:flex !important; flex-direction:column !important; gap:1px !important; min-width:0 !important; line-height:1.15 !important; }
.wctb-sticky-lbl {
    font-size:10px !important; font-weight:700 !important; text-transform:uppercase !important;
    letter-spacing:.8px !important; color:var(--wctb-muted) !important;
}
.wctb-sticky-val { font-size:19px !important; font-weight:900 !important; color:var(--wctb-navy) !important; white-space:nowrap !important; }

/* niente background/color qui: arrivano inline dalle impostazioni del pulsante */
.wctb-sticky-btn {
    display:flex !important; align-items:center !important; justify-content:center !important;
    border:none !important; margin:0 !important; padding:0 18px !important;
    min-height:46px !important; flex-shrink:0 !important;
    font-family:inherit !important; font-size:13px !important; font-weight:800 !important;
    letter-spacing:.8px !important; text-transform:uppercase !important;
    cursor:pointer !important; box-sizing:border-box !important;
    transition:filter .2s !important;
}
.wctb-sticky-btn:hover { filter:brightness(.92) !important; }
.wctb-sticky-btn:focus-visible { outline:2px solid var(--wctb-blue) !important; outline-offset:2px !important; }

@media (max-width:360px) {
    .wctb-sticky-btn { padding:0 12px !important; font-size:12px !important; }
    .wctb-sticky-val { font-size:17px !important; }
}
@media (prefers-reduced-motion:reduce) { .wctb-sticky { transition:none !important; } }

/* ============================================================
   MOBILE
   ============================================================ */
@media (max-width:480px) {
    .wctb-cart-form .wctb-bk-body   { padding:16px !important; }
    .wctb-cart-form .wctb-bk-header { padding:16px !important; }
    .wctb-cart-form .wctb-price     { font-size:28px !important; }
    .wctb-cart-form .wctb-cal-popup { padding:10px 8px !important; }
    .wctb-cart-form .wctb-cal-day   { height:40px !important; }
    .wctb-cart-form .wctb-pax-row   { padding:12px 12px !important; }
}

@media (prefers-reduced-motion:reduce) {
    .wctb-cart-form .wctb-cal-popup { animation:none !important; }
    .wctb-cart-form .wctb-btn-book:hover { transform:none !important; }
    .wctb-cart-form * { transition:none !important; }
}
