/* Цифромедрес — основной стиль (ниже первого экрана).
 * РЕДИЗАЙН v6 (editorial-minimal → ближе к elkadigital.ru / Tilda):
 *   - крупная плотная типографика (line-height ~1.05, tracking −0.035em на крупном)
 *   - меньше «боксов»: сетки без внешних рамок, только hairline + горизонтальные правила
 *   - больше воздуха и крупнее карточки (паддинги)
 *   - появление при скролле (fade + сдвиг вверх + стаггер) — JS добавляет .rv/.rv-in
 *   - фирменный азур + бирюза сохранены; один акцент-блок на секцию максимум
 * Токены — в critical.css. Имена классов и состояния не меняются (завязан JS). */

/* ── Холст и ритм секций ──────────────────────────────────────────────── */
.sec[id],[id]{scroll-margin-top:84px}
.sec{background:var(--color-paper)}
main>.sec{padding-block:clamp(3.75rem,6.5vw,9.5rem)}
main>.sec+.sec{border-top:1px solid var(--color-rule)}
.sec--hero{border-top:0}

/* ── Шапка секции (kicker → крупный заголовок → лид) ──────────────────── */
.sec__kicker{display:none;align-items:center;gap:.65rem;font-family:var(--font-body);
  font-size:var(--fs-label);font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  color:var(--color-muted);margin-bottom:1.5rem}
.sec__kicker::before{content:"";width:1.8rem;height:2px;background:var(--color-teal);border-radius:2px}
.sec__title{font-size:var(--fs-h2);line-height:1.05;letter-spacing:-.04em;font-weight:700;
  color:var(--color-ink-strong);margin-bottom:1.15rem;max-width:18ch;text-wrap:balance}
.sec__title-accent{color:var(--color-brand)}
.sec__lead{font-size:var(--fs-lead);line-height:1.4;color:var(--color-muted);
  max-width:50ch;margin-bottom:clamp(2rem,3.5vw,4.5rem)}
.sec__lead a{color:var(--color-brand-700);text-decoration:underline;text-underline-offset:3px;font-weight:400}
.sec__lead a:hover{color:var(--color-brand)}

/* двухколоночная шапка секции (как elkadigital): заголовок-гигант слева, лид справа-снизу */
.sec__head{display:grid;grid-template-columns:1.3fr .7fr;gap:clamp(1.5rem,4vw,5rem);align-items:end;
  margin-bottom:clamp(2.75rem,5vw,5rem)}
.sec__head-main{display:flex;flex-direction:column;min-width:0}
.sec__head .sec__title{margin-bottom:0;max-width:none}
.sec__head-aside{padding-bottom:.6rem}
.sec__head .sec__lead{margin-bottom:0;max-width:42ch}
@media (max-width:900px){.sec__head{grid-template-columns:1fr;gap:1.25rem;align-items:start}.sec__head-aside{padding-bottom:0}}

/* ── Hairline-сетка: переиспользуемый редакторский приём (без внешней рамки) ── */
.hl-grid{display:grid;gap:1px;background:var(--color-rule);border-block:1px solid var(--color-rule)}
.hl-cell{background:var(--color-paper);padding:clamp(2rem,3vw,3rem)}

/* ЭКГ-разделитель на стыке секций (фирменная деталь) */
.ecg-band{position:absolute;top:0;left:0;width:100%;height:auto;z-index:3;pointer-events:none;transform:translateY(-50%)}
.ecg-band__base{fill:none;stroke:var(--color-rule);stroke-width:1;opacity:.5}
.ecg-band__line{fill:none;stroke:var(--color-teal);stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round;
  filter:drop-shadow(0 0 5px oklch(68% 0.115 196 / .6));stroke-dasharray:2000;stroke-dashoffset:0}
body.js .ecg-band__line{stroke-dashoffset:2000}
body.js .ecg-band.is-drawn .ecg-band__line{animation:ecgDraw 1.7s var(--ease-out) forwards}
@keyframes ecgDraw{to{stroke-dashoffset:0}}

/* ── Появление при скролле — ТОЛЬКО заголовки секций (в духе Tilda appear) ──
   плавный fade + сдвиг вверх, easing «out-expo»; навешивается из app.js */
@media (prefers-reduced-motion:no-preference){
  body.js .rv{opacity:0;transform:translateY(24px);filter:blur(8px);
    transition:opacity 1s var(--ease-out),transform 1s var(--ease-out),filter 1s var(--ease-out);
    transition-delay:calc(var(--rv-i,0) * 90ms);will-change:opacity,transform,filter}
  body.js .rv.rv-in{opacity:1;transform:none;filter:none}
}

/* ── Шаги сотрудничества (hairline-сетка + крупный индекс) ─────────────── */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--color-rule);
  margin-bottom:2.5rem;counter-reset:step}
/* зигзаг: линия сверху у нечётных (01,03), снизу у чётных (02,04) */
.steps>.step:nth-child(odd){border-top:1px solid var(--color-rule)}
.steps>.step:nth-child(even){border-bottom:1px solid var(--color-rule)}
.step{position:relative;overflow:hidden;background:var(--color-paper);display:flex;flex-direction:column;
  container-type:inline-size;
  padding:clamp(1.75rem,2.4vw,2.6rem) clamp(1.5rem,2vw,2.1rem) clamp(2rem,2.6vw,2.6rem);
  counter-increment:step;transition:background var(--dur-2) var(--ease-out)}
/* крупный индекс-водяной знак — как раньше, но кегль и просвет ужаты → меньше пустоты, карточки короче */
.step .step__num{position:absolute;top:.14em;left:clamp(.85rem,1.6vw,1.6rem);z-index:0;margin:0;pointer-events:none;
  font-family:var(--font-body);font-weight:600;font-size:clamp(3rem,7vw,7.5rem);line-height:1;letter-spacing:-.05em;
  font-variant-numeric:tabular-nums;color:color-mix(in oklab,var(--color-brand) 13%,transparent);
  transition:color var(--dur-2) var(--ease-out)}
.step__num::before,.flow__num::before{content:"0"}
.step__body{position:relative;z-index:1;display:flex;flex-direction:column;flex:1;
  padding-top:clamp(3.25rem,7.5vw,8rem)}
/* кегль заголовка привязан к ширине колонки (cqi) → длинный «Получите расчет стоимости» аккуратно */
.step__title{font-size:var(--fs-h3);font-weight:700;margin:0 0 .7rem;letter-spacing:-.025em;line-height:1.1;text-wrap:balance;transition:color var(--dur-2) var(--ease-out)}
.step__text{color:var(--color-muted);font-size:var(--fs-body);line-height:var(--lh-body);max-width:30ch}
.step__links{display:flex;flex-direction:column;align-items:flex-start;gap:.55rem;margin-top:auto;padding-top:1.6rem}
/* контактные кнопки в шаге: держим текст в ОДНУ строку, ужимаем боковые поля;
   размер шрифта подгоняется под ширину кнопки скриптом (fitStepContacts в app.js),
   чтобы длинный e-mail/телефон всегда влезал без переноса и обрезки. */
/* align-self:flex-start + max-width:100% → на широких экранах кнопка обнимает содержимое
   (не растягивается на всю колонку), а на узких упирается в ширину колонки, где скрипт ужимает шрифт.
   Боковые поля — как у обычных кнопок; ужимаются только в тесной 4-колоночной зоне (см. @media ниже). */
.step__contact{justify-content:flex-start;min-width:0;white-space:nowrap;text-align:left;
  gap:.5rem;padding-left:1.2rem;padding-right:1.2rem;align-self:flex-start;max-width:100%}
.step__contact>span{min-width:0;overflow:hidden;text-overflow:ellipsis}
/* 1101–1320px: 4 узкие колонки — сжимаем поля, чтобы автоподбор шрифта не уходил в слишком мелкий */
@media (min-width:1101px) and (max-width:1320px){
  .step__contact{gap:.35rem;padding-left:.55rem;padding-right:.55rem}
}
.step__contact .ic{color:var(--color-brand);flex:0 0 auto}
/* мобилка: контактные кнопки крупнее (комфортный touch-таргет) */
@media (max-width:768px){.step__contact{padding:.72rem 1.25rem;gap:.55rem;min-height:48px}}
.step__cta{align-self:flex-start}
/* Гигантский номер-водяной знак — «Как проходит осмотр» (.flow__card) и «Преимущества» (.adv) */
.flow__card .flow__num,.adv .adv__num{
  position:absolute;top:.22em;left:clamp(.85rem,1.6vw,1.7rem);z-index:0;margin:0;pointer-events:none;
  font-family:var(--font-body);font-weight:600;font-size:clamp(3rem,6.6vw,12rem);line-height:1;letter-spacing:-.05em;
  font-variant-numeric:tabular-nums;color:color-mix(in oklab,var(--color-brand) 13%,transparent);
  transition:color var(--dur-2) var(--ease-out)}
