/* RITM — Design System v2 (утверждённый стиль главной) */
/* Inter — self-host (Google Fonts убран: их CDN таймаутит в РФ и блокировал
   рендер, сайт грузился голым). Официальный релиз Inter (rsms.me/inter),
   лицензия SIL OFL. woff2 с полным набором глифов (латиница + кириллица).
   font-display:swap — текст рисуется сразу системным шрифтом, пока грузится
   Inter (никогда не голый). */
@font-face{
  font-family:'Inter';
  src:url('../fonts/Inter-Regular.woff2') format('woff2');
  font-weight:400;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Inter';
  src:url('../fonts/Inter-Medium.woff2') format('woff2');
  font-weight:500;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Inter';
  src:url('../fonts/Inter-SemiBold.woff2') format('woff2');
  font-weight:600;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Inter';
  src:url('../fonts/Inter-Bold.woff2') format('woff2');
  font-weight:700;font-style:normal;font-display:swap;
}
@font-face{
  font-family:'Erewhon';
  src:url('../fonts/erewhon-italic.otf') format('opentype');
  font-weight:400;font-style:italic;font-display:swap;
}
:root{
  --canvas:#fafafa; --card:#ededed; --border:#e5e7eb; --divider:#dadada;
  --graphite:#242424; --ink:#171717; --pencil:#5c5c5c; --faint:#a3a3a3;
  --accent:#d8552e; --accent-soft:#f7e6dd;
  --inter:'Inter',system-ui,sans-serif;
  --serif:'Erewhon',Georgia,serif;
  --r-btn:16px; --r-card:24px; --r-tile:22px; --r-pill:9999px; --maxw:1040px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--canvas);color:var(--ink);font-family:var(--inter);font-weight:500;-webkit-font-smoothing:antialiased;overflow-x:hidden;padding-top:62px}
::selection{background:var(--accent);color:var(--canvas)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
.serif{font-family:var(--serif);font-weight:400;font-style:italic;color:var(--accent);font-size:1.15em}

nav{position:fixed;top:0;left:0;right:0;z-index:60;backdrop-filter:saturate(180%) blur(8px);background:rgba(250,250,250,.72);border-bottom:1px solid transparent;transition:border-color .4s}
nav.scrolled{border-bottom-color:var(--border)}
.nav-in{display:flex;align-items:center;justify-content:space-between;height:62px}
.logo{font-size:18px;font-weight:700;letter-spacing:-.04em}
.nav-links{display:flex;gap:26px;font-size:14px;color:var(--faint)}
.nav-links a{color:var(--faint);text-decoration:none;transition:color .25s}
.nav-links a:hover{color:var(--ink)}
.nav-actions{display:flex;gap:14px;align-items:center}
.link-login{font-size:14px;color:var(--ink);text-decoration:none;cursor:pointer}
@media(max-width:880px){.nav-links{display:none}}

.btn{font-family:var(--inter);font-weight:600;font-size:15px;border-radius:var(--r-btn);padding:12px 24px;cursor:pointer;border:none;letter-spacing:-.01em;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--graphite);color:var(--canvas);box-shadow:inset 0 4px 4px -2px rgba(255,255,255,.25),inset 0 -4px 4px -2px rgba(0,0,0,.25);transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .3s}
.btn:hover{box-shadow:inset 0 4px 4px -2px rgba(255,255,255,.25),inset 0 -4px 4px -2px rgba(0,0,0,.25),0 0 0 3px var(--accent-soft)}
.btn-fill{background:var(--graphite);color:var(--canvas)}
.btn-ghost{background:transparent;color:var(--ink);border:1px solid var(--border);box-shadow:none}
.btn-ghost:hover{border-color:var(--divider);box-shadow:none}
.btn-light{background:var(--canvas);color:var(--ink);box-shadow:none}
.btn-light:hover{box-shadow:0 0 0 3px var(--accent-soft)}
.btn-sm{font-size:14px;padding:9px 18px}
.magnetic{will-change:transform;display:inline-flex;align-items:center;gap:8px}

/* PILL BADGE — метки цен/статусов (НЕ моно!) */
.pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--inter);font-weight:600;font-size:12px;color:var(--ink);background:var(--canvas);border:1px solid var(--border);padding:5px 11px;border-radius:var(--r-pill);width:fit-content;letter-spacing:-.01em}
.pill b{color:var(--accent);font-weight:600}
.pill-dark{color:var(--canvas);background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.15)}
.pill-dark b{color:var(--accent-soft)}

/* HERO */
.hero{padding:66px 0 52px;text-align:center}
.hero-inner{max-width:760px;margin:0 auto}
.ey{font-size:13px;font-weight:600;letter-spacing:.02em;color:var(--faint)}
h1.ht{font-size:clamp(46px,7vw,82px);font-weight:700;line-height:.98;letter-spacing:-.045em;margin-top:16px}
h1.ht .serif{font-size:1.18em}
.word{display:inline-block}
.hero p{max-width:480px;margin:24px auto 0;font-size:17px;color:var(--pencil);line-height:1.45}
.hero .cta{margin-top:30px}

/* TILES */
.tiles{display:grid;grid-template-columns:repeat(12,1fr);gap:12px;padding:26px 0 64px}
.tile{background:var(--card);border-radius:var(--r-tile);padding:22px;cursor:pointer;position:relative;overflow:hidden;display:grid;grid-template-rows:auto 1fr auto;gap:10px;text-decoration:none;color:var(--ink);transition:transform .45s cubic-bezier(.2,.8,.2,1);min-height:168px}
.tile:hover{transform:translateY(-6px)}
.tile .k{display:inline-flex;align-items:center;gap:6px;font-family:var(--inter);font-weight:600;font-size:12px;color:var(--ink);background:var(--canvas);border:1px solid var(--border);padding:5px 11px;border-radius:var(--r-pill);width:fit-content;letter-spacing:-.01em}
.tile .k b{color:var(--accent);font-weight:600}
.tile .body{align-self:start}
.tile .h{font-size:22px;font-weight:700;letter-spacing:-.03em;line-height:1.05}
.tile .h .serif{font-size:1.12em}
.tile .sub{font-size:13px;color:var(--pencil);margin-top:7px;line-height:1.42}
.tile .arr{justify-self:end;width:32px;height:32px;border-radius:50%;border:1px solid var(--divider);display:flex;align-items:center;justify-content:center;font-size:14px;transition:.35s;background:var(--canvas)}
.tile:hover .arr{background:var(--accent);color:var(--canvas);border-color:var(--accent);transform:rotate(-45deg)}
.tile.dark{background:var(--graphite);color:var(--canvas)}
.tile.dark .k{color:var(--canvas);background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.15)}
.tile.dark .k b{color:var(--accent-soft)}
.tile.dark .sub{color:var(--faint)}
.tile.dark .arr{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.15);color:var(--canvas)}
.tile.dark:hover .arr{background:var(--accent);border-color:var(--accent)}
/* Раскладка плиток главной. Была только в инлайн-<style> прототипа, из-за чего
   сетка .tiles не работала ни на одной реальной странице. Сетка 12 колонок → 2×2. */
.t-club,.t-premium,.t-vip,.t-protocols{grid-column:span 6}
@media(max-width:900px){.tiles{grid-template-columns:repeat(2,1fr)}.t-club,.t-premium,.t-vip,.t-protocols{grid-column:span 1}}
@media(max-width:560px){.tiles{grid-template-columns:1fr}.t-club,.t-premium,.t-vip,.t-protocols{grid-column:span 1}}

/* ZONE PILLS */
.zones{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;padding:0 0 72px}
.zones a{font-family:var(--inter);font-weight:600;font-size:13px;color:var(--ink);background:var(--canvas);border:1px solid var(--border);padding:7px 15px;border-radius:var(--r-pill);letter-spacing:-.01em;text-decoration:none;transition:border-color .25s,color .25s}
.zones a:hover{border-color:var(--accent);color:var(--accent)}

/* SECTIONS */
section.block{padding:64px 0;border-top:1px solid var(--border)}
.reveal{opacity:0;transform:translateY(40px);transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1)}
.reveal.in{opacity:1;transform:none}
.sec-head{font-size:clamp(30px,4.5vw,44px);font-weight:700;line-height:1.13;letter-spacing:-.025em}
.sec-head .serif{font-size:1.16em}
.sec-sub{font-size:17px;color:var(--pencil);margin-top:20px;max-width:520px;line-height:1.45}
/* подзаголовок-пояснение в шапке секции — мелкий, серый (не наследует крупный размер .sec-head) */
.sec-head .muted{font-size:17px;font-weight:500;color:var(--pencil);line-height:1.5;max-width:62ch;margin-top:10px}

