/* ============================================================
   WF ZOO — VESTITO DEL SITO + HOME (portato dal prototipo hi-fi)
   ------------------------------------------------------------
   Stack: CSS vanilla, GPU-only (transform/opacity/filter).
   Brand vars in wf-tokens.css · @font-face in theme.json.
   Foto/loghi: ../img/  ·  font: ../fonts/ (via theme.json).
   ============================================================ */

/* Reset minimale del prototipo */
*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{ font-family:var(--font-body); color:var(--nero); background:var(--bianco); line-height:1.65; -webkit-font-smoothing:antialiased; }
h1,h2,h3{ font-family:var(--font-heading); font-weight:400; line-height:1.05; letter-spacing:.5px; text-transform:uppercase; }
.wrap{ max-width:var(--maxw); margin:0 auto; padding:0 28px; }
a{ color:inherit; text-decoration:none; }
img{ max-width:100%; }

/* BUTTONS */
.btn{ display:inline-flex; align-items:center; gap:10px; padding:15px 30px; border-radius:50px; font-family:var(--font-body); font-weight:700; font-size:16px; border:none; cursor:pointer; transition:transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .25s, background .25s; letter-spacing:.2px; white-space:nowrap; }
.btn-primary{ background:var(--giallo); color:var(--nero); box-shadow:0 6px 18px rgba(252,186,3,.35); }
.btn-primary:hover{ transform:translateY(-3px); box-shadow:var(--shadow-hover); background:var(--giallo-scuro); }
.btn-ghost{ background:transparent; color:var(--nero); border:2px solid var(--nero); }
.btn-ghost:hover{ transform:translateY(-3px); background:var(--nero); color:var(--bianco); }
.btn-green{ background:var(--verde); color:#fff; box-shadow:0 6px 18px rgba(75,107,38,.3); }
.btn-green:hover{ transform:translateY(-3px); background:var(--verde-scuro); }
.btn-white{ background:#fff; color:var(--nero); }
.btn-white:hover{ transform:translateY(-3px); box-shadow:0 14px 30px rgba(0,0,0,.18); }
.btn-outline-w{ background:transparent; color:#fff; border:2px solid #fff; }
.btn-outline-w:hover{ background:#fff; color:var(--verde-scuro); transform:translateY(-3px); }

/* MOTORE MICRO-INTERAZIONI — bordo luminoso che SCORRE attorno alla card (colore = --edge) */
@property --fxang{ syntax:'<angle>'; initial-value:0deg; inherits:false; }
.fx-int{ position:relative; }
.fx-int::before{ content:''; position:absolute; inset:0; z-index:6; border-radius:inherit; padding:3px; pointer-events:none; opacity:0; transition:opacity .35s ease;
  background:conic-gradient(from var(--fxang), transparent 0deg, var(--edge, var(--giallo)) 50deg, #fff 90deg, var(--edge, var(--giallo)) 130deg, transparent 210deg, transparent 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor;
  mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); mask-composite:exclude; }
.fx-int:hover::before{ opacity:1; animation:fxspin 2.4s linear infinite; }
@keyframes fxspin{ to{ --fxang:360deg; } }
@media (prefers-reduced-motion: reduce){ .fx-int::before{ transition:none; } .fx-int:hover::before{ animation:none; } }

/* NAVBAR (il tag <header> è il template-part del tema) */
header{ position:sticky; top:0; z-index:100; background:rgba(255,255,255,.92); backdrop-filter:blur(12px); border-bottom:1px solid var(--bordo); transition:box-shadow .3s; }
header.scrolled{ box-shadow:0 4px 20px rgba(0,0,0,.06); }
.nav{ display:flex; align-items:center; justify-content:space-between; height:78px; }
.nav .nav-logo img{ height:50px; width:auto; display:block; }
.nav-menu .menu{ display:flex; align-items:center; gap:4px; list-style:none; margin:0; padding:0; }
.nav-menu .menu > li{ position:relative; }
.nav-menu .menu > li > a{ display:flex; align-items:center; gap:6px; font-weight:700; font-size:15px; padding:10px 12px; border-radius:10px; transition:color .2s, background .2s;
  /* le voci non vanno mai a capo: "Biglietti e Visite" spezzato su due righe
     alzava tutta la barra e si leggeva male */
  white-space:nowrap; }
.nav-menu .menu > li > a:hover{ color:var(--giallo-scuro); background:var(--crema); }
/* WordPress produce .sub-menu e .menu-item-has-children; il nostro markup a mano
   usava .submenu e .has-sub. Valgono entrambi, cosi' la navbar e' identica sia
   col menu gestito dal pannello sia con la riserva scritta a mano. */
.nav-menu .has-sub > a::after, .nav-menu .menu-item-has-children > a::after{ content:''; width:7px; height:7px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg) translateY(-2px); opacity:.55; }
.nav-menu .submenu, .nav-menu .sub-menu{ list-style:none; margin:0; padding:8px; position:absolute; top:calc(100% + 4px); left:0; min-width:248px; background:#fff; border:1px solid var(--bordo); border-radius:16px; box-shadow:0 18px 40px rgba(26,26,26,.16); opacity:0; visibility:hidden; transform:translateY(8px); transition:opacity .2s ease, transform .2s ease, visibility .2s; z-index:120; }
.nav-menu .menu > li:hover > .submenu, .nav-menu .menu > li:focus-within > .submenu,
.nav-menu .menu > li:hover > .sub-menu, .nav-menu .menu > li:focus-within > .sub-menu{ opacity:1; visibility:visible; transform:none; }
.nav-menu .submenu a, .nav-menu .sub-menu a{ display:block; padding:10px 12px; border-radius:9px; font-size:14px; font-weight:600; color:var(--nero); white-space:nowrap; transition:background .15s, color .15s; }
.nav-menu .submenu a:hover, .nav-menu .sub-menu a:hover{ background:var(--crema); color:var(--giallo-scuro); }
.nav-cta{ display:flex; align-items:center; gap:14px; }
.burger{ display:none; flex-direction:column; gap:5px; cursor:pointer; background:none; border:none; padding:8px; }
.burger span{ width:26px; height:3px; background:var(--nero); border-radius:3px; }

/* utility: testo solo per screen reader (h1 SEO nascosto) */
.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; }

/* ===== HERO — una immagine (leone) + due colonne testo (Fondazione sx / Zoo dx) ===== */
.hero-split{ position:relative; min-height:min(92vh,880px); overflow:hidden; background:#0a0a08; display:flex; align-items:flex-end; }
.wf-home .hero-split{ padding:0; }
.hp-bg{ position:absolute; inset:-9% 0; z-index:0; will-change:transform; }      /* layer del parallax */
/* Inquadratura desktop: il leone va CENTRATO, con il muso libero dai loghi.
   Con `cover` il crop lasciava la testa a sinistra e il logo Fondazione cadeva
   sul muso. 165% + fuoco a 2%/22% porta il soggetto al centro. Lo scale(1.06)
   resta: serve al parallasse per non scoprire i bordi.
   NB: taratura legata a lion-hero.jpg — se si cambia la foto, rifarla. */
.hp-bg-img{ position:absolute; inset:0; background-position:2% 22%; background-size:165% auto; transform:scale(1.06); }
/* HERO slideshow: i 5 layer si alternano in dissolvenza lenta (JS, ogni 10s).
   Il Ken Burns gira su TUTTE le slide, sincronizzato (stesso timeline): così quando
   una foto sostituisce l'altra sono alla STESSA scala → crossfade fluido, niente scatto. */
.hp-slide{ opacity:0; transition:opacity 2.4s ease; }
.hp-slide.is-active{ opacity:1; }
.hps-lion{ background-image:url('../img/lion-hero.jpg'); }
.hps-procione{ background-image:url('../img/lion-hero.jpg'); }   /* visitatori che si prendono cura */
.hps-leopardo{ background-image:url('../img/exp-leopardo.jpg'); }
.hps-capre{ background-image:url('../img/an-capre.jpg'); }               /* bambini con gli animali */
.hps-banditi{ background-image:url('../img/exp-banditi.jpg'); }
@media (prefers-reduced-motion: no-preference){
  .hp-slide{ animation:kenburns 18s ease-in-out infinite alternate; }
}
.hp-scrim{ position:absolute; inset:0; z-index:1; background:linear-gradient(to top, rgba(0,0,0,.9) 0%, rgba(0,0,0,.55) 30%, rgba(0,0,0,.1) 60%), linear-gradient(rgba(0,0,0,.18), rgba(0,0,0,.18)); }
.hp-grid{ position:relative; z-index:2; width:100%; max-width:var(--maxw); margin:0 auto; padding:0 32px clamp(46px,7vh,88px); display:grid; grid-template-columns:1fr 1fr; gap:clamp(30px,5vw,72px); align-items:end; }
/* colonne CENTRATE nelle loro metà (contenuto simmetrico, non incollato ai bordi) */
.hp-col{ max-width:440px; display:flex; flex-direction:column; align-items:center; text-align:center; margin:0 auto; animation:fadeRise .9s both; }
.hp-zoo{ animation-delay:.14s; }
.hp-col .btn{ align-self:center !important; }
.hp-logo-box{ justify-content:center; }
/* separazione col COLORE, niente linea: velo azzurro a sx (Fondazione), caldo/dorato a dx (Zoo) */
.hero-split::after{ content:''; position:absolute; inset:0; z-index:1; pointer-events:none;
  background:linear-gradient(90deg, rgba(18,97,164,.30) 0%, rgba(18,97,164,.10) 42%, rgba(224,164,0,.10) 58%, rgba(224,164,0,.30) 100%); }
@media (max-width:820px){ .hero-split::after{ display:none; } }
/* occhiello netto FONDAZIONE / ZOO */
.hp-eyebrow{ font-family:var(--font-heading); font-weight:400; text-transform:uppercase; font-size:clamp(16px,1.5vw,21px); letter-spacing:3px; color:var(--giallo); margin-bottom:12px; }
/* BRAND: la Fondazione è BLU (#1261a4, dal logo) — mai verde, mai giallo */
.hp-found .hp-eyebrow{ color:#1261a4; text-shadow:0 0 10px rgba(255,255,255,.30), 0 2px 6px rgba(0,0,0,.55); }
/* box-logo ad altezza FISSA → i due loghi (proporzioni diverse) restano allineati */
.hp-logo-box{ height:clamp(88px,10vw,150px); display:flex; align-items:flex-end; margin-bottom:clamp(18px,2vw,26px); }
/* Desktop: loghi piu' bassi e un filo piu' piccoli, cosi' non salgono sul volto
   del leone (richiesta di Bea). La box e' allineata in basso: ridurne l'altezza
   fa scendere il logo verso il titolo. Mobile invariato (override a 820px). */
@media (min-width:821px){
  .hp-logo-box{ height:clamp(70px,7.2vw,104px); margin-bottom:clamp(14px,1.5vw,20px); }
}
.hp-logo-img{ display:block; width:auto; max-height:100%; filter:drop-shadow(0 4px 20px rgba(0,0,0,.6)); }
/* titolo bloccato a 2 righe, sub a 3 righe → stesse altezze nelle due colonne */
.hp-head{ font-family:var(--font-heading); font-weight:400; text-transform:uppercase; color:#fff; font-size:clamp(28px,3.3vw,50px); line-height:1.06; letter-spacing:.5px; margin-bottom:16px; text-shadow:0 2px 6px rgba(0,0,0,.62), 0 0 30px rgba(0,0,0,.72); min-height:2.12em; }
/* max-width tarata perché ENTRAMBE le descrizioni cadano su 3 righe: a piena
   colonna (440px) quella della Fondazione ne riempiva solo 2 e le due colonne
   risultavano sbilanciate. A 420px vanno a 3 righe tutte e due. */
.hp-sub{ color:#fff; font-size:clamp(15px,1.15vw,17px); line-height:1.55; margin-bottom:24px; text-shadow:0 1px 3px rgba(0,0,0,.75), 0 0 18px rgba(0,0,0,.68); min-height:4.65em; max-width:420px; margin-inline:auto; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.hp-col .btn{ align-self:flex-start; margin-top:auto; }
/* HERO interattivo: passando sul logo/scritte tutta la colonna si solleva e si illumina (come le card) */
.hp-int{ position:relative; border-radius:22px; transition:transform .45s cubic-bezier(.34,1.56,.64,1); }
.hp-found{ --glowcol:rgba(18,97,164,.85); } /* BLU Fondazione */
.hp-zoo{ --glowcol:rgba(252,186,3,.82); }
/* NIENTE riquadri/box in nessuno stato (scelta cliente): all'hover SOLO il sollevamento del logo */
.hp-int::before{ display:none !important; }
.hp-int:hover, .hp-int:focus-within{ transform:none; }
.hp-int:hover .hp-logo-img, .hp-int:focus-within .hp-logo-img{ transform:translateY(-6px); filter:drop-shadow(0 10px 26px rgba(0,0,0,.55)); }
.hp-int .hp-logo-img{ transition:transform .35s ease, filter .35s ease; }
.hp-int:hover .hp-logo-img{ filter:drop-shadow(0 4px 26px var(--glowcol)); }
.hp-int .hp-eyebrow, .hp-int .hp-logo-img{ transition:color .35s ease, filter .35s ease; }
@media (prefers-reduced-motion: reduce){ .hp-int, .hp-int::before, .hp-int .hp-eyebrow, .hp-int .hp-logo-img{ transition:none; } .hp-int:hover, .hp-int:focus-within{ transform:none; } }
.hero-split .scroll-cue{ position:absolute; left:50%; bottom:18px; transform:translateX(-50%); z-index:3; display:flex; flex-direction:column; align-items:center; gap:8px; color:rgba(255,255,255,.7); font-size:11px; letter-spacing:2.5px; text-transform:uppercase; font-weight:700; }
.hero-split .scroll-cue .line{ width:1px; height:42px; background:rgba(255,255,255,.28); position:relative; overflow:hidden; }
.hero-split .scroll-cue .line::after{ content:''; position:absolute; left:0; top:0; width:1px; height:16px; background:linear-gradient(rgba(255,255,255,0), #fff); animation:scrolldown 1.7s cubic-bezier(.6,0,.4,1) infinite; }
@media (max-width:820px){
  /* ============ HERO "DA APP" ============
     Su mobile la hero mostra UNA sola anima: il leone, il titolo Zoo e basta,
     in ~70% dello schermo. Cosi' i chip informativi entrano nella prima
     schermata. La Fondazione ha la sua striscia subito sotto i chip
     (.wf-fond-strip), il bottone lo fa la barra fissa in basso. */
  .hero-split{ min-height:0; height:min(70vh,600px); }
  .hp-found{ display:none; }
  .hp-scrim{ background:linear-gradient(to top, rgba(0,0,0,.82) 0%, rgba(0,0,0,.42) 38%, rgba(0,0,0,.12) 70%); }
  .hp-logo-img{ filter:drop-shadow(0 3px 9px rgba(0,0,0,.8)) drop-shadow(0 0 20px rgba(0,0,0,.5)); }
  .hp-grid{ grid-template-columns:1fr; gap:0; padding:0 24px 26px; }
  .hp-col{ max-width:520px; }
  .hp-zoo{ justify-self:center; }
  .hp-head{ min-height:0; margin-bottom:0; }
  .btn{ padding:12px 22px; font-size:15px; white-space:normal; max-width:100%;
    text-align:center; justify-content:center; }
  /* i pulsanti con l'etichetta lunga sbordavano dalle card sul telefono */
  .hp-zoo .btn-primary{ display:none; }
  .hp-sub{ min-height:0; -webkit-line-clamp:3; max-width:none; } /* due righe tagliavano la frase a meta' */
  .hp-logo-box{ height:clamp(58px,15vw,88px); }

  /* striscia Fondazione: compatta, accento blu brand */
  .wf-fond-strip{ display:flex; align-items:center; gap:14px; margin:0 16px 4px;
    padding:14px 16px; background:#fff; border-left:4px solid #1261a4; border-radius:12px;
    text-decoration:none; box-shadow:0 1px 5px rgba(0,0,0,.06); }
  .wf-fond-strip__testo{ font-family:var(--font-body); font-size:14px; line-height:1.45; color:var(--nero); }
  .wf-fond-strip__testo strong{ display:block; color:#1261a4; font-size:12px; letter-spacing:.08em; text-transform:uppercase; margin-bottom:2px; }
  .wf-fond-strip__freccia{ margin-left:auto; color:#1261a4; font-size:20px; }

  /* novita' a scorrimento laterale, stile rail da app */
  .nv-grid, .nv-grid.nv-1, .nv-grid.nv-2, .nv-grid.nv-3{ display:flex; overflow-x:auto;
    -webkit-overflow-scrolling:touch; scroll-snap-type:x mandatory; scrollbar-width:none;
    gap:14px; padding:4px 2px 10px; }
  .nv-grid::-webkit-scrollbar{ display:none; }
  .nv-grid .nv-card, .nv-grid.nv-1 .nv-card{ flex:0 0 80%; max-width:320px;
    scroll-snap-align:start; flex-direction:column; }
  /* la foto è orizzontale col leone a SINISTRA: su ritratto il crop centrale mostrerebbe
     solo lo sfondo → sposto il fuoco sul soggetto. NB: valore tarato su lion-hero.jpg;
     se si cambia la foto hero, riverificare questo posizionamento. */
  .hp-bg-img{ background-position:29% 38%; background-size:cover; }
  .hp-slide{ animation:none; }
  .hero-split .scroll-cue{ display:none; }
}
@media (prefers-reduced-motion: reduce){
  .hp-bg-img, .hp-col{ animation:none; }
  .hero-split .scroll-cue .line::after{ animation:none; }
}

/* HERO (due temi, immagine continua + parallax) */
.hero2{ position:relative; height:calc(100vh - 78px); min-height:620px; max-height:920px; overflow:hidden; padding:0; display:flex; align-items:flex-end; background:#0a0a0a; }
.hero2 .media{ position:absolute; inset:-9% 0; z-index:0; will-change:transform; }
/* ============ FASCIA RAPIDA (solo mobile, sotto la hero) ============ */
.wf-quick{ display:none; }
@media (max-width:820px){
  .wf-quick{ display:block; background:var(--crema, #faf6ee); padding-bottom:16px; }
  .wf-chips{ display:flex; gap:8px; overflow-x:auto; -webkit-overflow-scrolling:touch;
    scrollbar-width:none; padding:14px 16px; }
  .wf-chips::-webkit-scrollbar{ display:none; }
  .wf-chip{ flex:0 0 auto; display:inline-flex; align-items:center; gap:7px;
    font-family:var(--font-body); font-weight:700; font-size:14px; color:var(--nero);
    background:#fff; border:1px solid rgba(0,0,0,.1); border-radius:50px;
    padding:9px 15px; text-decoration:none; white-space:nowrap;
    box-shadow:0 1px 4px rgba(0,0,0,.05); }
  .wf-chip-dot{ width:8px; height:8px; border-radius:50%; background:#3f9c46; }
  .wf-chip.is-closed .wf-chip-dot{ background:#c0392b; }
}

.hero2 .bg{ position:absolute; inset:0; background-image:url('../img/lion-hero.jpg'); background-size:cover; background-position:center; transform:scale(1.06); animation:kenburns 28s ease-in-out infinite alternate; }
@keyframes kenburns{ 0%{transform:scale(1.06) translate(0,0)} 100%{transform:scale(1.16) translate(-2%,-2%)} }
.hero2 .scrim{ position:absolute; inset:0; z-index:1; background:linear-gradient(to top, rgba(0,0,0,.9) 0%, rgba(0,0,0,.5) 30%, rgba(0,0,0,.08) 60%), linear-gradient(rgba(0,0,0,.12), rgba(0,0,0,.12)); }
.hero2 .grid{ position:relative; z-index:2; width:100%; max-width:1180px; margin:0 auto; padding:0 32px 6%; display:grid; grid-template-columns:1fr 1fr; gap:6%; align-items:end; }
.hero2 .col{ max-width:440px; animation:fadeRise .9s both; }
.hero2 .col.zoo{ justify-self:end; animation-delay:.16s; }
.hero2 .badge{ display:inline-flex; align-items:center; margin-bottom:20px; }
.hero2 .badge img{ display:block; width:auto; filter:drop-shadow(0 2px 16px rgba(0,0,0,.85)); }
.hero2 .found .badge img{ height:118px; }
.hero2 .zoo .badge img{ height:66px; }
.hero2 h2{ font-family:var(--font-heading); font-weight:400; text-transform:uppercase; letter-spacing:.5px; font-size:clamp(28px,3vw,44px); line-height:1.05; color:#fff; margin-bottom:14px; text-shadow:0 3px 24px rgba(0,0,0,.55); }
.hero2 p{ font-size:16px; line-height:1.55; color:rgba(255,255,255,.92); margin-bottom:22px; max-width:400px; text-shadow:0 1px 12px rgba(0,0,0,.5); }
.hero2 .scroll-cue{ position:absolute; left:50%; bottom:24px; transform:translateX(-50%); z-index:3; display:flex; flex-direction:column; align-items:center; gap:10px; color:rgba(255,255,255,.75); font-size:11px; letter-spacing:2.5px; text-transform:uppercase; font-weight:700; animation:cueFade 1s both .7s; }
@keyframes cueFade{ from{opacity:0} to{opacity:1} }
.hero2 .scroll-cue .line{ width:1px; height:46px; background:rgba(255,255,255,.22); position:relative; overflow:hidden; }
.hero2 .scroll-cue .line::after{ content:''; position:absolute; left:0; top:0; width:1px; height:18px; background:linear-gradient(rgba(255,255,255,0), #fff); animation:scrolldown 1.7s cubic-bezier(.6,0,.4,1) infinite; }
@keyframes scrolldown{ 0%{transform:translateY(-18px)} 100%{transform:translateY(46px)} }
@keyframes fadeRise{ from{opacity:0; transform:translateY(24px); filter:blur(8px)} to{opacity:1; transform:none; filter:blur(0)} }

/* CIFRE */
.cifre{ background:var(--nero); color:#fff; position:relative; overflow:hidden; }
.cifre::after{ content:''; position:absolute; top:0; right:0; width:38%; height:100%; pointer-events:none;
  background:linear-gradient(120deg, transparent 42%, rgba(252,186,3,.12)); clip-path:polygon(42% 0,100% 0,100% 100%,0 100%); }
.cifre-grid{ position:relative; z-index:1; display:grid; grid-template-columns:repeat(4,1fr); align-items:start; gap:clamp(8px,2vw,28px); padding:52px 0; text-align:center; }
.cifra{ position:relative; }
.cifra .num{ font-family:var(--font-heading); font-size:clamp(54px,5vw,72px); color:var(--giallo); line-height:1; display:inline-block; }
.cifra .num::after{ content:''; display:block; width:36px; height:4px; background:var(--giallo); border-radius:3px; margin:14px auto 0; transform:skewX(-18deg); }
.cifra .lab{ font-weight:700; font-size:13px; color:#dcdcdc; margin-top:14px; letter-spacing:1.5px; text-transform:uppercase; }
.cifra:not(:last-child)::after{ content:''; position:absolute; right:-10px; top:14%; height:60%; width:2px; background:rgba(255,255,255,.10); transform:skewX(-12deg); }

/* SECTIONS (scoping .wf-home per non toccare future pagine core) */
.wf-home section{ padding:96px 0; }
/* annulla il block-gap di WP tra le sezioni full-bleed (toglie le strisce bianche sopra/sotto le bande) */
.wf-home > *{ margin-block:0 !important; }
.section-head{ text-align:center; max-width:720px; margin:0 auto 56px; }
.section-head .kicker{ color:var(--giallo-scuro); font-weight:700; letter-spacing:2px; text-transform:uppercase; font-size:14px; display:block; margin-bottom:14px; }
.section-head h2{ font-size:clamp(32px,4.4vw,50px); margin-bottom:16px; }
.section-head p{ font-size:18px; color:var(--grigio); }

/* ============================================================
   NOVITÀ IN EVIDENZA — subito sotto l'hero (richiesta del cliente)
   Alimentata dagli eventi marcati "in evidenza" in The Events Calendar.
   Stati: 1, 2 o 3 card (.nv-1/.nv-2/.nv-3) oppure il blocco di rimando
   al calendario quando non c'è nulla in evidenza (.nv-empty).
   ============================================================ */
.novita{ background:var(--crema); }
.wf-home .novita{ padding:clamp(56px,7vw,88px) 0; }
.novita .section-head{ margin-bottom:clamp(30px,4vw,44px); }

.nv-grid{ display:grid; gap:22px; max-width:var(--maxw); margin:0 auto; }
.nv-grid.nv-1{ grid-template-columns:1fr; }
.nv-grid.nv-2{ grid-template-columns:repeat(2,1fr); }
.nv-grid.nv-3{ grid-template-columns:repeat(3,1fr); }

.nv-card{ position:relative; isolation:isolate; display:flex; flex-direction:column; overflow:hidden;
  background:#fff; border:1px solid var(--bordo); border-radius:22px; box-shadow:0 12px 34px rgba(26,26,26,.06);
  text-decoration:none; transition:transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .35s, border-color .35s; }
.nv-card:hover{ transform:translateY(-6px); box-shadow:0 26px 56px rgba(26,26,26,.14), 0 0 34px -8px var(--giallo); border-color:var(--giallo); }
.nv-photo{ display:block; aspect-ratio:16/10; background-size:cover; background-position:center;
  background-color:var(--crema-2); transition:transform .6s ease; }
.nv-card:hover .nv-photo{ transform:scale(1.05); }
.nv-body{ display:flex; flex-direction:column; align-items:flex-start; padding:22px 24px 26px; flex:1; }
.nv-date{ display:inline-block; font-weight:700; font-size:12px; letter-spacing:1.6px; text-transform:uppercase;
  color:var(--nero); background:var(--giallo); border-radius:50px; padding:5px 12px; margin-bottom:14px; }
.nv-body h3{ font-family:var(--font-heading); font-weight:400; text-transform:uppercase; color:var(--nero);
  font-size:clamp(19px,1.7vw,23px); line-height:1.12; margin:0 0 10px; }
.nv-body p{ color:var(--grigio); font-size:.98rem; line-height:1.6; margin:0 0 16px; }
.nv-link{ margin-top:auto; font-weight:700; font-size:14px; letter-spacing:.3px; color:var(--verde); }
.nv-card:hover .nv-link{ color:var(--verde-scuro); }
.nv-cta{ text-align:center; margin-top:34px; }

/* Una sola novità: la card diventa orizzontale, così non resta una foto enorme */
.nv-grid.nv-1 .nv-card{ flex-direction:row; align-items:stretch; }
.nv-grid.nv-1 .nv-photo{ flex:0 0 46%; aspect-ratio:auto; }
.nv-grid.nv-1 .nv-body{ justify-content:center; padding:clamp(28px,3.4vw,48px); }
.nv-grid.nv-1 .nv-body h3{ font-size:clamp(24px,2.6vw,34px); }

/* Stato vuoto: nessun evento in evidenza */
.nv-empty{ position:relative; display:flex; align-items:stretch; overflow:hidden; max-width:var(--maxw); margin:0 auto;
  background:#fff; border:1px solid var(--bordo); border-radius:22px; box-shadow:0 12px 34px rgba(26,26,26,.06);
  text-decoration:none; transition:transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .35s, border-color .35s; }
.nv-empty:hover{ transform:translateY(-5px); box-shadow:0 26px 56px rgba(26,26,26,.14), 0 0 34px -8px var(--verde); border-color:var(--verde); }
.nv-empty-photo{ flex:0 0 44%; background-size:cover; background-position:center; background-color:var(--crema-2); transition:transform .6s ease; }
.nv-empty:hover .nv-empty-photo{ transform:scale(1.04); }
.nv-empty-body{ display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:clamp(30px,3.6vw,52px); }
.nv-empty-body .nv-date{ background:var(--verde); color:#fff; }
.nv-empty-body h3{ font-family:var(--font-heading); font-weight:400; text-transform:uppercase; color:var(--nero);
  font-size:clamp(24px,2.6vw,34px); line-height:1.1; margin:0 0 12px; }
.nv-empty-body p{ color:var(--grigio); font-size:1.02rem; line-height:1.6; margin:0 0 18px; }

@media (max-width:900px){
  .nv-grid.nv-3{ grid-template-columns:repeat(2,1fr); }
  .nv-grid.nv-3 .nv-card:last-child{ grid-column:1 / -1; }
}
@media (max-width:680px){
  .nv-grid.nv-2, .nv-grid.nv-3{ grid-template-columns:1fr; }
  .nv-grid.nv-3 .nv-card:last-child{ grid-column:auto; }
  .nv-grid.nv-1 .nv-card, .nv-empty{ flex-direction:column; }
  .nv-grid.nv-1 .nv-photo{ flex:none; aspect-ratio:16/10; }
  .nv-empty-photo{ flex:none; aspect-ratio:16/10; }
}
@media (prefers-reduced-motion: reduce){
  .nv-card, .nv-empty, .nv-photo, .nv-empty-photo{ transition:none; }
  .nv-card:hover, .nv-empty:hover{ transform:none; }
  .nv-card:hover .nv-photo, .nv-empty:hover .nv-empty-photo{ transform:none; }
}

/* DUE ANIME — editoriale chiaro con OUTLINE (brand come accento, niente colore pieno) */
.splitband{ position:relative; background:var(--crema); }
.wf-home .splitband{ padding:clamp(60px,8vw,96px) 0; }
.anime-grid{ display:grid; grid-template-columns:1fr 1fr; gap:28px; max-width:var(--maxw); margin:0 auto; padding:0 28px; }
.anime{ position:relative; overflow:hidden; display:flex; flex-direction:column; align-items:flex-start;
  background:#fff; border:2px solid; border-radius:24px; padding:clamp(32px,3.4vw,52px); box-shadow:0 14px 38px rgba(26,26,26,.05);
  transition:transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .35s, border-color .35s; }
.anime:hover{ transform:translateY(-6px); box-shadow:0 28px 58px rgba(26,26,26,.13), 0 0 36px -8px var(--edge,var(--giallo)); }
.anime-found{ border-color:rgba(75,107,38,.42); --edge:var(--verde); }
.anime-found:hover{ border-color:var(--verde); }
.anime-zoo{ border-color:rgba(252,186,3,.6); --edge:var(--giallo); }
.anime-zoo:hover{ border-color:var(--giallo-scuro); }
@media (prefers-reduced-motion: reduce){ .anime{ transition:none !important; } }
/* numero-anno come accento grafico d'angolo, tenue, in parallax */
.anime > *:not(.anime-num){ position:relative; z-index:1; }
.anime-num{ position:absolute; z-index:0; right:-.04em; bottom:-.2em; font-family:var(--font-heading); font-weight:400; line-height:.7;
  font-size:clamp(130px,17vw,280px); pointer-events:none; -webkit-user-select:none; user-select:none; will-change:transform; }
.anime-found .anime-num{ color:rgba(75,107,38,.10); }
.anime-zoo .anime-num{ color:rgba(224,164,0,.16); }
.anime-tag{ font-weight:700; font-size:12px; letter-spacing:2.5px; text-transform:uppercase; margin-bottom:14px; }
.anime-found .anime-tag{ color:var(--verde); }
.anime-zoo .anime-tag{ color:var(--giallo-scuro); }
.anime .sb-title{ font-family:var(--font-heading); font-weight:400; text-transform:uppercase; color:var(--nero); font-size:clamp(28px,3vw,44px); line-height:1.02; letter-spacing:.5px; margin-bottom:16px; }
.anime .sb-text{ color:var(--grigio); font-size:16px; line-height:1.65; margin-bottom:24px; max-width:44ch; }
/* corpo testo troncato a ~3 righe, espandibile con "Leggi tutto" → le due card si vedono insieme.
   Il fade sfuma verso il bianco del fondo card e dà il senso del "continua". */
.anime-body{ position:relative; font-size:16px; line-height:1.65; max-width:44ch; max-height:calc(1.65em * 3); overflow:hidden; margin-bottom:6px; transition:max-height .55s ease; }
.anime-body::after{ content:''; position:absolute; left:0; right:0; bottom:0; height:2.6em; background:linear-gradient(rgba(255,255,255,0), #fff); pointer-events:none; transition:opacity .3s; }
.anime.is-open .anime-body{ max-height:60em; }
.anime.is-open .anime-body::after{ opacity:0; }
.anime-body .sb-text{ margin-bottom:14px; }
.anime-body .sb-text:last-child{ margin-bottom:0; }
.anime-more{ background:none; border:0; padding:4px 0; margin-bottom:18px; cursor:pointer; font-family:inherit; font-weight:700; font-size:14px; letter-spacing:.3px; display:inline-flex; align-items:center; gap:7px; }
.anime-more::after{ content:'\25be'; font-size:.85em; transition:transform .3s; }
.anime.is-open .anime-more::after{ transform:rotate(180deg); }
.anime-found .anime-more{ color:#1261a4; }
.anime-zoo .anime-more{ color:var(--giallo-scuro); }
@media (prefers-reduced-motion: reduce){ .anime-body{ transition:none; } }
.anime-link{ font-weight:700; font-size:15px; color:var(--nero); display:inline-flex; align-items:center; gap:8px; border-bottom:2px solid var(--giallo); padding-bottom:3px; transition:color .2s; }
.anime-link::after{ content:'\2192'; transition:transform .25s; }
.anime-link:hover{ color:var(--verde); }
.anime-zoo .anime-link:hover{ color:var(--giallo-scuro); }
.anime-link:hover::after{ transform:translateX(5px); }
/* bottone nero pieno (usato nel padrinato) */
.btn-dark{ background:var(--nero); color:#fff; }
.btn-dark:hover{ transform:translateY(-3px); background:#000; box-shadow:0 10px 26px rgba(0,0,0,.32); }
@media (max-width:820px){
  .anime-grid{ grid-template-columns:1fr; gap:20px; }
}

/* ESPERIENZE — bento: 1 in evidenza grande (sx) + 3 affianco (dx) */
.exp-bento{ display:grid; grid-template-columns:1.35fr .95fr; grid-template-rows:repeat(3,1fr); gap:18px; min-height:540px; }
.exp-card{ position:relative; overflow:hidden; border-radius:var(--radius); box-shadow:var(--shadow); display:block; isolation:isolate;
  transition:transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .35s; }
.exp-card:hover{ transform:translateY(-7px); box-shadow:0 26px 58px rgba(0,0,0,.34), 0 0 38px -6px var(--edge,var(--giallo)); }
.exp-bg{ position:absolute; inset:0; z-index:0; background-size:cover; background-position:center; transition:transform .6s cubic-bezier(.2,.8,.2,1); }
.exp-card:hover .exp-bg{ transform:scale(1.07); }
/* la card in evidenza ha la foto viva (zoom lento continuo) */
@media (prefers-reduced-motion: no-preference){ .exp-featured .exp-bg{ animation:vt-ken 13s ease-in-out infinite alternate; } }
.exp-card::after{ content:''; position:absolute; inset:0; z-index:1; background:linear-gradient(to top, rgba(16,12,6,.94) 4%, rgba(16,12,6,.5) 44%, rgba(16,12,6,0) 80%); }
.exp-featured{ grid-column:1; grid-row:1/4; }
.exp-side{ grid-column:2; }
.ec-leoni{ background-image:url('../img/exp-leoni.jpg'); }
.ec-leopardo{ background-image:url('../img/exp-leopardo.jpg'); }
.ec-banditi{ background-image:url('../img/exp-banditi.jpg'); }
.ec-pony{ background-image:url('../img/exp-pony.jpg'); }
.exp-body{ position:absolute; left:0; right:0; bottom:0; z-index:2; padding:22px; color:#fff; }
.exp-featured .exp-body{ padding:clamp(24px,2.4vw,34px); }
.exp-body h3{ color:#fff; font-size:20px; margin-bottom:6px; text-shadow:0 2px 14px rgba(0,0,0,.5); }
.exp-featured .exp-body h3{ font-size:clamp(24px,2.4vw,34px); margin-bottom:10px; }
.exp-featured .exp-body p{ color:rgba(255,255,255,.92); font-size:15px; line-height:1.55; margin-bottom:12px; max-width:46ch; }
.exp-link{ font-weight:700; color:var(--giallo); display:inline-flex; align-items:center; gap:7px; transition:gap .25s; }
.exp-card:hover .exp-link{ gap:13px; }
.exp-badge{ position:absolute; top:16px; left:16px; z-index:2; background:var(--giallo); color:var(--nero); font-weight:700; font-size:12px; letter-spacing:.5px; text-transform:uppercase; padding:6px 13px; border-radius:50px; box-shadow:0 4px 14px rgba(0,0,0,.25); }
.exp-cta{ text-align:center; margin-top:44px; }
@media (max-width:900px){
  .exp-bento{ grid-template-columns:repeat(3,1fr); grid-template-rows:auto auto; gap:14px; min-height:0; }
  .exp-featured{ grid-column:1/-1; grid-row:1; min-height:330px; }
  .exp-side{ grid-column:auto; grid-row:2; min-height:200px; }
}
@media (max-width:540px){
  .exp-bento{ grid-template-columns:1fr; }
  .exp-featured, .exp-side{ grid-column:1; min-height:240px; }
}
@media (prefers-reduced-motion: reduce){ .exp-card, .exp-bg{ transition:none !important; } }

/* CARE — accordion espandibile su SCURO (stacco dalle altre sezioni): hover = bordo verde luminoso, clic apre. */
.care{ background:#15160d; color:#fff; }
.care .section-head h2{ color:#fff; }
.care .section-head .kicker{ color:var(--giallo); }
.care-acc{ display:flex; flex-direction:column; gap:14px; max-width:900px; margin:0 auto; }
.ca-item{ background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.10); border-radius:18px; overflow:hidden; --edge:var(--verde);
  transition:transform .3s cubic-bezier(.34,1.56,.64,1), box-shadow .3s, border-color .3s, background .3s; }
.ca-item:hover{ transform:translateY(-3px); background:rgba(255,255,255,.06); box-shadow:0 18px 44px rgba(0,0,0,.45), 0 0 36px -10px var(--verde); border-color:rgba(75,107,38,.7); }
.acc-head{ width:100%; display:flex; align-items:center; gap:clamp(14px,2vw,22px); padding:16px clamp(20px,2.4vw,28px); background:none; border:none; cursor:pointer; text-align:left; font-family:inherit; }
.acc-head:focus-visible{ outline:3px solid var(--giallo); outline-offset:-3px; border-radius:18px; }
.ca-letter{ font-family:var(--font-heading); font-weight:400; font-size:clamp(40px,5vw,62px); line-height:.8; color:var(--giallo); flex:0 0 auto; width:.95em; text-align:center; }
.ca-word{ font-family:var(--font-heading); font-weight:400; text-transform:uppercase; font-size:clamp(19px,2vw,27px); color:#fff; letter-spacing:.5px; flex:1; }
.acc-ico{ flex:0 0 auto; width:24px; height:24px; position:relative; }
.acc-ico::before, .acc-ico::after{ content:''; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); background:var(--giallo); border-radius:2px; transition:transform .3s ease; }
.acc-ico::before{ width:16px; height:3px; }
.acc-ico::after{ width:3px; height:16px; }
.ca-item.open .acc-ico::after, .acc-item.open .acc-ico::after{ transform:translate(-50%,-50%) scaleY(0); } /* "+" diventa "-" all'apertura (anche nella visita) */
.acc-body{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .42s ease; }
.ca-item.open .acc-body, .acc-item.open .acc-body{ grid-template-rows:1fr; } /* apre anche l'accordion "Pianifica la visita" (era chiuso: bug) */
.acc-body > div{ overflow:hidden; }
.acc-body p{ margin:0; padding:0 clamp(20px,2.4vw,28px) 22px clamp(74px,9vw,108px); color:rgba(255,255,255,.72); font-size:15.5px; line-height:1.65; }
@media (prefers-reduced-motion: reduce){ .ca-item, .acc-body, .acc-ico::after{ transition:none !important; } }

/* VISITA — il "tagliando": foto ambiente + biglietto staccabile */
.visita{ background:var(--crema); }
.visita-ticket{ position:relative; display:grid; grid-template-columns:1fr 1fr; background:#fff;
  border-radius:24px; overflow:hidden; box-shadow:0 30px 64px rgba(26,26,26,.13); border:1px solid var(--bordo); --edge:var(--giallo);
  transition:transform .35s cubic-bezier(.34,1.56,.64,1), box-shadow .35s; }
.visita-ticket:hover{ transform:translateY(-4px); box-shadow:0 38px 72px rgba(26,26,26,.17), 0 0 38px -8px var(--giallo); }
.vt-photo{ position:relative; overflow:hidden; min-height:560px; background:#11140c; }
/* slideshow: le immagini si alternano da sole (dissolvenza) + zoom lento continuo */
.vt-slide{ position:absolute; inset:0; background-size:cover; background-position:center; opacity:0; transition:opacity 1.1s ease; }
.vt-slide.is-active{ opacity:1; }
.vs-leoni{ background-image:url('../img/img-ingresso.jpg'); }
.vs-leopardo{ background-image:url('../img/an-wallaby-due.jpg'); background-position:center 58%; }
.vs-banditi{ background-image:url('../img/edu-pannello.jpg'); background-position:center; }
@media (prefers-reduced-motion: no-preference){
  .vt-slide{ animation:vt-ken 10s ease-in-out infinite alternate; }
  .vs-leopardo{ animation-delay:-3.3s; }
  .vs-banditi{ animation-delay:-6.6s; }
}
@keyframes vt-ken{ from{ transform:scale(1.04); } to{ transform:scale(1.16); } }
/* notch della perforazione (in alto e in basso sulla giunzione centrale) */
.visita-ticket::before, .visita-ticket::after{ content:''; position:absolute; left:50%; transform:translateX(-50%);
  width:26px; height:26px; border-radius:50%; background:var(--crema); z-index:4; }
.visita-ticket::before{ top:-13px; }
.visita-ticket::after{ bottom:-13px; }
.vt-panel{ position:relative; padding:clamp(34px,3.6vw,58px); }
/* linea tratteggiata della perforazione */
.vt-panel::before{ content:''; position:absolute; left:0; top:18px; bottom:18px; width:2px;
  background:repeating-linear-gradient(to bottom, var(--bordo) 0 7px, transparent 7px 15px); }
.vt-kicker{ display:block; font-weight:700; font-size:13px; letter-spacing:2.5px; text-transform:uppercase; color:var(--giallo-scuro); margin-bottom:12px; }
.vt-panel h2{ font-size:clamp(30px,3.4vw,46px); line-height:1; margin-bottom:24px; }
.vt-list{ list-style:none; margin:0 0 8px; padding:0; }
/* righe espandibili (accordion): hover illumina, clic apre i dettagli */
.vt-row{ border-bottom:1px solid var(--bordo); }
.vt-head{ width:100%; display:flex; align-items:center; gap:16px; padding:15px 14px; margin:0 -14px; background:none; border:none; cursor:pointer; text-align:left; font-family:inherit; border-radius:14px; transition:background-color .25s ease; }
.vt-head:hover{ background:rgba(252,186,3,.10); }
.vt-head:focus-visible{ outline:3px solid var(--giallo); outline-offset:-3px; }
.vt-htxt{ flex:1; display:flex; flex-direction:column; gap:2px; }
.vt-htitle{ font-family:var(--font-heading); font-weight:400; text-transform:uppercase; font-size:19px; color:var(--nero); letter-spacing:.3px; }
.vt-hsum{ font-size:13.5px; color:var(--grigio); }
.vt-list .acc-body p{ color:var(--grigio); font-size:15.5px; line-height:1.55; padding:0 14px 0 calc(48px + 16px); }
/* niente padding sul contenitore: impediva il collasso completo dell'accordion (testo che spuntava tagliato) */
.vt-list .acc-body > div{ padding:0; }
.vt-list .acc-body p:last-child, .vt-list .acc-body .vt-link:last-child{ margin-bottom:16px; }
.vt-list .acc-body .vt-link{ margin-left:calc(48px + 16px + 14px); }
.vt-link{ display:inline-flex; align-items:center; gap:6px; font-weight:700; color:var(--verde); border-bottom:2px solid var(--giallo); padding-bottom:2px; margin-top:8px; }
.vt-link:hover{ color:var(--giallo-scuro); }
.vt-row:last-child{ border-bottom:none; }
.vt-ico{ flex:0 0 48px; height:48px; border-radius:50%; background:rgba(252,186,3,.18); display:grid; place-items:center;
  box-shadow:0 0 0 6px rgba(252,186,3,.06); }
.vt-ico svg{ width:24px; height:24px; stroke:var(--verde-scuro); }
.vt-list .acc-body p + p{ margin-top:4px; }
.vt-row strong{ color:var(--nero); }
.vt-note{ font-size:13px !important; color:var(--giallo-scuro); font-weight:700; margin-top:4px; }
.vt-cta{ margin-top:26px; }
/* --- DINAMICA: ingresso righe in sequenza + icone vive --- */
/* le 3 righe entrano una dopo l'altra quando il tagliando arriva in vista */
/* stesso gate dei .reveal: senza JS le righe restano visibili invece che sparire */
html.wf-anim .vt-list .vt-row{ opacity:0; transform:translateY(14px); transition:opacity .5s ease, transform .5s cubic-bezier(.16,1,.3,1); }
html.wf-anim .visita-ticket.in .vt-row{ opacity:1; transform:none; }
.visita-ticket.in .vt-row:nth-child(2){ transition-delay:.1s; }
.visita-ticket.in .vt-row:nth-child(3){ transition-delay:.2s; }
/* hover/focus: l'icona fa un micro-pop */
.vt-ico{ transition:transform .25s ease; }
.vt-head:hover .vt-ico, .vt-head:focus-visible .vt-ico{ transform:scale(1.08); }
/* loop affettivi delle 3 icone — partono solo quando la sezione è visibile (.in) */
.vt-ico--clock svg polyline{ transform-box:view-box; transform-origin:12px 12px; }
.visita-ticket.in .vt-ico--clock svg polyline{ animation:vt-tick 1.5s steps(2,end) infinite; }
.visita-ticket.in .vt-ico--pin svg{ animation:vt-bounce 2.2s ease-in-out infinite; }
.visita-ticket.in .vt-ico--ticket svg{ transform-box:view-box; transform-origin:center; animation:vt-stamp 2.8s ease-in-out infinite; }
@keyframes vt-tick{ 0%,100%{ transform:rotate(-16deg); } 50%{ transform:rotate(16deg); } }
@keyframes vt-bounce{ 0%,55%,100%{ transform:translateY(0); } 72%{ transform:translateY(-8px); } 86%{ transform:translateY(-3px); } }
@keyframes vt-stamp{ 0%,58%,100%{ transform:rotate(0); } 70%{ transform:rotate(-16deg); } 80%{ transform:rotate(8deg); } 90%{ transform:rotate(-3deg); } }
@media (prefers-reduced-motion: reduce){
  .visita-ticket{ transition:none !important; }
  .vt-list .vt-row{ opacity:1 !important; transform:none !important; transition:none !important; }
  .vt-ico, .vt-ico svg, .vt-ico--clock svg polyline{ animation:none !important; transform:none !important; }
}

/* PADRINATO — fascia CTA immersiva: foto lemure (soggetto a dx) + velo scuro, testo a sx.
   Rompe la sequenza di card su crema → è il momento di conversione "far parte al progetto".
   NB: foto tarata su an-lemure.jpg (soggetto a destra); se si cambia, riverificare il fuoco. */
.padrinato.padr-hero{ position:relative; overflow:hidden; background:#0a0a08; padding:0; }
.padr-bg{ position:absolute; inset:-8% 0; z-index:0; will-change:transform; }
.padr-img{ position:absolute; inset:0; background:url('../img/an-lemure.jpg') 68% center/cover; transform:scale(1.05); }
.padr-scrim{ position:absolute; inset:0; z-index:1;
  background:linear-gradient(90deg, rgba(8,8,6,.92) 0%, rgba(8,8,6,.74) 32%, rgba(8,8,6,.30) 60%, rgba(8,8,6,.04) 100%), linear-gradient(0deg, rgba(8,8,6,.32), rgba(8,8,6,.12)); }
.padr-hero .wrap{ position:relative; z-index:2; }
.padr-inner{ max-width:600px; color:#fff; padding:clamp(84px,14vh,158px) 0; }
.padr-hero .padr-eyebrow{ display:block; font-family:var(--font-accent); font-style:italic; font-size:clamp(16px,1.5vw,20px); color:var(--giallo); margin-bottom:16px; text-shadow:0 1px 10px rgba(0,0,0,.6); }
.padr-hero h2{ font-family:var(--font-heading); font-weight:400; text-transform:uppercase; font-size:clamp(34px,5vw,64px); line-height:1.02; letter-spacing:.5px; color:#fff; margin-bottom:20px; text-shadow:0 2px 22px rgba(0,0,0,.5); }
.padr-hero p{ font-size:clamp(15px,1.2vw,17.5px); line-height:1.7; color:rgba(255,255,255,.92); max-width:52ch; margin-bottom:30px; text-shadow:0 1px 12px rgba(0,0,0,.55); }
.padr-actions{ display:flex; gap:16px; flex-wrap:wrap; }
.btn-outline-dark{ background:transparent; color:var(--nero); border:2px solid var(--nero); }
.btn-outline-dark:hover{ background:var(--nero); color:#fff; transform:translateY(-3px); }
@media (prefers-reduced-motion: no-preference){ .padr-img{ animation:vt-ken 16s ease-in-out infinite alternate; } }
@media (prefers-reduced-motion: reduce){ .padr-bg{ transform:none !important; } }
@media (max-width:820px){
  .padr-img{ background-position:72% center; }
  .padr-scrim{ background:linear-gradient(180deg, rgba(8,8,6,.5) 0%, rgba(8,8,6,.42) 42%, rgba(8,8,6,.86) 100%); }
  .padr-inner{ max-width:none; text-align:center; padding:clamp(64px,10vh,112px) 0; }
  .padr-actions{ justify-content:center; }
}

/* FOOTER (il tag <footer> è il template-part del tema) */
footer{ background:var(--nero); color:#cfcfcf; padding:72px 0 36px; }
.foot-grid{ display:grid; grid-template-columns:1.4fr 1fr 1.2fr; gap:40px; padding-bottom:44px; border-bottom:1px solid rgba(255,255,255,.12); }
/* Il logo ha una CLASSE perché WooCommerce carica
   `.woocommerce img, .woocommerce-page img{ height:auto; max-width:100% }`: una classe
   batte qualsiasi numero di selettori di tipo, quindi `footer img` (0,0,2) — e anche
   `body footer img` (0,0,3) — perdeva, e sul negozio il logo diventava 406×213 invece
   di 152×80. Con `.foot-logo` siamo a (0,1,1) e vinciamo per ordine di dichiarazione. */
footer img.foot-logo{ height:80px; width:auto; margin-bottom:20px; }
footer h4{ color:#fff; font-family:var(--font-heading); font-weight:400; font-size:20px; letter-spacing:.5px; margin-bottom:18px; text-transform:uppercase; }
footer .care-line{ color:var(--giallo); font-weight:700; letter-spacing:1px; font-size:14px; margin-bottom:18px; }
footer p, footer a{ font-size:15px; line-height:1.9; }
footer a:hover{ color:var(--giallo); }
.iban{ background:rgba(255,255,255,.06); border-radius:14px; padding:16px 18px; margin-top:10px; font-size:14px; }
.iban span{ color:#fff; font-weight:700; }
.foot-bottom{ padding-top:28px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; font-size:13px; color:#8a8a8a; }

/* REVEAL (blur-in) */
/* Nascosti SOLO se il JS delle animazioni e' vivo (html.wf-anim, vedi
   wf-home.js): senza JS il contenuto resta visibile, mai pagina vuota. */
html.wf-anim .reveal, html.wf-anim .reveal-left, html.wf-anim .reveal-right, html.wf-anim .reveal-zoom{ opacity:0; filter:blur(7px); transition:opacity .9s ease, transform .9s cubic-bezier(.16,1,.3,1), filter .9s ease; will-change:opacity, transform, filter; }
html.wf-anim .reveal{ transform:translateY(16px); }      /* sale dal basso: poco, cosi' a meta' corsa non sembra sfasato */
html.wf-anim .reveal-left{ transform:translateX(-48px); }            /* entra da sinistra */
html.wf-anim .reveal-right{ transform:translateX(48px); }            /* entra da destra */
html.wf-anim .reveal-zoom{ transform:scale(.9); }                    /* zoom-in */
/* ⚠️ Il prefisso html.wf-anim DEVE esserci anche qui: la regola che nasconde
   (`html.wf-anim .reveal`) ha specificita' 0-2-1, quindi senza prefisso questa
   (0-2-0) perde e il contenuto resta invisibile PER SEMPRE anche dopo che il JS
   ha aggiunto .in. E' successo davvero: tutto il sito online bianco. */
html.wf-anim .reveal.in, html.wf-anim .reveal-left.in, html.wf-anim .reveal-right.in, html.wf-anim .reveal-zoom.in{ opacity:1; transform:none; filter:blur(0); }
.d1{ transition-delay:.08s; } .d2{ transition-delay:.16s; } .d3{ transition-delay:.24s; } .d4{ transition-delay:.32s; }
@media (prefers-reduced-motion: reduce){
  .reveal, .reveal-left, .reveal-right, .reveal-zoom{ opacity:1 !important; transform:none !important; filter:none !important; transition:none !important; }
  .hero2 .bg{ animation:none; } .hero2 .col{ animation:none; } .hero2 .scroll-cue .line::after{ animation:none; }
}

/* RESPONSIVE */
@media (max-width:900px){
  .nav-cta .btn{ display:none; }
  .burger{ display:flex; }
  .nav-menu{ display:none; position:absolute; top:78px; left:0; right:0; background:#fff; border-bottom:1px solid var(--bordo); box-shadow:0 18px 30px rgba(0,0,0,.10); max-height:calc(100svh - 78px); overflow:auto; padding:6px 0 18px; }
  header.menu-open .nav-menu{ display:block; }
  .nav-menu .menu{ flex-direction:column; align-items:stretch; gap:0; }
  .nav-menu .menu > li > a{ padding:14px 28px; font-size:16px; border-radius:0; }
  .nav-menu .has-sub > a::after, .nav-menu .menu-item-has-children > a::after{ margin-left:auto; }
  .nav-menu .submenu, .nav-menu .sub-menu{ position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; border:none; border-radius:0; padding:0 0 8px; min-width:0; background:transparent; }
  .nav-menu .submenu a, .nav-menu .sub-menu a{ padding:9px 40px; color:var(--grigio); white-space:normal; }
  /* cifre mobile: striscia unica dei 4 numeri in fila (come desktop) */
  .cifre-grid{ grid-template-columns:repeat(4,1fr); gap:6px; padding:38px 0; }
  .cifra:not(:last-child)::after{ display:none; }
  .cifra .num{ font-size:clamp(25px,7.5vw,46px); }
  .cifra .lab{ font-size:9.5px; letter-spacing:.5px; margin-top:8px; }
  .foot-grid{ grid-template-columns:1fr; }
  /* VISITA tagliando → impilato (foto sopra, biglietto sotto) */
  .visita-ticket{ grid-template-columns:1fr; }
  .visita-ticket::before, .visita-ticket::after{ display:none; }
  .vt-photo{ min-height:230px; }
  .vt-panel::before{ left:20px; right:20px; top:0; bottom:auto; width:auto; height:2px;
    background:repeating-linear-gradient(to right, var(--bordo) 0 7px, transparent 7px 15px); }
  .wf-home section{ padding:64px 0; }
}
@media (max-width:820px){
  .hero2 .grid{ grid-template-columns:1fr; gap:28px; padding-bottom:52px; }
  .hero2 .col, .hero2 .col.zoo{ max-width:560px; justify-self:start; }
  .hero2 .scroll-cue{ display:none; }
  .hero2 .scrim{ background:linear-gradient(to top, rgba(0,0,0,.93) 0%, rgba(0,0,0,.55) 48%, rgba(0,0,0,.2) 100%); }
}
@media (max-width:540px){ .exp-grid{ grid-template-columns:1fr; } }

/* Terza riga colorata del titolo hero — presente in ENTRAMBE le colonne (simmetria):
   azzurra per la Fondazione, gialla per lo Zoo (ognuna nel proprio brand). */
.hp-head .hp-head-tag{ display:block; font-size:.52em; line-height:1.15; margin-top:.18em; color:#7cc0ee; text-shadow:0 2px 6px rgba(0,0,0,.6), 0 0 16px rgba(0,0,0,.62); }
.hp-zoo .hp-head-tag{ color:#ffd24a; }

/* descrizioni card esperienze laterali (testi dal Doc) */
.exp-side .exp-body p{ color:rgba(255,255,255,.88); font-size:13.5px; line-height:1.45; margin-bottom:8px; }

/* Split "Non solo uno zoo": la Fondazione è AZZURRA, non verde (brand) */
.anime-found{ border-color:rgba(18,97,164,.42) !important; --edge:#1261a4 !important; }
.anime-found:hover{ border-color:#1261a4 !important; }
.anime-found .anime-num{ color:rgba(18,97,164,.10) !important; }   /* watermark "1974" */
.anime-found .anime-tag{ color:#1261a4 !important; }               /* "LA FONDAZIONE · DAL 1974" */
.anime-found .anime-link:hover{ color:#1261a4 !important; }        /* link "Chi siamo" */

/* Card "due anime": testo sempre aperto (rimossi i "Leggi tutto") */
.anime-body{ max-height:none !important; overflow:visible !important; }
.anime-body::after{ display:none !important; }
/* Titolo su una sola riga (es. "Un mondo da esplorare") */
.anime .sb-title{ font-size:clamp(24px,2.4vw,34px); white-space:nowrap; }
@media (max-width:760px){ .anime .sb-title{ white-space:normal; } }

/* ============ SOCIAL NEL FOOTER ============ */
.foot-social{ list-style:none; display:flex; gap:12px; margin:18px 0 0; padding:0; }
.foot-social a{ display:grid; place-items:center; width:40px; height:40px; border-radius:50%;
  background:rgba(255,255,255,.10); color:#fff; transition:background .25s ease, transform .25s ease, color .25s ease; }
.foot-social a:hover{ background:var(--giallo); color:var(--nero); transform:translateY(-2px); }
.foot-social svg{ width:19px; height:19px; }
@media (prefers-reduced-motion: reduce){ .foot-social a{ transition:none; } .foot-social a:hover{ transform:none; } }

/* L'icona del carrello nell'header, accanto al pulsante dei biglietti. */
.nav-carrello{ position:relative; display:inline-flex; align-items:center; color:var(--nero);
  margin-right:14px; }
.nav-carrello svg{ width:26px; height:26px; }
.nav-carrello__n{ position:absolute; top:-7px; right:-9px; min-width:18px; height:18px;
  display:flex; align-items:center; justify-content:center; padding:0 5px; border-radius:999px;
  background:var(--giallo); color:var(--nero); font-size:11px; font-weight:700; line-height:1; }


/* ------------------------------------------------------------------
   PULSANTI DELLA HOME (blocchi Gutenberg)
   Le regole qui sopra (.btn-primary, .btn-ghost, .btn-outline-w...) sono
   nate quando i pulsanti erano <a class="btn btn-primary"> scritti a mano.
   Ora sono Pulsanti veri di Gutenberg: la classe di colore sta sul
   CONTENITORE <div class="wp-block-button btn-primary"> e il pezzo che si
   vede e' il <a class="wp-block-button__link"> dentro.
   Senza queste regole il contenitore si dipingeva da solo e il link
   restava con l'aspetto di serie di WordPress: rettangolo squadrato fuori,
   pillola gialla dentro (lo Zoo lo ha visto sui pulsanti della home).
   Le stesse regole esistono gia' per le pagine interne in wf-pages.css,
   prefissate .wf-page; la home ha il suo wrapper .wf-home e restava fuori.
   ------------------------------------------------------------------ */
.wf-home .wp-block-button .wp-block-button__link{
  display:inline-flex; align-items:center; gap:10px; padding:15px 30px; border-radius:50px;
  font-family:var(--font-body); font-weight:700; font-size:16px; border:none; cursor:pointer;
  transition:transform .25s cubic-bezier(.34,1.56,.64,1), box-shadow .25s, background .25s;
  letter-spacing:.2px; text-decoration:none; white-space:nowrap;
}
.wf-home .wp-block-button.btn-primary .wp-block-button__link{ background:var(--giallo); color:var(--nero); box-shadow:0 6px 18px rgba(252,186,3,.35); }
.wf-home .wp-block-button.btn-primary .wp-block-button__link:hover{ transform:translateY(-3px); box-shadow:var(--shadow-hover); background:var(--giallo-scuro); }
.wf-home .wp-block-button.btn-outline-w .wp-block-button__link{ background:transparent; color:#fff; border:2px solid #fff; }
.wf-home .wp-block-button.btn-outline-w .wp-block-button__link:hover{ background:#fff; color:var(--verde-scuro); transform:translateY(-3px); }
.wf-home .wp-block-button.btn-green .wp-block-button__link{ background:var(--verde); color:#fff; box-shadow:0 6px 18px rgba(75,107,38,.3); }
.wf-home .wp-block-button.btn-green .wp-block-button__link:hover{ transform:translateY(-3px); background:var(--verde-scuro); }
.wf-home .wp-block-button.btn-ghost .wp-block-button__link{ background:transparent; color:var(--nero); border:2px solid var(--nero); }
.wf-home .wp-block-button.btn-ghost .wp-block-button__link:hover{ transform:translateY(-3px); background:var(--nero); color:var(--bianco); }

/* Il contenitore non disegna niente: colore e bordo appartengono al link. */
.wf-home .wp-block-button.btn-primary,
.wf-home .wp-block-button.btn-outline-w,
.wf-home .wp-block-button.btn-green,
.wf-home .wp-block-button.btn-ghost{
  background:transparent !important; border:none !important;
  box-shadow:none !important; padding:0 !important; color:inherit;
}

/* I due pulsanti di "Puoi farlo anche tu" stavano affiancati perche' erano
   <a> in fila dentro un div. Diventati blocchi, ognuno si porta dietro il suo
   contenitore .wp-block-buttons, che e' un blocco a tutta larghezza: senza
   questa regola si impilavano uno sotto l'altro. Stesso trattamento della
   testata delle pagine interne (.ph-cta in wf-pages.css). */
.pad-actions{ display:flex; flex-wrap:wrap; gap:14px; align-items:center; }

@media (max-width:640px){
  /* etichetta lunga a capo invece di sbordare, come nelle pagine interne */
  .wf-home .wp-block-button .wp-block-button__link{
    padding:12px 22px; font-size:15px; white-space:normal; max-width:100%;
    text-align:center; justify-content:center;
  }
}

/* ------------------------------------------------------------------
   IL CAMBIO LINGUA nella barra in alto.
   Prima erano quattro sigle grigie in fila e nessuno le vedeva. Ora e'
   una tendina con il mappamondo e un bordo: si nota, e dentro ci sono i
   nomi per esteso, che si capiscono meglio delle sigle.
   ------------------------------------------------------------------ */
.nav-lingue{ position:relative; margin-right:14px; }
.nav-lingue > summary{
  display:inline-flex; align-items:center; gap:7px; cursor:pointer;
  padding:7px 12px; border:2px solid var(--nero); border-radius:50px;
  font-weight:700; font-size:13.5px; letter-spacing:.5px; color:var(--nero);
  list-style:none; user-select:none; transition:background .2s, color .2s;
}
.nav-lingue > summary::-webkit-details-marker{ display:none; }
.nav-lingue > summary svg{ width:16px; height:16px; }
.nav-lingue > summary::after{
  content:''; width:0; height:0; margin-left:1px;
  border-left:4px solid transparent; border-right:4px solid transparent;
  border-top:5px solid currentColor; transition:transform .2s;
}
.nav-lingue > summary:hover{ background:var(--giallo); }
.nav-lingue[open] > summary{ background:var(--nero); color:#fff; }
.nav-lingue[open] > summary::after{ transform:rotate(180deg); }
.nav-lingue__menu{
  position:absolute; top:calc(100% + 8px); right:0; z-index:60;
  min-width:150px; margin:0; padding:6px; list-style:none;
  background:#fff; border:1px solid var(--bordo); border-radius:12px;
  box-shadow:0 12px 30px rgba(0,0,0,.16);
}
.nav-lingue__menu li{ list-style:none; }
.nav-lingue__menu a,
.nav-lingue__menu .is-attiva{
  display:block; padding:9px 12px; border-radius:8px;
  font-size:14.5px; font-weight:600; text-decoration:none; color:var(--nero);
}
.nav-lingue__menu a:hover{ background:var(--crema); }
.nav-lingue__menu .is-attiva{ background:var(--giallo); }

@media (max-width:1100px){
  .nav-lingue{ margin-right:10px; }
  .nav-lingue > summary{ padding:6px 10px; font-size:13px; }
  .nav-lingue__menu{ right:auto; left:0; }
}
