/* FitStars Design System tokens (light) */
:root{
  --brand:#ef16b0;
  --brand-light:#ff90df;
  --txt-primary:#181d31;
  --txt-secondary:#414657;
  --txt-tertiary:#7a8096;
  --txt-passive:#a7aab7;
  --txt-inverted:#ffffff;
  --sur-primary:#ffffff;
  --sur-secondary:#f8f8f8;
  --sur-tertiary:#f3f3f6;
  --bord-primary:#d3d5da;
  --bord-secondary:#e7e7ec;
  --positive:#08c408;
  --gold:#d5910b;
  --sandy:#f4791c;
  --aqua:#0fba98;
  --blue:#6e9ff4;
  --purple:#b284f5;
  --lgray:#F1EFE8;
  --r-xs:6px;--r-s:8px;--r-m:12px;--r-l:16px;--r-xl:24px;--r-pill:50px;
  --font:"Gilroy",system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--font);color:var(--txt-primary);background:var(--sur-primary);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3{margin:0 0 16px;font-weight:700;letter-spacing:-.15px}
h1{font-size:clamp(32px,4.4vw,50px);line-height:1.15;letter-spacing:-.2px}
h2{font-size:clamp(28px,3.2vw,40px);line-height:1.2}
h3{font-size:20px;line-height:1.3}
p{margin:0 0 12px}
b,strong{font-weight:700}
.container{width:min(1160px,100% - 32px);margin:0 auto}
.container--narrow{max-width:760px}
.center{text-align:center}

/* buttons: Special/button-m — Bold 16, height 48, pill */
.btn{display:inline-flex;align-items:center;justify-content:center;background:var(--brand);color:var(--txt-inverted);font-weight:700;font-size:16px;line-height:1;height:48px;padding:0 24px;border-radius:var(--r-pill);cursor:pointer;border:0;transition:background .15s;text-align:center;white-space:nowrap}
.btn:hover{background:var(--brand-light);color:var(--txt-primary)}
.btn--lg{height:56px;padding:0 32px}
.btn--sm{height:36px;padding:0 16px;font-size:14px}
.btn--block{display:flex;width:100%;white-space:normal}
.btn--white{background:var(--sur-primary);color:var(--brand)}
.btn--white:hover{background:var(--sur-secondary);color:var(--brand)}
.link-btn{background:none;border:0;padding:0;color:var(--brand);font:inherit;font-weight:700;cursor:pointer}
.badge{display:inline-block;background:rgba(239,22,176,.12);color:var(--brand);font-weight:700;padding:6px 12px;border-radius:var(--r-pill);font-size:12px;line-height:1.45;margin-bottom:16px;text-transform:uppercase;letter-spacing:.2px}
.badge--light{background:rgba(255,255,255,.18);color:var(--txt-inverted)}

/* header */
.header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--bord-secondary)}
.header__inner{display:flex;align-items:center;gap:24px;height:64px}
.nav{display:flex;gap:20px;margin-left:auto;font-weight:500;font-size:14px;color:var(--txt-secondary)}
.nav a:hover{color:var(--brand)}
.burger{display:none;margin-left:auto;background:none;border:0;width:40px;height:40px;padding:8px;cursor:pointer}
.burger span{display:block;height:2px;background:var(--txt-primary);margin:6px 0;border-radius:2px}

