/* AP Training Studio — site.css
   Palette presa dallo studio: parete chiara, pavimento in gomma, acciaio, blu cobalto (cornici degli attestati). */
@font-face{font-family:"Archivo";src:url("/assets/fonts/archivo-var.woff2") format("woff2");font-weight:100 900;font-stretch:62% 125%;font-style:normal;font-display:swap}

:root{
  --paper:#fff; --wall:#f1f2f0; --ink:#1c1e21; --steel:#5d646b; --line:#d6d9da;
  --cobalt:#1d46c8; --cobalt-deep:#15369c; --on-dark:#eef0f1; --on-dark-soft:#aeb4ba;
  --wrap:74rem; --gut:clamp(1.25rem,4vw,2.5rem);
  --step--1:.875rem; --step-0:1.0625rem; --step-1:1.25rem; --step-2:clamp(1.5rem,1.2rem + 1.2vw,2rem);
  --step-3:clamp(1.9rem,1.4rem + 2.2vw,3rem); --step-4:clamp(2.3rem,1.5rem + 3.9vw,4.4rem);
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5rem}
body{margin:0;font-family:"Archivo",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;font-size:var(--step-0);line-height:1.6;color:var(--ink);background:var(--paper);padding-bottom:4.5rem}
img,picture,video,svg{display:block;max-width:100%}
img,video{height:auto}
h1,h2,h3{font-stretch:118%;font-weight:700;line-height:1.08;letter-spacing:-.012em;margin:0;text-wrap:balance}
h1{font-size:var(--step-4)} h2{font-size:var(--step-3)} h3{font-size:var(--step-1);line-height:1.25;font-stretch:108%}
p{margin:0 0 1em;max-width:62ch;text-wrap:pretty} p:last-child{margin-bottom:0}
a{color:var(--cobalt);text-underline-offset:.18em}
a:hover{color:var(--cobalt-deep)}
:focus-visible{outline:3px solid var(--cobalt);outline-offset:3px;border-radius:2px}
.band--dark :focus-visible,.foot :focus-visible{outline-color:#fff}
.skip{position:absolute;left:-999px;top:0;background:var(--ink);color:#fff;padding:.75rem 1rem;z-index:100}
.skip:focus{left:0}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gut)}
.lead{font-size:var(--step-1);line-height:1.5;color:var(--ink)}
.soft{color:var(--steel)}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* Header */
.head{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--line)}
.head__in{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:4rem}
.brand{display:flex;color:var(--ink);padding:.4rem 0}
.brand svg{height:3rem;width:auto}
.nav-btn{appearance:none;border:1px solid var(--ink);background:none;color:var(--ink);font:inherit;font-weight:600;font-size:var(--step--1);padding:.55rem .9rem;border-radius:3px;cursor:pointer}
.nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--paper);border-bottom:1px solid var(--line);padding:.5rem var(--gut) 1.25rem}
.nav[data-open="true"]{display:block}
.nav ul{list-style:none;margin:0;padding:0}
.nav a{display:block;padding:.85rem 0;color:var(--ink);text-decoration:none;font-weight:500;border-bottom:1px solid var(--line)}
.nav a[aria-current="page"]{color:var(--cobalt)}
.nav a.btn{display:flex;margin-top:1rem;border-bottom:0;padding:.8rem 1rem}
@media (min-width:62rem){
  body{padding-bottom:0}
  .nav-btn{display:none}
  .nav{display:block;position:static;border:0;padding:0;background:none}
  .nav ul{display:flex;align-items:center;gap:1.6rem}
  .nav a{border:0;padding:.4rem 0;font-size:.97rem}
  .nav a:hover{color:var(--cobalt)}
  .nav a.btn{display:inline-flex;margin:0;padding:.55rem 1rem;min-height:2.6rem}
}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:3rem;padding:.8rem 1.35rem;border-radius:3px;border:2px solid transparent;font:inherit;font-weight:650;font-stretch:105%;line-height:1.2;text-decoration:none;cursor:pointer;text-align:center}
.btn svg{width:1.3rem;height:1.3rem;flex:none}
.btn--main{background:var(--cobalt);color:#fff}
.btn--main:hover{background:var(--cobalt-deep);color:#fff}
.btn--line{border-color:currentColor;color:var(--ink);background:none}
.btn--line:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.band--dark .btn--line{color:#fff}
.band--dark .btn--line:hover{background:#fff;color:var(--ink);border-color:#fff}
.nav a.btn--main,.nav a.btn--main:hover{color:#fff}
.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.75rem}
.actions .btn{flex:1 1 15rem}
@media (min-width:40rem){.actions .btn{flex:0 0 auto}}
.textlink{font-weight:600}

/* Mobile action bar */
.dock{position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid;grid-template-columns:1.6fr 1fr;gap:.5rem;padding:.6rem var(--gut) calc(.6rem + env(safe-area-inset-bottom,0px));background:var(--paper);border-top:1px solid var(--line)}
.dock .btn{min-height:3rem;padding:.6rem .5rem;font-size:.98rem}
@media (min-width:62rem){.dock{display:none}}

/* Bands */
.band{padding-block:clamp(3.5rem,8vw,7rem)}
.band--wall{background:var(--wall)}
.band--dark{background:var(--ink);color:var(--on-dark)}
.band--dark a:not(.btn){color:#fff}
.band--dark .soft{color:var(--on-dark-soft)}
.band--tight{padding-block:clamp(2.5rem,5vw,4rem)}
.band__head{max-width:46rem;margin-bottom:clamp(2rem,4vw,3.25rem)}
.band__head p{margin-top:1.1rem}

/* Annotated photo — the coach's cue */
.cue{position:relative;margin:0}
.cue figcaption{position:relative;background:var(--cobalt);color:#fff;padding:1rem var(--gut);font-size:.98rem;line-height:1.45}

.cue figcaption b{display:block;font-stretch:112%;font-weight:700}
@media (min-width:62rem){
  .cue figcaption{position:absolute;right:1.75rem;top:1.75rem;max-width:20rem;padding:1rem 1.15rem;border-radius:3px}
  }

/* Split */
.split{display:grid;gap:clamp(1.75rem,5vw,4.5rem);align-items:center}
@media (min-width:56rem){.split{grid-template-columns:1fr 1fr}.split--text-wide{grid-template-columns:7fr 5fr}.split--flip>:first-child{order:2}}
.split figure{margin:0}
.split img{border-radius:3px;width:100%}
.prose h2{margin-bottom:1.25rem}
.prose h3{margin:2rem 0 .5rem}
.prose ul{padding-left:1.15rem;margin:0 0 1em;max-width:60ch}
.prose li{margin-bottom:.45rem}

/* Compare (non è / è) */
.versus{display:grid;gap:0;border-top:2px solid var(--ink)}
.versus__row{display:grid;gap:.25rem 2rem;padding:1.15rem 0;border-bottom:1px solid var(--line)}
.versus__row dt{color:var(--steel)}
.versus__row dd{margin:0;font-weight:600}
@media (min-width:48rem){.versus__row{grid-template-columns:1fr 1fr}}
.versus__heads{display:none}
@media (min-width:48rem){.versus__heads{display:grid;grid-template-columns:1fr 1fr;gap:2rem;padding:.75rem 0;font-size:var(--step--1);color:var(--steel);border-bottom:1px solid var(--line)}}

/* Steps: real sequence */
.steps{list-style:none;margin:0;padding:0;counter-reset:s;display:grid;gap:0}
.steps li{counter-increment:s;display:grid;grid-template-columns:3.25rem 1fr;gap:0 1rem;padding:1.6rem 0;border-top:1px solid var(--line)}
.band--dark .steps li{border-color:#383c41}
.steps li::before{content:counter(s);font-stretch:125%;font-weight:700;font-size:var(--step-2);line-height:1;color:var(--cobalt)}
.band--dark .steps li::before{color:#8fa6ff}
.steps h3{margin-bottom:.4rem}
.steps p{grid-column:2;max-width:56ch}
.steps .meta{grid-column:2;font-size:var(--step--1);color:var(--steel);margin-top:.5rem}
.band--dark .steps .meta{color:var(--on-dark-soft)}
@media (min-width:62rem){.steps--row{grid-template-columns:repeat(4,1fr);gap:2rem}.steps--row li{display:block;border-top:2px solid var(--cobalt);padding-top:1.25rem}.steps--row li::before{display:block}.steps--row li::before{margin-bottom:1rem}.steps--row p,.steps--row .meta{grid-column:1}}

/* Lists of reasons / goals */
.rows{display:grid;gap:0;border-top:2px solid currentColor}
.rows>*{display:grid;gap:.4rem 2.5rem;padding:1.5rem 0;border-bottom:1px solid var(--line)}
.band--dark .rows>*{border-color:#383c41}
@media (min-width:52rem){.rows>*{grid-template-columns:minmax(0,4fr) minmax(0,7fr);align-items:baseline}}
.rows p{margin:0}
.goals{display:grid;gap:1.25rem}
@media (min-width:52rem){.goals{grid-template-columns:repeat(3,1fr)}}
.goal{display:flex;flex-direction:column;background:var(--paper);border:1px solid var(--line);border-radius:3px;overflow:hidden;color:inherit;text-decoration:none}
.goal img{aspect-ratio:4/3;object-fit:cover;width:100%}
.goal__body{padding:1.25rem;display:grid;gap:.5rem}
.goal__body span{color:var(--cobalt);font-weight:600;text-decoration:underline;text-underline-offset:.18em}
.goal:hover h3{color:var(--cobalt)}
.who{columns:1;list-style:none;padding:0;margin:0;max-width:none}
.who li{break-inside:avoid;padding:1rem 0 1rem 1.6rem;border-bottom:1px solid var(--line);position:relative}
.who li::before{content:"";position:absolute;left:0;top:1.55rem;width:.7rem;height:2px;background:var(--cobalt)}
@media (min-width:52rem){.who{columns:2;column-gap:3rem}}

/* Placeholders for facts to confirm — remove before go-live */
.todo{background:#fff3c4;color:#4a3b00;padding:.1em .4em;border-radius:2px;font-size:.92em;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.todo-block{border:2px dashed #b8930a;background:#fffaf0;color:#4a3b00;padding:1.25rem;border-radius:3px;max-width:46rem}
.todo-block h3{margin-bottom:.5rem}

/* FAQ */
.faq{border-top:2px solid var(--ink);max-width:52rem}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem;padding:1.15rem 0;font-weight:600;font-stretch:106%;font-size:1.1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-weight:400;font-size:1.5rem;line-height:1;color:var(--cobalt)}
.faq details[open] summary::after{content:"–"}
.faq details>div{padding:0 0 1.35rem}

/* Credentials */
.creds{list-style:none;padding:0;margin:0;border-top:2px solid var(--ink)}
.creds li{display:grid;gap:.15rem 2rem;padding:1.1rem 0;border-bottom:1px solid var(--line)}
.creds time,.creds .yr{color:var(--steel);font-size:var(--step--1)}
@media (min-width:48rem){.creds li{grid-template-columns:9rem 1fr}}

/* Contact */
.contact{display:grid;gap:2.5rem}
@media (min-width:56rem){.contact{grid-template-columns:1fr 1fr;gap:4rem}}
.nap{font-style:normal;display:grid;gap:1.1rem}
.nap dt{font-size:var(--step--1);color:var(--steel)}
.nap dd{margin:0;font-weight:500}
.band--dark .nap dt{color:var(--on-dark-soft)}
.hours{border-collapse:collapse}
.hours td{padding:.15rem 1.5rem .15rem 0}
.map{position:relative;background:var(--wall);border:1px solid var(--line);border-radius:3px;min-height:20rem;display:grid;place-items:center;text-align:center;padding:1.5rem;overflow:hidden}
.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
form.ask{display:grid;gap:1rem;max-width:34rem}
.ask label{display:grid;gap:.35rem;font-weight:600;font-size:.97rem}
.ask input,.ask select,.ask textarea{font:inherit;padding:.8rem .9rem;border:1px solid #8a9096;border-radius:3px;background:#fff;color:var(--ink);width:100%}
.ask textarea{min-height:6.5rem;resize:vertical}
.ask small{color:var(--steel);font-weight:400}

/* Breadcrumb + page head */
.crumbs{font-size:var(--step--1);color:var(--steel);padding-top:1.5rem}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:.4rem;margin:0;padding:0}
.crumbs li+li::before{content:"/";margin-right:.4rem;color:var(--line)}
.crumbs a{color:var(--steel)}
.pagehead{padding-block:clamp(1.5rem,4vw,3rem) clamp(2.5rem,6vw,4.5rem)}
.pagehead h1{font-size:var(--step-3);max-width:20ch}
@media (min-width:56rem){.pagehead h1{font-size:clamp(2.6rem,4.2vw,3.6rem)}}
.pagehead .lead{margin-top:1.25rem;max-width:44ch}

/* Video */
.clip{position:relative;max-width:22rem;margin-inline:auto}
.clip video{width:100%;border-radius:3px;background:#000;aspect-ratio:9/16;object-fit:cover}

/* Footer */
.foot{background:var(--ink);color:var(--on-dark-soft);padding-block:3.5rem 2rem;font-size:.97rem}
.foot a{color:#fff}
.foot__grid{display:grid;gap:2.5rem}
@media (min-width:52rem){.foot__grid{grid-template-columns:1.3fr 1fr 1fr}}
.foot img{height:4.5rem;width:auto;filter:invert(1);margin-bottom:1rem}
.foot h2{font-size:1rem;font-stretch:100%;color:#fff;margin-bottom:.8rem;letter-spacing:0}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}
.foot__legal{margin-top:2.5rem;padding-top:1.25rem;border-top:1px solid #383c41;font-size:var(--step--1);display:flex;flex-wrap:wrap;gap:.5rem 1.5rem}

@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{.head,.dock,.foot,.map{display:none}body{padding:0}}

/* ================= v2: video hero, movimento, recensioni ================= */
@view-transition{navigation:auto}

/* Header sopra l'hero (solo home) */
.home .head{position:fixed;left:0;right:0;background:transparent;border-color:transparent;color:#fff;backdrop-filter:none;transition:background .25s,color .25s,border-color .25s}
.home .head .brand,.home .head .nav-btn{color:inherit;border-color:currentColor}
.home .head.is-solid,.home .head:has(.nav[data-open="true"]){background:rgba(255,255,255,.96);color:var(--ink);border-color:var(--line);backdrop-filter:saturate(1.4) blur(8px)}
@media (min-width:62rem){.home .head:not(.is-solid) .nav a:not(.btn){color:#fff}}

/* Hero video */
.hero2{position:relative;background:#000;color:#fff;display:grid;min-height:calc(100svh - 4.4rem);isolation:isolate;overflow:hidden}
.hero2__reel{position:absolute;inset:0;z-index:-1}
.hero2__reel video{width:100%;height:100%;object-fit:cover;display:block}
.hero2__reel .hv--2,.hero2__reel .hv--3{display:none}
.hero2__reel::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.55) 0,rgba(0,0,0,0) 22%,rgba(0,0,0,.15) 45%,rgba(0,0,0,.88) 78%)}
.hero2__text{align-self:end;padding-block:6rem 2rem;width:100%}
.hero2 h1{font-weight:800;font-stretch:122%;font-size:clamp(2.5rem,1.1rem + 6.4vw,5.2rem);line-height:.98;letter-spacing:-.02em;max-width:12ch}
.hero2 .lead{color:#fff;margin-top:1.1rem;max-width:36ch}
.hero2 .btn--line{color:#fff}
.hero2 .btn--line:hover{background:#fff;color:var(--ink);border-color:#fff}
.rating{display:inline-flex;align-items:center;gap:.55rem;margin-bottom:1.1rem;color:#fff;text-decoration:none;font-size:var(--step--1);font-weight:600}
.rating:hover{color:#fff;text-decoration:underline}
.stars{color:#ffc53d;letter-spacing:.08em;font-size:1rem}
.hero2__facts{list-style:none;margin:1.75rem 0 0;padding:1rem 0 0;border-top:1px solid rgba(255,255,255,.28);display:flex;flex-wrap:wrap;gap:.3rem 1.75rem;font-size:var(--step--1);color:#d9dde0}
.vpause{position:absolute;right:var(--gut);top:5rem;z-index:2;appearance:none;border:1px solid rgba(255,255,255,.6);background:rgba(0,0,0,.35);color:#fff;font:inherit;font-size:.8rem;font-weight:600;padding:.4rem .7rem;border-radius:99px;cursor:pointer}
@media (min-width:62rem){
  .hero2{background:var(--ink);min-height:min(50rem,100svh);grid-template-columns:minmax(0,1fr)}
  .hero2__reel{left:45%;right:-7vw;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;align-items:center;padding-right:var(--gut)}
  .hero2__reel::after{display:none}
  .hero2__reel video,.hero2__reel .hv--2,.hero2__reel .hv--3{display:block;height:auto;aspect-ratio:9/16;border-radius:4px;background:#000}
  .hv--1{transform:translateY(7%)}.hv--2{transform:translateY(-9%)}.hv--3{transform:translateY(12%)}
  .hero2__text{align-self:center;padding-block:7rem 4rem}
  .hero2__text>*{max-width:calc(45% - 4rem)}
  .hero2 h1{font-size:clamp(3rem,1rem + 3.6vw,4.6rem);max-width:calc(45% - 3rem)}
  .vpause{top:auto;bottom:1.5rem;right:var(--gut)}
  @supports (animation-timeline:scroll()){
    @media (prefers-reduced-motion:no-preference){
      .hv--1{animation:drift1 linear both;animation-timeline:scroll(root);animation-range:0 60rem}
      .hv--2{animation:drift2 linear both;animation-timeline:scroll(root);animation-range:0 60rem}
      .hv--3{animation:drift3 linear both;animation-timeline:scroll(root);animation-range:0 60rem}
      @keyframes drift1{to{transform:translateY(-6%)}}@keyframes drift2{to{transform:translateY(8%)}}@keyframes drift3{to{transform:translateY(-10%)}}
    }
  }
}

/* Marquee */
.marquee{overflow:hidden;border-bottom:1px solid var(--line);padding-block:clamp(1rem,2.5vw,1.75rem);background:var(--paper)}
.marquee__track{display:flex;width:max-content;gap:0;animation:slide 32s linear infinite}
.marquee span{display:inline-flex;align-items:center;font-stretch:125%;font-weight:800;font-size:clamp(2rem,1rem + 4.5vw,4.75rem);line-height:1;letter-spacing:-.02em;white-space:nowrap;padding-right:.5em}
.marquee span::after{content:"";width:.28em;height:.28em;border-radius:50%;background:var(--cobalt);margin-left:.5em}
.marquee span:nth-child(even){color:transparent;-webkit-text-stroke:1.5px var(--ink)}
@keyframes slide{to{transform:translateX(-50%)}}

/* Foto annotata nella sezione problema */
.cue--hand{--x:12%;--y:84%}
.cue--hand img{border-radius:3px 3px 0 0;width:100%}
.cue.cue--hand figcaption{position:relative;inset:auto;max-width:none;border-radius:0 0 3px 3px;padding:1rem 1.15rem}
.problem{display:grid;gap:clamp(2rem,5vw,4rem)}
@media (min-width:62rem){.problem{grid-template-columns:5fr 6fr;align-items:start}.problem .cue{position:sticky;top:6rem}.problem .versus__row,.problem .versus__heads{grid-template-columns:1fr 1fr}}

/* Come funziona: titolo fisso + linea di avanzamento */
.flow{display:grid;gap:2.5rem}
@media (min-width:62rem){.flow{grid-template-columns:5fr 7fr;gap:5rem}.flow__head{position:sticky;top:7rem;align-self:start}}
.flow .steps{position:relative}
.flow .steps li{border-color:#383c41}
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    .flow .steps::before{content:"";position:absolute;left:0;top:0;width:3px;height:100%;background:#8fa6ff;transform-origin:top;animation:grow linear both;animation-timeline:view();animation-range:entry 30% exit 60%}
    .flow .steps li{padding-left:1.5rem}
    @keyframes grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
  }
}

/* Reel orizzontale */
.reel{padding-block:clamp(3.5rem,8vw,6rem);background:#000;color:#fff;overflow:hidden}
.reel__top{display:flex;justify-content:space-between;align-items:end;gap:1.5rem;margin-bottom:2rem}
.reel__nav{display:none;gap:.5rem}
@media (min-width:48rem){.reel__nav{display:flex}}
.reel__nav button{appearance:none;width:3rem;height:3rem;border-radius:50%;border:1px solid rgba(255,255,255,.5);background:none;color:#fff;font-size:1.25rem;cursor:pointer}
.reel__nav button:hover{background:#fff;color:#000}
.reel__track{display:flex;gap:.75rem;overflow-x:auto;scroll-snap-type:x mandatory;padding-inline:max(var(--gut),calc((100vw - var(--wrap))/2 + var(--gut)));scrollbar-width:none;-webkit-overflow-scrolling:touch}
.reel__track::-webkit-scrollbar{display:none}
.reel__item{position:relative;flex:none;height:clamp(22rem,60vh,34rem);margin:0;scroll-snap-align:center;border-radius:4px;overflow:hidden;background:#111}
.reel__item img,.reel__item video{height:100%;width:auto;max-width:none;display:block;object-fit:cover}
.reel__item picture{height:100%}
.reel__item figcaption{position:absolute;left:0;right:0;bottom:0;padding:2.5rem 1rem .9rem;font-size:var(--step--1);font-weight:600;background:linear-gradient(0deg,rgba(0,0,0,.8),rgba(0,0,0,0))}
@media (hover:hover){.reel__item img{transition:transform .8s cubic-bezier(.2,.7,.2,1)}.reel__item:hover img{transform:scale(1.04)}}

/* Metodo: righe tipografiche */
.bigrows{border-top:2px solid var(--ink)}
.bigrow{display:grid;gap:.4rem 2rem;padding:clamp(1.25rem,3vw,2.25rem) 0;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none;align-items:baseline}
.bigrow__n{font-stretch:125%;font-weight:800;font-size:clamp(2.4rem,1rem + 6vw,6rem);line-height:.95;letter-spacing:-.025em;transition:transform .5s cubic-bezier(.2,.7,.2,1),color .3s}
.bigrow__d{color:var(--steel);max-width:34ch}
@media (min-width:56rem){.bigrow{grid-template-columns:1fr 22rem}}
@media (hover:hover){.bigrow:hover{color:var(--ink)}.bigrow:hover .bigrow__n{transform:translateX(1.25rem);color:var(--cobalt)}}

/* Card obiettivi: movimento al passaggio */
.goal picture{overflow:hidden;display:block}
@media (hover:hover){.goal img{transition:transform .8s cubic-bezier(.2,.7,.2,1)}.goal:hover img{transform:scale(1.05)}}

/* Recensioni */
.band--cobalt{background:var(--cobalt);color:#fff}
.band--cobalt a:not(.btn){color:#fff}
.band--cobalt :focus-visible{outline-color:#fff}
.band--cobalt .btn--line{color:#fff}.band--cobalt .btn--line:hover{background:#fff;color:var(--cobalt-deep);border-color:#fff}
.band--cobalt .btn--main{background:#fff;color:var(--cobalt-deep)}.band--cobalt .btn--main:hover{background:var(--ink);color:#fff}
.score{display:grid;gap:2.5rem}
@media (min-width:62rem){.score{grid-template-columns:4fr 8fr;gap:4rem;align-items:start}}
.score__n{font-stretch:125%;font-weight:800;font-size:clamp(5rem,3rem + 9vw,10rem);line-height:.85;letter-spacing:-.04em;display:block}
.score .stars{font-size:1.6rem;display:block;margin:.75rem 0 .4rem}
.score__meta{font-size:var(--step--1);opacity:.85;margin-top:.5rem}
.reviews{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin-right:calc(var(--gut) * -1);padding-right:var(--gut)}
.reviews::-webkit-scrollbar{display:none}
.review{flex:none;width:min(82vw,26rem);scroll-snap-align:start;margin:0;background:var(--cobalt-deep);border-radius:4px;padding:1.5rem;display:flex;flex-direction:column;gap:1.25rem}
.review blockquote{margin:0;font-size:1.08rem;line-height:1.55}
.review footer{margin-top:auto;font-size:var(--step--1);opacity:.9;display:flex;justify-content:space-between;gap:1rem}
.reviews--grid{display:grid;overflow:visible;margin:0;padding:0;gap:1rem}
@media (min-width:48rem){.reviews--grid{grid-template-columns:1fr 1fr}}
.reviews--grid .review{width:auto}
.band--cobalt .todo{background:#fff3c4}

/* CTA finale gigante */
.mega{font-stretch:125%;font-weight:800;font-size:clamp(2.8rem,1rem + 8vw,8rem);line-height:.92;letter-spacing:-.03em;max-width:12ch}

/* Reveal allo scroll (attivo solo con JS e senza riduzione del movimento) */
@media (prefers-reduced-motion:no-preference){
  .js .rv{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0) * 70ms)}
  .js .rv.in{opacity:1;transform:none}
  .js .wipe picture,.js .wipe>img{clip-path:inset(0 0 100% 0);transition:clip-path 1.1s cubic-bezier(.2,.7,.2,1)}
  .js .wipe.in picture,.js .wipe.in>img{clip-path:inset(0)}
  .hero2__text>*{animation:rise .8s cubic-bezier(.2,.7,.2,1) both}
  .hero2__text>*:nth-child(2){animation-delay:.08s}.hero2__text>*:nth-child(3){animation-delay:.16s}.hero2__text>*:nth-child(4){animation-delay:.24s}.hero2__text>*:nth-child(5){animation-delay:.32s}
  @keyframes rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
}
@media (prefers-reduced-motion:reduce){.marquee__track{animation:none}}

/* v3: risultati, prezzi, citazione */
.cases{display:grid;gap:1.25rem}
@media (min-width:52rem){.cases{grid-template-columns:1fr 1fr}}
.case{border:1px solid var(--line);border-radius:4px;padding:clamp(1.25rem,3vw,2rem);background:var(--paper)}
.case header{display:flex;flex-direction:column;gap:.35rem}
.case__n{font-stretch:125%;font-weight:800;font-size:clamp(2.2rem,1.5rem + 3vw,3.6rem);line-height:1;letter-spacing:-.02em}
.case__w{margin:.9rem 0 1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--line)}
.meter{margin-top:1.25rem}
.meter__top{display:flex;justify-content:space-between;gap:1rem;font-size:.95rem;margin-bottom:.45rem}
.meter__top strong{color:var(--cobalt)}
.meter__bar{position:relative;height:1.9rem;background:var(--wall);border-radius:2px;margin-bottom:.3rem;overflow:hidden}
.meter__bar i{position:absolute;inset:0 auto 0 0;width:var(--v);background:#b9bfc4;transform-origin:left}
.meter__bar--now i{background:var(--cobalt)}
.meter__bar span{position:relative;z-index:1;display:block;padding:.3rem .6rem;font-size:.8rem;font-weight:600;color:var(--ink)}
.meter__bar--now span{color:#fff;mix-blend-mode:normal;text-shadow:0 0 6px rgba(21,54,156,.9)}
@media (prefers-reduced-motion:no-preference){.js .case .meter__bar i{transform:scaleX(0);transition:transform 1.2s cubic-bezier(.2,.7,.2,1) .25s}.js .case.in .meter__bar i{transform:none}}
.prices{display:grid;gap:1rem}
@media (min-width:48rem){.prices{grid-template-columns:repeat(3,1fr)}}
.price{background:var(--paper);border:1px solid var(--line);border-radius:4px;padding:1.5rem}
.price--main{background:var(--ink);color:#fff;border-color:var(--ink)}
.price__n{font-stretch:125%;font-weight:800;font-size:clamp(2rem,1.5rem + 2vw,3rem);line-height:1;margin:.75rem 0;letter-spacing:-.02em}
.pull{margin:2.5rem 0 0;max-width:46rem;border-left:3px solid var(--cobalt);padding-left:1.25rem}
.pull blockquote{margin:0}
.pull p{font-stretch:110%;font-weight:600;font-size:var(--step-2);line-height:1.25;max-width:none}
.pull figcaption{margin-top:.75rem;color:var(--steel);font-size:var(--step--1)}

/* ================= v3.2: rifinitura (solo stile, nessun cambio di struttura) ================= */
:root{--ink:#121315;--wall:#f5f5f7;--line:#e2e3e7;--steel:#5a6068;--r:.875rem;--ease:cubic-bezier(.2,.7,.2,1)}
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:#1b1c1f}
::selection{background:var(--cobalt);color:#fff}
h1,h2,h3{font-weight:680;font-stretch:112%;letter-spacing:-.028em;color:inherit}
h3{font-stretch:104%;letter-spacing:-.012em;font-weight:650}
h2{font-size:clamp(2rem,1.3rem + 2.6vw,3.35rem)}
.lead{color:var(--steel)}
.band--dark .lead,.hero2 .lead{color:#d3d6db}
.band{padding-block:clamp(4.25rem,9.5vw,8.5rem)}
.band__head{margin-bottom:clamp(2.5rem,5vw,4rem)}
.band--dark{background:#0d0e10}
.hero2{background:#000}
@media (min-width:62rem){.hero2{background:#0a0a0b}.hero2__reel video,.hero2__reel .hv--2,.hero2__reel .hv--3{border-radius:1.1rem}}
.hero2 h1{font-weight:720;font-stretch:116%;letter-spacing:-.035em}
.hero2__facts{border-top-color:rgba(255,255,255,.16);color:#b9bdc4}
.stars{color:#f2b94a}

/* header più sottile */
.head{border-bottom-color:rgba(0,0,0,.07);background:rgba(255,255,255,.82);backdrop-filter:saturate(1.6) blur(18px);-webkit-backdrop-filter:saturate(1.6) blur(18px)}
.head__in{min-height:3.6rem}.brand svg{height:2.6rem}
.home .head.is-solid,.home .head:has(.nav[data-open="true"]){background:rgba(255,255,255,.82);backdrop-filter:saturate(1.6) blur(18px);-webkit-backdrop-filter:saturate(1.6) blur(18px)}
@media (min-width:62rem){.nav a{font-size:.9rem;font-weight:500}.nav ul{gap:1.75rem}}

/* pulsanti */
.btn{border-radius:99px;padding:.8rem 1.5rem;font-stretch:100%;font-weight:600;letter-spacing:-.005em;transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease),transform .25s var(--ease),box-shadow .25s var(--ease)}
.btn--line{border-width:1.5px}
.btn--main{box-shadow:0 1px 0 rgba(255,255,255,.18) inset,0 8px 24px -12px rgba(29,70,200,.7)}
@media (hover:hover){.btn--main:hover{transform:translateY(-1px);box-shadow:0 1px 0 rgba(255,255,255,.18) inset,0 14px 30px -12px rgba(29,70,200,.8)}}
.btn:active{transform:scale(.98)}
.nav-btn{border-radius:99px;border-width:1.5px}
@media (min-width:62rem){.nav a.btn{min-height:2.35rem;padding:.45rem 1.05rem;box-shadow:none}}
.dock{background:rgba(255,255,255,.86);backdrop-filter:saturate(1.6) blur(18px);-webkit-backdrop-filter:saturate(1.6) blur(18px);border-top-color:rgba(0,0,0,.08)}
.dock .btn{box-shadow:none}

/* marquee più discreto */
.marquee{padding-block:clamp(1.1rem,2vw,1.6rem);border-bottom-color:var(--line)}
.marquee__track{animation-duration:48s}
.marquee span{font-size:clamp(1.15rem,.9rem + 1.1vw,1.7rem);font-weight:600;font-stretch:108%;letter-spacing:-.01em;padding-right:1.1em;color:var(--ink)}
.marquee span:nth-child(even){color:var(--ink);-webkit-text-stroke:0}
.marquee span::after{width:.34em;height:.34em;margin-left:1.1em}

/* raggi e superfici */
.split img,.cue--hand img,.clip video,.map,.todo-block{border-radius:var(--r)}
.cue--hand img{border-radius:var(--r) var(--r) 0 0}
.cue.cue--hand figcaption{border-radius:0 0 var(--r) var(--r)}
.reel{background:#000}.reel__item{border-radius:var(--r)}
.reel__nav button{transition:background .25s var(--ease),color .25s var(--ease)}
.goal{border:0;border-radius:1.1rem;background:var(--wall);transition:transform .5s var(--ease),box-shadow .5s var(--ease)}
.band--wall .goal{background:var(--paper)}
@media (hover:hover){.goal:hover{transform:translateY(-5px);box-shadow:0 26px 50px -30px rgba(0,0,0,.35)}}
.goal__body{padding:1.4rem 1.4rem 1.6rem}
.goal__body span{text-decoration:none;font-size:.95rem}
.goal__body span::after{content:" \203A"}
.case{border:0;background:var(--wall);border-radius:1.1rem}
.case__n,.price__n,.score__n{font-stretch:112%;font-weight:700}
.meter__bar{border-radius:99px;background:#e7e8ec;height:2rem}.meter__bar i{border-radius:99px}
.meter__bar span{padding:.38rem .85rem}
.price{border:0;border-radius:1.1rem;background:var(--paper)}.price--main{background:#0d0e10}
.review{border-radius:1.1rem}
.faq summary{padding:1.3rem 0;transition:color .2s}.faq summary:hover{color:var(--cobalt)}
.rows>*{padding:1.75rem 0}
.versus__row{padding:1.3rem 0}
.bigrow__n{font-weight:720;font-stretch:118%;font-size:clamp(2.3rem,1rem + 5.2vw,5.2rem)}
.steps li::before{font-stretch:112%;font-weight:650}
.pull p{font-weight:620;font-stretch:104%;letter-spacing:-.02em}

/* recensioni: fondo scuro, il cobalto resta un accento */
.band--cobalt{background:#0d0e10;color:#fff}
.band--cobalt .review{background:#191a1d;box-shadow:0 0 0 1px rgba(255,255,255,.06) inset}
.band--cobalt .btn--main{background:var(--cobalt);color:#fff}.band--cobalt .btn--main:hover{background:var(--cobalt-deep);color:#fff}
.band--cobalt .btn--line:hover{background:#fff;color:#0d0e10;border-color:#fff}
.score__meta{color:#8e939b;opacity:1}
.review footer{color:#aeb3bb;opacity:1}

/* chiusura e footer */
.mega{font-weight:720;font-stretch:116%;letter-spacing:-.035em;font-size:clamp(2.6rem,1rem + 6.6vw,6.4rem)}
.foot{background:#0d0e10;border-top:1px solid rgba(255,255,255,.08)}
.foot__legal{border-top-color:rgba(255,255,255,.08)}
main>.band--dark:last-child{background:#000}
.pagehead h1{font-weight:700}
.reel{background:#0d0e10;border-top:1px solid rgba(255,255,255,.07)}

/* ================= v3.3: solo nero, bianco e grigi (il marchio è monocromatico) ================= */
:root{--cobalt:#121315;--cobalt-deep:#000}
a{color:inherit}a:hover{color:#000}
.band--dark a:not(.btn):hover,.foot a:hover,.band--cobalt a:not(.btn):hover{color:#fff;opacity:.8}
.textlink,.goal__body span{color:var(--ink)}
.stars{color:currentColor}
.btn svg path{fill:currentColor}
.btn--main{background:#121315;color:#fff;box-shadow:0 10px 24px -14px rgba(0,0,0,.55)}
.btn--main:hover{background:#000;color:#fff}
@media (hover:hover){.btn--main:hover{box-shadow:0 16px 30px -14px rgba(0,0,0,.6)}}
.btn--main svg{color:#25d366}
.hero2 .btn--main,.band--dark .btn--main,.band--cobalt .btn--main,.home .head:not(.is-solid) .nav a.btn--main{background:#fff;color:#0d0e10;box-shadow:none}
.hero2 .btn--main:hover,.band--dark .btn--main:hover,.band--cobalt .btn--main:hover{background:#e9eaee;color:#000}
.hero2 .btn--main svg,.band--dark .btn--main svg,.band--cobalt .btn--main svg,.home .head:not(.is-solid) .nav a.btn--main svg{color:#128c4a}
.band--dark .steps li::before{color:#fff}
.steps li::before{color:var(--ink)}
.steps--row li{border-top-color:var(--ink)}
.band--dark .steps--row li{border-top-color:#fff}
.cue figcaption{background:#121315}
.meter__top strong{color:var(--ink)}
.meter__bar i{background:#c3c6cc}.meter__bar--now i{background:#121315}
.meter__bar--now span{text-shadow:none}
.faq summary::after{color:var(--ink)}.faq summary:hover{color:var(--ink);opacity:.7}
.who li::before,.marquee span::after{background:var(--ink)}
.pull{border-left-color:var(--ink)}
@media (hover:hover){.bigrow:hover .bigrow__n{color:#8a8f98}}
:focus-visible{outline-color:#121315}
.band--dark :focus-visible,.foot :focus-visible,.hero2 :focus-visible,.reel :focus-visible,.band--cobalt :focus-visible{outline-color:#fff}
::selection{background:#121315;color:#fff}
.nav a[aria-current="page"]{color:var(--ink);text-decoration:underline;text-underline-offset:.4em}
@media (min-width:62rem){.nav a:hover{color:inherit;opacity:.6}}
.foot__credit{margin-left:auto;color:#8e939b}
@media (max-width:52rem){.foot__credit{margin-left:0;width:100%}}

/* Banner consenso statistiche */
.cc{position:fixed;left:var(--gut);right:var(--gut);bottom:calc(4.6rem + env(safe-area-inset-bottom,0px));z-index:70;max-width:32rem;background:#0d0e10;color:#fff;border-radius:1rem;padding:1.25rem;box-shadow:0 24px 60px -24px rgba(0,0,0,.6)}
.cc[hidden]{display:none}
.cc p{font-size:.94rem;line-height:1.5;color:#c9ccd2;margin:0 0 1rem;max-width:none}
.cc strong{color:#fff}
.cc a{color:#fff}
.cc__btns{display:flex;gap:.6rem}
.cc__btns .btn{flex:1;min-height:2.7rem;padding:.55rem 1rem;font-size:.95rem}
.cc .btn--line{color:#fff;border-color:rgba(255,255,255,.45)}
.cc .btn--line:hover{background:#fff;color:#0d0e10;border-color:#fff}
.cc .btn--main{background:#fff;color:#0d0e10;box-shadow:none}
.cc .btn--main:hover{background:#e9eaee}
@media (min-width:62rem){.cc{left:auto;right:1.5rem;bottom:1.5rem}}

/* ================= v3.9: rifinitura mobile ================= */
@media (max-width:61.99rem){
  /* meno spazio morto: la home era lunga quasi il doppio del necessario */
  .band{padding-block:3.25rem}
  .band__head{margin-bottom:1.75rem}
  .band__head p{margin-top:.75rem}
  h2{font-size:clamp(1.85rem,1.2rem + 2.4vw,2.4rem);letter-spacing:-.025em}
  .rows>*{padding:1.35rem 0;gap:.3rem}
  .who li{padding-block:.8rem}
  .steps li{padding:1.25rem 0}
  .split{gap:1.5rem}
  .marquee{padding-block:.9rem}

  /* confronto: senza intestazioni non si capiva cosa fosse cosa */
  .versus{border-top-width:1px}
  .versus__row{padding:1rem 0;gap:.55rem}
  .versus__row dt,.versus__row dd{position:relative;padding-left:1.6rem;font-size:.97rem}
  .versus__row dt::before,.versus__row dd::before{position:absolute;left:0;top:.05em;font-weight:700;font-size:.85rem}
  .versus__row dt::before{content:"\00d7";color:#9aa0a8;font-size:1.05rem;line-height:1.35}
  .versus__row dd::before{content:"\2713";color:var(--ink)}
  .versus__row dt{color:#83888f}

  /* immagini meno invadenti in verticale */
  .goal img{aspect-ratio:16/10}
  .goal__body{padding:1.15rem 1.15rem 1.35rem}
  .reel__item{height:24rem}
  .reel{padding-block:3.25rem}
  .reel__top{margin-bottom:1.25rem}

  /* risultati e prezzi più compatti */
  .case{padding:1.25rem}
  .case__n{font-size:2.1rem}
  .meter{margin-top:1rem}
  .meter__bar{height:1.75rem}
  .price{padding:1.25rem}
  .cases,.prices,.goals{gap:.75rem}

  /* citazione e chiusura */
  .pull p{font-size:1.3rem}
  .mega{font-size:clamp(2.2rem,1rem + 6vw,3rem)}
  .score{gap:1.5rem}
  .score__n{font-size:4.5rem}

  /* il banner consenso non deve coprire il contenuto all'arrivo */
  .cc{bottom:calc(4.8rem + env(safe-area-inset-bottom,0px));padding:1rem;border-radius:.875rem}
  .cc p{font-size:.88rem;margin-bottom:.8rem}
  .cc__btns .btn{min-height:2.5rem;font-size:.9rem}
}
@media (max-width:26rem){
  .dock .btn{font-size:.92rem;padding-inline:.4rem}
  .hero2 h1{font-size:2.05rem}
}
@media (max-width:61.99rem){
  /* la prima schermata deve contenere titolo, promessa e i due pulsanti */
  .hero2__reel video{max-height:52svh}
  .hero2__text{padding-block:1.5rem 1.25rem}
  .hero2 .rating{margin-bottom:.6rem}
  .hero2 .lead{margin-top:.7rem;font-size:1.05rem}
  .hero2 .actions{margin-top:1.1rem;gap:.55rem}
  .hero2__facts{margin-top:1.1rem;padding-top:.8rem;gap:.15rem 1.25rem;font-size:.82rem}
  .hero2 .btn{min-height:2.9rem}
}