/* На ПК прячем дублирующий кикер «4 шага»; телефон и почта (вместо «Получить КП») видны на всех экранах */
@media (min-width:769px){
  .sec--steps .sec__kicker{display:none}
}
.steps__promise{display:flex;gap:.8rem;align-items:flex-start;color:var(--color-ink-strong);
  font-size:var(--text-lg);line-height:1.4;max-width:70ch}
.steps__promise .ic{color:var(--color-teal);flex:none;margin-top:.25rem}
/* цена в hero — «20 000 ₽» не разрывается (₽ не уходит на новую строку) */
.hero__fact .nb{white-space:nowrap}

/* ── Кто обязан (карточки 3+2 по центру: иконка-бейдж сверху + подпись) ── */
.aud__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.75rem,4vw,3.5rem);align-items:start}
.aud__head .sec__title{max-width:none;margin-bottom:0}
.aud__list{display:flex;flex-wrap:wrap;gap:.7rem;align-content:flex-start}
.aud__item{display:inline-flex;align-items:center;gap:.6rem;padding:.8rem 1.1rem;font-weight:400;
  border:1.5px solid var(--color-rule);border-radius:var(--r-pill);background:var(--color-card);
  transition:border-color var(--dur-2),background var(--dur-2)}
.aud__item .ic{color:var(--color-brand);width:1.3em;height:1.3em;transition:transform var(--dur-2) var(--ease-out)}
.aud__item>span{font-weight:400;font-size:var(--fs-body);line-height:1.25;color:var(--color-ink-strong)}
.aud__item:hover{border-color:var(--color-brand);background:var(--color-brand-50)}
.aud__item:hover .ic{transform:translateX(3px)}
.aud__item--1{background:var(--color-brand-50)}
.aud__item--2{border-color:var(--color-teal-100);background:var(--color-teal-100)}
.aud__item--2 .ic{color:var(--color-teal)}
/* принудительный перенос строки внутри flex-обёртки чипов */
.aud__break{flex-basis:100%;width:100%;height:0;margin:0;padding:0;border:0;background:none;list-style:none}

/* ── Боли (hairline-строки) + один акцент-блок «решение» ───────────────── */
/* регуляторная сноска (266н / 866) — мягкий фирменный callout с иконкой */
.sec--pains .sec__head{align-items:start;grid-template-columns:1.45fr 1fr;gap:clamp(1.5rem,4vw,3.5rem)}
.sec--pains .sec__head-aside{padding-bottom:0}
/* мобилка: шапка «боли» в одну колонку, иначе заголовок ломается по буквам в узкой колонке */
@media (max-width:900px){.sec--pains .sec__head{grid-template-columns:1fr;gap:2.4rem}}
/* Документы: правый подзаголовок выравниваем по верху заголовка (иначе 3-строчный лид «висит» над однострочным H2) */
.sec--documents .sec__head{align-items:start}
.sec--documents .sec__head-aside{padding-bottom:0;padding-top:.35rem}
.lawnote{display:flex;gap:1.15rem;align-items:flex-start;
  background:var(--color-brand-50);border:1px solid var(--color-brand-100);border-radius:var(--r-xl);
  padding:1.9rem 2.1rem}
.lawnote>.ic{color:var(--color-brand);flex:none;width:2.3em;height:2.3em;margin-top:.05rem}
.lawnote p{margin:0;color:var(--color-ink);font-size:var(--fs-h4);line-height:var(--lh-body)}
.lawnote a{color:var(--color-brand-700);font-weight:600;text-decoration:underline;text-underline-offset:3px}

/* акцент-фраза в заголовке: тот же кегль/начертание, фирменный градиент-заливка текста */
.tw-accent{background:linear-gradient(100deg,var(--color-brand),var(--color-teal));
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent}

.pains__grid{display:grid;grid-template-columns:1.45fr 1fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:stretch}
.pains__list{display:flex;flex-direction:column;justify-content:center;align-self:center}
.pain{display:grid;grid-template-columns:auto 1fr auto;gap:1rem 1.5rem;align-items:center;
  padding:1.85rem 0;border-bottom:1px solid var(--color-rule)}
.pain:last-child{border-bottom:0}
.pain__ic{display:grid;place-items:center;width:3.25rem;height:3.25rem;border-radius:var(--r-md);flex:none;
  color:var(--ac,var(--color-brand));background:var(--acbg,var(--color-brand-50));
  transition:transform var(--dur-2) var(--ease-out)}
.pain:hover .pain__ic{transform:scale(1.08) rotate(-4deg)}
.pain__ic .ic{width:1.5em;height:1.5em}
.pain--0{--ac:var(--color-error);--acbg:oklch(55% 0.19 25 / .1)}
.pain--1{--ac:var(--color-warn);--acbg:oklch(72% 0.14 75 / .15)}
.pain--2{--ac:oklch(56% 0.16 292);--acbg:oklch(56% 0.16 292 / .1)}
.pain__problem{font-size:var(--fs-h4);font-weight:600;margin:0;letter-spacing:-.02em;line-height:1.25}
.pain__cost{color:var(--color-brand-700);font-family:var(--font-body);font-weight:500;font-size:var(--fs-body);
  text-align:right;white-space:nowrap}

/* акцент-блок «решение»: плотная типографика, белая кнопка-CTA */
.economy{background:linear-gradient(158deg,var(--color-brand),var(--color-brand-700));
  color:var(--color-on-brand);border-radius:var(--r-xl);box-shadow:var(--sh-3);overflow:hidden;
  padding:clamp(2.75rem,3.6vw,3.85rem) clamp(2rem,2.6vw,2.75rem);display:flex;flex-direction:column;justify-content:center;gap:1.5rem}
.economy__head{display:flex;align-items:center;gap:.85rem}
.economy__ic{display:inline-grid;place-items:center;width:3rem;height:3rem;border-radius:var(--r-md);flex:none;
  background:oklch(100% 0 0 / .16);color:#fff}
.economy__ic .ic{width:1.45em;height:1.45em}
.economy__title{color:#fff;font-size:var(--fs-h3);margin:0;letter-spacing:-.02em;line-height:1.2}
.economy p{color:oklch(98% 0.01 245 / .9);margin:0;font-size:var(--fs-h4);line-height:1.45}
.economy__btn{background:#fff;color:var(--color-brand-700);font-weight:600;box-shadow:var(--sh-2);
  align-self:flex-start;margin-top:.5rem}
.economy__btn:hover{background:var(--color-brand-50);color:var(--color-brand-700);box-shadow:var(--sh-3);transform:translateY(-1px)}
.economy__btn .ic{transition:transform var(--dur-2) var(--ease-out)}
.economy__btn:hover .ic{transform:translateX(4px)}

/* ── Как проходит осмотр (hairline-сетка + индекс, заметки, медиа) ─────── */
.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--color-rule);
  margin-bottom:2.5rem;counter-reset:flow}
/* зигзаг */
.flow>.flow__step:nth-child(odd) .flow__card{border-top:1px solid var(--color-rule)}
.flow>.flow__step:nth-child(even) .flow__card{border-bottom:1px solid var(--color-rule)}
.flow__step{display:flex}
.flow__card{position:relative;overflow:hidden;flex:1;background:var(--color-paper);
  padding:clamp(2rem,2.8vw,3rem) clamp(1.6rem,2.2vw,2.25rem) clamp(2.5rem,3.4vw,3.25rem);
  counter-increment:flow;transition:background var(--dur-2) var(--ease-out)}
/* контент — поверх водяного знака (.flow__num стилизован общим правилом выше) */
.flow__card h3,.flow__card p{position:relative;z-index:1}
.flow__card h3{font-size:var(--fs-h3);font-weight:600;margin:0 0 .6rem;letter-spacing:-.02em;line-height:1.1;
  padding-top:clamp(4rem,7vw,13rem);transition:color var(--dur-2) var(--ease-out)}
.flow__card p{color:var(--color-ink);font-size:var(--fs-body);line-height:var(--lh-body)}
.how__notes{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,2vw,1.5rem);margin-bottom:2.5rem}
/* заметки — крупные читаемые карточки: насыщенный бейдж-иконка + лёгкий цветной фон */
.note{display:flex;align-items:center;gap:clamp(1.1rem,1.8vw,1.6rem);
  background:color-mix(in oklab,var(--ac,var(--color-brand)) 6%,var(--color-card));
  border:1px solid color-mix(in oklab,var(--ac,var(--color-brand)) 16%,var(--color-rule));
  border-radius:var(--r-lg);padding:clamp(1.6rem,2.4vw,2.15rem) clamp(1.7rem,2.6vw,2.3rem);
  transition:border-color var(--dur-2),box-shadow var(--dur-2),transform var(--dur-2) var(--ease-out)}