/* CARDS GRID (каталог протоколов) */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:40px}
@media(max-width:820px){.grid{grid-template-columns:1fr}}
.card{background:var(--card);border-radius:var(--r-card);padding:24px;transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.card:hover{transform:translateY(-6px)}
.card .h{font-size:18px;font-weight:600;margin-top:12px;letter-spacing:-.01em}
.card .sub{font-size:14px;color:var(--pencil);line-height:1.5;margin-top:8px}

/* STEPS */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:40px}
@media(max-width:820px){.steps{grid-template-columns:1fr}}
.step{background:var(--card);border-radius:var(--r-tile);padding:24px;transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.step:hover{transform:translateY(-6px)}
.step .num{font-family:var(--inter);font-weight:700;font-size:14px;color:var(--accent);letter-spacing:-.01em}
.step h3{font-size:18px;font-weight:600;margin:12px 0 8px;letter-spacing:-.01em}
.step p{font-size:14px;color:var(--pencil);line-height:1.5}

/* PRICING TIER */
.tiers{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:40px}
@media(max-width:820px){.tiers{grid-template-columns:1fr}}
.tier{background:var(--card);border-radius:var(--r-card);padding:28px;border:1px solid transparent;transition:transform .45s cubic-bezier(.2,.8,.2,1),border-color .3s}
.tier:hover{transform:translateY(-6px);border-color:var(--accent)}
.tier h3{font-size:22px;font-weight:700;margin:16px 0 6px;letter-spacing:-.02em}
.tier .p2{font-size:34px;font-weight:700;letter-spacing:-.03em}
.tier .p2 small{font-size:14px;color:var(--faint);font-weight:500}
/* компактные карточки тарифов на главной — подпись + название + цена-пилюля + кнопка */
.tiers--mini{grid-template-columns:repeat(3,1fr)}
@media(max-width:900px){.tiers--mini{grid-template-columns:1fr}}
.tier--mini{display:flex;flex-direction:column;align-items:flex-start}
.tier--mini .tier__cap{font-size:13px;font-weight:600;color:var(--pencil);letter-spacing:-.01em}
.tier--mini h3{font-size:24px;margin:12px 0 0}
.tier__pricepill{display:inline-flex;align-items:center;font-weight:700;font-size:15px;color:var(--accent);background:var(--canvas);border:1px solid var(--accent);padding:8px 15px;border-radius:var(--r-pill);margin:14px 0 22px}
.tier--mini .btn{margin-top:auto;width:100%}

/* DARK BANNER */
.banner{background:var(--graphite);border-radius:var(--r-card);padding:48px;color:var(--canvas);display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap}
.banner h3{font-size:clamp(28px,4vw,40px);font-weight:700;letter-spacing:-.03em;line-height:1.05}
.banner h3 .serif{color:var(--accent-soft)}
.banner p{color:var(--faint);font-size:16px;margin-top:14px;max-width:420px;line-height:1.4}

/* FINAL CTA */
.final{text-align:center;padding:100px 0 76px;border-top:1px solid var(--border)}
.final h2{font-size:clamp(38px,6vw,64px);font-weight:700;letter-spacing:-.04em;line-height:1}
.final h2 .serif{font-size:1.18em}
.final .cta{margin-top:30px;display:flex;justify-content:center}

/* FOOTER */
footer{border-top:1px solid var(--border);padding:44px 0;color:var(--faint);font-size:14px}
.foot-in{display:flex;justify-content:space-between;flex-wrap:wrap;gap:18px}

@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1!important;transform:none!important}}

/* ============================================================
   ДОПОЛНЕНИЯ RITM — интеграция с инжектом site.js и компонентами,
   которые рендерят scan.js / profile.js / модалка. Не меняем JS:
   стилизуем те классы, что он выдаёт. (Добавлено при переодевании.)
   ============================================================ */

/* — legacy CSS-переменные для inline-стилей в site.js/scan.js — */
:root{
  --ink-soft:var(--pencil); --ink-mute:var(--pencil);
  --pill:var(--graphite); --pill-ink:var(--canvas);
  --aura-coral-b:var(--accent);
  --aura-green-a:#7bbf5a; --aura-green-b:#3b855e;
  --gap:clamp(20px,3.5vw,34px);
}

/* свечения старой системы выключены (Subframe: только границы) */
.aura{display:none!important}

/* — Motion init-состояния (раскрывает ritm-motion.js) — */
.ey{opacity:0;transform:translateY(16px)}
.hero p{opacity:0;transform:translateY(16px)}
.hero .cta{opacity:0;transform:translateY(16px)}
.ht .word,#title .word{opacity:0;transform:translateY(40px) rotate(3deg);filter:blur(6px)}
.tiles .tile{opacity:0;transform:translateY(28px)}
.zones a{opacity:0;transform:translateY(12px)}
@media(prefers-reduced-motion:reduce){
  .ey,.hero p,.hero .cta,.ht .word,#title .word,.tiles .tile,.zones a{opacity:1!important;transform:none!important;filter:none!important}
}

/* — Алиасы старых кнопок (scan.js/site.js выдают .btn--lg/.btn--ghost/.btn__chip) — */
.btn--lg{display:inline-flex;align-items:center;gap:8px;font-size:16px;padding:14px 26px;
  background:var(--graphite);color:var(--canvas);
  box-shadow:inset 0 4px 4px -2px rgba(255,255,255,.25),inset 0 -4px 4px -2px rgba(0,0,0,.25);
  transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .3s}
.btn--lg:hover{box-shadow:inset 0 4px 4px -2px rgba(255,255,255,.25),inset 0 -4px 4px -2px rgba(0,0,0,.25),0 0 0 3px var(--accent-soft)}
.btn--ghost{display:inline-flex;align-items:center;gap:8px;background:transparent;color:var(--ink);border:1px solid var(--border);box-shadow:none}
.btn--ghost:hover{border-color:var(--divider);box-shadow:none}
.btn__chip{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:rgba(255,255,255,.18);flex:none;margin-left:2px}
.btn__chip svg{width:14px;height:14px}
/* на светлых кнопках кружок тёмный, на тёмных — светлый (база выше) */
.btn--ghost .btn__chip,.btn-ghost .btn__chip,.btn-light .btn__chip{background:rgba(0,0,0,.08);color:var(--ink)}

/* — Поля форм (модалка входа + инпуты квиза) — */
.field{display:flex;flex-direction:column;gap:6px;margin-bottom:12px;text-align:left}
.field label{font-size:13px;font-weight:600;color:var(--pencil)}
.field input{font-family:var(--inter);font-weight:500;font-size:15px;padding:12px 14px;border:1px solid var(--border);
  border-radius:var(--r-btn);background:var(--canvas);color:var(--ink);width:100%;transition:border-color .2s,box-shadow .2s}
.field input:focus{outline:none;border-color:var(--accent)}
.field input.is-invalid{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft);animation:ritmShake .3s}
@keyframes ritmShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}

/* ============ НАВИГАЦИЯ (инжект site.js: .nav-shell>.nav) ============ */
.nav{display:flex;align-items:center;gap:20px;height:62px;
  padding-inline:max(28px,calc((100vw - var(--maxw)) / 2))}
.nav__brand{font-size:18px;font-weight:700;letter-spacing:-.04em;color:var(--ink);text-decoration:none}
.nav__links{display:flex;align-items:center;gap:26px;font-size:14px;margin-left:auto}
.nav__links a{color:var(--faint);text-decoration:none;transition:color .25s;white-space:nowrap}
.nav__links a:hover,.nav__links a.is-active{color:var(--ink)}
.nav__cta{font-family:var(--inter);font-weight:600;font-size:14px;border-radius:var(--r-btn);padding:9px 18px;
  background:var(--graphite);color:var(--canvas);border:none;cursor:pointer;text-decoration:none;white-space:nowrap;
  box-shadow:inset 0 4px 4px -2px rgba(255,255,255,.25),inset 0 -4px 4px -2px rgba(0,0,0,.25);transition:box-shadow .3s}
.nav__cta:hover{box-shadow:inset 0 4px 4px -2px rgba(255,255,255,.25),inset 0 -4px 4px -2px rgba(0,0,0,.25),0 0 0 3px var(--accent-soft)}
.nav__burger{display:none;background:none;border:none;cursor:pointer;color:var(--ink);padding:6px;align-items:center;justify-content:center}
.nav__burger svg{width:24px;height:24px}
@media(max-width:880px){
  .nav__links{display:none}
  .nav__cta{margin-left:auto}      /* лого слева, «Войти» + бургер у правого края */
  .nav__burger{display:inline-flex}
  .nav__links.is-open{display:flex;position:absolute;top:62px;left:0;right:0;flex-direction:column;align-items:flex-start;
    margin-left:0;gap:16px;padding:20px 28px;background:rgba(250,250,250,.96);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}
}

