
@font-face{font-family:'Bricolage Grotesque';font-style:normal;font-weight:200 800;font-display:swap;src:url(/assets/fonts/bricolage-grotesque.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:'JetBrains Mono';font-style:normal;font-weight:500;font-display:swap;src:url(/assets/fonts/jetbrains-mono-500.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:'Manrope';font-style:normal;font-weight:200 800;font-display:swap;src:url(/assets/fonts/manrope.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}


:root{
  /* un solo mondo: navy della sera, oro della lampada */
  --canvas:#0b1330;--panel:#13214a;--panel-a:rgba(19,33,74,.46);--panel-2:#1a2c5e;
  --gold:#d4ac57;--gold-hover:#e6c46f;--gold-ink:#d4ac57;--gold-text:#d9b565;--gold-muted:rgba(212,172,87,.28);
  --rec:#e2483f;
  --text-primary:#f3efe6;--text-secondary:#b8c0d9;
  --line:rgba(184,192,217,.16);--line-strong:rgba(184,192,217,.56);--glass:rgba(255,255,255,.06);
  --input-bg:rgba(11,19,48,.72);--shadow:0 18px 50px rgba(0,0,0,.35);
  --display:"Bricolage Grotesque",Georgia,serif;--body:"Manrope",system-ui,sans-serif;--mono:"JetBrains Mono",ui-monospace,monospace;
  --ease:cubic-bezier(.22,.61,.36,1);--ease-out:cubic-bezier(.16,1,.3,1);
  --tshadow:0 1px 2px rgba(5,5,10,.95),0 3px 12px rgba(5,5,10,.78),0 10px 44px rgba(5,5,10,.8);
  --gutter:clamp(16px,4vw,56px);--max:1180px;--blur:14px;
}
*{box-sizing:border-box}
html,body{overflow-x:hidden;overflow-x:clip}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:84px}
body{margin:0;background:var(--canvas);color:var(--text-primary);font-family:var(--body);font-size:17px;line-height:1.6}
@keyframes pagein{to{opacity:1}}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
h1,h2,h3{font-family:var(--display);font-weight:800;line-height:1.05;letter-spacing:-.01em;margin:0}
p{margin:0}
.mono{font-family:var(--mono);font-weight:500;font-size:12px;letter-spacing:.14em;text-transform:uppercase}
.kicker{color:var(--gold-text);display:inline-flex;align-items:baseline;gap:10px;margin-bottom:18px}
.kicker::before{content:"";width:22px;height:1px;background:var(--gold-ink);align-self:center}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.skip{position:absolute;left:-999px;top:8px;background:var(--gold);color:#0b1330;padding:10px 14px;border-radius:8px;z-index:100;font-weight:600}
.skip:focus{left:8px}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px}

/* ---------- ambiente vivo: il filo d'oro scrubbato dallo scroll, luci, pulviscolo ---------- */
.env{position:fixed;inset:0;z-index:0;pointer-events:none;overflow:hidden;background:var(--canvas)}
.env .bgposter{position:absolute;inset:0;background:url("/assets/bg-poster.jpg") center/cover;opacity:.9}
#bgv{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.4s var(--ease);will-change:transform;transform:translateZ(0)}
.env.bg-ready #bgv{opacity:1}
.env .veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,19,48,.35),rgba(11,19,48,.55) 60%,rgba(11,19,48,.75))}
.env .glow{position:absolute;border-radius:50%;filter:blur(70px);will-change:transform;opacity:.9}
.env .g1{width:62vw;height:62vw;left:-14vw;top:-18vw;background:radial-gradient(circle,rgba(212,172,87,.16),rgba(212,172,87,0) 62%);animation:g1 34s ease-in-out -9s infinite alternate}
.env .g2{width:70vw;height:70vw;right:-22vw;bottom:-26vw;background:radial-gradient(circle,rgba(58,96,210,.30),rgba(58,96,210,0) 62%);animation:g2 42s ease-in-out -20s infinite alternate}
.env .g3{width:46vw;height:46vw;left:34vw;top:26vh;background:radial-gradient(circle,rgba(26,44,94,.9),rgba(26,44,94,0) 64%);animation:g3 28s ease-in-out -4s infinite alternate}
@keyframes g1{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(18vw,22vh,0) scale(1.18)}}
@keyframes g2{from{transform:translate3d(0,0,0) scale(1.05)}to{transform:translate3d(-20vw,-24vh,0) scale(.9)}}
@keyframes g3{from{transform:translate3d(-12vw,6vh,0) scale(.95)}to{transform:translate3d(12vw,-10vh,0) scale(1.15)}}
.env canvas{position:absolute;inset:0;width:100%;height:100%}
.env .grain{position:absolute;inset:0;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
@media (max-width:720px){.env .glow{filter:blur(46px)}.env .g1{width:120vw;height:120vw}.env .g2{width:130vw;height:130vw}.env .g3{width:90vw;height:90vw}}
main,footer{position:relative;z-index:1}

/* il mirino che viaggia: inquadra la sezione che stai leggendo */
#vfx{position:fixed;inset:0;z-index:2;pointer-events:none;opacity:0;transition:opacity .6s var(--ease)}
#vfx.on{opacity:1}
#vfx i{position:absolute;left:0;top:0;width:22px;height:22px;border:2px solid var(--gold);will-change:transform;opacity:.9;filter:drop-shadow(0 0 6px rgba(212,172,87,.5))}
#vfx i:nth-child(1){border-right:0;border-bottom:0}
#vfx i:nth-child(2){border-left:0;border-bottom:0}
#vfx i:nth-child(3){border-right:0;border-top:0}
#vfx i:nth-child(4){border-left:0;border-top:0}
@media (max-width:900px),(pointer:coarse),(prefers-reduced-motion:reduce){#vfx{display:none}}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px var(--gutter);background:linear-gradient(180deg,rgba(11,19,48,.55),rgba(11,19,48,0));transition:background .5s var(--ease),box-shadow .5s var(--ease)}
.nav.solid{background:rgba(11,19,48,.72);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));box-shadow:0 1px 0 var(--line)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none}
.brand .logo{width:42px;height:46px;border-radius:9px;background:#fffdf8;display:grid;place-items:center;padding:4px;box-shadow:0 2px 12px rgba(0,0,0,.35);flex:none}
.brand img{width:34px;height:auto}
.brand b{font-family:var(--display);font-weight:800;font-size:15px;line-height:1.05;letter-spacing:.01em}
.brand small{display:block;font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary);font-weight:500}
.links{display:flex;gap:4px;align-items:center}
.links a{text-decoration:none;font-weight:600;font-size:14px;padding:10px 12px;border-radius:8px;color:var(--text-secondary);transition:color .3s var(--ease),background .3s var(--ease)}
.links a:hover{color:var(--text-primary);background:rgba(255,255,255,.06)}
.navtc{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;letter-spacing:.14em;color:var(--text-secondary);padding:8px 10px;border:1px solid var(--line);border-radius:999px;background:var(--glass)}
.navtc .rec b{width:7px;height:7px}
.avail{display:inline-flex;align-items:center;gap:9px;padding:8px 13px 8px 11px;border-radius:999px;border:1px solid rgba(212,172,87,.6);background:rgba(11,19,48,.6);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-primary);text-shadow:none;white-space:nowrap;box-shadow:0 6px 24px rgba(0,0,0,.25)}
.avail:empty{display:none}
.avail i{width:8px;height:8px;border-radius:50%;background:#3ddc84;flex:none;animation:availpulse 2.2s ease-out infinite}
.avail b{color:var(--gold);font-weight:500;font-size:14px}
@keyframes availpulse{0%{box-shadow:0 0 0 0 rgba(61,220,132,.65)}100%{box-shadow:0 0 0 11px rgba(61,220,132,0)}}
.band .avail,.hero-static .avail{margin-bottom:16px}
.nav-avail{display:none}
@media (min-width:1360px){.nav-avail{display:inline-flex}}
@media (min-width:1360px) and (max-width:1599px){.navtc{display:none}}   /* con la pillola dei posti, il timecode torna solo sugli schermi molto larghi */
@media (min-width:901px){.links a{white-space:nowrap}}
@media (min-width:721px){.links .wa-link{display:none}}
@media (max-width:720px){.links .wa-link{color:var(--gold);font-weight:600}}
.risp{margin-top:12px;font-size:14px;color:var(--text-secondary)}
@media (max-width:720px){.iubenda-tp-btn{display:none!important}}
@media (min-width:901px) and (max-width:1100px){.links a[href="/#zone"]{display:none}}
@media (min-width:901px) and (max-width:960px){.nav{gap:6px}.links{gap:0}.links a{padding:10px 9px}}   /* appena sopra il menu a tendina: spazi più stretti così niente sfora */   /* sette voci non ci stanno: Zone resta nel piè di pagina */
@media (prefers-reduced-motion:reduce){.avail i{animation:none}}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;text-decoration:none;font-weight:600;font-size:15px;padding:13px 22px;border-radius:999px;border:1px solid transparent;cursor:pointer;font-family:var(--body);line-height:1;will-change:transform;transition:transform .35s var(--ease-out),background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease),box-shadow .35s var(--ease)}
.btn:hover{transform:translateY(-2px)}
.btn-gold{background:var(--gold);color:#0b1330;box-shadow:0 8px 30px rgba(212,172,87,.22)}
.btn-gold:hover{background:var(--gold-hover);box-shadow:0 12px 40px rgba(212,172,87,.36)}
.btn-ghost{background:rgba(11,19,48,.35);color:var(--text-primary);border-color:var(--line-strong);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold-hover)}
.btn-sm{padding:10px 16px;font-size:14px}
.wa{width:18px;height:18px;flex:none}
.menu{display:none;background:none;border:1px solid var(--line-strong);color:var(--text-primary);border-radius:8px;padding:8px 10px;font-family:var(--mono);font-size:12px;letter-spacing:.1em;cursor:pointer}
@media (max-width:1100px){.navtc{display:none}}
@media (max-width:900px){
  .links{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;background:rgba(11,19,48,.97);padding:10px var(--gutter) 18px;box-shadow:0 20px 40px rgba(0,0,0,.4);max-height:calc(100dvh - 100%);overflow-y:auto;overscroll-behavior:contain}
  .links.open{display:flex}
  .links a{padding:14px 12px;border-bottom:1px solid var(--line)}
  .menu{display:inline-block}
}