.note:hover{transform:translateY(-3px);box-shadow:var(--sh-2);
  border-color:color-mix(in oklab,var(--ac,var(--color-brand)) 42%,var(--color-rule))}
/* бейдж — заливка акцентом, белая иконка, мягкая цветная тень */
.note__ic{flex:none;display:grid;place-items:center;width:3.5rem;height:3.5rem;border-radius:16px;
  color:#fff;background:var(--ac,var(--color-brand));
  box-shadow:0 8px 18px -8px var(--ac,var(--color-brand));
  transition:transform var(--dur-2) var(--ease-out)}
.note:hover .note__ic{transform:scale(1.06)}
.note__ic .ic{width:1.55em;height:1.55em;stroke-width:2}
.note__body{min-width:0}
.note h4{font-size:var(--fs-h4);margin:0 0 .45rem;font-weight:700;letter-spacing:-.02em;line-height:1.15;color:var(--color-ink-strong)}
.note p{color:var(--color-ink);font-size:var(--fs-lead);line-height:1.5;margin:0}
.note--0{--ac:var(--color-teal)}
.note--1{--ac:var(--color-brand)}
/* медиа-ряд: три равных карточки одного формата в стиле блока (скругление, бордер, мягкий ховер) */
.how__media{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,2vw,1.5rem);align-items:stretch}
.how__media .media{aspect-ratio:4/3;border-radius:var(--r-lg);border:1px solid var(--color-rule);box-shadow:var(--sh-1);
  transition:box-shadow var(--dur-2),transform var(--dur-2) var(--ease-out),border-color var(--dur-2)}
.how__media .media img{transition:transform var(--dur-3) var(--ease-out)}
.how__media .media:hover{transform:translateY(-3px);box-shadow:var(--sh-2);border-color:color-mix(in oklab,var(--color-brand) 35%,var(--color-rule))}
.how__media .media:hover img{transform:scale(1.05)}
.how__media .video-facade{border-color:transparent}

/* ── Преимущества (hairline-сетка-«решения» с индексами 01–06) ────────── */
.adv__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--color-rule);
  border-block:1px solid var(--color-rule)}
.adv{display:flex;flex-direction:column;overflow:hidden;background:var(--color-paper);
  padding:clamp(4rem,7vw,13rem) clamp(2rem,2.8vw,3rem) clamp(2rem,2.8vw,3rem);
  transition:background var(--dur-2) var(--ease-out)}
/* .adv__num стилизован общим правилом водяного знака выше */
.adv__head{display:flex;align-items:center;margin-bottom:clamp(1rem,2vw,1.4rem)}
.adv__ic{display:inline-flex;font-size:1.7rem;color:var(--color-brand);transition:color var(--dur-2),transform var(--dur-2) var(--ease-out)}
.adv__ic .ic{width:1em;height:1em}
.adv h3{font-size:var(--fs-h3);font-weight:600;letter-spacing:-.02em;margin:0 0 .55rem;line-height:1.1;
  transition:color var(--dur-2) var(--ease-out)}
.adv p{color:var(--color-muted);font-size:var(--fs-body);line-height:var(--lh-body);margin:0}
/* «solo»-шапка секции (только заголовок, без лида справа) */
.sec__head--solo{grid-template-columns:1fr}

/* ── Тарифы (крупные отдельные карточки в едином стиле с секциями выше) ── */
.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1rem,1.5vw,1.5rem);
  margin-bottom:clamp(2.5rem,5vw,4rem)}
.plan{--ac:var(--color-brand);display:flex;flex-direction:column;gap:1.3rem;position:relative;overflow:hidden;
  background:var(--color-card);border:1px solid var(--color-rule);border-radius:var(--r-xl);
  padding:clamp(2rem,2.6vw,2.9rem);
  transition:transform var(--dur-2) var(--ease-out),box-shadow var(--dur-2),border-color var(--dur-2)}
