/*
Theme Name: Tavolata degli Sconosciuti
Description: Tema custom del portale Tavolata degli Sconosciuti. Presentazione sopra WooCommerce + woosdl-ticketing.
Author: Davide Pantè / SODO Design
Version: 1.0.0
Text Domain: tavolata
*/

/* ════════════════════════════════════════════════════════════════════════
   VIVOEVENTI — portale di prenotazione eventi
   Marketplace nazionale chiaro e d'impatto: corpo pagina bianco, hero e
   footer in navy profondo, blu brand protagonista, un colore per categoria.
   Display sans Bricolage Grotesque + Sora. Ambra SOLO su prezzi e promo.
   ════════════════════════════════════════════════════════════════════════ */

/* ============ TOKEN ============ */
:root{
  /* superfici chiare */
  --bianco:#FFFAF1;
  --crema:#F7F1E6;            /* sezioni alternate           */
  --bordo:#E6DAC5;
  --bordo-forte:#CDBCA0;

  /* testo su chiaro */
  --ink:#2B2118;
  --ink-soft:#6F6354;
  --ink-tenue:#9A8B79;

  /* il palco (hero, footer) */
  --espresso:#161210;
  --espresso-2:#221A13;
  --su-scuro:#F4ECDD;
  --su-scuro-soft:rgb(244 236 221/.72);
  --filetto-scuro:rgb(244 236 221/.16);

  /* brand e luci */
  --vino:#9C4038;
  --vino-hover:#B14E45;
  --vino-bg:#F3E2DC;
  --ambra:#E0A458;           /* SOLO prezzi / promo          */
  --verde:#417B52;
  --rosso:#C2453C;

  /* accenti categoria */
  --f-accent:var(--vino); --f-bg:var(--vino-bg);

  /* tipografia */
  --font-display:"Fraunces",serif;
  --font-ui:"Hanken Grotesk",sans-serif;

  --radius:18px;
  --ombra:0 2px 6px rgb(43 33 24/.05),0 14px 34px rgb(43 33 24/.08);
  --ombra-su:0 8px 16px rgb(43 33 24/.08),0 24px 54px rgb(43 33 24/.14);
  --t:200ms cubic-bezier(.4,0,.2,1);
  --header-h:74px;
}
.formato-tavolata{--f-accent:var(--vino);--f-bg:var(--vino-bg)}



/* ============ RESET & BASE ============ */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  font-family:var(--font-ui);
  font-size:1rem;line-height:1.65;
  color:var(--ink);
  background:var(--bianco);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img,svg,video{display:block;max-width:100%}