/* ============ ФУТЕР (инжект site.js: footer.footer) — графитовый ============ */
.footer{background:var(--graphite);border-top:1px solid var(--border);margin-top:64px;color:rgba(255,255,255,.55);font-size:14px}
.footer .wrap{padding-top:48px;padding-bottom:36px}
.foot-cta{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.12)}
.foot-cta .eyebrow{font-size:12px;font-weight:600;letter-spacing:.02em;color:rgba(255,255,255,.72);background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.16)}
.foot-cta__h{font-size:clamp(30px,5vw,52px);font-weight:700;letter-spacing:-.03em;line-height:1.02;color:#fff;margin-top:8px}
/* кнопка CTA — светлая на тёмном */
.footer .foot-cta .btn{background:var(--canvas);color:var(--ink);box-shadow:none}
.footer .foot-cta .btn:hover{transform:translateY(-2px)}
.footer .foot-cta .btn__chip{background:#ececec;color:var(--ink)}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:28px;padding:40px 0}
@media(max-width:820px){.foot-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.foot-grid{grid-template-columns:1fr}}
.foot-col h4{font-size:14px;font-weight:600;color:#fff;margin-bottom:12px}
.foot-col a{display:block;color:rgba(255,255,255,.55);text-decoration:none;font-size:14px;line-height:2;transition:color .25s}
.foot-col a:hover{color:var(--accent)}
.foot-brand .foot-logo{font-size:20px;font-weight:700;letter-spacing:-.04em;color:#fff}
.foot-brand p{color:rgba(255,255,255,.55);font-size:14px;line-height:1.5;margin:12px 0}
.foot-soc{display:flex;gap:14px;flex-wrap:wrap}
.foot-soc a{font-size:13px}
.foot-legal{display:flex;gap:20px;flex-wrap:wrap;padding:22px 0;border-top:1px solid rgba(255,255,255,.12)}
.foot-legal a{color:rgba(255,255,255,.55);text-decoration:none;font-size:13px;transition:color .25s}
.foot-legal a:hover{color:var(--accent)}
.foot-disc{color:rgba(255,255,255,.4);font-size:12px;line-height:1.6;padding:22px 0;border-top:1px solid rgba(255,255,255,.12)}
.footer__bot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:rgba(255,255,255,.45);font-size:13px;padding-top:6px}
.foot-contacts{display:flex;gap:18px;flex-wrap:wrap}
.foot-contacts a{color:rgba(255,255,255,.55);text-decoration:none;transition:color .25s}
.foot-contacts a:hover{color:var(--accent)}

/* ============ МОДАЛКА ВХОДА (инжект site.js: .modal) ============ */
.modal{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;padding:20px;
  background:rgba(23,23,23,.45);backdrop-filter:blur(4px)}
.modal.is-open{display:flex}
.modal__card{position:relative;background:var(--canvas);border:1px solid var(--border);border-radius:var(--r-card);
  padding:30px;width:100%;max-width:420px;max-height:90vh;overflow:auto}
.modal__close{position:absolute;top:14px;right:14px;width:34px;height:34px;border:none;border-radius:50%;
  background:var(--card);color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer}
.modal__card h3{font-size:24px;font-weight:700;letter-spacing:-.02em}
.modal__card>.muted,.modal__card .muted{color:var(--pencil);font-size:14px;margin-top:6px}
[data-auth-body]{display:flex;flex-direction:column}
[data-auth-body] .btn--lg{width:100%;justify-content:center;margin-top:6px}
.modal__switch{font-size:14px;color:var(--pencil);margin-top:14px;text-align:center}
.modal__switch button,.modal__link{background:none;border:none;color:var(--accent);font:inherit;font-weight:600;cursor:pointer;padding:0}
.modal__link{font-size:13px}
.field-pass{position:relative}
.field-pass input{padding-right:46px}
.pass-eye{position:absolute;top:50%;right:8px;transform:translateY(-50%);width:32px;height:32px;border:none;background:none;cursor:pointer;color:var(--faint);display:flex;align-items:center;justify-content:center;border-radius:8px;transition:color .2s}
.pass-eye:hover{color:var(--ink)}
.pass-eye svg{width:20px;height:20px}
.pass-eye .eye-hide{display:none}
.pass-eye.is-on .eye-show{display:none}
.pass-eye.is-on .eye-hide{display:block}
.consent-row{display:flex;gap:8px;align-items:flex-start;font-size:12px;color:var(--pencil);line-height:1.5}
.consent-row a{color:var(--accent)}
.consent-note{font-size:12px;color:var(--pencil);line-height:1.5;margin-top:14px;text-align:center}
.consent-note a{color:var(--accent)}

/* ============ reset-password.html — состояния ============ */
.reset-wrap{min-height:calc(100vh - 62px);display:grid;place-items:center;padding:40px 20px}
.reset-card{max-width:440px;width:100%;margin:0 auto}
.rp-center{text-align:center}
.rp-center .eyebrow{margin-left:auto;margin-right:auto}
.rp-spin{width:46px;height:46px;border-radius:9999px;border:3px solid var(--border);border-top-color:var(--accent);margin:2px auto 18px;animation:ritmSpin .8s linear infinite}
@keyframes ritmSpin{to{transform:rotate(360deg)}}
.rp-ic{width:56px;height:56px;border-radius:9999px;display:grid;place-items:center;margin:2px auto 16px;border:1px solid var(--border);background:var(--canvas);color:var(--accent)}
.rp-ic--ok{border-color:var(--accent);background:var(--accent-soft)}
.rp-ic svg{width:26px;height:26px}
.rp-actions{display:flex;flex-direction:column;gap:10px;margin-top:8px}
.rp-actions .btn--lg,.rp-actions .btn--ghost{width:100%;justify-content:center}
@media(prefers-reduced-motion:reduce){.rp-spin{animation:none}}
.is-step{animation:ritmAuthIn .3s ease}
@keyframes ritmAuthIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* ============ КВИЗ scan.html (контракт scan.js сохранён) ============ */
.scan{max-width:620px;margin:0 auto;padding:8px 0 80px}
.scan__bar{height:6px;border-radius:var(--r-pill);background:var(--card);overflow:hidden}
.scan__bar i{display:block;height:100%;background:var(--accent);border-radius:var(--r-pill);
  transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.scan__count{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-size:12px;font-weight:600;
  color:var(--ink);background:var(--canvas);border:1px solid var(--border);padding:6px 13px;border-radius:var(--r-pill);letter-spacing:-.01em}
.scan__q{background:var(--card);border-radius:var(--r-card);padding:26px 28px;margin-top:16px;position:relative;overflow:hidden}
.scan__q-inner h2{font-size:clamp(22px,3.4vw,30px);font-weight:700;letter-spacing:-.025em;line-height:1.14}

/* hero-метка → пилюля (как бейджи на главной) */
.scan-ey,.ey-pill{display:inline-flex;align-items:center;gap:6px;color:var(--ink);background:var(--canvas);
  border:1px solid var(--border);padding:6px 13px;border-radius:var(--r-pill);font-size:12px;font-weight:600;letter-spacing:-.01em}

/* лёгкое появление при переходе между вопросами (узлы пересоздаёт scan.js) */
@keyframes scanIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.scan__q-inner h2{animation:scanIn .42s cubic-bezier(.2,.8,.2,1) both}
.scan__inputs,.scan__err{animation:scanIn .42s cubic-bezier(.2,.8,.2,1) both;animation-delay:.06s}
.scan__opts .opt{animation:scanIn .4s cubic-bezier(.2,.8,.2,1) both}
.scan__opts .opt:nth-child(1){animation-delay:.05s}
.scan__opts .opt:nth-child(2){animation-delay:.09s}
.scan__opts .opt:nth-child(3){animation-delay:.13s}
.scan__opts .opt:nth-child(4){animation-delay:.17s}
.scan__opts .opt:nth-child(5){animation-delay:.21s}
.scan__opts .opt:nth-child(6){animation-delay:.25s}
.scan__opts .opt:nth-child(7){animation-delay:.29s}
.scan__opts .opt:nth-child(8){animation-delay:.33s}
[data-next]{animation:scanIn .42s cubic-bezier(.2,.8,.2,1) both;animation-delay:.1s}

.scan__opts{display:flex;flex-direction:column;gap:10px;margin-top:20px}
.scan__opts--grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:520px){.scan__opts--grid{grid-template-columns:1fr}}
.opt{display:flex;align-items:center;gap:12px;text-align:left;font-family:var(--inter);font-weight:600;font-size:15px;
  color:var(--ink);background:var(--canvas);border:1px solid var(--border);border-radius:var(--r-btn);
  padding:14px 16px;cursor:pointer;transition:transform .25s cubic-bezier(.2,.8,.2,1),border-color .2s,background .2s}
.opt:hover{transform:translateY(-2px);border-color:var(--divider)}
.opt__mark{flex:none;width:18px;height:18px;border-radius:50%;border:2px solid var(--divider);transition:.2s}
.opt.is-pick{border-color:var(--accent);background:var(--accent-soft)}
.opt.is-pick .opt__mark{border-color:var(--accent);background:var(--accent);box-shadow:inset 0 0 0 3px var(--accent-soft)}

.scan__inputs{margin-top:20px}
.scan__inputs--2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:480px){.scan__inputs--2{grid-template-columns:1fr}}
.scan__err{color:var(--accent);font-size:13px;margin-top:8px;display:none}
.scan__err.is-show{display:block}
/* графитовая карточка опроса (только активный вопрос, не карточки результата) */
.scan > .scan__q{background:var(--graphite)}
.scan > .scan__q .scan__q-inner h2{color:#fff}
.scan > .scan__q .field input{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.16);color:#fff}
.scan > .scan__q .field input::placeholder{color:rgba(255,255,255,.4)}
.scan > .scan__q .field input:focus{border-color:var(--accent)}
.scan > .scan__q .field label{color:rgba(255,255,255,.6)}
.scan > .scan__q .opt{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.16);color:#fff}
.scan > .scan__q .opt:hover{border-color:rgba(255,255,255,.4)}
.scan > .scan__q .opt.is-pick{border-color:var(--accent);background:rgba(216,85,46,.18)}
.scan > .scan__q .opt__mark{border-color:rgba(255,255,255,.35)}
.scan > .scan__q .btn--lg{background:var(--canvas);color:var(--ink)}
.scan > .scan__q .btn--lg .btn__chip{background:#ececec;color:var(--ink)}

.scan__nav{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:18px}
.scan__back{background:none;border:none;color:var(--pencil);font:inherit;font-weight:600;font-size:14px;cursor:pointer;padding:6px 0}
.scan__back:disabled{display:none}
.scan__nav .muted{color:var(--faint);font-size:13px;margin-left:auto}

.scan__result{display:none}
.scan__result.is-show{display:block}

/* результат: счёт + бары зон + два пути */
.prod__tag{font-size:12px;font-weight:600;letter-spacing:.04em;color:var(--faint);text-transform:uppercase}
.ritm-score{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-top:14px}
.ritm-score .big{font-size:clamp(44px,9vw,68px);font-weight:700;letter-spacing:-.04em;line-height:1;color:var(--ink)}
.ritm-score .lbl{font-size:14px;color:var(--pencil)}
.lead{font-size:16px;color:var(--pencil);line-height:1.5}
.muted{color:var(--pencil)}
.bars{display:flex;flex-direction:column;gap:14px;margin-top:22px}
.bar__head{display:flex;justify-content:space-between;font-size:14px;margin-bottom:6px}
.bar__head .k{color:var(--ink);font-weight:600}
.bar__head .v{color:var(--pencil)}
.bar__track{height:8px;border-radius:var(--r-pill);background:var(--canvas);overflow:hidden}
.bar__fill{display:block;height:100%;border-radius:var(--r-pill);background:var(--accent);
  transform:scaleX(0);transform-origin:left;transition:transform .9s cubic-bezier(.2,.8,.2,1)}
.bar--low .bar__fill{background:var(--accent);opacity:.55}

.twopath{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px;align-items:stretch}
@media(max-width:560px){.twopath{grid-template-columns:1fr}}
/* три карточки на экране результата (интенсив + Club + протокол-рекомендация) */
.twopath--3{grid-template-columns:repeat(3,1fr)}
@media(max-width:820px){.twopath--3{grid-template-columns:1fr}}
/* карточка-рекомендация протокола: акцентная рамка, чтобы выделялась */
.path--rec{border-color:var(--accent);background:var(--accent-soft)}
.path--rec .path__go{color:var(--accent)}
/* блок «результат в приложении» под карточками выбора */
.scan-app{margin-top:16px;padding:18px;border:1px solid var(--border);border-radius:var(--r-card);background:var(--canvas);display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.scan-app__t{margin:0;font-size:14px;line-height:1.5;color:var(--pencil);max-width:60ch}
.path{display:flex;flex-direction:column;gap:6px;height:100%;text-align:left;border-radius:var(--r-card);padding:22px;cursor:pointer;
  background:var(--canvas);border:1px solid var(--border);transition:transform .35s cubic-bezier(.2,.8,.2,1),border-color .3s}
.path__s{margin-bottom:4px}
.path:hover{transform:translateY(-4px);border-color:var(--accent)}
.path--dark{background:var(--graphite);border-color:var(--graphite);color:var(--canvas)}
.path__t{font-size:17px;font-weight:700;letter-spacing:-.02em}
.path__s{font-size:13px;color:var(--pencil)}
.path--dark .path__s{color:var(--faint)}
.path__go{margin-top:auto;align-self:flex-start;display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-width:150px;font-weight:600;font-size:14px;border-radius:var(--r-btn);padding:10px 18px}
.path--light .path__go{background:var(--graphite);color:var(--canvas)}
.path--dark .path__go{background:var(--canvas);color:var(--ink)}
.path__go .btn__chip{background:none;width:auto;height:auto}
.path__go .btn__chip svg{width:16px;height:16px}
/* «Пройти анализ заново» — по центру под карточками */
#scanRestart{display:block;width:fit-content;margin:6px auto 0}

/* ============ КАТАЛОГ products.html (.bento наполняет site.js) ============ */
.bento{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:8px;align-items:start}
@media(max-width:820px){.bento{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.bento{grid-template-columns:1fr}}
.card.prod{padding:20px;text-decoration:none;color:var(--ink);min-width:0}
.card.prod .card__inner{display:grid;grid-template-columns:auto 1fr;
  grid-template-areas:"name name" "pain pain" "meta foot";gap:8px 10px;min-width:0}
.prod__name{grid-area:name;font-size:19px;font-weight:700;letter-spacing:-.02em;line-height:1.12}
.prod__pain{grid-area:pain;font-size:14px;font-weight:500;color:var(--pencil);line-height:1.4;min-width:0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.prod__teaser{display:none}
.prod__meta{grid-area:meta;align-self:center}
.prod__meta .badge{display:inline-flex;align-items:center;font-size:12px;font-weight:600;color:var(--ink);
  background:var(--canvas);border:1px solid var(--border);padding:6px 12px;border-radius:var(--r-pill);white-space:nowrap}
.prod__foot{grid-area:foot;align-self:center;display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0}
.prod__price{display:inline-flex;align-items:center;font-size:13px;font-weight:600;color:var(--accent);
  background:var(--canvas);border:1px solid var(--border);padding:6px 12px;border-radius:var(--r-pill);white-space:nowrap}
.prod__foot .btn__chip{flex:none;background:var(--graphite);color:var(--canvas);width:32px;height:32px;border-radius:50%;transition:.35s}
.card.prod:hover .prod__foot .btn__chip{background:var(--accent);transform:rotate(-45deg)}
/* мобайл: «боль» переносится и помещается целиком, ничего не вылезает */
@media(max-width:820px){
  .prod__pain{white-space:normal;overflow:visible;text-overflow:clip}
}

/* промо полного пакета — тёмный баннер */
.banner .pill-dark{margin-bottom:4px}
.banner h3{margin-top:0;text-wrap:balance}
.banner__price{margin-top:12px;color:var(--faint);font-size:15px}
.banner__price b{color:var(--accent-soft);font-weight:600}
@media(max-width:640px){
  .banner{padding:40px 30px;gap:24px}
  .banner .btn{width:100%;justify-content:center;text-align:center}
}

/* ============================================================
   ЛЕГАСИ-КОМПОНЕНТЫ в новом стиле — для страниц на старой разметке
   и JS-рендере (sell.js, и далее premium/vip/club/fullpack/intensive).
   Стилизуем существующие классы; JS/DOM не меняем.
   ============================================================ */
.eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;letter-spacing:.02em;
  color:var(--ink);background:var(--canvas);border:1px solid var(--border);padding:6px 13px;border-radius:var(--r-pill);text-transform:uppercase}
/* хлебная крошка (eyebrow со ссылкой) — не пилюля, обычный текст */
.eyebrow:has(a){display:block;background:none;border:none;padding:0;text-transform:none;letter-spacing:0;font-weight:500;color:var(--faint)}
.eyebrow a{color:var(--pencil);text-decoration:none}
.eyebrow a:hover{color:var(--ink)}
.display{font-weight:700;letter-spacing:-.045em;line-height:1.02;color:var(--ink)}
.h-lg{font-size:clamp(22px,3vw,28px);font-weight:700;letter-spacing:-.02em;line-height:1.15}
.h-xl{font-size:clamp(30px,4.5vw,44px);font-weight:700;letter-spacing:-.025em;line-height:1.1}
.h-xl .serif,.h-lg .serif,.display .serif{font-size:1.14em}

/* видео-плейсхолдер */
.pp-video{display:flex;align-items:center;gap:16px;width:100%;background:var(--card);border:1px solid var(--border);
  border-radius:var(--r-card);padding:16px 20px;cursor:pointer;text-align:left;font:inherit;color:inherit;
  transition:transform .25s cubic-bezier(.2,.8,.2,1),border-color .25s}
.pp-video:hover{transform:translateY(-2px);border-color:var(--divider)}
.pp-video__play{flex:none;width:52px;height:52px;border-radius:50%;background:var(--graphite);color:var(--canvas);
  display:flex;align-items:center;justify-content:center;transition:transform .2s}
.pp-video:hover .pp-video__play{transform:scale(1.06)}
.pp-video__play svg{width:22px;height:22px}
.pp-video__note{position:static;font-size:14px;font-weight:500;color:var(--pencil);line-height:1.4}

/* видео-попап (HTML5 <video> в модалке) */
.vmodal{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:20px}
.vmodal[hidden]{display:none}
.vmodal__overlay{position:absolute;inset:0;background:rgba(23,23,23,.55);backdrop-filter:blur(4px)}
.vmodal__card{position:relative;z-index:1;width:100%;max-width:880px;background:#000;border-radius:var(--r-card);overflow:hidden}
.vmodal__video{display:block;width:100%;max-height:80vh;background:#000}
.vmodal__close{position:absolute;top:10px;right:10px;z-index:2;width:38px;height:38px;border:none;border-radius:50%;
  background:rgba(250,250,250,.92);color:var(--ink);display:flex;align-items:center;justify-content:center;cursor:pointer}
.vmodal.is-open{animation:ritmFade .25s ease}
@keyframes ritmFade{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.vmodal.is-open{animation:none}}

/* сворачиваемый дисклеймер «Перед покупкой» */
.precheck__more{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .4s ease,opacity .35s ease}
.precheck__more-inner{overflow:hidden;min-height:0}
.precheck.is-open .precheck__more{grid-template-rows:1fr;opacity:1;margin-top:6px}
.precheck__toggle{margin-top:14px;background:none;border:none;color:var(--accent);font:inherit;font-weight:600;cursor:pointer;padding:0}
.precheck__toggle:hover{color:#fff}
@media(prefers-reduced-motion:reduce){.precheck__more{transition:none}}

/* «Для кого» / «Что внутри» */
.pp-grid{display:grid;gap:clamp(20px,3vw,32px)}
.feature-list{display:grid;grid-template-columns:1fr 1fr;gap:clamp(24px,4vw,40px)}
@media(max-width:720px){.feature-list{grid-template-columns:1fr}}
.bullets{list-style:none;display:flex;flex-direction:column;gap:10px}
.bullets li{position:relative;padding-left:24px;font-size:15px;color:var(--pencil);line-height:1.45}
.bullets li::before{content:"";position:absolute;left:6px;top:9px;width:6px;height:6px;border-radius:50%;background:var(--accent)}

/* плашки оплаты */
.plans{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:32px}
@media(max-width:820px){.plans{grid-template-columns:1fr}}
.plan{background:var(--card);border-radius:var(--r-card);padding:28px;border:1px solid transparent;
  transition:transform .45s cubic-bezier(.2,.8,.2,1),border-color .3s}
.plan:hover{transform:translateY(-6px)}
.plan--feature{border-color:var(--accent)}
.plan__inner{display:flex;flex-direction:column;gap:10px;height:100%}
.plan__tag{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--faint)}
.plan__name{font-size:22px;font-weight:700;letter-spacing:-.02em;line-height:1.12}
.plan__desc{font-size:14px;color:var(--pencil);line-height:1.5}
.plan__price{font-size:34px;font-weight:700;letter-spacing:-.03em;margin-top:8px;color:var(--ink)}
.plan__old{font-size:13px;color:var(--faint)}
.plan__old s{opacity:.7}
.plan__old b{color:var(--accent);font-weight:600}
.plan__badge{display:inline-flex;align-self:flex-start;font-size:12px;font-weight:600;color:var(--accent);
  background:var(--accent-soft);padding:5px 11px;border-radius:var(--r-pill)}
.plan .btn{margin-top:auto;width:100%}
.pack-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;margin:4px 0}
.pack-list li{position:relative;padding-left:18px;font-size:13px;color:var(--pencil)}
.pack-list li::before{content:"";position:absolute;left:4px;top:8px;width:5px;height:5px;border-radius:50%;background:var(--accent)}
/* тёмный вариант плана (карточка «Полный пакет») */
.plan.dark{background:var(--graphite);border-color:var(--graphite)}
.plan.dark .plan__tag{color:rgba(255,255,255,.5)}
.plan.dark .plan__name{color:#fff}
.plan.dark .plan__desc{color:rgba(255,255,255,.6)}
.plan.dark .plan__price{color:#fff}
.plan.dark .plan__old{color:rgba(255,255,255,.5)}
.plan.dark .pack-list li{color:rgba(255,255,255,.72)}
.plan.dark .btn{background:var(--canvas);color:var(--ink);box-shadow:none}
.ticks{list-style:none;display:flex;flex-direction:column;gap:8px;margin:4px 0}
.ticks li{position:relative;padding-left:26px;font-size:14px;color:var(--ink);line-height:1.4}
.ticks li::before{content:"✓";position:absolute;left:0;top:0;color:var(--accent);font-weight:700}

/* ===== Дисклеймер «Перед покупкой/стартом» — единая ЧЁРНАЯ плашка, без иконки, свёрнут по умолчанию ===== */
.precheck{display:block;background:var(--graphite);border-radius:var(--r-card);padding:clamp(20px,3vw,26px);color:#a3a3a3}
.precheck__i{display:none}                 /* иконка-предупреждение убрана на всех страницах */
.precheck__top{display:flex;align-items:center;gap:12px;margin-bottom:0}
.precheck--stacked .precheck__intro{margin-top:12px}
.precheck__body{min-width:0}
.precheck .eyebrow{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.16);color:#fff}
.precheck__intro{font-size:15px;color:#e5e5e5;line-height:1.55;margin-top:12px}
.precheck__intro b{font-weight:700;color:#fff}
.precheck__red{display:flex;gap:10px;align-items:flex-start;background:rgba(216,85,46,.15);border:1px solid rgba(216,85,46,.4);border-radius:16px;padding:14px 16px;margin:14px 0}
.precheck__red-i{flex:none;color:var(--accent)}
.precheck__red-i svg{width:20px;height:20px}
.precheck__red p{font-size:14px;line-height:1.45;color:#f0c4b5}
.precheck__note{font-size:14px;color:#a3a3a3;line-height:1.5;margin-top:12px;font-weight:500}
.precheck__cols{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:18px}
@media(max-width:720px){.precheck__cols{grid-template-columns:1fr}}
.precheck-sub__h{font-size:14px;font-weight:700;margin-bottom:10px;color:#fff}
.precheck-sub--ask .precheck-sub__h{color:var(--accent)}
.precheck-list{list-style:none;display:flex;flex-direction:column;gap:6px}
.precheck-list li{position:relative;padding-left:18px;font-size:13px;color:#a3a3a3;line-height:1.4}
.precheck-list li::before{content:"";position:absolute;left:4px;top:8px;width:5px;height:5px;border-radius:50%;background:var(--accent)}
.precheck__includes{font-size:13px;color:#8a8a8a;line-height:1.5;margin-top:14px}
@media(max-width:560px){.precheck{padding:20px}}

/* product.html (sell.js) — доп. элементы */
.crumb{font-size:14px;color:var(--faint)}
.crumb a{color:var(--pencil);text-decoration:none}
.crumb a:hover{color:var(--ink)}
.grid.grid--2{grid-template-columns:1fr 1fr}
@media(max-width:720px){.grid.grid--2{grid-template-columns:1fr}}
.card-h{font-size:18px;font-weight:700;letter-spacing:-.01em;margin-bottom:12px}
.card-sub{font-size:14px;color:var(--pencil);line-height:1.5;margin-top:8px}
.fineprint{font-size:12px;color:var(--faint);text-align:center;max-width:66ch;margin:18px auto 0;line-height:1.6}
.fineprint a{color:var(--pencil);text-decoration:underline}

/* club.html — переключатель периодов + CTA-ряд */
.club-buy{margin-top:30px;display:flex;flex-direction:column;align-items:center;gap:18px}
/* flex-wrap — на узких экранах (≤360) 4 таба периода переносятся вместо горизонтального переполнения */
.switch{display:inline-flex;flex-wrap:wrap;justify-content:center;gap:6px;background:var(--card);border:1px solid var(--border);border-radius:20px;padding:5px}
/* неактивные табы периода — читаемый ink (был --pencil: светло-серое на светлом почти терялось) */
.switch button{border:none;background:none;font:inherit;font-weight:600;font-size:13px;color:var(--ink);
  padding:8px 14px;border-radius:var(--r-pill);cursor:pointer;transition:background .2s,color .2s;white-space:nowrap}
.switch button:hover{color:var(--accent)}
.switch button.is-on{background:var(--graphite);color:var(--canvas)}
.club-cta{display:flex;gap:14px;flex-wrap:wrap;align-items:center;justify-content:center}
.club-cta .muted{font-size:14px;color:var(--ink);font-weight:600}
/* строка доверия у кнопок покупки: «Безопасная оплата через ЮKassa · Карты РФ» */
.pay-note{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--faint);margin-top:10px}
.pay-note svg{width:13px;height:13px;flex:none}
/* карточка отзыва (секция «Результаты участников» — пока скрыта, см. club.html TODO) */
.review-card__head{display:flex;align-items:center;gap:12px}
.review-card__ava{width:40px;height:40px;border-radius:9999px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-weight:700;flex:none}
/* Смарт-баннер приложения — обычный элемент ПОТОКА в самом верху (не fixed, не попап).
   Фиксированный навбар синхронизируется по top скриптом (см. renderAppBar в site.js).
   Только мобильные ≤820px. */
/* margin-top:-62 поднимает баннер над clearance-отступом body(padding-top:62) к самому
   верху; margin-bottom:62 отдаёт место фикс-навбару, чей top синхронизируется скриптом.
   На десктопе .appbar скрыт (display:none), поэтому эти отступы там не действуют. */
.appbar{display:flex;align-items:center;gap:10px;height:44px;padding:0 14px;margin:-62px 0 62px;position:relative;z-index:61;background:var(--graphite);color:#fff;font-size:13px;line-height:1.2}
.appbar__t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.appbar__open{flex:none;color:var(--accent);font-weight:700;text-decoration:none;padding:4px 6px}
.appbar__x{flex:none;background:none;border:none;color:rgba(255,255,255,.55);font-size:20px;line-height:1;cursor:pointer;padding:2px 4px}
@media(min-width:821px){.appbar{display:none}}

/* Слайд-ин карточка про бесплатное приложение (НЕ попап). Графит — лифтуется над #fafafa
   без теней (их в системе нет). Десктоп: нижний правый угол; мобайл: снизу во всю ширину. */
.appslide{position:fixed;right:20px;bottom:20px;z-index:60;width:320px;max-width:calc(100vw - 40px);background:var(--graphite);color:#fff;border-radius:var(--r-card);padding:16px 18px;opacity:0;transform:translateY(16px);transition:opacity .3s ease-out,transform .3s ease-out}
.appslide.is-in{opacity:1;transform:none}
.appslide__t{margin:0 0 14px;padding-right:18px;font-size:14px;line-height:1.45;color:rgba(255,255,255,.9)}
.appslide__open{display:inline-flex;align-items:center;gap:8px;background:#fff;color:var(--graphite);font-weight:700;font-size:14px;text-decoration:none;padding:9px 18px;border-radius:var(--r-pill)}
.appslide__x{position:absolute;top:10px;right:12px;background:none;border:none;color:rgba(255,255,255,.55);font-size:20px;line-height:1;cursor:pointer;padding:2px 4px}
.appslide__x:hover{color:#fff}
/* Только десктоп (>820px): на мобиле уже есть смарт-баннер сверху, два промо избыточны. */
@media(max-width:820px){.appslide{display:none}}
@media(prefers-reduced-motion:reduce){.appslide{transition:none}}

/* FAQ-аккордеон (на нативном <details>, без JS) */
.faq{display:flex;flex-direction:column;gap:10px;margin-top:28px}
.faq-item{background:var(--card);border:1px solid var(--border);border-radius:var(--r-card);overflow:hidden}
.faq-item summary{list-style:none;cursor:pointer;padding:18px 20px;font-weight:600;font-size:15px;display:flex;justify-content:space-between;align-items:center;gap:12px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";color:var(--accent);font-weight:700;font-size:20px;line-height:1;flex:none;transition:transform .2s}
.faq-item[open] summary::after{content:"–"}
.faq-item__a{padding:0 20px 18px;font-size:14px;line-height:1.6;color:var(--pencil);margin:0}
.faq-item__a a{color:var(--accent)}

/* тёмные карточки (как тёмная плитка эталона) */
.card.dark{background:var(--graphite);color:var(--canvas)}
.card.dark .card-h{color:var(--canvas)}
.card.dark .card-sub{color:var(--faint)}
.card.dark .pill{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.15);color:var(--canvas)}
.card.dark .pill b{color:var(--accent-soft)}
.card.dark .checklist li{color:var(--canvas)}
.card.dark .checklist li.yes::before{color:var(--accent)}
.card.dark .checklist li.no,.card.dark .prod__desc{color:var(--faint)}
.card.dark .eyebrow{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.15);color:var(--canvas)}
.card.dark .prod__name{color:var(--canvas)}
/* VIP-акцент «Рома лично» — светлая карточка с терракотовой рамкой внутри тёмного блока */
.vip-roma{background:var(--canvas);border:1px solid var(--accent);border-radius:var(--r-card);padding:clamp(22px,3vw,28px);margin:18px 0}
.vip-roma__t{font-size:clamp(22px,3.2vw,30px);font-weight:700;letter-spacing:-.02em;line-height:1.05;color:var(--ink)}
.vip-roma__s{font-size:15px;color:var(--pencil);line-height:1.55;margin-top:10px;max-width:52ch}

/* ============ roma.html — автор ============ */
.roma-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(24px,4vw,48px);align-items:center}
@media(max-width:820px){.roma-grid{grid-template-columns:1fr}}
.roma-media img{width:100%;border-radius:var(--r-card);display:block}
.author-quote{margin:18px 0;border:none;padding:0;font-family:var(--serif);font-style:italic;color:var(--accent);font-size:clamp(17px,2vw,21px);line-height:1.32}
.roma-text{color:var(--pencil);line-height:1.6;font-size:16px}
.author-facts{list-style:none;display:flex;flex-wrap:wrap;gap:10px;margin:18px 0;padding:0}
.author-facts li{display:inline-flex;align-items:center;font-family:var(--inter);font-weight:600;font-size:14px;color:var(--ink);background:var(--canvas);border:1px solid var(--border);padding:8px 14px;border-radius:var(--r-pill);letter-spacing:-.01em}

/* ============ ЮРИДИЧЕСКИЕ СТРАНИЦЫ (terms / privacy / consent) ============ */
.legal{max-width:760px;margin:0 auto;text-align:left}
.legal h1{font-size:clamp(30px,4.6vw,46px);font-weight:700;letter-spacing:-.02em;line-height:1.06;margin:14px 0 0;color:var(--ink)}
.legal h2{font-size:clamp(18px,2.4vw,22px);font-weight:700;letter-spacing:-.01em;margin:30px 0 8px;color:var(--ink)}
.legal p,.legal li{color:var(--pencil);line-height:1.65;font-size:15px}
.legal .lead{font-size:17px;color:var(--ink);margin-top:16px}
.legal ul{margin:8px 0;padding-left:20px;display:grid;gap:6px}
.legal a{color:var(--accent);text-decoration:none;font-weight:600}
.legal a:hover{text-decoration:underline}
.legal .meta{margin-top:30px;font-size:14px;color:var(--faint)}
.legal__chips{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 8px}
.legal__chips span,.legal__chips a{font-size:12px;font-weight:600;color:var(--ink);background:var(--canvas);border:1px solid var(--border);padding:5px 11px;border-radius:var(--r-pill);text-decoration:none}
.legal__chips a:hover{border-color:var(--accent);color:var(--accent)}
.req{width:100%;border-collapse:collapse;margin:8px 0 4px;font-size:14px}
.req td{padding:9px 0;border-bottom:1px solid var(--border);vertical-align:top;color:var(--pencil)}
.req td:first-child{width:38%;color:var(--ink);font-weight:600;padding-right:16px}

/* ============ ЛИЧНЫЙ КАБИНЕТ profile.html (рендер profile.js) ============ */
.badge{display:inline-flex;align-items:center;font-size:12px;font-weight:600;color:var(--ink);background:var(--canvas);border:1px solid var(--border);padding:5px 11px;border-radius:var(--r-pill)}
.pf-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}
.pf-tab{border:1px solid var(--border);background:var(--canvas);color:var(--pencil);font:inherit;font-weight:600;font-size:14px;padding:9px 16px;border-radius:var(--r-pill);cursor:pointer;transition:background .2s,color .2s,border-color .2s;white-space:nowrap}
.pf-tab:hover{color:var(--ink)}
.pf-tab.is-on{background:var(--graphite);color:var(--canvas);border-color:var(--graphite)}
.pf-grid{display:grid;grid-template-columns:1.3fr .9fr;gap:14px;align-items:start}
@media(max-width:820px){.pf-grid{grid-template-columns:1fr}}
.pf-card{position:relative;overflow:hidden;background:var(--card);border:1px solid var(--border);border-radius:var(--r-card);padding:clamp(24px,3vw,30px)}
.pf-card__inner{position:relative}
.owned{display:flex;flex-direction:column}
.owned__item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--border)}
.owned__item:first-child{border-top:none}
.owned__item .n{font-weight:600;font-size:15px}
.owned__item .s{font-size:13px;color:var(--pencil);text-decoration:none}
a.s:hover{color:var(--ink)}
.pf-empty{color:var(--faint);font-size:14px}
.pf-recos{display:flex;flex-direction:column;gap:10px}
.pf-reco{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;background:var(--canvas);border:1px solid var(--border);border-radius:var(--r-card);padding:16px 18px}
.pf-reco__zone{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--accent)}
.pf-reco__t{font-size:14px;color:var(--pencil);line-height:1.4;margin-top:4px}
.pf-reco .int-deep__btn{display:inline-flex;width:auto;flex:none;background:var(--graphite);color:var(--canvas)}
.pf-orders{width:100%;border-collapse:collapse;font-size:14px}
.pf-orders th,.pf-orders td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border)}
.pf-orders thead th{font-weight:700;color:var(--ink)}
.pf-orders td{color:var(--pencil)}

/* ============ INTENSIVE / RITM LAB (рендер intensive.js) ============ */
.int-badge{display:inline-flex;align-items:center;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.02em;color:var(--accent);background:var(--accent-soft);padding:6px 13px;border-radius:var(--r-pill)}
.frost{}

/* ползунки (baseline + gauges) */
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:6px;border-radius:999px;background:var(--border);outline:none}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:var(--accent);cursor:pointer;border:2px solid var(--canvas)}
input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--accent);cursor:pointer;border:2px solid var(--canvas)}

.int-baseline__grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 28px;margin-top:18px}
@media(max-width:680px){.int-baseline__grid{grid-template-columns:1fr}}
.int-scale{display:grid;grid-template-columns:1fr auto;align-items:center;gap:6px 12px}
.int-scale__lab{font-size:14px;color:var(--pencil)}
.int-scale__val{font-weight:700;font-size:14px;min-width:2ch;text-align:right}
.int-scale input[type=range]{grid-column:1/-1}

/* чек-кнопки */
.int-checks{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.int-check{display:inline-flex;align-items:center;gap:10px;font:inherit;font-weight:600;font-size:14px;cursor:pointer;background:var(--canvas);border:1px solid var(--border);border-radius:var(--r-btn);padding:10px 14px;color:var(--ink);transition:border-color .2s,background .2s}
.int-check:hover{border-color:var(--divider)}
.int-check__box{flex:none;width:20px;height:20px;border-radius:6px;border:1.5px solid var(--divider);display:inline-flex;align-items:center;justify-content:center;transition:.2s}
.int-check__box svg{width:13px;height:13px;opacity:0}
.int-check.is-on{border-color:var(--accent);background:var(--accent-soft)}
.int-check.is-on .int-check__box{background:var(--accent);border-color:var(--accent)}
.int-check.is-on .int-check__box svg{opacity:1}
.int-daycheck{margin-top:18px}

/* before/after gauge */
.int-gauge{background:var(--canvas);border:1px solid var(--border);border-radius:var(--r-card);padding:16px 18px;margin-top:16px}
.int-gauge__h{font-size:13px;font-weight:600;color:var(--pencil);margin-bottom:6px}
.int-gauge__row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin-top:10px}
.int-gauge__lab{font-size:13px;color:var(--faint);min-width:5ch}
.int-gauge__val{font-weight:700;font-size:14px;min-width:2ch;text-align:right}
.int-gauge__delta{margin-top:12px;font-size:13px;font-weight:600}

/* блоки механики */
.mech-body{margin-top:4px}
.day-sec,.day-why,.day-warn,.day-sci{margin-top:14px}
.day-sec h5,.day-why h5,.day-warn h5,.day-sci h5{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--faint);margin-bottom:6px}
.day-sec>p,.day-why p,.day-sci>p{font-size:14px;color:var(--ink);line-height:1.55}
.day-why{background:var(--accent-soft);border:1px solid var(--accent);border-radius:16px;padding:16px 18px}
.day-sec ul,.day-warn ul{list-style:none;display:flex;flex-direction:column;gap:6px}
.day-sec li,.day-warn li{position:relative;padding-left:18px;font-size:14px;color:var(--pencil);line-height:1.45}
.day-sec li::before{content:"";position:absolute;left:4px;top:8px;width:5px;height:5px;border-radius:50%;background:var(--accent)}
.day-warn{background:var(--accent-soft);border-radius:16px;padding:16px 18px}
.day-warn h5{display:inline-flex;align-items:center;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);background:var(--canvas);border:1px solid var(--accent);padding:5px 11px;border-radius:var(--r-pill);margin-bottom:12px}
.day-warn ul{gap:8px}
.day-warn li{color:#8a2f12;padding-left:22px}
.day-warn li::before{content:"";position:absolute;left:7px;top:8px;width:6px;height:6px;border-radius:50%;background:var(--accent)}
.day-sci{background:var(--accent-soft);border:1px solid var(--accent);border-radius:16px;padding:16px 18px}
.day-why h5,.day-sci h5{color:var(--accent)}
.day-sci__h{display:flex;align-items:center;gap:8px}
.day-sci__i{color:var(--accent);display:inline-flex}
.day-sci__i svg{width:18px;height:18px}
.day-sci__links{margin-top:8px}
.day-sci__link{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--accent);text-decoration:none}
.day-sci__link svg{width:14px;height:14px}

/* upsell внутри механики */
.int-deep{margin-top:16px;background:var(--graphite);color:var(--canvas);border-radius:var(--r-card);padding:18px 20px}
.int-deep__tag{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--accent-soft)}
.int-deep__tx{font-size:14px;color:var(--faint);line-height:1.5;margin:6px 0 12px}
.int-deep__btn{display:flex;width:100%;justify-content:space-between;align-items:center;gap:10px;font-weight:600;font-size:14px;line-height:1.3;background:var(--canvas);color:var(--ink);border-radius:var(--r-btn);padding:12px 16px;text-decoration:none}
.int-deep__name{min-width:0}
.int-deep__r{display:inline-flex;align-items:center;gap:8px;flex:none}
.int-deep__price{color:var(--accent)}

/* день / сетка механик */
.int-day__head{margin-bottom:8px}
.int-mechs{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px;align-items:start}
@media(max-width:820px){.int-mechs{grid-template-columns:1fr}}

/* lock */
.int-lock{background:var(--card);border:1px dashed var(--divider);border-radius:var(--r-card);padding:clamp(28px,5vw,44px);text-align:center;margin-top:8px}
.int-lock__i{color:var(--faint)}
.int-lock__i svg{width:30px;height:30px}
.int-lock__cond{font-size:15px;color:var(--pencil);margin-top:10px}
.int-lock__demo{margin-top:16px}

/* кольца прогресса */
.int-rings{display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.int-ring{display:flex;align-items:center;gap:8px}
.int-ring__svg{width:44px;height:44px;flex:none;transform:rotate(-90deg)}
.int-ring__bg{stroke:var(--border)}
.int-ring__fg{stroke:var(--accent);transition:stroke-dashoffset .6s cubic-bezier(.2,.8,.2,1)}
.int-ring__meta{line-height:1.1}
.int-ring__meta .k{font-size:11px;color:var(--faint);white-space:nowrap}
.int-ring__meta .v{font-size:15px;font-weight:700}

/* RITM Score */
.int-score{width:min(300px,100%)}
.int-hero-stats{display:flex;gap:clamp(20px,4vw,44px);flex-wrap:wrap;justify-content:center;align-items:center;margin-top:30px}
.hero-line{font-size:clamp(17px,2.2vw,22px);font-weight:600;color:var(--ink);max-width:34ch;margin:14px auto 0;line-height:1.3}
.int-score__top{display:flex;justify-content:space-between;font-weight:700;font-size:15px}
.int-score__bar{height:8px;border-radius:999px;background:var(--card);overflow:hidden;margin-top:8px}
.int-score__bar i{display:block;height:100%;background:var(--accent);border-radius:999px;transition:width .6s cubic-bezier(.2,.8,.2,1)}
.int-score__note{font-size:12px;color:var(--faint);margin-top:8px}

/* финальный отчёт */
.int-report__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:8px}
@media(max-width:820px){.int-report__grid{grid-template-columns:1fr}}
.int-zone{display:flex;flex-direction:column;gap:8px;background:var(--graphite);border:1px solid var(--graphite);border-radius:var(--r-card);padding:20px;color:var(--canvas)}
.int-zone.is-hit{border-color:var(--accent)}
.int-zone__s{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--faint)}
.int-zone.is-hit .int-zone__s{color:var(--accent-soft)}
.int-zone__t{font-size:16px;font-weight:700;letter-spacing:-.01em;line-height:1.2;color:var(--canvas)}
.int-zone .int-deep__btn{display:flex;width:100%;justify-content:space-between;align-items:center;gap:10px;text-align:left;line-height:1.3;margin-top:auto;background:var(--canvas);color:var(--ink)}
.int-zone .int-deep__btn .btn__chip{flex:none;background:var(--graphite);color:var(--canvas)}

/* нижние ссылки */
.int-aside{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:680px){.int-aside{grid-template-columns:1fr}}
.int-aside a{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--card);border-radius:var(--r-card);padding:18px 22px;text-decoration:none;color:var(--ink);font-weight:600;transition:transform .3s}
.int-aside a:hover{transform:translateY(-3px)}

/* кнопки CTA в блоке Club (интенсив): десктоп — в ряд, мобайл — по центру на всю ширину */
.club-cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:8px}
@media(max-width:560px){
  .club-cta-row{flex-direction:column}
  .club-cta-row .btn{width:100%;justify-content:center}
}

/* сворачивание действия интенсива */
.mech-toggle{margin-top:4px;background:none;border:none;color:var(--accent);font:inherit;font-weight:600;cursor:pointer;padding:0}
.mech-collapse{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .4s ease,opacity .35s ease}
.mech-collapse__inner{overflow:hidden;min-height:0}
.card.collapsible.is-open .mech-collapse{grid-template-rows:1fr;opacity:1;margin-top:14px}
/* выделенная плашка «В чём суть / Почему работает» */
.mech-highlight{background:var(--accent-soft);border:1px solid var(--accent);border-radius:16px;padding:16px 18px;margin-top:14px}
.mech-highlight h5{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);margin-bottom:5px}
.mech-highlight p{font-size:14px;color:var(--ink);line-height:1.55}