/* верхняя цветная полоса-акцент — как у карточек «Кто обязан» */
.plan::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:var(--ac);z-index:2}
.plan:hover{transform:translateY(-4px);box-shadow:var(--sh-3);border-color:color-mix(in oklab,var(--ac) 45%,var(--color-rule))}
.plan--0{--ac:var(--color-teal)}
.plan--1{--ac:var(--color-brand)}
.plan--2{--ac:oklch(56% 0.16 292)}
.plan--featured{background:var(--color-brand-50);border-color:var(--color-brand-100);box-shadow:var(--sh-2)}
/* шапка карточки: крупная иконка (белый знак на цветной заливке) + имя в строку */
.plan__head{display:flex;align-items:center;gap:1.1rem}
.plan__ic{display:inline-grid;place-items:center;box-sizing:border-box;flex:none;width:3.4em;height:3.4em;padding:.82em;
  border-radius:16px;color:#fff;background:var(--ac);box-shadow:0 6px 16px color-mix(in oklab,var(--ac) 32%,transparent)}
.plan__name{font-size:var(--fs-h3);font-weight:700;letter-spacing:-.025em;line-height:1.08;color:var(--color-ink-strong)}
/* .plan .plan__badge — выше специфичность, чем у общего .plan>*{position:relative} ниже по файлу */
.plan .plan__badge{position:absolute;top:1.35rem;right:1.35rem;z-index:3;font-family:var(--font-body);font-size:var(--fs-tag);font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;color:var(--color-on-brand);background:var(--color-brand);
  padding:.34rem .66rem;border-radius:var(--r-pill)}
.plan__price{display:flex;align-items:baseline;flex-wrap:wrap;gap:.45rem;padding-bottom:1.4rem;border-bottom:1px solid var(--color-rule)}
.plan__price b{font-family:var(--font-body);font-weight:600;font-size:clamp(2.4rem,3.1vw,3.3rem);
  color:var(--color-ink-strong);letter-spacing:-.04em;line-height:1}
.plan__price span{color:var(--color-muted);font-size:var(--fs-body)}
.plan__price-ind{font-weight:700;font-size:clamp(1.55rem,1.3vw + .9rem,1.95rem);color:var(--color-ink-strong);letter-spacing:-.01em}
.plan__feats{display:flex;flex-direction:column;gap:1.1rem;flex:1}
.plan__feats li{display:flex;gap:.85rem;align-items:center;font-size:var(--fs-body);line-height:1.35;color:var(--color-ink-strong);font-weight:400}
.plan__check{display:grid;place-items:center;flex:none;width:1.625rem;height:1.625rem;border-radius:50%;color:#fff;background:var(--ac)}
.plan__check .ic{width:.95em;height:.95em;stroke-width:2.6}
.plan .btn{margin-top:.7rem}

/* ── Калькулятор: карточка-форма со степперами + азур-градиент результата ── */
/* форма по контенту + панель рядом; группа ограничена по ширине → между блоками обычный зазор, без «дыры» */
.calc{display:grid;grid-template-columns:auto minmax(0,1fr);gap:clamp(1.5rem,3vw,2.75rem);align-items:stretch;max-width:66rem}
/* карточка формы обнимает свой контент по ширине, но тянется по высоте до панели результата */
.calc__form{display:flex;flex-direction:column;gap:2.25rem;justify-content:center;justify-self:start;width:fit-content;max-width:100%;
  background:var(--color-card);border:1px solid var(--color-rule);border-radius:var(--r-xl);padding:clamp(1.6rem,2.4vw,2.4rem)}
.calc__field{display:flex;flex-direction:column;gap:.7rem;min-width:0}
/* иконка в одну строку с числом (степпером) */
.calc__field-row{display:flex;align-items:center;gap:1rem}
.calc__field-ic{display:inline-grid;place-items:center;flex:none;box-sizing:border-box;width:3.25rem;height:3.25rem;
  border-radius:14px;color:var(--color-brand);background:color-mix(in oklab,var(--color-brand) 12%,var(--color-card))}
/* единый размер иконки → все одинаково ровные, по центру бейджа */
.calc__field-ic .ic{width:1.5em;height:1.5em;stroke-width:1.7}
.calc__field-label{font-weight:600;font-size:var(--fs-body);color:var(--color-ink-strong);display:flex;align-items:baseline;gap:.55rem;flex-wrap:wrap}
.calc__field-hint{font-weight:400;font-size:var(--fs-body-sm);color:var(--color-muted)}
.calc__stepper{display:inline-flex;align-items:center;flex:none;border:1.5px solid var(--color-rule);border-radius:14px;overflow:hidden;background:var(--color-paper)}
.calc__stepper:focus-within{border-color:var(--color-brand);box-shadow:var(--ring)}
.calc__step{display:grid;place-items:center;flex:none;width:3rem;height:3.25rem;color:var(--color-brand-700);
  background:transparent;transition:background var(--dur-2) var(--ease-out),color var(--dur-2)}
.calc__step:hover{background:var(--color-brand-50);color:var(--color-brand)}
.calc__step:active{background:var(--color-brand-100)}
.calc__step .ic{width:1.25em;height:1.25em;stroke-width:2.2}
.calc__stepper input{flex:none;width:4ch;text-align:center;font-family:var(--font-body);font-weight:700;
  font-size:1.4rem;color:var(--color-ink-strong);
  border:0!important;background:transparent!important;border-radius:0!important;box-shadow:none!important;padding:.55rem .25rem!important}
.calc__stepper input::-webkit-outer-spin-button,.calc__stepper input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.calc__stepper input{-moz-appearance:textfield}

.calc__result{display:flex;flex-direction:column;gap:.75rem;overflow:hidden;
  background:linear-gradient(158deg,var(--color-brand),var(--color-brand-700));color:var(--color-on-brand);
  border-radius:var(--r-xl);box-shadow:var(--sh-3);padding:clamp(1.85rem,2.8vw,2.6rem)}
.calc__out-label{font-family:var(--font-body);font-size:var(--fs-label);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:oklch(98% 0.01 245 / .92)}
.calc__out{display:flex;align-items:baseline;gap:.6rem;flex-wrap:wrap;margin-top:.1rem}
.calc__value{font-family:var(--font-body);font-weight:600;font-size:clamp(3.4rem,6vw,5.4rem);color:#fff;
  line-height:.92;font-variant-numeric:tabular-nums;letter-spacing:-.045em}
.calc__per{color:oklch(98% 0.01 245 / .92);font-size:1.2rem}
.calc__tier{margin-left:auto;align-self:center;font-weight:600;font-size:var(--fs-body-sm);color:#fff;background:oklch(100% 0 0 / .18);
  padding:.36rem .8rem;border-radius:var(--r-pill);min-height:1.7em;display:inline-flex;align-items:center;white-space:nowrap}
.calc__btn{margin-top:3rem;background:#fff;color:var(--color-brand-700);font-weight:600;box-shadow:var(--sh-2)}
.calc__btn:hover{background:var(--color-brand-50);color:var(--color-brand-700);box-shadow:var(--sh-3);transform:translateY(-1px)}
.calc__note{color:oklch(98% 0.01 245 / .86);font-size:var(--fs-body-sm);line-height:var(--lh-body);margin:0}

/* ── Оборудование (галерея как на маркетплейсе: фото + превью + инфо справа) ─ */
/* компактнее по вертикали — секция целится в один экран */
.sec--equipment{padding-block:clamp(1.5rem,3vw,2.25rem)}
.sec--equipment .sec__head{margin-bottom:clamp(2.25rem,4.5vw,3.5rem)}
.eqg{display:grid;grid-template-columns:minmax(0,clamp(300px,min(30vw,37vh),440px)) 1fr;gap:clamp(1.75rem,3vw,3.25rem);align-items:start}
.eqg__media{display:flex;flex-direction:column;gap:.5rem;position:sticky;top:90px}
.eqg__stage{position:relative;border:1px solid var(--color-rule);border-radius:var(--r-lg);overflow:hidden;background:var(--color-card)}
.eqg__main{margin:0;display:none}
.eqg__main.is-active{display:block;cursor:pointer}
.eqg__main .media{margin:0;border-radius:0;background:var(--color-paper-2)}
.eqg__badge{position:absolute;top:1rem;left:1rem;z-index:1;font-family:var(--font-body);font-size:var(--fs-tag);font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;color:var(--color-on-brand);background:var(--color-brand);
  padding:.3rem .75rem;border-radius:var(--r-pill)}
.eqg__thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:.7rem}
.eqg__thumb{display:flex;flex-direction:column;padding:0;cursor:pointer;overflow:hidden;
  border:1px solid var(--color-rule);border-radius:var(--r-md);background:var(--color-card);
  transition:border-color var(--dur-2),box-shadow var(--dur-2)}
.eqg__thumb .media{margin:0;border-radius:0;background:var(--color-paper-2)}
.eqg__thumb-cap{display:flex;flex-direction:column;gap:.15rem;padding:.55rem .35rem;text-align:center;
  border-top:1px solid var(--color-rule)}
.eqg__thumb-name{font-size:var(--fs-body);font-weight:700;color:var(--color-ink-strong);line-height:1.1;letter-spacing:-.01em}
.eqg__thumb-kind{font-size:var(--fs-body-sm);font-weight:400;color:var(--color-muted);line-height:1.2}
.eqg__thumb:hover{border-color:var(--color-brand)}
.eqg__thumb.is-active{border-color:var(--color-brand);box-shadow:0 0 0 1px var(--color-brand)}
.eqg__thumb.is-active .eqg__thumb-cap{background:var(--color-brand-50)}
.eqg__thumb.is-active .eqg__thumb-name{color:var(--color-brand-700)}
.eqg__thumb.is-active .eqg__thumb-kind{color:var(--color-brand-700)}
/* инфо выбранной модели (справа) */
.eqg__panel{display:none}
.eqg__panel.is-active{display:block}
@media (prefers-reduced-motion:no-preference){.eqg__panel.is-active{animation:eqgFade var(--dur-3) var(--ease-out)}}
@keyframes eqgFade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.eqg__name{font-size:var(--fs-h3);font-weight:700;letter-spacing:-.025em;line-height:1.1;margin:0;color:var(--color-ink-strong)}
.eqg__tagline{color:var(--color-muted);font-size:var(--fs-body);line-height:1.35;margin:.4rem 0 0}
/* ключевые плюсы — ёмко и читаемо */
.eqg__plus{display:flex;flex-direction:column;gap:.5rem;margin:1rem 0 0}
.eqg__plus li{display:flex;gap:.6rem;align-items:flex-start;font-size:var(--fs-body);
  font-weight:600;line-height:1.3;color:var(--color-ink-strong);letter-spacing:-.01em}
.eqg__plus .ic{color:var(--color-teal);flex:none;width:1.3em;height:1.3em;margin-top:.05em}
.eqg__measure{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin:1rem 0 0}
.eqg__measure-label{font-family:var(--font-body);font-size:var(--fs-label);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted);margin-right:.2rem}
.eqg__chip{font-size:var(--fs-body);font-weight:400;color:var(--color-brand-700);background:var(--color-brand-50);
  border:1px solid var(--color-brand-100);padding:.42rem .9rem;border-radius:var(--r-pill)}
/* характеристики — компактный список «что к чему» */
.eqg__subhead{font-family:var(--font-body);font-size:var(--fs-label);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted);margin:1.1rem 0 .5rem}
/* характеристики — стековые пары (подпись сверху, значение под ней) в 2 колонки с линиями-разделителями */
.eqg__specs{display:grid;grid-template-columns:1fr 1fr;column-gap:clamp(1.75rem,3vw,3rem);margin:0}
.eqg__specs>div{display:flex;flex-direction:column;gap:.12rem;font-size:var(--fs-body-sm);line-height:1.3;
  padding:.55rem 0;border-bottom:1px solid var(--color-rule)}
.eqg__specs>div:nth-last-child(-n+2){border-bottom:0;padding-bottom:0}
.eqg__specs dt{color:var(--color-muted);font-size:var(--fs-caption)}
.eqg__specs dd{color:var(--color-ink-strong);font-weight:400;margin:0}
.eqg__note{font-family:var(--font-body);color:var(--color-muted);font-size:var(--fs-body);margin:1rem 0 0}

/* ── Документы и лицензии — сетка 2×2: превью слева, текст+кнопка справа ── */
.docu__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.25rem,2vw,1.75rem)}
.docu{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:clamp(1.1rem,1.6vw,1.5rem);row-gap:1rem;
  align-items:start;grid-template-areas:"thumb meta" "thumb open";overflow:hidden;background:var(--color-card);
  border:1px solid var(--color-rule);border-radius:var(--r-lg);padding:clamp(1.2rem,1.7vw,1.6rem);
  transition:border-color var(--dur-2),box-shadow var(--dur-2),transform var(--dur-2) var(--ease-out)}
.docu:hover{transform:translateY(-3px);box-shadow:var(--sh-2);
  border-color:color-mix(in oklab,var(--ac,var(--color-brand)) 40%,var(--color-rule))}