a{color:var(--vino);text-decoration:none;transition:color var(--t)}
a:hover{color:var(--vino-hover)}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:none}
ul{list-style:none}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:700;line-height:1.06;letter-spacing:0;color:var(--ink)}
:focus-visible{outline:2px solid var(--vino);outline-offset:3px;border-radius:4px}
::selection{background:var(--vino);color:#fff}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.container{max-width:1240px;margin-inline:auto;padding-inline:28px}
section{scroll-margin-top:calc(var(--header-h) + 12px)}

/* ============ UTILITY ============ */
.eyebrow{
  font-family:var(--font-ui);font-size:.8rem;font-weight:700;
  letter-spacing:.02em;color:var(--vino);
  display:inline-flex;align-items:center;gap:8px;
}
.eyebrow::before{content:"";width:8px;height:8px;border-radius:3px;background:var(--vino)}

/* ============ BOTTONI ============ */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55em;
  font-family:var(--font-ui);font-weight:600;font-size:.95rem;line-height:1;
  padding:.95em 1.7em;border-radius:999px;border:1px solid transparent;
  cursor:pointer;transition:transform var(--t),box-shadow var(--t),background var(--t),color var(--t),border-color var(--t);
  text-decoration:none;white-space:nowrap;
}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
.btn-primario,.btn-acquista{background:var(--vino);color:#fff}
.btn-primario:hover,.btn-acquista:hover{background:var(--vino-hover);color:#fff;box-shadow:0 12px 30px rgb(156 64 56/.35)}
.btn-fantasma{background:transparent;color:var(--ink);border-color:var(--bordo-forte)}
.btn-fantasma:hover{border-color:var(--ink);color:var(--ink)}
.su-scuro .btn-fantasma,.site-footer .btn-fantasma{color:var(--su-scuro);border-color:var(--filetto-scuro)}
.su-scuro .btn-fantasma:hover{border-color:var(--su-scuro);color:#fff}
.btn-sm{font-size:.85rem;padding:.7em 1.3em}
.btn-lg{font-size:1rem;padding:1.05em 2.1em}
.btn-block{width:100%}

/* ============ BADGE, PREZZI, TIMBRI ============ */
/* badge categoria: UNIFORME per tutte (bianco carta + inchiostro) */
.badge-formato{
  display:inline-flex;align-items:center;
  font-size:.72rem;font-weight:700;letter-spacing:.01em;
  color:var(--ink);background:rgb(255 255 255/.94);
  padding:.45em .9em;border-radius:999px;
  box-shadow:0 2px 10px rgb(43 33 24/.18);
}
.prezzo-chip{ /* ambra: solo prezzo */
  font-weight:700;color:var(--ink);
  background:var(--ambra);border-radius:8px;padding:.2em .55em;
}
.timbro{
  display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.02em;
  color:#fff;background:var(--rosso);border-radius:999px;padding:.45em .9em;
}
.timbro-rosso{background:var(--rosso)}
.timbro-verde{background:var(--verde)}
.timbro-grigio{background:#525B70}

/* ============ REVEAL ============ */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s ease}
.reveal.is-visible{opacity:1;transform:none}
.reveal-1{transition-delay:.07s}.reveal-2{transition-delay:.14s}
.reveal-3{transition-delay:.21s}.reveal-4{transition-delay:.28s}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

/* ════════════════════════ HEADER ════════════════════════ */
.site-header{
  position:fixed;inset-inline:0;top:0;z-index:60;height:var(--header-h);
  display:flex;align-items:center;
  transition:background var(--t),border-color var(--t),box-shadow var(--t);
  border-bottom:1px solid transparent;
}
.site-header.is-scrolled{
  background:rgb(255 255 255/.92);backdrop-filter:blur(14px);
  border-bottom-color:var(--bordo);box-shadow:0 2px 20px rgb(43 33 24/.06);
}
.header-inner{display:flex;align-items:center;gap:34px;width:100%}
.brand{display:inline-flex;flex:0 0 auto}
.brand-logo{height:38px;width:auto}
.brand-logo-blu{display:none}
.site-header.is-scrolled .brand-logo-chiaro{display:none}
.site-header.is-scrolled .brand-logo-blu{display:block}
.main-nav{display:flex;align-items:center;gap:28px;margin-inline:auto}
.main-nav a{
  font-size:.92rem;font-weight:500;color:var(--su-scuro-soft);
  padding:.4em 0;transition:color var(--t);
}
.main-nav a:hover{color:#fff}
.site-header.is-scrolled .main-nav a{color:var(--ink-soft)}
.site-header.is-scrolled .main-nav a:hover{color:var(--ink)}
.header-azioni{display:flex;align-items:center;gap:12px;flex:0 0 auto}
.header-azioni .btn-fantasma{color:var(--su-scuro);border-color:rgb(244 236 221/.35)}
.header-azioni .btn-fantasma:hover{border-color:#fff;color:#fff}
.site-header.is-scrolled .header-azioni .btn-fantasma{color:var(--ink);border-color:var(--bordo-forte)}
.site-header.is-scrolled .header-azioni .btn-fantasma:hover{border-color:var(--ink)}

/* mini-ricerca a scroll */
.header-cerca{
  display:none;align-items:center;gap:8px;
  background:var(--crema);border:1px solid var(--bordo);
  border-radius:999px;padding:5px 6px 5px 16px;
}
.site-header.is-scrolled .header-cerca{display:flex}
.header-cerca input[type=search]{
  appearance:none;background:transparent;border:0;color:var(--ink);
  font-size:.85rem;width:170px;
}
.header-cerca input::placeholder{color:var(--ink-tenue)}
.header-cerca input::-webkit-search-cancel-button{display:none}
.header-cerca button{
  border:0;background:var(--vino);color:#fff;border-radius:999px;
  width:30px;height:30px;display:grid;place-items:center;cursor:pointer;
  transition:background var(--t);
}
.header-cerca button:hover{background:var(--vino-hover)}

/* burger */
.nav-toggle{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;padding:10px;border-radius:8px}
.nav-toggle span{display:block;height:2px;background:var(--su-scuro);border-radius:2px;transition:transform var(--t),opacity var(--t)}
.site-header.is-scrolled .nav-toggle span{background:var(--ink)}
/* burger → X quando aperto */
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.nav-accedi{display:none} /* visibile solo nel menu mobile */

/* ════════════════════════ HERO ════════════════════════ */
.hero-palco{
  position:relative;min-height:min(88svh,760px);
  display:flex;align-items:center;
  padding:calc(var(--header-h) + 46px) 0 120px;
  overflow:hidden;isolation:isolate;color:var(--su-scuro);
}
/* slideshow in dissolvenza */
.hero-slideshow{position:absolute;inset:0;z-index:-2}
.hero-slideshow img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 35%;
  opacity:0;transition:opacity 1.4s ease;
}
.hero-slideshow img.is-attiva{opacity:1}
/* overlay più leggero: le foto devono respirare */
.hero-palco::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(180deg,rgb(22 18 16/.6) 0%,rgb(22 18 16/.28) 45%,rgb(22 18 16/.68) 100%),
    radial-gradient(ellipse 110% 100% at 50% 110%,rgb(22 18 16/.5),transparent 60%);
}
.hero-inner{position:relative;width:100%;min-width:0;max-width:880px;margin-inline:auto;display:flex;flex-direction:column;align-items:center;text-align:center;gap:22px}
.hero-titolo{
  font-size:clamp(2.7rem,6vw,4.6rem);font-weight:700;color:#fff;
  letter-spacing:0;text-wrap:balance;
  text-shadow:0 4px 40px rgb(0 0 0/.55);
}
.hero-sub{font-size:clamp(1rem,1.5vw,1.15rem);max-width:56ch;color:#E3E8F4;text-shadow:0 2px 18px rgb(0 0 0/.6)}

/* barra di ricerca */
.hero-cerca{
  display:flex;align-items:stretch;gap:8px;width:min(720px,100%);
  background:#fff;border-radius:18px;padding:8px;
  box-shadow:0 24px 60px rgb(25 15 8/.45);
}
.hero-cerca-campo{position:relative;flex:1;display:flex;flex-direction:column;justify-content:center;padding:6px 14px 8px 46px;text-align:left;border-right:1px solid var(--bordo)}
.hero-cerca-campo:last-of-type{border-right:0}
.hero-cerca-label{font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-tenue)}
.hero-cerca-pin{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--vino);display:grid;place-items:center}
.hero-cerca-select{
  appearance:none;background:transparent;border:0;width:100%;
  font-size:1.02rem;font-weight:600;color:var(--ink);
  padding:2px 0;cursor:pointer;
}
.hero-cerca-btn{border-radius:12px}

.hero-chips{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:10px}
.hero-chips-label{font-size:.8rem;color:var(--su-scuro-soft);margin-right:2px}
.hero-chip{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.86rem;font-weight:600;color:var(--su-scuro);
  background:rgb(244 236 221/.1);border:1px solid rgb(244 236 221/.22);
  border-radius:999px;padding:.5em 1em;backdrop-filter:blur(6px);
  transition:background var(--t),border-color var(--t);
}
.hero-chip:hover{background:rgb(244 236 221/.2);border-color:rgb(244 236 221/.5);color:#fff}
.hero-chip-num{font-size:.74rem;font-weight:700;color:var(--espresso);background:#fff;border-radius:999px;min-width:1.7em;height:1.7em;display:inline-grid;place-items:center}

/* strip fiducia (chiara, subito sotto l'hero) */
.strip-fiducia{background:var(--bianco);border-bottom:1px solid var(--bordo)}
.strip-fiducia-inner{
  display:flex;flex-wrap:wrap;justify-content:center;gap:12px 54px;
  padding:20px 28px;font-size:.88rem;color:var(--ink-soft);
}
.strip-fiducia-inner span{display:inline-flex;align-items:center;gap:9px}
.strip-fiducia-inner strong{color:var(--ink);font-weight:700}
.strip-fiducia-inner svg{color:var(--vino);flex:0 0 auto}

/* ════════════════════════ SEZIONI ════════════════════════ */
.sezione{padding:96px 0}
.sezione--crema{background:var(--crema)}
.sez-testa{display:flex;align-items:flex-end;justify-content:space-between;gap:26px;margin-bottom:44px}
.sez-testa-testi{display:flex;flex-direction:column;gap:12px;max-width:640px}
.titolo-sezione{font-size:clamp(1.8rem,3.4vw,2.6rem);letter-spacing:0}
.sez-testa-sub{color:var(--ink-soft);font-size:1.02rem}
.sez-testa .btn{flex:0 0 auto}

/* ════════════════ CARD EVENTO (marketplace) ════════════════ */
.griglia-eventi{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:28px 24px;
}
.sez-azione{display:flex;justify-content:center;margin-top:44px}
/* caroselli: griglia su desktop, Swiper su mobile */
.swiper-mobile{overflow:visible}
.swiper-mobile .swiper-slide{height:auto;display:flex}
.swiper-mobile .swiper-slide > *{flex:1;display:flex}
.swiper-mobile .swiper-slide .event-card-link{flex:1}
.formati-swiper .swiper-slide .formato-card{flex:1}
@media (max-width:760px){
  /* spazio interno per le ombre delle card (l'overflow dello swiper non le taglia più) */
  .swiper-mobile{overflow:hidden;margin:-10px -20px -36px;padding:10px 20px 36px}
  .swiper-mobile .swiper-wrapper{display:flex;gap:0}
  .swiper-mobile .swiper-wrapper.recensioni{max-width:none;margin:0}
  /* badge più discreti sulle foto piccole */
  .event-card-media .badge-formato,.event-card-media .timbro{font-size:.6rem;padding:.38em .68em}
  .event-card-media .badge-formato{top:10px;left:10px}
  .event-card-media .timbro{top:10px;right:10px}
  .data-badge{width:44px;height:48px;border-radius:10px;left:10px;bottom:10px}
  .data-badge-giorno{font-size:1.05rem}
  .data-badge-mese{font-size:.52rem}
}
.event-card{position:relative}
.event-card-link{display:flex;flex-direction:column;height:100%;color:inherit}
.event-card-int{
  position:relative;display:flex;flex-direction:column;height:100%;
  background:var(--bianco);border:1px solid var(--bordo);
  border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--ombra);
  transition:transform var(--t),box-shadow var(--t),border-color var(--t);
}
.event-card-link:hover .event-card-int{transform:translateY(-6px);box-shadow:var(--ombra-su);border-color:var(--bordo-forte)}
.event-card-media{position:relative;aspect-ratio:16/10;overflow:hidden}
.event-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .55s ease}
.event-card-link:hover .event-card-media img{transform:scale(1.05)}
.event-card-media .badge-formato{position:absolute;top:14px;left:14px;z-index:2;box-shadow:0 2px 10px rgb(43 33 24/.18)}
.event-card-media .timbro{position:absolute;top:14px;right:14px;z-index:2}
/* riquadro data "beige" — interamente DENTRO la foto (niente tagli) */
.data-badge{
  position:absolute;left:14px;bottom:14px;z-index:2;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
  width:56px;height:60px;background:rgb(255 253 247/.97);border-radius:13px;
  box-shadow:0 6px 20px rgb(43 33 24/.28);
}
.data-badge-giorno{font-family:var(--font-display);font-size:1.4rem;font-weight:700;line-height:1;color:var(--ink)}
.data-badge-mese{font-size:.6rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--vino)}
.event-card-corpo{display:flex;flex-direction:column;gap:8px;padding:18px 20px 14px;flex:1}
.event-card-data{font-size:.8rem;font-weight:600;color:var(--ink-tenue)}
.event-card-corpo h3{font-size:1.22rem;font-weight:700;line-height:1.2;letter-spacing:0}
.event-card-luogo{font-size:.88rem;color:var(--ink-soft);display:flex;align-items:flex-start;gap:6px}
.event-card-luogo svg{flex:0 0 auto;color:var(--ink-tenue);margin-top:3px}
.event-card-piede{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 20px 18px;margin-top:auto;border-top:1px solid var(--bordo);
}
.event-card-prezzo{font-size:.82rem;color:var(--ink-soft);display:flex;align-items:baseline;gap:8px}
.event-card-prezzo strong{font-family:var(--font-display);font-weight:700;font-size:1.05rem;color:var(--ink);background:var(--ambra);border-radius:8px;padding:.14em .5em}
.event-card-cta{font-size:.85rem;font-weight:700;color:var(--vino);transition:transform var(--t);display:inline-block}
.event-card-link:hover .event-card-cta{transform:translateX(3px)}
.event-card-cta-icona{display:none} /* icona tonda: solo sulle card compatte del listing mobile */

/* ════════════════ FORMAT IN CARTELLONE ════════════════ */
.formati-griglia{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.formato-card{
  position:relative;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;
  min-height:420px;border-radius:var(--radius);overflow:hidden;isolation:isolate;
  padding:28px 26px;color:#fff;
  box-shadow:var(--ombra);
  transition:transform var(--t),box-shadow var(--t);
}
.formato-card:hover{transform:translateY(-6px);box-shadow:var(--ombra-su)}
.formato-foto{position:absolute;inset:0;z-index:-2}
.formato-foto img{width:100%;height:100%;object-fit:cover;transition:transform .7s ease}
.formato-card:hover .formato-foto img{transform:scale(1.05)}
.formato-card::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(185deg,rgb(22 18 16/.06) 30%,rgb(22 18 16/.86) 82%);
}
.formato-tag{
  position:absolute;top:18px;left:18px;
  font-size:.72rem;font-weight:700;color:var(--ink);
  background:rgb(255 255 255/.94);
  border-radius:999px;padding:.45em 1em;
  box-shadow:0 2px 10px rgb(43 33 24/.18);
}
.formato-nome{font-size:clamp(1.5rem,2.3vw,1.9rem);font-weight:700;color:#fff;letter-spacing:0}
.formato-claim{font-size:.94rem;color:rgb(255 255 255/.82);max-width:36ch}
.formato-piede{
  display:flex;align-items:center;justify-content:space-between;margin-top:12px;
  padding-top:14px;border-top:1px solid rgb(255 255 255/.2);
  font-size:.84rem;font-weight:600;
}
.formato-count{color:rgb(255 255 255/.75)}
.formato-count strong{color:#fff}
.formato-cta{color:#fff;transition:transform var(--t);display:inline-block}
.formato-card:hover .formato-cta{transform:translateX(4px)}

/* ════════════════ LE CITTÀ (tabellone chiaro) ════════════════ */
.tabellone{
  background:var(--bianco);border:1px solid var(--bordo);border-radius:var(--radius);
  overflow:hidden;box-shadow:var(--ombra);
}
.tabellone-testa{
  display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;
  padding:18px 26px;border-bottom:1px solid var(--bordo);
  font-size:.85rem;font-weight:600;color:var(--ink-soft);
}
.tabellone-testa .lampeggio{color:var(--verde);display:inline-flex;align-items:center;gap:8px;font-size:.8rem}
.lampeggio::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--verde);animation:lampeggia 1.6s infinite}
@keyframes lampeggia{0%,100%{opacity:1}50%{opacity:.25}}
@media (prefers-reduced-motion:reduce){.lampeggio::before{animation:none}}
.tabellone-righe{display:grid;grid-template-columns:repeat(3,1fr)}
.tratta{
  display:flex;align-items:center;gap:14px;padding:17px 26px;
  border-bottom:1px solid var(--bordo);border-right:1px solid var(--bordo);
  color:var(--ink);transition:background var(--t);
}
.tratta:hover{background:var(--vino-bg)}
.tratta-sigla{
  font-size:.74rem;font-weight:700;letter-spacing:.04em;
  color:var(--vino);background:var(--vino-bg);border-radius:8px;padding:.5em .62em;
  transition:background var(--t),color var(--t);
}
.tratta:hover .tratta-sigla{background:var(--vino);color:#fff}
.tratta-nome{font-weight:600;flex:1}
.tratta-num{font-size:.82rem;color:var(--ink-tenue)}
.tratta-num--arrivo{font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--vino);background:var(--vino-bg);border-radius:999px;padding:.35em .8em}
.tratta--extra{display:none}
.tabellone-righe.is-espanso .tratta--extra{display:flex}
.tabellone-espandi{
  display:flex;align-items:center;justify-content:center;gap:10px;width:100%;
  padding:16px;font-family:var(--font-ui);font-size:.9rem;font-weight:700;color:var(--vino);
  background:var(--bianco);border-top:1px solid var(--bordo);cursor:pointer;
  transition:background var(--t);
}
.tabellone-espandi:hover{background:var(--vino-bg)}
.tabellone-espandi svg{transition:transform var(--t)}
.tabellone-espandi[aria-expanded="true"] svg{transform:rotate(180deg)}

/* ════════════════ COME FUNZIONA (split + timeline) ════════════════ */
.come-griglia{display:grid;grid-template-columns:1fr 1.15fr;gap:64px;align-items:start}
.come-cta-mobile{display:none}
.come-testi{display:flex;flex-direction:column;align-items:flex-start;gap:16px;position:sticky;top:calc(var(--header-h) + 32px)}
.come-testi .btn{margin-top:6px}
/* biglietto dimostrativo */
.come-biglietto{
  display:flex;align-items:center;gap:18px;margin-top:26px;width:100%;max-width:420px;
  background:var(--bianco);border:1px solid var(--bordo);border-radius:var(--radius);
  padding:18px 20px;box-shadow:var(--ombra);
  transform:rotate(-1.2deg);position:relative;
}
.come-biglietto::before{ /* perforazione */
  content:"";position:absolute;right:86px;top:10px;bottom:10px;
  border-left:2px dashed var(--bordo-forte);
}
.come-biglietto-info{display:flex;flex-direction:column;gap:3px;flex:1;padding-right:24px}
.come-biglietto-eti{font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--vino)}
.come-biglietto-info strong{font-size:.98rem}
.come-biglietto-sub{font-size:.78rem;color:var(--ink-tenue)}
.come-biglietto-qr{color:var(--ink);flex:0 0 auto}
/* timeline verticale */
.tappe{display:flex;flex-direction:column}
.tappa{position:relative;display:flex;gap:20px;padding-bottom:34px}
.tappa:last-child{padding-bottom:0}
.tappa::before{ /* connettore */
  content:"";position:absolute;left:23px;top:52px;bottom:6px;width:2px;
  background:repeating-linear-gradient(180deg,var(--bordo-forte) 0 6px,transparent 6px 12px);
}
.tappa:last-child::before{display:none}
.tappa-icona{
  width:46px;height:46px;flex:0 0 auto;border-radius:50%;display:grid;place-items:center;
  background:var(--bianco);color:var(--vino);border:1px solid var(--bordo);
  box-shadow:var(--ombra);position:relative;z-index:1;
}
.tappa-testi{display:flex;flex-direction:column;gap:4px;padding-top:8px}
.tappa-titolo{font-family:var(--font-ui);font-size:1.04rem;font-weight:700;line-height:1.35}
.tappa-testo{font-size:.93rem;color:var(--ink-soft);max-width:52ch}

/* ════════════════ BANNER REGALO ════════════════ */
.banner-regalo{
  position:relative;border-radius:24px;overflow:hidden;isolation:isolate;
  padding:64px 56px;color:#fff;display:flex;flex-direction:column;gap:14px;align-items:flex-start;
  box-shadow:var(--ombra-su);
}
.banner-regalo-foto{position:absolute;inset:0;z-index:-2}
.banner-regalo-foto img{width:100%;height:100%;object-fit:cover;object-position:center 30%}
.banner-regalo::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(95deg,rgb(22 18 16/.9) 25%,rgb(22 18 16/.45) 70%,rgb(22 18 16/.2));
}
.banner-regalo h3{font-size:clamp(1.7rem,3vw,2.4rem);font-weight:700;color:#fff;max-width:18ch}
.banner-regalo p{color:rgb(255 255 255/.85);max-width:48ch}
.banner-regalo .btn{margin-top:8px}

/* ════════════════ RECENSIONI ════════════════ */
.recensioni{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.recensione{
  background:var(--bianco);border:1px solid var(--bordo);border-radius:var(--radius);
  padding:28px 26px;box-shadow:var(--ombra);
  display:flex;flex-direction:column;gap:14px;
}
.recensione-stelle{display:flex;gap:3px;color:var(--ambra)}
.recensione blockquote{font-size:1rem;line-height:1.6;color:var(--ink)}
.recensione figcaption{display:flex;align-items:center;gap:12px;margin-top:auto;padding-top:14px;border-top:1px solid var(--bordo)}
.recensione-avatar{
  width:38px;height:38px;border-radius:50%;display:grid;place-items:center;
  font-size:.85rem;font-weight:700;color:#fff;background:var(--espresso-2);flex:0 0 auto;
}
.recensione-nome{font-weight:700;font-size:.92rem}
.recensione-citta{font-size:.8rem;color:var(--ink-tenue);display:block}

/* ════════════════ FASCIA LOCALI (full-width, pre-footer) ════════════════ */
.eyebrow--chiaro{color:#7BA6FF}
.eyebrow--chiaro::before{background:#7BA6FF}
.locali-card{
  position:relative;overflow:hidden;isolation:isolate;border-radius:24px;
  color:var(--su-scuro);padding:72px 60px;min-height:480px;
  display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:18px;
  box-shadow:var(--ombra-su);
}
.locali-card-foto{position:absolute;inset:0;z-index:-2}
.locali-card-foto img{width:100%;height:100%;object-fit:cover;object-position:center 40%}
.locali-card::before{ /* overlay: testo leggibile a sinistra, foto viva a destra */
  content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(95deg,rgb(22 18 16/.94) 32%,rgb(22 18 16/.62) 62%,rgb(22 18 16/.22));
}
.locali-card > :not(.locali-card-foto){max-width:600px}
.fascia-locali-titolo{font-size:clamp(1.9rem,3.6vw,2.9rem);font-weight:700;color:#fff;letter-spacing:0;line-height:1.06}
.fascia-locali-sub{color:var(--su-scuro-soft);font-size:1.02rem;max-width:52ch}
.fascia-locali-punti{display:flex;flex-direction:column;gap:12px;margin-top:4px}
.fascia-locali-punti li{display:flex;gap:12px;align-items:flex-start;font-size:.96rem;color:var(--su-scuro)}
.fascia-locali-punti svg{flex:0 0 auto;margin-top:2px;color:#7BE0B8}
.fascia-locali-punti strong{color:#fff}
.fascia-locali-azioni{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:10px}
.fascia-locali-nota{font-size:.82rem;color:var(--su-scuro-soft)}

/* ════════════════════ FOOTER (full-width) ════════════════════ */
.site-footer{
  position:relative;overflow:hidden;margin-top:0; /* il respiro lo dà il padding dell'ultima sezione */
  background:linear-gradient(130deg,var(--espresso) 30%,var(--espresso-2) 75%,#2A2018);
  color:var(--su-scuro);
}
.site-footer::before{ /* bagliore blu discreto */
  content:"";position:absolute;right:-140px;top:-140px;width:460px;height:460px;border-radius:50%;
  background:radial-gradient(closest-side,rgb(156 64 56/.35),transparent);pointer-events:none;
}
.footer-panel{
  position:relative;padding:64px 0 26px;
  display:grid;grid-template-columns:1.05fr 1.6fr;gap:44px 64px;
}
.footer-brandcol{display:flex;flex-direction:column;gap:16px;align-items:flex-start}
.footer-logo{height:46px;width:auto}
.footer-claim{color:var(--su-scuro-soft);font-size:.92rem;max-width:34ch}
.footer-newsform{display:flex;flex-direction:column;gap:8px;width:100%;max-width:400px;margin-top:6px}
.footer-news-label{font-size:.8rem;font-weight:600;color:var(--su-scuro)}
.avvisami-riga{display:flex;gap:10px}
.footer-newsform input[type=email],.avvisami input[type=email]{
  flex:1;min-width:0;background:rgb(244 236 221/.08);border:1px solid var(--filetto-scuro);border-radius:999px;
  color:#fff;font-size:.92rem;padding:.85em 1.3em;
}
.footer-newsform input::placeholder{color:var(--su-scuro-soft)}
.avvisami-ok{font-size:.85rem;color:#7BE0B8}
.footer-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;align-content:start}
.footer-col{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.footer-col h3{
  font-family:var(--font-ui);font-size:.78rem;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;color:var(--su-scuro-soft);margin-bottom:4px;
}
.footer-col a{color:var(--su-scuro);font-size:.92rem}
.footer-col a:hover{color:#fff}
.footer-prov{grid-column:1/-1;display:flex;flex-direction:column;gap:16px;padding-top:22px;border-top:1px solid var(--filetto-scuro)}
.footer-prov-eti{font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--su-scuro-soft)}
.footer-prov-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px 18px}
.footer-prov-grid a{
  display:flex;align-items:center;gap:10px;
  padding:.5em .65em;margin:-0.15em -0.65em;border-radius:10px;
  color:var(--su-scuro);font-size:.9rem;transition:background var(--t),color var(--t);
}
.footer-prov-grid a:hover{background:rgb(244 236 221/.08);color:#fff}
.footer-prov-sigla{
  font-size:.66rem;font-weight:700;letter-spacing:.04em;
  color:var(--espresso);background:var(--su-scuro-soft);border-radius:6px;padding:.32em .5em;
  transition:background var(--t);
}
.footer-prov-grid a:hover .footer-prov-sigla{background:#fff}
.footer-prov-nome{font-weight:500}
.footer-prov-num{font-size:.76rem;color:var(--su-scuro-soft);background:rgb(244 236 221/.1);border-radius:999px;min-width:1.7em;height:1.7em;display:inline-grid;place-items:center}
.footer-bar{
  grid-column:1/-1;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;
  padding-top:18px;border-top:1px solid var(--filetto-scuro);
  font-size:.8rem;color:var(--su-scuro-soft);
}
.footer-bar a{color:var(--su-scuro-soft)}
.footer-bar a:hover{color:#fff}

/* ════════════════════════ LISTING (eventi.php) ════════════════════════ */
.pagina-listing{background:var(--bianco)}

/* hero fotografica compatta: la foto segue il format scelto */
.listing-hero{
  position:relative;isolation:isolate;overflow:hidden;color:var(--su-scuro);
  padding:calc(var(--header-h) + 76px) 0 104px;
}
.listing-hero-foto{position:absolute;inset:0;z-index:-2}
.listing-hero-foto img{width:100%;height:100%;object-fit:cover;object-position:center 32%}
.listing-hero::before{
  content:"";position:absolute;inset:0;z-index:-1;
  background:
    linear-gradient(180deg,rgb(22 18 16/.66) 0%,rgb(22 18 16/.42) 52%,rgb(22 18 16/.78) 100%),
    radial-gradient(ellipse 120% 90% at 12% 100%,rgb(22 18 16/.5),transparent 62%);
}
.listing-hero-inner{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.briciole{display:flex;align-items:center;gap:10px;font-size:.82rem;font-weight:600;color:var(--su-scuro-soft)}
.briciole a{color:var(--su-scuro-soft)}
.briciole a:hover{color:#fff}
.briciole [aria-current]{color:var(--su-scuro)}
.listing-hero h1{
  font-size:clamp(2.1rem,4.4vw,3.4rem);font-weight:700;color:#fff;
  letter-spacing:0;max-width:24ch;text-wrap:balance;
  text-shadow:0 4px 34px rgb(0 0 0/.5);
}
.listing-conta{font-size:.95rem;color:var(--su-scuro-soft)}
.listing-conta strong{color:#fff;font-weight:700}
/* chip dei filtri attivi: si tolgono con un tap */
.filtri-attivi{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:2px}
.filtri-attivi-label{font-size:.74rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--su-scuro-soft)}
.filtro-attivo{
  display:inline-flex;align-items:center;gap:9px;
  font-size:.85rem;font-weight:600;color:#fff;
  background:rgb(244 236 221/.14);border:1px solid rgb(244 236 221/.28);
  border-radius:999px;padding:.45em 1em;backdrop-filter:blur(6px);
  transition:background var(--t),border-color var(--t);
}
.filtro-attivo span{font-size:1.1em;line-height:1;opacity:.75}
.filtro-attivo:hover{background:rgb(226 58 58/.38);border-color:rgb(255 255 255/.45);color:#fff}
.filtri-azzera{font-size:.82rem;font-weight:600;color:var(--su-scuro-soft);text-decoration:underline;text-underline-offset:3px}
.filtri-azzera:hover{color:#fff}

/* barra filtri: card flottante sull'orlo dell'hero, resta agganciata allo scroll
   (lo sticky vive solo dentro .listing-zona: oltre i risultati si sgancia) */
.listing-zona{background:var(--crema)}
.barra-filtri{position:sticky;top:calc(var(--header-h) + 10px);z-index:40;margin-top:-38px}
.barra-filtri-card{
  position:relative;
  background:rgb(255 255 255/.96);backdrop-filter:blur(12px);
  border:1px solid var(--bordo);border-radius:16px;
  padding:14px 24px;box-shadow:var(--ombra-su);
}
.barra-filtri-riga{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 26px}
.barra-filtri label{
  display:flex;align-items:center;gap:10px;
  font-size:.74rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-tenue);
}
.barra-filtri select{
  appearance:none;background:var(--bianco);border:1px solid var(--bordo-forte);border-radius:10px;
  color:var(--ink);font-size:.9rem;font-weight:500;
  padding:.55em 2.1em .55em 1em;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%237C86A0' fill='none' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 12px center;
}
.chip-formati{display:flex;gap:8px;border:0;flex-wrap:wrap}
.chip{
  font-size:.84rem;font-weight:600;color:var(--ink-soft);
  background:var(--bianco);border:1px solid var(--bordo-forte);border-radius:999px;
  padding:.5em 1.15em;cursor:pointer;transition:all var(--t);
}
.chip:hover{border-color:var(--ink);color:var(--ink)}
.chip.is-attivo{background:var(--vino);border-color:var(--vino);color:#fff}
.listing-risultati{padding:56px 0 96px}

/* pill delle altre città (sezione correlata) */
.citta-pills{display:flex;flex-wrap:wrap;gap:12px}
.citta-pill{
  display:inline-flex;align-items:center;gap:10px;
  font-size:.92rem;font-weight:600;color:var(--ink);
  background:var(--bianco);border:1px solid var(--bordo);border-radius:999px;
  padding:.5em 1.1em .5em .5em;box-shadow:var(--ombra);
  transition:transform var(--t),box-shadow var(--t),border-color var(--t);
}
.citta-pill:hover{transform:translateY(-2px);box-shadow:var(--ombra-su);border-color:var(--bordo-forte);color:var(--ink)}
.citta-pill-sigla{
  font-size:.72rem;font-weight:700;letter-spacing:.04em;
  color:var(--vino);background:var(--vino-bg);border-radius:999px;padding:.5em .7em;
  transition:background var(--t),color var(--t);
}
.citta-pill:hover .citta-pill-sigla{background:var(--vino);color:#fff}
.citta-pill-num{
  font-size:.76rem;font-weight:700;color:var(--ink-tenue);
  background:var(--crema);border:1px solid var(--bordo);border-radius:999px;
  min-width:1.9em;height:1.9em;display:inline-grid;place-items:center;
}
.citta-pill--tutte{padding:.5em 1.2em;color:var(--vino);font-weight:700;border-style:dashed;border-color:var(--bordo-forte);box-shadow:none;background:transparent}
.citta-pill--tutte:hover{border-color:var(--vino);color:var(--vino);box-shadow:none}

/* format correlati: quando ne resta fuori uno, gli altri due si allargano */
.formati-griglia--2{grid-template-columns:repeat(2,1fr)}

/* nella barra filtri: format + ordinamento allineati a destra */
.barra-filtri .chip-formati{margin-left:auto}
/* su desktop i filtri avanzati sono sempre in linea; il toggle vive solo su mobile */
.filtri-avanzati{display:contents}
.filtri-toggle{display:none}
.filtri-toggle-num{
  font-size:.68rem;font-weight:700;color:#fff;background:var(--vino);
  border-radius:999px;min-width:1.6em;height:1.6em;display:inline-grid;place-items:center;
}
/* etichetta categoria nel corpo card: solo sulle card compatte del listing mobile */
.event-card-cat{display:none}

/* banner avvisami sotto la griglia */
.avvisami-banner{
  margin-top:44px;flex-direction:row;align-items:center;justify-content:space-between;
  flex-wrap:wrap;gap:16px 24px;
  background:var(--bianco);border:1px solid var(--bordo);border-radius:16px;
  padding:22px 26px;box-shadow:var(--ombra);
}
.avvisami-banner-testi{display:flex;flex-direction:column;gap:2px}
.avvisami-banner-testi strong{font-size:1.02rem}
.avvisami-banner-testi span{font-size:.88rem;color:var(--ink-soft)}
.avvisami-banner .avvisami-riga{flex:0 0 auto}
.avvisami-banner input[type=email]{width:270px;flex:none}

/* domande frequenti */
/* variante centrata dell'intestazione di sezione (usata dalle FAQ) */
.sez-testa--centro{justify-content:center;text-align:center}
.sez-testa--centro .sez-testa-testi{align-items:center;margin-inline:auto}
.faq-lista{display:flex;flex-direction:column;gap:12px;max-width:820px;margin-inline:auto}
.faq-voce{
  background:var(--bianco);border:1px solid var(--bordo);border-radius:14px;
  box-shadow:var(--ombra);transition:border-color var(--t);
}
.faq-voce[open]{border-color:var(--bordo-forte)}
.faq-voce summary{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:18px 22px;cursor:pointer;font-weight:700;font-size:.98rem;list-style:none;
}
.faq-voce summary::-webkit-details-marker{display:none}
.faq-voce summary svg{flex:0 0 auto;color:var(--vino);transition:transform var(--t)}
.faq-voce[open] summary svg{transform:rotate(180deg)}
.faq-voce p{padding:0 22px 18px;color:var(--ink-soft);font-size:.93rem;max-width:70ch}

/* stato vuoto */
.stato-vuoto{max-width:520px;margin:40px auto;text-align:center;display:flex;flex-direction:column;gap:18px;align-items:center}
/* la vecchia "tenda" a righe (.stato-vuoto-sipario) è stata bocciata il
   5 ago — al suo posto il ✦ di casa, come nel manifesto */
.stato-vuoto-segno{color:var(--oro-scuro);font-size:1.1rem}
.stato-vuoto h2{font-size:1.6rem}
.stato-vuoto p{color:var(--ink-soft)}
.avvisami{display:flex;flex-direction:column;gap:10px;width:100%}
.avvisami label{font-size:.78rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-tenue)}
.listing-risultati .avvisami input[type=email]{
  flex:1;background:var(--bianco);border:1px solid var(--bordo-forte);border-radius:999px;
  color:var(--ink);font-size:.95rem;padding:.9em 1.4em;
}

/* ════════════════════════ PAGINA EVENTO ════════════════════════ */
.evento-hero{padding:calc(var(--header-h) + 64px) 0 72px}
.evento-hero h1{max-width:20ch}
.evento-hero-badge{display:flex;align-items:center;gap:10px}
.evento-meta{display:flex;flex-wrap:wrap;gap:10px 26px;font-size:.92rem;font-weight:600;color:var(--su-scuro)}
.evento-meta li{display:inline-flex;align-items:center;gap:8px}
.evento-meta svg{color:var(--su-scuro-soft);flex:0 0 auto}

.evento-griglia{
  display:grid;grid-template-columns:minmax(0,1fr) 400px;gap:56px;
  align-items:start;padding-top:56px;padding-bottom:88px;
}
.evento-blocco{margin-bottom:56px}
.evento-blocco:last-child{margin-bottom:0}
.evento-titolo{font-size:clamp(1.5rem,2.4vw,1.9rem);letter-spacing:0;margin-bottom:16px}
.evento-lead{font-size:1.05rem;color:var(--ink-soft);max-width:62ch;margin-bottom:28px}
.evento-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.evento-gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:14px}
.info-pratiche{display:flex;flex-direction:column;gap:0;border:1px solid var(--bordo);border-radius:16px;background:var(--bianco);box-shadow:var(--ombra)}
.info-pratiche li{display:flex;gap:14px;align-items:flex-start;padding:16px 20px;border-bottom:1px solid var(--bordo);font-size:.95rem;color:var(--ink-soft)}
.info-pratiche li:last-child{border-bottom:0}
.info-pratiche svg{flex:0 0 auto;color:var(--vino);margin-top:3px}
.info-pratiche strong{color:var(--ink)}

/* apertura: colonna media (locandina + foto locale) e racconto della serata */
.evento-apertura{display:grid;grid-template-columns:340px minmax(0,1fr);gap:40px;align-items:start}
.apertura-media{display:flex;flex-direction:column;gap:12px}
.locandina{border-radius:16px;overflow:hidden;box-shadow:var(--ombra-su)}
.locandina img{display:block;width:100%;height:auto}
.apertura-thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.apertura-thumbs img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px}

/* il locale: indirizzo, foto, mappa, link struttura */
.locale-testa{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:18px}
.locale-testa-testi{display:flex;flex-direction:column;gap:6px}
.locale-testa .evento-titolo{margin-bottom:0}
.locale-testa .btn{flex:0 0 auto}
.locale-indirizzo{display:flex;align-items:center;gap:8px;font-size:.92rem;color:var(--ink-soft)}
.locale-indirizzo svg{color:var(--ink-tenue);flex:0 0 auto}
.locale-mappa{
  margin-top:14px;border-radius:16px;overflow:hidden;
  border:1px solid var(--bordo);box-shadow:var(--ombra);
}
.locale-mappa iframe{display:block;width:100%;height:300px;border:0}

/* FAQ su due colonne (format + globali) */
.faq-2col{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;align-items:start}
.faq-2col .faq-lista{max-width:none;margin:0}
.faq-2col .faq-voce summary{font-size:.9rem;padding:15px 18px}
.faq-2col .faq-voce p{padding:0 18px 15px;font-size:.88rem}

/* widget biglietteria */
.acquisto{position:sticky;top:calc(var(--header-h) + 22px)}
.acquisto-card{
  display:flex;flex-direction:column;gap:14px;
  background:var(--bianco);border:1px solid var(--bordo);border-radius:var(--radius);
  padding:24px 24px 20px;box-shadow:var(--ombra-su);
}
.acquisto-testa{display:flex;align-items:center;justify-content:space-between;gap:14px}
.acquisto-testa h2{font-size:1.4rem}
.acquisto-recap{font-size:.85rem;font-weight:600;color:var(--ink-soft);background:var(--crema);border-radius:10px;padding:.7em 1em}
.acquisto-posti{font-size:.82rem;font-weight:700;color:var(--rosso)}
.acquisto-nota{font-size:.92rem;color:var(--ink-soft)}
.riga-bigl{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 0;border-bottom:1px solid var(--bordo)}
.riga-bigl-info{display:flex;flex-direction:column;gap:2px}
.riga-bigl-info strong{font-size:.95rem}
.riga-bigl-prezzo{font-size:.85rem;color:var(--ink-soft);display:inline-flex;align-items:center;gap:8px}
.riga-bigl-prezzo s{color:var(--ink-tenue)}
.riga-bigl-nota{font-size:.72rem;color:var(--ink-tenue)}
.promo-eti{font-size:.66rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink);background:var(--ambra);border-radius:6px;padding:.3em .55em}
.stepper{display:flex;align-items:center;gap:2px;border:1px solid var(--bordo-forte);border-radius:999px;padding:3px}
.stepper button{
  width:30px;height:30px;border-radius:50%;display:grid;place-items:center;
  font-size:1.05rem;font-weight:600;color:var(--vino);background:var(--vino-bg);
  transition:background var(--t),color var(--t);
}
.stepper button:hover{background:var(--vino);color:#fff}
.stepper button:disabled{opacity:.35;cursor:default;background:var(--crema);color:var(--ink-tenue)}
.stepper output{min-width:2ch;text-align:center;font-weight:700;font-size:.95rem}
.assicurazione{display:flex;gap:10px;align-items:flex-start;font-size:.82rem;color:var(--ink-soft);cursor:pointer;padding:10px 12px;background:var(--crema);border-radius:10px}
.assicurazione input{margin-top:3px;accent-color:var(--vino);width:16px;height:16px;flex:0 0 auto;cursor:pointer}
.assicurazione strong{color:var(--ink)}
.assicurazione em{font-style:normal;font-weight:700;color:var(--ink);white-space:nowrap}
.gruppo-hint{display:flex;align-items:center;gap:8px;font-size:.8rem;font-weight:600;color:var(--verde)}
.riepilogo{display:flex;flex-direction:column;gap:6px}
.riepilogo:empty{display:none}
.riepilogo-riga{display:flex;justify-content:space-between;gap:14px;font-size:.88rem;color:var(--ink-soft)}
.riepilogo-riga--sconto{color:var(--verde);font-weight:600}
.riepilogo-totale{
  display:flex;justify-content:space-between;align-items:baseline;gap:14px;
  padding-top:12px;border-top:1px solid var(--bordo);font-weight:600;
}
.riepilogo-totale strong{font-family:var(--font-display);font-size:1.5rem;font-weight:700}
.acquisto-card .btn:disabled{opacity:.5;cursor:default;transform:none;box-shadow:none}
.acquisto-trust{font-size:.75rem;color:var(--ink-tenue);text-align:center}

/* barra mobile fissa (solo sotto i 900px) */
.acquisto-bar{
  display:none;position:fixed;left:0;right:0;bottom:0;z-index:50;
  align-items:center;justify-content:space-between;gap:14px;
  background:rgb(255 255 255/.96);backdrop-filter:blur(12px);
  border-top:1px solid var(--bordo);padding:10px 20px calc(10px + env(safe-area-inset-bottom));
}
.acquisto-bar-prezzo{font-size:.85rem;color:var(--ink-soft)}
.acquisto-bar-prezzo strong{font-family:var(--font-display);font-size:1.15rem;font-weight:700;color:var(--ink);background:var(--ambra);border-radius:8px;padding:.12em .5em}

/* pagina struttura */
.pagina-struttura{padding:calc(var(--header-h) + 56px) 0 96px}
.pagina-struttura .briciole,.pagina-struttura .briciole a{color:var(--ink-tenue)}
.pagina-struttura .briciole a:hover,.pagina-struttura .briciole [aria-current]{color:var(--ink)}
.struttura-testa{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:18px 0 26px}
.struttura-testa-testi{display:flex;flex-direction:column;gap:8px}
.struttura-testa h1{font-size:clamp(1.9rem,3.6vw,2.7rem)}
.struttura-testa .btn{flex:0 0 auto}
.struttura-gallery{margin-bottom:14px}
.struttura-eventi{margin-top:56px}

/* checkout demo */
.pagina-checkout{padding:calc(var(--header-h) + 56px) 0 96px;background:var(--crema);min-height:100vh}
.checkout-colonna{max-width:660px;display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.checkout-colonna h1{font-size:clamp(1.8rem,3.4vw,2.4rem)}
.checkout-card{width:100%;margin-top:10px}
.checkout-card .acquisto-testa h2{font-size:1.2rem}
.checkout-colonna > .btn-fantasma{margin-top:10px}
.pagina-checkout .briciole,.pagina-checkout .briciole a{color:var(--ink-tenue)}
.pagina-checkout .briciole a:hover,.pagina-checkout .briciole [aria-current]{color:var(--ink)}
.badge-formato--bordo{border:1px solid var(--bordo);box-shadow:none}

/* 404 — regole scopate a main.: 404.php mette .pagina-404 ANCHE sul body
   (convenzione body_class del tema) e la versione senza prefisso colpiva
   pure .container.header-inner dell'header, collassandolo in colonna a
   560px (logo sparito, cerca/Accedi sotto la fascia — segnalato 5 ago). */
main.pagina-404{padding:calc(var(--header-h) + 96px) 0 120px;text-align:center}
main.pagina-404 .container{display:flex;flex-direction:column;align-items:center;gap:18px;max-width:560px}
main.pagina-404 h1{font-size:clamp(1.9rem,4vw,2.8rem)}
main.pagina-404 p{color:var(--ink-soft)}

/* ════════════════════════ RESPONSIVE ════════════════════════ */
@media (max-width:1080px){
  .evento-griglia{grid-template-columns:minmax(0,1fr) 350px;gap:34px}
  .evento-apertura{grid-template-columns:1fr;gap:26px}
  .locandina{max-width:320px}
  .faq-2col{grid-template-columns:1fr;gap:26px}
  .formati-griglia{grid-template-columns:1fr;gap:18px}
  .formato-card{min-height:300px}
  .tabellone-righe{grid-template-columns:repeat(2,1fr)}
  .recensioni{grid-template-columns:1fr;max-width:560px;margin-inline:auto}
  .sez-testa{flex-direction:column;align-items:flex-start}
  .sez-testa--centro{align-items:center}
}
@media (max-width:900px){
  /* evento: widget in colonna dopo il contenuto + barra fissa in basso */
  .evento-griglia{grid-template-columns:1fr;gap:44px;padding-top:40px;padding-bottom:64px}
  .acquisto{position:static}
  .acquisto-bar{display:flex}
  .pagina-evento{padding-bottom:58px} /* respiro per la barra fissa */
  .come-griglia{grid-template-columns:1fr;gap:44px}
  .come-testi{position:static}
  /* CTA "date disponibili": in fondo alla sezione, full width */
  .come-cta-desktop{display:none}
  .come-cta-mobile{display:block;grid-column:1/-1;margin-top:8px}
  .come-cta-mobile .btn{width:100%}
  .locali-card{padding:48px 30px;min-height:420px}
  .header-cerca{display:none!important}
  .banner-regalo{padding:44px 32px}
  .pannello-locali{padding:44px 32px}
  .footer-cta{padding:56px 0 44px}
}
@media (max-width:760px){
  :root{--header-h:64px}
  .container{padding-inline:20px}
  .header-inner{gap:16px}
  .header-azioni{gap:10px}
  .brand-logo{height:30px}
  .sezione{padding:72px 0}
  .main-nav{
    position:fixed;inset:var(--header-h) 0 auto 0;z-index:55;
    flex-direction:column;align-items:stretch;gap:0;
    background:var(--bianco);border-radius:0 0 22px 22px;
    box-shadow:0 30px 60px rgb(43 33 24/.28);
    padding:10px 20px 20px;margin:0;
    transform:translateY(-115%);transition:transform 260ms cubic-bezier(.4,0,.2,1);
    visibility:hidden;
  }
  .main-nav.is-aperto{transform:none;visibility:visible}
  .main-nav a{
    width:100%;padding:1em 4px;font-size:1.08rem;font-weight:600;
    color:var(--ink)!important;border-bottom:1px solid var(--bordo);
    display:flex;align-items:center;justify-content:space-between;
  }
  .main-nav a:not(.nav-accedi)::after{content:"→";color:var(--ink-tenue);font-weight:400}
  .main-nav a:last-of-type{border-bottom:0}
  .main-nav .nav-accedi{
    display:flex;justify-content:center;margin-top:12px;padding:1em;border-bottom:0;
    color:#fff!important;border-radius:999px;font-size:1rem;
  }
  .main-nav .nav-accedi::after{content:none}
  /* col menu aperto l'header diventa solido */
  .site-header:has(.main-nav.is-aperto),.site-header.menu-aperto{
    background:var(--bianco);border-bottom-color:var(--bordo);
  }
  .site-header.menu-aperto .brand-logo-chiaro{display:none}
  .site-header.menu-aperto .brand-logo-blu{display:block}
  .site-header.menu-aperto .nav-toggle span{background:var(--ink)}
  .site-header.menu-aperto .header-azioni .btn-fantasma{color:var(--ink);border-color:var(--bordo-forte)}
  /* l'Accedi del header sparisce su mobile: vive nel menu */
  .header-azioni > .btn-fantasma{display:none}
  .header-azioni{margin-left:auto} /* col menu fuori flusso, l'hamburger torna a destra */
  .nav-toggle{display:flex}
  /* overlay sfocato blu-notte dietro il menu aperto (parte SOTTO l'header,
     che resta bianco pieno col logo ben visibile) */
  .site-header.menu-aperto::after{
    content:"";position:fixed;left:0;right:0;top:var(--header-h);bottom:0;z-index:-1;
    background:rgb(22 18 16/.5);backdrop-filter:blur(7px);
  }
  .hero-palco{min-height:auto;padding-bottom:88px}
  .hero-cerca{flex-direction:column;padding:10px}
  .hero-cerca-campo{border-right:0;border-bottom:1px solid var(--bordo);padding-block:12px}
  .hero-cerca-campo:last-of-type{border-bottom:0}
  .hero-cerca-btn{width:100%}
  /* città e strip fiducia: scorrimento orizzontale, come le card evento */
  .hero-chips{align-self:stretch;min-width:0;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;scrollbar-width:none;margin-inline:-20px;padding-inline:20px;-webkit-overflow-scrolling:touch}
  .hero-chips::-webkit-scrollbar{display:none}
  .hero-chips-label,.hero-chip{flex:0 0 auto;white-space:nowrap}
  .strip-fiducia{position:relative}
  .strip-fiducia::after{ /* sfumatura: suggerisce che si può scorrere */
    content:"";position:absolute;top:0;bottom:0;right:0;width:56px;pointer-events:none;
    background:linear-gradient(90deg,transparent,var(--bianco) 78%);
  }
  .strip-fiducia-inner{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;scrollbar-width:none;gap:26px;font-size:.82rem;padding-right:48px;-webkit-overflow-scrolling:touch}
  .strip-fiducia-inner::-webkit-scrollbar{display:none}
  .strip-fiducia-inner span{flex:0 0 auto;white-space:nowrap}
  .tabellone-righe{grid-template-columns:1fr}
  .tratta{border-right:0}
  /* listing: hero più compatta */
  .listing-hero{padding:calc(var(--header-h) + 44px) 0 80px}
  /* evento: hero e gallery compatte */
  .evento-hero{padding:calc(var(--header-h) + 40px) 0 52px}
  .evento-meta{gap:8px 18px;font-size:.85rem}
  .evento-gallery{grid-template-columns:repeat(2,1fr);gap:10px}
  .evento-gallery img:first-child{grid-column:1/-1}
  .locale-testa,.struttura-testa{flex-direction:column;align-items:flex-start;gap:14px}
  .locale-mappa iframe{height:240px}
  .barra-filtri{margin-top:-30px;top:calc(var(--header-h) + 8px)}
  .barra-filtri-card{padding:12px 14px}
  .barra-filtri-riga{gap:10px 12px}
  /* riga 1: i due select affiancati (etichette testuali nascoste) */
  .barra-filtri label{flex:1;min-width:0;font-size:0;gap:0}
  .barra-filtri label select{flex:1;min-width:0}
  /* filtri avanzati richiudibili: resta una riga sola (Provincia + Filtri) */
  .filtri-toggle{
    display:inline-flex;align-items:center;gap:8px;flex:0 0 auto;
    background:var(--bianco);border:1px solid var(--bordo-forte);border-radius:10px;
    padding:.55em 1em;font-size:.84rem;font-weight:600;color:var(--ink);
  }
  .filtri-toggle svg{transition:transform var(--t)}
  .filtri-toggle[aria-expanded="true"] svg{transform:rotate(180deg)}
  .filtri-avanzati{display:none;flex-basis:100%;flex-direction:column;align-items:stretch;gap:10px}
  .barra-filtri-card.is-aperti .filtri-avanzati{display:flex}
  .filtri-avanzati .filtro-ordina{flex:none}
  .chip-formati{margin-left:0;flex-wrap:wrap;gap:8px}
  .chip{flex:0 0 auto;white-space:nowrap;font-size:.8rem;padding:.45em .95em}
  /* pill città: griglia regolare a 2 colonne */
  .citta-pills{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .citta-pill{min-width:0}
  .citta-pill-nome{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .citta-pill--tutte{grid-column:1/-1;justify-content:center}
  .citta-pill--tutte .citta-pill-nome{flex:none}
  /* griglia eventi del listing: due colonne compatte */
  /* minmax(0,1fr): i testi nowrap non devono gonfiare le colonne */
  .listing-risultati .griglia-eventi{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}
  .listing-risultati .event-card-corpo{padding:12px 12px 10px;gap:5px}
  .listing-risultati .event-card-corpo h3{font-size:.95rem;display:-webkit-box;-webkit-line-clamp:2;line-clamp: 2;-webkit-box-orient:vertical;overflow:hidden}
  .listing-risultati .event-card-data{font-size:.68rem}
  .listing-risultati .event-card-luogo{font-size:.74rem;gap:0}
  .listing-risultati .event-card-luogo svg{display:none}
  .listing-risultati .event-card-luogo-txt{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  /* azione a icona tonda: il testo affiancato al prezzo non ci sta */
  .listing-risultati .event-card-piede{padding:9px 12px 11px}
  .listing-risultati .event-card-prezzo{font-size:.7rem;gap:5px}
  .listing-risultati .event-card-prezzo strong{font-size:.88rem}
  .listing-risultati .event-card-cta-txt{display:none}
  .listing-risultati .event-card-cta-icona{
    display:grid;place-items:center;width:32px;height:32px;
    border-radius:50%;background:var(--vino);color:#fff;
  }
  .listing-risultati .event-card-cta--lista .event-card-cta-icona{background:#525B70}
  /* foto piccole: solo il timbro stato; categoria come micro-etichetta nel corpo */
  .listing-risultati .data-badge{display:none}
  .listing-risultati .event-card-media .badge-formato{display:none}
  .listing-risultati .event-card-cat{
    display:block;font-size:.6rem;font-weight:700;
    letter-spacing:.06em;text-transform:uppercase;color:var(--ink-tenue);
  }
  /* avvisami e FAQ in colonna */
  .avvisami-banner{flex-direction:column;align-items:stretch;padding:20px 18px}
  .avvisami-banner .avvisami-riga{flex:1;width:100%}
  .avvisami-banner input[type=email]{width:auto;flex:1}
  .faq-voce summary{padding:15px 16px;font-size:.92rem}
  .faq-voce p{padding:0 16px 15px}
  .footer-panel{grid-template-columns:1fr;padding:44px 0 22px;gap:34px}
  .footer-cols{grid-template-columns:1fr 1fr;gap:24px}
  .footer-prov-grid{grid-template-columns:1fr 1fr}
  /* newsletter: email e bottone su due righe */
  .footer-newsform .avvisami-riga{flex-direction:column;align-items:stretch}
  .footer-newsform .avvisami-riga .btn{width:100%}
}
