/* ScalarPrana Italia — versione 3: la v2 portata in chiaro
   Stessa struttura narrativa e stesse animazioni, oro e violetto su fondo luminoso.
   Animazioni con GSAP + ScrollTrigger. */

/* ---------- caratteri serviti dal nostro dominio ----------
   Gli stessi file che serviva Google Fonts, copiati in assets/fonts/.
   Così nessuna richiesta parte verso fonts.gstatic.com e il visitatore
   non trasferisce il proprio IP a Google solo per leggere una pagina.
   Sono file variabili: 400 e 500 puntano allo stesso woff2. */

@font-face{
  font-family:'Bodoni Moda';font-style:normal;font-weight:400;font-display:swap;
  src:url(../fonts/bodoni-moda-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Bodoni Moda';font-style:normal;font-weight:400;font-display:swap;
  src:url(../fonts/bodoni-moda-latin-ext.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:'Bodoni Moda';font-style:normal;font-weight:500;font-display:swap;
  src:url(../fonts/bodoni-moda-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Bodoni Moda';font-style:normal;font-weight:500;font-display:swap;
  src:url(../fonts/bodoni-moda-latin-ext.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
@font-face{
  font-family:'Bodoni Moda';font-style:italic;font-weight:400;font-display:swap;
  src:url(../fonts/bodoni-moda-italic-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Bodoni Moda';font-style:italic;font-weight:400;font-display:swap;
  src:url(../fonts/bodoni-moda-italic-latin-ext.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

@font-face{
  font-family:'Jost';font-style:normal;font-weight:300 500;font-display:swap;
  src:url(../fonts/jost-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Jost';font-style:normal;font-weight:300 500;font-display:swap;
  src:url(../fonts/jost-latin-ext.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

:root{
  color-scheme: light;

  --day:#F7F4F9;          /* fondo chiaro con deriva violetta */
  --day-2:#FFFFFF;
  --day-3:#EFE9F2;
  --gold:#A07818;         /* oro del marchio */
  --gold-em:#8A6512;      /* oro profondo: 4.88:1 sul fondo chiaro */
  --gold-core:#A07818;
  --gold-soft:#C9A24A;
  --violet:#704878;
  --violet-em:#4A2C52;
  --ink:#241A29;
  --dim:#5F5568;
  --hair:rgba(160,120,24,.42);
  --hair-soft:rgba(36,26,41,.16);

  --display:'Bodoni Moda', 'Didot', Georgia, serif;
  --body:'Jost', 'Helvetica Neue', Arial, sans-serif;

  --container:1240px;
  --top-h:78px;          /* altezza della barra fissa */
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
/* il salto all'ancora si ferma sotto la barra fissa, non sotto di essa */
[id]{scroll-margin-top:calc(var(--top-h) + 20px)}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{
  margin:0;
  background:var(--day);
  color:var(--ink);
  font-family:var(--body);
  font-size:18px;
  font-weight:300;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
::selection{background:var(--gold);color:#FFFFFF}
img{max-width:100%;height:auto;display:block}
h1,h2,h3{margin:0;font-weight:400}
p{margin:0 0 1.2rem}

a{color:var(--gold-em);text-decoration:none}
:focus-visible{outline:2px solid var(--gold);outline-offset:4px;border-radius:2px}

.wrap{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:1.6rem}

.eyebrow{
  font-size:.72rem;font-weight:500;letter-spacing:.32em;text-transform:uppercase;
  color:var(--gold-em);margin:0 0 1.4rem;
}

.skip{position:absolute;left:-9999px;z-index:300}
.skip:focus{left:1rem;top:1rem}

/* ---------- reveal: stato di partenza, GSAP porta a regime ---------- */
.rv{opacity:0;transform:translateY(28px)}
.line{display:block;overflow:hidden;padding:.14em 0;margin:-.14em 0}
.line > span{display:block;transform:translateY(105%)}
/* se GSAP non si carica, il contenuto resta comunque leggibile */
.nofx .rv,.nofx .line > span{opacity:1;transform:none}

/* ============ barra alta ============ */
.top{
  position:fixed;top:0;left:0;right:0;z-index:100;
  display:flex;align-items:center;gap:1.5rem;
  min-height:var(--top-h);
  padding:.9rem 1.6rem;
  background:transparent;
  border-bottom:1px solid transparent;
  transition:background-color 320ms ease, border-color 320ms ease, box-shadow 320ms ease;
}
.top.solid{
  /* bianco, non il colore della pagina: altrimenti la barra è invisibile */
  background:rgba(255,255,255,.94);
  -webkit-backdrop-filter:saturate(150%) blur(14px);
  backdrop-filter:saturate(150%) blur(14px);
  border-bottom-color:var(--hair);
  box-shadow:0 12px 32px -28px rgba(36,26,41,.6);
}
.top .mark{display:flex;align-items:center;gap:.8rem;text-decoration:none;color:var(--ink)}
/* 42px: il massimo che sta nei 78px della barra senza toccare i bordi */
.top .mark .icon{width:42px;height:43px}
.top .mark b{font-family:var(--display);font-size:1.45rem;font-weight:400;letter-spacing:.02em}
.top .mark sup{font-size:.46rem;color:var(--gold-em);vertical-align:super}
.top nav{margin-left:auto;display:flex;gap:2.2rem}
.top nav a{display:inline-flex;align-items:center;min-height:42px;font-size:.9rem;font-weight:400;letter-spacing:.05em;color:var(--dim);transition:color 220ms ease}
.top nav a:hover{color:var(--gold-em)}
.top-cta{flex:none;white-space:nowrap}

/* ============ 1. apertura ============ */
.opening{
  position:relative;min-height:100svh;
  display:flex;align-items:center;
  padding:8rem 0 5rem;overflow:hidden;
}
.stage{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;overflow:hidden}
.stage > *{grid-area:1/1}
.halo{
  width:min(150vh,132vw);aspect-ratio:1;
  background:radial-gradient(circle at center,
    rgba(160,120,24,.26) 0%,
    rgba(112,72,120,.18) 34%,
    rgba(247,244,249,0) 66%);
  pointer-events:none;
}
.opening-rose{
  width:min(94vh,86vw);height:min(94vh,86vw);
  opacity:.2;
}
.opening-grid{position:relative;width:100%;display:grid;gap:3.2rem;align-items:center}
@media (min-width:1000px){
  .opening-grid{grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:4.5rem}
}
.opening-text{min-width:0}
.opening-film{min-width:0}
.opening h1{
  font-family:var(--display);
  font-size:clamp(2.2rem,4vw,3.5rem);
  line-height:1.16;letter-spacing:-.015em;
  margin-bottom:1.6rem;
}
.opening h1 em{font-style:italic;color:var(--gold-em)}
.opening .say{
  font-size:clamp(1.05rem,1.7vw,1.28rem);
  color:var(--dim);max-width:36ch;font-weight:300;margin-bottom:2.2rem;
}
/* ---------- CTA: un solo sistema, identico ovunque ---------- */
/* .actions   = la riga dei pulsanti
   .cta-phone = la riga "Oppure chiama ..." che sta sempre sotto
   .cta-block = il contenitore con filetto usato nelle pagine interne */
.actions{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}
.cta-phone{
  margin:1.5rem 0 0;font-size:1rem;color:var(--dim);
  display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;
}
.cta-phone a{
  display:inline-flex;align-items:center;min-height:44px;
  font-size:1.12rem;color:var(--ink);
  border-bottom:1px solid var(--hair);
  transition:color 220ms ease,border-color 220ms ease;
}
.cta-phone a:hover{color:var(--gold-em);border-color:var(--gold)}
/* Il blocco CTA vive dentro .prose nelle pagine interne, ma non è testo
   corrente: è un componente. Senza queste due righe la regola dei link nei
   paragrafi vinceva per ordine di file e il numero diventava viola solo lì,
   dando due facce allo stesso componente su due pagine. */
.prose .cta-block .cta-phone a{color:var(--ink);border-bottom-color:var(--hair)}
.prose .cta-block .cta-phone a:hover{color:var(--gold-em);border-bottom-color:var(--gold)}
.cta-block{margin-top:4rem;padding-top:2.5rem;border-top:1px solid var(--hair)}

.cue{
  position:absolute;left:1.6rem;bottom:2.2rem;
  display:flex;align-items:center;gap:.9rem;
  font-size:.7rem;letter-spacing:.28em;text-transform:uppercase;color:var(--dim);
}
.cue i{display:block;width:56px;height:1px;background:var(--gold);transform-origin:left center}

/* ---------- pulsanti ----------
   Tre stili e due misure, e in tutto il sito non ce ne sono altri:
   .b-pieno   l'azione principale della schermata. Una sola per schermata.
   .b-linea   l'alternativa: stessa forma, senza il peso del pieno.
   .b-testo   l'uscita di servizio, quella che non deve attirare nessuno.
   Le misure sono .b (normale) e .b-sm. Per i pulsanti fatti di sola icona
   c'è .b-icona più sotto, che è la stessa famiglia in forma quadrata.

   I nomi dicono il ruolo, non il colore: "b-gold" su un pulsante che un
   giorno non sarà più oro è una bugia che resta nel codice per anni.

   Gli stili sono scritti .b.b-pieno invece che .b-pieno di proposito. Con la
   specificità di una classe sola bastava una regola di testo discendente
   (.prose a, che colora i link nei paragrafi) per ridipingere di viola il
   testo dentro un pulsante. È successo davvero. Con due classi non succede. */
.b{
  display:inline-flex;align-items:center;justify-content:center;gap:.7rem;
  min-height:56px;padding:.9rem 2rem;
  font-family:var(--body);font-size:.98rem;font-weight:500;letter-spacing:.04em;
  line-height:1.25;text-align:center;text-decoration:none;
  border-radius:100px;border:1px solid transparent;cursor:pointer;
  transition:background-color 260ms ease,color 260ms ease,border-color 260ms ease,transform 240ms ease;
}
.b.b-sm{min-height:46px;padding:.62rem 1.35rem;font-size:.88rem}

.b.b-pieno{background:var(--gold);color:#150C1A;border-color:var(--gold)}
.b.b-pieno:hover{background:var(--gold-em);border-color:var(--gold-em);color:#FFFFFF}

.b.b-linea{background:transparent;color:var(--ink);border-color:var(--hair)}
.b.b-linea:hover{background:var(--day-2);border-color:var(--gold);color:var(--gold-em)}

.b.b-testo{
  background:transparent;border-color:transparent;color:var(--dim);
  min-height:44px;padding:.5rem .7rem;
  text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px;
}
.b.b-testo:hover{color:var(--gold-em);background:transparent}

/* sola icona: stessa famiglia, forma quadrata */
.b-icona{
  display:grid;place-items:center;flex:none;
  width:48px;height:48px;padding:0;
  background:transparent;color:var(--ink);
  border:1px solid var(--hair);border-radius:50%;cursor:pointer;
  transition:background-color 240ms ease,color 240ms ease,border-color 240ms ease;
}
.b-icona:hover{background:var(--day-2);border-color:var(--gold);color:var(--gold-em)}
.b-icona.b-sm{width:40px;height:40px}

/* ---------- il lettore video, dentro l'apertura ---------- */
.player{
  position:relative;padding:12px;background:var(--day-2);
  transform-origin:center;
  box-shadow:0 34px 80px -48px rgba(36,26,41,.5);
}
.player::before{content:"";position:absolute;inset:0;border:1px solid var(--hair);pointer-events:none}
.player::after{content:"";position:absolute;inset:5px;border:1px solid rgba(160,120,24,.20);pointer-events:none}
.player-inner{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--day-3)}
.player-inner iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ---------- copertina del video ----------
   L'iframe di YouTube non è nella pagina: parte solo dopo un clic, e solo
   se il consenso c'è. Finché non c'è, verso youtube.com non parte nulla. */
.player-cover{
  position:absolute;inset:0;width:100%;height:100%;padding:0;
  border:0;background:var(--day-3);cursor:pointer;display:block;
}
.player-cover img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform 600ms ease,filter 400ms ease;
}
.player-cover::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(36,26,41,.06) 0%,rgba(36,26,41,.34) 100%);
}
.player-cover:hover img{transform:scale(1.03);filter:saturate(108%)}
.player-play{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  z-index:2;display:flex;align-items:center;justify-content:center;
  width:78px;height:78px;border-radius:50%;
  background:rgba(255,255,255,.92);border:1px solid var(--hair);
  box-shadow:0 18px 40px -22px rgba(36,26,41,.7);
  transition:background-color 260ms ease,transform 260ms ease;
}
.player-play svg{width:26px;height:26px;fill:var(--gold-em);margin-left:4px}
.player-cover:hover .player-play{background:#FFFFFF;transform:translate(-50%,-50%) scale(1.06)}
.player-cover:focus-visible{outline:2px solid var(--gold);outline-offset:-4px}

/* la riga in basso: dice a chi clicca dove sta per andare */
.player-src{
  position:absolute;left:0;right:0;bottom:0;z-index:2;
  margin:0;padding:.7rem 1rem;
  font-size:.76rem;letter-spacing:.06em;color:#FFFFFF;
  background:linear-gradient(180deg,rgba(36,26,41,0),rgba(36,26,41,.62));
  text-align:center;
}

@media (max-width:600px){
  .player-play{width:62px;height:62px}
  .player-play svg{width:21px;height:21px}
}
@media (prefers-reduced-motion:reduce){
  .player-cover img,.player-play{transition:none}
  .player-cover:hover img{transform:none}
}

.film-cap{
  display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  margin:1.1rem 0 0;padding-inline:2px;
}
.film-cap .t{font-family:var(--display);font-size:1.08rem;color:var(--ink)}
.film-cap .d{font-size:.86rem;color:var(--dim);letter-spacing:.04em}

/* ============ 3. le voci ============ */
.learn{position:relative;background:var(--day);overflow:hidden}
.learn-rail{display:flex;align-items:center;height:100svh;will-change:transform}
.lesson{
  flex:0 0 min(78vw,860px);
  padding-inline:clamp(1.6rem,5vw,5rem);
  display:flex;flex-direction:column;justify-content:center;gap:2rem;
}
.lesson .lead{
  margin:0;font-family:var(--display);font-weight:400;
  font-size:clamp(1.5rem,3.1vw,2.6rem);line-height:1.28;letter-spacing:-.01em;
  color:var(--ink);
}
.lesson .lead em{font-style:italic;color:var(--gold-em)}
.lesson .who{margin:0;display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap;border-top:1px solid var(--hair);padding-top:1.2rem}
.lesson .who b{font-family:var(--body);font-size:1.05rem;font-weight:500;letter-spacing:.06em;color:var(--gold-em)}
.lesson .who span{font-size:.92rem;color:var(--dim)}
.learn-label{
  position:absolute;top:calc(var(--top-h) + 2rem);left:0;right:0;
  text-align:center;pointer-events:none;z-index:2;
}
.learn-label .eyebrow{margin:0}
.learn-bar{position:absolute;left:1.6rem;right:1.6rem;bottom:3rem;height:1px;background:var(--hair-soft);z-index:2}
.learn-bar i{display:block;height:100%;background:var(--gold);transform:scaleX(0);transform-origin:left center}

/* ============ 4. le due energie ============ */
.merge{position:relative;background:var(--day-2);overflow:hidden}
.merge-stage{
  position:relative;min-height:100svh;
  display:grid;place-items:center;
}
.orbs{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}
.orbs > *{grid-area:1/1}
.orb{
  width:min(52vh,44vw);aspect-ratio:1;border-radius:50%;
  mix-blend-mode:multiply;filter:blur(2px);
}
.orb-prana{background:radial-gradient(circle at 42% 38%,rgba(190,144,34,.72),rgba(160,120,24,.20) 58%,transparent 72%)}
.orb-scalar{background:radial-gradient(circle at 58% 44%,rgba(126,80,138,.66),rgba(112,72,120,.20) 58%,transparent 72%)}
.merge-rose{width:min(46vh,40vw);height:min(46vh,40vw);opacity:0}
.merge-copy{position:relative;text-align:center;max-width:34rem;padding-inline:1.6rem;isolation:isolate}
/* velatura morbida: il testo resta leggibile anche sopra le sfere accese */
.merge-copy::before{
  content:"";position:absolute;inset:-3.2rem -4rem;z-index:-1;pointer-events:none;
  background:radial-gradient(ellipse at center, rgba(247,244,249,.94) 0%, rgba(247,244,249,.82) 46%, rgba(247,244,249,0) 76%);
}
.merge-copy h2{font-family:var(--display);font-size:clamp(2rem,4.2vw,3.4rem);line-height:1.1;margin-bottom:1.2rem}
.merge-copy h2 em{font-style:italic;color:var(--gold-em)}
.merge-copy p{color:#463D50;margin:0}
.merge-legend{
  position:absolute;left:0;right:0;bottom:7%;z-index:1;
  display:flex;justify-content:center;gap:clamp(2rem,10vw,9rem);flex-wrap:wrap;
  padding-inline:1.6rem;
}
.leg{text-align:center;max-width:20rem}
.leg b{display:block;font-family:var(--display);font-size:1.5rem;font-weight:400;margin-bottom:.3rem}
.leg.p b{color:var(--gold-em)}
.leg.s b{color:var(--violet-em)}
.leg span{font-size:.92rem;color:#544A5E;line-height:1.6}

/* ============ 5. il percorso ============ */
.path{position:relative;padding:8rem 0 9rem;background:var(--day)}
.path-head{max-width:42rem;margin-bottom:5rem}
.path-head h2{font-family:var(--display);font-size:clamp(2rem,4vw,3.2rem);line-height:1.1;margin-bottom:1rem}
.path-head h2 em{font-style:italic;color:var(--gold-em)}
.path-head p{color:var(--dim);margin:0}

.path-body{position:relative;display:grid;gap:5rem}
.path-line{
  position:absolute;left:27px;top:8px;bottom:8px;width:2px;
  background:var(--hair-soft);
}
.path-line i{display:block;width:100%;height:100%;background:linear-gradient(to bottom,var(--gold),var(--violet-em));transform:scaleY(0);transform-origin:top center}
.stepx{position:relative;display:grid;grid-template-columns:56px 1fr;gap:2rem;align-items:start}
.stepx .dot{
  width:56px;height:56px;border-radius:50%;
  border:1px solid var(--hair);background:var(--day);
  display:grid;place-items:center;
  font-family:var(--display);font-size:1.3rem;color:var(--gold-em);
  position:relative;z-index:1;
}
.stepx h3{font-family:var(--display);font-size:clamp(1.5rem,2.6vw,2.1rem);line-height:1.2;margin-bottom:.6rem}
.stepx p{color:var(--dim);margin:0;max-width:44ch}
.stepx .free{display:inline-block;margin-top:1rem;font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-em);border:1px solid var(--hair);border-radius:100px;padding:.35rem 1rem}

/* ============ 6. chi ti accompagna ============ */
.guides{position:relative;padding:7rem 0 8rem;background:var(--day-3)}
.guides-head{max-width:40rem;margin-bottom:4rem}
.guides-head h2{font-family:var(--display);font-size:clamp(2rem,4vw,3.2rem);line-height:1.1}
.guides-head h2 em{font-style:italic;color:var(--gold-em)}
.guides-grid{display:grid;gap:3.5rem}
@media (min-width:860px){.guides-grid{grid-template-columns:repeat(2,1fr);gap:4rem}}
.guide{display:grid;gap:1.8rem}
.guide .por{position:relative;width:132px;height:132px}
.guide .por img{width:132px;height:132px;border-radius:50%;object-fit:cover;object-position:center top}
.guide .por::after{content:"";position:absolute;inset:-9px;border:1px solid var(--hair);border-radius:50%}
.guide h3{font-family:var(--display);font-size:1.9rem;line-height:1.15}
.guide .role{display:block;font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-em);margin:.5rem 0 1rem}
.guide .role i{display:block;font-style:normal;letter-spacing:.16em;color:var(--dim);margin-top:.4rem}
.guide p{color:var(--dim);font-size:1rem;margin:0 0 1.3rem}
.guide .tel{
  display:inline-flex;align-items:center;min-height:48px;
  font-size:1.16rem;letter-spacing:.03em;color:var(--ink);
  border-bottom:1px solid var(--hair);
  transition:color 220ms ease,border-color 220ms ease;
}
.guide .tel:hover{color:var(--gold-em);border-color:var(--gold)}

.origin{margin-top:5rem;padding-top:3rem;border-top:1px solid var(--hair);display:grid;gap:2.4rem}
@media (min-width:860px){.origin{grid-template-columns:.8fr 1.2fr;gap:4rem;align-items:start}}
.origin-who{display:grid;gap:1.6rem}
@media (min-width:480px) and (max-width:859px){.origin-who{grid-template-columns:132px 1fr;gap:1.5rem;align-items:center}}
.origin .por{position:relative;width:132px;height:132px}
.origin .por img{width:132px;height:132px;border-radius:50%;object-fit:cover;object-position:center top}
.origin .por::after{content:"";position:absolute;inset:-9px;border:1px solid var(--hair);border-radius:50%}
.origin h3{font-family:var(--display);font-size:1.6rem;margin-bottom:.5rem}
.origin .role{display:block;font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-em)}
.origin .role i{display:block;font-style:normal;letter-spacing:.16em;color:var(--dim);margin-top:.4rem}
.origin-bio{display:grid;gap:1.1rem}
.origin p{color:var(--dim);font-size:.98rem;margin:0}
.origin strong{color:var(--ink);font-weight:400}
.origin em,.origin cite{font-style:italic;color:var(--ink)}

/* ============ 7. invito ============ */
.invite{position:relative;overflow:hidden;padding:8rem 0 7rem;background:var(--day)}
.invite-stage{position:absolute;inset:0;display:grid;place-items:center;justify-items:end;pointer-events:none;overflow:hidden}
.invite-rose{width:min(78vh,74vw);height:min(78vh,74vw);opacity:.13;margin-right:-16%}
.invite-in{position:relative;display:grid;gap:3.5rem}
@media (min-width:940px){.invite-in{grid-template-columns:1.05fr .95fr;gap:5rem;align-items:center}}
.invite h2{font-family:var(--display);font-size:clamp(2.2rem,4.6vw,3.6rem);line-height:1.08;margin-bottom:1.2rem}
.invite h2 em{font-style:italic;color:var(--gold-em)}
.invite .say{color:var(--dim);font-size:1.1rem;max-width:38ch;margin-bottom:0}
.calls{display:grid;gap:0;margin-top:2.6rem;border-top:1px solid var(--hair)}
.calls a{
  display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;
  padding:1.7rem 0;border-bottom:1px solid var(--hair);
  transition:padding-left 300ms ease;
}
.calls a:hover{padding-left:.8rem}
.calls .nm{font-size:.94rem;color:var(--dim);letter-spacing:.04em}
/* Il numero non sta in Bodoni: in un didone le cifre hanno aste sottilissime e
   larghezze diverse fra loro, e un recapito va letto a colpo d'occhio. Jost 500
   con cifre tabulari tiene le colonne allineate e si distingue dai titoli. */
.calls .no{
  font-family:var(--body);font-weight:500;font-size:1.55rem;letter-spacing:.04em;
  font-variant-numeric:tabular-nums lining-nums;
  color:var(--ink);transition:color 260ms ease;
}
.calls a:hover .no{color:var(--gold-em)}
.calls .mail .no{font-weight:400;font-size:1.05rem;letter-spacing:.02em}

/* ---------- il modulo dell'invito ----------
   Per chi non telefona. Campi pochi e tutti con etichetta visibile: i segnaposto
   dentro al campo spariscono appena si scrive, e chi torna indietro a controllare
   non sa più che cosa stava compilando.
   Il campo "Sito" è un'esca per i robot. Va nascosto con la tecnica del ritaglio,
   non con left:-9999px: .invite ha overflow:hidden, e un elemento spinto oltre il
   bordo continua a gonfiare scrollWidth. */
.modulo{
  position:relative;
  background:var(--day-2);
  border:1px solid var(--hair-soft);
  border-radius:18px;
  padding:2.1rem 1.6rem 1.8rem;
}
@media (min-width:520px){.modulo{padding:2.4rem 2.2rem 2rem}}
.modulo-tit{font-family:var(--display);font-size:1.5rem;line-height:1.2;margin:0 0 1.6rem}

/* invia.php rimanda alla pagina con ?errore=... e questo riquadro si mostra.
   Con la validazione del browser attiva non si vede quasi mai: è la rete di
   sicurezza per chi arriva da un invio che non è andato a buon fine. */
.modulo-errore{
  margin:-.6rem 0 1.6rem;
  padding:.85rem 1rem;
  border:1px solid #B3261E;
  border-left-width:3px;
  border-radius:10px;
  background:rgba(179,38,30,.06);
  color:#8C1D18;
  font-size:.9rem;
  line-height:1.55;
}

.campo{margin:0 0 1.1rem}
.campo label{
  display:block;font-size:.74rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;
  color:var(--dim);margin-bottom:.5rem;
}
.campo .opz{font-size:.76rem;font-weight:400;letter-spacing:.06em;text-transform:none}
.campo input,.campo textarea{
  width:100%;min-height:52px;padding:.8rem 1rem;
  font-family:var(--body);font-size:1rem;font-weight:400;line-height:1.5;color:var(--ink);
  background:var(--day);border:1px solid var(--hair-soft);border-radius:10px;
  transition:border-color 220ms ease,background-color 220ms ease;
}
.campo textarea{min-height:118px;resize:vertical}
.campo input:hover,.campo textarea:hover{border-color:var(--hair)}
/* il contorno del fuoco lo mette la regola globale :focus-visible: qui cambia
   solo il bordo, così il campo attivo si vede anche col mouse */
.campo input:focus,.campo textarea:focus{border-color:var(--gold);background:var(--day-2)}

.esca{position:absolute;width:1px;height:1px;padding:0;margin:-1px;border:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

.consenso{display:flex;align-items:flex-start;gap:.75rem;margin:0 0 1.5rem}
.consenso input{flex:none;width:20px;height:20px;margin:.2rem 0 0;accent-color:var(--gold)}
.consenso label{font-size:.9rem;line-height:1.55;color:var(--dim)}
.consenso a{text-decoration:underline;text-underline-offset:3px}

.modulo button{width:100%}
.modulo-nota{font-size:.84rem;line-height:1.5;color:var(--dim);text-align:center;margin:1rem 0 0}

/* ============ chiusura ============ */
.foot{background:var(--day);border-top:1px solid var(--hair-soft);padding:3.5rem 0 2.5rem;font-size:.9rem;color:var(--dim)}
.foot-grid{display:grid;gap:2.5rem;margin-bottom:2.5rem}
@media (min-width:820px){.foot-grid{grid-template-columns:1.6fr 1fr 1fr}}
.foot h2{font-size:.7rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-em);margin:0 0 1.1rem;font-weight:500;font-family:var(--body)}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:.35rem}
.foot li{display:flex;align-items:center;flex-wrap:wrap;gap:.3rem}
.foot a{color:var(--dim);transition:color 200ms ease;display:inline-flex;align-items:center;min-height:30px}
.foot a:hover{color:var(--gold-em)}
.foot .mark{display:flex;align-items:center;gap:.7rem;margin-bottom:1.2rem}
.foot .mark .icon{width:28px;height:29px}
.foot .mark b{font-family:var(--display);font-size:1.1rem;font-weight:400;color:var(--ink)}
.foot-end{border-top:1px solid var(--hair-soft);padding-top:1.6rem;display:grid;gap:.6rem;font-size:.82rem;opacity:.8}

/* ============ barra azioni mobile ============ */
.bar{display:none}
@media (max-width:860px){
  .bar{
    display:grid;grid-template-columns:1fr 1fr;
    position:fixed;left:0;right:0;bottom:0;z-index:120;
    background:rgba(255,255,255,.96);border-top:1px solid var(--hair);
    -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  }
  /* i due tasti in fondo sono gli stessi .b del resto del sito: prima erano
     due mezze barre piatte, con un oro e un bordo definiti solo qui */
  .bar{grid-template-columns:1fr 1fr;gap:.55rem;padding:.55rem .9rem calc(.55rem + env(safe-area-inset-bottom))}
  .bar .b{width:100%}
  body{padding-bottom:65px}
}

/* ============ adattamenti ============ */
.menu-btn{display:none}

@media (max-width:1320px){
  .top{gap:1.1rem}
  .top nav{gap:1.35rem}
  .top nav a{font-size:.85rem;letter-spacing:.03em}
}
@media (max-width:1180px){
  /* sotto questa soglia le sei voci non ci stanno: si apre il pannello */
  .top nav{display:none}
  .menu-btn{display:inline-flex}
}
@media (max-width:640px){
  /* con Menu e pulsante affiancati non ci sta: il pulsante vive nel pannello e in basso */
  .top-cta{display:none}
}
@media (max-width:370px){
  /* sui telefoni più stretti resta la sola icona: l'etichetta non ci sta */
  .burger-lbl{display:none}
  .top{padding:.9rem 1.1rem;gap:.7rem}
  .top .mark b{font-size:1.22rem}
  .top .mark .icon{width:34px;height:35px}
}
@media (max-width:620px){
  body{font-size:17px}
  .top{padding:1rem 1.2rem}
  .opening{padding:6rem 0 5rem;min-height:auto}
  .actions .b{width:100%}
  .opening-grid{gap:2.4rem}
  .path{padding:5rem 0 6rem}
  .path-body{gap:3.5rem}
  .stepx{grid-template-columns:44px 1fr;gap:1.2rem}
  .stepx .dot{width:44px;height:44px;font-size:1.05rem}
  .path-line{left:21px}
  .guides,.invite{padding:5rem 0}
}

/* schermi stretti: le voci si impilano invece di scorrere in orizzontale */
@media (max-width:860px){
  /* le due energie: niente pin, quindi la legenda sta nel flusso sotto il testo */
  .merge-stage{
    min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:2.8rem;padding:6rem 0 6.5rem;
  }
  /* l'alone decorativo resta dietro al testo, non a cavallo della legenda */
  .orbs{inset:0 0 auto;height:60%}
  .merge-copy{max-width:36rem}
  .merge-legend{position:static;flex-direction:column;gap:2rem;padding-inline:1.6rem}
  .leg{max-width:26rem}
  .learn-rail{display:grid;height:auto;gap:3.5rem;padding:6rem 0 5rem}
  .lesson{flex:none;width:100%;padding-inline:0}
  .learn-bar{display:none}
  .learn-label{position:static;text-align:left;padding-inline:0}
  .learn{padding-inline:1.6rem}
}

/* chi preferisce meno movimento: tutto fermo e visibile */
@media (prefers-reduced-motion:reduce){
  .rv{opacity:1;transform:none}
  .line > span{transform:none}
  *{animation-duration:.001ms !important;transition-duration:.001ms !important}
}

/* ============ pagina interna ============ */
.page-head{
  position:relative;overflow:hidden;
  display:flex;align-items:center;min-height:70svh;
  padding:calc(var(--top-h) + 6rem) 0 5rem;
  background:var(--day);
}
.page-stage{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;overflow:hidden}
.page-stage > *{grid-area:1/1}
.page-halo{
  width:min(130vh,116vw);aspect-ratio:1;
  background:radial-gradient(circle at center,
    rgba(160,120,24,.24) 0%,
    rgba(112,72,120,.16) 36%,
    rgba(247,244,249,0) 68%);
}
.page-rose{width:min(76vh,70vw);height:min(76vh,70vw);opacity:.16}
.page-head .wrap{position:relative;width:100%}
.page-head h1{
  font-family:var(--display);
  font-size:clamp(2.6rem,5.4vw,4.6rem);
  line-height:1.08;letter-spacing:-.015em;max-width:14ch;
}
.page-head h1 em{font-style:italic;color:var(--gold-em)}
.page-head .say{
  font-size:clamp(1.08rem,1.7vw,1.32rem);color:var(--dim);
  max-width:40ch;margin:1.6rem 0 0;
}
.crumb{
  display:inline-flex;align-items:center;gap:.55rem;min-height:44px;
  font-size:.76rem;font-weight:500;letter-spacing:.2em;text-transform:uppercase;
  color:var(--gold-em);margin-bottom:.2rem;
}
.crumb:hover{color:var(--violet)}

.article{padding:5rem 0 5rem;background:var(--day-2)}
.article + .article{padding-top:4rem}
/* pagina di lettura: colonna unica centrata, non un testo appoggiato a sinistra */
.page-head .wrap,.article .wrap{max-width:46rem}
.prose{max-width:none}
.prose > * + *{margin-top:1.5rem}
.prose p{font-size:1.08rem;line-height:1.78;color:var(--ink);margin:0}
.prose p.lede{font-size:clamp(1.2rem,2vw,1.42rem);line-height:1.5;color:var(--ink);font-weight:300}
.prose h2{
  font-family:var(--display);font-weight:400;
  font-size:clamp(1.55rem,2.6vw,2.15rem);line-height:1.2;
  margin-top:3.4rem;
}
.prose h2 em{font-style:italic;color:var(--gold-em)}
.prose strong{font-weight:500;color:var(--ink)}
.prose a:not(.b){color:var(--violet);border-bottom:1px solid var(--hair)}
.prose a:not(.b):hover{color:var(--gold-em);border-color:var(--gold)}

/* il termine tecnico, staccato dal testo */
.term{
  margin:2.2rem 0;padding:1.6rem 1.9rem;
  border:1px solid var(--hair);border-radius:3px;background:var(--day);
}
.term b{
  display:block;font-family:var(--display);font-weight:400;
  font-size:1.55rem;line-height:1.2;color:var(--gold-em);margin-bottom:.35rem;
}
.term span{font-size:.96rem;color:var(--dim)}

/* il principio di confine, nelle parole esatte */
.notice{
  margin:2.6rem 0;padding:2rem 2.2rem;
  background:var(--day-3);border-left:3px solid var(--gold);
}
.notice p{font-size:1.02rem;line-height:1.72;margin:0}
.notice p + p{margin-top:1rem}

/* la frase che chiude il ragionamento */
.pull{
  margin:3.6rem 0 0;padding:2.6rem 0;
  border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);
  font-family:var(--display);font-weight:400;
  font-size:clamp(1.5rem,3vw,2.25rem);line-height:1.26;
  color:var(--ink);text-align:center;
}
.pull em{font-style:italic;color:var(--gold-em)}

/* ---------- la comparativa ---------- */
.compare-band{background:var(--day);border-block:1px solid var(--hair-soft);padding:5rem 0}
.compare-band .wrap{max-width:64rem}
.compare-head{text-align:center;max-width:36rem;margin:0 auto 3.2rem}
.compare-head h2{font-family:var(--display);font-weight:400;font-size:clamp(1.85rem,3.2vw,2.7rem);line-height:1.14}
.compare-head h2 em{font-style:italic;color:var(--gold-em)}
.compare-head p{color:var(--dim);margin:1rem 0 0;font-size:1.02rem}

.compare{display:grid;gap:1.5rem}
@media (min-width:800px){.compare{grid-template-columns:repeat(2,1fr);gap:2rem}}
.compare > div{padding:2.2rem 2rem;border-radius:3px;background:var(--day-2)}
.compare .is{border:1px solid var(--hair)}
.compare .isnt{border:1px solid var(--hair-soft)}
.compare h3{
  font-family:var(--display);font-weight:400;font-size:1.75rem;line-height:1.1;
  margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--hair-soft);
}
.compare .is h3{color:var(--gold-em)}
.compare .isnt h3{color:var(--violet-em)}
.compare ul{list-style:none;margin:0;padding:0;display:grid;gap:1rem}
.compare li{position:relative;padding-left:1.8rem;font-size:1.02rem;line-height:1.6;color:var(--ink)}
.compare li::before{content:"";position:absolute;left:0}
.compare .is li::before{top:.5em;width:11px;height:11px;border-radius:50%;border:2px solid var(--gold)}
.compare .isnt li::before{top:.82em;width:13px;height:2px;background:var(--violet)}
.compare-note{margin:3rem auto 0;max-width:40rem;text-align:center;font-size:1rem;color:var(--dim);line-height:1.7}

/* le due energie, affiancate */
.duo{display:grid;gap:1px;background:var(--hair-soft);border:1px solid var(--hair-soft);margin:2rem 0}
@media (min-width:720px){.duo{grid-template-columns:repeat(2,1fr)}}
.duo > div{background:var(--day-2);padding:1.7rem 1.6rem}
.duo h3{font-family:var(--display);font-weight:400;font-size:1.4rem;line-height:1.2;margin-bottom:.5rem}
.duo .p h3{color:var(--gold-em)}
.duo .s h3{color:var(--violet)}
.duo p{font-size:.98rem;color:var(--dim);margin:0}



@media (max-width:620px){
  .page-head{padding:calc(var(--top-h) + 3.5rem) 0 3.5rem;min-height:auto}
  .article{padding:3.5rem 0}
  .compare-band{padding:3.5rem 0}
  .term,.notice,.compare > div{padding:1.6rem 1.4rem}

}

/* ============ WhatsApp sempre a portata ============ */
.b.wa{
  position:fixed;left:1.4rem;bottom:1.4rem;z-index:110;
  gap:.6rem;padding:0 1.35rem 0 1.05rem;min-height:54px;
  box-shadow:0 14px 34px -14px rgba(36,26,41,.6);
}
.b.wa:hover{transform:translateY(-2px)}
.wa svg{width:22px;height:22px;fill:currentColor;flex:none}

@media (max-width:860px){
  /* sopra la barra delle azioni, per non sovrapporsi */
  .b.wa{bottom:calc(65px + .9rem);left:.9rem;padding:0;width:54px}
  .wa .lbl{display:none}
}
.b.wa{transition:background-color 240ms ease,color 240ms ease,border-color 240ms ease,transform 240ms ease,opacity 240ms ease}

/* ============ i livelli successivi ============ */
.levels{display:grid;gap:2rem;margin-top:1rem}
.level{
  background:var(--day-2);border:1px solid var(--hair-soft);border-radius:3px;
  padding:2.3rem 2rem;display:grid;gap:1.6rem;
}
@media (min-width:820px){
  .level{grid-template-columns:auto 1fr;gap:2.6rem;padding:2.8rem 2.6rem}
}
.level-num{
  width:64px;height:64px;
  display:grid;place-items:center;
  border:1px solid var(--hair);border-radius:50%;
  font-family:var(--display);font-size:1.45rem;color:var(--gold-em);
}
/* il livello già concluso: presente come premessa, non come proposta */
.level.done{background:var(--day);border-style:dashed}
.level.done .level-num{border-style:dashed;color:var(--dim)}
.level.done .level-kicker{color:var(--dim)}

.level-kicker{font-size:.72rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-em);margin:0 0 .55rem}
.level h2{font-family:var(--display);font-weight:400;font-size:clamp(1.6rem,2.8vw,2.2rem);line-height:1.15;margin-bottom:.9rem}
.level h2 em{font-style:italic;color:var(--gold-em)}
.level p{font-size:1.02rem;line-height:1.72;color:var(--dim);margin:0 0 1rem}
.level p:last-child{margin-bottom:0}
.level .what{list-style:none;margin:1.5rem 0 0;padding:0;display:grid;gap:.8rem}
.level .what li{position:relative;padding-left:1.7rem;font-size:1rem;line-height:1.6;color:var(--ink)}
.level .what li::before{content:"";position:absolute;left:0;top:.5em;width:10px;height:10px;border-radius:50%;border:2px solid var(--gold)}
.level .req{
  margin-top:1.7rem;padding-top:1.2rem;border-top:1px solid var(--hair-soft);
  font-size:.92rem;color:var(--dim);
}
.level .req b{color:var(--ink);font-weight:500}
.level .req a:not(.b){color:var(--violet);border-bottom:1px solid var(--hair);display:inline-block;padding-block:3px}
.level .req a:not(.b):hover{color:var(--gold-em);border-color:var(--gold)}

@media (max-width:620px){
  .level{padding:1.8rem 1.5rem}
  .level-num{width:54px;height:54px;font-size:1.25rem}
}

.stepx p a:not(.b){color:var(--violet);border-bottom:1px solid var(--hair)}
.stepx p a:not(.b):hover{color:var(--gold-em);border-color:var(--gold)}

/* ============ menu mobile: pannello a tutto schermo ============ */
/* il burger è un .b .b-linea .b-sm: qui resta solo la posizione */
.menu-btn{margin-left:auto}

.burger{position:relative;display:block;width:19px;height:13px;flex:none}
.burger i{position:absolute;left:0;right:0;height:1.5px;border-radius:2px;background:currentColor}
.burger i:nth-child(1){top:0}
.burger i:nth-child(2){top:5.75px}
.burger i:nth-child(3){top:11.5px}

.menu-pannello{
  position:fixed;inset:0;z-index:150;
  background:var(--day);
  display:flex;flex-direction:column;
  padding:.7rem 1.5rem 1.1rem;
  padding-block:clamp(.6rem,1.6vh,.9rem) clamp(.9rem,2.4vh,1.5rem);
  padding-block:clamp(.6rem,1.6svh,.9rem) clamp(.9rem,2.4svh,1.5rem);
  /* niente scorrimento dentro al menu: il contenuto si adatta all'altezza */
  overflow:hidden;
  opacity:0;visibility:hidden;transform:translateY(-10px);
  transition:opacity 280ms ease,
             transform 400ms cubic-bezier(.22,.75,.28,1),
             visibility 0s linear 400ms;
}
.menu-aperto .menu-pannello{
  opacity:1;visibility:visible;transform:none;
  transition:opacity 260ms ease,
             transform 420ms cubic-bezier(.22,.75,.28,1),
             visibility 0s;
}
.menu-pannello::after{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:url("../img/rosone.png") no-repeat right -22% bottom -14%;
  background-size:min(78vw,420px) auto;
  opacity:.13;
}
.menu-testa{
  position:relative;display:flex;align-items:center;justify-content:space-between;
  gap:1rem;flex:none;
  min-height:clamp(52px,9vh,var(--top-h));
  min-height:clamp(52px,9svh,var(--top-h));
}
/* stessa misura della barra alta: il pannello la copre, e un marchio che
   rimpicciolisce nel passaggio si nota */
.menu-testa .mark{display:flex;align-items:center;gap:.8rem;color:var(--ink)}
.menu-testa .mark .icon{width:42px;height:43px}
.menu-testa .mark b{font-family:var(--display);font-size:1.45rem;font-weight:400}
.menu-testa .mark sup{font-size:.46rem;color:var(--gold-em);vertical-align:super}

.menu-chiudi span{position:relative;display:block;width:17px;height:17px}
.menu-chiudi i{position:absolute;top:50%;left:0;right:0;height:1.5px;border-radius:2px;background:currentColor}
.menu-chiudi i:nth-child(1){transform:rotate(45deg)}
.menu-chiudi i:nth-child(2){transform:rotate(-45deg)}

.menu-nav{
  position:relative;display:flex;flex-direction:column;
  margin-top:clamp(.8rem,3vh,2.2rem);
  margin-top:clamp(.8rem,3svh,2.2rem);
}
.menu-nav a{
  font-family:var(--display);font-weight:400;line-height:1.1;
  font-size:clamp(1.15rem,3.4vh,2.05rem);
  font-size:clamp(1.15rem,3.4svh,2.05rem);
  color:var(--ink);padding:.3rem 0;
  display:flex;align-items:center;
  min-height:clamp(44px,7.1vh,62px);
  min-height:clamp(44px,7.1svh,62px);
  border-bottom:1px solid var(--hair-soft);
  opacity:0;transform:translateY(16px);
}
.menu-nav a:last-child{border-bottom:0}
.menu-nav a[aria-current="page"]{color:var(--gold-em)}
.menu-aperto .menu-nav a{
  opacity:1;transform:none;
  transition:opacity 380ms ease, transform 460ms cubic-bezier(.22,.75,.28,1);
}
.menu-aperto .menu-nav a:nth-child(1){transition-delay:.06s}
.menu-aperto .menu-nav a:nth-child(2){transition-delay:.10s}
.menu-aperto .menu-nav a:nth-child(3){transition-delay:.14s}
.menu-aperto .menu-nav a:nth-child(4){transition-delay:.18s}
.menu-aperto .menu-nav a:nth-child(5){transition-delay:.22s}
.menu-aperto .menu-nav a:nth-child(6){transition-delay:.26s}

.menu-piede{
  position:relative;margin-top:auto;
  padding-top:clamp(.9rem,2.8vh,2rem);
  padding-top:clamp(.9rem,2.8svh,2rem);
  display:grid;gap:clamp(.5rem,1.6vh,1rem);
  gap:clamp(.5rem,1.6svh,1rem);
  opacity:0;transform:translateY(16px);
}
.menu-aperto .menu-piede{
  opacity:1;transform:none;
  transition:opacity 380ms ease .3s, transform 460ms cubic-bezier(.22,.75,.28,1) .3s;
}
.menu-tel{
  display:inline-flex;align-items:center;gap:.5rem;
  min-height:clamp(44px,5.4vh,48px);
  min-height:clamp(44px,5.4svh,48px);
  font-size:1rem;color:var(--dim);
}
.menu-tel b{font-weight:500;font-size:1.16rem;color:var(--ink)}
.menu-piede .b{
  width:100%;
  min-height:clamp(48px,7vh,56px);
  min-height:clamp(48px,7svh,56px);
}

/* schermo basso in orizzontale: due colonne, così niente scorrimento */
@media (max-height:520px) and (orientation:landscape){
  .menu-testa .mark .icon{width:32px;height:33px}
  .menu-testa .mark b{font-size:1.2rem}
  .menu-nav{display:grid;grid-template-columns:repeat(2,1fr);column-gap:2rem;margin-top:.6rem}
  .menu-nav a{font-size:1.05rem;min-height:44px;padding:.2rem 0}
  .menu-nav a:nth-last-child(2){border-bottom:0}
  .menu-piede{grid-template-columns:auto 1fr;align-items:center;gap:1.2rem;padding-top:.8rem}
  .menu-pannello::after{display:none}
}

@media (prefers-reduced-motion:reduce){
  .menu-pannello,.menu-nav a,.menu-piede{transition:none !important}
}

/* ============ banner cookie ============
   Il sito non ha analytics né pubblicità: l'unica scelta reale riguarda
   il video di YouTube. Il banner dice esattamente questo, senza gonfiare.
   "Rifiuta" e "Accetta" hanno lo stesso peso visivo: sono due vie pari.
   È una finestra al centro, con il sito sfocato dietro: la domanda si fa
   una volta sola, e va vista. */

.cb-velo{
  position:fixed;inset:0;z-index:399;
  display:flex;align-items:flex-end;justify-content:center;
  overflow-y:auto;
  background:rgba(36,26,41,.26);
  -webkit-backdrop-filter:blur(16px) saturate(120%);backdrop-filter:blur(16px) saturate(120%);
  opacity:0;transition:opacity 420ms ease;
}
.cb-velo[hidden]{display:none}
.cb-velo.cb-in{opacity:1}

/* la barra: larga quanto la finestra, appoggiata in basso */
.cb{
  position:relative;width:100%;margin-top:auto;
  padding:1.8rem 1.6rem 1.7rem;
  background:var(--day-2);
  border-top:1px solid var(--hair);
  box-shadow:0 -30px 80px -40px rgba(36,26,41,.75);
  transform:translateY(100%);
  transition:transform 480ms cubic-bezier(.16,.84,.44,1);
}
.cb-velo.cb-in .cb{transform:none}

/* il contenuto invece non si allarga all'infinito: sta al centro,
   nella stessa colonna del resto del sito */
.cb-corpo{
  position:relative;
  width:100%;max-width:1080px;margin-inline:auto;
  display:grid;grid-template-columns:1fr auto;gap:1.4rem 3rem;align-items:center;
}
/* col pannello aperto la barra diventa una colonna sola: testo, scelte, pulsanti */
.cb[data-scelte] .cb-corpo{grid-template-columns:1fr}
.cb-testo{min-width:0}
@media (max-width:860px){
  .cb-corpo{grid-template-columns:1fr;gap:1.2rem}
}
.cb::before{content:"";position:absolute;left:0;right:0;top:4px;height:1px;background:rgba(160,120,24,.22);pointer-events:none}
.cb h2{
  font-family:var(--display);font-size:1.34rem;font-weight:400;color:var(--ink);
  margin:0 0 .5rem;padding-right:2.4rem;line-height:1.3;
}
.cb p{font-size:.9rem;line-height:1.62;color:var(--dim);margin:0}
.cb p a:not(.b){color:var(--gold-em);text-decoration:underline;text-underline-offset:3px}
.cb-azioni{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;justify-content:flex-end}
.cb-azioni .b{min-width:148px}
@media (max-width:860px){
  .cb-azioni{justify-content:flex-start}
  .cb-azioni .b{flex:1 1 auto}
}
.cb-x{position:absolute;top:-.5rem;right:-.5rem;z-index:2}
.cb-x svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.6}

/* il pannello delle scelte: una voce sola, perché una sola ne esiste */
.cb-scelte{display:none;grid-column:1/-1;order:2;border-top:1px solid var(--hair-soft);padding-top:.4rem}
.cb[data-scelte] .cb-scelte{display:block}
.cb[data-scelte] .cb-azioni{order:3}
.cb-voce{display:flex;gap:1rem;align-items:flex-start;padding:.75rem 0}
.cb-voce + .cb-voce{border-top:1px solid var(--hair-soft)}
.cb-voce .testo{flex:1}
.cb-voce b{display:block;font-weight:500;font-size:.92rem;color:var(--ink);margin-bottom:.15rem}
.cb-voce span{display:block;font-size:.82rem;line-height:1.55;color:var(--dim)}
.cb-voce .fisso{
  flex:0 0 auto;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold-em);padding-top:.2rem;
}
/* interruttore */
.sw{flex:0 0 auto;position:relative;display:inline-flex;align-items:center;cursor:pointer;padding-top:.15rem}
.sw input{position:absolute;opacity:0;width:52px;height:30px;margin:0;cursor:pointer}
.sw i{
  display:block;width:52px;height:30px;border-radius:100px;
  background:var(--day-3);border:1px solid var(--hair-soft);
  transition:background-color 220ms ease,border-color 220ms ease;
}
.sw i::after{
  content:"";position:absolute;top:5px;left:5px;width:20px;height:20px;border-radius:50%;
  background:#FFFFFF;box-shadow:0 2px 6px rgba(36,26,41,.3);
  transition:transform 220ms ease;
}
.sw input:checked + i{background:var(--gold);border-color:var(--gold)}
.sw input:checked + i::after{transform:translateX(22px)}
.sw input:focus-visible + i{outline:2px solid var(--gold);outline-offset:3px}

@media (max-width:560px){
  .cb{padding:1.5rem 1.2rem 1.3rem}
  .cb h2{font-size:1.16rem}
  .cb-azioni .b{width:100%;flex:1 1 100%}
}
/* schermo basso in orizzontale: la barra scorre invece di sbordare */
@media (max-height:560px){
  .cb{padding-block:1.2rem}
  .cb-scelte .cb-voce{padding:.5rem 0}
}
@media (prefers-reduced-motion:reduce){
  .cb-velo,.cb{transition:none}
  .sw i,.sw i::after{transition:none}
}

/* ============ pagine informative (privacy, cookie) ============ */
.legale{padding:calc(var(--top-h) + 5rem) 0 5rem;background:var(--day)}
.legale-in{max-width:760px;margin-inline:auto}
.legale h1{
  font-family:var(--display);font-size:clamp(2rem,4.4vw,3rem);line-height:1.12;
  color:var(--ink);margin:0 0 1rem;
}
.legale h1 em{font-style:italic;color:var(--violet-em)}
.legale .agg{font-size:.82rem;letter-spacing:.06em;color:var(--dim);margin:0 0 2.6rem}
.legale h2{
  font-family:var(--display);font-size:1.5rem;line-height:1.3;color:var(--ink);
  margin:3rem 0 1rem;padding-top:1.6rem;border-top:1px solid var(--hair-soft);
}
.legale h3{font-family:var(--body);font-size:1rem;font-weight:500;color:var(--ink);margin:1.8rem 0 .6rem}
.legale p{font-size:1rem;line-height:1.75;color:var(--dim);margin:0 0 1.1rem}
.legale strong{color:var(--ink);font-weight:500}
.legale a:not(.b){color:var(--gold-em);text-decoration:underline;text-underline-offset:3px}
.legale ul{margin:0 0 1.3rem;padding-left:1.1rem;color:var(--dim);line-height:1.75}
.legale li{margin-bottom:.5rem}
.legale li::marker{color:var(--gold)}
.legale .guida{
  background:var(--day-2);border:1px solid var(--hair);padding:1.4rem 1.5rem;margin:0 0 2.4rem;
}
.legale .guida p{margin:0 0 .5rem;font-size:.92rem}
.legale .guida p:last-child{margin:0}

/* scheda dei dati del titolare */
.titolare{background:var(--day-2);border:1px solid var(--hair);padding:1.5rem 1.6rem;margin:0 0 1.4rem}
.titolare dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:.5rem 1.4rem;font-size:.94rem}
.titolare dt{color:var(--dim);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;padding-top:.22rem}
.titolare dd{margin:0;color:var(--ink)}
.titolare dd a{color:var(--gold-em)}
@media (max-width:560px){
  .titolare dl{grid-template-columns:1fr;gap:.15rem}
  .titolare dt{margin-top:.7rem}
}

/* tabella dei cookie */
.tabella-cookie{overflow-x:auto;margin:0 0 1.8rem;border:1px solid var(--hair)}
.tabella-cookie table{width:100%;border-collapse:collapse;font-size:.88rem;min-width:520px;background:var(--day-2)}
.tabella-cookie th,.tabella-cookie td{padding:.85rem 1rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--hair-soft)}
.tabella-cookie th{
  font-weight:500;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--gold-em);background:var(--day-3);
}
.tabella-cookie tr:last-child td{border-bottom:0}
.tabella-cookie td{color:var(--dim)}
.tabella-cookie td:first-child{color:var(--ink);font-weight:400;white-space:nowrap}

/* i link legali, in coda al piede */
.foot-legale{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;margin:.3rem 0 0}
.foot-legale a{color:var(--dim);min-height:34px;transition:color 200ms ease}
.foot-legale a:hover{color:var(--gold-em)}

/* ============ domande frequenti ============
   Tutte le risposte sono visibili: niente pannelli da aprire. Chi legge
   scorre, e chi estrae passaggi (motori di ricerca e assistenti) trova il
   testo nell'HTML invece che dietro un clic. */
.faq{padding:calc(var(--top-h) + 4.5rem) 0 5rem;background:var(--day)}
.faq-in{max-width:820px;margin-inline:auto}
.faq .eyebrow{margin-bottom:1.2rem}
.faq .eyebrow a{color:var(--gold-em)}
.faq .eyebrow a:hover{color:var(--ink)}
.faq h1{
  font-family:var(--display);font-size:clamp(2.1rem,5vw,3.2rem);line-height:1.1;
  color:var(--ink);margin:0 0 1.1rem;
}
.faq h1 em{font-style:italic;color:var(--violet-em)}
.faq-lead{font-size:1.08rem;line-height:1.7;color:var(--dim);max-width:56ch;margin:0 0 2.4rem}
.faq-lead a:not(.b){color:var(--gold-em);text-decoration:underline;text-underline-offset:3px}

/* le quattro scorciatoie in cima */
.faq-indice{
  display:flex;flex-wrap:wrap;gap:.6rem;
  padding:1.2rem 0 0;border-top:1px solid var(--hair);margin-bottom:3.4rem;
}


.faq-gruppo{margin:0 0 3.6rem}
.faq-gruppo h2{
  font-family:var(--body);font-size:.72rem;font-weight:500;
  letter-spacing:.32em;text-transform:uppercase;color:var(--gold-em);
  margin:0 0 1.8rem;
}
.qa{padding:1.7rem 0;border-top:1px solid var(--hair-soft)}
.qa:first-of-type{border-top:0;padding-top:0}
.qa h3{
  font-family:var(--display);font-size:1.34rem;font-weight:400;line-height:1.35;
  color:var(--ink);margin:0 0 .7rem;
}
.qa p{font-size:1rem;line-height:1.75;color:var(--dim);margin:0;max-width:64ch}

/* il richiamo finale */
.faq-chiusa{
  position:relative;margin-top:1rem;padding:2.4rem 2.2rem;
  background:var(--day-2);border:1px solid var(--hair);
}
.faq-chiusa::before{content:"";position:absolute;inset:5px;border:1px solid rgba(160,120,24,.18);pointer-events:none}
.faq-chiusa h2{
  font-family:var(--display);font-size:1.6rem;font-weight:400;color:var(--ink);
  margin:0 0 .7rem;letter-spacing:0;text-transform:none;
}
.faq-chiusa p{font-size:1rem;line-height:1.7;color:var(--dim);margin:0 0 1.6rem;max-width:52ch}
.faq-azioni{display:flex;flex-wrap:wrap;gap:.7rem}

@media (max-width:620px){
  .faq{padding-top:calc(var(--top-h) + 3rem)}
  .faq-lead{font-size:1rem}
  .qa h3{font-size:1.18rem}
  .faq-chiusa{padding:1.8rem 1.4rem}
  .faq-azioni .b{width:100%}
}