/* превью сертификата → клик открывает крупно (лайтбокс) */
.docu__thumb{grid-area:thumb;position:relative;flex:none;align-self:center;width:clamp(112px,10vw,142px);aspect-ratio:10/13;margin:0;padding:0;
  border:1px solid var(--color-rule);border-radius:var(--r-md);cursor:zoom-in;overflow:hidden;background:var(--color-paper-2)}
.docu__thumb img{width:100%;height:100%;object-fit:cover;object-position:top center;display:block;
  transition:transform .4s var(--ease-out)}
.docu__thumb:hover img{transform:scale(1.06)}
.docu__zoom{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;
  color:#fff;font-weight:600;font-size:var(--fs-caption);opacity:0;
  background:color-mix(in oklab,var(--color-ink-strong) 48%,transparent);transition:opacity var(--dur-2)}
.docu__thumb:hover .docu__zoom{opacity:1}
.docu__zoom .ic{width:1.9rem;height:1.9rem;filter:drop-shadow(0 2px 6px rgba(0,0,0,.4))}
.docu__thumb--ph{display:grid;place-items:center;color:var(--ac,var(--color-brand));font-size:2.4rem;cursor:default}
.docu__meta{grid-area:meta;display:flex;flex-direction:column;align-items:flex-start;gap:.55rem;min-width:0}
.docu__type{display:inline-flex;align-items:center;gap:.4rem;font-size:1.3rem;color:var(--ac,var(--color-teal));font-weight:600;line-height:1.2}
.docu__type .ic{width:1.1em;height:1.1em}
.docu__name{font-size:var(--fs-h3);font-weight:600;letter-spacing:-.015em;line-height:1.22;color:var(--color-ink-strong)}
/* кнопка под текстом → внешний источник проверки */
/* кнопка «Открыть в реестре» — стандартная .btn; здесь только раскладка в карточке */
.docu__open{grid-area:open;justify-self:end;align-self:end}
.docu__open:hover .ic{transform:translateX(3px)}
.docu__open--soon{color:var(--color-muted)}
/* мобилка: карточка документа в столбик — тумба, текст, и кнопка ОТДЕЛЬНОЙ строкой ниже (не поверх) */
@media (max-width:768px){
  /* тумба+текст в ряд, кнопка отдельной строкой во всю ширину ниже */
  .docu{grid-template-areas:"thumb meta" "open open";align-items:center;row-gap:.9rem}
  .docu__thumb{align-self:start;width:clamp(96px,26vw,120px)}
  .docu__name{font-size:var(--fs-h4)}
  .docu__open{justify-self:stretch;justify-content:center;align-self:auto}
}
.docu--0{--ac:var(--color-brand)}
.docu--1{--ac:var(--color-teal)}
.docu--2{--ac:var(--color-success)}
.docu--3{--ac:oklch(56% 0.16 292)}
/* лайтбокс-картинка крупно (как видео-модалка), апскейл мелкого скана */
.vmodal--img .vmodal__inner{width:min(94vw,calc(90vh * 0.704));max-height:none}
.vmodal__img{display:block;width:100%;height:auto;margin:0 auto;border-radius:var(--r-md);
  box-shadow:0 24px 60px -12px rgba(0,0,0,.5);background:#fff}
/* Кликабельные фото/картинки (лайтбокс на весь экран) — курсор-лупа + значок в углу */
.media--zoom{position:relative;cursor:zoom-in}
.media__zoom{position:absolute;right:.6rem;bottom:.6rem;display:grid;place-items:center;width:2.3rem;height:2.3rem;
  border-radius:50%;background:rgba(15,23,42,.58);color:#fff;opacity:0;transition:opacity var(--dur-2,.18s);pointer-events:none}
.media--zoom:hover .media__zoom,.media--zoom:focus-visible .media__zoom{opacity:1}
.media--zoom .media__zoom .ic{width:1.25rem;height:1.25rem}
@media (hover:none){.media__zoom{opacity:.9}}

/* ── Отзывы (hairline-сетка + крупный рейтинг) ────────────────────────── */
.reviews__layout{display:flex;flex-direction:column;gap:clamp(2rem,4vw,3.5rem)}
.reviews__head{display:flex;flex-wrap:wrap;gap:1.5rem 2.5rem;align-items:flex-end;justify-content:space-between}
.reviews__head .sec__title{margin:0}
.rating{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem 1rem}
.rating__score{font-family:var(--font-body);font-weight:500;font-size:clamp(2.6rem,4vw,3.4rem);color:var(--color-ink-strong);letter-spacing:-.04em;line-height:1}
.rating__stars{color:var(--color-warn);letter-spacing:.08em;font-size:var(--fs-body)}
.rating__count{font-size:var(--fs-body-sm);color:var(--color-muted)}
/* плоская hairline-сетка + фирменная mono-цифра-водяной знак (как «Как начать») */
.reviews__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--color-rule);border-block:1px solid var(--color-rule);counter-reset:rev}
.review{counter-increment:rev;background:var(--color-paper);overflow:hidden;padding:clamp(2rem,3vw,3rem);display:flex;flex-direction:column;gap:1.25rem;
  transition:background var(--dur-2) var(--ease-out)}
.review::before{content:counter(rev,decimal-leading-zero);position:absolute;top:-.12em;right:.2em;z-index:0;pointer-events:none;
  font-family:var(--font-body);font-weight:600;font-size:clamp(4rem,7vw,7rem);line-height:1;letter-spacing:-.05em;
  color:color-mix(in oklab,var(--color-brand) 12%,transparent)}
.review:hover{background:var(--color-paper-2)}
.review:hover::before{color:color-mix(in oklab,var(--color-brand) 20%,transparent)}
.review blockquote{color:var(--color-ink);font-size:var(--fs-body);line-height:var(--lh-body)5}
.review figcaption{display:flex;flex-direction:column;gap:.15rem;font-size:var(--fs-body-sm);margin-top:auto;
  border-top:1px solid var(--color-rule);padding-top:1.1rem}
.review figcaption b{color:var(--color-ink-strong)}
.review figcaption span{color:var(--color-muted)}
.review figcaption a{display:inline-flex;align-items:center;gap:.3rem;color:var(--color-brand-700);font-weight:600;margin-top:.25rem}
.reviews__ph{min-height:10rem;border:1px solid var(--color-rule)}

/* ── Контакты + карта ─────────────────────────────────────────────────── */
.contacts__grid{display:grid;grid-template-columns:.9fr 1.5fr;gap:clamp(1.5rem,3vw,3rem);align-items:stretch}
/* плоский hairline-список (как «Как начать») — без карточки */
.contacts__card{display:flex;flex-direction:column;gap:1.25rem}
.contacts__card .sec__title{margin-bottom:clamp(2rem,4vw,3rem)}
.contacts__list{display:flex;flex-direction:column;border-top:1px solid var(--color-rule)}
.contacts__list li{padding:0;border-bottom:1px solid var(--color-rule)}
.contacts__list .contact-line,.contacts__list .tel{display:flex;align-items:center;gap:1rem;width:100%;padding:1rem 0;
  font-size:var(--fs-body);color:var(--color-ink)}
/* ховер кликабельного текста (телефон/почта) — как везде на сайте: смена цвета, без подчёркивания */
.contacts__list a{transition:color var(--dur-2) var(--ease-out)}
.contacts__list a:hover{color:var(--color-brand-700)}
/* иконка в мягком цветном чипе — фирменная деталь (как в «Боли») */
.contacts__list .ic{flex:none;box-sizing:border-box;width:2.6em;height:2.6em;padding:.6em;border-radius:var(--r-md);
  color:var(--color-brand);background:color-mix(in oklab,var(--color-brand) 12%,transparent);transition:color var(--dur-2) var(--ease-out)}
.contacts__card .btn{margin-top:1.5rem;align-self:flex-start}
.contacts__map{position:relative;min-height:23.75rem;border-radius:var(--r-md);overflow:hidden;
  border:1px solid var(--color-rule);background:var(--color-paper-2)}
.ymap-facade{display:grid;place-items:center;cursor:pointer}
.ymap-facade__hint{display:inline-flex;align-items:center;gap:.5rem;font-weight:600;color:var(--color-brand-700);
  background:var(--color-paper);padding:.7rem 1.1rem;border-radius:var(--r-pill);border:1px solid var(--color-rule)}
.ymap-facade iframe,.contacts__map iframe{width:100%;height:100%;border:0;display:block}