/* ---------- hero: pinned scrub ---------- */
.hero{position:relative;height:500vh}
.stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;background:var(--canvas)}
.poster{position:absolute;inset:0;background-size:cover;background-position:62% 50%;opacity:0;transition:opacity .9s var(--ease)}
.stage.poster-ready .poster{opacity:1}
#hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 50%;opacity:0;transition:opacity 1.2s var(--ease);will-change:transform;transform:translateZ(0)}
.stage.video-ready #hero-video{opacity:1}
.stage.video-failed #hero-video{display:none}
.scrim{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse 120% 90% at 50% 45%,rgba(10,10,18,0) 35%,rgba(10,10,18,.62) 100%)}
.stage::after{content:"";position:absolute;left:0;right:0;bottom:0;height:18vh;pointer-events:none;background:linear-gradient(180deg,rgba(11,19,48,0),rgba(11,19,48,.9))}
.ring{position:absolute;right:calc(var(--gutter) + 6px);bottom:26px;width:34px;height:34px;color:var(--gold);opacity:.9;transform:rotate(-90deg);transition:opacity .6s var(--ease);z-index:2}
.stage.video-ready .ring{opacity:0}
.chev{display:none;position:absolute;right:calc(var(--gutter) + 6px);bottom:26px;width:34px;height:34px;color:var(--gold);opacity:.9;z-index:2}
.stage.video-failed .chev{display:block}.stage.video-failed .ring{display:none}
.chev svg{width:100%;height:100%;animation:chev 2.4s ease-in-out infinite}
@keyframes chev{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}
.motes{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.mote{position:absolute;width:3px;height:3px;border-radius:50%;background:var(--gold);opacity:0;filter:blur(.5px)}
.stage.live .mote{animation:mote var(--d,16s) linear var(--dl,-4s) infinite}
@keyframes mote{0%{transform:translate3d(0,0,0);opacity:0}10%{opacity:.35}50%{opacity:.22}90%{opacity:.3}100%{transform:translate3d(var(--dx,30px),var(--dy,-120px),0);opacity:0}}

/* il mirino nell'hero */
.vf{position:absolute;left:50%;top:9%;width:30%;height:82%;pointer-events:none;will-change:transform;transform-origin:center}
.vf i{position:absolute;width:26px;height:26px;border:2px solid var(--gold);opacity:.85}
.vf i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0}
.vf i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0}
.vf i:nth-child(3){left:0;bottom:0;border-right:0;border-top:0}
.vf i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0}
.rec{display:inline-flex;align-items:center;gap:8px}
.rec b{position:relative;width:9px;height:9px;border-radius:50%;background:var(--rec);flex:none}
.rec b::after{content:"";position:absolute;inset:-5px;border-radius:50%;box-shadow:0 0 14px 3px rgba(226,72,63,.55);opacity:0;animation:recpulse 4s ease-in-out -1.3s infinite}
@keyframes recpulse{0%,100%{opacity:.15}50%{opacity:1}}
.hud{position:absolute;left:var(--gutter);bottom:26px;display:inline-flex;align-items:center;gap:12px;padding:8px 12px;color:var(--text-primary);background:rgba(8,8,15,.55);border:1px solid rgba(96,96,126,.3);border-radius:10px;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);text-shadow:0 1px 3px rgba(5,5,10,.85);font-family:var(--mono);font-size:12px;letter-spacing:.12em;z-index:2}

