/*
Theme Name: VivoEventi
Description: Portale nazionale di prenotazione eventi — cene spettacolo, esperienze per famiglie, serate nei locali d'Italia.
Author: Sodo Design
Version: 1.0.0
Text Domain: vivoeventi
*/

/* Design system del portale: porting fedele di MOCKUP/css/style.css, la base
   approvata dal committente il 13 luglio 2026. Le uniche differenze sono i
   font, qui self-hosted (css/fonts.css) invece che da Google Fonts.
   Tutto ciò che esiste solo dentro WordPress — form della biglietteria,
   carrello, cassa, account, barra admin — sta in css/skin-vivoeventi.css. */

/* ════════════════════════════════════════════════════════════════════════
   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:#FFFFFF;
  --neve:#F4F6FA;            /* sezioni alternate           */
  --bordo:#E5E9F2;
  --bordo-forte:#D2D9E6;

  /* testo su chiaro */
  --ink:#0E1526;
  --ink-soft:#4C566B;
  --ink-tenue:#7C86A0;

  /* il palco (hero, footer) */
  --navy:#081231;
  --navy-2:#0D1B45;
  --su-navy:#E8ECF6;
  --su-navy-soft:rgb(232 236 246/.72);
  --filetto-navy:rgb(232 236 246/.16);

  /* brand e luci */
  --blu:#0B5FEF;
  --blu-hover:#2E77FF;
  --blu-bg:#EAF1FF;
  --ambra:#FFB428;           /* SOLO prezzi / promo          */
  --verde:#0E9F6E;
  --rosso:#E23A3A;

  /* accenti categoria */
  --f-accent:var(--blu); --f-bg:var(--blu-bg);

  /* tipografia */
  --font-display:"Bricolage Grotesque",sans-serif;
  --font-ui:"Sora",sans-serif;

  --radius:18px;
  --ombra:0 2px 6px rgb(14 21 38/.05),0 14px 34px rgb(14 21 38/.08);
  --ombra-su:0 8px 16px rgb(14 21 38/.08),0 24px 54px rgb(14 21 38/.14);
  --t:200ms cubic-bezier(.4,0,.2,1);
  --header-h:74px;
}
.formato-ccd{--f-accent:#D93654;--f-bg:#FCE9ED}
.formato-castello{--f-accent:#6D3BE0;--f-bg:#EFE9FC}
.formato-maghi{--f-accent:#0C9E6E;--f-bg:#E4F6EF}

/* ============ 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(--blu);text-decoration:none;transition:color var(--t)}
a:hover{color:var(--blu-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:-.015em;color:var(--ink)}
:focus-visible{outline:2px solid var(--blu);outline-offset:3px;border-radius:4px}
::selection{background:var(--blu);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(--blu);
  display:inline-flex;align-items:center;gap:8px;
}
.eyebrow::before{content:"";width:8px;height:8px;border-radius:3px;background:var(--blu)}

/* ============ 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(--blu);color:#fff}
.btn-primario:hover,.btn-acquista:hover{background:var(--blu-hover);color:#fff;box-shadow:0 12px 30px rgb(11 95 239/.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-navy);border-color:var(--filetto-navy)}
.su-scuro .btn-fantasma:hover{border-color:var(--su-navy);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(14 21 38/.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(14 21 38/.06);
}
.header-inner{display:flex;align-items:center;gap:34px;width:100%}
.brand{display:inline-flex;flex:0 0 auto}
.brand-logo{height:25px;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-navy-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)}
/* voce attiva: dice DOVE SEI. Sull'header trasparente diventa bianca piena,
   su quello chiaro inchiostro, con un filetto blu sotto. La regola vale anche
   per «I format» quando sei dentro una delle sue pagine. */
.main-nav a.is-attivo{color:#fff;position:relative}
.main-nav a.is-attivo::before{
  content:"";position:absolute;left:0;right:0;bottom:-2px;height:2px;
  border-radius:2px;background:currentColor;opacity:.9;
}
.site-header.is-scrolled .main-nav a.is-attivo{color:var(--blu)}
.main-nav .nav-sotto a.is-attivo{background:var(--blu-bg);color:var(--blu)}
.main-nav .nav-sotto a.is-attivo::before{content:none}

/* voce di menu con tendina (aggiunta al mockup, 13 ago: i format sotto
   «I format»). Si apre in hover e in focus-within: niente JS, quindi funziona
   anche da tastiera. Il ponte trasparente di 10px sopra il pannello evita che
   la tendina si chiuda mentre il puntatore scende dal link. */
.nav-voce{position:relative;display:inline-flex;align-items:center}
.nav-voce-link{display:inline-flex;align-items:center;gap:6px}
.nav-voce-freccia{flex:0 0 auto;transition:transform var(--t)}
.nav-voce:hover .nav-voce-freccia,.nav-voce:focus-within .nav-voce-freccia{transform:rotate(180deg)}
.nav-sotto{
  position:absolute;top:100%;left:50%;transform:translate(-50%,6px);
  min-width:230px;display:flex;flex-direction:column;
  background:var(--bianco);border:1px solid var(--bordo);border-radius:14px;
  box-shadow:var(--ombra-su);padding:6px;margin-top:10px;
  opacity:0;visibility:hidden;transition:opacity var(--t),transform var(--t),visibility var(--t);
}
.nav-sotto::before{content:"";position:absolute;left:0;right:0;top:-12px;height:12px}
.nav-voce:hover .nav-sotto,.nav-voce:focus-within .nav-sotto{
  opacity:1;visibility:visible;transform:translate(-50%,0);
}
.main-nav .nav-sotto a{
  padding:.6em .8em;border-radius:9px;font-size:.9rem;font-weight:500;
  color:var(--ink-soft);white-space:nowrap;
}
.main-nav .nav-sotto a:hover{background:var(--blu-bg);color:var(--blu)}

.header-azioni{display:flex;align-items:center;gap:12px;flex:0 0 auto}
.header-azioni .btn-fantasma{color:var(--su-navy);border-color:rgb(232 236 246/.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(--neve);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(--blu);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(--blu-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-navy);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-navy);
}
/* 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(8 18 49/.6) 0%,rgb(8 18 49/.28) 45%,rgb(8 18 49/.68) 100%),
    radial-gradient(ellipse 110% 100% at 50% 110%,rgb(8 18 49/.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:800;color:#fff;
  letter-spacing:-.025em;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(4 10 30/.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(--blu);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;
}
/* Il campo libero riusa .hero-cerca-select per misure e colore, ma non e' un
   elenco: la mano che cambia forma su un campo di testo dice la cosa sbagliata. */
.hero-cerca-testo{cursor:text}
.hero-cerca-testo::placeholder{color:var(--ink-tenue);font-weight:500}
.hero-cerca-testo::-webkit-search-cancel-button{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-navy-soft);margin-right:2px}
.hero-chip{
  display:inline-flex;align-items:center;gap:8px;
  font-size:.86rem;font-weight:600;color:var(--su-navy);
  background:rgb(232 236 246/.1);border:1px solid rgb(232 236 246/.22);
  border-radius:999px;padding:.5em 1em;backdrop-filter:blur(6px);
  transition:background var(--t),border-color var(--t);
}
.hero-chip:hover{background:rgb(232 236 246/.2);border-color:rgb(232 236 246/.5);color:#fff}
.hero-chip-num{font-size:.74rem;font-weight:700;color:var(--navy);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(--blu);flex:0 0 auto}

/* ════════════════════════ SEZIONI ════════════════════════ */
.sezione{padding:96px 0}
.sezione--neve{background:var(--neve)}
.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:-.02em}
.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(14 21 38/.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(14 21 38/.28);
}
.data-badge-giorno{font-family:var(--font-display);font-size:1.4rem;font-weight:800;line-height:1;color:var(--ink)}
.data-badge-mese{font-size:.6rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--blu)}
.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:-.01em}
.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:800;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(--blu);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(8 18 49/.06) 30%,rgb(8 18 49/.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(14 21 38/.18);
}
.formato-nome{font-size:clamp(1.5rem,2.3vw,1.9rem);font-weight:800;color:#fff;letter-spacing:-.015em}
.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(--blu-bg)}
.tratta-sigla{
  font-size:.74rem;font-weight:700;letter-spacing:.04em;
  color:var(--blu);background:var(--blu-bg);border-radius:8px;padding:.5em .62em;
  transition:background var(--t),color var(--t);
}
.tratta:hover .tratta-sigla{background:var(--blu);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(--blu);background:var(--blu-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(--blu);
  background:var(--bianco);border-top:1px solid var(--bordo);cursor:pointer;
  transition:background var(--t);
}
.tabellone-espandi:hover{background:var(--blu-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(--blu)}
.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(--blu);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(8 18 49/.9) 25%,rgb(8 18 49/.45) 70%,rgb(8 18 49/.2));
}
.banner-regalo h3{font-size:clamp(1.7rem,3vw,2.4rem);font-weight:800;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(--navy-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-navy);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(8 18 49/.94) 32%,rgb(8 18 49/.62) 62%,rgb(8 18 49/.22));
}
.locali-card > :not(.locali-card-foto){max-width:600px}
.fascia-locali-titolo{font-size:clamp(1.9rem,3.6vw,2.9rem);font-weight:800;color:#fff;letter-spacing:-.02em;line-height:1.06}
.fascia-locali-sub{color:var(--su-navy-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-navy)}
.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-navy-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(--navy) 30%,var(--navy-2) 75%,#12275e);
  color:var(--su-navy);
}
.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(11 95 239/.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:24px;width:auto}
.footer-claim{color:var(--su-navy-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-newsform .tck-avvisami-titolo{font-size:.8rem;font-weight:600;color:var(--su-navy)}
.tck-avvisami-riga{display:flex;gap:10px}
/* Il campo chiaro e' la regola; quello scuro vale SOLO nel piede, che sta su fondo
   scuro. Agganciato a tutti i moduli, il testo bianco spariva mentre lo si scriveva
   dentro una scheda chiara. */
.tck-avvisami input[type=email]{
  flex:1;min-width:0;background:var(--bianco);border:1px solid var(--bordo-forte);border-radius:999px;
  color:var(--ink);font-size:.92rem;padding:.85em 1.3em;
}
.footer-newsform input[type=email]{
  background:rgb(232 236 246/.08);border-color:var(--filetto-navy);color:#fff;
}
.footer-newsform input::placeholder{color:var(--su-navy-soft)}
.tck-avvisami-esito{font-size:.85rem;color:#7BE0B8}
.tck-avvisami-esito.is-errore{color:#F0A7A0}
.footer-newsform .tck-avvisami-consenso{font-size:.76rem;color:var(--su-navy-soft)}
.footer-newsform .tck-avvisami-consenso a{color:var(--su-navy);text-decoration:underline}
/* Il pulsante veste come i pulsanti del sito: il plugin non porta colori di marca. */
.tck-avvisami-invia{
  border:0;border-radius:999px;background:var(--blu);color:#fff;
  font-family:var(--font-ui);font-weight:700;font-size:.92rem;padding:.85em 1.5em;
  cursor:pointer;transition:background var(--t),box-shadow var(--t);
}
.tck-avvisami-invia:hover{background:var(--blu-hover);box-shadow:0 12px 30px rgb(11 95 239/.35)}
.tck-avvisami-invia[disabled]{opacity:.6;cursor:progress}
.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-navy-soft);margin-bottom:4px;
}
.footer-col a{color:var(--su-navy);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-navy)}
.footer-prov-eti{font-size:.74rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--su-navy-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-navy);font-size:.9rem;transition:background var(--t),color var(--t);
}
.footer-prov-grid a:hover{background:rgb(232 236 246/.08);color:#fff}
.footer-prov-sigla{
  font-size:.66rem;font-weight:700;letter-spacing:.04em;
  color:var(--navy);background:var(--su-navy-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-navy-soft);background:rgb(232 236 246/.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-navy);
  font-size:.8rem;color:var(--su-navy-soft);
}
.footer-bar a{color:var(--su-navy-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-navy);
  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(8 18 49/.66) 0%,rgb(8 18 49/.42) 52%,rgb(8 18 49/.78) 100%),
    radial-gradient(ellipse 120% 90% at 12% 100%,rgb(8 18 49/.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-navy-soft)}
.briciole a{color:var(--su-navy-soft)}
.briciole a:hover{color:#fff}
.briciole [aria-current]{color:var(--su-navy)}
.listing-hero h1{
  font-size:clamp(2.1rem,4.4vw,3.4rem);font-weight:800;color:#fff;
  letter-spacing:-.02em;max-width:24ch;text-wrap:balance;
  text-shadow:0 4px 34px rgb(0 0 0/.5);
}
.listing-conta{font-size:.95rem;color:var(--su-navy-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-navy-soft)}
.filtro-attivo{
  display:inline-flex;align-items:center;gap:9px;
  font-size:.85rem;font-weight:600;color:#fff;
  background:rgb(232 236 246/.14);border:1px solid rgb(232 236 246/.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-navy-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(--neve)}
.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{
  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(--blu);border-color:var(--blu);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(--blu);background:var(--blu-bg);border-radius:999px;padding:.5em .7em;
  transition:background var(--t),color var(--t);
}
.citta-pill:hover .citta-pill-sigla{background:var(--blu);color:#fff}
.citta-pill-num{
  font-size:.76rem;font-weight:700;color:var(--ink-tenue);
  background:var(--neve);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(--blu);font-weight:700;border-style:dashed;border-color:var(--bordo-forte);box-shadow:none;background:transparent}
.citta-pill--tutte:hover{border-color:var(--blu);color:var(--blu);box-shadow:none}

/* format correlati: quando ne resta fuori uno, gli altri due si allargano */
.formati-griglia--2{grid-template-columns:repeat(2,1fr)}

/* 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 .tck-avvisami-testi{display:flex;flex-direction:column;gap:2px;margin:0}
.avvisami-banner .tck-avvisami-titolo{font-size:1.02rem}
.avvisami-banner .tck-avvisami-testo{font-size:.88rem;color:var(--ink-soft)}
.avvisami-banner .tck-avvisami-riga{flex:0 0 auto}
.avvisami-banner input[type=email]{width:270px;flex:none}
/* Spunta ed esito prendono tutta la riga: qui il modulo e' disposto in orizzontale. */
.avvisami-banner .tck-avvisami-consenso,
.avvisami-banner .tck-avvisami-esito{flex:1 0 100%;margin:0}

/* 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(--blu);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}
.stato-vuoto-sipario{
  width:110px;height:64px;border-radius:0 0 55px 55px;
  background:repeating-linear-gradient(90deg,var(--blu-bg) 0 13px,var(--bianco) 13px 26px);
  border:1px solid var(--bordo-forte);border-top:0;
}
.stato-vuoto h2{font-size:1.6rem}
.stato-vuoto p{color:var(--ink-soft)}
.tck-avvisami{display:flex;flex-direction:column;gap:10px;width:100%}
.stato-vuoto .tck-avvisami-titolo{font-size:.78rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--ink-tenue)}
.listing-risultati .tck-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;
}
.listing-risultati .tck-avvisami-consenso,
.stato-vuoto .tck-avvisami-consenso{font-size:.8rem;color:var(--ink-soft)}

/* ════════════════════════ 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-navy)}
.evento-meta li{display:inline-flex;align-items:center;gap:8px}
.evento-meta svg{color:var(--su-navy-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:-.015em;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(--blu);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(--neve);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(--blu);background:var(--blu-bg);
  transition:background var(--t),color var(--t);
}
.stepper button:hover{background:var(--blu);color:#fff}
.stepper button:disabled{opacity:.35;cursor:default;background:var(--neve);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(--neve);border-radius:10px}
.assicurazione input{margin-top:3px;accent-color:var(--blu);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:800}
.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:800;color:var(--ink);background:var(--ambra);border-radius:8px;padding:.12em .5em}

/* pagina struttura */
.pagina-struttura{padding:0 0 96px}
.pagina-struttura > .container{padding-top:44px}
.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(--neve);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 — le regole restano agganciate a main.: 404.php mette .pagina-404 anche
   sul body (convenzione body_class del tema), e senza il prefisso
   `.pagina-404 .container` colpirebbe ogni .container della pagina, header e
   footer compresi, riducendoli a una colonna centrata da 560px. */
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:20px}
  .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(14 21 38/.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}
  /* nel pannello mobile la tendina non ha senso: le figlie restano sempre
     visibili, rientrate sotto la loro voce. */
  .main-nav .nav-voce{display:block;width:100%}
  .main-nav .nav-voce-freccia{display:none}
  .main-nav .nav-sotto{
    position:static;transform:none;opacity:1;visibility:visible;
    min-width:0;background:none;border:0;box-shadow:none;
    padding:0 0 0 16px;margin:0;
  }
  .main-nav .nav-sotto a{font-size:.98rem;font-weight:500;color:var(--ink-soft)!important}
  .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(8 18 49/.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}
  .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(--blu);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 .tck-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 .tck-avvisami-riga{flex-direction:column;align-items:stretch}
  .footer-newsform .tck-avvisami-riga .tck-avvisami-invia{width:100%}
}