/* hero */
.hero{padding:60px 0 44px;background:var(--sur-primary)}
.hero__inner{display:grid;grid-template-columns:1.15fr .85fr;gap:44px;align-items:center}
.hero__lead{font-size:20px;line-height:1.5;color:var(--txt-secondary);margin:0 0 26px;max-width:560px}
.hero__proof{display:flex;align-items:center;gap:12px;margin-top:26px;font-size:14px;line-height:1.45;color:var(--txt-secondary)}
.hero__proof p{margin:0}
.hero__proof--center{justify-content:center;color:var(--txt-inverted);margin-top:24px}
.stars{color:var(--gold);font-size:18px;letter-spacing:2px}
.hero__visual img{border-radius:var(--r-xl)}
.hero__facts{list-style:none;padding:0;margin:44px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.hero__facts li{display:flex;gap:12px;align-items:center;background:var(--sur-secondary);border-radius:var(--r-m);padding:16px;font-weight:500;font-size:16px;line-height:1.4;color:var(--txt-primary)}
.hero__facts svg{flex:none;color:var(--brand)}

/* sections */
.section{padding:60px 0}
.section--soft{background:var(--sur-secondary)}
.section--dark{background:var(--txt-primary);color:var(--txt-inverted)}
.section__sub{font-size:20px;line-height:1.5;color:var(--txt-secondary);max-width:760px;margin-bottom:26px}
.section--dark .section__sub{color:rgba(255,255,255,.75)}
.section__note{font-size:20px;font-weight:500;line-height:1.45;max-width:760px;margin:26px 0 24px}

/* cards */
.cards{display:grid;gap:12px}
.cards--3{grid-template-columns:repeat(3,1fr)}
.card{background:var(--sur-primary);border:1px solid var(--bord-secondary);border-radius:var(--r-l);padding:24px;display:flex;flex-direction:column}
.section--soft .card{border-color:var(--bord-secondary)}
.card p{color:var(--txt-secondary);margin:0 0 8px;font-size:16px}
.card__icon{width:48px;height:48px;border-radius:var(--r-m);background:rgba(239,22,176,.12);color:var(--brand);display:grid;place-items:center;margin-bottom:16px}
.card--format .btn{align-self:flex-start}
.card__label{display:inline-block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.2px;color:var(--brand);margin-bottom:12px}
.card__nums{font-size:14px;color:var(--txt-tertiary);margin-bottom:12px;line-height:1.3}
.card__nums b{display:block;font-size:40px;color:var(--txt-primary);line-height:1;margin-top:8px;letter-spacing:-.2px}
.card__foot{font-size:14px;color:var(--txt-tertiary);margin:8px 0 16px}

/* results */
.quote{margin:0 0 26px;padding:20px 24px;border:1px solid var(--bord-secondary);border-left:3px solid var(--brand);background:var(--sur-primary);border-radius:var(--r-m);font-size:20px;font-weight:500;line-height:1.4}
.quote footer{font-size:14px;font-weight:400;color:var(--txt-tertiary);margin-top:8px}
.results,.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:26px}
.result,.review{background:var(--sur-primary);border:1px solid var(--bord-secondary);border-radius:var(--r-l);padding:20px}
.result p,.review p{color:var(--txt-secondary);font-size:14px;line-height:1.55}
.result__head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.result__name{font-weight:700;font-size:18px}
.result__tag{background:rgba(8,196,8,.12);color:#079a07;font-weight:700;font-size:11px;padding:2px 9px;border-radius:var(--r-pill);white-space:nowrap}
.result__more[hidden]{display:none}

/* step */
.step{display:grid;grid-template-columns:1fr .8fr;gap:44px;align-items:center}
.step p{color:var(--txt-secondary);font-size:18px}
.step__author{font-weight:700;color:var(--txt-primary)!important;margin:20px 0 24px}
.step__visual img{border-radius:var(--r-xl)}

/* steps */
.steps{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.steps li{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:var(--r-l);padding:24px}
.steps h3{color:var(--txt-inverted)}
.steps p{color:rgba(255,255,255,.75);margin:0}
.steps__num{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--brand);color:var(--txt-inverted);font-weight:700;font-size:18px;margin-bottom:16px}

/* bonus */
.bonus{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.bonus__item{background:var(--sur-primary);border:1px solid var(--bord-secondary);border-top:3px solid var(--brand);border-radius:var(--r-m);padding:20px}
.bonus__item:nth-child(2){border-top-color:var(--blue)}
.bonus__item:nth-child(3){border-top-color:var(--aqua)}
.bonus__item:nth-child(4){border-top-color:var(--gold)}
.bonus__item b{display:block;font-size:36px;color:var(--txt-primary);line-height:1.1;margin-bottom:8px;letter-spacing:-.2px}
.bonus__item span{color:var(--txt-secondary);font-size:14px}

/* tariffs */
.tariffs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;align-items:stretch}
.tariff{position:relative;background:var(--sur-primary);border:1px solid var(--bord-primary);border-radius:var(--r-xl);padding:32px 24px 24px;display:flex;flex-direction:column}
.tariff--featured{border:2px solid var(--brand)}
.tariff__badge{position:absolute;top:-13px;left:20px;background:var(--sur-tertiary);color:var(--txt-secondary);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.15px;padding:4px 10px;border-radius:var(--r-pill);border:1px solid var(--bord-secondary)}
.tariff__badge--accent{background:var(--brand);color:var(--txt-inverted);border-color:var(--brand)}
.tariff h3{font-size:24px;line-height:1.3;margin:8px 0 16px}
.tariff__list{list-style:none;padding:0;margin:0 0 24px;flex:1}
.tariff__list li{position:relative;padding-left:26px;margin-bottom:10px;color:var(--txt-secondary);font-size:14px;line-height:1.55}
.tariff__list li::before{content:"";position:absolute;left:0;top:3px;width:16px;height:16px;border-radius:50%;background:rgba(8,196,8,.15)}
.tariff__list li::after{content:"";position:absolute;left:5px;top:7px;width:6px;height:3px;border-left:2px solid var(--positive);border-bottom:2px solid var(--positive);transform:rotate(-45deg)}

/* wishes */
.wishes{list-style:none;padding:0;margin:0 0 26px;display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.wishes li{background:var(--sur-secondary);border-left:3px solid var(--brand);border-radius:var(--r-m);padding:18px 20px}
.wishes b{display:block;font-size:18px;margin-bottom:4px}
.wishes span{color:var(--txt-secondary);font-size:14px}
.solution{text-align:center;background:var(--sur-secondary);border:1px solid var(--bord-secondary);border-radius:var(--r-xl);padding:40px 24px}
.solution__eyebrow{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.2px;color:var(--txt-tertiary);font-weight:700}
.solution__title{display:block;font-size:clamp(40px,8vw,72px);font-weight:700;color:var(--brand);letter-spacing:-.2px;margin:6px 0 12px}
.solution .badge{margin-right:12px}

/* faq */
.faq__item{background:var(--sur-primary);border:1px solid var(--bord-secondary);border-radius:var(--r-m);padding:0 20px;margin-bottom:12px}
.faq__item summary{cursor:pointer;font-weight:700;font-size:18px;line-height:1.38;padding:18px 32px 18px 0;position:relative;list-style:none}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary::after{content:"+";position:absolute;right:0;top:14px;font-size:26px;color:var(--brand);font-weight:400}
.faq__item[open] summary::after{content:"−"}
.faq__item p{color:var(--txt-secondary);padding-bottom:18px;margin:0}

/* final */
.final{background:var(--sur-secondary);color:var(--txt-primary)}
.final__card{background:var(--sur-primary);border:1px solid var(--bord-secondary);border-radius:var(--r-xl);padding:48px 40px;text-align:center}
.final h2{font-size:clamp(28px,4vw,40px);margin-bottom:20px}
.final p{font-size:18px;line-height:1.5;color:var(--txt-secondary);max-width:620px;margin:0 auto 12px}
.final__accent{font-weight:700;color:var(--txt-primary)!important;margin-top:8px!important}
.final__eyebrow{display:block;text-transform:uppercase;letter-spacing:.2px;font-weight:700;font-size:12px;color:var(--brand);margin-bottom:12px}
.final__actions{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;margin:24px 0 28px}
.rating{display:flex;flex-direction:column;align-items:center;gap:6px;padding-top:24px;border-top:1px solid var(--bord-secondary)}
.rating--left{align-items:flex-start;padding-top:0;border-top:0;margin-top:26px}
.rating__stars{color:var(--gold);font-size:18px;letter-spacing:3px;line-height:1}
.rating p{margin:0;font-size:14px;line-height:1.45;color:var(--txt-secondary);max-width:none}
.rating p strong{color:var(--txt-primary)}

/* footer */
.footer{padding:32px 0;border-top:1px solid var(--bord-secondary);font-size:14px;color:var(--txt-tertiary)}
.footer__inner{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.footer__inner p{margin:0}
.footer__links{margin-left:auto;display:flex;gap:16px;flex-wrap:wrap}
.footer__links a:hover{color:var(--brand)}

/* sticky mobile cta */
.sticky-cta{display:none}

.hero__text,.hero__visual,.step__text,.step__visual,.card,.tariff,.result,.review{min-width:0}
h1,h2,h3{overflow-wrap:normal}

@media (max-width:960px){
  .hero__inner,.step{grid-template-columns:1fr}
  .hero__visual{order:-1}
  .hero__visual img{max-width:min(420px,100%);margin:0 auto}
  .cards--3,.results,.reviews,.steps,.tariffs{grid-template-columns:1fr 1fr}
  .bonus{grid-template-columns:1fr 1fr}
}
@media (max-width:680px){
  .final__card{padding:32px 20px}
  .container{width:calc(100% - 32px)}
  .nav{display:none;position:absolute;top:64px;left:0;right:0;background:var(--sur-primary);flex-direction:column;padding:16px;border-bottom:1px solid var(--bord-secondary);gap:14px}
  .nav.is-open{display:flex}
  .header__cta{display:none}
  .burger{display:block}
  .hero{padding-top:24px}
  h1 br{display:none}
  h1{font-size:30px}
  h2{font-size:26px}
  .hero__facts,.cards--3,.results,.reviews,.steps,.tariffs,.bonus,.wishes{grid-template-columns:1fr}
  .section{padding:44px 0}
  .btn--lg{width:100%;white-space:normal}
  body{padding-bottom:72px}
  .sticky-cta{display:flex;align-items:center;justify-content:center;position:fixed;left:16px;right:16px;bottom:12px;z-index:30;height:48px;background:var(--brand);color:var(--txt-inverted);text-align:center;font-weight:700;font-size:16px;border-radius:var(--r-pill)}
  .footer__links{margin-left:0}
}

/* before/after */
.ba-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:44px}
.ba{background:var(--sur-primary);border:1px solid var(--bord-secondary);border-radius:var(--r-l);overflow:hidden;display:flex;flex-direction:column}
.ba__photos{display:grid;grid-template-columns:1fr 1fr;gap:4px;background:var(--sur-tertiary)}
.ba__photo{margin:0;position:relative;aspect-ratio:4/5}
.ba__photo img{width:100%;height:100%;object-fit:cover}
.ba__photo figcaption{position:absolute;left:12px;bottom:12px;background:rgba(24,29,49,.75);color:var(--txt-inverted);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.15px;padding:4px 10px;border-radius:var(--r-pill)}
.ba__photo .ba__cap--after{background:var(--brand)}
.ba__body{padding:16px 20px 18px}
.ba__body p{margin:0;color:var(--txt-secondary);font-size:14px;line-height:1.55}
.section__h3{font-size:24px;line-height:1.3;margin:0 0 16px}
@media (max-width:680px){.ba-grid{grid-template-columns:1fr}}

/* trainers */
.trainers{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.trainer{background:var(--sur-secondary);border:1px solid var(--bord-secondary);border-radius:var(--r-l);overflow:hidden}
.trainer img{width:100%;aspect-ratio:1;object-fit:cover}
.trainer__body{padding:16px 20px 18px}
.trainer__tag{display:inline-block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.15px;color:var(--brand);background:rgba(239,22,176,.12);padding:2px 9px;border-radius:var(--r-pill);margin-bottom:8px}
.trainer h3{font-size:18px;margin:0 0 4px}
.trainer p{margin:0;font-size:14px;color:var(--txt-tertiary)}
@media (max-width:960px){.trainers{grid-template-columns:1fr 1fr}}
@media (max-width:680px){.trainers{grid-template-columns:1fr 1fr;gap:8px}.trainer__body{padding:12px}.trainer h3{font-size:15px}.trainer p{font-size:12px}}

/* feature: когда тренировки проходят легко */
.section__sub--center{margin-left:auto;margin-right:auto;text-align:center}
h2.center{text-align:center;max-width:900px;margin-left:auto;margin-right:auto}
.feature{display:grid;grid-template-columns:1fr 1fr;gap:0;background:var(--sur-primary);border:1px solid var(--bord-secondary);border-radius:var(--r-xl);overflow:hidden;margin-bottom:12px}
.feature__media img{width:100%;height:100%;object-fit:cover}
.feature__body{padding:32px;display:flex;flex-direction:column;justify-content:center}
.feature__body h3{font-size:20px;margin:0 0 20px}
.feature__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px}
.feature__stats b{display:block;font-size:36px;line-height:1.1;letter-spacing:-.2px;color:var(--txt-primary)}
.feature__stats span{font-size:14px;color:var(--txt-tertiary);line-height:1.4}
.feature__actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:auto}
.badge--inline{margin:0}
.cards--2{grid-template-columns:1fr 1fr}
.card--format .feature__actions{margin-top:auto;padding-top:16px}
@media (max-width:960px){.feature{grid-template-columns:1fr}.feature__media img{max-height:360px}}
@media (max-width:680px){.cards--2{grid-template-columns:1fr}.feature__body{padding:20px}.feature__stats{gap:8px}.feature__stats b{font-size:28px}.feature__stats span{font-size:12px}}