/* ── FAQ (hairline-аккордеон) ─────────────────────────────────────────── */
.faq__grid{display:grid;grid-template-columns:.82fr 1.18fr;gap:clamp(2rem,5vw,5rem);align-items:start}
.faq__head{position:sticky;top:100px}
.faq__head .sec__title{margin-bottom:clamp(2rem,3vw,2.75rem)}
.faq__aside{color:var(--color-muted);font-size:var(--fs-body);line-height:var(--lh-body);max-width:32ch}
/* плоский hairline-аккордеон + фирменный mono-номер в чипе (как чипы в «Боли»/контактах) */
.faq__list{border-top:1px solid var(--color-rule);counter-reset:qa}
.qa{counter-increment:qa;border-bottom:1px solid var(--color-rule)}
.qa__q{display:flex;align-items:center;gap:1.1rem;width:100%;text-align:left;
  padding:1.6rem 0;font-weight:600;font-size:var(--fs-h4);color:var(--color-ink-strong);letter-spacing:-.015em;line-height:1.3}
.qa__q::before{content:counter(qa,decimal-leading-zero);flex:none;display:grid;place-items:center;width:2.9rem;height:2.9rem;
  border-radius:var(--r-md);font-family:var(--font-body);font-weight:600;font-size:var(--fs-body);font-variant-numeric:tabular-nums;
  color:var(--color-brand);background:color-mix(in oklab,var(--color-brand) 12%,transparent)}
.qa__q .ic{flex:none;margin-left:auto;color:var(--color-brand);transition:transform var(--dur-3) var(--ease-out)}
.qa.is-open .qa__q .ic{transform:rotate(180deg)}
.qa__a{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--dur-3) var(--ease-out)}
.qa.is-open .qa__a{grid-template-rows:1fr}
.qa__a-inner{overflow:hidden;min-height:0}
.qa__a-inner p{color:var(--color-ink);padding-bottom:1.6rem;max-width:72ch;font-size:var(--fs-body);line-height:var(--lh-body)}
.qa__a-inner p+p{padding-top:.7rem}

/* ── Финальная форма заявки (мягкий азур-холст, чистая форма) ─────────── */
.sec--lead{background:linear-gradient(180deg,var(--color-brand-50),var(--color-paper))}
.lead__grid{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(1.5rem,5vw,4.5rem);align-items:start}
.lead__copy .sec__title{margin-bottom:clamp(2rem,3vw,2.75rem)}
.lead__usp{display:flex;flex-direction:column;border-top:1px solid var(--color-rule);margin:1.75rem 0 0}
.lead__usp li{display:flex;align-items:center;gap:.8rem;font-weight:400;font-size:var(--fs-body);padding:1rem 0;border-bottom:1px solid var(--color-rule)}
.lead__usp .ic{color:var(--color-teal);flex:none}
.lead__phone{margin-top:1.5rem}
.lead__form{background:var(--color-card);border:1px solid var(--color-rule);border-radius:var(--r-xl);
  padding:clamp(1.75rem,3.5vw,2.75rem);box-shadow:var(--sh-3);display:flex;flex-direction:column;gap:1.25rem}
/* редакторские лейблы форм (mono, uppercase) — как kicker'ы */
.lead__form .field__lbl,.lmodal__form .field__lbl{font-family:var(--font-body);font-size:var(--fs-label);font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted)}
.consent{display:grid;grid-template-columns:auto 1fr;gap:.6rem;align-items:start;font-size:var(--fs-body-sm);color:var(--color-muted);cursor:pointer}
.consent input{width:20px;height:20px;margin-top:.1rem;accent-color:var(--color-brand);flex:none}
.consent a{color:var(--color-brand-700);text-decoration:underline;text-underline-offset:2px}
.consent.is-error span{color:var(--color-error)}
.cap{margin:.1rem 0 .2rem}
.cap .smart-captcha{display:inline-block}
.cap .smart-captcha.is-error{outline:2px solid var(--color-error);outline-offset:3px;border-radius:4px}
.lead__legal{font-size:var(--fs-body-sm);color:var(--color-muted);line-height:1.5}
.lead-success{background:var(--color-card);border:1px solid var(--color-rule);border-radius:var(--r-lg);
  padding:clamp(1.75rem,4vw,2.5rem);box-shadow:var(--sh-2);text-align:center;display:flex;flex-direction:column;align-items:center;gap:.75rem}
.lead-success__ic{display:grid;place-items:center;width:4rem;height:4rem;border-radius:50%;
  background:var(--color-success);color:#fff;font-size:2rem;font-weight:700}
.lead-success h3{font-size:var(--text-xl)}
.lead-success p{color:var(--color-muted);max-width:40ch}

/* ── Футер (светлый редакторский, hairline-структура) ─────────────────── */
.foot{background:var(--color-paper);color:var(--color-muted);border-top:1px solid var(--color-rule);
  padding-top:clamp(3rem,5vw,4.5rem);font-size:var(--fs-body);line-height:var(--lh-body)}
.foot a{color:var(--color-ink);transition:color .25s var(--ease-out)}
.foot a:hover{color:var(--color-brand-700)}
.foot__links a,.foot__auth a{position:relative;display:inline-block;width:fit-content}
.foot__links a::after,.foot__auth a::after{content:"";position:absolute;left:0;bottom:-1px;width:0;height:1px;
  background:var(--color-teal);transition:width .28s var(--ease-out)}
.foot__links a:hover::after,.foot__auth a:hover::after{width:100%}
.foot__grid{display:grid;grid-template-columns:1.6fr 1fr 1.2fr 1fr;gap:clamp(1.5rem,3vw,3rem)}
.foot .logo__name{color:var(--color-ink-strong);font-size:1.35rem}
.foot .logo__tag{color:var(--color-muted)}
.foot__brand .logo{margin-bottom:.25rem}
.foot__about{margin:1.1rem 0;max-width:42ch;color:var(--color-muted)}
.foot__req{font-size:var(--fs-caption);color:var(--color-muted);line-height:var(--lh-body);display:flex;flex-direction:column;gap:.15rem;margin-top:.5rem}
.foot__req-line{display:block}
.foot__req-line--name{color:var(--color-ink);font-weight:400;margin-bottom:.15rem}
.foot__col h4{color:var(--color-ink-strong);font-family:var(--font-body);font-size:var(--fs-label);font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;margin-bottom:1.1rem}
.foot__links{display:flex;flex-direction:column;gap:.6rem}
.foot__soon{color:var(--color-muted);opacity:.6;cursor:default}
.foot__auth{display:flex;flex-direction:column;gap:.9rem;font-size:var(--fs-body-sm)}
.foot__auth b{color:var(--color-ink-strong);display:block}
.foot__auth a,.foot__auth span{display:block;color:var(--color-muted)}
.foot__col--contacts{display:flex;flex-direction:column;gap:.65rem;align-items:flex-start}
.foot__col--contacts .tel{color:var(--color-ink-strong)}
.foot__col--contacts .tel .ic{color:var(--color-brand)}
.foot__col--contacts .contact-line{display:inline-flex;align-items:center;gap:.45rem;color:var(--color-muted)}
.foot__col--contacts .contact-line .ic{color:var(--color-brand);flex:none}
.a11y-toggle{margin-top:.4rem;white-space:nowrap}
.a11y-toggle .ic{color:var(--color-brand)}
.foot__notes{display:flex;flex-wrap:wrap;gap:.5rem 2rem;margin-top:clamp(2.5rem,4vw,3.5rem);padding-top:1.5rem;border-top:1px solid var(--color-rule)}
.foot__notes p{display:flex;gap:.5rem;align-items:center;font-size:var(--fs-caption);color:var(--color-muted)}
.foot__notes .ic{color:var(--color-teal);flex:none}
.foot__bottom{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;justify-content:space-between;
  padding-block:1.5rem;margin-top:1rem;border-top:1px solid var(--color-rule);font-size:var(--fs-label);color:var(--color-muted)}

/* ── Плавающий видео-виджет (как elkadigital: квадрат с автоплеем без звука) ── */
/* виджет скрыт на первом экране, появляется после прокрутки (класс vw--in вешает app.js) */
.vw{position:fixed;right:1.1rem;bottom:1.1rem;z-index:var(--z-vw);width:9.5rem;
  opacity:0;visibility:hidden;transform:translateY(28px) scale(.9);transform-origin:bottom right;pointer-events:none;
  transition:opacity .6s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1),visibility .7s}
.vw.vw--in{opacity:1;visibility:visible;transform:none;pointer-events:auto}
.vw__btn{position:relative;display:block;width:9.5rem;height:16rem;border-radius:var(--r-md);overflow:hidden;
  background:var(--color-ink-strong);box-shadow:var(--sh-3);transition:transform var(--dur-2) var(--ease-out);padding:0;cursor:pointer}