/* bande */
.band{position:absolute;left:var(--gutter);right:auto;top:50%;transform:translateY(-50%);width:min(41%,560px);opacity:0;pointer-events:none;text-shadow:var(--tshadow);--k:0;z-index:1}
.band{visibility:hidden}.band.on{visibility:visible}.band.on.cta .actions{pointer-events:auto}.band[data-fx="rise"] .actions{visibility:hidden}.band.cta .actions{visibility:visible}
.band::before{content:"";position:absolute;inset:-14% -10%;pointer-events:none;z-index:-1;opacity:calc(.25 + .75*var(--k,1));background:radial-gradient(ellipse 74% 62% at 42% 50%,rgba(5,5,10,var(--sa,.62)) 0%,rgba(5,5,10,calc(var(--sa,.62)*.66)) 46%,rgba(5,5,10,0) 76%)}
.band[data-i="1"],.band[data-i="4"]{--sa:.66}
.band .mono{color:var(--gold);margin-bottom:16px;display:block}
.band h1,.band h2,.band .h1,.band .q{font-family:var(--display);font-weight:800;line-height:1.05;letter-spacing:-.01em;margin:0;font-size:clamp(36px,4.5vw,66px);max-width:12ch}
.band h2.q,.band .q{font-size:clamp(30px,3.7vw,54px);max-width:15ch}
.band .sub{margin-top:18px;font-size:clamp(16px,1.35vw,20px);max-width:40ch;color:var(--text-primary)}
.band .actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.band .btn{text-shadow:none}
.w{display:inline-block;white-space:pre}
.c{display:inline-block}
.band[data-fx="punch"] .w{--kc:clamp(0,(var(--k,0) - var(--th,0))*3,1);--ks:clamp(0,(var(--k,0) - var(--th,0) - var(--sd,.1))*var(--ss,3.2),1);opacity:var(--kc);transform:scale(calc(.6 + (.4 + var(--ov,.12))*var(--kc) - var(--ov,.12)*var(--ks)))}
.band[data-fx="punch"] .w.em{--ov:.24;--sd:.16;--ss:2.6;color:var(--gold)}
.band[data-fx="depth"] .ln{display:block;--kc:clamp(0,(var(--k,0) - var(--th,0))*2.4,1);opacity:var(--kc);transform:scale(calc(.82 + .18*var(--kc)));transform-origin:left center}
.band[data-fx="grid"] .w{--kc:clamp(0,(var(--k,0) - var(--th,0))*2.8,1);opacity:var(--kc);transform:translateX(calc((1 - var(--kc))*-28px))}
.band[data-fx="rise"] .w{--kc:clamp(0,(var(--k,0) - var(--th,0))*3,1);opacity:var(--kc);transform:translateY(calc((1 - var(--kc))*18px))}
.band[data-fx="rise"] .sub{--ks:clamp(0,(var(--k,0) - .66)*4,1);opacity:var(--ks);transform:translateY(calc((1 - var(--ks))*10px))}
.band[data-fx="rise"] .actions{--kb:clamp(0,(var(--k,0) - .78)*5,1);opacity:var(--kb);transform:translateY(calc((1 - var(--kb))*10px))}

