:root{--bg:#0b0b0d;--card:#161618;--card2:#1d1e1b;--line:#2e2f2b;--acc:#c1ed7e;--acc2:#a9c47c;--accd:#3f5a1a;--ink:#f2f2ef;--mut:#a4a6a0;--w:#fefefe;--wink:#121311;--wmut:#6c6e69;--r:22px;--disp:'Exo 2',system-ui,sans-serif}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--ink);font:400 16px/1.55 Inter,system-ui,sans-serif;overflow-x:hidden}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;z-index:99;background:var(--acc);color:#000;padding:8px 12px;border-radius:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
:focus-visible{outline:2px solid var(--acc);outline-offset:3px}
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}

/* bottoni */
.btn{display:inline-flex;align-items:center;gap:10px;min-height:48px;padding:0 24px;border-radius:999px;background:var(--acc);color:#10140a;font:600 15px Inter;border:0;cursor:pointer;white-space:nowrap}
.btn .arr{transition:transform .25s}.btn:hover .arr{transform:translateX(4px)}
.btn-line{display:inline-flex;align-items:center;min-height:44px;padding:0 24px;border:1.5px solid var(--acc);border-radius:999px;font:600 14px Inter;transition:background .2s,color .2s}
.btn-line:hover{background:var(--acc);color:#10140a}

/* header */
.top{position:fixed;inset:0 0 auto;z-index:50;transition:background .3s}
.top.solid{background:rgba(11,11,13,.94);border-bottom:1px solid var(--line)}
.top-in{max-width:1240px;margin:0 auto;height:78px;padding:0 32px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.logo{display:flex;align-items:center;gap:12px}
.logo svg{width:32px;height:28px;color:#fff;flex:none}
.logo b{display:block;font:800 21px/1 var(--disp);letter-spacing:.04em}
.logo small{display:block;font-size:9px;letter-spacing:.1em;color:#cfd1cb;margin-top:4px}
.nav{display:flex;gap:4px;background:#121214;border:1px solid #232325;border-radius:999px;padding:5px}
.nav a{padding:8px 15px;border-radius:999px;font-size:13.5px;color:#d9dad6}
.nav a.on{background:#fff;color:#111;font-weight:600;display:flex;align-items:center;gap:7px}
.nav a.on::before{content:"";width:7px;height:7px;border-radius:50%;background:#8fd14a}
.nav a:not(.on):hover{color:#fff}
.top-act{display:flex;align-items:center;gap:18px}
.lang{display:flex;align-items:center;gap:6px;font-size:14px}.lang svg{width:18px;height:18px}
.burger{display:none;width:44px;height:44px;border-radius:12px;border:1px solid #333;background:transparent;cursor:pointer;flex-direction:column;align-items:center;justify-content:center;gap:6px}
.burger span{width:18px;height:2px;background:#fff;transition:transform .25s}
.burger[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}
.burger[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}
.menu{position:fixed;inset:0;z-index:40;background:var(--bg);padding:100px 24px 32px;display:flex;flex-direction:column;gap:28px}
.menu[hidden]{display:none}
.menu nav{display:flex;flex-direction:column}
.menu nav a{font:700 28px var(--disp);padding:10px 0;border-bottom:1px solid var(--line)}
.menu-info{color:var(--mut);font-size:14px}

/* hero */
.hero{padding:22px 24px 0;background:radial-gradient(120% 70% at 50% 0,#1a1a1c,#0b0b0d 70%)}
.hero-card{position:relative;max-width:1180px;margin:0 auto;min-height:660px;border-radius:30px 30px 0 0;overflow:hidden;background:#0c0c0e;padding:150px 64px 60px}
.hero-img{position:absolute;inset:0}
.hero-img img{width:100%;height:100%;object-fit:cover;object-position:70% 0}
.hero-img::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,12,14,.85) 0,rgba(12,12,14,.4) 35%,transparent 55%),linear-gradient(0deg,#0c0c0e 0,transparent 22%),linear-gradient(180deg,rgba(12,12,14,.7) 0,transparent 20%)}
.hero-txt{position:relative;z-index:2;max-width:640px}
.eyebrow{font:500 13px Inter;letter-spacing:.14em;color:#c9cbc5;margin-bottom:18px}
h1{font:800 clamp(38px,4.2vw,56px)/1 var(--disp);letter-spacing:-.005em;margin-bottom:24px}
h1 .ln{display:block}
.g{color:var(--acc2)}.gd{color:var(--accd)}
.lead{font-size:16px;color:#e4e5e1;max-width:450px;margin-bottom:26px}
.trust{display:flex;align-items:center;gap:16px}
.avs{display:flex}.avs img{width:44px;height:44px;border-radius:50%;border:2px solid #d8d8d4;margin-left:-8px}.avs img:first-child{margin:0}
.trust p{font-size:14px;color:#cfd1cb;line-height:1.4}.trust b{color:var(--acc)}
.chips{position:absolute;inset:0;z-index:3;pointer-events:none}
.chip{position:absolute;display:flex;align-items:center;gap:10px;padding:10px 16px;border-radius:999px;background:rgba(20,20,22,.88);border:1px solid #3a3b37;font-size:13.5px;font-weight:500;white-space:nowrap}
.chip svg{width:18px;height:18px;color:var(--acc)}
.chip::after{display:none;content:"";position:absolute;width:7px;height:7px;border-radius:50%;background:var(--acc);box-shadow:0 0 8px var(--acc)}
.c1{left:47%;top:106px}.c1::after{right:-30px;bottom:-20px}
.c2{right:18px;top:205px}.c2::after{left:0;bottom:-28px}
.c3{right:18px;top:372px}.c3::after{left:-8px;bottom:-26px}
.c4{left:55%;top:422px}.c4::after{left:-22px;top:-14px}
.mail{position:relative;z-index:4;margin:44px 0 0 26%;max-width:420px;display:flex;align-items:center;padding:5px 5px 5px 24px;border-radius:999px;background:rgba(18,18,20,.8);border:1px solid #3d3e3a}
.mail input{flex:1;min-width:0;background:transparent;border:0;color:#fff;font:15px Inter;height:46px;outline:none}
.mail input::placeholder{color:#9a9c96}
.mail-ok{position:absolute;top:100%;left:24px;margin-top:10px;font-size:14px;color:var(--acc)}

.band{position:relative;max-width:1180px;margin:-30px auto 0;z-index:5;display:grid;grid-template-columns:300px minmax(0,1fr) 300px;gap:24px;align-items:center;background:#131315;border-radius:30px;padding:18px 20px;box-shadow:0 30px 60px rgba(0,0,0,.45)}
.kpi{background:linear-gradient(180deg,#232421,#1a1b19);border:1px solid #2f302c;border-radius:var(--r);padding:20px 20px 16px}
.kpi header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.kpi h2{font:600 14.5px Inter}
.nw{color:#cfd1cb}
.kpi-row{display:flex;justify-content:space-between;align-items:center;gap:10px}
.kpi-row p{font-size:12px;color:var(--mut);line-height:1.45}
.kpi-row strong{font:700 22px Inter}
.prog{height:9px;border-radius:9px;background:#34352f;margin:14px 0 8px;overflow:hidden}
.prog i{display:block;height:100%;width:calc(var(--v)*100%);border-radius:9px;background:linear-gradient(90deg,#9ee35a,var(--acc));transform-origin:left;transition:transform 1.2s cubic-bezier(.2,.8,.2,1)}
.scale{display:flex;justify-content:space-between;font-size:11px;color:var(--mut)}
.bars{display:flex;justify-content:space-between;align-items:flex-end;height:66px;margin-top:6px}
.bars span{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:6px;font-size:10.5px;color:var(--mut);height:100%}
.bars i{display:block;width:15px;height:calc(var(--h)*42px + 4px);border-radius:3px;background:var(--acc);transform-origin:bottom;transition:transform .9s cubic-bezier(.2,.8,.2,1)}
.js .band:not(.in) .prog i{transform:scaleX(0)}
.js .band:not(.in) .bars i{transform:scaleY(.08)}
.community{text-align:center}
.community p{font-size:15px;color:#e1e2de;max-width:380px;margin:0 auto 18px}
.soc{display:flex;justify-content:center;gap:10px}
.soc a{width:44px;height:44px;border-radius:50%;background:#1f201e;border:1px solid #333;display:grid;place-items:center;transition:background .2s}
.soc a:hover{background:#2a2b28}
.soc svg{width:19px;height:19px}

/* sezioni chiare */
.light{background:var(--w);color:var(--wink)}
.dark{background:var(--bg)}
.dot-eyebrow{display:flex;align-items:center;gap:9px;font-size:14px;color:var(--wmut);margin-bottom:14px}
.dot-eyebrow::before{content:"";width:8px;height:8px;border-radius:50%;background:#8fd14a}
.dark .dot-eyebrow{color:var(--mut)}
.t2{font:800 clamp(34px,4vw,48px)/1.02 var(--disp);letter-spacing:-.005em;margin-bottom:28px;text-wrap:balance}
.sub{color:var(--mut);max-width:460px;margin-bottom:30px}

.how{padding:90px 24px 100px;margin-top:-40px}
.how-in{max-width:1180px;margin:0 auto;padding-top:40px;display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:56px;align-items:start}
.how-main{text-align:center}
.how-main .dot-eyebrow{justify-content:center}
.how .t2{max-width:600px;margin:0 auto 60px}
.stats{display:grid;grid-template-columns:repeat(3,1fr);max-width:640px;margin:0 auto 70px}
.stats div{display:flex;flex-direction:column-reverse;gap:6px;border-left:1px solid #e3e3df}
.stats div:first-child{border:0}
.stats dd{font:700 26px Inter}
.stats dt{font-size:14px;color:var(--wmut)}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;text-align:left}
.steps li{display:flex;gap:14px;align-items:flex-start;position:relative}
.steps .n{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:#e6f3d3;color:#18210c;font-weight:600;font-size:14px}
.steps h3{font:600 15px Inter;margin:2px 0 4px}
.steps p{font-size:13.5px;color:var(--wmut);line-height:1.45}
.prog-photo{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:222/370;background:#111}
.prog-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 10%}
.prog-photo::after{content:"";position:absolute;inset:40% 0 0;background:linear-gradient(transparent,#0b0b0d 70%)}
.prog-photo figcaption{position:absolute;left:18px;right:12px;bottom:28px;z-index:2;font:400 30px/1.05 'Kaushan Script',cursive;color:#fff;transform:rotate(-5deg)}
.prog-photo figcaption::after{content:"";display:block;width:150px;height:4px;margin-top:10px;border-radius:4px;background:var(--acc);transform:rotate(-3deg)}

.programs{padding:40px 0 110px}
.prog-list{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:18px;align-items:stretch}
.pg{border:1px solid #e3e3df;border-radius:var(--r);padding:30px 28px;background:#f6f6f3}
.pg-dark{background:#111210;color:var(--ink);border-color:#111210;transform:translateY(-14px)}
.pg-tag{font-size:13px;color:var(--wmut);margin-bottom:22px}
.pg-dark .pg-tag{color:var(--acc)}
.pg h3{font:800 26px/1.1 var(--disp);margin-bottom:12px}
.pg p{font-size:15px;color:var(--wmut);margin-bottom:18px}
.pg-dark p{color:var(--mut)}
.pg li{font-size:14px;padding:9px 0 9px 22px;border-top:1px solid #e3e3df;position:relative}
.pg-dark li{border-color:#2a2b28}
.pg li::before{content:"";position:absolute;left:0;top:16px;width:9px;height:5px;border-left:2px solid #6a9a2e;border-bottom:2px solid #6a9a2e;transform:rotate(-45deg)}

.coach{padding:110px 0;border-radius:30px 30px 0 0}
.coach-in{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.feat{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.feat li{background:#111113;padding:28px 24px}
.feat h3{font:600 16px Inter;margin-bottom:8px;display:flex;align-items:center;gap:9px}
.feat h3::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--acc);box-shadow:0 0 8px var(--acc)}
.feat p{font-size:14px;color:var(--mut)}

.nutri{padding:110px 0 60px}
.nutri-in{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.nutri-txt>p{font-size:17px;color:#3b3d38;margin-bottom:28px}
.macro div{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid #e3e3df}
.macro dt{color:var(--wmut)}.macro dd{font-weight:600;white-space:nowrap}

.plans{padding:70px 0 110px}
.price-table{border-top:1.5px solid var(--wink)}
.pr{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 8px;border-bottom:1px solid #e3e3df}
.pr h3{font:600 18px Inter;margin-bottom:4px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pr p{font-size:14px;color:var(--wmut)}
.pr strong{font:800 30px var(--disp);white-space:nowrap}
.pr small{font:500 14px Inter;color:var(--wmut)}
.pr-hi{background:#f1f8e6;border-radius:14px;border-bottom-color:transparent;padding-inline:20px;margin:6px -12px}
.tag{font:600 11.5px Inter;background:var(--wink);color:var(--acc);padding:4px 10px;border-radius:999px}
.note{font-size:13.5px;color:var(--wmut);margin-top:20px}

.book{padding:100px 0;border-radius:30px 30px 0 0}
.book-in{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.book-f{position:relative;display:grid;gap:14px;background:#141416;border:1px solid var(--line);border-radius:var(--r);padding:28px}
.book-f label{display:grid;gap:6px;font-size:13.5px;color:var(--mut)}
.book-f input,.book-f select{height:50px;border-radius:12px;border:1px solid #34352f;background:#0e0e10;color:#fff;font:15px Inter;padding:0 14px}
.book-f .btn{justify-content:center;margin-top:6px}
.book-f .mail-ok{position:static;margin:0}

.contact{padding:100px 0}
.cont-in{display:grid;grid-template-columns:1fr 1.1fr;gap:56px;align-items:stretch}
.hours div{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-top:1px solid #e3e3df}
.hours dd{font-weight:600;white-space:nowrap}
.cont-l{display:flex;flex-wrap:wrap;gap:10px 24px;margin:24px 0 12px;font-weight:600;font-size:17px}
.cont-l a{border-bottom:2px solid #a9d86a}
.small{font-size:14px;color:var(--wmut)}
.map{width:100%;min-height:360px;border:0;border-radius:var(--r);filter:grayscale(1) contrast(1.05)}

.foot{padding:40px 0 48px;border-top:1px solid var(--line)}
.foot-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px 30px}
.foot p{font-size:14px;color:var(--mut)}
.foot .demo{flex-basis:100%;font-size:12.5px;color:#777a73}

.mbar{display:none}

/* comparse */
.js .rv{opacity:0;transform:translateY(22px);transition:opacity .7s,transform .7s cubic-bezier(.2,.8,.2,1)}
.js .rv.in{opacity:1;transform:none}
.js .hero h1 .ln{opacity:0;transform:translateY(24px);animation:up .8s cubic-bezier(.2,.8,.2,1) forwards}
.js .hero h1 .ln:nth-child(2){animation-delay:.12s}.js .hero h1 .ln:nth-child(3){animation-delay:.24s}
.js .chip{opacity:0;animation:fade .6s .6s forwards}
.js .c2{animation-delay:.75s}.js .c3{animation-delay:.9s}.js .c4{animation-delay:1.05s}
@keyframes up{to{opacity:1;transform:none}}
@keyframes fade{to{opacity:1}}
.chip.float{animation:fade .6s forwards,bob 5s 1.5s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(-6px)}}

@media (max-width:1100px){
  .nav,.lang{display:none}
  .burger{display:flex}
}
@media (max-width:900px){
  .top-in{height:68px;padding:0 16px}
  .top:not(.solid){background:linear-gradient(rgba(0,0,0,.55),transparent)}
  .btn-line{display:none}
  .hero{padding:0}
  .hero-card{border-radius:0;min-height:0;padding:0 16px 40px;display:flex;flex-direction:column}
  .hero-img{position:relative;width:auto;aspect-ratio:896/1000;height:auto;margin:0 -16px -120px}
  .hero-img img{object-position:50% 10%}
  .hero-img::after{background:linear-gradient(0deg,#0c0c0e 8%,rgba(12,12,14,.3) 40%,transparent 60%),linear-gradient(180deg,rgba(0,0,0,.55),transparent 22%)}
  .hero-txt{max-width:none}
  h1{font-size:clamp(34px,10vw,44px)}
  .eyebrow{font-size:11.5px}
  .chips{position:relative;inset:auto;display:flex;flex-wrap:wrap;gap:8px;margin-top:26px;pointer-events:auto}
  .chip{position:static;font-size:13px;padding:9px 13px}
  .chip::after{display:none}
  .mail{margin:22px 0 0;max-width:none}
  .mail .btn{padding:0 16px;font-size:14px}
  .band{grid-template-columns:100%;margin:0;border-radius:0;padding:24px 16px 40px;gap:14px;box-shadow:none}
  .community{order:3;padding-top:14px}
  .how{margin:0;padding:64px 16px 72px}
  .how-in{grid-template-columns:100%;gap:40px;padding:0}
  .how .t2{margin-bottom:40px}
  .stats{margin-bottom:44px}
  .stats dd{font-size:22px}.stats dt{font-size:12.5px}
  .steps{grid-template-columns:100%;gap:22px}
  .prog-photo{aspect-ratio:4/5;max-width:420px;width:100%;margin:0 auto}
  .wrap{padding:0 16px}
  .programs{padding:10px 0 72px}
  .prog-list,.coach-in,.nutri-in,.book-in,.cont-in{grid-template-columns:100%;gap:28px}
  .pg-dark{transform:none}
  .coach,.book{padding:72px 0;border-radius:24px 24px 0 0}
  .feat{grid-template-columns:100%}
  .nutri{padding:72px 0 30px}
  .plans{padding:50px 0 72px}
  .pr{flex-direction:column;align-items:flex-start;gap:10px}
  .pr-hi{margin:6px -8px;padding-inline:16px}
  .contact{padding:72px 0}
  .map{min-height:280px}
  .foot{padding-bottom:110px}
  .mbar{position:fixed;left:16px;right:16px;bottom:calc(14px + env(safe-area-inset-bottom));z-index:45;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:58px;padding:8px 8px 8px 22px;border-radius:999px;background:var(--acc);color:#10140a;font-weight:600;box-shadow:0 12px 30px rgba(0,0,0,.4);transform:translateY(140%);transition:transform .35s}
  .mbar small{display:block;font-weight:400;font-size:12.5px;opacity:.8}
  .mbar i{font-style:normal;width:42px;height:42px;border-radius:50%;background:#10140a;color:var(--acc);display:grid;place-items:center}
  .mbar.show{transform:none}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .rv,.js .hero h1 .ln,.js .chip{opacity:1;transform:none}
  .js .band:not(.in) .prog i,.js .band:not(.in) .bars i{transform:none}
  html{scroll-behavior:auto}
}
/* fondo sala sfocato attorno alla card, come nel post */
.hero{position:relative;isolation:isolate}
.hero::before{content:"";position:absolute;inset:0 0 40%;z-index:-1;background:url(img/hero.webp) 20% 30%/cover;filter:grayscale(1) blur(6px) brightness(.45);opacity:.9}
.hero-card{padding-top:130px}
.prog-photo img{object-position:50% 38%}
.steps li:not(:last-child)::after{content:"";position:absolute;right:-22px;top:22px;width:16px;border-top:1.5px solid #dcdcd7}
@media (max-width:900px){.hero::before{display:none}.steps li::after{display:none}.hero-card{padding-top:0}}
@media (min-width:901px){.hero-img{top:84px}.hero-img::after{background:linear-gradient(90deg,rgba(12,12,14,.85) 0,rgba(12,12,14,.4) 35%,transparent 55%),linear-gradient(0deg,#0c0c0e 0,transparent 22%),linear-gradient(180deg,#0c0c0e 0,transparent 14%)}}
.chip .lk{position:absolute;width:auto;height:auto;color:var(--acc);stroke-width:1.4;overflow:visible}
.chip .lk circle{fill:var(--acc);stroke:none;filter:drop-shadow(0 0 4px var(--acc))}
.chip .lk path{stroke-dasharray:90;stroke-dashoffset:0}
.js .chip .lk path{stroke-dashoffset:90;animation:draw .9s 1.2s ease-out forwards}
.js .chip .lk circle{opacity:0;animation:fade .3s 2s forwards}
@keyframes draw{to{stroke-dashoffset:0}}
@media (max-width:900px){.chip .lk{display:none}}
@media (prefers-reduced-motion:reduce){.js .chip .lk path{stroke-dashoffset:0}.js .chip .lk circle{opacity:1}}