.vw__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.vw__badge{position:absolute;left:8px;bottom:8px;z-index:1;display:inline-flex;align-items:center;gap:.35rem;
  background:oklch(20% 0.03 255 / .55);color:#fff;padding:.35rem .6rem;border-radius:var(--r-pill);
  font-size:var(--fs-tag);font-weight:600;line-height:1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}
.vw__badge .ic{width:1.05em;height:1.05em}
.vw__label{white-space:nowrap}
.vw__btn:hover{transform:scale(1.03)}

/* ── Мобильная нижняя панель ──────────────────────────────────────────── */
.mbar{position:fixed;left:0;right:0;bottom:0;z-index:var(--z-mbar);display:none;align-items:center;gap:.75rem;
  padding:.6rem .9rem;background:oklch(99% 0.004 245 / .95);backdrop-filter:blur(10px);border-top:1px solid var(--color-rule)}
.mbar .tel{flex:1;justify-content:center;border:1px solid var(--color-rule);border-radius:var(--r-pill);padding:.7rem}
.mbar .btn{flex:1}

/* ── Медиа: соотношения и плейсхолдеры ────────────────────────────────── */
.media{margin:0;border-radius:var(--r-sm);overflow:hidden;background:var(--color-paper-2)}
.media img{width:100%;height:100%;object-fit:cover}
.ratio-16x9{aspect-ratio:16/9}
.ratio-4x3{aspect-ratio:4/3}
.ratio-1x1{aspect-ratio:1/1}
.ratio-a4{aspect-ratio:1/1.414}
.media--ph{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;
  color:var(--color-muted);text-align:center;padding:1rem;font-size:var(--fs-label);
  border:1px solid var(--color-rule);background:var(--color-paper-2)}