/* hero statico (i cinque cancelli) */
.hero-static{display:none;position:relative;min-height:100svh;padding:min(30svh,300px) var(--gutter) 40px;background:url("/assets/hero-ending.jpg") 66% 18%/cover;overflow:hidden;flex-direction:column;justify-content:flex-end}
.hero-static::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(11,19,48,.08) 0%,rgba(11,19,48,.25) 34%,rgba(11,19,48,.8) 52%,rgba(11,19,48,.96) 72%)}
.hero-static .inner{position:relative;z-index:2;max-width:var(--max);margin:0 auto;text-shadow:var(--tshadow)}
@media (max-width:720px){.hero-static{background-image:url("/assets/hero-ending-800.jpg")}.env .bgposter{background-image:url("/assets/bg-poster-800.jpg")}section.close .bg{background-image:url("/assets/hero-ending-800.jpg")}:root{--blur:8px}}
/* barra a portata di pollice, solo telefono */
.thumb{display:none;position:fixed;left:0;right:0;bottom:0;z-index:40;gap:10px;padding:10px var(--gutter) calc(10px + env(safe-area-inset-bottom));background:rgba(11,19,48,.88);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--line);transform:translateY(110%);transition:transform .5s var(--ease-out)}
.thumb.on{transform:none}
.thumb .btn{min-height:48px;padding:13px 16px}.thumb .btn-gold{flex:0 0 auto;white-space:nowrap}.thumb .btn-ghost{flex:1 1 0;min-width:0}
@media (max-width:720px){.thumb{display:flex}footer{padding-bottom:120px}.nav .btn{display:none}html{scroll-padding-bottom:calc(84px + env(safe-area-inset-bottom))}}
.hero-static .mono{color:var(--gold)}
.hero-static h1{font-size:clamp(30px,7.6vw,64px);max-width:15ch;line-height:1.02}
@media (max-width:720px){.hero-static h1{font-size:29px;max-width:none}.hero-static .sub{font-size:16px}}
.hero-static .sub{margin-top:14px;max-width:46ch;font-size:17px;line-height:1.4}
.hero-static .actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}
.hero-static .btn{text-shadow:none}
@media (prefers-reduced-motion:reduce){
  .hero{height:auto}
  .stage{display:none}
  .hero-static{display:flex}
  .env .bgposter{opacity:.55}
}
/* risparmio dati o video non disponibile: il JS spegne lo scrub e mostra l'hero statico */
.hero.stage-off{height:auto}
.hero.stage-off .stage{display:none}
.hero.stage-off .hero-static{display:flex}
/* telefono e tablet verticali: stesso viaggio a scorrimento, con il video verticale e le scritte in basso */
@media (max-width:720px),(orientation:portrait) and (max-width:1024px){
  .hero{height:380vh}
  .poster{background-position:50% 30%}
  #hero-video{object-position:50% 30%}
  .scrim{background:linear-gradient(180deg,rgba(10,10,18,.18) 0%,rgba(10,10,18,0) 28%,rgba(10,10,18,.5) 62%,rgba(10,10,18,.88) 100%)}
  .band{left:16px;right:16px;width:auto;top:auto;bottom:calc(12vh + env(safe-area-inset-bottom));transform:none}
  .band::before{inset:-14% -8%;background:radial-gradient(ellipse 96% 84% at 50% 62%,rgba(5,5,10,.74) 0%,rgba(5,5,10,.5) 50%,rgba(5,5,10,0) 80%)}
  .band h1,.band h2,.band .h1,.band .q{max-width:none;font-size:clamp(32px,9vw,46px)}
  .band h2.q,.band .q{font-size:clamp(27px,7.4vw,38px)}
  .band .sub{font-size:16px;max-width:none}
  .band .actions .btn{flex:1 1 auto;justify-content:center}
  .vf{left:14%;width:72%;top:7%;height:50%}
  .hud{left:16px;bottom:auto;top:74px;font-size:11px;padding:6px 10px}
  .ring,.chev{right:16px;bottom:auto;top:76px}
}
/* telefono in orizzontale (poca altezza): scritte ancorate in basso, sotto il menu fisso, senza HUD */
@media (max-height:560px){.hud,.chev,.motes,.ring{display:none}.band{top:auto;bottom:16px;transform:none;width:min(60%,560px)}.band h1,.band h2,.band .h1,.band .q{font-size:clamp(24px,3.6vw,34px)}.band h2.q,.band .q{font-size:clamp(22px,3vw,30px)}.band .sub{margin-top:10px;font-size:15px}.band .actions{margin-top:14px}}

/* ---------- sezioni ---------- */
section{position:relative;padding:clamp(72px,10vw,128px) 0}
.sec-head{max-width:820px;margin-bottom:clamp(36px,5vw,64px)}
.sec-head h2{font-size:clamp(30px,4vw,52px);max-width:22ch}
.sec-head .lede{margin-top:18px;color:var(--text-secondary);font-size:18px;max-width:60ch}
.io .part{opacity:0;transform:translateY(22px);transition:opacity .9s var(--ease-out),transform .9s var(--ease-out)}
.io.in .part{opacity:1;transform:none}
.io.in .part:nth-child(2){transition-delay:.09s}
.io.in .part:nth-child(3){transition-delay:.18s}
.io.in .part:nth-child(4){transition-delay:.27s}
.io.in .part:nth-child(5){transition-delay:.36s}
.io.in .part:nth-child(6){transition-delay:.45s}
.io.in.done .part:nth-child(n){transition-delay:0s}
.frame{position:relative}
.frame .cn{position:absolute;inset:-10px;pointer-events:none}
.frame .cn i{position:absolute;width:18px;height:18px;border:2px solid var(--gold);opacity:0;transition:opacity .8s var(--ease),transform .8s var(--ease-out)}
.frame .cn i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0;transform:translate(6px,6px)}
.frame .cn i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0;transform:translate(-6px,6px)}
.frame .cn i:nth-child(3){left:0;bottom:0;border-right:0;border-top:0;transform:translate(6px,-6px)}
.frame .cn i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0;transform:translate(-6px,-6px)}
.frame.lit .cn i{opacity:.95;transform:none}
body.vfx-on .frame.lit .cn i{opacity:0}
/* vetro: i pannelli lasciano intravedere il filo d'oro che scorre dietro */
.glass{background:var(--panel-a);border:1px solid var(--line);backdrop-filter:blur(var(--blur));-webkit-backdrop-filter:blur(var(--blur));box-shadow:var(--shadow),inset 0 1px 0 rgba(255,255,255,.06)}
.tilt{transform-style:preserve-3d;transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .5s var(--ease-out)}
.tilt.tilting{transition:transform .12s linear}
.io.in .part.tilt{transform:perspective(900px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg))}