/* ============ ГАЙД protocol guide-*.html (рендер guide.js) ============ */
.guide-note{font-size:12px;color:var(--faint);line-height:1.5}
.badge--ok{display:inline-flex;align-items:center;font-size:12px;font-weight:600;color:var(--accent);background:var(--accent-soft);padding:5px 11px;border-radius:var(--r-pill)}

/* красные флаги */
.redflags{display:flex;gap:14px;background:var(--accent-soft);border:1px solid var(--accent);border-radius:var(--r-card);padding:clamp(18px,3vw,24px)}
.redflags__i{flex:none;color:var(--accent)}
.redflags__i svg{width:26px;height:26px}
.redflags__t{font-weight:700;color:#8a2f12;margin-bottom:4px}
.redflags p{color:#8a2f12;font-size:14px;line-height:1.5}

/* fallback-дисклеймер */
.disclaimer{display:flex;gap:14px;background:var(--card);border-radius:var(--r-card);padding:clamp(18px,3vw,24px);font-size:14px;color:var(--ink);line-height:1.5}
.disclaimer__i{flex:none;color:var(--accent)}
.disclaimer__i svg{width:24px;height:24px}

/* «Как проходить» — шаги */
.howto{list-style:none;display:flex;flex-direction:column;gap:12px;margin-top:6px}
.howto-step{display:flex;align-items:flex-start;gap:12px}
.howto-num{flex:none;width:26px;height:26px;border-radius:50%;background:var(--accent);color:var(--canvas);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700}
.howto-tx{font-size:15px;color:var(--ink);line-height:1.45;padding-top:2px}
.howto-accent{font-family:var(--serif);font-style:italic;color:var(--accent);font-size:1.18em;margin-top:14px}

/* аккордеон дней */
.acc{display:flex;flex-direction:column;gap:12px;margin-top:32px}
.acc-item{background:var(--card);border:1px solid var(--border);border-radius:var(--r-card);overflow:hidden}
.acc-head{display:flex;align-items:center;gap:14px;width:100%;background:none;border:none;cursor:pointer;font:inherit;text-align:left;padding:18px 20px;color:var(--ink)}
.acc-num{flex:none;width:30px;height:30px;border-radius:50%;background:var(--canvas);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}
.acc-item.is-done .acc-num{background:var(--accent);color:var(--canvas);border-color:var(--accent)}
.acc-titles{flex:1;min-width:0}
.acc-titles .t{font-weight:700;font-size:16px;letter-spacing:-.01em}
.acc-chev{flex:none;width:22px;height:22px;color:var(--faint);transition:transform .3s}
.acc-item.is-open .acc-chev{transform:rotate(180deg)}
.acc-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s ease}
.acc-item.is-open .acc-body{grid-template-rows:1fr}
.acc-body>div{overflow:hidden;min-height:0}
.acc-inner{padding:0 20px 20px}
.day-mark{margin-top:16px}
.day-mark button{background:var(--canvas);border:1px solid var(--border);border-radius:var(--r-btn);font:inherit;font-weight:600;font-size:14px;padding:10px 16px;cursor:pointer;color:var(--ink);transition:border-color .2s,background .2s}
.day-mark button:hover{border-color:var(--divider)}
.day-mark button.is-on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}