.media--ph .ic{width:1.8rem;height:1.8rem;color:var(--color-muted);opacity:.6}
.video-facade{position:relative;cursor:pointer;background:var(--color-ink-strong)}
.video-facade img{opacity:.85}
.video-facade__play{position:absolute;inset:0;display:grid;place-items:center;color:#fff}
.video-facade__play .ic{width:3.5rem;height:3.5rem;filter:drop-shadow(0 2px 8px rgba(0,0,0,.4))}

/* ── Модалка видео ────────────────────────────────────────────────────── */
/* inset:0 — затемняется только область контента, штатный скроллбар справа остаётся как на странице */
.vmodal{position:fixed;inset:0;z-index:var(--z-modal);display:grid;place-items:center;padding:1rem;
  background:oklch(20% 0.03 255 / .8);backdrop-filter:blur(4px)}
.vmodal__inner{position:relative;width:min(900px,100%);max-height:90vh}
.vmodal video{width:100%;border-radius:var(--r-md);background:#000}
.vmodal__close{position:absolute;top:-44px;right:0;width:40px;height:40px;border-radius:50%;
  background:var(--color-card);color:var(--color-ink-strong);display:grid;place-items:center;box-shadow:var(--sh-2)}

/* ── Юр-страницы ──────────────────────────────────────────────────────── */
.legal{max-width:var(--wrap);padding-block:clamp(2rem,5vw,3.5rem)}
.legal h1{font-size:var(--text-2xl);margin-bottom:.5rem}
.legal__upd{color:var(--color-muted);font-size:var(--fs-caption);margin-bottom:1.5rem}
.legal__body p{margin-bottom:1rem;color:var(--color-ink)}
.legal__h{font-size:var(--fs-h4);font-weight:700;line-height:1.3;color:var(--color-ink);margin:1.9rem 0 .7rem}
.legal__body>.legal__h:first-child{margin-top:0}
.legal__list{margin:0 0 1rem;padding-left:1.35rem;color:var(--color-ink)}
.legal__list li{margin-bottom:.4rem;line-height:1.5}
.legal__org{margin-top:2rem;padding-top:1rem;border-top:1px solid var(--color-rule);color:var(--color-muted);font-size:var(--fs-caption)}

/* ── Версия для слабовидящих: единый режим (одна кнопка-переключатель) ──── */
html.a11y-on{font-size:16px;
  --color-paper:#fff;--color-paper-2:#fff;--color-card:#fff;
  --color-ink:#000;--color-ink-strong:#000;--color-muted:#000;
  --color-rule:#000;--color-rule-2:#000;--color-on-brand:#fff;
  --color-brand:#00348f;--color-brand-600:#00348f;--color-brand-700:#002a72;
  --color-brand-100:#c9d6ef;--color-brand-50:#eef3fc;--color-teal:#00348f}
html.a11y-on body{background:#fff;color:#000;line-height:1.7;letter-spacing:.01em}
html.a11y-on a{text-decoration:underline;text-underline-offset:3px}
html.a11y-on .btn{text-decoration:none;border-color:currentColor}
html.a11y-on .vw,html.a11y-on .cookiebar{display:none}
html.a11y-on .hero__bg{opacity:.2}
/* шапку держим компактной (обычный размер, одна строка) — чтобы не раздувалась и не закрывала контент */
html.a11y-on .hdr__nav{justify-content:flex-start;gap:0}
html.a11y-on .hdr__nav a{font-size:14px;padding:.3rem .28rem}
html.a11y-on .hdr__cta{font-size:14px;padding:.5rem .75rem}
html.a11y-on .hdr__bar{gap:.4rem}
html.a11y-on .hdr .logo__name{font-size:15px}
html.a11y-on .hdr .logo__tag{font-size:12px}
html.a11y-on *,html.a11y-on *::before,html.a11y-on *::after{animation:none !important;transition:none !important}
html.a11y-on :focus-visible{outline:3px solid #00348f;outline-offset:2px;box-shadow:none}
.a11y-toggle[aria-pressed="true"]{border-color:var(--color-brand);background:var(--color-brand-50);color:var(--color-brand-700)}
.a11y-toggle[aria-pressed="true"] .ic{color:var(--color-brand)}

/* ── Интерактив: ховер карточек = растущая акцент-линия снизу + сдвиг акцентов ── */
.foot{position:relative}
.step,.flow__card,.pain,.adv,.plan,.eq,.docu,.review,.note{position:relative}
.plan>*,.pain>*,.adv>*,.docu>*,.review>*,.note>*,.eq>*{position:relative;z-index:1}
@media (hover:hover) and (pointer:fine){
  .step::after,.flow__card::after,.adv::after,.review::after{
    content:"";position:absolute;left:0;bottom:0;height:2px;width:0;z-index:2;pointer-events:none;
    background:var(--color-brand);transition:width .45s var(--ease-out)}
  /* «закрытие» карточки: синяя линия по наведению — на стороне БЕЗ серой (чётные имеют серую снизу → синяя сверху) */
  .steps>.step:nth-child(even)::after,.flow>.flow__step:nth-child(even) .flow__card::after,.reviews__grid>.review:nth-child(even)::after{top:0;bottom:auto}
  .step:hover::after,.flow__card:hover::after,.adv:hover::after,.review:hover::after{width:100%}
  .step:hover,.flow__card:hover,.adv:hover,.review:hover{background:var(--color-paper-2)}
  .step:hover .step__num,.flow__card:hover .flow__num,.adv:hover .adv__num{color:color-mix(in oklab,var(--color-brand) 22%,transparent)}
  .step:hover .step__title,.flow__card:hover h3,.adv:hover h3{color:var(--color-brand-700)}
  .adv:hover .adv__ic{color:var(--color-brand-700);transform:translateX(3px)}
}

/* живые поля формы */
.lead__form input,.lmodal__form input{transition:border-color .3s var(--ease-out),background-color .3s,box-shadow .25s}
.lead__form input:focus,.lmodal__form input:focus{background:var(--color-brand-50)}
.field.filled .field__lbl{color:var(--color-brand-700)}
.consent{padding:.85rem 1rem;border:1px solid var(--color-rule);border-radius:var(--r-md);
  transition:border-color .25s,background-color .25s}
.consent:has(input:checked){border-color:var(--color-brand);background:var(--color-brand-50)}

/* ambient-подсветка фона секции «Как проходит осмотр» (--gx/--gy из JS) */
.sec[data-glow]{position:relative;--gx:50%;--gy:40%}
.sec[data-glow]>.wrap{position:relative;z-index:1}
@media (hover:hover) and (pointer:fine){
  .sec[data-glow]::after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;
    transition:opacity .5s var(--ease-out);
    background:radial-gradient(520px circle at var(--gx) var(--gy),oklch(68% 0.115 196 / .06),transparent 60%)}
  .sec[data-glow]:hover::after{opacity:1}
}

/* ── Попап заявки ─────────────────────────────────────────────────────── */
.lmodal{position:fixed;inset:0;z-index:var(--z-modal);display:grid;place-items:center;padding:1rem}
.lmodal[hidden]{display:none}
.lmodal__backdrop{position:absolute;inset:0;background:oklch(22% 0.03 255 / .55);backdrop-filter:blur(5px);
  opacity:0;transition:opacity .3s var(--ease-out)}
.lmodal__panel{position:relative;width:min(880px,100%);max-height:92vh;overflow:auto;background:var(--color-card);
  border:1px solid var(--color-rule);border-radius:var(--r-lg);box-shadow:var(--sh-3);
  opacity:0;transform:translateY(14px) scale(.985);transition:opacity .32s var(--ease-out),transform .32s var(--ease-out)}
.lmodal.is-open .lmodal__backdrop{opacity:1}
.lmodal.is-open .lmodal__panel{opacity:1;transform:none}
.lmodal__close{position:absolute;top:.9rem;right:.9rem;z-index:2;width:42px;height:42px;border-radius:50%;
  display:grid;place-items:center;color:var(--color-ink);background:var(--color-paper-2);border:1px solid var(--color-rule);
  transition:background .2s,color .2s}
.lmodal__close:hover{background:var(--color-brand-50);color:var(--color-brand-700)}
.lmodal__grid{display:grid;grid-template-columns:.85fr 1.15fr}
.lmodal__aside{background:var(--color-brand-50);border-right:1px solid var(--color-rule);
  padding:clamp(1.5rem,3vw,2.25rem);display:flex;flex-direction:column;gap:.9rem}
.lmodal__aside h3{font-size:var(--text-xl);letter-spacing:-.02em}
.lmodal__lead{color:var(--color-muted);font-size:var(--fs-body)}
.lmodal__phone{margin-top:auto}
.lmodal__form{padding:calc(42px + 1.7rem) clamp(1.5rem,3vw,2.25rem) clamp(1.5rem,3vw,2.25rem);display:flex;flex-direction:column;gap:.85rem}
.lmodal__src{font-family:var(--font-body);font-size:var(--fs-label);color:var(--color-teal);
  background:var(--color-teal-100);border-radius:var(--r-sm);padding:.35rem .7rem;align-self:flex-start}
@media (prefers-reduced-motion:reduce){.lmodal__panel,.lmodal__backdrop{transition:none}}
@media (max-width:680px){
  .lmodal{padding:0}
  .lmodal__panel{max-height:100dvh;height:100%;border-radius:0;width:100%}
  .lmodal__grid{grid-template-columns:1fr}
  .lmodal__form{padding-top:clamp(1.5rem,3vw,2.25rem)}
  .lmodal__aside{border-right:0;border-bottom:1px solid var(--color-rule);padding-right:calc(42px + 1.2rem);padding-bottom:1.25rem}
  .lmodal__aside .lead__usp,.lmodal__phone{display:none}
}

/* ── Адаптив ──────────────────────────────────────────────────────────── */
@media (max-width:1100px){
  .steps{grid-template-columns:repeat(2,1fr)}
  .flow{grid-template-columns:repeat(2,1fr)}
  .how__media{grid-template-columns:1fr 1fr}
  .docu__grid{grid-template-columns:repeat(2,1fr)}
  .reviews__grid{grid-template-columns:repeat(2,1fr)}
  .foot__grid{grid-template-columns:2fr 1fr 1fr}
  .adv__grid{grid-template-columns:repeat(2,1fr)}
  .sec__title{max-width:26ch}
  .eqg__thumb-name{font-size:var(--fs-body)}
  .eqg__thumb-kind{font-size:var(--fs-body-sm)}
}
@media (max-width:900px){
  .aud__grid,.pains__grid,.contacts__grid,.lead__grid,.faq__grid{grid-template-columns:1fr}
  .eqg{grid-template-columns:1fr}
  .eqg__specs{grid-template-columns:1fr}
  .eqg__media{position:static}
  .faq__head{position:static}
  .faq__head .sec__title{margin-bottom:.5rem}
  .economy{position:static}
  .plans{grid-template-columns:1fr}
  .calc{grid-template-columns:1fr;gap:1.25rem;max-width:none}
  /* коробка на всю ширину, а начинку (лейбл + иконка + степпер) центрируем по горизонтали */
  .calc__form{width:auto;justify-self:stretch;align-items:center}
  .calc__field-label{justify-content:center;text-align:center}
  .adv__grid{grid-template-columns:1fr 1fr}
  .how__notes{grid-template-columns:1fr}
  .foot__grid{grid-template-columns:1fr 1fr}
  body{padding-bottom:70px}
  .mbar{display:flex}
  .vw{bottom:84px;right:12px;width:98px}
  .vw__btn{width:98px;height:98px;border-radius:50%}
  .vw__badge{display:none}
}
@media (max-width:560px){
  .steps,.flow{grid-template-columns:1fr}
  .reviews__grid,.docu__grid,.how__media,.adv__grid{grid-template-columns:1fr}
  .foot__grid{grid-template-columns:1fr}
  .eqg__cols{grid-template-columns:1fr}
  .pain{grid-template-columns:auto 1fr;gap:.5rem 1rem}
  .pain__cost{grid-column:2;text-align:left}
  .reviews__head{align-items:flex-start}
  /* уплотнение карточек на мобиле — без разреженного длинного списка */
  .step,.flow__card{padding:1.6rem 1.35rem 1.8rem}
  .adv{padding:6rem 1.35rem 1.6rem}
  .adv__head{margin-bottom:1.4rem}
  .adv__ic{font-size:1.5rem}
  .plan,.review{padding:1.6rem 1.35rem}
  .docu{padding:1.35rem 1.1rem;gap:1rem}
  .step__title,.flow__card h3,.adv h3{font-size:1.4rem}
  .step__text,.flow__card p,.adv p{font-size:var(--fs-body)}
}

/* ═══ МОБИЛЬНЫЙ ПРОХОД (≤768): крупная типографика + воздух ═══════════════ */
@media (max-width:768px){
  main>.sec{padding-block:clamp(3.25rem,9vw,5rem)}
  .sec__lead{margin-bottom:1.75rem}
  .sec__title{max-width:none}
  .docu__grid{grid-template-columns:1fr}

  .hero__lead{font-size:var(--fs-body);max-width:none}
  .hero__h1{max-width:none}
  /* кнопки: в столбик, поменяны местами (column-reverse), ghost непрозрачная — не сливается с картой */
  .hero__actions{flex-direction:column-reverse;gap:.6rem}
  .hero__actions .btn{flex:none;width:100%;justify-content:center}
  .hero__actions .btn--ghost{background:var(--color-card);border-color:var(--color-rule);color:var(--color-brand-700)}
  .hero__facts{gap:.9rem 1.5rem}

  .aud__item{width:100%;justify-content:flex-start;padding:1.1rem 1.25rem;font-size:var(--fs-body);border-radius:var(--r-md)}

  .calc__field input,.lead__form input,.lmodal__form input{font-size:16px;padding:.95rem 1rem}
  .calc__field>span{font-size:var(--fs-body)}
  #calc-cta{min-width:100%}

  .mbar{padding:.55rem .7rem;gap:.55rem}
  .mbar .tel{padding:.85rem;min-height:48px}
  .mbar .btn{min-height:48px}
  .vw{bottom:86px;right:10px;width:92px}
  .vw__btn{width:92px;height:92px;border-radius:50%}
  .vw__badge{display:none}
}
@media (max-width:360px){
  .wrap{padding-inline:.9rem}
  .lead__form,.lmodal__form{padding:1.1rem}
}

/* ── Баннер-согласие на cookies ───────────────────────────────────────── */
.cookiebar{position:fixed;left:0;right:0;bottom:0;z-index:80;background:var(--color-card);
  border-top:1px solid var(--color-rule);box-shadow:0 -8px 30px oklch(40% 0.06 250 / .1)}
.cookiebar[hidden]{display:none}
.cookiebar__in{max-width:var(--wrap);margin:0 auto;padding:clamp(.85rem,2vw,1.2rem) clamp(1rem,4vw,3rem);
  display:flex;align-items:center;gap:clamp(1rem,2.5vw,2rem);flex-wrap:wrap;justify-content:space-between}
.cookiebar__text{margin:0;font-size:var(--fs-body-sm);line-height:1.45;color:var(--color-muted);flex:1 1 320px;max-width:88ch}
.cookiebar__text a{color:var(--color-brand-700);text-decoration:underline;text-underline-offset:2px;font-weight:600}
.cookiebar__btn{flex:none}
@media (max-width:900px){.cookiebar{bottom:70px}}
@media (max-width:560px){.cookiebar__in{flex-direction:column;align-items:stretch}.cookiebar__text{flex:0 0 auto}.cookiebar__btn{width:100%}}