/* promessa */
.promessa{padding-top:clamp(56px,8vw,96px)}
.big{font-family:var(--display);font-weight:800;font-size:clamp(56px,9vw,132px);line-height:.95;letter-spacing:-.02em;color:var(--gold)}
.big small{display:block;font-family:var(--body);font-weight:400;font-size:clamp(17px,1.6vw,22px);letter-spacing:0;color:var(--text-secondary);margin-top:14px;max-width:44ch}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:34px}
.chip{font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;padding:10px 14px;border:1px solid var(--line-strong);border-radius:999px;color:var(--text-primary);background:var(--glass);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.chip.gold{border-color:var(--gold);color:var(--gold)}
.callme{margin-top:44px;display:grid;grid-template-columns:1.1fr 1fr;gap:28px;align-items:end;padding:28px;border-radius:18px}
.callme h3{font-size:22px;font-family:var(--display)}
.callme form{display:flex;gap:10px;flex-wrap:wrap}
.field{display:flex;flex-direction:column;gap:6px;flex:1 1 200px}
label{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary)}
input,select,textarea{font:inherit;color:var(--text-primary);background:var(--input-bg);border:1px solid var(--line-strong);border-radius:10px;padding:12px 14px;min-height:46px;width:100%}
input::placeholder,textarea::placeholder{color:rgba(184,192,217,.78)}
input:focus,select:focus,textarea:focus{border-color:var(--gold);outline:none;box-shadow:0 0 0 3px var(--gold-muted)}
.hp{position:absolute;left:-9999px;opacity:0;height:0;width:0}
.fine{font-size:13px;color:var(--text-secondary);margin-top:10px}
.ok{display:none;padding:14px 16px;border-radius:12px;background:rgba(212,172,87,.12);border:1px solid var(--gold);color:var(--text-primary)}
.ok.show{display:block}
@media (max-width:820px){.callme{grid-template-columns:1fr}}

/* marquee clienti */
.mq{padding:38px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);overflow:hidden;background:rgba(11,19,48,.35);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.mq .mono{color:var(--gold);text-align:center;display:block;margin-bottom:22px}
.track{display:flex;gap:56px;width:max-content;animation:mq 46s linear infinite;will-change:transform}
.mq.live .track{animation-play-state:running}
.mq:not(.live) .track{animation-play-state:paused}
@keyframes mq{to{transform:translateX(calc(-50% - 28px))}}
.mq:hover .track,.mq:focus-within .track,.mq.stop .track{animation-play-state:paused}
.mq-pause{margin-left:14px;vertical-align:middle;background:none;border:1px solid var(--line-strong);color:var(--text-secondary);border-radius:999px;padding:6px 12px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:color .3s var(--ease),border-color .3s var(--ease)}.mq-pause:hover,.mq-pause:focus-visible{color:var(--gold);border-color:var(--gold)}
.cl{display:flex;align-items:center;gap:14px;white-space:nowrap}
.cl img{width:56px;height:56px;border-radius:12px;object-fit:contain;background:#fffdf8;padding:0;border:1px solid rgba(255,255,255,.12);box-shadow:0 4px 14px rgba(0,0,0,.25)}
.cl b{font-family:var(--display);font-weight:500;font-size:18px}
.cl span{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary)}

/* prezzi */
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:stretch}
.plan{position:relative;display:flex;flex-direction:column;gap:16px;padding:30px 26px;border-radius:20px}
.plan.mid{background:rgba(26,44,94,.62)}
.plan .tag{position:absolute;top:-13px;left:26px;background:var(--gold);color:#0b1330;font-family:var(--mono);font-size:11px;letter-spacing:.12em;padding:6px 10px;border-radius:999px}
.plan .name{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.plan .n{color:var(--text-secondary);font-size:15px}
.price{display:flex;align-items:baseline;gap:6px;font-family:var(--display);font-weight:800;font-size:64px;line-height:1;letter-spacing:-.02em}
.price small{font-family:var(--body);font-weight:400;font-size:15px;color:var(--text-secondary);letter-spacing:0}
.plan ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;font-size:15px;color:var(--text-secondary)}
.plan li{padding-left:22px;position:relative}
.plan li::before{content:"";position:absolute;left:0;top:.62em;width:12px;height:1px;background:var(--gold)}
.plan li.g{color:var(--text-primary)}
.plan .btn{margin-top:auto}
.terms{margin-top:26px;color:var(--text-secondary);font-size:15px;max-width:70ch}
.terms b{color:var(--text-primary);font-weight:600}
@media (max-width:900px){.plans{grid-template-columns:1fr}.price{font-size:54px}}

/* garanzia + REC */
.gar{display:block}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;align-items:stretch}
.step{padding:22px 24px;border-radius:16px;opacity:1;transform:none;transition:opacity .7s var(--ease-out),transform .7s var(--ease-out),border-color .7s var(--ease)}
.step .mono{color:var(--gold);display:block;margin-bottom:8px}
.step h3{font-size:22px;margin-bottom:8px}
.step p{color:var(--text-secondary);font-size:15px}
.gar.done .step,.gar.rm .step{opacity:1;transform:none;border-color:var(--line-strong)}
.gar.done .step:nth-child(2){transition-delay:.25s}
.gar.done .step:nth-child(3){transition-delay:.5s}
.gar-img{margin-top:clamp(36px,5vw,56px);border-radius:18px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow);position:relative}
.gar-img img{width:100%;aspect-ratio:21/9;object-fit:cover}
.gar-img figcaption{position:absolute;left:0;right:0;bottom:0;padding:18px 20px;background:linear-gradient(180deg,transparent,rgba(11,19,48,.92));font-size:14px}
.gar-img figcaption b{display:block;font-family:var(--display);font-size:20px;font-weight:800;margin-bottom:4px}
.gar .after{margin-top:26px;color:var(--text-secondary);font-size:15px;max-width:56ch}
@media (max-width:820px){.steps{grid-template-columns:1fr}}