/* матрица */
.gmx{width:100%;border-collapse:collapse;font-size:14px}
.gmx th,.gmx td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border)}
.gmx thead th{font-weight:700}
.gmx td{color:var(--pencil)}

/* трекер */
.trk-meta{display:flex;align-items:baseline;gap:10px}
.trk-meta .big{font-size:36px;font-weight:700;letter-spacing:-.03em}
.trk-bar{height:8px;border-radius:var(--r-pill);background:var(--canvas);overflow:hidden;margin:14px 0}
.trk-bar i{display:block;height:100%;background:var(--accent);border-radius:var(--r-pill);transition:width .5s cubic-bezier(.2,.8,.2,1)}
.trk{display:flex;flex-wrap:nowrap;gap:8px}
.trk-day{flex:1 1 0;min-width:0;max-width:56px;aspect-ratio:1;display:flex;align-items:center;justify-content:center;border-radius:12px;border:1px solid var(--border);background:var(--canvas);font:inherit;font-weight:700;cursor:pointer;color:var(--pencil);transition:.2s}
.trk-day:hover{border-color:var(--divider)}
.trk-day.is-done{background:var(--accent);color:var(--canvas);border-color:var(--accent)}

/* lock / paywall */
.lock-cta{background:var(--card);border:1px solid var(--border);border-radius:var(--r-card);padding:clamp(28px,4vw,40px);max-width:640px}
.lock-cta h3{font-size:clamp(20px,3vw,26px);font-weight:700;letter-spacing:-.02em}
.lock-cta p{color:var(--pencil);line-height:1.5;margin:10px 0 18px;max-width:52ch}
.day-sci__note{font-size:13px;color:var(--faint)}

