/* ============================================================
   kudinlab — design system

   Направление: аналитическая панель, а не «дружелюбный сервис».
   Холодная бумага + глубокий navy, электрик-синий как бренд,
   лайм как сигнал роста, хайрлайн-сетка вместо серых плашек,
   моноширинная телеметрия, острые углы.

   Сознательно уходим от эстетики референса (сиреневый + белые
   скруглённые карточки + иллюстрации).
   ============================================================ */

/* ============================================================
   Шрифты — локальные, без обращений к Google Fonts и CDN.

   Onest и JetBrains Mono подключены вариативными файлами:
   один файл покрывает весь диапазон насыщенности, поэтому
   вместо 14 запросов получается 4. Подмножества — только
   кириллица и латиница, остального сайту не нужно.
   ============================================================ */

/* — Onest: заголовки и основной текст, 400–800 — */
@font-face{
  font-family:'Onest';
  font-style:normal;
  font-weight:400 800;
  font-display:swap;
  src:url('assets/fonts/onest-cyrillic.woff2') format('woff2');
  unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face{
  font-family:'Onest';
  font-style:normal;
  font-weight:400 800;
  font-display:swap;
  src:url('assets/fonts/onest-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
    U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212,
    U+2215, U+FEFF, U+FFFD;
}

/* — JetBrains Mono: номера секций и телеметрия, 400–500 — */
@font-face{
  font-family:'JetBrains Mono';
  font-style:normal;
  font-weight:400 500;
  font-display:swap;
  src:url('assets/fonts/jetbrains-mono-cyrillic.woff2') format('woff2');
  unicode-range:U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face{
  font-family:'JetBrains Mono';
  font-style:normal;
  font-weight:400 500;
  font-display:swap;
  src:url('assets/fonts/jetbrains-mono-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC,
    U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212,
    U+2215, U+FEFF, U+FFFD;
}

:root{
  /* поверхности */
  --bone:      #F4F7FB;   /* холодная «бумага» */
  --bone-2:    #E9EEF7;
  --paper:     #FFFFFF;
  --ink:       #0A0F1C;   /* navy-графит, тёмные секции */
  --ink-soft:  #111A2C;

  /* текст */
  --tx:        #0A0F1C;
  --tx-2:      #56607A;
  --tx-3:      #8B94A8;
  --tx-inv:    #EBF0F9;
  --tx-inv-2:  #97A1B8;

  /* акценты */
  --acc:       #2B59FF;   /* электрик-синий: бренд, CTA, ссылки */
  --acc-dk:    #1C42D6;
  --acc-soft:  rgba(43,89,255,.10);
  --lime:      #C8F53C;   /* сигнал роста: цифры, маркер, тёмные секции */
  --good:      #0FA36B;
  --warn:      #FF5A3C;   /* утечки, проблемы */

  /* линии */
  --line:      rgba(10,15,28,.14);
  --line-2:    rgba(10,15,28,.07);
  --line-inv:  rgba(235,240,249,.16);

  /* геометрия */
  --r:         3px;
  --r-lg:      4px;
  --wrap:      1280px;
  --gut:       clamp(20px, 4vw, 56px);

  /* типографика */
  --sans: 'Onest', 'Golos Text', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
  --mono: 'JetBrains Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;

  --ease: cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{ box-sizing:border-box; }
[hidden]{ display:none !important; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  background:var(--bone);
  color:var(--tx);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.6;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}

img,svg{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; }

::selection{ background:var(--acc); color:#fff; }

.skip{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--ink); color:var(--tx-inv); padding:12px 18px;
}
.skip:focus{ left:12px; top:12px; }

:where(a,button,input,select,textarea,summary,details):focus-visible{
  outline:2px solid var(--acc); outline-offset:3px; border-radius:2px;
}

.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--gut); }

.mono{
  font-family:var(--mono); font-size:12px; font-weight:500;
  letter-spacing:.10em; text-transform:uppercase;
}

/* ── типографика ───────────────────────────────────────────── */
h1,h2,h3{ margin:0; font-weight:700; letter-spacing:-.035em; line-height:1.02; }

h1{ font-size:clamp(40px, 7.2vw, 88px); font-weight:800; letter-spacing:-.045em; }
h2{ font-size:clamp(32px, 4.6vw, 58px); }
h3{ font-size:clamp(18px, 1.5vw, 22px); letter-spacing:-.02em; line-height:1.2; }

em{
  font-style:normal; color:var(--tx); white-space:nowrap;
  padding-inline:.06em;
  /* лаймовый маркер-выделитель, привязан к базовой линии */
  background-image:linear-gradient(to top,
      transparent .20em, var(--lime) .20em,
      var(--lime) .54em, transparent .54em);
  background-repeat:no-repeat;
  background-size:0% 100%;
  animation:mark .75s var(--ease) .35s forwards;
}
@keyframes mark{ to{ background-size:100% 100%; } }
@media (prefers-reduced-motion:reduce){ em{ background-size:100% 100%; animation:none; } }

p{ margin:0; }
.lead{ font-size:clamp(16px,1.35vw,19px); line-height:1.62; color:var(--tx-2); max-width:56ch; }

/* ── кнопки ────────────────────────────────────────────────── */
.btn{
  --bg:var(--ink); --fg:var(--tx-inv); --bd:var(--ink);
  position:relative; display:inline-flex; align-items:center; justify-content:center;
  gap:10px; padding:13px 22px;
  background:var(--bg); color:var(--fg); border:1px solid var(--bd);
  border-radius:var(--r);
  font-size:15px; font-weight:600; letter-spacing:-.01em;
  cursor:pointer; overflow:hidden; isolation:isolate;
  transition:transform .25s var(--ease), border-color .25s, color .25s;
  white-space:nowrap;
}
.btn::before{
  content:''; position:absolute; inset:0; z-index:-1;
  background:var(--acc);
  transform:translateY(101%);
  transition:transform .38s var(--ease);
}
.btn:hover::before{ transform:translateY(0); }
.btn:hover{ border-color:var(--acc); color:#fff; }
.btn:active{ transform:translateY(1px); }

.btn--sm{ padding:9px 16px; font-size:14px; }
.btn--lg{ padding:17px 30px; font-size:16px; }
.btn--full{ width:100%; }

.btn--ghost{ --bg:transparent; --fg:var(--tx); --bd:var(--line); }
.btn--ghost:hover{ color:#fff; }

.btn--inv{ --bg:var(--bone); --fg:var(--ink); --bd:var(--bone); }

.btn--lime{ --bg:var(--lime); --fg:var(--ink); --bd:var(--lime); font-weight:700; }
.btn--lime::before{ background:#fff; }
.btn--lime:hover{ color:var(--ink); border-color:#fff; }
.btn--inv:hover{ color:#fff; border-color:var(--acc); }

/* ── шапка ─────────────────────────────────────────────────── */
.hdr{
  position:sticky; top:0; z-index:90;
  background:color-mix(in srgb, var(--bone) 86%, transparent);
  backdrop-filter:blur(14px) saturate(1.4);
  -webkit-backdrop-filter:blur(14px) saturate(1.4);
  border-bottom:1px solid var(--line-2);
}
.hdr__in{
  max-width:var(--wrap); margin-inline:auto; padding:0 var(--gut);
  height:68px; display:flex; align-items:center; gap:28px;
}
.logo{ display:flex; align-items:baseline; gap:9px; flex-shrink:0; }
.logo__mark{ width:19px; height:19px; color:var(--acc); align-self:center; }
.hdr:hover .logo__mark{ color:var(--acc-dk); }
.logo__mark svg{ width:100%; height:100%; }
.logo__txt{
  font-size:21px; font-weight:800; letter-spacing:-.055em;
}
.logo__desc{
  font-family:var(--mono); font-size:10px; letter-spacing:.1em;
  text-transform:uppercase; color:var(--tx-3);
  padding-left:9px; border-left:1px solid var(--line);
}
@media (max-width:1080px){ .logo__desc{ display:none; } }

.nav{ display:flex; gap:26px; margin-left:auto; }
.nav a{
  position:relative; font-size:15px; color:var(--tx-2); font-weight:500;
  transition:color .2s;
}
.nav a::after{
  content:''; position:absolute; left:0; right:0; bottom:-4px; height:1px;
  background:var(--acc); transform:scaleX(0); transform-origin:left;
  transition:transform .3s var(--ease);
}
.nav a:hover{ color:var(--tx); }
.nav a:hover::after{ transform:scaleX(1); }

.hdr__act{ display:flex; align-items:center; gap:16px; margin-left:auto; }
.nav ~ .hdr__act{ margin-left:0; }
.tel{ font-family:var(--mono); font-size:12.5px; color:var(--tx-2); letter-spacing:-.01em; }
.tel:hover{ color:var(--acc); }

.burger{ display:none; width:38px; height:38px; background:none; border:1px solid var(--line); border-radius:var(--r); position:relative; cursor:pointer; }
.burger span{ position:absolute; left:10px; right:10px; height:1.5px; background:var(--ink); transition:transform .3s var(--ease), opacity .2s; }
.burger span:nth-child(1){ top:14px; }
.burger span:nth-child(2){ bottom:14px; }
.burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(4.5px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ transform:translateY(-4.5px) rotate(-45deg); }

.hdr__prog{ position:absolute; left:0; bottom:-1px; height:2px; width:0; background:var(--acc); }

.mmenu{
  position:fixed; inset:68px 0 auto 0; z-index:89;
  background:var(--bone); border-bottom:1px solid var(--line);
  padding:18px var(--gut) 26px; display:flex; flex-direction:column; gap:2px;
  animation:drop .3s var(--ease);
}
@keyframes drop{ from{ opacity:0; transform:translateY(-10px);} to{opacity:1;transform:none;} }
.mmenu a{ padding:13px 0; border-bottom:1px solid var(--line-2); font-size:18px; font-weight:600; letter-spacing:-.02em; }
.mmenu .btn{ margin-top:14px; border-bottom:none; justify-content:center; }

@media (max-width:900px){
  .nav{ display:none; }
  .tel{ display:none; }
  .hdr__act > .btn{ display:none; }   /* CTA живёт в мобильной панели снизу */
  .burger{ display:block; }
  /* .nav скрыт, но остаётся соседом в DOM — перебиваем правило .nav ~ .hdr__act */
  .hdr__in .hdr__act{ margin-left:auto; gap:0; }
}

/* ── HERO ──────────────────────────────────────────────────── */
.hero{ position:relative; padding:clamp(48px,7vw,96px) 0 clamp(56px,7vw,104px); overflow:hidden; }
.hero::before{
  content:''; position:absolute; inset:auto -10% -30% 40%; height:80%;
  background:radial-gradient(45% 55% at 60% 40%, rgba(43,89,255,.13), transparent 70%);
  pointer-events:none;
}
.grid-lines{
  position:absolute; inset:0; max-width:var(--wrap); margin-inline:auto;
  padding-inline:var(--gut); display:grid; grid-template-columns:repeat(5,1fr);
  pointer-events:none;
}
.grid-lines i{ border-left:1px solid var(--line-2); }
.grid-lines i:first-child{ border-left:none; }

.hero__in{
  position:relative;
  display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(32px,5vw,72px);
  align-items:center;
}
@media (max-width:980px){ .hero__in{ grid-template-columns:1fr; } }

.hero h1{ margin-bottom:26px; }
.hero .lead{ margin-bottom:34px; max-width:52ch; }

.hero__cta{ display:flex; flex-wrap:wrap; gap:12px; margin-bottom:38px; }

.hero__pts{ list-style:none; margin:0; padding:0; display:grid; gap:11px; }
.hero__pts li{ display:flex; align-items:flex-start; gap:11px; font-size:15px; color:var(--tx-2); }
.hero__pts svg{ width:15px; height:15px; flex-shrink:0; margin-top:4px; color:var(--acc); }

/* лабораторная панель */
.panel{
  background:var(--paper); border:1px solid var(--ink); border-radius:var(--r-lg);
  box-shadow:8px 8px 0 rgba(10,15,28,.08);
  padding:20px; display:grid; gap:18px;
}
.panel__top{ display:flex; justify-content:space-between; align-items:center; padding-bottom:14px; border-bottom:1px solid var(--line-2); color:var(--tx-3); }

.panel__hero .lbl{ color:var(--tx-3); display:block; margin-bottom:6px; }
.big{ font-size:clamp(40px,5vw,56px); font-weight:800; letter-spacing:-.05em; line-height:1; font-variant-numeric:tabular-nums; }
.delta{ font-family:var(--mono); font-size:12px; letter-spacing:.02em; display:inline-block; margin-top:8px; }
.delta--good{ color:var(--good); }

.panel__chart{ position:relative; }
.spark{ width:100%; height:88px; display:block; }
.spark__area{ fill:var(--acc-soft); }
.spark__line{ fill:none; stroke:var(--acc); stroke-width:2; stroke-linejoin:round;
  stroke-dasharray:600; stroke-dashoffset:600; }
.panel.in .spark__line{ animation:draw 1.5s var(--ease) .25s forwards; }
@keyframes draw{ to{ stroke-dashoffset:0; } }
.spark__x{ display:flex; justify-content:space-between; color:var(--tx-3); font-size:10px; margin-top:2px; }

.panel__rows{ display:grid; gap:0; border-top:1px solid var(--line-2); }
.row{ display:flex; justify-content:space-between; align-items:baseline; padding:11px 0; border-bottom:1px solid var(--line-2); font-size:14px; color:var(--tx-2); }
.row b{ font-family:var(--mono); font-size:15px; color:var(--tx); font-variant-numeric:tabular-nums; }
.panel__note{ color:var(--tx-3); font-size:10.5px; text-transform:none; letter-spacing:.02em; }

/* ── бегущая строка ────────────────────────────────────────── */
.strip{ border-block:1px solid var(--line); background:var(--ink); color:var(--tx-inv); overflow:hidden; }
.marquee{ display:flex; padding:15px 0; width:max-content; }
.marquee__t{
  flex:0 0 auto; display:flex; align-items:center; gap:26px;
  padding-right:26px; white-space:nowrap;
  animation:mv 30s linear infinite;
}
.marquee:hover .marquee__t{ animation-play-state:paused; }
@keyframes mv{ from{ transform:translateX(0); } to{ transform:translateX(-100%); } }
.marquee__t span{ font-size:15px; font-weight:600; letter-spacing:-.02em; }
.marquee__t i{ color:var(--lime); font-style:normal; font-size:9px; }

/* ── факты ─────────────────────────────────────────────────── */
.facts{ border-bottom:1px solid var(--line); }
.facts__in{ display:grid; grid-template-columns:repeat(4,1fr); }
.fact{ padding:34px 26px 34px 0; border-left:1px solid var(--line-2); padding-left:26px; }
.fact:first-child{ border-left:none; padding-left:0; }
.fact b{ display:block; font-size:clamp(32px,3.6vw,46px); font-weight:800; letter-spacing:-.05em; line-height:1; margin-bottom:9px; font-variant-numeric:tabular-nums; }
.fact span{ font-size:14px; color:var(--tx-2); line-height:1.45; display:block; max-width:22ch; }
@media (max-width:820px){
  .facts__in{ grid-template-columns:1fr 1fr; }
  .fact{ padding:24px 16px; border-top:1px solid var(--line-2); }
  .fact:nth-child(odd){ border-left:none; padding-left:0; }
  .fact:nth-child(-n+2){ border-top:none; }
}

/* ── секции ────────────────────────────────────────────────── */
.sec{ padding:clamp(64px,9vw,132px) 0; position:relative; }
.sec--tight{ padding-top:clamp(48px,6vw,88px); }

.sec--dark{ background:var(--ink); color:var(--tx-inv); }
.sec--dark .lead,.sec--dark .sec__sub{ color:var(--tx-inv-2); }
.sec--dark .num{ color:var(--tx-inv-2); }
.sec--dark em{
  color:var(--lime);
  background-image:linear-gradient(to top,
      transparent .16em, rgba(200,245,60,.45) .16em,
      rgba(200,245,60,.45) .23em, transparent .23em);
}

.sec__hd{ max-width:760px; margin-bottom:clamp(38px,5vw,64px); }
.num{ color:var(--tx-3); margin-bottom:18px; display:flex; align-items:center; gap:12px; }
.num::after{ content:''; height:1px; flex:1; max-width:90px; background:currentColor; opacity:.35; }
.sec__sub{ margin-top:20px; font-size:clamp(15px,1.2vw,17.5px); color:var(--tx-2); line-height:1.6; max-width:60ch; }

/* ── проблемы ──────────────────────────────────────────────── */
.probs{ list-style:none; margin:0 0 clamp(38px,5vw,60px); padding:0; display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line-inv); border:1px solid var(--line-inv); }
.prob{ background:var(--ink); padding:clamp(24px,2.8vw,38px); transition:background .3s; }
.prob:hover{ background:var(--ink-soft); }
.prob__n{ color:var(--warn); display:block; margin-bottom:16px; }
.prob h3{ margin-bottom:12px; }
.prob p{ color:var(--tx-inv-2); font-size:15.5px; line-height:1.6; }
@media (max-width:760px){ .probs{ grid-template-columns:1fr; } }

.band{
  display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
  border:1px solid rgba(255,90,60,.55); border-radius:var(--r-lg);
  padding:clamp(22px,2.6vw,32px);
  background:linear-gradient(90deg, rgba(255,90,60,.16), rgba(255,90,60,0));
}
.band p{ font-size:clamp(16px,1.6vw,21px); font-weight:600; letter-spacing:-.02em; max-width:60ch; line-height:1.35; }

/* ── решения ───────────────────────────────────────────────── */
.sols{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.sol{ background:var(--paper); padding:clamp(26px,3vw,42px); display:flex; flex-direction:column; gap:14px; transition:background .3s; }
.sol:hover{ background:#fff; }
.sol__ic{ width:38px; height:38px; border:1px solid var(--line); border-radius:var(--r); display:grid; place-items:center; color:var(--acc); margin-bottom:6px; }
.sol__ic svg{ width:20px; height:20px; }
.sol p{ color:var(--tx-2); font-size:15.5px; line-height:1.6; flex:1; }
.sol__out{ color:var(--acc); text-transform:none; letter-spacing:.01em; font-size:12.5px; padding-top:14px; border-top:1px solid var(--line-2); }
@media (max-width:760px){ .sols{ grid-template-columns:1fr; } }

/* ── выгоды: делаем → значит → получаете ───────────────────── */
.bens{ list-style:none; margin:0; padding:0; border-top:1px solid var(--line); }

.ben{
  display:grid;
  grid-template-columns:56px 1.25fr 1fr 1.2fr;
  gap:clamp(16px,2.4vw,36px);
  align-items:start;
  padding:clamp(22px,2.6vw,32px) 0;
  border-bottom:1px solid var(--line);
  transition:background .3s var(--ease), padding-left .35s var(--ease);
}
.ben:hover{ background:var(--paper); padding-left:16px; }

.ben__n{
  font-size:15px; font-weight:700; letter-spacing:.06em;
  color:var(--tx-3); padding-top:3px;
  transition:color .3s;
}
.ben:hover .ben__n{ color:var(--acc); }

.ben__do h3{ font-size:clamp(16px,1.35vw,19px); margin-bottom:9px; }
.ben__det{
  color:var(--tx-3); font-size:11px; line-height:1.65;
  letter-spacing:.04em; text-transform:none;
}

.ben__mid{
  font-size:14.5px; line-height:1.55; color:var(--tx-2);
  padding-top:2px;
}

/* правая колонка — результат, визуально главная */
.ben__res{
  position:relative;
  font-size:15px; line-height:1.55; color:var(--tx-2);
  padding:14px 16px 14px 18px;
  background:var(--acc-soft); border-radius:var(--r);
}
.ben__res::before{
  content:''; position:absolute; left:0; top:0; bottom:0; width:3px;
  background:var(--acc); border-radius:var(--r) 0 0 var(--r);
}
.ben__res b{ color:var(--tx); font-weight:600; }

@media (max-width:1080px){
  .ben{ grid-template-columns:44px 1fr 1fr; }
  .ben__res{ grid-column:2 / -1; }
}
@media (max-width:680px){
  .ben{ grid-template-columns:38px 1fr; gap:12px 14px; padding:22px 0; }
  .ben:hover{ padding-left:0; background:none; }
  .ben__mid, .ben__res{ grid-column:2 / -1; }
  .ben__det{ font-size:10.5px; }
}

/* ── протокол ──────────────────────────────────────────────── */
.steps{ list-style:none; margin:0; padding:0; border-top:1px solid var(--line-inv); }
.step{ display:grid; grid-template-columns:110px 1fr; gap:clamp(16px,3vw,48px); padding:clamp(24px,3vw,36px) 0; border-bottom:1px solid var(--line-inv); align-items:start; transition:padding-left .35s var(--ease); }
.step:hover{ padding-left:14px; }
.step__n{ font-size:clamp(30px,3.4vw,46px); font-weight:700; letter-spacing:-.04em; color:var(--lime); line-height:1; text-transform:none; }
.step__b{ display:grid; gap:10px; max-width:70ch; }
.step__b p{ color:var(--tx-inv-2); font-size:15.5px; line-height:1.62; }
.step__t{ color:var(--tx-inv-2); opacity:.7; font-size:11px; }
@media (max-width:700px){ .step{ grid-template-columns:1fr; gap:12px; } }

/* ── площадки ──────────────────────────────────────────────── */
.chans{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
.chan{ background:var(--paper); padding:clamp(20px,2.2vw,28px); display:flex; flex-direction:column; gap:10px; min-height:190px; transition:background .3s, transform .3s var(--ease); }
.chan:hover{ background:#fff; }
/* логотипы площадок: в покое серые, при наведении на карточку — в цвете */
.chan__g{
  width:44px; height:44px; margin-bottom:8px;
  filter:grayscale(1) contrast(.9);
  opacity:.5;
  transition:filter .35s var(--ease), opacity .35s var(--ease), transform .35s var(--ease);
}
.chan:hover .chan__g,
.chan:focus-within .chan__g{
  filter:none; opacity:1; transform:scale(1.06);
}
/* на тач-устройствах наведения нет — показываем сразу в цвете */
@media (hover:none){
  .chan__g{ filter:none; opacity:1; }
}
.chan p{ font-size:14.5px; color:var(--tx-2); line-height:1.55; }
/* ── акцентный блок «с какой площадки начать» ──────────────── */
.chan--cta{
  position:relative; overflow:hidden;
  background:var(--ink); color:var(--tx-inv);
  justify-content:center; gap:20px;
  padding:clamp(26px,3vw,40px);
}
.chan--cta::before{           /* лаймовая полоса-акцент слева */
  content:''; position:absolute; left:0; top:0; bottom:0; width:4px;
  background:var(--lime);
}
.chan--cta::after{            /* синее свечение в углу */
  content:''; position:absolute; right:-12%; top:-40%;
  width:340px; height:340px; pointer-events:none;
  background:radial-gradient(circle, rgba(43,89,255,.34), transparent 68%);
}
.chan--cta:hover{ background:var(--ink); }
.chan--cta > *{ position:relative; z-index:1; }

.cta__l{ display:grid; gap:12px; }
.cta__tag{
  display:inline-flex; align-items:center; gap:8px;
  color:var(--lime); letter-spacing:.12em;
}
.cta__dot{
  width:6px; height:6px; border-radius:50%; background:var(--lime);
  animation:pulseL 2.2s infinite;
}
@keyframes pulseL{ 0%,100%{ opacity:1; } 50%{ opacity:.3; } }

.chan--cta h3{
  font-size:clamp(20px,2.2vw,27px); letter-spacing:-.03em; line-height:1.12;
}
.chan--cta p{ color:var(--tx-inv-2); font-size:15px; line-height:1.55; }
.chan--cta p b{ color:var(--tx-inv); font-weight:600; }

.cta__r{ display:grid; gap:12px; justify-items:center; }
.cta__note{
  font-size:12.5px !important; line-height:1.4; text-align:center;
  color:var(--tx-inv-2) !important; opacity:.75;
}
/* 9 площадок + CTA = 10 ячеек: 4 колонки, CTA занимает три последние */
@media (min-width:1081px){
  .chan--cta{
    grid-column:span 3;
    flex-direction:row; align-items:center; gap:clamp(20px,2.5vw,36px);
  }
  .cta__l{ flex:1; }
  .cta__l p{ max-width:62ch; }
  .cta__r{ flex:0 0 auto; }
}
@media (max-width:1080px){
  .chans{ grid-template-columns:repeat(2,1fr); }
  .chan--cta{ grid-column:span 2; }
}
@media (max-width:520px){
  .chans{ grid-template-columns:1fr; }
  .chan--cta{ grid-column:span 1; }
  .chan{ min-height:0; }
}

/* ── кейсы ─────────────────────────────────────────────────── */
.cases{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); margin-bottom:clamp(48px,6vw,80px); }
.case{ background:var(--paper); padding:clamp(24px,2.6vw,34px); display:grid; gap:12px; align-content:start; }
.case__tag{ color:var(--tx-3); }
.case__num{ display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; font-weight:800; letter-spacing:-.045em; font-size:clamp(20px,2vw,26px); font-variant-numeric:tabular-nums; }
.case__num span{ color:var(--tx-3); text-decoration:line-through; text-decoration-thickness:1.5px; }
.case__num i{ color:var(--acc); font-style:normal; font-size:16px; }
.case__num b{ color:var(--acc); font-size:clamp(26px,2.8vw,36px); }
.case__lbl{ font-size:13px; color:var(--tx-3); font-family:var(--mono); letter-spacing:.02em; }
.case__txt{ font-size:14.5px; color:var(--tx-2); line-height:1.55; padding-top:12px; border-top:1px solid var(--line-2); }
@media (max-width:900px){ .cases{ grid-template-columns:1fr; } }

/* ── отзывы ────────────────────────────────────────────────── */
.revs__hd{ display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:22px; }
.revs__hd h3{ font-size:clamp(20px,2vw,26px); }
.revs__nav{ display:flex; gap:8px; }
.rbtn{ width:42px; height:42px; border:1px solid var(--line); border-radius:var(--r); background:transparent; display:grid; place-items:center; cursor:pointer; transition:background .25s, color .25s, border-color .25s; }
.rbtn svg{ width:17px; height:17px; }
.rbtn:hover{ background:var(--ink); border-color:var(--ink); color:var(--tx-inv); }

.revs__track{
  display:grid; grid-auto-flow:column; grid-auto-columns:minmax(320px,420px);
  gap:16px; overflow-x:auto; scroll-snap-type:x mandatory;
  padding-bottom:8px; scrollbar-width:thin;
}
.revs__track::-webkit-scrollbar{ height:3px; }
.revs__track::-webkit-scrollbar-thumb{ background:var(--line); }
.rev{
  margin:0; scroll-snap-align:start;
  background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:clamp(22px,2.4vw,30px); display:flex; flex-direction:column; gap:20px;
}
.rev blockquote{ margin:0; font-size:15.5px; line-height:1.62; color:var(--tx-2); flex:1; }
.rev blockquote::before{ content:'«'; color:var(--acc); font-size:26px; line-height:0; vertical-align:-4px; margin-right:2px; }
.rev figcaption{
  display:flex; align-items:center; gap:12px;
  padding-top:18px; border-top:1px solid var(--line-2);
  min-height:64px;   /* одинаковая высота подписи во всех карточках */
}
.rev__av{
  width:46px; height:46px; border-radius:50%; flex-shrink:0;
  object-fit:cover; background:var(--bone-2);
  filter:grayscale(1); transition:filter .35s var(--ease);
}
.rev:hover .rev__av{ filter:none; }
@media (hover:none){ .rev__av{ filter:none; } }
.rev figcaption b{ display:block; font-size:15px; letter-spacing:-.01em; }
.rev figcaption i{ display:block; font-style:normal; font-size:13px; color:var(--tx-3); line-height:1.35; }

/* ── цены ──────────────────────────────────────────────────── */
.sec--price{ background:var(--bone-2); border-block:1px solid var(--line); }
.plans{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.plan{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:clamp(24px,2.6vw,34px); display:flex; flex-direction:column; gap:14px;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease);
}
.plan:hover{ transform:translateY(-4px); box-shadow:6px 6px 0 rgba(18,17,16,.06); }
.plan__tag{ color:var(--tx-3); }
.plan__p{ font-size:clamp(28px,3vw,38px); font-weight:800; letter-spacing:-.045em; line-height:1; }
.plan__p span{ font-size:15px; font-weight:500; letter-spacing:-.01em; color:var(--tx-3); }
.plan__d{ font-size:14.5px; color:var(--tx-2); line-height:1.55; }
.plan__l{ list-style:none; margin:0; padding:14px 0 0; border-top:1px solid var(--line-2); display:grid; gap:9px; flex:1; }
.plan__l li{ position:relative; padding-left:20px; font-size:14.5px; color:var(--tx-2); line-height:1.45; }
.plan__l li::before{ content:''; position:absolute; left:0; top:8px; width:8px; height:1.5px; background:var(--acc); }
.plan--hot .plan__l li::before{ background:var(--lime); }

.plan--hot{ background:var(--ink); color:var(--tx-inv); border-color:var(--ink); }
.plan--hot .plan__tag{ color:var(--lime); }
.plan--hot .plan__d,.plan--hot .plan__l li{ color:var(--tx-inv-2); }
.plan--hot .plan__l{ border-color:var(--line-inv); }
.plan--hot .btn{ --bg:var(--bone); --fg:var(--ink); --bd:var(--bone); }
.plan--hot .btn:hover{ color:#fff; border-color:var(--acc); }
.plan--hot .plan__p span{ color:var(--tx-inv-2); }

.plans__note{ margin-top:24px; font-size:13.5px; color:var(--tx-3); max-width:76ch; line-height:1.55; }
@media (max-width:980px){ .plans{ grid-template-columns:1fr; } }

/* ── FAQ ───────────────────────────────────────────────────── */
.faq__in{ display:grid; grid-template-columns:.72fr 1.28fr; gap:clamp(28px,5vw,72px); align-items:start; }
@media (max-width:900px){ .faq__in{ grid-template-columns:1fr; } }
.sec__hd--side{ position:sticky; top:100px; margin-bottom:0; display:grid; gap:0; align-content:start; }
.sec__hd--side .btn{ margin-top:24px; justify-self:start; }
@media (max-width:900px){ .sec__hd--side{ position:static; } }

.faq{ border-top:1px solid var(--line); }
.q{ border-bottom:1px solid var(--line); }
.q summary{
  list-style:none; cursor:pointer; padding:22px 0; display:flex; align-items:flex-start;
  justify-content:space-between; gap:22px;
  font-size:clamp(16px,1.4vw,19px); font-weight:600; letter-spacing:-.022em; line-height:1.35;
  transition:color .2s;
}
.q summary::-webkit-details-marker{ display:none; }
.q summary:hover{ color:var(--acc); }
.q summary i{
  position:relative; width:20px; height:20px; flex-shrink:0; margin-top:3px;
}
.q summary i::before,.q summary i::after{
  content:''; position:absolute; background:var(--ink); transition:transform .35s var(--ease), background .2s;
}
.q summary i::before{ left:0; right:0; top:9.5px; height:1.5px; }
.q summary i::after{ top:0; bottom:0; left:9.5px; width:1.5px; }
.q[open] summary i::after{ transform:rotate(90deg); }
.q[open] summary i::before,.q[open] summary i::after{ background:var(--acc); }
.q[open] summary{ color:var(--acc); }
.q__a{ padding:0 60px 24px 0; }
.q__a p{ color:var(--tx-2); font-size:15.5px; line-height:1.65; }
.q[open] .q__a{ animation:fade .35s var(--ease); }
@keyframes fade{ from{ opacity:0; transform:translateY(-6px);} to{opacity:1;transform:none;} }
@media (max-width:520px){ .q__a{ padding-right:0; } }

/* ── форма ─────────────────────────────────────────────────── */
.sec--form{ background:var(--ink); color:var(--tx-inv); }
.form__in{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(32px,5vw,80px); align-items:start; }
@media (max-width:900px){ .form__in{ grid-template-columns:1fr; } }
.sec--form .lead{ color:var(--tx-inv-2); margin-top:22px; }
.sec--form h2{ margin-top:0; }
.sec--form em{
  color:var(--lime);
  background-image:linear-gradient(to top,
      transparent .16em, rgba(200,245,60,.45) .16em,
      rgba(200,245,60,.45) .23em, transparent .23em);
}
.sec--form .num{ color:var(--tx-inv-2); }

.form__pts{ list-style:none; margin:34px 0 0; padding:0; display:grid; gap:0; border-top:1px solid var(--line-inv); }
.form__pts li{ display:flex; align-items:baseline; gap:18px; padding:14px 0; border-bottom:1px solid var(--line-inv); }
.form__pts b{ font-size:22px; font-weight:800; letter-spacing:-.04em; color:var(--lime); min-width:88px; }
.form__pts span{ font-size:14.5px; color:var(--tx-inv-2); }
.form__alt{ margin-top:24px; font-size:14.5px; color:var(--tx-inv-2); }
.form__alt a{ color:var(--tx-inv); border-bottom:1px solid var(--acc); }
.form__alt a:hover{ color:var(--acc); }

.form{
  background:var(--paper); color:var(--tx); border-radius:var(--r-lg);
  padding:clamp(24px,2.8vw,36px);
  display:grid; grid-template-columns:1fr 1fr; gap:16px;
  box-shadow:10px 10px 0 rgba(43,89,255,.20);
}
@media (max-width:560px){ .form{ grid-template-columns:1fr; box-shadow:6px 6px 0 rgba(43,89,255,.20); } }
.f{ display:grid; gap:7px; }
.f--full{ grid-column:1/-1; }
.f label,.chk__t{ font-size:13px; font-weight:500; color:var(--tx-2); }
.f label span{ color:var(--acc); }
.f input,.f textarea,.f select{
  width:100%; font:inherit; font-size:15px; color:var(--tx);
  background:var(--bone); border:1px solid transparent; border-bottom:1px solid var(--line);
  border-radius:var(--r) var(--r) 0 0; padding:12px 14px;
  transition:border-color .22s, background .22s;
}
.f textarea{ resize:vertical; min-height:78px; }
.f input::placeholder,.f textarea::placeholder{ color:var(--tx-3); }
.f input:focus,.f textarea:focus,.f select:focus{ outline:none; background:#fff; border-bottom-color:var(--acc); border-bottom-width:1.5px; }
.f input[aria-invalid="true"],.f textarea[aria-invalid="true"]{ border-bottom-color:var(--warn); background:rgba(255,90,60,.08); }
.sel{ position:relative; }
.sel select{ appearance:none; -webkit-appearance:none; padding-right:38px; cursor:pointer; }
.sel svg{ position:absolute; right:12px; top:50%; transform:translateY(-50%); width:17px; height:17px; color:var(--tx-3); pointer-events:none; }
.err{ font-size:12px; color:var(--warn); min-height:0; }
.err:empty{ display:none; }
.err--agree{ grid-column:1/-1; margin-top:-8px; }

.chk{ display:flex; align-items:flex-start; gap:11px; cursor:pointer; margin-top:4px; }
.err--agree + .chk{ margin-top:10px; }
.chk input{ position:absolute; opacity:0; width:0; height:0; }
.chk__b{ width:18px; height:18px; border:1px solid var(--line); border-radius:2px; flex-shrink:0; margin-top:2px; position:relative; transition:background .2s, border-color .2s; }
.chk__b::after{ content:''; position:absolute; left:5px; top:1.5px; width:5px; height:9px; border:solid #fff; border-width:0 1.8px 1.8px 0; transform:rotate(45deg) scale(0); transition:transform .2s var(--ease); }
.chk input:checked + .chk__b{ background:var(--acc); border-color:var(--acc); }
.chk input:checked + .chk__b::after{ transform:rotate(45deg) scale(1); }
.chk input:focus-visible + .chk__b{ outline:2px solid var(--acc); outline-offset:2px; }
.chk__t{ font-size:12.5px; line-height:1.45; color:var(--tx-3); }
.form .btn{ grid-column:1/-1; margin-top:4px; }
.form__ok{ grid-column:1/-1; font-size:14.5px; color:var(--good); padding:14px; background:rgba(14,107,79,.08); border-radius:var(--r); line-height:1.5; }

/* ── футер ─────────────────────────────────────────────────── */
.ftr{ background:var(--bone); border-top:1px solid var(--line); padding:clamp(48px,6vw,76px) 0 32px; }
.ftr__top{ display:grid; grid-template-columns:1.6fr 1fr 1fr 1.3fr; gap:clamp(24px,3vw,48px); padding-bottom:44px; border-bottom:1px solid var(--line-2); }
@media (max-width:900px){ .ftr__top{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .ftr__top{ grid-template-columns:1fr; } }
.ftr__brand p{ margin-top:12px; font-size:14.5px; color:var(--tx-2); max-width:34ch; line-height:1.55; }
.ftr__nav,.ftr__req{ display:grid; gap:9px; align-content:start; }
.ftr__nav .mono,.ftr__req .mono{ color:var(--tx-3); margin-bottom:5px; }
.ftr__nav a,.ftr__nav span,.ftr__req p{ font-size:14.5px; color:var(--tx-2); }
.ftr__nav a:hover{ color:var(--acc); }
.ftr__req a{ border-bottom:1px solid var(--line); }
.ftr__req a:hover{ color:var(--acc); border-color:var(--acc); }
.ftr__bot{ padding-top:24px; display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.ftr__bot p{ font-size:12.5px; color:var(--tx-3); }
.ftr__legal{ display:grid; gap:5px; max-width:62ch; }

/* ── мобильная панель действий ─────────────────────────────── */
.mbar{
  position:fixed; left:0; right:0; bottom:0; z-index:80;
  display:none; grid-template-columns:1fr 1fr; gap:10px;
  padding:10px 12px; padding-bottom:calc(10px + env(safe-area-inset-bottom));
  background:color-mix(in srgb, var(--paper) 90%, transparent);
  backdrop-filter:blur(16px) saturate(1.5);
  -webkit-backdrop-filter:blur(16px) saturate(1.5);
  border-top:1px solid var(--line-2);
  box-shadow:0 -10px 30px rgba(10,15,28,.10);
  transform:translateY(120%); transition:transform .4s var(--ease);
}
.mbar.on{ transform:translateY(0); }

.mbar__b{
  min-width:0; display:flex; align-items:center; justify-content:center; gap:9px;
  height:52px; border-radius:var(--r-lg);
  font-size:15px; font-weight:600; letter-spacing:-.015em;
  transition:transform .18s var(--ease), background .2s, border-color .2s;
}
.mbar__b svg{ width:18px; height:18px; }
.mbar__b:active{ transform:scale(.97); }
.mbar__b:focus-visible{ outline:2px solid var(--ink); outline-offset:2px; }

.mbar__b--call{
  background:var(--lime); color:var(--ink); border:1px solid var(--lime);
  font-weight:700;
}
.mbar__b--call svg{ color:var(--ink); }
.mbar__b--call:active{ background:#b6e02f; border-color:#b6e02f; }

.mbar__b--lead{
  background:var(--ink); color:var(--tx-inv); border:1px solid var(--ink);
  box-shadow:0 4px 16px rgba(10,15,28,.22);
}
.mbar__b--lead:active{ background:var(--ink-soft); }

@media (max-width:760px){
  .mbar{ display:grid; }
  /* панель перекрывает низ страницы — освобождаем место */
  .ftr{ padding-bottom:calc(96px + env(safe-area-inset-bottom)); }
}

.mmenu__tel{
  margin-top:14px; text-align:center; font-family:var(--mono);
  font-size:15px; letter-spacing:-.01em; color:var(--acc) !important;
  border-bottom:none !important;
}

/* ── уведомление о cookie ──────────────────────────────────── */
.cookie{
  position:fixed; z-index:85;
  right:20px; bottom:20px; width:min(430px, calc(100vw - 40px));
  display:flex; align-items:flex-start; gap:14px; flex-wrap:wrap;
  background:var(--ink); color:var(--tx-inv);
  border:1px solid rgba(235,240,249,.14); border-radius:var(--r-lg);
  padding:20px; box-shadow:0 18px 44px rgba(10,15,28,.34);
  animation:cookieIn .5s var(--ease) both;
}
@keyframes cookieIn{ from{ opacity:0; transform:translateY(18px);} to{ opacity:1; transform:none; } }
.cookie.out{ animation:cookieOut .35s var(--ease) forwards; }
@keyframes cookieOut{ to{ opacity:0; transform:translateY(18px); } }
.cookie__ic{ width:26px; height:26px; color:var(--lime); flex-shrink:0; }
.cookie__ic svg{ width:100%; height:100%; }
.cookie__b{ flex:1; min-width:200px; }
.cookie__t{ font-size:15px; font-weight:600; letter-spacing:-.02em; margin-bottom:6px; }
.cookie__d{ font-size:12.5px; line-height:1.5; color:var(--tx-inv-2); }
.cookie .btn{ --bg:var(--bone); --fg:var(--ink); --bd:var(--bone); margin-left:auto; }
.cookie .btn:hover{ color:#fff; border-color:var(--acc); }
@media (max-width:760px){
  .cookie{
    left:12px; right:12px; width:auto;
    bottom:calc(88px + env(safe-area-inset-bottom));  /* над мобильной панелью */
  }
  .cookie .btn{ width:100%; }
}

/* ── появление при скролле ─────────────────────────────────── */
.reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
  .marquee__t{ animation:none; }
  .spark__line{ stroke-dashoffset:0; }
  *,*::before,*::after{ animation-duration:.01ms !important; transition-duration:.01ms !important; }
}

@media print{
  .hdr,.mbar,.cookie,.mmenu,.strip,.form{ display:none !important; }
  body{ background:#fff; }
}

/* ── мобильные уточнения ───────────────────────────────────── */
@media (max-width:560px){
  .hero__cta{ display:grid; grid-template-columns:1fr; }
  .hero__cta .btn{ width:100%; }
  .band .btn{ width:100%; }
  .sec__hd--side .btn{ width:100%; justify-self:stretch; }
}


/* ── модальное окно с заявкой ──────────────────────────────── */
body.lock{ overflow:hidden; }

.modal{
  position:fixed; inset:0; z-index:120;
  display:grid; place-items:center; padding:20px;
}
.modal__bd{
  position:absolute; inset:0; cursor:pointer;
  background:rgba(10,15,28,.74);
  backdrop-filter:blur(5px); -webkit-backdrop-filter:blur(5px);
  animation:mBd .3s var(--ease) both;
}
@keyframes mBd{ from{ opacity:0; } }

.modal__w{
  position:relative; width:min(520px,100%);
  max-height:calc(100dvh - 40px); overflow-y:auto; overscroll-behavior:contain;
  background:var(--paper); border-radius:var(--r-lg);
  padding:clamp(26px,3vw,38px);
  box-shadow:0 30px 90px rgba(10,15,28,.42);
  animation:mIn .38s var(--ease) both;
}
@keyframes mIn{ from{ opacity:0; transform:translateY(22px) scale(.985); } }
.modal.out .modal__bd{ animation:mBd .25s var(--ease) reverse both; }
.modal.out .modal__w{ animation:mIn .25s var(--ease) reverse both; }

.modal__x{
  position:absolute; top:14px; right:14px; z-index:2;
  width:36px; height:36px; display:grid; place-items:center;
  background:transparent; border:1px solid var(--line); border-radius:var(--r);
  cursor:pointer; color:var(--tx-2);
  transition:background .22s, color .22s, border-color .22s;
}
.modal__x svg{ width:18px; height:18px; }
.modal__x:hover{ background:var(--ink); border-color:var(--ink); color:var(--tx-inv); }

.modal .num{ margin-bottom:14px; }
.modal__h{ font-size:clamp(26px,3.4vw,34px); margin-bottom:12px; }
.modal__d{ font-size:14.5px; line-height:1.55; color:var(--tx-2); margin-bottom:24px; }

/* форма внутри модалки — без собственного фона и тени */
.form--modal{
  background:none; box-shadow:none; padding:0; border-radius:0;
  grid-template-columns:1fr; gap:14px;
}
.form--modal input{ background:var(--bone); }

@media (max-width:560px){
  .modal{ padding:0; place-items:end stretch; }
  .modal__w{
    width:100%; max-height:92dvh; border-radius:var(--r-lg) var(--r-lg) 0 0;
    padding-bottom:calc(28px + env(safe-area-inset-bottom));
    animation:mSheet .4s var(--ease) both;
  }
  @keyframes mSheet{ from{ transform:translateY(100%); } }
  .modal.out .modal__w{ animation:mSheet .28s var(--ease) reverse both; }
}

/* второй заголовок в колонке реквизитов */
.ftr__h2{ margin-top:16px !important; }

/* контакты под реквизитами */
.ftr__contacts{ display:grid; gap:7px; justify-items:start; }
.ftr__contacts a{
  font-size:15px; color:var(--tx); letter-spacing:-.01em;
  border-bottom:1px solid var(--line); padding-bottom:1px;
  transition:color .2s, border-color .2s;
}
.ftr__contacts a:first-child{ font-family:var(--mono); font-size:14px; }
.ftr__contacts a:hover{ color:var(--acc); border-color:var(--acc); }

/* ссылки на документы под описанием в футере */
.ftr__docs{ display:grid; gap:8px; margin-top:22px; justify-items:start; }
.ftr__docs a{
  font-size:13.5px; color:var(--tx-2);
  border-bottom:1px solid var(--line); padding-bottom:1px;
  transition:color .2s, border-color .2s;
}
.ftr__docs a:hover{ color:var(--acc); border-color:var(--acc); }

/* ссылки внутри чекбокса согласия и уведомления о cookie */
.chk__t a{ color:inherit; border-bottom:1px solid var(--line); }
.chk__t a:hover{ color:var(--acc); border-color:var(--acc); }
.cookie__d a{ color:var(--tx-inv); border-bottom:1px solid var(--lime); }
.cookie__d a:hover{ color:var(--lime); }

/* ── правовые страницы (privacy / cookies) ─────────────────────
   Структура взята из макета: шапка-плашка с бейджем, единая
   карточка с разделами через хайрлайны, кнопка возврата внизу.
   Оформление — токенами сайта, чтобы страницы не выглядели чужими.
   ───────────────────────────────────────────────────────────── */
.lgl-hero{
  background:var(--bone-2); border-bottom:1px solid var(--line);
  padding:clamp(36px,5vw,60px) 0 clamp(28px,4vw,44px);
}
.lgl-in{ max-width:820px; margin-inline:auto; }

.badge{
  display:inline-block; padding:5px 13px;
  border:1px solid var(--line); border-radius:100px;
  background:var(--paper); color:var(--tx-3);
}
.lgl-hero h1{
  margin:18px 0 12px;
  font-size:clamp(26px,3.6vw,40px); line-height:1.14;
}
.lgl-lead{ color:var(--tx-2); font-size:clamp(15px,1.3vw,17px); line-height:1.6; max-width:62ch; }
.lgl-date{ color:var(--tx-3); margin-top:18px; text-transform:none; letter-spacing:.06em; }

.lgl{ padding:clamp(28px,4vw,48px) 0 clamp(48px,6vw,80px); }
.lgl-card{
  background:var(--paper); border:1px solid var(--line); border-radius:var(--r-lg);
  padding:clamp(24px,3.4vw,44px);
}
.lgl-card > section + section{
  margin-top:clamp(26px,3vw,40px); padding-top:clamp(26px,3vw,40px);
  border-top:1px solid var(--line-2);
}
.lgl-card h2{
  font-size:clamp(17px,1.6vw,21px); margin-bottom:14px; letter-spacing:-.025em;
}
.lgl-card h3{
  font-size:15.5px; margin:20px 0 10px; letter-spacing:-.015em;
}
.lgl-card p, .lgl-card li{ font-size:15px; line-height:1.68; color:var(--tx-2); }
.lgl-card p + p{ margin-top:11px; }
.lgl-card ul{ list-style:none; margin:11px 0 0; padding:0; display:grid; gap:8px; }
.lgl-card li{ position:relative; padding-left:20px; }
.lgl-card li::before{
  content:''; position:absolute; left:0; top:11px;
  width:8px; height:1.5px; background:var(--acc);
}
.lgl-card ul + p{ margin-top:14px; }
.lgl-card a{ color:var(--tx); border-bottom:1px solid var(--line); }
.lgl-card a:hover{ color:var(--acc); border-color:var(--acc); }
.lgl-card strong{ color:var(--tx); font-weight:600; }

/* таблица «цель — данные — основание» */
.lgl-grid{
  display:grid; grid-template-columns:repeat(2,1fr); gap:1px;
  background:var(--line); border:1px solid var(--line);
  border-radius:var(--r); margin-top:16px; overflow:hidden;
}
.lgl-grid > div{ background:var(--paper); padding:18px 20px; }
.lgl-grid .mono{ color:var(--tx-3); display:block; margin-bottom:9px; }
@media (max-width:640px){ .lgl-grid{ grid-template-columns:1fr; } }

/* блок реквизитов оператора */
.lgl-req{
  margin-top:clamp(26px,3vw,40px); padding:24px;
  border:1px solid var(--line); border-radius:var(--r-lg); background:var(--bone);
}
.lgl-req .mono{ color:var(--tx-3); margin-bottom:10px; display:block; }
.lgl-req p{ font-size:14.5px; }
.lgl-req p + p{ margin-top:5px; }

.lgl-foot{ display:flex; justify-content:center; margin-top:clamp(28px,4vw,44px); }

/* ── мобильная панель действий ─────────────────────────────── */
.mbar{
  position:fixed; left:0; right:0; bottom:0; z-index:80;
  display:none; grid-template-columns:1fr 1fr; gap:10px;
  padding:10px 12px; padding-bottom:calc(10px + env(safe-area-inset-bottom));
  background:color-mix(in srgb, var(--paper) 90%, transparent);
  backdrop-filter:blur(16px) saturate(1.5);
  -webkit-backdrop-filter:blur(16px) saturate(1.5);
  border-top:1px solid var(--line-2);
  box-shadow:0 -10px 30px rgba(10,15,28,.10);
  transform:translateY(120%); transition:transform .4s var(--ease);
}
.mbar.on{ transform:translateY(0); }

.mbar__b{
  min-width:0; display:flex; align-items:center; justify-content:center; gap:9px;
  height:52px; border-radius:var(--r-lg);
  font-size:15px; font-weight:600; letter-spacing:-.015em;
  transition:transform .18s var(--ease), background .2s, border-color .2s;
}
.mbar__b svg{ width:18px; height:18px; }
.mbar__b:active{ transform:scale(.97); }
.mbar__b:focus-visible{ outline:2px solid var(--ink); outline-offset:2px; }

.mbar__b--call{
  background:var(--lime); color:var(--ink); border:1px solid var(--lime);
  font-weight:700;
}
.mbar__b--call svg{ color:var(--ink); }
.mbar__b--call:active{ background:#b6e02f; border-color:#b6e02f; }

.mbar__b--lead{
  background:var(--ink); color:var(--tx-inv); border:1px solid var(--ink);
  box-shadow:0 4px 16px rgba(10,15,28,.22);
}
.mbar__b--lead:active{ background:var(--ink-soft); }

@media (max-width:760px){
  .mbar{ display:grid; }
  /* панель перекрывает низ страницы — освобождаем место */
  .ftr{ padding-bottom:calc(96px + env(safe-area-inset-bottom)); }
}

.mmenu__tel{
  margin-top:14px; text-align:center; font-family:var(--mono);
  font-size:15px; letter-spacing:-.01em; color:var(--acc) !important;
  border-bottom:none !important;
}

/* ── уведомление о cookie ──────────────────────────────────── */
.cookie{
  position:fixed; z-index:85;
  right:20px; bottom:20px; width:min(430px, calc(100vw - 40px));
  display:flex; align-items:flex-start; gap:14px; flex-wrap:wrap;
  background:var(--ink); color:var(--tx-inv);
  border:1px solid rgba(235,240,249,.14); border-radius:var(--r-lg);
  padding:20px; box-shadow:0 18px 44px rgba(10,15,28,.34);
  animation:cookieIn .5s var(--ease) both;
}
@keyframes cookieIn{ from{ opacity:0; transform:translateY(18px);} to{ opacity:1; transform:none; } }
.cookie.out{ animation:cookieOut .35s var(--ease) forwards; }
@keyframes cookieOut{ to{ opacity:0; transform:translateY(18px); } }
.cookie__ic{ width:26px; height:26px; color:var(--lime); flex-shrink:0; }
.cookie__ic svg{ width:100%; height:100%; }
.cookie__b{ flex:1; min-width:200px; }
.cookie__t{ font-size:15px; font-weight:600; letter-spacing:-.02em; margin-bottom:6px; }
.cookie__d{ font-size:12.5px; line-height:1.5; color:var(--tx-inv-2); }
.cookie .btn{ --bg:var(--bone); --fg:var(--ink); --bd:var(--bone); margin-left:auto; }
.cookie .btn:hover{ color:#fff; border-color:var(--acc); }
@media (max-width:760px){
  .cookie{
    left:12px; right:12px; width:auto;
    bottom:calc(88px + env(safe-area-inset-bottom));  /* над мобильной панелью */
  }
  .cookie .btn{ width:100%; }
}

/* ── появление при скролле ─────────────────────────────────── */
.reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
  .marquee__t{ animation:none; }
  .spark__line{ stroke-dashoffset:0; }
  *,*::before,*::after{ animation-duration:.01ms !important; transition-duration:.01ms !important; }
}

@media print{
  .hdr,.mbar,.cookie,.mmenu,.strip,.form{ display:none !important; }
  body{ background:#fff; }
}

/* ── мобильные уточнения ───────────────────────────────────── */
@media (max-width:560px){
  .hero__cta{ display:grid; grid-template-columns:1fr; }
  .hero__cta .btn{ width:100%; }
  .band .btn{ width:100%; }
  .sec__hd--side .btn{ width:100%; justify-self:stretch; }
}


/* ── модальное окно с заявкой ──────────────────────────────── */
body.lock{ overflow:hidden; }

.modal{
  position:fixed; inset:0; z-index:120;
  display:grid; place-items:center; padding:20px;
}
.modal__bd{
  position:absolute; inset:0; cursor:pointer;
  background:rgba(10,15,28,.74);
  backdrop-filter:blur(5px); -webkit-backdrop-filter:blur(5px);
  animation:mBd .3s var(--ease) both;
}
@keyframes mBd{ from{ opacity:0; } }

.modal__w{
  position:relative; width:min(520px,100%);
  max-height:calc(100dvh - 40px); overflow-y:auto; overscroll-behavior:contain;
  background:var(--paper); border-radius:var(--r-lg);
  padding:clamp(26px,3vw,38px);
  box-shadow:0 30px 90px rgba(10,15,28,.42);
  animation:mIn .38s var(--ease) both;
}
@keyframes mIn{ from{ opacity:0; transform:translateY(22px) scale(.985); } }
.modal.out .modal__bd{ animation:mBd .25s var(--ease) reverse both; }
.modal.out .modal__w{ animation:mIn .25s var(--ease) reverse both; }

.modal__x{
  position:absolute; top:14px; right:14px; z-index:2;
  width:36px; height:36px; display:grid; place-items:center;
  background:transparent; border:1px solid var(--line); border-radius:var(--r);
  cursor:pointer; color:var(--tx-2);
  transition:background .22s, color .22s, border-color .22s;
}
.modal__x svg{ width:18px; height:18px; }
.modal__x:hover{ background:var(--ink); border-color:var(--ink); color:var(--tx-inv); }

.modal .num{ margin-bottom:14px; }
.modal__h{ font-size:clamp(26px,3.4vw,34px); margin-bottom:12px; }
.modal__d{ font-size:14.5px; line-height:1.55; color:var(--tx-2); margin-bottom:24px; }

/* форма внутри модалки — без собственного фона и тени */
.form--modal{
  background:none; box-shadow:none; padding:0; border-radius:0;
  grid-template-columns:1fr; gap:14px;
}
.form--modal input{ background:var(--bone); }

@media (max-width:560px){
  .modal{ padding:0; place-items:end stretch; }
  .modal__w{
    width:100%; max-height:92dvh; border-radius:var(--r-lg) var(--r-lg) 0 0;
    padding-bottom:calc(28px + env(safe-area-inset-bottom));
    animation:mSheet .4s var(--ease) both;
  }
  @keyframes mSheet{ from{ transform:translateY(100%); } }
  .modal.out .modal__w{ animation:mSheet .28s var(--ease) reverse both; }
}

/* второй заголовок в колонке реквизитов */
.ftr__h2{ margin-top:16px !important; }

/* контакты под реквизитами */
.ftr__contacts{ display:grid; gap:7px; justify-items:start; }
.ftr__contacts a{
  font-size:15px; color:var(--tx); letter-spacing:-.01em;
  border-bottom:1px solid var(--line); padding-bottom:1px;
  transition:color .2s, border-color .2s;
}
.ftr__contacts a:first-child{ font-family:var(--mono); font-size:14px; }
.ftr__contacts a:hover{ color:var(--acc); border-color:var(--acc); }

/* ссылки на документы под описанием в футере */
.ftr__docs{ display:grid; gap:8px; margin-top:22px; justify-items:start; }
.ftr__docs a{
  font-size:13.5px; color:var(--tx-2);
  border-bottom:1px solid var(--line); padding-bottom:1px;
  transition:color .2s, border-color .2s;
}
.ftr__docs a:hover{ color:var(--acc); border-color:var(--acc); }

/* ссылки внутри чекбокса согласия и уведомления о cookie */
.chk__t a{ color:inherit; border-bottom:1px solid var(--line); }
.chk__t a:hover{ color:var(--acc); border-color:var(--acc); }
.cookie__d a{ color:var(--tx-inv); border-bottom:1px solid var(--lime); }
.cookie__d a:hover{ color:var(--lime); }

/* футер на страницах документов */
.ftr__legal a{ color:var(--tx-2); border-bottom:1px solid var(--line); }
.ftr__legal a:hover{ color:var(--acc); border-color:var(--acc); }