/* servizi: lista con linea che si disegna */
.svc{position:relative;display:grid;grid-template-columns:52px 1fr;gap:0 28px}
.svc svg{grid-row:1/span 5;width:52px;height:100%;overflow:visible}
.svc svg path{stroke:var(--gold);stroke-width:2;fill:none;stroke-dasharray:var(--len,2000);stroke-dashoffset:calc(var(--len,2000)*(1 - var(--draw,0)))}
.svc svg circle{fill:var(--canvas);stroke:var(--gold);stroke-width:2}
.svc-item{padding:26px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:12px 24px;align-items:baseline}
.svc-item:first-of-type{padding-top:8px}
.svc-item h3{font-size:clamp(24px,2.6vw,34px);grid-column:1}
.svc-item .mono{color:var(--gold);grid-column:2;grid-row:1;justify-self:end}
.svc-item p{grid-column:1/-1;color:var(--text-secondary);max-width:64ch}
.svc-photo{margin-top:clamp(28px,4vw,44px);display:grid;grid-template-columns:1.2fr .8fr;gap:22px;align-items:center}
.svc-photo .photo img{aspect-ratio:16/9}
.svc-photo p{color:var(--text-secondary);font-size:16px;max-width:40ch}
.svc-photo p b{display:block;font-family:var(--display);font-size:22px;font-weight:800;color:var(--text-primary);margin-bottom:8px}
@media (max-width:640px){.svc{grid-template-columns:1fr}.svc svg{display:none}.svc-item{grid-template-columns:1fr}.svc-item .mono{grid-column:1;grid-row:auto;justify-self:start}}
@media (max-width:820px){.svc-photo{grid-template-columns:1fr}}

/* metodo: linea temporale + foto */
.met{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(28px,5vw,72px);align-items:start}
.tl{position:relative;display:grid;grid-template-columns:repeat(2,1fr);gap:28px 22px;padding-top:18px}
.tl::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:var(--line)}
.tl::after{content:"";position:absolute;left:0;top:0;height:1px;width:calc(100%*var(--draw,0));background:var(--gold);transition:width .1s linear;box-shadow:0 0 12px rgba(212,172,87,.6)}
.tstep{display:flex;flex-direction:column;gap:8px}
.tstep .num{font-family:var(--display);font-weight:800;font-size:44px;line-height:1;color:var(--gold)}
.tstep h3{font-size:22px}
.tstep .mono{color:var(--text-secondary)}
.tstep p{color:var(--text-secondary);font-size:15px}
.photo{position:relative;border-radius:18px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow)}
.photo.frame{overflow:visible}
.photo.frame img,.photo.frame figcaption{border-radius:18px}
.photo.frame figcaption{border-top-left-radius:0;border-top-right-radius:0}
.photo img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}
.photo figcaption{position:absolute;left:0;right:0;bottom:0;padding:18px 20px;background:linear-gradient(180deg,transparent,rgba(11,19,48,.92));font-size:14px;color:var(--text-primary)}
.photo figcaption b{display:block;font-family:var(--display);font-size:20px;font-weight:800;margin-bottom:4px}
@media (max-width:900px){.met{grid-template-columns:1fr}}
@media (max-width:520px){.tl{grid-template-columns:1fr}}

/* casi studio */
.tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:26px}
.tab{background:var(--glass);border:1px solid var(--line-strong);color:var(--text-secondary);font:inherit;font-weight:600;font-size:14px;padding:10px 16px;border-radius:999px;cursor:pointer;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:color .3s var(--ease),border-color .3s var(--ease),background .3s var(--ease)}
.tab:hover{color:var(--text-primary)}
.tab[aria-selected="true"]{background:var(--gold);color:#0b1330;border-color:var(--gold)}
.case{display:none;grid-template-columns:1fr 1fr;gap:clamp(22px,4vw,56px);padding:clamp(22px,3vw,40px);border-radius:22px;animation:fadein .7s var(--ease-out)}
.case.on{display:grid}
@keyframes fadein{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.case .who{display:flex;flex-direction:column;gap:6px}
.case .who h3{font-size:clamp(26px,3vw,40px)}
.case .who .mono{color:var(--text-secondary)}
.case .prof{margin:4px 0 0;font-size:14px;color:var(--text-secondary)}.case .prof a{color:var(--gold);text-decoration:none;border-bottom:1px solid rgba(212,172,87,.45)}.case .prof a:hover{color:var(--gold-hover);border-color:currentColor}
.hero-stat{margin-top:22px;padding-top:22px;border-top:1px solid var(--line)}
.hero-stat .v{font-family:var(--display);font-weight:800;font-size:clamp(40px,5vw,64px);line-height:1;color:var(--gold);letter-spacing:-.02em}
.hero-stat .l{color:var(--text-secondary);font-size:15px;margin-top:8px}
.hero-stat .d{margin-top:12px;font-family:var(--mono);font-size:12px;letter-spacing:.1em;color:var(--text-primary)}
.case dl{margin:0;display:flex;flex-direction:column;gap:14px}
.case dt{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.case dd{margin:4px 0 0;color:var(--text-primary);font-size:15px}
.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:18px}
.stat{padding:14px;border:1px solid var(--line);border-radius:12px;background:rgba(11,19,48,.45)}
.stat b{display:block;font-family:var(--display);font-weight:800;font-size:26px;line-height:1.05}
.stat span{font-size:13px;color:var(--text-secondary)}
.quote{margin-top:18px;padding-left:16px;border-left:2px solid var(--gold);color:var(--text-primary);font-size:16px}
.quote small{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary);margin-top:6px}
.covers{display:flex;gap:8px;margin-top:18px;flex-wrap:wrap}
.covers img{width:74px;height:100px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}
.covers .lab{width:100%;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary)}
.case .btn{align-self:start;margin-top:22px}
@media (max-width:820px){.case{grid-template-columns:1fr}}

/* recensioni */
.rev-head{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-bottom:26px}
.gbadge{width:44px;height:44px;border-radius:50%;background:#fff;color:#1a1a1a;display:grid;place-items:center;font-family:var(--display);font-weight:800;font-size:22px}
.stars{color:var(--gold);letter-spacing:.1em}
.rail{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:6px}
.rail::-webkit-scrollbar{display:none}
.rv{flex:0 0 min(86%,420px);scroll-snap-align:start;padding:26px;border-radius:18px;display:flex;flex-direction:column;gap:14px}
.rv p{font-size:17px}
.rv .mono{color:var(--text-secondary)}
.rctl{display:flex;gap:8px;margin-top:16px}
.rctl button{width:44px;height:44px;border-radius:50%;border:1px solid var(--line-strong);background:transparent;color:var(--text-primary);cursor:pointer;font-size:18px;transition:border-color .3s var(--ease),color .3s var(--ease)}
.rctl button:hover{border-color:var(--gold);color:var(--gold)}
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:48px}
.kpi{padding:22px;border-radius:16px}
.kpi b{display:block;font-family:var(--display);font-weight:800;font-size:40px;line-height:1;color:var(--gold);letter-spacing:-.02em}
.kpi span{display:block;margin-top:8px;font-size:14px;color:var(--text-secondary)}
@media (max-width:900px){.kpis{grid-template-columns:repeat(2,1fr)}}