/* материалы гайда: один материал — на всю ширину, список в 2 колонки */
.materials{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:32px}
@media(max-width:720px){.materials{grid-template-columns:1fr}}
.materials .col-12{grid-column:1/-1}
.materials .col-12 .day-sec ul{columns:2;column-gap:32px}
.materials .col-12 .day-sec li{break-inside:avoid}
@media(max-width:560px){.materials .col-12 .day-sec ul{columns:1}}

/* ============ ТАРИФНЫЕ СТРАНИЦЫ (premium / vip) ============ */
.pp-grid{display:grid;gap:clamp(22px,3vw,40px);grid-template-columns:1.3fr .9fr;align-items:start;text-align:left}
@media(max-width:820px){.pp-grid{grid-template-columns:1fr}}
.pp-buy{background:var(--card);border:1px solid var(--border);border-radius:var(--r-card);padding:24px;
  display:flex;flex-direction:column;align-items:stretch;align-self:start;height:fit-content;gap:12px}
.pp-buy>.pill{align-self:flex-start}
.pp-buy__bonus{white-space:normal;line-height:1.3}
.pp-buy.dark .pp-buy__bonus{background:var(--accent-soft);border-color:transparent;color:var(--graphite)}
.pp-buy__price{font-size:clamp(34px,5vw,42px);font-weight:700;letter-spacing:-.03em;line-height:1;margin:0}
.pp-buy__sub{font-size:13px;color:var(--pencil);line-height:1.45;margin:0}
.pp-buy .btn{width:100%;margin:0}
.pp-specs{list-style:none;margin:0}
.pp-specs li{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-top:1px solid var(--border);font-size:14px}
.pp-specs .k{color:var(--pencil)}
.pp-specs .v{font-weight:600}
/* тёмный вариант карточки цены */
.pp-buy.dark{background:var(--graphite);color:var(--canvas);border-color:var(--graphite)}
.pp-buy.dark .pill{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.15);color:var(--canvas)}
.pp-buy.dark .pp-buy__sub{color:var(--faint);font-weight:500}
.pp-buy__sub b{color:var(--accent-soft);font-weight:600}
.pp-buy__price s{font-size:.5em;color:var(--faint);font-weight:500;margin-left:10px;vertical-align:2px}
.pp-buy.dark .pp-buy__price s{color:var(--faint)}
.pp-incl{list-style:none;display:flex;flex-direction:column;gap:8px}
.pp-incl li{position:relative;padding-left:24px;font-size:14px;color:var(--canvas);line-height:1.4}
.pp-incl li::before{content:"✓";position:absolute;left:0;top:0;color:var(--accent-soft);font-weight:700}
.pp-buy.dark .pp-specs li{border-color:rgba(255,255,255,.14)}
.pp-buy.dark .pp-specs .k{color:var(--faint)}
.pp-buy.dark .pp-specs .v{color:var(--canvas)}
.pp-buy.dark .field label{color:var(--faint)}
.pp-buy.dark .consent-row{color:var(--faint)}
.pp-buy.dark .consent-note{color:var(--faint)}
.pp-buy.dark .pp-note{color:var(--faint)}
.prod__desc{font-size:14px;color:var(--pencil);line-height:1.5;margin-top:8px}
.checklist{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:10px 20px}
@media(max-width:620px){.checklist{grid-template-columns:1fr}}
.checklist li{position:relative;padding-left:26px;font-size:15px;line-height:1.4}
.checklist li::before{position:absolute;left:0;top:0;font-weight:700}
.checklist li.yes::before{content:"✓";color:var(--accent)}
.checklist li.no{color:var(--faint)}
.checklist li.no::before{content:"✕";color:var(--faint)}
.metric{display:flex;flex-direction:column}
.metric .num{font-size:24px;font-weight:700;letter-spacing:-.02em}
.metric .lbl{font-size:13px;color:var(--pencil)}

/* таблица сравнения (vip) */
.cmp{width:100%;border-collapse:collapse;font-size:14px}
.cmp th,.cmp td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--border)}
.cmp th.c,.cmp td.c{text-align:center;width:110px}
.cmp thead th{font-weight:700;color:var(--ink)}
.cmp tbody td{color:var(--pencil)}
.uic{display:inline-block;width:18px;height:18px;border-radius:50%}
.uic--yes{background:var(--accent)}
.uic--no{background:var(--divider)}
.pp-note{font-size:12px;color:var(--faint);line-height:1.5;margin:0}
.pp-buy form{display:block}
.pp-buy form .field:first-child{margin-top:2px}

/* апселл-карточка Club (sell.js) */
.card__inner{min-width:0}
.club-points{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:10px 18px;margin:18px 0}
@media(max-width:720px){.club-points{grid-template-columns:1fr}}
.club-points li{position:relative;padding-left:24px;font-size:15px;color:var(--ink);line-height:1.4}
.club-points li::before{content:"✓";position:absolute;left:0;top:0;color:var(--accent);font-weight:700}