/* chi sono */
.me{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(28px,5vw,72px);align-items:center}
.me .photo img{aspect-ratio:4/5}
.me .text p{color:var(--text-secondary);margin-top:16px;max-width:62ch}
.me .text p:first-of-type{color:var(--text-primary);font-size:18px}
.me blockquote{margin:26px 0 0;padding:20px 24px;border-left:2px solid var(--gold);font-family:var(--display);font-weight:500;font-size:clamp(20px,2vw,26px);line-height:1.3}
.me .chips{margin-top:26px}
@media (max-width:820px){.me{grid-template-columns:1fr}}

/* confronto */
.cmp{border-radius:20px;overflow:hidden}
.cmp .row{display:grid;grid-template-columns:.8fr 1fr 1fr;gap:0;border-top:1px solid var(--line)}
.cmp .row:first-child{border-top:0;background:rgba(19,33,74,.6)}
.cmp .cell{padding:18px 20px;font-size:15px}
.cmp .row:first-child .cell{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-secondary)}
.cmp .k{font-family:var(--display);font-weight:800;font-size:18px}
.cmp .no{color:var(--text-secondary)}
.cmp .no::before{content:"✕  ";color:rgba(226,72,63,.9)}
.cmp .yes{color:var(--text-primary);background:rgba(212,172,87,.07)}
.cmp .yes::before{content:"✓  ";color:var(--gold)}
@media (max-width:760px){.cmp .row{grid-template-columns:1fr}.cmp .row:first-child{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.cmp .k{padding-bottom:4px}.cmp .cell{padding:12px 18px}.cmp .row .cell:last-child{padding-bottom:20px}}

/* faq */
.faq{max-width:820px}
details{border-top:1px solid var(--line);padding:6px 0}
details:last-of-type{border-bottom:1px solid var(--line)}
summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:18px 0;font-family:var(--display);font-weight:500;font-size:clamp(18px,1.8vw,22px);line-height:1.3}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";font-family:var(--mono);color:var(--gold);font-size:22px;transition:transform .4s var(--ease-out);flex:none}
details[open] summary::after{transform:rotate(45deg)}
details p{padding:0 0 20px;color:var(--text-secondary);max-width:66ch}

/* contatto */
.contact{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(22px,4vw,56px);align-items:start}
.card{padding:clamp(22px,3vw,34px);border-radius:22px}
.card h3{font-size:24px;margin-bottom:6px}
.card .n{color:var(--text-secondary);font-size:15px;margin-bottom:22px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grid2 .full{grid-column:1/-1}
fieldset{border:0;padding:0;margin:0 0 6px}
legend{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:8px}
.opts{display:flex;flex-wrap:wrap;gap:8px}
.opt{position:relative}
.opt input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.opt{font-family:var(--body);font-size:14px;letter-spacing:0;text-transform:none}
.opt span{display:inline-flex;align-items:center;min-height:44px;padding:8px 14px;border:1px solid var(--line-strong);border-radius:999px;font-size:14px;color:var(--text-secondary);transition:all .3s var(--ease)}
.opt input:checked + span{background:var(--gold);color:#0b1330;border-color:var(--gold)}
.opt input:focus-visible + span{outline:2px solid var(--gold);outline-offset:2px}
.times{display:flex;flex-wrap:wrap;gap:8px}
.side{display:flex;flex-direction:column;gap:18px}
.side .line{display:flex;gap:12px;align-items:baseline}
.side .line b{font-family:var(--display);font-size:20px;font-weight:800}
.side .line span{color:var(--text-secondary);font-size:14px}
@media (max-width:900px){.contact{grid-template-columns:1fr}.grid2{grid-template-columns:1fr}}

/* regalo */
.gift{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(22px,4vw,56px);align-items:center;padding:clamp(26px,4vw,44px);border-radius:22px;border-color:var(--gold-muted)!important;background:linear-gradient(135deg,rgba(212,172,87,.10),rgba(19,33,74,.5))!important}
.gift h3{font-size:clamp(24px,2.6vw,34px)}
.gift p{color:var(--text-secondary);margin-top:12px;max-width:52ch}
.gift ul{margin:16px 0 0;padding:0;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:6px 18px;font-size:14px;color:var(--text-secondary)}
.gift li::before{content:"·  ";color:var(--gold)}
.gift .actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.gift .cover{border-radius:12px;overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow);max-width:320px;justify-self:center;transform:rotate(-2deg)}
.gift .cover img{width:100%}
@media (max-width:820px){.gift{grid-template-columns:1fr}.gift ul{grid-template-columns:1fr}.gift .cover{max-width:240px}}

/* chiusura */
.close{position:relative;overflow:hidden;padding:clamp(96px,14vw,180px) 0;text-align:center}
.close .bg{position:absolute;inset:0;background:url("/assets/hero-ending.jpg") center 30%/cover;opacity:.32;transform:scale(1.04)}
.close .veil{position:absolute;inset:0;background:radial-gradient(ellipse 70% 70% at 50% 50%,rgba(11,19,48,.2),rgba(11,19,48,.95))}
.close .wrap{position:relative}
.close .mono{color:var(--gold);display:block;margin-bottom:18px}
.close h2{font-size:clamp(34px,5vw,68px);max-width:18ch;margin:0 auto}
.close p{margin:18px auto 0;max-width:52ch;color:var(--text-secondary);font-size:18px}
.close .actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:30px}

/* footer */
footer{border-top:1px solid var(--line);padding:56px 0 36px;font-size:14px;color:var(--text-secondary);background:rgba(11,19,48,.8);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.fgrid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}
.fgrid h4{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);margin:0 0 14px;font-weight:500}
.fgrid ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.fgrid a{text-decoration:none}
.fgrid a:hover{color:var(--text-primary)}
.fbrand{display:flex;gap:12px;align-items:flex-start}
.fbrand .logo{width:56px;height:60px;border-radius:10px;background:#fffdf8;display:grid;place-items:center;padding:5px;flex:none}
.fbrand img{width:46px}
.fbrand b{display:block;font-family:var(--display);font-size:17px;color:var(--text-primary);font-weight:800}
.fbrand small{display:block;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase}
.fbrand p{margin-top:12px;max-width:44ch}
.legal{margin-top:40px;padding-top:22px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:space-between;font-size:13px}
.legal p{max-width:78ch}
.ai{margin-top:12px;font-size:13px;color:var(--text-secondary)}
@media (max-width:900px){.fgrid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.fgrid{grid-template-columns:1fr}}
.privacy{padding:40px 0 0;font-size:14px;color:var(--text-secondary)}
.privacy p{max-width:78ch}

/* widget preferenze di iubenda: colori del sito, e sui telefoni sopra la barra WhatsApp */
button.iubenda-tp-btn.iubenda-cs-preferences-link[data-tp-float][data-tp-icon]{background-color:#0b1330!important;border:1px solid rgba(212,172,87,.6)!important;box-shadow:0 8px 24px rgba(0,0,0,.35)!important;bottom:16px!important;right:16px!important;transform:none!important}
button.iubenda-tp-btn.iubenda-cs-preferences-link[data-tp-float][data-tp-icon]:hover{background-color:#13214a!important}
@media (max-width:720px){button.iubenda-tp-btn.iubenda-cs-preferences-link[data-tp-float][data-tp-icon]{bottom:calc(92px + env(safe-area-inset-bottom))!important}}
/* durante il viaggio dell'hero il widget di iubenda si ritira, per non coprire le scritte e i bottoni */
body.hero-on button.iubenda-tp-btn.iubenda-cs-preferences-link[data-tp-float][data-tp-icon]{opacity:0!important;pointer-events:none!important;transition:opacity .4s!important}

/* target su touch */
@media (pointer:coarse){.btn,.tab,.rctl button{min-height:44px;display:inline-flex;align-items:center;justify-content:center}}
@media (pointer:coarse) and (max-width:900px){.menu{min-height:44px;display:inline-flex;align-items:center;justify-content:center}}

/* pausa su tab nascosta */
body.paused *,body.paused *::before,body.paused *::after{animation-play-state:paused!important}

/* reduced motion, completo */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;transition-delay:0s!important}
  body{opacity:1}
  .io .part{opacity:1;transform:none}
  .frame .cn i{opacity:.95;transform:none}
  .svc svg path{stroke-dashoffset:0}
  .tl::after{width:100%}
  .step{opacity:1;transform:none}
  .band{transform:translateY(-50%)}
  .tilt,.io.in .part.tilt{transform:none}
  .gift .cover{transform:none}
  #bgv{display:none}
  html{scroll-behavior:auto}
}

/* ---------- pagine interne ---------- */
.hero-static.page{display:flex;min-height:0;padding:84px var(--gutter) 40px}
@media (max-width:720px){.hero-static.page{background-image:url('/assets/stefano-720.jpg')!important;background-position:50% 20%!important}.iubenda-tp-btn{display:none!important}}
.hero-static.page .prova{margin-top:16px;font-size:14px;color:var(--text-secondary);max-width:58ch}
.fid{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;margin-top:18px;padding-top:16px;border-top:1px solid var(--line);font-size:13px;color:var(--text-secondary)}
.fid img{width:36px;height:36px;border-radius:9px;background:#fff}
.fid b{color:var(--text-primary);font-weight:600}
.fid a{color:var(--text-primary);text-decoration:none;border-bottom:1px solid rgba(255,255,255,.25)}.fid a:hover{color:var(--gold)}
.hero-static.page h1{font-size:clamp(28px,4.8vw,54px);max-width:22ch;line-height:1.05}
.hero-static.page .sub{max-width:58ch}
.crumbs{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary);margin-bottom:22px;display:flex;flex-wrap:wrap;gap:8px}
.crumbs a{color:inherit;text-decoration:none}.crumbs a:hover{color:var(--gold)}
.prose{max-width:820px}
.prose h2{font-size:clamp(26px,3.2vw,40px);max-width:24ch;margin:0 0 16px}
.prose p{color:var(--text-secondary);font-size:17px;line-height:1.65;max-width:66ch;margin:0 0 16px}
.prose p a,.prose li a{color:var(--text-primary)}
.prose ul{margin:0 0 18px;padding-left:22px;color:var(--text-secondary);font-size:16px;line-height:1.6;max-width:62ch}
.prose ul li{margin-bottom:6px}
.blocco{padding:clamp(40px,6vw,72px) 0}
.blocco + .blocco{padding-top:0}
.proof-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:22px}
.proof-grid .stat b{font-size:30px;color:var(--gold)}
@media (max-width:720px){.proof-grid{grid-template-columns:1fr}}
.cta-box{padding:clamp(26px,4vw,44px);border-radius:20px;max-width:820px}
.cta-box h2{font-size:clamp(26px,3.2vw,40px);max-width:22ch}
.cta-box p{margin:14px 0 0;color:var(--text-secondary);max-width:60ch}
.cta-box .actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.vedi{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;max-width:820px}
.vedi a{display:block;padding:14px 16px;border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--text-primary);background:rgba(11,19,48,.45);transition:border-color .3s var(--ease),color .3s var(--ease)}
.vedi a:hover{border-color:var(--gold);color:var(--gold-hover)}
main.pagina{position:relative;z-index:1}
/* pagina 404: niente foto di sfondo, solo il fondo del sito */
.hero-static.page.p404{background-image:none!important;padding-top:140px;padding-bottom:0}
.hero-static.page.p404::after{display:none}
