/* ============================================================================
   ImmunoHealth — Клиника иммунодиетологии (/clinic)
   Версия 2: точное соответствие макету Тильды (immunohealth1.ru/clinic)
   Один файл. Все цвета — через CSS-переменные.
   Содержание:
     1.  Шрифты (@font-face Gilroy)
     2.  Дизайн-токены (:root)
     3.  Reset / base
     4.  Доступность (a11y)
     5.  Layout: container (1600), section, заголовки секций
     6.  Кнопки, бейджи, звёзды, иконки
     7.  Хедер + кнопки «Главная»/«Меню»
     8.  Оверлей-меню (на весь экран)
     9.  Hero (2 колонки, светло-зелёный фон, фото продуктов)
     10. Программы (конфигуратор: список + детальный блок)
     11. Специалисты (4 в ряд + реальные фото)
     12. Отзывы (карусель с рейтингом)
     13. Акции (1 крупная + 3 мелкие)
     14. Контакты (3 колонки + карта + соцсети/приложение)
     15. Футер (белая полоса 1:1 с Тильдой)
     16. Всплывающие формы (Записаться / Купить тест)
     17. Страница «О клинике» (about.html)
     18. Адаптив
   ========================================================================== */


/* ====================== 1. ШРИФТЫ ====================== */
@font-face { font-family:'Gilroy'; src:url('/assets/fonts/Gilroy-Light.woff') format('woff'); font-weight:300; font-display:swap; }
@font-face { font-family:'Gilroy'; src:url('/assets/fonts/Gilroy-Regular.woff') format('woff'); font-weight:400; font-display:swap; }
@font-face { font-family:'Gilroy'; src:url('/assets/fonts/Gilroy-Medium.woff') format('woff'); font-weight:500; font-display:swap; }
@font-face { font-family:'Gilroy'; src:url('/assets/fonts/Gilroy-Semibold.woff') format('woff'); font-weight:600; font-display:swap; }
@font-face { font-family:'Gilroy'; src:url('/assets/fonts/Gilroy-Bold.woff') format('woff'); font-weight:700; font-display:swap; }


/* ====================== 2. ДИЗАЙН-ТОКЕНЫ ====================== */
:root {
    /* Бренд-цвета (1:1 с Тильдой) */
    --c-green:        #90b104;
    --c-green-dark:   #7a9603;
    --c-green-soft:   #abca27;
    --c-green-050:    #f9faf3;   /* фон hero/секций */
    --c-green-100:    #eef3d8;
    --c-red:          #ff1c00;
    --c-red-dark:     #d71600;
    --c-teal:         #00403c;   /* тёмные секции/футер */
    --c-teal-dark:    #022b28;
    --c-ink:          #1e1e1e;
    --c-ink-2:        #4d4d4d;
    --c-ink-3:        #8a8a8a;
    --c-ink-mute:     rgba(31,31,31,.7);   /* футер: #1f1f1f @ opacity 0.7 */
    --c-line:         #e3e6dd;
    --c-line-2:       #cdd2c0;
    --c-line-3:       #dcdcdc;   /* нейтральная рамка бейджей (Фигма) */
    --c-line-4:       #cecece;   /* рамка карточек (Фигма) */
    --c-line-5:       #b9b9b9;   /* разделители и кружки в модалке корзины (Фигма) */
    --c-white:        #ffffff;
    --c-grey-050:     #eeeeee;   /* подложка иконки при наведении */
    --c-coral:        #d76163;   /* «Сотрудничество» на входном экране */
    --c-aqua:         #009289;   /* «Интернет-магазин» на входном экране */
    --c-night:        #04040d;   /* затемнение фото на входном экране */
    --c-body:         #1f1f1f;   /* основной текст в карточках (Фигма) */
    --c-green-grad:   #eff9de;   /* старт градиента плашек «в цифрах» */
    --c-sage-rgb:     199,208,160;   /* подложка фото врача: градиент 40% → 100% (Фигма) */
    --c-teal-brand:   #056c6b;
    --c-coop:         #104714;   /* акцент сабренда «Иммунохелс Рус» (страница «Сотрудничество») */
    --c-grey-050:     #f7f7f7;   /* фон секций и карточек того же сабренда */
    --c-menu-bg:      #97b037;   /* панель оверлей-меню */
    --c-menu-scrim:   #f8faf3;   /* фон страницы при открытом меню */

    /* Семантика */
    --bg:        var(--c-white);
    --bg-soft:   var(--c-green-050);
    --text:      var(--c-ink);
    --text-2:    var(--c-ink-2);
    --text-3:    var(--c-ink-3);
    --heading:   var(--c-ink);
    --link:      var(--c-teal);

    /* Типографика */
    --font: 'Gilroy','Segoe UI',system-ui,-apple-system,Arial,sans-serif;
    --fs-display: clamp(1.9rem, 3.4vw, 3rem);   /* hero h1 (~48) */
    --fs-h1:      clamp(1.75rem, 3vw, 3.125rem); /* заголовки секций — 50px как в Фигме */
    --fs-h2:      clamp(1.25rem, 1.6vw, 1.5rem);
    --fs-h3:      clamp(1.05rem, 1.25vw, 1.2rem);
    --fs-lead:    clamp(1rem, 1.1vw, 1.125rem);
    --fs-body:    .9375rem;
    --fs-sm:      .8125rem;
    --fs-xs:      .75rem;
    --lh-t: 1.15; --lh-s: 1.3; --lh-n: 1.5; --lh-r: 1.65;

    /* Контейнер — как у Тильды: 1600 арборд */
    --container: 1600px;
    --pad: clamp(16px, 3.75vw, 60px);   /* 60px на 1600 — контент 1480 как в Фигме */

    /* Радиусы */
    --r-xs: 6px; --r-sm: 10px; --r-md: 16px; --r-lg: 24px; --r-pill: 999px;

    /* Тени */
    --sh-sm: 0 2px 10px rgba(0,0,0,.06);
    --sh-md: 0 10px 30px rgba(0,0,0,.10);
    --sh-lg: 0 18px 50px rgba(0,0,0,.16);
    --sh-green: 0 10px 26px rgba(144,177,4,.30);
    --sh-card: 2px 2px 6px rgba(0,0,0,.25);   /* зелёные карточки: отзывы, акции — по макету */
    --sh-input: 1px 1px 4px rgba(0,0,0,.15);   /* белые поля форм — по макету */

    /* Переходы */
    --t1: .15s ease; --t2: .25s ease; --t3: .4s cubic-bezier(.22,.61,.36,1);

    /* Z */
    --z-header: 120; --z-menu: 200; --z-overlay: 900; --z-modal: 1000;

    --header-h: 66px;
    color-scheme: light;
}


/* ====================== 3. RESET / BASE ====================== */
*,*::before,*::after { box-sizing:border-box; margin:0; padding:0; }
html { -webkit-text-size-adjust:100%; text-size-adjust:100%; scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + 16px); overflow-x:hidden; }
body {
    font-family:var(--font); font-size:var(--fs-body); line-height:var(--lh-n);
    color:var(--text); background:var(--bg);
    -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
    min-height:100dvh; overflow-x:hidden;
}
img,svg,video,picture { display:block; max-width:100%; height:auto; }
a { color:var(--link); text-decoration:none; transition:color var(--t1); }
a:hover { color:var(--c-green-dark); }
ul,ol { list-style:none; }
button { font:inherit; color:inherit; background:none; border:none; cursor:pointer; }
input,textarea,select { font:inherit; color:inherit; }
h1,h2,h3,h4 { color:var(--heading); line-height:var(--lh-t); font-weight:600; }
p { line-height:var(--lh-n); }
sup { font-size:.5em; vertical-align:super; line-height:0; }
::selection { background:var(--c-green-soft); color:var(--c-ink); }


/* ====================== 4. ДОСТУПНОСТЬ ====================== */
.skip-link {
    position:absolute; left:16px; top:-100px; z-index:var(--z-modal);
    background:var(--c-teal); color:#fff; padding:.7rem 1.2rem; border-radius:var(--r-pill);
    font-weight:600; transition:top var(--t2);
}
.skip-link:focus { top:12px; color:#fff; }
.sr-only { position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); clip-path:inset(50%); white-space:nowrap; border:0; }
:focus-visible { outline:3px solid var(--c-green-dark); outline-offset:2px; border-radius:4px; }
@media (prefers-reduced-motion:reduce) {
    *,*::before,*::after { animation-duration:.001ms!important; animation-iteration-count:1!important; transition-duration:.001ms!important; scroll-behavior:auto!important; }
}


/* ====================== 5. LAYOUT ====================== */
.container { width:100%; max-width:var(--container); margin-inline:auto; padding-inline:var(--pad); }
.section { padding-block:clamp(2.5rem,4.7vw,75px); }   /* 75+75 = 150 между секциями (Фигма) */
.section--soft { background:var(--bg-soft); }

.section-head { margin-bottom:clamp(1.5rem,2.5vw,40px); }   /* заголовок → контент 40px (Фигма) */
.section-head--row { display:flex; justify-content:space-between; align-items:flex-end; gap:1rem; flex-wrap:wrap; }
.section-head__title { font-size:var(--fs-h1); font-weight:600; line-height:1.3em; }
#contacts .section-head__title { color:var(--c-teal); }   /* #00403C */
#doctors .section-head__title { color:var(--c-teal); }
.txt-green { color:var(--c-green); }
.section-head__intro { margin-top:.6rem; color:#1A1818; font-size:var(--fs-lead); max-width:80ch; line-height:22px; }
.section-head__note { margin-top:.9rem; color:rgba(31,31,31,.7); font-size:16px; font-weight:500; max-width:90ch; line-height:1.3em; }
.section-head__note .note-sub { font-size:14px; color:rgba(31,31,31,.7); }


/* ====================== 6. КНОПКИ / БЕЙДЖИ / ЗВЁЗДЫ / ИКОНКИ ====================== */
.btn {
    display:inline-flex; align-items:center; justify-content:center; gap:10px;
    padding:10px 25px; min-height:46px;
    background:var(--c-green); color:var(--c-white);
    border:2px solid transparent; border-radius:100px;
    font-size:16px; font-weight:500; line-height:26px; white-space:nowrap; text-align:center;
    transition:background var(--t1),color var(--t1),transform var(--t1),box-shadow var(--t2);
}
.btn:hover { background:var(--c-green-dark); color:var(--c-white); transform:translateY(-1px); box-shadow:var(--sh-green); }
.btn:active { transform:translateY(0); }
.btn--block { display:flex; width:100%; }
.btn--lg { min-height:54px; padding:1rem 2rem; font-size:var(--fs-lead); }
.btn--sm { min-height:38px; padding:.45rem 1rem; font-size:var(--fs-sm); }
.btn--red { background:var(--c-red); }
.btn--red:hover { background:var(--c-red-dark); box-shadow:0 10px 26px rgba(255,28,0,.30); }
.btn--teal { background:var(--c-teal); }
.btn--teal:hover { background:var(--c-teal-dark); }
.btn--outline { background:transparent; color:var(--c-teal); border-color:var(--c-teal); }
.btn--outline:hover { background:var(--c-teal); color:var(--c-white); box-shadow:none; }
/* контурная кнопка «Купить» (Фигма 2008:6039): белая, рамка 1px #00403c, радиус 40.
   Ховер как у кнопки «Меню» в хедере — заливка зелёным, белый текст */
.btn--ghost { background:var(--c-white); color:var(--c-teal); border:1px solid var(--c-teal); border-radius:40px; }
.btn--ghost:hover { background:var(--c-green); border-color:var(--c-green); color:var(--c-white); box-shadow:none; }
.btn__icon { width:1.1em; height:1.1em; }

.badge { display:inline-flex; align-items:center; gap:.35rem; padding:.28rem .65rem; border-radius:var(--r-pill); font-size:var(--fs-xs); font-weight:700; line-height:1; white-space:nowrap; }
.badge--red { background:rgba(255,28,0,.12); color:var(--c-red-dark); }
.badge--green { background:var(--c-green-100); color:var(--c-green-dark); }

.icon { width:1.25em; height:1.25em; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
.icon--fill { fill:currentColor; stroke:none; }

.stars { display:inline-flex; gap:2px; color:var(--c-green); }
.stars .icon { width:16px; height:16px; }


/* ====================== 7. ХЕДЕР (1:1 с Тильдой) ====================== */
.header { position:fixed; top:0; left:0; right:0; z-index:var(--z-header); background:var(--c-white); transition:box-shadow var(--t2), background var(--t2), backdrop-filter var(--t2); }
.header.is-scrolled { background:rgba(255,255,255,0.85); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px); box-shadow:0 2px 20px rgba(0,0,0,0.08); border-bottom-color:transparent; }
.header__inner { display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:var(--header-h); }
.header__logo { display:inline-flex; align-items:center; flex-shrink:0; }
.header__logo img { height:27px; width:auto; }
.header__right { display:flex; align-items:center; gap:.625rem; }

/* Иконки хедера: два зелёных круга 44×44 (корзина + личный кабинет) */
.header__ic { display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; flex-shrink:0; }
.header__ic img { width:44px; height:44px; display:block; }
/* Счётчик товаров у иконки корзины */
.header__ic--cart { position:relative; }
.header__ic-count { position:absolute; top:0; right:0; min-width:20px; height:20px; padding:0 6px; display:inline-flex; align-items:center; justify-content:center; border-radius:10px; background:var(--c-green); color:var(--c-white); font-size:12px; font-weight:600; line-height:1; pointer-events:none; }
.header__ic-count[hidden] { display:none; }

/* Кнопка «Меню»: контурная пилюля 175×46, teal #00403c, 16px/500 */
.header__btn { display:inline-flex; align-items:center; justify-content:center; gap:.4rem; min-height:46px; width:clamp(140px,11vw,175px); padding:.6rem 1rem; border-radius:100px; font-size:16px; font-weight:500; line-height:1; white-space:nowrap; transition:background var(--t2),color var(--t2),border-color var(--t2); }
.header__btn--home { background:#90B104; color:var(--c-white); border:1.5px solid #90B104; text-decoration:none; }
.header__btn--home:hover { background:transparent; color:var(--c-teal); border-color:var(--c-teal); }
.header__btn--menu { background:transparent; color:var(--c-teal); border:1.5px solid var(--c-teal); cursor:pointer; }
.header__btn--menu:hover { background:#90B104; color:var(--c-white); border-color:#90B104; }

.burger { display:none; width:46px; height:46px; flex-direction:column; justify-content:center; align-items:center; gap:5px; border-radius:var(--r-xs); }
.burger span { display:block; width:24px; height:2px; background:var(--c-ink); border-radius:2px; transition:transform var(--t2),opacity var(--t1); }
.burger.is-open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.burger.is-open span:nth-child(2){ opacity:0; }
.burger.is-open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }


/* ====================== 8. ОВЕРЛЕЙ-МЕНЮ ====================== */
/* Зелёная панель справа, страница под ней — светлый фон без затемнения */
.menu-scrim { position:fixed; inset:0; z-index:var(--z-menu); background:var(--c-menu-scrim); opacity:0; visibility:hidden; transition:opacity var(--t2),visibility var(--t2); }
.menu-scrim.is-open { opacity:.6; visibility:visible; }
.menu { position:fixed; inset:0 0 0 auto; z-index:calc(var(--z-menu) + 1); width:min(280px,92vw); padding:20px 28px 38px; background:var(--c-menu-bg); box-shadow:var(--sh-lg); transform:translateX(100%); transition:transform var(--t3); display:flex; flex-direction:column; overflow-y:auto; }
.menu.is-open { transform:translateX(0); }
.menu__head { display:flex; align-items:center; justify-content:flex-end; padding:0; margin:0; }
.menu__close { width:30px; height:30px; display:grid; place-items:center; color:var(--c-white); }
.menu__close .icon { width:26px; height:26px; }
.menu__body { padding:0; }
.menu__nav { display:grid; gap:15px; }
/* без ховера — пункты меню всегда белые */
.menu__link { display:block; font-size:16px; font-weight:400; line-height:1.3; color:var(--c-white); }
.menu__link:hover { color:var(--c-white); }
.menu__foot { padding:0; margin-top:auto; display:flex; flex-direction:column; align-items:flex-start; }
.menu__phones { margin-top:25px; display:flex; flex-direction:column; gap:8px; }
.menu__phone { font-size:18px; font-weight:400; color:var(--c-white); white-space:nowrap; }
.menu__phone:hover { color:var(--c-white); }
.menu__socials { margin-top:25px; display:flex; gap:12px; }
.menu__socials a { display:block; width:30px; height:30px; color:var(--c-white); transition:opacity var(--t1); }
.menu__socials a:hover { opacity:.75; }
.menu__socials svg { display:block; width:30px; height:30px; }
/* Поиск по сайту: белая панель выезжает сверху поверх хедера */
.search-panel {
    position:fixed; left:0; right:0; top:0; z-index:calc(var(--z-menu) + 2);
    background:var(--c-white); box-shadow:0 10px 30px rgba(0,0,0,.08);
    transform:translateY(-100%);
    transition:transform var(--t3);
}
.search-panel.is-open { transform:translateY(0); }
.search-panel__inner {
    max-width:1055px; margin-inline:auto; padding:clamp(24px,3.75vw,60px) var(--pad);
    display:flex; align-items:center; gap:clamp(16px,2vw,32px);
}
.search-panel__form { position:relative; flex:1 1 auto; display:flex; align-items:center; min-width:0; }
/* Лупа — кнопка отправки: неактивна, пока поле пустое */
.search-panel__ic {
    position:absolute; left:17px; top:50%; transform:translateY(-50%);
    width:40px; height:40px; padding:0; display:grid; place-items:center;
    color:var(--c-ink-3); transition:color var(--t1);
}
.search-panel__ic svg { width:26px; height:26px; }
.search-panel__ic:disabled { cursor:default; }
.search-panel__ic:not(:disabled) { color:var(--c-green); cursor:pointer; }
.search-panel__ic:not(:disabled):hover { color:var(--c-green-dark); }
.search-panel__input {
    width:100%; height:72px; padding:0 24px 0 66px;
    background:var(--c-white); border:1px solid var(--c-line-3); border-radius:4px;
    font-size:clamp(1rem,1.25vw,20px); font-weight:500; color:var(--c-ink);
}
.search-panel__input::placeholder { color:var(--c-ink-3); }
.search-panel__input:focus-visible { outline:2px solid var(--c-green); outline-offset:-1px; }
.search-panel__close { flex:0 0 auto; width:44px; height:44px; display:grid; place-items:center; color:var(--c-ink); transition:color var(--t1); }
.search-panel__close svg { width:34px; height:34px; }
.search-panel__close:hover { color:var(--c-green-dark); }

/* html задан overflow-x:hidden, поэтому overflow с body на вьюпорт не пробрасывается —
   без этого рядом со скроллом панели остаётся второй, страничный */
body.no-scroll { overflow:hidden; }
html:has(body.no-scroll) { overflow:hidden; }


/* ====================== 9. HERO ====================== */
/* 9. HERO (по Фигме: два кремовых блока + каскад фото еды справа) */
.hero { padding-top:calc(var(--header-h) + 44px); padding-bottom:60px; position:relative; }
.hero__container { position:relative; }
.hero__top, .hero__bottom { background:var(--c-green-050); border-radius:30px; position:relative; }
.hero__top { display:flex; flex-direction:column; align-items:flex-start; gap:16px; padding:30px; min-height:249px; background:transparent; border-radius:0; }
.hero__panel { display:flex; align-items:center; gap:8px; border:2px solid var(--c-green); border-radius:64px 20px 20px 64px; padding:19px 16px 14px 7px; max-width:831px; height:127px; }
.hero__logo { width:132px; height:128px; object-fit:contain; flex-shrink:0; margin:-5px 0 0 -20px; position:relative; z-index:2; }
.hero__logo img { width:100%; height:100%; display:block; object-fit:contain; }
.hero__lead { width:680px; min-width:0; color:var(--c-teal); font-size:24px; font-weight:600; line-height:1.3; }
.hero__btn { white-space:nowrap; margin-left:0; padding-inline:40px; transition:background var(--t2),color var(--t2),border-color var(--t2); }
.hero__btn:hover { background:transparent; color:var(--c-teal); border-color:var(--c-teal); transform:none; box-shadow:none; }
.hero__bottom { margin-top:60px; padding:30px; min-height:300px; display:flex; align-items:flex-start; }
.hero__title { font-size:clamp(2.4rem,5.5vw,80px); line-height:80px; font-weight:600; color:var(--c-teal); max-width:clamp(280px,54vw,872px); }
.hero__title .txt-green { color:var(--c-green); }
/* каскад фото еды — % + clamp, пропорциональное масштабирование */
.hero__food { position:absolute; right:clamp(20px,2.6vw,42px); bottom:clamp(40px,5vw,80px); width:clamp(280px,34vw,544px); aspect-ratio:544/360; pointer-events:none; }
.hero__food--editable { pointer-events:auto; }   /* в режиме правки: иначе не поймать карандаш области */
.hero__food-layer { position:absolute; }   /* слой несёт геометрию: класс не уходит во включаемую область */
.hero__food img { width:100%; height:auto; display:block; object-fit:contain; }
.hero__food1 { width:68.4%; left:31.6%; top:0; z-index:1; }
.hero__food2 { width:57.7%; left:14.2%; top:22.8%; z-index:2; }
.hero__food3 { width:47.8%; left:0; top:44.7%; z-index:3; }
.hero__dot { position:absolute; border-radius:50%; background:var(--c-ink-mute); z-index:4; }
.hero__dot--1 { width:7.35%; height:9.72%; left:75%; top:41.7%; }
.hero__dot--2 { width:6.07%; height:8.06%; left:50.9%; top:58.1%; }
.hero__dot--3 { width:4.96%; height:6.67%; left:30.3%; top:73.6%; }


/* ====================== 10. ПРОГРАММЫ (конфигуратор) ====================== */
.prog__layout { display:grid; grid-template-columns:minmax(0,34fr) minmax(0,66fr); gap:30px; align-items:start; }
.prog__list, .prog__detail { min-width:0; }

/* Левый список карточек (по Фигме: 500×163, бейдж/разделитель/зелёная цена) */
.prog__list { display:grid; grid-template-columns:1fr; min-width:0; gap:15px; position:sticky; top:calc(var(--header-h) + 12px); }
.prog-card {
    display:flex; flex-direction:column; min-width:0;
    background:transparent; border:1px solid #CECECE; border-radius:20px;
    padding:20px; cursor:pointer; text-align:left; min-height:163px;
    font:inherit; color:inherit; box-shadow:2px 2px 6px 0px rgba(0,0,0,.25);
    transition:border-color var(--t1),background var(--t1);
}
.prog-card:hover { border-color:var(--c-green-soft); }
.prog-card.is-active { border-color:var(--c-green); background:var(--c-green-050); }
.prog-card__top { display:flex; justify-content:space-between; align-items:center; gap:12px; min-width:0; }
/* Кегли через clamp, а не фиксированные px: раньше при сужении экрана текст
   оставался прежнего размера и распирал карточку. */
.prog-card__name { font-size:clamp(1.05rem,1.45vw,23px); font-weight:600; color:var(--c-teal); line-height:1.25; min-width:0; text-transform:uppercase; }
.prog-card__art { color:#C6C6C6; font-size:clamp(0.8rem,0.9vw,14px); font-weight:500; white-space:nowrap; }
.prog-card__sub { font-size:clamp(0.85rem,0.94vw,15px); font-weight:500; color:#1f1f1f; margin-top:6px; line-height:1.3; min-width:0; }
.prog-card__sep { display:block; height:1px; background:#CECECE; margin:14px 0; }
/* wrap нужен: в строке теперь цена и две кнопки, на узких карточках они переносятся */
.prog-card__bottom { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:10px; margin-top:auto; min-width:0; }
.prog-card__price { display:inline-flex; align-items:baseline; gap:8px; }
.prog-card__price b { font-size:clamp(1.15rem,1.5vw,24px); font-weight:600; color:var(--c-green); text-transform:uppercase; }
.prog-card__price s { font-size:clamp(0.85rem,1vw,16px); font-weight:500; color:#FF0303; opacity:0.7; text-decoration:line-through; }
.prog-card__actions { display:inline-flex; align-items:center; gap:8px; flex-wrap:wrap; }
.prog-card__buy,
.prog-card__more {
    font-size:clamp(0.8rem,0.9vw,15px); font-weight:500; line-height:1.2;
    display:inline-flex; align-items:center; gap:6px; white-space:nowrap;
    border-radius:30px; padding:8px 18px; cursor:pointer;
    transition:background var(--t2),color var(--t2),border-color var(--t2);
}
.prog-card__buy { background:var(--c-green); color:var(--c-white); border:1px solid var(--c-green); }
.prog-card__buy:hover { background:rgba(144,177,4,0.8); border-color:rgba(144,177,4,0.8); }
.prog-card__buy .icon { width:15px; height:15px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
/* «Подробнее» — контурная, чтобы не спорила с «Купить» за внимание */
.prog-card__more { background:transparent; color:var(--c-teal); border:1px solid var(--c-teal); }
.prog-card__more:hover { background:var(--c-teal); color:var(--c-white); }
.prog-card__more:focus-visible { outline:2px solid var(--c-green-dark); outline-offset:2px; }

/* Правый детальный блок (без карточки-обёртки — прямо на странице) */
.prog__detail { background:transparent; }
.prog-panel { display:none; }
.prog-panel.is-active { display:block; }
.prog-panel__title { font-size:28px; font-weight:600; color:var(--c-teal); margin-bottom:12px; line-height:1.3em; text-transform:uppercase; }
#programs .section-head__title { color:var(--c-teal); }
#programs .section-head__intro { max-width:none; }
.prog-desc { list-style:disc; padding-left:1.3rem; margin-bottom:12px; display:grid; gap:6px; }
.prog-desc li { font-size:18px; font-weight:500; color:#1f1f1f; line-height:1.3em; padding-left:.2rem; }
.prog-desc li::marker { color:#1f1f1f; }
.prog-desc__lead { color:var(--c-green); }
.prog-desc__lead::marker { color:var(--c-green); }
.prog-panel__note { font-size:16px; font-weight:500; color:rgba(31,31,31,.7); line-height:1.3; margin-bottom:20px; }
.prog-panel__btns { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:24px; }
.prog-panel__more { padding-inline:3.5rem; border-radius:40px; font-size:16px; transition:background var(--t2),box-shadow var(--t2),transform var(--t2); }
.prog-panel__more:hover { background:rgba(144,177,4,0.8); transform:none; box-shadow:none; }
.prog-panel__all { padding-inline:2.25rem; background:var(--c-white); color:var(--c-teal); border:1px solid var(--c-teal); box-shadow:none; border-radius:40px; font-size:16px; }
.prog-panel__all:hover { background:var(--c-teal); color:var(--c-white); box-shadow:none; transform:none; }

/* Слайдер фото продукта (coverflow: центр крупнее, бока мельче) */
.prog-slider { position:relative; width:100%; padding:30px 0; overflow:hidden; height:auto !important; }
.prog-slider .swiper-wrapper { align-items:center; height:auto !important; }
.prog-slider .swiper-slide { width:min(240px, 80vw); aspect-ratio:220/310; display:flex; align-items:center; justify-content:center; height:auto; }
.prog-slider .swiper-slide img { width:100%; height:100%; object-fit:contain; display:block; }
.prog-slider-prev, .prog-slider-next { position:absolute; top:50%; transform:translateY(-50%); width:45px; height:45px; display:grid; place-items:center; border-radius:50%; background:var(--c-green); color:var(--c-white); z-index:20; cursor:pointer; transition:background var(--t1); box-shadow:0 2px 8px rgba(0,0,0,.15); }
.prog-slider-prev { left:4px; } .prog-slider-next { right:4px; }
.prog-slider-prev:hover, .prog-slider-next:hover { background:var(--c-green-dark); }
.prog-slider-prev .icon, .prog-slider-next .icon { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }


/* ====================== 11. СПЕЦИАЛИСТЫ ====================== */
/* 10.5 БАННЕР (полноширинное фото) */
.banner { width:100%; line-height:0; position:relative; }
.banner img { width:100%; aspect-ratio:1600/397; object-fit:cover; object-position:center; display:block; }
.banner::after { content:''; position:absolute; inset:0; background:rgba(0,0,0,.24); pointer-events:none; }   /* затемнение как в Фигме */

/* Слайдеры Swiper по умолчанию height:100% — в сетке это раздувает блок.
   Держим высоту по контенту, кроме отзывов (там выравниваем JS-ом). */
.doctors-swiper.swiper,
.prog-slider.swiper,
.reviews-swiper.swiper,
.videos-swiper.swiper,
.contact-swiper.swiper,
.nws-video__grid.swiper { height:auto !important; }
.doctors-swiper { overflow:hidden; }
.doctors__all { padding-inline:25px; transition:background var(--t2),color var(--t2),transform var(--t2),box-shadow var(--t2); }
.doctors__all:hover { background:rgba(144,177,4,0.8); transform:none; box-shadow:none; }
.doctors-swiper .swiper-wrapper { height:auto !important; align-items:flex-start; }
.doctors-swiper .swiper-slide { width:355px; height:auto !important; }
.doctor { display:flex; flex-direction:column; height:auto; }
.doctor__photo { position:relative; aspect-ratio:355/448; border-radius:15px; overflow:hidden; background:linear-gradient(180deg, rgba(199,208,160,.4) 0%, #fff 100%); margin-bottom:20px; }
.doctor__photo img { width:100%; height:100%; object-fit:cover; display:block; }
.doctor__cred { position:absolute; left:10px; bottom:11px; max-width:calc(100% - 20px); background:var(--c-white); border:1px solid var(--c-line-3); border-radius:12px; padding:8px; color:#1f1f1f; font-size:12.5px; font-weight:500; line-height:1.3; }
.doctor__name { font-size:26px; font-weight:600; line-height:1.3; color:#1f1f1f; margin-bottom:10px; min-height:calc(26px * 1.3 * 2); }
.doctor__btn { width:100%; min-height:44px; margin-top:10px; display:flex; align-items:center; justify-content:center; background:var(--c-green); color:var(--c-white); border-radius:100px; font-size:16px; font-weight:500; text-decoration:none; transition:background var(--t2); }
.doctor__btn:hover { background:rgba(144,177,4,0.8); }
.section-foot { margin-top:clamp(1.5rem,3vw,2.25rem); display:flex; justify-content:center; }


/* ====================== 12. ОТЗЫВЫ (карусель зелёных карточек — по Фигме) ====================== */
.reviews__grid {
    display:flex; gap:20px;
    overflow-x:auto; scroll-snap-type:x mandatory; scroll-behavior:smooth;
    -webkit-overflow-scrolling:touch; scrollbar-width:none;
    margin-right:calc(-50vw + 50%); padding-bottom:10px;
}
.reviews__grid.is-grabbable { cursor:grab; }
.reviews__grid.is-dragging { cursor:grabbing; user-select:none; }
.reviews__grid.is-dragging .review-card { pointer-events:none; }
.reviews__grid::-webkit-scrollbar { display:none; }
.review-card {
    background:var(--c-green); color:var(--c-white); border-radius:20px; box-shadow:var(--sh-card);
    padding:20px; display:flex; flex-direction:column; justify-content:flex-start; height:100%; box-sizing:border-box;
}
.review-card__head { display:flex; flex-direction:row; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; }
.review-card__name { font-size:clamp(1.25rem,1.5vw,1.5rem); font-weight:600; color:var(--c-white); line-height:1.3; text-transform:uppercase; }
.review-card__stars { display:inline-flex; gap:3px; color:#454545; }
.review-card__stars img { width:17px; height:16px; display:block; }
.review-star--empty { opacity:.3; }
.review-card__text {
    font-size:clamp(1rem,1.25vw,1.25rem); font-weight:500; line-height:1.35; color:var(--c-white);
    margin:0 0 16px; padding:0;
    display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:8; overflow:hidden;
}
.review-card__clinic { display:inline-block; font-size:12px; font-weight:600; color:rgba(255,255,255,.75); text-transform:uppercase; letter-spacing:.04em; margin-bottom:8px; }
.review-card__foot { margin-top:auto; display:flex; flex-direction:row; align-items:flex-end; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.review-card__date { flex-shrink:0; margin-left:auto; font-size:1.25rem; font-weight:500; color:var(--c-white); }
.review-card__actions { display:flex; flex-wrap:wrap; gap:8px 16px; }
.review-card__action { background:none; border:none; padding:0; cursor:pointer; font-size:14px; font-weight:600; color:rgba(255,255,255,.85); text-decoration:underline; text-underline-offset:3px; transition:color var(--t1); }
.review-card__action:hover { color:var(--c-white); }
.review-card__action--video { display:inline-flex; align-items:center; gap:5px; text-decoration:none; }
.review-card__action--video .icon { width:18px; height:18px; fill:currentColor; }
/* Модалка видео-отзыва */
.modal--video-review .modal__dialog { display:flex; flex-direction:column; grid-template-columns:none; max-width:760px; }
.modal--video-review .modal__content { padding:clamp(1.5rem,3vw,2.5rem); overflow-y:auto; min-height:0; }
.review-video-wrap { position:relative; padding-top:56.25%; margin-top:1rem; border-radius:var(--r-sm); overflow:hidden; background:#000; }
.review-video-frame { position:absolute; inset:0; width:100%; height:100%; border:none; }
.review-video-file { position:absolute; inset:0; width:100%; height:100%; background:#000; }
/* Модалка полного текста отзыва */
.review-full-text { font-size:16px; line-height:1.6; color:var(--c-body); white-space:pre-line; margin-top:.75rem; }

#reviews { overflow:visible; }
/* Стрелки карусели отзывов справа от заголовка (63px, Фигма 2083:955/957) */
#reviews .section-head--row { margin-bottom:72px; }
.app-banner + .section { padding-top:clamp(2.5rem,6.25vw,100px); }   /* баннер → «Отзывы» (Фигма) */
.reviews-nav { display:flex; gap:19px; flex-shrink:0; }
.reviews-nav__btn { width:63px; height:63px; display:grid; place-items:center; border-radius:50%; background:var(--c-green); color:var(--c-white); transition:background var(--t1), opacity var(--t1); cursor:pointer; }
.reviews-nav__btn:hover { background:var(--c-green-dark); }
.reviews-nav__btn .icon { width:32px; height:32px; }
.reviews-nav__btn.swiper-button-disabled { opacity:.4; cursor:default; }
.reviews-swiper { height:auto; }
.reviews-swiper .swiper-slide { height:auto !important; display:flex; }
.reviews-swiper .swiper-wrapper { align-items:stretch; height:auto !important; }
.reviews__carousel { position:relative; }
.reviews__controls { display:flex; justify-content:center; gap:1rem; margin-top:1.5rem; }
.reviews__btn { width:48px; height:48px; display:grid; place-items:center; border-radius:50%; border:1.5px solid var(--c-line-2); color:var(--c-teal); background:var(--c-white); transition:background var(--t1),color var(--t1),border-color var(--t1),opacity var(--t1); }
.reviews__btn:hover { background:var(--c-green); color:var(--c-white); border-color:var(--c-green); }
.reviews__btn:disabled { opacity:.4; cursor:not-allowed; }
.reviews__btn .icon { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }


/* ====================== 13. АКЦИИ ====================== */
.promos__grid { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:clamp(.75rem,1.3vw,1.25rem); }
.promo { background:var(--c-green); border-radius:20px; box-shadow:var(--sh-card); padding:20px; min-height:195px; color:var(--c-white); display:flex; flex-direction:column; gap:12px; position:relative; }
.promo__title { font-size:1.5rem; font-weight:600; color:var(--c-white); line-height:1.2; }
.promo__text { font-size:1.25rem; font-weight:500; line-height:1.3; color:var(--c-white); }
.promo__link { display:inline-flex; align-items:center; gap:.5rem; color:var(--c-white); font-size:1.25rem; font-weight:500; text-decoration:underline; align-self:flex-start; margin-top:auto; }
.promo__link:hover { color:var(--c-white); opacity:.85; }
.promo__link .icon { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.promo__arrow { position:absolute; right:20px; bottom:20px; width:39px; height:39px; border-radius:50%; background:var(--c-white); color:var(--c-green); display:grid; place-items:center; }
.promo__arrow .icon { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }


/* ====================== 14. КОНТАКТЫ ====================== */
.contacts__grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:20px; align-items:stretch; }   /* 480+20+480+20+480 = 1480 (Фигма) */
.contact-box { background:var(--c-green-050); border:none; border-radius:15px; padding:20px; display:flex; flex-direction:column; }
.contact-box--form { justify-content:flex-end; }
.contact-info { display:grid; gap:14px; align-content:center; height:100%; }
.contact-row { display:flex; align-items:flex-start; gap:14px; }
.contact-row__ic { width:18px; height:18px; flex-shrink:0; margin-top:4px; color:#1f1f1f; display:grid; place-items:center; }
.contact-row__ic .icon { width:18px; height:18px; }
.contact-row__label { font-size:13px; color:#8a8a8a; margin-bottom:2px; }
.contact-row__val { font-size:16px; font-weight:500; color:#1f1f1f; line-height:1.4; }
.contact-row__val a { color:#1f1f1f; }
.contact-row__val a:hover { color:var(--c-green-dark); }
/* Форма */
.contact-box--form form { display:flex; flex-direction:column; gap:14px; height:100%; }
.contact-input { width:100%; min-height:56px; padding:0 18px; background:var(--c-white); border:none; border-radius:10px; box-shadow:var(--sh-input); font-size:17px; font-weight:500; color:#1f1f1f; }
.contact-input::placeholder { color:#757575; }
.contact-input:focus { outline:2px solid var(--c-green); outline-offset:-2px; }
.contact-submit { width:100%; min-height:44px; border-radius:100px; background:var(--c-green); color:var(--c-white); font-size:16px; font-weight:500; margin-top:auto; transition:background var(--t2); }
.contact-submit:hover { background:rgba(144,177,4,0.8); }
.contact-box--form .checkbox { font-size:12px; color:#8a8a8a; }
.field { display:flex; flex-direction:column; gap:.35rem; margin-bottom:.85rem; }
.field__label { font-size:var(--fs-sm); font-weight:500; }
.req { color:var(--c-red); }
.input { width:100%; padding:.7rem .85rem; min-height:48px; background:var(--c-white); border:1.5px solid var(--c-line-2); border-radius:var(--r-sm); transition:border-color var(--t1),box-shadow var(--t1); }
.input::placeholder { color:var(--text-3); }
.input:focus { outline:none; border-color:var(--c-green); box-shadow:0 0 0 4px rgba(144,177,4,.15); }
textarea.input { min-height:90px; resize:vertical; }
.checkbox { display:flex; align-items:flex-start; gap:.5rem; font-size:var(--fs-xs); color:var(--text-2); cursor:pointer; line-height:1.4; }
.checkbox input { position:absolute; opacity:0; width:0; height:0; }
.checkbox__box { flex-shrink:0; width:20px; height:20px; margin-top:1px; border:1.5px solid var(--c-line-2); border-radius:5px; background:var(--c-white); display:grid; place-items:center; transition:background var(--t1),border-color var(--t1); }
.checkbox__box::after { content:''; width:10px; height:6px; border-left:2px solid var(--c-white); border-bottom:2px solid var(--c-white); transform:rotate(-45deg) translate(1px,-1px) scale(0); transition:transform var(--t1); }
.checkbox input:checked + .checkbox__box { background:var(--c-green); border-color:var(--c-green); }
.checkbox input:checked + .checkbox__box::after { transform:rotate(-45deg) translate(1px,-1px) scale(1); }
.checkbox--error .checkbox__box { border-color:#c0392b; }
.checkbox--error > span:last-child { color:#c0392b; }
.checkbox a { color:var(--link); text-decoration:underline; }

/* ---- Анкета налогового вычета (модалка #popup-tax) ---------------------------
   Форма длинная, поэтому идёт в одну колонку без картинки и в два поля в ряд. */
.radio { display:flex; align-items:flex-start; gap:.5rem; font-size:var(--fs-sm); color:var(--text-2); cursor:pointer; line-height:1.4; }
.radio input { position:absolute; opacity:0; width:0; height:0; }
.radio__dot { flex-shrink:0; width:20px; height:20px; margin-top:1px; border:1.5px solid var(--c-line-2); border-radius:50%; background:var(--c-white); display:grid; place-items:center; transition:border-color var(--t1); }
.radio__dot::after { content:''; width:10px; height:10px; border-radius:50%; background:var(--c-green); transform:scale(0); transition:transform var(--t1); }
.radio input:checked + .radio__dot { border-color:var(--c-green); }
.radio input:checked + .radio__dot::after { transform:scale(1); }
.radio input:focus-visible + .radio__dot { outline:2px solid var(--c-green-dark); outline-offset:2px; }
.radio-group { display:flex; flex-direction:column; gap:.6rem; margin-bottom:1.1rem; }

.form-block { border:1px solid var(--c-line-4); border-radius:var(--r-sm); padding:1rem 1rem .35rem; margin-bottom:1.1rem; }
.form-block__legend { padding-inline:.4rem; font-size:var(--fs-sm); font-weight:600; color:var(--c-teal); }
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:0 .85rem; }
.form-hint { margin-top:.4rem; font-size:var(--fs-xs); color:var(--text-3); line-height:1.4; }

.years { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.35rem; }
.checkbox--chip { align-items:center; gap:.4rem; padding:.45rem .7rem; border:1.5px solid var(--c-line-2); border-radius:var(--r-pill); font-size:var(--fs-sm); color:var(--text); background:var(--c-white); }
.checkbox--chip:has(input:checked) { border-color:var(--c-green); }
.checkbox--chip .checkbox__box { width:18px; height:18px; margin-top:0; }
/* Галерея-слайдер (Swiper) */
.contact-box--gallery { padding:0; overflow:hidden; border-radius:20px; }
.contact-swiper { position:relative; width:100%; border-radius:20px; overflow:hidden; }
.contact-swiper .swiper-wrapper { aspect-ratio:480/226; }
.contact-swiper .swiper-slide { height:100%; }
.contact-swiper .swiper-slide img { width:100%; height:100%; object-fit:cover; }
.contact-swiper-prev, .contact-swiper-next { position:absolute; top:50%; transform:translateY(-50%); width:45px; height:45px; display:grid; place-items:center; border-radius:50%; background:var(--c-green); color:var(--c-white); z-index:10; box-shadow:var(--sh-sm); transition:background var(--t1); cursor:pointer; }
.contact-swiper-prev { left:12px; }
.contact-swiper-next { right:12px; }
.contact-swiper-prev:hover, .contact-swiper-next:hover { background:var(--c-green-dark); }
.contact-swiper-prev .icon, .contact-swiper-next .icon { width:22px; height:22px; }
/* 3 карточки + блок приложения в одну строку на любой ширине (в Фигме 332+332+332+420) */
.contacts__social { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)) minmax(330px,420px); gap:20px; margin-top:22px; align-items:stretch; }
/* если между блоками контактов и картой стоит ряд соцсетей — большой отступ уходит ему (Фигма) */
.contacts__social + .map-embed { margin-top:23px; }
.social-card { min-width:0; background:var(--c-white); border-radius:20px; box-shadow:var(--sh-sm); padding:0 24px; min-height:100px; display:flex; align-items:center; gap:20px; text-decoration:none; color:var(--c-ink); transition:transform var(--t1), box-shadow var(--t2); }
.social-card:hover { transform:translateY(-2px); box-shadow:var(--sh-md); color:var(--c-ink); }
.social-card__ic { width:40px; height:40px; flex-shrink:0; display:grid; place-items:center; }
.social-card__ic img { width:40px; height:40px; object-fit:contain; }
.social-card__handle { font-size:clamp(1rem,1.4vw,1.5rem); font-weight:500; color:var(--c-body); line-height:1.3; }
.contacts__app { min-width:0; display:flex; flex-direction:column; justify-content:center; gap:.65rem; }
.contacts__app-title { font-size:25px; font-weight:500; color:var(--c-dark); line-height:1.3; }
.contacts__app-title a { color:var(--c-green); text-decoration:underline; }
/* gap 8 + вылет −6: в SVG зашиты рамка и тень, холст на 6px шире кнопки с каждой стороны */
.contacts__app-btns { display:flex; gap:8px; margin-inline:-6px; flex-wrap:nowrap; }
.app-btn { display:inline-flex; align-items:center; transition:transform var(--t1); }
.app-btn:hover { transform:translateY(-2px); }
/* Размер задают атрибуты width/height у самой картинки, в CSS его нет намеренно.
   Холсты у кнопок разные (App Store svg 212×58, RuStore png 1248×324), и любое
   общее правило одну из них ломает: жёсткие 212×58 растягивают RuStore, а
   width:auto выводит png в натуральные 1248px. Атрибуты подобраны так, чтобы
   белая плашка внутри обеих была ровно 45px в высоту и они встали вровень.
   max-width со сбросом height нужны, чтобы на узких экранах пропорция не поехала. */
.app-btn img { max-width:100%; height:auto; display:block; }
/* Карта */
.map-embed { margin-top:clamp(24px,9.1vw,145px); border-radius:20px; overflow:hidden; height:clamp(220px,26vw,396px); }
.map-embed iframe,
.map-embed__ymap { width:100%; height:100%; border:0; display:block; }
.map-placeholder { height:340px; display:grid; place-items:center; text-align:center; padding:2rem; background:linear-gradient(150deg,var(--bg-soft),var(--c-white)); color:var(--text-2); }
.map-placeholder b { color:var(--c-teal); display:block; margin-bottom:.25rem; }


/* ====================== 15. ФУТЕР (1:1 с Тильдой: белый) ====================== */
.footer { background:var(--c-white); border:1px solid var(--c-green); }   /* плашка с рамкой со всех сторон (Фигма 2008:7123) */
.footer__bar { display:flex; align-items:flex-start; gap:clamp(1.5rem,6vw,7rem); padding:40px 0 20px; flex-wrap:nowrap; }
.footer__brand { display:flex; align-items:flex-start; gap:20px; flex-shrink:0; }
.footer__logo { flex-shrink:0; width:50px; height:50px; }
.footer__logo img { width:50px; height:50px; object-fit:contain; }
.footer__copy { color:var(--c-ink-mute); font-size:18px; font-weight:500; line-height:23px; }
.footer__policy { flex-shrink:0; color:var(--c-ink-mute); font-size:18px; font-weight:500; line-height:23px; text-decoration:underline; }
.footer__policy:hover { color:var(--c-green-dark); }
.footer__ooo { max-width:490px; color:var(--c-ink-mute); font-size:18px; font-weight:500; line-height:23px; }   /* 3 строки как в Фигме */
.footer__author { flex-shrink:0; color:var(--c-ink-mute); font-size:18px; font-weight:500; line-height:23px; text-decoration:underline; }
.footer__author:hover { color:var(--c-green-dark); }
.footer__divider { height:1px; background:var(--c-green); width:100%; margin:0; border:none; }
.footer__trademark { padding:30px 0 40px; color:var(--c-ink-mute); font-size:18px; font-weight:500; line-height:23px; }


/* ====================== 16. ВСПЛЫВАЮЩИЕ ФОРМЫ ====================== */
.modal { position:fixed; inset:0; z-index:var(--z-modal); display:grid; place-items:center; padding:1rem; opacity:0; visibility:hidden; transition:opacity var(--t2),visibility var(--t2); }
.modal.is-open { opacity:1; visibility:visible; }
.modal__overlay { position:absolute; inset:0; background:rgba(2,43,40,.55); backdrop-filter:blur(3px); }
.modal__dialog { position:relative; z-index:1; width:100%; max-width:840px; background:var(--c-white); border-radius:var(--r-lg); box-shadow:var(--sh-lg); overflow:hidden; display:grid; grid-template-columns:.8fr 1fr; max-height:calc(100dvh - 2rem); }
/* Длинная анкета: картинка сбоку не помещается, отдаём всю ширину форме.
   minmax(0,1fr) обязателен — иначе grid-строка тянется по содержимому, max-height
   у диалога перестаёт работать и overflow-y у .modal__content не даёт прокрутки. */
.modal__dialog--wide { grid-template-columns:1fr; grid-template-rows:minmax(0,1fr); max-width:760px; }
.modal__media { background:var(--c-green-050); }
.modal__media img { width:100%; height:100%; object-fit:cover; }
.modal__content { padding:clamp(1.5rem,3vw,2.5rem); overflow-y:auto; }
.modal__close { position:absolute; top:14px; right:14px; width:42px; height:42px; display:grid; place-items:center; border-radius:50%; background:rgba(255,255,255,.85); color:var(--c-ink); z-index:2; }
.modal__close:hover { background:var(--c-white); }
.modal__title { font-size:var(--fs-h2); font-weight:600; margin-bottom:.5rem; padding-right:2rem; }
.modal__subtitle { color:var(--text-2); margin-bottom:1.5rem; font-size:var(--fs-sm); }

/* ====================== 26.10 КОНТАКТЫ КЛИНИКИ (contacts.html) ====================== */
/* Кадр Фигмы 2098:2425 — блоки те же, отличаются только отступы и высота карточек */
.ct-intro { padding-top:calc(var(--header-h) + 45px); }
.ct-intro__lead { margin-top:20px; max-width:769px; font-size:clamp(1rem,1.5vw,24px); font-weight:500; line-height:1.3; color:var(--c-body); }
.section--ct-contacts { padding-top:20px; }
.section--ct-contacts .contacts__grid { min-height:240px; }
.section--ct-contacts .contacts__social { margin-top:36px; }
.section--ct-contacts .contacts__social + .map-embed { margin-top:clamp(2.5rem,6.25vw,100px); }

/* Модалка «Товар добавлен в корзину» — кадр Фигмы 2098:2596, 840×416, паддинг 40 */
.cart-modal {
    position:relative; z-index:1; width:100%; max-width:840px;
    padding:clamp(20px,2.5vw,40px); background:var(--c-white); border-radius:30px; box-shadow:var(--sh-lg);
    max-height:calc(100dvh - 2rem); overflow-y:auto;
}
.cart-modal__close {
    position:absolute; top:20px; right:24px; width:44px; height:44px;
    display:grid; place-items:center; color:var(--c-line-5); transition:color var(--t1);
}
.cart-modal__close svg { width:22px; height:22px; }
.cart-modal__close:hover { color:var(--c-teal); }
.cart-modal__title { font-size:var(--fs-h1); font-weight:600; line-height:1.3; color:var(--c-teal); padding-right:44px; }

/* отказ сервера при добавлении в корзину */
.cart-modal__error {
    margin-top:20px; padding:14px 18px; border-radius:10px;
    background:color-mix(in srgb, var(--c-red) 8%, transparent);
    border:1px solid var(--c-red); color:var(--c-red-dark);
    font-size:18px; font-weight:500; line-height:1.4;
}
.cart-modal__error[hidden] { display:none; }

.cart-modal__item {
    margin-top:20px; padding-top:30px; border-top:1px solid var(--c-line-5);
    display:flex; align-items:center; gap:20px;
}
.cart-modal__thumb {
    flex:0 0 auto; width:97px; height:97px; display:grid; place-items:center; padding:6px;
    border:1px solid var(--c-line-5); border-radius:10px;
}
.cart-modal__thumb img { max-width:100%; max-height:83px; width:auto; height:auto; object-fit:contain; }
.cart-modal__name { flex:1 1 auto; min-width:0; font-size:clamp(1rem,1.38vw,22px); font-weight:500; line-height:1.3; color:var(--c-teal); }
.cart-modal__price { flex:0 0 auto; margin-left:20px; font-size:clamp(1rem,1.38vw,22px); font-weight:500; line-height:1.3; color:var(--c-teal); white-space:nowrap; }
.cart-modal__remove {
    flex:0 0 auto; margin-left:20px; width:44px; height:44px; display:grid; place-items:center;
    background:var(--c-grey-050); border-radius:50%; color:var(--c-line-5); transition:color var(--t1),background var(--t1);
}
.cart-modal__remove svg { width:18px; height:18px; }
.cart-modal__remove:hover { background:var(--c-grey-050); color:var(--c-red); }

.cart-qty { flex:0 0 auto; display:flex; align-items:center; gap:10px; }
.cart-qty__btn {
    width:31px; height:31px; display:grid; place-items:center;
    border:1px solid var(--c-line-5); border-radius:50%;
    font-size:20px; line-height:1; color:var(--c-line-5); transition:color var(--t1),border-color var(--t1);
}
.cart-qty__btn:hover { color:var(--c-green); border-color:var(--c-green); }
.cart-qty__val { min-width:20px; text-align:center; font-size:clamp(1rem,1.38vw,22px); font-weight:500; color:var(--c-teal); }

.cart-modal__actions { margin-top:clamp(24px,4vw,64px); display:flex; flex-wrap:wrap; gap:14px; }
.cart-modal__btn { flex:1 1 260px; min-height:60px; border-radius:100px; font-size:clamp(1rem,1.25vw,20px); }
.cart-modal__btn--outline { background:var(--c-white); color:var(--c-green); border-color:var(--c-green); }
.cart-modal__btn--outline:hover { background:var(--c-green); color:var(--c-white); box-shadow:none; }


/* ====================== 17. СТРАНИЦА «О КЛИНИКЕ» ====================== */
/* 17.1 Шапка страницы: два кремовых блока 1480×220 / 1480×246 */
.about-intro { padding-top:calc(var(--header-h) + 45px); padding-bottom:clamp(1rem,4.7vw,75px); }
.about-intro__card { background:var(--bg-soft); border-radius:30px; padding:30px; }
.about-intro__card--text { margin-top:30px; }
.about-intro__title { font-size:clamp(2.25rem,5vw,80px); line-height:1; font-weight:600; color:var(--c-teal); max-width:872px; }
.about-intro__lead { font-size:clamp(1rem,1.5vw,24px); font-weight:500; line-height:1.3; color:var(--c-body); max-width:990px; }
.about-intro__lead + .about-intro__lead { margin-top:1.3em; }

/* 17.2 «Клиника, которой можно доверять» — 7 нумерованных карточек */
.trust__grid { display:grid; grid-template-columns:460fr 500fr 480fr; gap:20px; align-items:stretch; }
.trust-card {
    display:flex; flex-direction:column; min-height:188px; padding:20px;
    background:var(--c-white); border:1px solid var(--c-line-4); border-radius:20px; box-shadow:var(--sh-card);
}
.trust-card--tall { grid-row:span 3; }
.trust-card__num {
    display:grid; place-items:center; width:70px; height:35px; flex-shrink:0;
    background:var(--c-green); color:var(--c-white); border-radius:20px;
    font-size:24px; font-weight:600; line-height:1;
}
.trust-card__title { margin-top:20px; font-size:24px; font-weight:600; line-height:1.3; color:var(--c-body); }
.trust-card__text { margin-top:10px; font-size:20px; font-weight:500; line-height:1.3; color:var(--c-body); }
.trust-card--tall .trust-card__text { margin-bottom:24px; }
.trust-card__btn { margin-top:auto; align-self:flex-start; min-width:172px; }

/* 17.3 Методология: две широкие карточки «картинка + текст» */
.method__all { padding-inline:25px; transition:background var(--t2),transform var(--t2),box-shadow var(--t2); }
.method__all:hover { background:rgba(144,177,4,0.8); transform:none; box-shadow:none; }
.method__list { display:grid; gap:30px; }
.method-card {
    display:flex; gap:30px; padding:20px;
    background:var(--c-white); border:1px solid var(--c-line-4); border-radius:20px; box-shadow:var(--sh-card);
}
.method-card__media { flex:0 0 347px; height:307px; align-self:flex-start; border-radius:10px; overflow:hidden; }
.method-card__media img { width:100%; height:100%; object-fit:cover; }
.method-card__body { display:flex; flex-direction:column; min-width:0; padding-top:10px; }
.method-card__title { font-size:32px; font-weight:600; line-height:1.3; text-transform:uppercase; color:var(--c-body); }
.method-card__text { margin-top:20px; margin-bottom:24px; max-width:891px; font-size:24px; font-weight:500; line-height:1.3; color:var(--c-body); }
.method-card__btn { margin-top:auto; align-self:flex-start; padding-inline:35px; }

/* 17.4 Научная база: полноширинная полоса с монографией */
.science { background:var(--bg-soft); padding-block:40px; margin-top:clamp(2rem,7.5vw,120px); margin-bottom:clamp(1rem,4.7vw,75px); }
.science__inner { display:flex; align-items:flex-start; justify-content:space-between; gap:40px; }
.science__content { max-width:1086px; }
.science__title { font-size:clamp(2rem,4.4vw,70px); line-height:1.15; font-weight:600; color:var(--c-body); }
.science__text { margin-top:30px; font-size:clamp(1rem,1.6vw,26px); font-weight:500; line-height:1.3; color:var(--c-body); }
.science__side { position:relative; flex:0 0 327px; align-self:stretch; }
.science__book { position:absolute; right:8px; top:-84px; width:319px; height:343px; max-width:none; object-fit:contain; }
.science__book img { width:100%; height:100%; display:block; object-fit:contain; }
.science__btn { position:absolute; right:0; bottom:0; width:246px; min-height:44px; border-radius:40px; }

/* 17.5 ImmunoHealth™ в цифрах */
.section-head__title--teal { color:var(--c-teal); }
.numbers__grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; align-items:stretch; }
.numbers__list { display:grid; gap:20px; }
.num-row {
    position:relative; display:flex; align-items:center; gap:20px; min-height:121px; padding:16px 30px;
    border-radius:20px; background:linear-gradient(90deg,var(--c-green-grad) 0%,var(--c-white) 100%);
}
.num-row::before { content:''; position:absolute; left:0; top:0; bottom:0; width:2px; background:var(--c-green); }
.num-row__val { flex-shrink:0; font-size:clamp(2rem,3.75vw,60px); font-weight:600; line-height:1; color:var(--c-green); }
.num-row__label { font-size:clamp(.9375rem,1.25vw,20px); font-weight:500; line-height:1.3; color:var(--c-body); }
.numbers__map { display:grid; place-items:center; padding:6px 40px; border:1px solid var(--c-line-4); border-radius:20px; }
.numbers__map img { width:100%; height:auto; }

/* 17.6 Соцсети: полоса с кнопками */
.subscribe { background:var(--bg-soft); padding-block:40px; margin-top:clamp(2rem,4.7vw,75px); margin-bottom:clamp(1rem,4.7vw,75px); }
.subscribe__inner { display:flex; align-items:flex-start; justify-content:space-between; gap:40px; }
.subscribe__title { font-size:var(--fs-h1); line-height:1.3; font-weight:600; color:var(--c-body); }
.subscribe__text { margin-top:20px; max-width:796px; font-size:clamp(1rem,1.6vw,26px); font-weight:500; line-height:1.3; color:var(--c-body); }
/* Служебная строка правки адреса (ih_link_edit): на публичной странице её нет,
   печатается только когда в панели включены включаемые области */
.edit-link {
    max-width:360px; padding:5px 9px;
    background:var(--c-white); border:1px dashed var(--c-line-3); border-radius:8px;
    font-size:13px; font-weight:500; line-height:1.4; color:var(--c-body); word-break:break-all;
}
.edit-link__label { font-weight:600; color:var(--c-teal); }
.subscribe__links { display:flex; flex-direction:column; gap:15px; flex-shrink:0; }
.subscribe__btn { width:249px; min-height:44px; padding:10px 20px; border-radius:40px; }
.subscribe__ic { width:20px; height:20px; flex-shrink:0; object-fit:contain; }
.subscribe__ic img { width:100%; height:100%; display:block; object-fit:contain; }


/* ====================== 18. СТРАНИЦА «МЕТОДОЛОГИЯ» ====================== */
/* Кадр Фигмы 2008:7487. Отступы кадра: hero→карточка 100, карточка→текст 50,
   текст→карточка 150, карточка→заголовок 100, заголовок→сетка 40, сетка→полоса 110 */
.mtd-intro { padding-top:calc(var(--header-h) + 45px); padding-bottom:clamp(1rem,6.25vw,100px); }

/* 18.1 Две широкие карточки «картинка 460 + текст» (без кнопок) */
.mtd-card--wide .method-card__media { flex:0 0 460px; height:auto; }
.mtd-card--wide .method-card__media img { width:100%; height:auto; }
.mtd-card--wide .method-card__text { margin-bottom:0; }
.mtd-lead { margin-top:clamp(1.5rem,3.125vw,50px); max-width:1404px; font-size:clamp(1rem,1.5vw,24px); font-weight:500; line-height:1.3; color:var(--c-body); }
.mtd-lead p { line-height:1.3; }        /* перебиваем глобальное p{line-height:1.5} */
.mtd-lead p + p { margin-top:1.3em; }
.mtd-lead b { font-weight:600; }
.mtd-lead .txt-green { font-weight:600; }
.mtd-card--second { margin-top:clamp(2rem,9.4vw,150px); }

/* 18.2 «Технологии, которые лежат в основе…» + сетка преимуществ */
.mtd-tech-title { margin-top:clamp(2rem,6.25vw,100px); max-width:1000px; font-size:clamp(1.375rem,2vw,32px); font-weight:600; line-height:1.3; color:var(--c-teal); }
.mtd-grid { margin-top:40px; display:grid; grid-template-columns:460fr 500fr 480fr; gap:20px; align-items:stretch; }
.mtd-item {
    display:flex; flex-direction:column; padding:20px;
    background:var(--c-white); border:1px solid var(--c-line-4); border-radius:20px; box-shadow:var(--sh-card);
}
.mtd-item__ic { width:40px; height:auto; display:block; }
.mtd-item__ic img { width:100%; height:auto; display:block; }
.mtd-item__title { margin-top:20px; font-size:24px; font-weight:600; line-height:1.3; color:var(--c-body); }
.mtd-item__text { margin-top:10px; font-size:20px; font-weight:500; line-height:1.3; color:var(--c-body); }
.mtd-photo { border:1px solid var(--c-line-4); border-radius:20px; overflow:hidden; }
.mtd-photo img { width:100%; height:100%; object-fit:cover; display:block; }

/* 18.3 Хвост страницы: полоса соцсетей ближе к сетке, карта ближе к футеру */
.subscribe--mtd { margin-top:clamp(2rem,6.9vw,110px); }


/* ====================== 19. СТРАНИЦА «НАУЧНАЯ БАЗА» ====================== */
/* Кадр Фигмы 2008:7583. Две кремовые плашки + монография поверх них справа */
.sci-intro { padding-top:calc(var(--header-h) + 45px); }
.sci-intro__wrap { position:relative; }
.sci-hero { display:flex; align-items:flex-start; justify-content:space-between; gap:30px; }
.sci-btn { flex-shrink:0; width:246px; min-height:44px; border-radius:40px; }
.sci-note__lead { max-width:717px; font-size:clamp(1rem,1.625vw,26px); font-weight:500; line-height:1.3; color:var(--c-body); }
.sci-note__text { margin-top:20px; max-width:872px; font-size:clamp(.9375rem,1.375vw,22px); font-weight:500; line-height:1.3; color:var(--c-body); }
.sci-book { position:absolute; right:107px; top:63px; z-index:1; width:461px; height:452px; max-width:none; object-fit:cover; }
.sci-book img { width:100%; height:100%; display:block; object-fit:contain; }
.sci-hero .sci-btn { position:relative; z-index:2; }   /* кнопка поверх монографии */

/* 19.1 «О чем эта книга?»: текст + список слева, разворот книги справа */
.sci-about { padding-top:clamp(2rem,6.25vw,100px); padding-bottom:clamp(2.5rem,4.7vw,75px); }
.sci-about__title { font-size:var(--fs-h1); font-weight:600; line-height:1.3em; color:var(--c-teal); }
.sci-grid { margin-top:20px; display:grid; grid-template-columns:711fr 730fr; gap:39px; align-items:start; }
.sci-lead { font-size:clamp(1rem,1.25vw,20px); font-weight:500; line-height:1.3; color:var(--c-body); }
.sci-list {
    position:relative; margin-top:30px; padding:30px 20px 22px; border-radius:20px;
    background:linear-gradient(90deg,var(--c-green-grad) 0%,var(--c-white) 100%);
    display:grid; gap:30px;
}
.sci-list::before { content:''; position:absolute; left:0; top:0; bottom:0; width:2px; background:var(--c-green); }
.sci-list__item { display:flex; align-items:center; gap:10px; }
.sci-list__ic { flex-shrink:0; width:15px; height:12px; }
.sci-list__ic img { width:100%; height:100%; display:block; }
.sci-list__text { max-width:557px; font-size:clamp(1rem,1.25vw,20px); font-weight:500; line-height:1.3; color:var(--c-body); }
.sci-photo { border:1px solid var(--c-line-4); border-radius:20px; overflow:hidden; aspect-ratio:730 / 517; }
.sci-photo img { width:100%; height:100%; object-fit:cover; }
.sci-outro { margin-top:clamp(2rem,9.4vw,150px); display:flex; align-items:flex-end; justify-content:space-between; gap:40px; }
.sci-outro__text { max-width:1093px; font-size:clamp(1.25rem,2vw,32px); font-weight:500; line-height:1.3; color:var(--c-body); }
/* 19.2 Хвост: карточки «можно доверять» → полоса соцсетей 123px, полоса → контакты 57px */
.subscribe--sci { margin-top:clamp(1rem,3vw,48px); margin-bottom:0; }
.section--sci-contacts { padding-top:clamp(1.5rem,3.6vw,57px); }


/* ====================== 20. СТРАНИЦА «УСПЕШНО ЛЕЧИМ» ====================== */
/* Кадр Фигмы 2008:7194 */
.trt-intro { padding-top:calc(var(--header-h) + 45px); padding-bottom:clamp(2rem,6.25vw,100px); }
.trt-intro__lead { margin-top:20px; max-width:921px; font-size:clamp(1rem,1.5vw,24px); font-weight:500; line-height:1.3; color:var(--c-body); }

/* 20.1 Симптомы иммунного конфликта: вкладки категорий */
.trt-title { font-size:var(--fs-h1); font-weight:600; line-height:1.3em; color:var(--c-teal); }
.trt-tabs { margin-top:40px; display:grid; grid-template-columns:480px minmax(0,1fr); gap:30px; align-items:start; }
.trt-tabs__list { display:grid; gap:20px; align-content:start; }
.trt-tab {
    display:flex; align-items:center; gap:10px; width:100%; min-height:76px; padding:15px 20px;
    background:var(--c-white); border:1px solid var(--c-green); border-radius:20px; box-shadow:var(--sh-card);
    font-size:24px; font-weight:600; line-height:1.5; text-transform:uppercase; color:var(--c-body); text-align:left;
    transition:background var(--t2),color var(--t2),border-color var(--t2);
}
.trt-tab__ic { flex-shrink:0; width:30px; height:30px; }
.trt-tab:hover { border-color:var(--c-green-dark); }
.trt-tab.is-active { background:var(--c-green); border-color:var(--c-line-4); color:var(--c-white); }
.trt-tab.is-active .trt-tab__ic { filter:brightness(0) invert(1); }
.trt-panels { padding-top:20px; }   /* заголовок панели вровень с подписью первой вкладки */
.trt-panel__title { font-size:24px; font-weight:600; line-height:1.5; text-transform:uppercase; color:var(--c-body); }
.trt-panel__sub { margin-top:20px; max-width:490px; font-size:20px; font-weight:500; line-height:1.3; color:rgba(31,31,31,.7); }
.trt-panel__text { margin-top:20px; max-width:906px; font-size:20px; font-weight:500; line-height:1.3; color:var(--c-body); }
.trt-panel__text p + p { margin-top:1.3em; }
.trt-note { margin-top:30px; max-width:946px; padding:20px; background:var(--bg-soft); border-radius:30px; }
.trt-note p { max-width:906px; font-size:20px; font-weight:500; line-height:1.3; color:var(--c-body); }
.trt-btn { min-height:56px; padding-inline:25px; border-radius:40px; font-size:20px; }
.trt-panel__btn { margin-top:36px; }

/* 20.2 Заболевания, при которых нужен тест */
.trt-diseases { margin-top:clamp(2.5rem,9.4vw,150px); display:grid; grid-template-columns:658fr 702fr; gap:clamp(2rem,7.5vw,120px); align-items:start; }
.trt-diseases__btn { margin-top:clamp(1.5rem,5.7vw,91px); }
/* галочки вынесены влево за колонку текста — как в макете (x=809 против x=838) */
.trt-diseases__item { position:relative; font-size:clamp(1rem,1.25vw,20px); font-weight:500; line-height:1.5; color:var(--c-body); }
.trt-diseases__ic { position:absolute; left:-29px; top:10px; width:15px; height:11px; }
.trt-diseases__ic img { width:100%; height:100%; display:block; }

/* 20.3 Профилактика: две карточки с фото */
.trt-prevent { margin-top:clamp(2.5rem,9.4vw,150px); }
.trt-prevent__grid { margin-top:24px; display:grid; grid-template-columns:702fr 740fr; gap:38px; align-items:stretch; }
.trt-card {
    position:relative; display:flex; gap:30px; padding:20px; border-radius:20px;
    background:linear-gradient(90deg,var(--c-green-grad) 0%,var(--c-white) 100%);
}
.trt-card::before { content:''; position:absolute; left:0; top:0; bottom:0; width:2px; background:var(--c-green); }
.trt-card__media { flex:0 0 237px; height:186px; border-radius:20px; overflow:hidden; }
.trt-card__media img { width:100%; height:100%; object-fit:cover; }
.trt-card__title { font-size:24px; font-weight:600; line-height:1.5; text-transform:uppercase; color:var(--c-body); }
.trt-card__sub { margin-top:10px; font-size:20px; font-weight:600; line-height:1.3; color:var(--c-body); }
.trt-card__list { margin-top:10px; padding-top:10px; border-top:1px solid var(--c-green); }
.trt-card__list li { position:relative; padding-left:16px; font-size:18px; font-weight:500; line-height:1.3; color:var(--c-body); }
.trt-card__list li + li { margin-top:.15em; }
.trt-card__list li::before { content:'•'; position:absolute; left:0; color:var(--c-body); }
/* тело карточки — колонка, чтобы «Подробнее» прижималось к низу справа */
.trt-card__body { flex:1; min-width:0; display:flex; flex-direction:column; }
.trt-card__more {
    margin-top:auto; padding-top:14px; align-self:flex-end;
    display:inline-flex; align-items:center; gap:10px;
    font-size:20px; font-weight:400; line-height:1.3; color:var(--c-body);
    transition:color var(--t1),gap var(--t1);
}
.trt-card__more:hover { color:var(--c-green); gap:16px; }
.trt-card__more .icon { width:20px; height:20px; }

/* Модалка без картинки: только текст (профилактика для взрослых и детей) */
.modal--text .modal__dialog { display:flex; flex-direction:column; grid-template-columns:none; max-width:760px; }
.modal--text .modal__content { padding:clamp(1.75rem,3vw,40px); overflow-y:auto; min-height:0; }
.modal--text .modal__title { font-size:22px; font-weight:600; line-height:1.35; margin-bottom:1rem; }
.modal--text p { font-size:16px; font-weight:400; line-height:1.5; color:var(--c-body); }
.modal--text p + p { margin-top:.75rem; }
.modal--text ul { margin:.75rem 0; display:grid; gap:.6rem; }
.modal--text li { position:relative; padding-left:20px; font-size:16px; line-height:1.5; color:var(--c-body); }
.modal--text li::before { content:'•'; position:absolute; left:4px; color:var(--c-green); }

/* Модалка «Справка для налогового вычета» — широкий диалог без картинки */
.modal__dialog--wide { display:flex; flex-direction:column; grid-template-columns:none; max-width:640px; overflow-y:auto; }
.modal__dialog--wide .modal__content { padding:clamp(1.5rem,3vw,2.5rem); min-height:0; overflow-y:auto; }
/* Радиокнопки */
.radio-group { display:flex; flex-wrap:wrap; gap:.5rem 1.5rem; margin-bottom:.85rem; }
.radio { display:inline-flex; align-items:center; gap:.55rem; cursor:pointer; font-size:15px; color:var(--c-body); }
.radio input { position:absolute; opacity:0; width:0; height:0; }
.radio__dot { flex-shrink:0; width:18px; height:18px; border-radius:50%; border:2px solid var(--c-line-2); display:grid; place-items:center; transition:border-color var(--t1); }
.radio__dot::after { content:''; width:8px; height:8px; border-radius:50%; background:var(--c-green); opacity:0; transition:opacity var(--t1); }
.radio input:checked ~ .radio__dot { border-color:var(--c-green); }
.radio input:checked ~ .radio__dot::after { opacity:1; }
/* Двухколонный ряд полей */
.field-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
/* Группа полей (fieldset) */
.form-block { border:1.5px solid var(--c-line-2); border-radius:var(--r-sm); padding:1rem; margin-bottom:.85rem; }
.form-block__legend { font-size:var(--fs-sm); font-weight:600; color:var(--c-dark); padding:0 .35rem; }
/* Подсказка под полем */
.form-hint { font-size:13px; color:var(--c-ink-3); margin-top:.3rem; line-height:1.4; }
/* Чекбокс-чип (выбор года) */
.years { display:flex; flex-wrap:wrap; gap:.5rem; margin:.4rem 0 .25rem; }
.checkbox--chip { gap:0; }
.checkbox--chip .checkbox__box { display:none; }
.checkbox--chip > span:last-child { padding:.35rem .85rem; border-radius:20px; border:1.5px solid var(--c-line-2); font-size:14px; font-weight:500; transition:background var(--t1),border-color var(--t1),color var(--t1); cursor:pointer; }
.checkbox--chip input:checked ~ span:last-child { background:var(--c-green); border-color:var(--c-green); color:var(--c-white); }

/* 20.4 Зелёная полоса «Профилактика начинается с понимания» */
.trt-cta { margin-top:clamp(2.5rem,10.3vw,165px); padding-block:40px; background:var(--c-green); }
.trt-cta__inner { display:flex; align-items:center; justify-content:space-between; gap:40px; }
.trt-cta__title { font-size:var(--fs-h1); font-weight:600; line-height:1.3em; color:var(--c-white); }
.trt-cta__text { margin-top:20px; max-width:1134px; font-size:clamp(1rem,1.5vw,24px); font-weight:500; line-height:1.3; color:var(--c-white); }
.trt-cta__btn { flex-shrink:0; background:var(--c-white); color:var(--c-body); }
.trt-cta__btn:hover { background:var(--c-green-050); color:var(--c-body); }
.trt-reviews { margin-top:clamp(2.5rem,7.7vw,123px); }
.trt-reviews__title { margin-bottom:40px; }


/* ====================== 21. СТРАНИЦА «УСЛУГИ» ====================== */
/* Кадр Фигмы 2008:5480 */
/* Отступ снизу убран: зазор до «Тестов» целиком даёт верхний padding секции
   #programs — 75px на десктопе и до 40px на узких экранах (clamp сам сожмёт). */
.sv-intro { padding-top:calc(var(--header-h) + 45px); padding-bottom:0; }
.sv-intro .about-intro__title { max-width:630px; }                       /* заголовок в две строки, как в макете */
.sv-intro .about-intro__card { background:var(--c-green-grad); }         /* на этой странице плашка зеленее: #eff9de */
.sv-divider { height:1px; margin:0; border:none; background:var(--c-line-4); }
.sv-title { font-size:var(--fs-h1); font-weight:600; line-height:1.3em; color:var(--c-teal); }

/* 21.1 Услуги лаборатории: фильтр-чипы + карточки анализов */
.sv-grid { margin-top:60px; display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.sv-card {
    display:flex; flex-direction:column; min-height:166px; padding:20px;
    background:var(--c-white); border:1px solid var(--c-line-4); border-radius:20px; box-shadow:var(--sh-card);
}
.sv-card__head { display:flex; align-items:flex-start; justify-content:space-between; gap:15px; }
.sv-card__name { font-size:24px; font-weight:500; line-height:1.4; }
.sv-card__badge {
    flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; min-width:84px; min-height:32px; padding:4px 10px;
    background:var(--c-green); border-radius:20px; color:var(--c-white); font-size:18px; font-weight:500; line-height:1.3;
}
.sv-card__bio { margin-top:12px; font-size:18px; font-weight:500; line-height:1.3; color:var(--c-body); }
.sv-card__foot { margin-top:auto; padding-top:14px; border-top:1px solid var(--c-line-4); display:flex; align-items:center; gap:27px; }
/* цена и срок — тёмным текстом, зелёная только иконка (Фигма) */
.sv-card__val { display:inline-flex; align-items:center; gap:7px; font-size:24px; font-weight:500; line-height:1.3; color:var(--c-body); }
.sv-card__ic { width:20px; height:20px; flex-shrink:0; }
/* «Заказать ↗» — тёмно-бирюзовый с подчёркиванием; стрелка повёрнута на −45°, как в макете */
.sv-card__order { margin-left:auto; display:inline-flex; align-items:center; gap:6px; font-size:20px; font-weight:500; color:var(--c-teal); text-decoration:underline; text-underline-offset:3px; }
.sv-card__order img { width:18px; height:13px; transform:rotate(-45deg); }
.sv-card__order:hover { color:var(--c-green-dark); }

/* 21.2 Баннер «Комплексные обследования» */
.sv-banner { position:relative; margin-top:clamp(2rem,6.25vw,100px); min-height:397px; display:flex; align-items:center; overflow:hidden; }
/* object-fit должен висеть на самой картинке: .sv-banner__bg — это <div>-обёртка,
   на неё свойство не действует, и фото выводилось в натуральную величину.
   Сделано как у .cns-banner__bg и .app-banner__bg. */
.sv-banner__bg { position:absolute; inset:0; }
.sv-banner__bg img { width:100%; height:100%; display:block; object-fit:cover; object-position:center; }
.sv-banner__inner { position:relative; }
.sv-banner__title { max-width:1328px; font-size:clamp(1.75rem,3.75vw,60px); font-weight:600; line-height:1.3; color:var(--c-white); }
.sv-banner__btn { margin-top:33px; width:210px; min-height:44px; border-radius:40px; background:var(--c-white); color:var(--c-body); }
.sv-banner__btn:hover { background:var(--c-green-050); color:var(--c-body); }

/* 21.3 Консультации специалистов */
.sv-doctors { margin-top:clamp(2rem,6.25vw,100px); }
.sv-doctors__note { margin-top:10px; font-size:18px; font-weight:500; line-height:1.3; color:var(--c-body); }
.sv-doctors__grid { margin-top:30px; display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.sv-doc {
    display:flex; gap:20px; padding:20px;
    background:var(--c-white); border:1px solid var(--c-line-4); border-radius:20px; box-shadow:var(--sh-card);
}
.sv-doc__media { flex:0 0 190px; align-self:flex-start; border-radius:20px; overflow:hidden; background:var(--c-green-050); }
.sv-doc__media img { width:100%; height:auto; display:block; }
.sv-doc__name { font-size:24px; font-weight:600; line-height:1.3; text-transform:uppercase; color:var(--c-body); }
.sv-doc__spec { margin-top:10px; font-size:18px; font-weight:500; line-height:1.3; color:rgba(31,31,31,.7); }
.sv-doc__list { margin-top:22px; display:grid; gap:10px; }
.sv-doc__item { display:flex; align-items:flex-start; gap:11px; font-size:20px; font-weight:500; line-height:1.3; color:var(--c-body); }
.sv-doc__ic { flex-shrink:0; width:15px; height:11px; margin-top:7px; }
.sv-doc__btn { margin-top:20px; align-self:flex-start; width:210px; min-height:44px; border-radius:40px; }

/* 21.4 УЗИ и услуги бренд-шефа */
.sv-usi { margin-top:clamp(2.5rem,9.4vw,150px); }
.sv-usi .sv-grid { margin-top:40px; }
.sv-chef { margin-top:clamp(2.5rem,9.4vw,150px); }
.sv-chef__grid { margin-top:40px; display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.sv-chef-card {
    display:flex; flex-direction:column; min-height:410px; padding:20px;
    background:var(--c-white); border:1px solid var(--c-line-4); border-radius:20px; box-shadow:var(--sh-card);
}
.sv-chef-card__num {
    display:grid; place-items:center; width:70px; height:35px; flex-shrink:0;
    background:var(--c-green); color:var(--c-white); border-radius:20px; font-size:24px; font-weight:600; line-height:1;
}
.sv-chef-card__title { margin-top:30px; font-size:24px; font-weight:600; line-height:1.3; text-transform:uppercase; color:var(--c-teal); }
.sv-chef-card__text { margin-top:20px; font-size:20px; font-weight:500; line-height:1.3; color:var(--c-body); }
.sv-chef-card__foot { margin-top:auto; padding-top:20px; display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.sv-chef-card__price { font-size:28px; font-weight:600; line-height:1.3; color:var(--c-green); }
.sv-chef-card__btn { width:210px; min-height:44px; border-radius:40px; }

/* 21.5 Контакты страницы: карта сразу под блоками (Фигма) */
.section--sv-contacts .map-embed { margin-top:20px; }


/* ====================== 22. СТРАНИЦА ПРОГРАММЫ (ТЕСТА) ====================== */
/* Кадр Фигмы 2008:6841 */
.pg-intro { padding-top:calc(var(--header-h) + 44px); }
.pg-intro__card { background:var(--bg-soft); border-radius:30px; padding:30px; }
.pg-intro__title { font-size:clamp(2rem,5vw,80px); line-height:1; font-weight:600; color:var(--c-teal); }

/* 22.1 Карточка теста: видео + состав + кнопки */
.pg-card {
    margin-top:30px; display:grid; grid-template-columns:591fr 799fr; gap:30px; padding:30px;
    background:var(--c-white); border:1px solid var(--c-line-4); border-radius:20px; box-shadow:var(--sh-card);
}
/* видео тянется на всю высоту правой колонки (текст + кнопки) */
.pg-card__media { position:relative; align-self:stretch; min-height:460px; border-radius:20px; overflow:hidden; }
.pg-card__media img { width:100%; height:100%; object-fit:cover; }
/* Видео на всю высоту блока, как фото (cover). Лишнее по бокам обрежется. */
.pg-card__media--video { background:var(--c-teal); }
.pg-card__media--video video { width:100%; height:100%; display:block; object-fit:cover; background:var(--c-teal); }
/* после запуска остаются штатные элементы управления браузера, наш плей убираем */
.pg-card__media--video.is-playing .pg-card__play { display:none; }
.pg-card__play {
    position:absolute; left:50%; top:50%; display:grid; place-items:center;
    width:50px; height:50px; border-radius:12px; background:var(--c-green); color:var(--c-white);
    transform:translate(-50%,-50%);
    transition:background var(--t2),transform var(--t2);
}
.pg-card__play:hover { background:var(--c-green-dark); transform:translate(-50%,-50%) scale(1.06); }
.pg-card__play svg { width:22px; height:22px; margin-left:3px; fill:currentColor; }
.pg-card__head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; }
.pg-card__price { display:flex; align-items:center; flex-wrap:wrap; gap:12px; font-size:clamp(1.5rem,2vw,32px); font-weight:600; line-height:1.3; color:var(--c-green); }
.pg-card__price-old,.pg-card__old { font-size:clamp(0.95rem,1.2vw,18px); font-weight:500; line-height:1.3; color:var(--c-red); text-decoration-line:line-through; }
.pg-card__art {
    flex-shrink:0; display:inline-flex; align-items:center; min-height:32px; padding:5px 14px;
    background:var(--c-green); border-radius:20px; color:var(--c-white); font-size:18px; font-weight:500; line-height:1.3;
}
.pg-card__list { margin-top:21px; padding-top:21px; border-top:1px solid var(--c-line-4); display:grid; }
.pg-card__list li { position:relative; padding-left:18px; font-size:clamp(1rem,1.25vw,20px); font-weight:500; line-height:1.3; color:var(--c-body); }
.pg-card__list li::before { content:'•'; position:absolute; left:0; }
.pg-card__note { margin-top:10px; font-size:16px; font-weight:500; line-height:1.3; color:rgba(31,31,31,.7); }
.pg-card__btns { margin-top:30px; display:flex; flex-wrap:wrap; gap:20px; }
.pg-card__btns .btn { min-height:44px; border-radius:40px; padding-inline:35px; }

/* 22.2 Эффекты анализа */
.pg-effects { margin-top:clamp(2.5rem,9.4vw,150px); display:grid; grid-template-columns:minmax(0,1fr) 500px; gap:40px; align-items:start; }
.pg-effects__title { font-size:var(--fs-h1); font-weight:600; line-height:1.3em; color:var(--c-teal); }
.pg-effects__lead { margin-top:20px; font-size:clamp(1rem,1.25vw,20px); font-weight:500; line-height:1.3; color:var(--c-body); }
.pg-effects__list { margin-top:20px; padding-left:25px; display:grid; }
.pg-effects__list li { font-size:clamp(1rem,1.25vw,20px); font-weight:500; line-height:1.5; color:var(--c-body); }
.pg-effects__media { aspect-ratio:500 / 311; border-radius:20px; overflow:hidden; }
.pg-effects__media img { width:100%; height:100%; object-fit:cover; }

/* 22.3 Полоса «Самые популярные статьи» */
.pg-articles { margin-top:clamp(2.5rem,9.4vw,150px); padding-block:40px; background:var(--bg-soft); }
.pg-articles__inner { display:flex; align-items:flex-start; justify-content:space-between; gap:40px; }
.pg-articles__title { max-width:662px; font-size:var(--fs-h1); font-weight:600; line-height:1.2em; color:var(--c-teal); }
.pg-articles__text { margin-top:30px; max-width:561px; font-size:clamp(1rem,1.25vw,20px); font-weight:500; line-height:1.3; color:var(--c-body); }
.pg-articles__media { flex:0 0 476px; aspect-ratio:476 / 234; border-radius:20px; overflow:hidden; }
.pg-articles__media img { width:100%; height:100%; object-fit:cover; }
.section--pg-contacts { padding-top:50px; }


/* ====================== 23. СТРАНИЦА «ЧЕК-АПЫ» ====================== */
/* Кадр Фигмы 2008:5932 */
.ck-intro { padding-top:calc(var(--header-h) + 44px); }
.ck-intro__card { background:var(--bg-soft); border-radius:30px; padding:30px; }
.ck-intro__title { font-size:clamp(2rem,5vw,80px); line-height:1; font-weight:600; color:var(--c-teal); }
.ck-intro__promo { margin-top:30px; font-size:clamp(1rem,1.625vw,26px); font-weight:500; line-height:1.3; color:var(--c-body); }

.ck-grid { margin-top:clamp(2.5rem,6.25vw,100px); display:grid; grid-template-columns:1fr 1fr; gap:30px 20px; }
.ck-card {
    display:flex; flex-direction:column; padding:20px;
    background:var(--c-white); border:1px solid var(--c-line-4); border-radius:20px; box-shadow:var(--sh-card);
}
.ck-card__head { display:flex; gap:20px; }
.ck-card__media { flex:0 0 198px; height:119px; border-radius:10px; overflow:hidden; }
.ck-card__media img { width:100%; height:100%; object-fit:cover; }
.ck-card__title { font-size:24px; font-weight:600; line-height:1.4; color:var(--c-teal); }
.ck-card__meta { margin-top:21px; display:flex; align-items:center; flex-wrap:wrap; gap:10px 30px; }
.ck-card__val { display:inline-flex; align-items:center; gap:10px; font-size:24px; font-weight:500; line-height:1.3; color:var(--c-body); }
.ck-card__val img { width:20px; height:20px; flex-shrink:0; }
.ck-card__old { font-size:20px; font-weight:500; line-height:1.3; color:var(--c-red); text-decoration:line-through; margin-left:-20px; }
.ck-card__sep { margin:19px 0 0; height:1px; border:none; background:var(--c-line-4); }
.ck-card__list { margin-top:20px; font-size:18px; font-weight:500; line-height:1.3; color:var(--c-body); }
.ck-card__list b { font-weight:600; }
.ck-card__btns { margin-top:auto; padding-top:22px; display:flex; flex-wrap:wrap; gap:20px; }
.ck-card__btns .btn { min-height:44px; padding-inline:36px; border-radius:40px; }

/* 23.1 Карточка консультации */
.ck-consult { margin-top:30px; padding:20px; background:var(--bg-soft); border-radius:20px; }
.ck-consult__row { display:flex; align-items:flex-start; justify-content:space-between; gap:30px; }
.ck-consult__title { font-size:clamp(1.25rem,1.625vw,26px); font-weight:600; line-height:1.3; color:var(--c-teal); }
.ck-consult__price { margin-top:34px; }
.ck-consult__note { margin-top:20px; font-size:18px; font-weight:500; line-height:1.3; color:var(--c-body); }
.ck-consult__btn { flex-shrink:0; align-self:flex-end; min-height:44px; padding-inline:36px; }
.ck-consult__sep { margin:20px 0 0; height:1px; border:none; background:var(--c-line-4); max-width:690px; }
.section--ck-tail { padding-bottom:clamp(2.5rem,9.4vw,150px); }


/* ====================== 24. ОТДЕЛЬНАЯ СТРАНИЦА ЧЕК-АПА ====================== */
/* Кадр Фигмы 2008:6077 */
.ckp-card {
    margin-top:30px; display:grid; grid-template-columns:651fr 720fr; gap:30px; padding:30px;
    background:var(--c-white); border:1px solid var(--c-line-4); border-radius:20px; box-shadow:var(--sh-card);
}
.ckp-card__media { position:relative; align-self:start; aspect-ratio:651 / 364; border-radius:20px; overflow:hidden; }
.ckp-card__media img { width:100%; height:100%; object-fit:cover; }
.ckp-card__media video { display:block; width:100%; height:100%; object-fit:cover; }
.ckp-card__list { font-size:clamp(1rem,1.25vw,20px); font-weight:500; line-height:1.3; color:var(--c-body); }
.ckp-card__list b { font-weight:600; }
.ckp-card__meta { margin-top:22px; display:flex; align-items:center; flex-wrap:wrap; gap:10px 30px; }
.ckp-card__val { display:inline-flex; align-items:center; gap:10px; font-size:clamp(1.25rem,1.5vw,24px); font-weight:600; line-height:1.3; color:var(--c-green); }
.ckp-card__val img { width:21px; height:21px; flex-shrink:0; }
/* старая цена на этой странице красная с прозрачностью 70% (Фигма 2008:6085) */
/* в макете она приподнята: её верх на 527, у цены — 540 */
.ckp-card__old { align-self:flex-start; margin-top:-13px; margin-left:-20px; font-size:20px; font-weight:500; line-height:1.3; color:rgba(255,3,3,.7); text-decoration:line-through; }
.ckp-card__sep { margin:14px 0 0; height:1px; border:none; background:var(--c-line-4); }
.ckp-card__btn { margin-top:40px; min-width:158px; min-height:44px; border-radius:40px; }

/* 24.1 Что входит в чек-ап */
.ckp-includes { margin-top:clamp(2.5rem,6.25vw,100px); display:grid; grid-template-columns:765fr 656fr; gap:63px; align-items:start; }
.ckp-includes__title { font-size:var(--fs-h1); font-weight:600; line-height:1.3em; color:var(--c-teal); }
.ckp-includes__list { margin-top:40px; font-size:clamp(1rem,1.25vw,20px); font-weight:500; line-height:1.3; color:var(--c-body); }
.ckp-photo { aspect-ratio:656 / 468; border-radius:20px; overflow:hidden; }
.ckp-photo img { width:100%; height:100%; object-fit:cover; }

/* 24.1.1 Детальное описание чек-апа — свободный текст из карточки элемента */
.ckp-text { margin-top:clamp(2.5rem,6.25vw,100px); font-size:clamp(1rem,1.25vw,20px); font-weight:500; line-height:1.3; color:var(--c-body); }
.ckp-text > * + * { margin-top:20px; }
.ckp-text h2 { font-size:var(--fs-h1); font-weight:600; line-height:1.3em; color:var(--c-teal); }
.ckp-text h3 { font-size:24px; font-weight:600; line-height:1.3; color:var(--c-teal); }
.ckp-text ul, .ckp-text ol { padding-left:22px; }
.ckp-text ul { list-style:disc; }
.ckp-text ol { list-style:decimal; }
.ckp-text a { color:var(--c-green); text-decoration:underline; }
.ckp-text img { max-width:100%; height:auto; border-radius:20px; }

/* 24.2 Подготовка к взятию крови */
.ckp-prep { margin-top:clamp(2.5rem,7.75vw,124px); }
.ckp-prep__title { font-size:var(--fs-h1); font-weight:600; line-height:1.3em; color:var(--c-teal); }
.ckp-prep__grid { margin-top:40px; display:grid; grid-template-columns:repeat(4,1fr); gap:20px; }
.ckp-prep-card {
    min-height:164px; padding:30px;
    background:var(--c-white); border:1px solid var(--c-line-4); border-radius:20px; box-shadow:var(--sh-card);
}
.ckp-prep-card__title { font-size:24px; font-weight:600; line-height:1.3; text-transform:uppercase; color:var(--c-green); }
.ckp-prep-card__text { margin-top:20px; font-size:clamp(1rem,1.25vw,20px); font-weight:500; line-height:1.3; color:var(--c-body); }
.ckp-note { margin-top:30px; padding-left:16px; font-size:16px; font-weight:500; line-height:1.3; color:rgba(31,31,31,.7); }

/* 24.3 Полоса «Сомневаетесь в выборе? Мы подскажем!» (узлы 2008:15360–15372, лежат поверх кадра) */
.ckp-help { margin-top:clamp(2rem,6.3vw,101px); padding:40px 0 76px; background:var(--bg-soft); }
.ckp-help__inner { display:flex; align-items:flex-start; justify-content:space-between; gap:40px; }
.ckp-help__title { max-width:618px; font-size:var(--fs-h1); font-weight:600; line-height:1.2em; color:var(--c-teal); }
.ckp-help__text { margin-top:30px; max-width:682px; font-size:clamp(1rem,1.25vw,20px); font-weight:500; line-height:1.3; color:var(--c-body); }
.ckp-help__form { margin-top:30px; display:flex; flex-wrap:wrap; gap:20px; }
.ckp-help__input {
    width:280px; height:50px; padding:0 25px;
    background:var(--c-white); border:1px solid var(--c-line-4); border-radius:90px;
    font-size:16px; font-weight:500; color:var(--c-body);
}
.ckp-help__input::placeholder { color:rgba(31,31,31,.5); }
.ckp-help__btn { width:250px; min-height:50px; border-radius:90px; }
.ckp-help__consent { margin-top:20px; display:flex; align-items:flex-start; gap:7px; font-size:16px; font-weight:500; line-height:1.2; color:var(--c-body); cursor:pointer; }
.ckp-help__consent input { width:16px; height:16px; margin:1px 0 0; accent-color:var(--c-green); flex-shrink:0; }
.ckp-help__media { flex:0 0 654px; position:relative; aspect-ratio:654 / 321; border-radius:20px; overflow:hidden; }
.ckp-help__media img { width:100%; height:100%; object-fit:cover; }
.ckp-tail { padding-bottom:clamp(2.5rem,9.4vw,150px); }


/* ====================== 25. СТРАНИЦА «УГОЛОК ПОТРЕБИТЕЛЯ» ====================== */
/* Кадр Фигмы 2008:6700 */
.cns-intro { padding-top:calc(var(--header-h) + 44px); }
.cns-block { margin-top:clamp(2.5rem,6.25vw,100px); display:flex; align-items:flex-start; justify-content:space-between; gap:40px; }
.cns-block + .cns-block { margin-top:clamp(2.5rem,9.4vw,150px); }
.cns-block__title { font-size:var(--fs-h1); font-weight:600; line-height:1.3em; color:var(--c-teal); }
.cns-block__text { margin-top:20px; max-width:980px; font-size:clamp(1rem,1.125vw,18px); font-weight:500; line-height:1.2; color:var(--c-body); }
.cns-block__note { margin-top:10px; max-width:980px; font-size:16px; font-weight:500; line-height:1.3; color:rgba(31,31,31,.7); }
.cns-block__download { display:inline-flex; align-items:center; gap:6px; margin-top:14px; font-size:15px; font-weight:600; color:var(--c-green-dark); text-decoration:underline; text-underline-offset:3px; }
.cns-block__download::before { content:""; display:inline-block; width:16px; height:16px; background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2370910d' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='7 10 12 15 17 10'/%3E%3Cline x1='12' y1='15' x2='12' y2='3'/%3E%3C/svg%3E") no-repeat center/contain; }
.cns-block__btn { flex-shrink:0; min-width:338px; min-height:50px; border-radius:40px; margin-top:110px; }

/* 25.1 Реквизиты клиники */
.cns-req { margin-top:clamp(2.5rem,12vw,193px); padding-block:40px 45px; background:var(--bg-soft); }
.section--nws-contacts { padding-top:clamp(2.5rem,9.4vw,150px); }
.section--nws-contacts .map-embed { margin-top:20px; }   /* карта сразу под блоками (Фигма) */
.section--cns-contacts { padding-top:clamp(2.5rem,9.4vw,150px); }
.cns-req__title { font-size:var(--fs-h1); font-weight:600; line-height:1.3em; color:var(--c-teal); }
/* 3×3: строки выровнены по всем колонкам (в Фигме подписи на 1565 / 1677 / 1766) */
.cns-req__grid { margin-top:40px; display:grid; grid-template-columns:656fr 392fr 432fr; gap:20px 0; }
.cns-req__label { font-size:24px; font-weight:600; line-height:1.3; text-transform:uppercase; color:var(--c-teal); }
.cns-req__val { margin-top:12px; font-size:18px; font-weight:500; line-height:1.3; color:var(--c-body); }
.cns-req__val a { color:var(--c-body); }
.cns-req__val a:hover { color:var(--c-green-dark); }

/* 25.2 Способы оплаты */
.cns-pay { margin-top:clamp(2.5rem,8.4vw,134px); }
.cns-pay__title { max-width:980px; font-size:var(--fs-h1); font-weight:600; line-height:1.3em; color:var(--c-teal); }
.cns-pay__grid { margin-top:40px; display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.cns-pay-card {
    min-height:138px; padding:30px;
    background:var(--c-white); border:1px solid var(--c-line-4); border-radius:20px; box-shadow:var(--sh-card);
}
.cns-pay-card__title { font-size:24px; font-weight:600; line-height:1.3; text-transform:uppercase; color:var(--c-green); }
.cns-pay-card__text { margin-top:20px; font-size:clamp(1rem,1.25vw,20px); font-weight:500; line-height:1.3; color:var(--c-body); }
.cns-pay__note { margin-top:40px; font-size:16px; font-weight:500; line-height:1.3; color:rgba(31,31,31,.7); }

/* 25.3 Баннер бренд-шефа */
.cns-banner { position:relative; margin-top:clamp(2.5rem,10.7vw,171px); min-height:349px; display:flex; align-items:center; overflow:hidden; }
.cns-banner__bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.cns-banner__bg img { width:100%; height:100%; display:block; object-fit:cover; }
/* фото светлое там, где лежит белый текст — притеняем слева, справа снимок открыт */
.cns-banner::before {
    content:''; position:absolute; inset:0; z-index:1;
    background:linear-gradient(90deg,rgba(4,4,13,.6) 0%,rgba(4,4,13,.2) 55%,rgba(4,4,13,0) 100%);
}
.cns-banner__inner { position:relative; z-index:2; display:flex; align-items:flex-end; justify-content:space-between; gap:40px; }
.cns-banner__title { max-width:868px; font-size:clamp(1.75rem,3.75vw,60px); font-weight:600; line-height:1.3; color:var(--c-white); }
.cns-banner__text { margin-top:20px; max-width:682px; font-size:clamp(1rem,1.25vw,20px); font-weight:500; line-height:1.55; color:var(--c-white); }
.cns-banner__btn { flex-shrink:0; min-width:315px; min-height:50px; border-radius:40px; margin-bottom:6px; }


/* ====================== 25.4 СТРАНИЦА «МОБИЛЬНОЕ ПРИЛОЖЕНИЕ» ====================== */
/* Кадр Фигмы 2083:950 */
.app-intro { padding-top:calc(var(--header-h) + 44px); }
.app-intro .ck-intro__card { padding:30px 30px 12px; }   /* карточка 202px как в Фигме */
.app-how { margin-top:clamp(2.5rem,6.25vw,100px); }
.app-how__title { font-size:var(--fs-h1); font-weight:600; line-height:1.3em; color:var(--c-teal); }
/* 4 скриншота по 370px без зазора — поля уже внутри самих png (Фигма) */
.app-phones { margin-top:clamp(1.5rem,4.1vw,65px); display:grid; grid-template-columns:repeat(4,1fr); gap:0; }
.app-phones img { width:100%; height:auto; display:block; }
.app-steps { margin-top:50px; display:grid; grid-template-columns:repeat(3,332fr) 424fr; gap:20px; align-items:start; }
.app-step {
    min-height:175px; padding:20px;
    background:var(--c-white); border:1px solid var(--c-line-4); border-radius:20px; box-shadow:var(--sh-card);
}
.app-step__num { font-size:25px; font-weight:600; line-height:1.3; text-transform:uppercase; color:var(--c-green); }
.app-step__text { margin-top:26px; font-size:16px; font-weight:500; line-height:1.3; color:var(--c-body); }
.app-download { padding-top:21px; }
.app-download__title { font-size:25px; font-weight:500; line-height:1.3; color:var(--c-body); }
.app-download__title a { color:var(--c-green); text-decoration:underline; }
.app-download__btns { margin-top:22px; margin-inline:-6px; display:flex; flex-wrap:nowrap; gap:8px; }

/* 25.4.1 Баннер ImmunoFood */
.app-banner { position:relative; margin-top:clamp(2.5rem,9.4vw,150px); min-height:348px; display:flex; align-items:center; overflow:hidden; }
.app-banner__bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.app-banner__bg img { width:100%; height:100%; display:block; object-fit:cover; }
.app-banner__inner { position:relative; display:flex; align-items:flex-end; justify-content:space-between; gap:40px; }
.app-banner__title { max-width:1003px; font-size:clamp(1.75rem,4.4vw,70px); font-weight:600; line-height:1.15; color:var(--c-white); }
.app-banner__text { margin-top:20px; max-width:856px; font-size:clamp(1rem,1.625vw,26px); font-weight:500; line-height:1.3; color:var(--c-white); }
.app-banner__text a { color:var(--c-white); text-decoration:underline; }
.app-banner__btn { flex-shrink:0; min-width:210px; min-height:44px; border-radius:40px; margin-bottom:4px; }


/* ====================== 25.5 СТРАНИЦА «ОТЗЫВЫ» ====================== */
/* Кадр Фигмы 2083:837. Жёсткие отступы между блоками по макету (~100px),
   переиспользуются хедер/футер/отзывы/контакты с главной */
.rev-intro { padding-top:calc(var(--header-h) + 44px); padding-bottom:clamp(2.5rem,6.25vw,100px); }
.rev-intro + #reviews { padding-block:0; }
.rev-intro + #reviews .section-head { margin-bottom:60px; }          /* заголовок «Отзывы» → карточки */
#reviews + #contacts { padding-top:clamp(2.5rem,6.25vw,100px); padding-bottom:clamp(2.5rem,6.25vw,100px); }


/* ====================== 26. СТРАНИЦА «НОВОСТИ И БАЗА ЗНАНИЙ» ====================== */
/* Кадр Фигмы 2008:6126 */
.nws-intro { padding-top:calc(var(--header-h) + 45px); }
.prm-intro { padding-top:calc(var(--header-h) + 44px); padding-bottom:clamp(2.5rem,6.25vw,100px); }
/* 26.0 Панель фильтров: категории + сортировка + поиск */
.nws-filters { margin-top:59px; padding:30px; background:var(--bg-soft); border-radius:20px; display:flex; align-items:center; gap:20px; flex-wrap:wrap; }
.nws-tags { display:flex; flex-wrap:wrap; gap:8px; }
.nws-tag {
    display:inline-flex; align-items:center; min-height:44px; padding:11px 22px;
    background:var(--c-white); border:1px solid var(--c-line-4); border-radius:40px;
    font-size:18px; font-weight:500; line-height:1.2; color:var(--c-body);
    transition:background var(--t2),color var(--t2),border-color var(--t2);
}
.nws-tag:hover,.nws-tag.is-active { background:var(--c-green); border-color:var(--c-green); color:var(--c-white); }
.nws-field {
    display:flex; align-items:center; gap:10px; min-height:49px; padding:12px 20px;
    background:var(--c-white); border:1px solid var(--c-line-4); border-radius:40px;
    font-size:18px; font-weight:500; line-height:1.3; color:var(--c-body);
}
.nws-field img,.nws-field svg { width:18px; height:18px; flex-shrink:0; color:rgba(31,31,31,.5); }
.nws-field--sort { width:362px; margin-left:auto; }
.nws-field--search { width:472px; }
.nws-field select,.nws-field input { flex:1; min-width:0; border:none; background:none; font:inherit; color:inherit; outline:none; }
.nws-field input::placeholder { color:rgba(31,31,31,.5); }

/* 26.0б Кастомный селект-дропдаун в стиле сайта (вместо нативного <select>) */
.nws-select { position:relative; cursor:pointer; }
.nws-select__ic { width:18px; height:18px; flex-shrink:0; color:rgba(31,31,31,.5); }
.nws-select__trigger {
    display:flex; align-items:center; justify-content:space-between; gap:10px; flex:1; min-width:0;
    background:none; border:none; cursor:pointer; text-align:left; color:inherit; font:inherit;
}
.nws-select__chevron { width:18px; height:18px; flex-shrink:0; color:rgba(31,31,31,.5); transition:transform var(--t2); }
.nws-select.is-open .nws-select__chevron { transform:rotate(180deg); }
.nws-select.is-open { border-color:var(--c-green); }
.nws-select__menu {
    position:absolute; left:0; right:0; top:calc(100% + 8px); z-index:20; margin:0; padding:8px; list-style:none;
    background:var(--c-white); border:1px solid var(--c-line-4); border-radius:20px; box-shadow:var(--sh-card);
    opacity:0; visibility:hidden; transform:translateY(-6px); transition:opacity var(--t2),transform var(--t2),visibility var(--t2);
}
.nws-select.is-open .nws-select__menu { opacity:1; visibility:visible; transform:translateY(0); }
.nws-select__menu li {
    padding:13px 20px; border-radius:12px; cursor:pointer;
    font-size:18px; font-weight:500; line-height:1.3; color:var(--c-body);
    transition:background var(--t2),color var(--t2);
}
.nws-select__menu li:hover { background:transparent; color:var(--c-green); }
.nws-select__menu li[aria-selected="true"] { background:transparent; color:var(--c-green); font-weight:600; }

/* 26.1 Карточка материала */
.nws-grid { margin-top:69px; display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.nws-card {
    display:flex; flex-direction:column; min-height:357px; overflow:hidden;
    background:var(--c-white); border:1px solid var(--c-line-4); border-radius:20px; box-shadow:var(--sh-card);
    color:var(--c-body);
}
.nws-card:hover { color:var(--c-body); }
.nws-card:hover .nws-card__title { color:var(--c-green-dark); }
.nws-card__media { aspect-ratio:480 / 167; overflow:hidden; }
.nws-card__media img { width:100%; height:100%; object-fit:cover; transition:transform var(--t2); }
.nws-card:hover .nws-card__media img { transform:scale(1.03); }
.nws-card__body { padding:20px; display:flex; flex-direction:column; flex:1; }
.nws-card__meta { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.nws-card__tag { font-size:13px; font-weight:600; line-height:1.3; text-transform:uppercase; letter-spacing:.02em; color:var(--c-green); }
.nws-card__date { font-size:15px; font-weight:500; line-height:1.3; color:rgba(31,31,31,.5); }
.nws-card__title { margin-top:20px; font-size:20px; font-weight:600; line-height:1.35; color:var(--c-teal); transition:color var(--t2); }
.nws-card__text { margin-top:14px; font-size:16px; font-weight:500; line-height:1.3; color:rgba(31,31,31,.7); }
.nws-more { margin-top:36px; display:flex; justify-content:center; }
.nws-more__btn { min-width:170px; min-height:49px; gap:8px; background:var(--c-white); border:1px solid var(--c-green); border-radius:40px; color:var(--c-body); font-size:18px; }
.nws-more__btn:hover { background:var(--c-green); color:var(--c-white); }
.nws-more__btn svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:2; }
.nws-empty { margin-top:69px; font-size:20px; font-weight:500; line-height:1.3; color:rgba(31,31,31,.7); }
.nws-results.is-loading { opacity:.45; pointer-events:none; transition:opacity var(--t2); }

/* 26.0.1 Страница материала */
.nws-detail { padding-bottom:clamp(2.5rem,9.4vw,150px); }   /* иначе текст упирается в футер */
.nws-detail__back { display:inline-flex; align-items:center; gap:6px; margin-bottom:24px; font-size:16px; font-weight:500; color:var(--c-green); }
.nws-detail__back .icon { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.nws-detail__meta { margin-top:24px; display:flex; align-items:center; flex-wrap:wrap; gap:16px; }
.nws-detail__media { margin-top:32px; aspect-ratio:1480 / 500; border-radius:20px; overflow:hidden; }
.nws-detail__media img { width:100%; height:100%; object-fit:cover; }
.nws-detail__lead { margin-top:32px; font-size:clamp(1.125rem,1.4vw,22px); font-weight:600; line-height:1.35; color:var(--c-teal); }
.nws-detail__text { margin-top:24px; font-size:clamp(1rem,1.25vw,20px); font-weight:500; line-height:1.4; color:var(--c-body); }
.nws-detail__text > * + * { margin-top:20px; }
.nws-detail__text h2 { font-size:28px; font-weight:600; line-height:1.3; color:var(--c-teal); }
.nws-detail__text h3 { font-size:22px; font-weight:600; line-height:1.3; color:var(--c-teal); }
.nws-detail__text ul, .nws-detail__text ol { padding-left:22px; }
.nws-detail__text ul { list-style:disc; }
.nws-detail__text ol { list-style:decimal; }
.nws-detail__text a { color:var(--c-green); text-decoration:underline; }
.nws-detail__text img { max-width:100%; height:auto; border-radius:20px; }

/* 26.1 Видео выступлений */
.nws-video { margin-top:clamp(2.5rem,8.6vw,138px); }
.nws-video__title { font-size:var(--fs-h1); font-weight:600; line-height:1.3em; color:var(--c-teal); }
.nws-video__grid { margin-top:42px; }
.nws-video__grid .swiper-slide { height:auto; }
.nws-video__item { display:block; color:var(--c-body); }
.nws-video__media { display:block; position:relative; aspect-ratio:285 / 236; border-radius:20px; overflow:hidden; }
.nws-video__media img { width:100%; height:100%; object-fit:cover; }
/* play как на остальных страницах — по центру, 50×50, но синий RuTube */
.nws-video__play {
    position:absolute; left:50%; top:50%; display:grid; place-items:center;
    width:50px; height:50px; border-radius:12px; background:#479fe1; color:var(--c-white);
    transform:translate(-50%,-50%);
    transition:background var(--t2),transform var(--t2);
}
.nws-video__item:hover .nws-video__play { background:#3a8ccb; transform:translate(-50%,-50%) scale(1.06); }
.nws-video__play svg { width:22px; height:22px; margin-left:3px; fill:currentColor; }
.nws-video__caption { display:block; margin-top:20px; font-size:20px; font-weight:500; line-height:1.3; color:var(--c-body); }


/* ====================== 26.5 СТРАНИЦА «ЧАСТО ЗАДАВАЕМЫЕ ВОПРОСЫ» ====================== */
/* Кадр Фигмы 2096:1132 */
.faq-intro { padding-top:calc(var(--header-h) + 44px); }
.faq-intro .ck-intro__card { padding:30px; }
.faq-intro__lead { margin-top:20px; max-width:997px; font-size:clamp(1rem,1.5vw,24px); font-weight:500; line-height:1.3; color:var(--c-body); }
.faq-intro__lead a { color:var(--c-green); }
.faq-intro__lead a:hover { color:var(--c-green-dark); }

/* Аккордеон: нативный <details>, работает без JS */
.faq-list { margin-top:clamp(2.5rem,6.25vw,100px); display:flex; flex-direction:column; gap:20px; }
.faq-item { background:var(--bg-soft); border-radius:10px; }
.faq-item__q {
    display:flex; align-items:center; gap:20px;
    min-height:91px; padding:16px 24px 16px 31px;
    cursor:pointer; list-style:none;
}
.faq-item__q::-webkit-details-marker { display:none; }
.faq-item__q:focus-visible { outline:2px solid var(--c-green); outline-offset:-2px; border-radius:10px; }
.faq-item__ic { flex:0 0 30px; width:30px; height:auto; }
.faq-item__ic img { width:100%; height:auto; display:block; }
.faq-item__title { flex:1; font-size:clamp(1rem,1.5vw,24px); font-weight:600; line-height:1.3; color:var(--c-teal); }
.faq-item__plus {
    flex:0 0 44px; width:44px; height:44px; display:grid; place-items:center;
    border-radius:50%; background:transparent; transition:background var(--t1);
}
.faq-item__plus img { width:20px; height:20px; display:block; transition:transform var(--t2); }
.faq-item[open] .faq-item__plus img { transform:rotate(45deg); }   /* + → × */
/* при наведении на вопрос под крестиком появляется серый кружок */
.faq-item__q:hover .faq-item__plus,
.faq-item__q:focus-visible .faq-item__plus { background:var(--c-grey-050); }
.faq-item__a { padding:0 36px 26px 81px; }                     /* текст выравнен по вопросу */
.faq-item__a p { font-size:clamp(1rem,1.25vw,20px); font-weight:500; line-height:1.4; color:var(--c-body); }
.faq-item__a p + p { margin-top:14px; }
.faq-item__a a { color:var(--c-green); text-decoration:underline; }

/* 26.5.1 «Узнайте больше о фундаменте нашего подхода» */
/* отступы блока заданы Фигмой: 150 сверху, снизу вплотную к полосе соцсетей */
.faq-more { padding-top:clamp(2.5rem,9.4vw,150px); padding-bottom:0; }
.faq-more__title { font-size:var(--fs-h1); font-weight:600; line-height:1.3em; color:var(--c-teal); }
.faq-more__lead { margin-top:20px; max-width:750px; font-size:clamp(1rem,1.25vw,20px); font-weight:500; line-height:1.3; color:var(--c-body); }
.faq-more__grid { margin-top:40px; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.faq-more-card {
    min-height:270px; padding:30px; display:flex; flex-direction:column;
    background:var(--c-white); border:1px solid var(--c-line-4); border-radius:20px; box-shadow:var(--sh-card);
}
.faq-more-card__title { font-size:24px; font-weight:600; line-height:1.3; text-transform:uppercase; color:var(--c-teal); }
.faq-more-card__text { margin-top:20px; font-size:20px; font-weight:500; line-height:1.3; color:var(--c-body); }
.faq-more-card__btn { margin-top:auto; min-height:50px; border-radius:40px; }

/* 26.5.2 Полоса «Подпишитесь на нас в соцсетях» */
.faq-social { margin-top:clamp(2.5rem,9.7vw,155px); padding-block:40px; background:var(--bg-soft); }
.faq-social__inner { display:flex; align-items:flex-start; justify-content:space-between; gap:40px; }
.faq-social__content { min-width:0; }
.faq-social__title { max-width:756px; font-size:var(--fs-h1); font-weight:600; line-height:1.3em; color:var(--c-body); }
.faq-social__text { margin-top:20px; max-width:796px; font-size:clamp(1rem,1.625vw,26px); font-weight:500; line-height:1.3; color:var(--c-body); }
.faq-social__btns { flex:0 0 249px; display:flex; flex-direction:column; gap:15px; }
.faq-social__btn { gap:10px; min-height:44px; border-radius:40px; }
.faq-social__btn img { flex:0 0 auto; }


/* ====================== 26.55 СТРАНИЦА «ВСЕ СПЕЦИАЛИСТЫ» ====================== */
/* Кадр Фигмы 2098:1651 */
.team-intro { padding-top:calc(var(--header-h) + 44px); }   /* карточка 220px = 30 + 2×80 + 30 (базовый паддинг) */
.team-grid {
    margin-top:clamp(2.5rem,6.19vw,99px);
    display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px;
    align-items:start;
}
/* ссылкой работает вся карточка; кружок со стрелкой внутри — декорация */
.team-card__link { display:block; color:inherit; }
.team-card__link:focus-visible { outline:3px solid var(--c-green-dark); outline-offset:4px; border-radius:15px; }
.team-card__photo {
    position:relative; aspect-ratio:355 / 448; border-radius:15px; overflow:hidden;
    background:var(--c-green-grad);
}
.team-card__photo img { width:100%; height:100%; object-fit:cover; object-position:center bottom; display:block; }
.team-card__badge {
    position:absolute; left:10px; bottom:10px; max-width:calc(100% - 74px);
    padding:10px; background:var(--c-white); border:1px solid var(--c-line-3); border-radius:15px;
    font-size:16px; font-weight:500; line-height:1.3; color:var(--c-body);
}
.team-card__more {
    position:absolute; right:10px; bottom:10px; width:44px; height:44px;
    display:grid; place-items:center; border-radius:50%; background:var(--c-green);
    transition:background var(--t1),transform var(--t1);
}
.team-card__more img { width:20px; height:20px; display:block; }
/* .team-card__more:hover — для статичной doctors.html, где кружок ещё сам ссылка */
.team-card__link:hover .team-card__more,
.team-card__more:hover { background:var(--c-green-dark); transform:translateY(-2px); }
.team-card__name {
    margin-top:21px; font-size:26px; font-weight:600; line-height:1.3;
    text-transform:uppercase; color:var(--c-body); transition:color var(--t1);
}
.team-card__link:hover .team-card__name { color:var(--c-teal); }
/* карта идёт сразу за формой — на этой странице соцсетей нет */
.map-embed--top { margin-top:clamp(1.5rem,2.8vw,45px); }


/* ====================== 26.6 ВХОДНОЙ ЭКРАН САЙТА (home.html) ====================== */
/* Кадр Фигмы 2098:1391 «Версия 3». Макет 1800×1219, поля 80 → контент 1640.
   Размеры переведены в vw от 1800, чтобы экран собирался в одну высоту. */
.lp {
    position:relative; min-height:100vh; display:flex; overflow:hidden;
    background:var(--c-night); color:var(--c-white);
    --lp-pad: clamp(20px,4.44vw,80px);
}
.lp__bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.lp__scrim { position:absolute; inset:0; background:rgba(4,4,13,.75); }
.lp__inner {
    position:relative; flex:1; min-width:0;
    display:flex; flex-direction:column;
    padding:clamp(20px,2.94vw,53px) var(--lp-pad) clamp(20px,1.78vw,32px);
}

/* Шапка */
.lp-head { display:flex; align-items:center; gap:clamp(16px,2vw,36px); }
.lp-head__logo img { display:block; width:clamp(180px,15.95vw,287px); height:auto; }
.lp-nav { display:flex; align-items:center; gap:clamp(14px,2.2vw,40px); margin-left:auto; }
.lp-nav__link { font-size:clamp(.875rem,1.11vw,20px); font-weight:500; line-height:1.05; color:var(--c-white); white-space:nowrap; transition:color var(--t1); }
.lp-nav__link:hover { color:var(--c-green); }
.lp-head__phone { font-size:clamp(1rem,1.22vw,22px); font-weight:700; line-height:1.05; color:var(--c-white); white-space:nowrap; transition:color var(--t1); }
.lp-head__phone:hover { color:var(--c-green); }
.lp-burger {
    flex-shrink:0; width:clamp(44px,3.11vw,56px); height:clamp(44px,3.11vw,56px);
    display:grid; align-content:center; justify-items:center; gap:5px;
    background:var(--c-white); cursor:pointer; transition:background var(--t1);
}
.lp-burger span { display:block; width:26px; height:2px; background:var(--c-night); }
.lp-burger:hover { background:var(--c-green); }
.lp-burger:hover span { background:var(--c-white); }

/* Контент */
.lp-main { flex:1; display:flex; flex-direction:column; }
.lp-title {
    margin-top:clamp(32px,6vw,108px); max-width:1634px;
    font-size:clamp(2rem,6.22vw,112px); font-weight:600; line-height:1; color:var(--c-white);
}
.lp-row {
    margin-top:clamp(24px,4.33vw,78px);
    display:grid; grid-template-columns:380fr 574fr 586fr; gap:clamp(20px,2.2vw,40px);
    align-items:start;
}
.lp-list { display:grid; gap:0; }
.lp-list li { font-size:clamp(1rem,1.33vw,24px); font-weight:500; line-height:1.375; color:var(--c-white); }
.lp-list li::before { content:'— '; }
.lp-row__col { min-width:0; }
/* Это <button>: открывает модалку со списком, поэтому padding и выравнивание
   задаются явно — иначе браузер добавит свои от кнопки */
.lp-more {
    display:inline-flex; align-items:center; gap:10px; margin-top:6px;
    padding:0 0 0 1.05em; text-align:left;
    font-size:clamp(1rem,1.33vw,24px); font-weight:500; line-height:1.4; color:var(--c-green);
    transition:gap var(--t1),color var(--t1);
}
.lp-more:hover { gap:16px; color:var(--c-green-soft); }
.lp-more img { width:clamp(16px,1.22vw,22px); height:auto; }

/* Модалка «Смотреть весь список»: фото на всю плашку, поверх — перечень симптомов.
   Не по центру, а панелью справа во всю высоту: выезжает на половину экрана,
   на узких — на всю ширину. Крестик 55 и текст 24 (на 340 — 40 и 16). */
.modal--photo { padding:0; align-items:stretch; justify-items:end; }
/* затемнение страницы легче общего: за панелью должно читаться фото, а не темнота */
.modal--photo .modal__overlay { background:rgba(2,43,40,.3); }
.modal--photo .modal__dialog {
    display:block; grid-template-columns:none; border-radius:0;
    /* 28px слева не занимаем никогда: туда выходит половина крестика */
    width:min(calc(100vw - 28px), max(50vw, 420px)); max-width:none;
    height:100dvh; max-height:none; overflow:visible;   /* крестик торчит наружу */
    background:var(--c-night); color:var(--c-white);
    transform:translateX(100%); transition:transform var(--t3);
}
.modal--photo.is-open .modal__dialog { transform:none; }
.sympt__bg { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.sympt__scrim { position:absolute; inset:0; background:rgba(4,4,13,.3); }
.sympt__body {
    position:relative; z-index:1; height:100%; overflow-y:auto;
    padding:clamp(30px,2.78vw,50px) clamp(20px,2.78vw,50px) clamp(30px,2.78vw,50px) clamp(56px,6.11vw,110px);
}
.sympt__body ul { display:grid; gap:clamp(6px,.67vw,12px); list-style:none; }
/* 24/32 (line-height задан отношением, чтобы держалось и на уменьшенном кегле) */
.sympt__body li {
    position:relative; padding-left:clamp(16px,1.28vw,23px);
    font-size:clamp(1rem,1.33vw,24px); font-weight:400; line-height:1.3333; color:var(--c-white);
}
.sympt__body li::before {
    content:''; position:absolute; left:0; top:.6em;
    width:6px; height:6px; border-radius:50%; background:currentColor;
}
.sympt__cta {
    display: inline-flex; align-items: center; justify-content: center;
    margin-top: clamp(20px, 2.2vw, 36px);
    padding: 12px 28px; min-height: 46px;
    background: var(--c-green); color: var(--c-white);
    border-radius: var(--r-pill); font-size: clamp(14px, 1.1vw, 18px);
    font-weight: 500; line-height: 1.2; text-decoration: none;
    transition: background var(--t1);
}
.sympt__cta:hover { background: var(--c-green-dark); color: var(--c-white); }
/* сидит на левом краю панели, половиной наружу */
.sympt__close {
    position:absolute; z-index:2; top:clamp(20px,2.22vw,40px); left:0;
    transform:translateX(-50%);
    display:grid; place-items:center;
    width:clamp(40px,3.06vw,55px); height:clamp(40px,3.06vw,55px);
    border-radius:50%; background:var(--c-white); color:var(--c-night);
    transition:background var(--t1),color var(--t1);
}
.sympt__close:hover { background:var(--c-green); color:var(--c-white); }
.sympt__close .icon { width:45%; height:45%; }

/* Цитата */
.lp-quote { display:grid; grid-template-columns:auto minmax(0,1fr); column-gap:clamp(10px,.94vw,17px); }
.lp-quote__mark { width:clamp(22px,2vw,36px); height:auto; }
.lp-quote__mark--open { align-self:start; transform:rotate(180deg); }
.lp-quote__mark--close { grid-column:2; justify-self:end; margin-top:clamp(6px,1.33vw,24px); }
.lp-quote__text { font-size:clamp(1.25rem,2.33vw,42px); font-weight:600; line-height:1.19; color:var(--c-white); }

/* Три раздела: белая «таблетка» и цветная — со сдвигом на 10px вниз */
.lp-ctas {
    margin-top:clamp(32px,8.16vw,147px);
    display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:clamp(16px,3.9vw,70px);
}
.lp-cta { position:relative; --lp-accent:var(--c-green); }
.lp-cta--coral { --lp-accent:var(--c-coral); }
.lp-cta--aqua  { --lp-accent:var(--c-aqua); }
.lp-cta__shadow {
    position:absolute; left:0; right:0; top:clamp(6px,.55vw,10px);
    height:clamp(64px,5.55vw,100px); border-radius:100px;
    background:var(--lp-accent);
    transition:top var(--t1);
}
.lp-cta__link {
    position:relative; display:flex; align-items:center; justify-content:center; text-align:center;
    min-height:clamp(64px,5.55vw,100px); padding:10px 24px;
    background:var(--c-white); border-radius:100px;
    font-size:clamp(1rem,1.33vw,24px); font-weight:500; line-height:1.4; color:var(--c-night);
    transition:background-color var(--t2),color var(--t1);
}
/* Ховер как на immunohealth1.ru: заливка кнопки — акцент 20%.
   Смешиваем с белым, а не rgba(), иначе сквозь кнопку просвечивает подложка. */
.lp-cta__link:hover { background:color-mix(in srgb, var(--lp-accent) 20%, var(--c-white)); color:var(--c-night); }

/* Футер */
.lp-foot {
    margin-top:clamp(28px,3.33vw,60px); padding-top:clamp(16px,1.72vw,31px);
    /* линия во всю ширину экрана, как в макете */
    margin-inline:calc(var(--lp-pad) * -1); padding-inline:var(--lp-pad);
    border-top:1px solid rgba(255,255,255,.2);
    display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px 0;
}
.lp-foot__item { font-size:clamp(.75rem,1vw,18px); font-weight:500; line-height:1.17; color:rgba(255,255,255,.5); transition:color var(--t1); }
a.lp-foot__item:hover { color:var(--c-white); }


/* ====================== 26.7 ЛИЧНАЯ СТРАНИЦА ВРАЧА (doctor.html) ====================== */
/* Кадр Фигмы 2098:1866. Поля 60 → контент 1480. */
/* Герой: фото 477×603 слева, справа имя 80/80 + плашки 732+18+230 и 980 (Фигма) */
.doc-hero { background:var(--c-white); padding-top:calc(var(--header-h) + 44px); padding-bottom:clamp(2.5rem,4.7vw,75px); }
.doc-hero__grid { display:grid; grid-template-columns:clamp(260px,29.8vw,477px) minmax(0,1fr); gap:clamp(20px,1.44vw,23px); align-items:start; }
.doc-hero__media { position:relative; }
/* Подложка карточки — градиент поверх белого (Фигма 2098:1904), фото-вырезка лежит на ней */
.doc-hero__photo { position:relative; aspect-ratio:477/603; border-radius:15px; overflow:hidden; background:linear-gradient(180deg, rgba(var(--c-sage-rgb),.4) 0%, rgb(var(--c-sage-rgb)) 100%), var(--c-white); }
.doc-hero__photo img { width:100%; height:100%; object-fit:cover; object-position:center bottom; display:block; }
/* Кнопка видео-визитки лежит поверх фото (Фигма: инсет 15/15, снизу 10) */
.doc-hero__video { position:absolute; left:15px; right:15px; bottom:10px; z-index:1; display:flex; }

.doc-hero__name { font-size:clamp(2rem,5vw,80px); font-weight:600; line-height:1; color:var(--c-teal); max-width:min(100%,735px); }

.doc-hero__row { margin-top:clamp(14px,1.25vw,20px); display:grid; grid-template-columns:minmax(0,1fr) clamp(170px,14.4vw,230px); gap:clamp(12px,1.13vw,18px); align-items:stretch; min-height:clamp(150px,12.5vw,200px); }
.doc-card { background:var(--c-green-050); border-radius:30px; padding:clamp(20px,1.88vw,30px); }
.doc-card--creds { display:flex; flex-direction:column; gap:10px; }
.doc-hero__creds { font-size:clamp(1rem,1.25vw,20px); font-weight:500; line-height:1.3; color:var(--c-teal); }
.doc-hero__role { font-size:clamp(1rem,1.25vw,20px); font-weight:500; line-height:1.3; color:var(--c-teal); }
.doc-card--since { display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding-inline:16px; }
.doc-since__lbl { font-size:clamp(1rem,1.25vw,20px); font-weight:500; line-height:1.3; color:var(--c-teal-dark); }
.doc-since__year { font-size:clamp(1.75rem,2vw,32px); font-weight:600; line-height:1.3; color:var(--c-teal-dark); text-transform:uppercase; }

/* Плашка «Специализация» на всю ширину: список слева, кнопки прижаты вправо-вниз */
.doc-card--spec { margin-top:clamp(12px,1.25vw,20px); display:flex; align-items:flex-start; justify-content:space-between; gap:clamp(16px,2vw,30px); }
.doc-card__main { min-width:0; }
.doc-card__title { font-size:clamp(1.25rem,1.75vw,28px); font-weight:600; line-height:1.3; color:var(--c-teal); text-transform:uppercase; margin-bottom:clamp(10px,1vw,16px); }
.doc-card__list { list-style:none; display:grid; gap:8px; margin:0; padding:0; }
/* Пункты бывают в несколько строк — иконку держим у первой, а не по центру блока */
.doc-card__list li { display:flex; align-items:flex-start; font-size:clamp(1rem,1.25vw,20px); font-weight:500; line-height:1.3; color:var(--c-teal); }
/* margin-left:auto, а не space-between: у врача может не быть специализации,
   и тогда кнопки остаются в правом углу плашки, а не съезжают влево */
.doc-hero__btns { flex:0 0 auto; margin-left:auto; align-self:flex-end; display:flex; flex-direction:column; align-items:flex-end; gap:9px; }
.doc-hero .btn { padding:13px 23px; min-height:auto; font-size:clamp(1rem,1.25vw,20px); }

/* Иконки: chevron в «Специализации» — тёмно-бирюзовый, plus-circle в стажировках — зелёный (Фигма) */
.doc-ic { flex:0 0 auto; width:24px; height:24px; fill:none; stroke:var(--c-green); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.doc-card__list .doc-ic { stroke:var(--c-teal); }

/* Опыт и образование + стажировки — один блок, шаг 20px (Фигма) */
.doc-section { padding-block:clamp(2.5rem,4.7vw,75px); }
.doc-section--exp { padding-bottom:0; }
.doc-section__title { font-size:var(--fs-h1); font-weight:600; line-height:1.3; color:var(--c-teal); margin-bottom:clamp(1.5rem,2.5vw,40px); }
.doc-timeline { display:grid; gap:20px; }
.doc-timeline__item { display:grid; grid-template-columns:77px minmax(0,1fr); align-items:baseline; background:var(--c-green-050); border-radius:15px; padding:clamp(18px,1.88vw,30px) clamp(16px,1.5vw,24px); }
/* Запись без года занимает карточку целиком: иначе текст попадал бы в колонку
   года шириной 77px и переносился по одному слову */
.doc-timeline__item--plain { grid-template-columns:minmax(0,1fr); }
.doc-timeline__year { font-size:clamp(1.375rem,1.75vw,28px); font-weight:600; line-height:1.3; color:var(--c-teal); opacity:.6; text-transform:uppercase; }
/* Диапазон «1986–1988» в 77px одной строкой не помещается: мельче и с переносом после тире */
.doc-timeline__year--range { font-size:clamp(1rem,1.13vw,18px); padding-right:10px; }
.doc-timeline__text { font-size:clamp(1rem,1.25vw,20px); font-weight:500; line-height:1.3; color:var(--c-teal-dark); }

/* Стажировки и повышение квалификации */
.doc-dev { margin-top:20px; border:1px solid var(--c-line-4); border-radius:15px; padding:clamp(20px,1.88vw,30px); }
.doc-dev__title { font-size:clamp(1.375rem,2vw,32px); font-weight:600; line-height:1.3; color:var(--c-body); text-transform:uppercase; margin-bottom:clamp(8px,.7vw,11px); }
.doc-dev__list { list-style:none; display:grid; gap:7px; margin:0; padding:0; }
.doc-dev__list li { display:flex; align-items:flex-start; gap:10px; font-size:clamp(1rem,1.25vw,20px); font-weight:500; line-height:1.3; color:var(--c-body); }

/* Контакты на личной странице: 103px от карточки стажировок до заголовка (Фигма) */
.section--doc-contacts { padding-top:clamp(2.5rem,6.44vw,103px); }


/* ====================== 26.8 ИНТЕРНЕТ-МАГАЗИН (shop.html) ====================== */
/* Кадр Фигмы 2098:2194. Поля 60 → контент 1480, сетка 3×480 + 20. */
.shop-intro { padding-top:calc(var(--header-h) + 44px); }
.shop-intro .ck-intro__card { padding:30px 30px 12px; }   /* карточка 202px как в Фигме */

/* Хлебные крошки */
.crumbs { margin-top:clamp(24px,3.75vw,60px); display:flex; flex-wrap:wrap; align-items:center; gap:6px; font-size:16px; font-weight:500; line-height:1.3; }
.crumbs a { color:var(--c-ink-3); }
.crumbs a:hover { color:var(--c-green); }
.crumbs__sep { color:var(--c-ink-3); }
.crumbs__current { color:var(--c-green); }

.shop-catalog__title { margin-top:clamp(12px,1.2vw,19px); font-size:var(--fs-h1); font-weight:600; line-height:1.3; color:var(--c-teal); }

/* Панель фильтров: поиск 380 + сортировка 270 + чипы категорий, всё высотой 44 */
/* В Фигме ряд ровно 1480 без запаса, поэтому не переносим — ужимаются поля, чипы держат размер */
.shop-filters { margin-top:clamp(16px,1.4vw,22px); display:flex; flex-wrap:nowrap; align-items:center; gap:11px; }
.shop-field {
    height:44px; min-height:44px; padding:0 35px;
    background:var(--c-white); border:1px solid var(--c-green); border-radius:40px;
    font-size:16px; font-weight:500; line-height:1.3; color:var(--c-teal);
}
.shop-field::placeholder { color:var(--c-teal); opacity:1; }
.shop-field:focus-visible { outline:2px solid var(--c-green-dark); outline-offset:1px; }
/* Поле поиска обёрнуто в свою форму (уходит на /search/), поэтому размеры
   держит обёртка, а input её заполняет — ширина панели не меняется. */
.shop-filters__search { flex:0 1 380px; min-width:170px; display:flex; }
.shop-filters__search .shop-search { flex:1 1 auto; min-width:0; padding-inline:40px; }
.shop-search { flex:0 1 380px; min-width:170px; padding-inline:40px; }
.shop-search::-webkit-search-cancel-button { filter:grayscale(1); }
.shop-sort { flex:0 1 270px; min-width:150px; position:relative; padding:0; }
.shop-sort .nws-select__trigger { width:100%; height:100%; padding:0 24px 0 40px; display:flex; align-items:center; justify-content:space-between; gap:10px; color:inherit; font:inherit; }
.shop-sort .nws-select__chevron { width:18px; height:18px; flex:0 0 auto; }

.shop-chips { flex:0 0 auto; margin-left:auto; display:flex; flex-wrap:nowrap; gap:4px; }
.shop-chip {
    height:44px; display:inline-flex; align-items:center; padding:0 35px;
    background:var(--c-white); border:1px solid var(--c-green); border-radius:40px;
    font-size:16px; font-weight:500; line-height:1.3; color:var(--c-teal);
    transition:background var(--t1),color var(--t1);
}
.shop-chip:hover { background:var(--c-green-050); color:var(--c-teal); }
.shop-chip.is-active { background:var(--c-green); border-color:var(--c-green); color:var(--c-white); }

/* Группы товаров */
.shop-catalog { padding-bottom:0; }
/* Выдача поиска: своей шапки-карточки у страницы нет, поэтому отступ под
   фиксированную шапку берёт на себя сама секция. */
.shop-catalog--search { padding-top:calc(var(--header-h) + 44px); padding-bottom:clamp(2rem,3.75vw,60px); }
.shop-catalog--search .shop-grid { margin-top:clamp(20px,2.5vw,40px); }
.search-note { margin-top:clamp(12px,1.4vw,22px); font-size:clamp(1rem,1.13vw,18px); font-weight:400; line-height:1.5; color:var(--c-body); }
.search-note a { color:var(--c-green); text-decoration:underline; }
.shop-group { margin-top:clamp(28px,3vw,48px); scroll-margin-top:calc(var(--header-h) + 20px); }
.shop-group + .shop-group { margin-top:clamp(40px,6.25vw,100px); }
.shop-group__title { font-size:clamp(1.5rem,2.5vw,40px); font-weight:600; line-height:1.3; color:var(--c-teal); }
.shop-grid { margin-top:20px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; align-items:stretch; }

.shop-card {
    display:flex; flex-direction:column; padding:20px;
    background:var(--c-white); border:1px solid var(--c-line-4); border-radius:20px; box-shadow:var(--sh-card);
    transition:transform var(--t2),box-shadow var(--t2);
}
.shop-card:hover { transform:translateY(-3px); box-shadow:var(--sh-md); }
/* Высота задана переменной, а не %: max-height:100% у grid-элемента не разрешается,
   и картинка вылезала натуральным размером на заголовок */
.shop-card__media { --shop-media-h:clamp(180px,17vw,270px); height:var(--shop-media-h); display:grid; place-items:center; overflow:hidden; }
.shop-card__media img { max-width:100%; max-height:var(--shop-media-h); width:auto; height:auto; object-fit:contain; }
.shop-card__head { display:flex; align-items:baseline; justify-content:space-between; gap:8px; margin-top:clamp(12px,1.3vw,21px); }
.shop-card__title { font-size:clamp(1rem,1.25vw,20px); font-weight:600; line-height:1.3; text-transform:uppercase; }
.shop-card__title a { color:var(--c-teal); }
.shop-card__title a:hover { color:var(--c-green); }
.shop-card__article { font-size:14px; color:var(--c-ink-3); white-space:nowrap; flex-shrink:0; }
.shop-card__text { margin-top:clamp(10px,1.1vw,18px); font-size:16px; font-weight:500; line-height:1.3; color:var(--c-body); }

/* Цена и кнопки прижаты к низу — карточки в ряду выравниваются */
.shop-card__foot { margin-top:auto; padding-top:clamp(14px,1.5vw,22px); }
/* Старая цена — рядом с новой, но приподнята к верхней линии */
.shop-card__price { display:flex; align-items:flex-start; flex-wrap:wrap; gap:14px; }
.shop-card__price-now { font-size:clamp(1.5rem,1.75vw,28px); font-weight:600; line-height:1.2; color:var(--c-green); }
.shop-card__price-old { font-size:clamp(1rem,1.25vw,20px); font-weight:500; line-height:1.2; color:var(--c-red); text-decoration-line:line-through; }
.shop-card__actions { margin-top:clamp(12px,1.1vw,18px); display:flex; flex-wrap:wrap; gap:10px; }
.shop-card__actions .btn { flex:1 1 130px; min-height:48px; padding:10px 18px; font-size:16px; }
.shop-card__more { background:var(--c-white); color:var(--c-teal); border-color:var(--c-green); }
.shop-card__more:hover { background:var(--c-green); color:var(--c-white); border-color:var(--c-green); }

.shop-more { margin-top:clamp(20px,1.75vw,28px); display:flex; justify-content:center; }
.shop-more__btn { min-width:210px; }

.prod-detail { display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,4vw,60px); align-items:start; padding:clamp(32px,5vw,80px) 0; }
.prod-detail__media { display:flex; flex-direction:column; gap:12px; min-width:0; }
/* wrapper задаёт пропорцию 1:1, Swiper заполняет его абсолютом */
.prod-main-wrap { position:relative; padding-bottom:100%; border-radius:20px; overflow:hidden; background:var(--c-green-050); }
.prod-swiper-main { position:absolute !important; top:0; left:0; width:100% !important; height:100% !important; }
.prod-swiper-main .swiper-wrapper { height:100%; }
.prod-swiper-main .swiper-slide { height:100%; display:flex; align-items:center; justify-content:center; }
.prod-swiper-main .swiper-slide img { width:100%; height:100%; object-fit:contain; display:block; }
.prod-swiper-main .swiper-button-prev,
.prod-swiper-main .swiper-button-next { color:var(--c-green); --swiper-navigation-size:18px; background:var(--c-white); border-radius:50%; width:36px; height:36px; box-shadow:0 2px 8px rgba(0,0,0,.15); }
.prod-swiper-main .swiper-button-prev::after,
.prod-swiper-main .swiper-button-next::after { font-size:11px; font-weight:700; }
/* превьюшки */
.prod-swiper-thumbs { padding:2px 0; }
.prod-swiper-thumbs .swiper-slide { width:90px !important; height:90px; border-radius:12px; overflow:hidden; border:2px solid var(--c-line); cursor:pointer; transition:border-color .2s; }
.prod-swiper-thumbs .swiper-slide img { width:100%; height:100%; object-fit:cover; display:block; }
.prod-swiper-thumbs .swiper-slide-thumb-active { border-color:var(--c-green); }
.prod-detail__title { font-size:clamp(1.5rem,3vw,40px); font-weight:700; color:var(--c-dark); margin-bottom:8px; }
.prod-detail__article { font-size:14px; color:var(--c-ink-3); margin-bottom:16px; }
.prod-detail__text { color:var(--c-dark); line-height:1.6; margin-bottom:24px; }
.prod-detail__buy { display:flex; flex-wrap:wrap; align-items:center; gap:16px; }
.prod-detail__buy .shop-card__price { align-items:center; gap:16px; }
.prod-detail__buy .shop-card__price-now { font-size:clamp(1.75rem,2.5vw,36px); }
.prod-detail__buy .shop-card__price-old { font-size:clamp(1.25rem,1.75vw,26px); font-weight:600; }
.btn--outline { background:transparent; color:var(--c-green); border:2px solid var(--c-green); }
.btn--outline:hover { background:var(--c-green); color:var(--c-white); }
@media (max-width:768px) { .prod-detail { grid-template-columns:1fr; } .prod-swiper-thumbs .swiper-slide { width:72px !important; height:72px; } }

/* ====================== 26.9 СОТРУДНИЧЕСТВО (cooperation.html) ====================== */
/* Кадр Фигмы 2117:6631. Сабренд «Иммунохелс Рус»: акцент бирюзовый, фон секций #f7f7f7. */
/* ========== Сотрудничество /coop (Figma 1:236) ========== */
.page-coop { --header-h: 64px; --c-coop: #104714; }

.header--coop { background: var(--c-white); border-bottom: none; box-shadow: none; }
.header--coop .header__inner { min-height: 64px; padding-block: 10px; }
.header--coop .header__logo img { width: 154px; height: 27px; object-fit: contain; object-position: left center; }
.header--coop .header__ic--search {
    width: 44px; height: 44px; display: grid; place-items: center;
    background: var(--c-teal); border-radius: 40px; color: var(--c-white); padding: 0;
}
.header--coop .header__ic--search:hover { background: var(--c-coop); }
.header--coop .header__btn--home {
    background: var(--c-teal); border-color: var(--c-teal); color: var(--c-white);
    min-width: 175px; justify-content: center;
}
.header--coop .header__btn--home:hover { background: var(--c-coop); border-color: var(--c-coop); }
.header--coop .header__btn--menu {
    background: transparent; border: 2px solid var(--c-teal); color: var(--c-teal);
    min-width: 175px; justify-content: center;
}
.header--coop .header__btn--menu:hover { background: var(--c-teal); color: var(--c-white); }
.header--coop .header__ic--cart { display: none !important; }

/* Оверлей-меню сабренда: панель тёмная, а не салатовая, как у клиники */
.page-coop .menu { width: min(260px, 92vw); background: var(--c-teal); }
.page-coop .menu__link[aria-current="page"] { opacity: .7; }


.footer--coop {
    border-top: 1px solid var(--c-coop);
    background: #fff;
    padding-top: 40px;
    padding-bottom: 32px;
}
.footer--coop .footer__bar {
    display: grid;
    grid-template-columns: auto auto 1fr auto;
    gap: 24px 40px;
    align-items: start;
}
.footer--coop .footer__brand {
    display: flex; align-items: flex-start; gap: 20px;
}
.footer--coop .footer__logo {
    display: block; width: 50px; height: 50px; overflow: hidden;
    border-radius: 10px; flex: 0 0 50px; background: #90b104;
}
.footer--coop .footer__logo img {
    width: 100%; height: 100%; object-fit: cover; object-position: left center;
    display: block;
}
.footer--coop .footer__copy {
    font-size: 20px; font-weight: 500; line-height: 1.3; color: rgba(31,31,31,.7);
}
.footer--coop .footer__links {
    display: flex; flex-direction: column; gap: 4px;
}
.footer--coop .footer__policy {
    font-size: 16px; font-weight: 500; line-height: 1.3;
    color: rgba(31,31,31,.7); text-decoration: underline;
}
.footer--coop .footer__ooo {
    font-size: 18px; font-weight: 500; line-height: 1.3;
    color: rgba(31,31,31,.7); text-align: left;
}
.footer--coop .footer__author {
    font-size: 18px; font-weight: 500; line-height: 1.3;
    color: rgba(31,31,31,.7); text-decoration: underline; white-space: nowrap;
}
.footer--coop .footer__divider {
    margin: 28px 0;
    border: 0; border-top: 1px solid var(--c-coop);
    background: transparent; height: 0;
}
.footer--coop .footer__trademark {
    font-size: 20px; font-weight: 500; line-height: 1.3;
    color: rgba(31,31,31,.7); margin: 0;
}
.footer--coop .footer__edu {
    margin-top: 0; padding-top: 0; padding-bottom: 0;
    font-size: 16px; line-height: 26px; color: #000; font-weight: 500;
}
.footer--coop .footer__edu p { margin: 0; }
.footer--coop .footer__edu a { color: #000; text-decoration: underline; word-break: break-all; }
@media (max-width: 1024px) {
    .footer--coop .footer__bar { grid-template-columns: 1fr; gap: 16px; }
}




.coop-intro { padding-top: calc(var(--header-h) + 47px); overflow: visible; position: relative; z-index: 1; }
.coop-intro__card {
    background: var(--c-grey-050); border-radius: 30px; padding: 30px;
    min-height: 220px; display: flex; align-items: center;
}
.coop-intro__title {
    font-size: clamp(2rem, 5vw, 80px); font-weight: 600; line-height: 1;
    color: var(--c-teal); max-width: 14ch;
}

.coop-test {
    margin-top: 30px; background: var(--c-grey-050);
    padding: 40px 0 56px; overflow: visible; position: relative; z-index: 2;
}
.coop-test__title {
    font-size: clamp(1.75rem, 3.75vw, 60px); font-weight: 600; line-height: 1.3; color: var(--c-teal);
}
.coop-test__grid {
    margin-top: 18px;
    display: grid;
    grid-template-columns: minmax(0, 52%) minmax(0, 48%);
    column-gap: 24px;
    align-items: start;
}
.coop-test__col { display: flex; flex-direction: column; min-width: 0; }
/* old left col overridden */
.coop-test__col--left .coop-test__col--right {
    align-items: flex-end; gap: 20px; padding-top: 0;
}
.coop-test__lead {
    font-size: clamp(1rem, 1.5vw, 24px); font-weight: 500; line-height: 1.3; color: var(--c-body);
}
.coop-test__photo {
    display: block;
    width: min(100%, 491px);
    height: auto;
    max-height: 376px;
    /* заезжает на intro сверху: top фото 303, серая полоса 361 → -58px от верха секции,
       плюс padding 40 + title ~78 + grid mt 18 ≈ ещё -136 → суммарно ~-200 */
    margin-top: -200px;
    margin-right: 66px;
    margin-bottom: 8px;
    object-fit: contain;
    object-position: right top;
    position: relative;
    z-index: 3;
    pointer-events: none;
}
.coop-test__col--right .coop-test__lead {
    width: 100%; max-width: 689px; position: relative; z-index: 1;
}

.coop-btn:hover .coop-btn:hover .coop-steps { padding-top: clamp(60px, 9.4vw, 150px); }
.coop-steps__head { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: nowrap; }
.coop-steps__title {
    font-size: clamp(1.5rem, 3.2vw, 48px); font-weight: 600; line-height: 1.2;
    color: var(--c-teal); max-width: none; white-space: nowrap; margin: 0; flex: 1 1 auto;
    min-width: 0;
}
@media (max-width: 1200px) {
    .coop-steps__title { white-space: normal; }
    .coop-steps__head { flex-wrap: wrap; }
}
.coop-steps__grid {
    margin-top: clamp(28px, 3.8vw, 61px);
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; align-items: stretch;
}
.coop-step {
    position: relative; padding: 94px 20px 24px;
    background: var(--c-white); border: 1px solid var(--c-line-4); border-radius: 20px;
    box-shadow: 2px 2px 6px rgba(0,0,0,.08);
}
.coop-step::before,
.coop-step::after {
    content: ''; position: absolute; left: -2px; top: -2px; width: 154px; height: 95px;
    -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
    -webkit-mask-size: 100% 100%; mask-size: 100% 100%;
}
.coop-step::before {
    background: var(--c-white);
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 154 95'%3E%3Cpath d='M154 1.5H150.5A15 15 0 0 0 135.5 16.5V61A15 15 0 0 1 120.5 76H16.5A15 15 0 0 0 1.5 91V95H0V0H154Z'/%3E%3C/svg%3E");
            mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 154 95'%3E%3Cpath d='M154 1.5H150.5A15 15 0 0 0 135.5 16.5V61A15 15 0 0 1 120.5 76H16.5A15 15 0 0 0 1.5 91V95H0V0H154Z'/%3E%3C/svg%3E");
}
.coop-step::after {
    background: var(--c-line-4);
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 154 95'%3E%3Cpath fill='none' stroke='%23000' d='M154 1.5H150.5A15 15 0 0 0 135.5 16.5V61A15 15 0 0 1 120.5 76H16.5A15 15 0 0 0 1.5 91V95'/%3E%3C/svg%3E");
            mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 154 95'%3E%3Cpath fill='none' stroke='%23000' d='M154 1.5H150.5A15 15 0 0 0 135.5 16.5V61A15 15 0 0 1 120.5 76H16.5A15 15 0 0 0 1.5 91V95'/%3E%3C/svg%3E");
}
.coop-step__badge {
    position: absolute; left: -1px; top: -1px; z-index: 1;
    width: 124px; height: 64px; display: grid; place-items: center; border-radius: 20px;
    background: var(--c-grey-050); border: 4px solid var(--c-coop);
    box-shadow: 2px 2px 6px rgba(0,0,0,.25);
    font-size: 25px; font-weight: 600; line-height: 1.3; text-transform: uppercase; color: var(--c-coop);
}
.coop-step__title { font-size: clamp(1.125rem, 1.5vw, 24px); font-weight: 600; line-height: 1.3; color: var(--c-body); }
.coop-step__list { margin-top: 16px; display: grid; gap: 6px; list-style: none; padding: 0; }
.coop-step__list li {
    position: relative; padding-left: 18px;
    font-size: clamp(0.95rem, 1.25vw, 20px); font-weight: 500; line-height: 1.3; color: var(--c-body);
}
.coop-step__list li::before {
    content: ''; position: absolute; left: 4px; top: .62em;
    width: 4px; height: 4px; border-radius: 50%; background: var(--c-body);
}
.coop-step__note { margin-top: 24px; font-size: clamp(0.95rem, 1.25vw, 20px); font-weight: 600; line-height: 1.3; color: var(--c-body); }

.coop-steps__photo {
    margin: 0; border-radius: 20px; overflow: hidden;
    border: 1px solid #cecece; box-shadow: 2px 2px 6px rgba(0,0,0,.25);
    aspect-ratio: 730 / 373; width: 100%; max-width: 100%;
    background: #f7f7f7; align-self: stretch;
}
.coop-steps__photo img {
    width: 100%; height: 100%; object-fit: cover; object-position: center; display: block;
}

.coop-science { margin-top: clamp(60px, 10.9vw, 174px); background: var(--c-grey-050); padding: 40px 0; }
.coop-science__inner {
    display: grid; grid-template-columns: minmax(0, 1fr) clamp(200px, 22vw, 340px);
    gap: clamp(24px, 3vw, 48px); align-items: end;
}
.coop-science__title { font-size: clamp(1.75rem, 3.75vw, 60px); font-weight: 600; line-height: 1.3; color: var(--c-teal); }
.coop-science__text { margin-top: 24px; max-width: 1086px; font-size: clamp(1rem, 1.5vw, 24px); font-weight: 500; line-height: 1.3; color: var(--c-body); }
.coop-science__side { display: flex; flex-direction: column; align-items: flex-end; gap: 0; }
.coop-science__book {
    width: clamp(200px, 24.875vw, 398px); height: auto; max-height: 427px;
    margin-top: -70px; margin-bottom: 0; object-fit: contain; object-position: bottom right;
}
.coop-science__side .coop-videos { padding-top: clamp(60px, 9.4vw, 150px); }
.coop-videos__title { font-size: clamp(1.75rem, 3.75vw, 60px); font-weight: 600; line-height: 1.3; color: var(--c-teal); }
.coop-videos__grid { margin-top: 40px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
.coop-video__media { position: relative; display: block; border-radius: 20px; overflow: hidden; aspect-ratio: 355 / 236; background: #ddd; }
.coop-video__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.coop-video__play {
    position: absolute; left: 10px; bottom: 10px; width: 50px; height: 50px;
    display: grid; place-items: center; border-radius: 50%;
    background: #104714; color: #fff;
}
.coop-video__play svg { width: 22px; height: 22px; margin-left: 2px; fill: currentColor; display: block; }
.coop-video__caption { margin-top: 16px; font-size: clamp(1rem, 1.5vw, 24px); font-weight: 500; line-height: 1.3; color: var(--c-body); }

.coop-contacts { padding-block: clamp(60px, 9.4vw, 150px) clamp(2.5rem, 4.7vw, 75px); }
.coop-contacts__title { font-size: clamp(1.75rem, 3.75vw, 60px); font-weight: 600; line-height: 1.3; color: var(--c-teal); }
.coop-contacts__top { margin-top: 40px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; align-items: stretch; }
.coop-form { background: var(--c-grey-050); border-radius: 23px; padding: 30px; min-height: 343px; box-sizing: border-box; }
.coop-form form { display: flex; flex-direction: column; gap: 20px; height: 100%; }
.coop-input {
    min-height: 85px; padding: 0 30px; background: var(--c-white); border: none; border-radius: 15px;
    font-size: clamp(1rem, 1.5vw, 24px); font-weight: 500; color: var(--c-body);
}
.coop-input::placeholder { color: #757575; }
.coop-submit {
    margin-top: auto; min-height: 67px; border-radius: 100px; background: var(--c-white);
    color: var(--c-coop); border: 4px solid var(--c-coop);
    font-size: clamp(1rem, 1.5vw, 24px); font-weight: 500; cursor: pointer;
}
.coop-submit:hover { background: var(--c-coop); color: var(--c-white); }
.coop-gallery { border-radius: 30px; overflow: hidden; min-height: 343px; position: relative; height: 100%; }
.coop-gallery .contact-swiper { position: absolute; inset: 0; height: 100% !important; min-height: 0; }
.coop-gallery .swiper-wrapper { height: 100% !important; }
.coop-gallery .swiper-slide { height: 100% !important; }
.coop-gallery .swiper-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }

.coop-info { margin-top: 20px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.coop-info__card {
    display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 10px; align-content: start;
    min-height: 158px; padding: 30px; background: var(--c-grey-050); border-radius: 20px;
    border: 1px solid var(--c-line-4); box-shadow: 2px 2px 6px rgba(0,0,0,.25);
}

.coop-info__val { font-size: clamp(1rem, 1.25vw, 20px); font-weight: 500; line-height: 1.3; color: var(--c-body); }
.coop-info__val a { color: var(--c-body); }


.coop-info__ic { width: 14px; height: 18px; margin-top: 2px; display: flex; align-items: flex-start; color: inherit; }
.coop-info__ic img { width: 14px; height: auto; display: block; }
.coop-gallery .contact-swiper-prev,
.coop-gallery .contact-swiper-next {
    width: 68px; height: 68px; padding: 11px;
    background: var(--c-coop); color: var(--c-white);
    display: grid; place-items: center; border: none; border-radius: 50%;
}
.coop-gallery__chevron { width: 46px; height: 46px; display: block; filter: brightness(0) invert(1); }
/* next chevron is dedicated asset */

@media (max-width: 1280px) {
    .coop-videos__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .coop-test__photo { margin-top: -40px; max-height: 300px; }
}
@media (max-width: 1024px) {
    .coop-test__grid { grid-template-columns: 1fr; }
    .coop-test__photo { margin-top: 0; margin-right: 0; width: min(320px, 80%); max-height: 260px; align-self: center; }
    .coop-test__col--right { align-items: stretch; }
    .coop-steps__grid { grid-template-columns: 1fr; }
    .coop-steps__photo { aspect-ratio: 16 / 9; max-height: 280px; }
    .coop-science__inner { grid-template-columns: 1fr; }
    .coop-science__book { margin-top: 0; }
    .coop-science__side { align-items: flex-start; }
    .coop-contacts__top { grid-template-columns: 1fr; }
    .coop-info { grid-template-columns: 1fr; }
    .coop-gallery, .coop-gallery .contact-swiper, .coop-gallery .swiper-slide img { min-height: 240px; }
}
@media (max-width: 680px) {
    .coop-intro__title { font-size: 2rem; }
    .coop-step { padding: 80px 16px 20px; }
    .coop-step__badge { width: 104px; height: 52px; font-size: 18px; }
    .coop-videos__grid { grid-template-columns: 1fr; }
    }

/* Баннер во всю ширину экрана */
.shop-banner {
    margin-top:clamp(40px,9.4vw,150px); min-height:clamp(220px,21.75vw,348px);
    display:flex; align-items:center;
    background:url('../assets/img/shop/banner.webp') top center/cover no-repeat;
}
.shop-banner__title { font-size:clamp(1.75rem,5vw,80px); font-weight:600; line-height:1; color:var(--c-white); }
.shop-banner__text { margin-top:clamp(16px,2.5vw,40px); max-width:860px; font-size:clamp(1rem,1.63vw,26px); font-weight:500; line-height:1.3; color:var(--c-white); }


/* ====================== 26.6 Политика конфиденциальности ====================== */
/* Длинный юридический текст: ширина строки ограничена, чтобы читалось.
   Селекторы от контейнера — внутри включаемой области только h2/h3/p/a,
   так текст правится в админке без риска снести классы. */
.pp-intro { padding-top:calc(var(--header-h) + 44px); }
.pp-body { padding-block:clamp(2rem,3.75vw,60px); }
.pp-text { font-size:clamp(0.95rem,1.13vw,18px); font-weight:400; line-height:1.55; color:var(--c-dark); }
.pp-text h2 {
    margin-top:clamp(28px,2.5vw,40px); margin-bottom:clamp(10px,1vw,16px);
    font-size:clamp(1.25rem,1.75vw,28px); font-weight:600; line-height:1.3; color:var(--c-teal);
}
.pp-text h2:first-child { margin-top:0; }
.pp-text h3 {
    margin-top:clamp(20px,1.75vw,28px); margin-bottom:clamp(8px,.75vw,12px);
    font-size:clamp(1.05rem,1.38vw,22px); font-weight:600; line-height:1.3; color:var(--c-teal);
}
.pp-text p { margin-top:clamp(8px,.75vw,12px); }
.pp-text p:first-child { margin-top:0; }
.pp-text a { color:var(--c-green); text-decoration:underline; overflow-wrap:anywhere; }


/* ====================== 26.7 Плашка про cookie ====================== */
/* Между шапкой (120) и оверлеем меню (200): плашку видно поверх страницы,
   но открытое меню и модалки её перекрывают. */
.cookie-bar {
    position:fixed; left:0; right:0; bottom:0; z-index:150;
    background:var(--c-white); border-top:1px solid var(--c-line-4);
    box-shadow:0 -4px 16px rgba(0,0,0,.08);
}
.cookie-bar[hidden] { display:none; }
.cookie-bar__inner {
    display:flex; align-items:center; justify-content:space-between;
    gap:clamp(16px,2vw,32px); padding-block:clamp(12px,1.25vw,20px);
}
.cookie-bar__text { flex:1 1 auto; min-width:0; font-size:clamp(0.85rem,1.06vw,17px); font-weight:400; line-height:1.4; color:var(--c-body); }
.cookie-bar__text a { color:var(--c-teal); text-decoration:underline; }
.cookie-bar__btn { flex:0 0 auto; min-height:44px; padding-inline:clamp(20px,2vw,32px); font-size:clamp(0.85rem,1vw,16px); }


/* ====================== 27. АДАПТИВ ====================== */
@media (max-width:1280px){
    /* Сотрудничество */
    .coop-videos__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    /* Интернет-магазин: ряд фильтров перестаёт помещаться — переносим чипы строкой */
    .shop-filters { flex-wrap:wrap; }
    .shop-chips { margin-left:0; flex-wrap:wrap; flex-basis:100%; }
    .shop-chip { padding:0 24px; }
    .prog__layout { grid-template-columns:1fr; }
    .prog__list { position:static; grid-template-columns:repeat(2,1fr); }
    .method-card__text { font-size:20px; }
    .science__book { top:-60px; width:260px; height:280px; }
    .science__side { flex-basis:268px; }
    /* соцсети: с 1280 карточки становятся узкими — переносим блок приложения вниз строкой */
    .contacts__social { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .contacts__app { grid-column:1 / -1; }
    /* Мобильное приложение: кнопки сторов (2×212) не влезают в 4-ю колонку — переносим строкой */
    .app-steps { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .app-download { grid-column:1 / -1; padding-top:10px; display:flex; align-items:center; gap:30px; flex-wrap:wrap; }
    .app-download__btns { margin-top:0; }
    /* Частые вопросы */
    .faq-more__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    /* Все специалисты */
    .team-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width:1024px){
    :root{ --header-h:60px; }
    .header__ic,.header__btn{ display:none; }
    .burger{ display:flex; }
    .doctors-swiper{ margin-inline:calc(var(--pad) * -1); }
    .team-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
    /* Личная страница врача */
    /* Сотрудничество — rules in page-coop block */
    .coop-test__col--left,.coop-test__col--right{ max-width:100%; padding-top:16px; }
    .coop-test__photo{ position:static; margin-top:16px; width:100%; max-width:488px; justify-self:start; }
    .coop-science__inner{ grid-template-columns:1fr; }
    .coop-science__side{ align-items:flex-start; }
    .coop-science__book{ margin-top:0; }
    .coop-contacts__top{ grid-template-columns:1fr; }
    .coop-gallery{ aspect-ratio:728/343; }
    /* Интернет-магазин */
    .shop-grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
    .doc-hero__grid{ grid-template-columns:1fr; }
    .doc-hero__media{ max-width:460px; }
    .doc-hero__row{ grid-template-columns:1fr; min-height:0; }
    .doc-card--spec{ flex-direction:column; align-items:stretch; }
    .doc-hero__btns{ align-self:stretch; align-items:flex-start; margin-top:20px; }
    .footer__bar{ flex-direction:column; align-items:flex-start; gap:.6rem; }
    .hero__food{ display:none; }
    .hero__top{ flex-direction:column; align-items:flex-start; min-height:0; }
    .hero__lead{ max-width:100%; width:auto; }
    .promos__grid{ grid-template-columns:1fr 1fr; }
    .promo--1{ grid-column:1 / -1; }
    .contacts__grid{ grid-template-columns:1fr; }
    .modal__dialog{ grid-template-columns:1fr; max-width:480px; }
    .modal__media{ display:none; }
    .hero__panel{ height:auto; max-width:100%; }
    .hero__logo{ width:80px; height:80px; margin:-3px 0 0 -10px; }
    .hero__lead{ font-size:18px; }
    /* О клинике */
    .about-intro__card{ padding:20px; border-radius:20px; }
    .trust__grid{ grid-template-columns:1fr 1fr; }
    .trust-card--tall{ grid-row:auto; grid-column:1 / -1; }
    .method-card{ flex-direction:column; }
    .method-card__media{ flex:0 0 auto; width:100%; height:clamp(220px,38vw,320px); min-height:0; }
    .method-card__body{ padding-top:0; }
    .science__inner,.subscribe__inner{ flex-direction:column; }
    .science__side{ flex:0 0 auto; align-self:stretch; display:flex; flex-direction:column; align-items:center; gap:20px; }
    .science__book{ position:static; width:260px; height:auto; }
    .science__btn{ position:static; }
    .numbers__grid{ grid-template-columns:1fr; }
    .subscribe__links{ flex-direction:row; flex-wrap:wrap; }
    /* Методология */
    .mtd-card--wide .method-card__media{ flex:0 0 auto; width:100%; height:auto; }
    .mtd-grid{ grid-template-columns:1fr 1fr; }
    .mtd-photo{ grid-column:1 / -1; aspect-ratio:480 / 286; }
    /* Новости */
    .nws-grid{ grid-template-columns:1fr 1fr; }
    .nws-video__grid{ grid-template-columns:1fr 1fr; }
    /* Уголок потребителя */
    .cns-block{ flex-direction:column; gap:20px; }
    .cns-block__btn{ margin-top:0; min-width:0; width:100%; max-width:338px; }
    .cns-req__grid{ grid-template-columns:1fr 1fr; }
    .cns-pay__grid{ grid-template-columns:1fr; }
    .cns-banner__inner{ flex-direction:column; align-items:flex-start; }
    .cns-banner__btn{ margin-bottom:0; }
    /* Отдельный чек-ап */
    .ckp-help__inner{ flex-direction:column; }
    .ckp-help__media{ flex:0 0 auto; width:100%; }
    .ckp-card{ grid-template-columns:1fr; }
    .ckp-includes{ grid-template-columns:1fr; gap:30px; }
    .ckp-prep__grid{ grid-template-columns:1fr 1fr; }
    /* Чек-апы */
    .ck-grid{ grid-template-columns:1fr; }
    .ck-consult__row{ flex-direction:column; }
    .ck-consult__btn{ align-self:flex-start; }
    /* Страница программы */
    .pg-card{ grid-template-columns:1fr; }
    .pg-card__media{ min-height:0; aspect-ratio:591 / 460; }
    .pg-effects{ grid-template-columns:1fr; }
    .pg-effects__media{ max-width:500px; }
    .pg-articles__inner{ flex-direction:column; }
    .pg-articles__media{ flex:0 0 auto; width:100%; max-width:476px; }
    /* Услуги */
    .sv-grid,.sv-chef__grid{ grid-template-columns:1fr 1fr; }
    .sv-doctors__grid{ grid-template-columns:1fr; }
    .sv-chip{ font-size:18px; min-height:52px; padding:10px 18px; }
    .sv-chips{ gap:12px; }
    /* Успешно лечим */
    .trt-tabs{ grid-template-columns:1fr; }
    .trt-tabs__list{ grid-template-columns:1fr 1fr; }
    .trt-diseases,.trt-prevent__grid{ grid-template-columns:1fr; gap:30px; }
    .trt-diseases__list{ padding-left:29px; }
    .trt-cta__inner{ flex-direction:column; align-items:flex-start; }
    /* Научная база */
    .sci-book{ position:static; width:260px; height:auto; margin:20px auto 0; }
    .sci-hero{ flex-direction:column; gap:20px; }
    .sci-grid{ grid-template-columns:1fr; }
    .sci-list__text{ max-width:none; }
    .sci-outro{ flex-direction:column; align-items:stretch; gap:20px; }
    /* Мобильное приложение */
    .app-phones{ grid-template-columns:repeat(2,minmax(0,1fr)); }
    .app-steps{ grid-template-columns:1fr 1fr; }
    .app-banner{ min-height:0; padding-block:30px; }
    .app-banner__inner{ flex-direction:column; align-items:flex-start; gap:24px; }
    .app-banner__btn{ margin-bottom:0; }
    .reviews-nav__btn{ width:48px; height:48px; }
    .reviews-nav__btn .icon{ width:24px; height:24px; }
    #reviews .section-head--row{ margin-bottom:40px; }
    /* Входной экран */
    /* margin-left:auto висел на .lp-nav — вместе с ним пропадал и прижим
       телефона с бургером к правому краю, шапка сбивалась влево */
    .lp-nav{ display:none; }
    .lp-head__phone{ margin-left:auto; }
    .lp-row{ grid-template-columns:1fr 1fr; row-gap:30px; }
    .lp-quote{ grid-column:1 / -1; }
    .lp-quote__mark--close{ justify-self:start; }
    /* Частые вопросы */
    .faq-social__inner{ flex-direction:column; }
    .faq-social__btns{ flex:0 0 auto; align-self:stretch; flex-direction:row; flex-wrap:wrap; }
    .faq-social__btn{ flex:1 1 200px; }
}
@media (max-width:680px){
    .section{ padding-block:2rem; }
    .container{ padding-inline:10px; }
    /* Все специалисты */
    .team-grid{ grid-template-columns:1fr; gap:16px; }
    .team-card__name{ font-size:20px; margin-top:16px; }
    .team-card__badge{ font-size:13px; padding:8px; }
    /* Личная страница врача */
    /* Модалка корзины: строка товара разъезжается на две */
    .cart-modal{ border-radius:20px; }
    .cart-modal__title{ font-size:22px; padding-right:36px; }
    .cart-modal__close{ top:10px; right:10px; width:36px; height:36px; }
    .cart-modal__item{ flex-wrap:wrap; gap:12px; padding-top:20px; }
    .cart-modal__thumb{ width:70px; height:70px; }
    .cart-modal__thumb img{ max-height:58px; }
    .cart-modal__name{ flex:1 1 calc(100% - 82px); font-size:16px; }
    .cart-modal__price{ margin-left:auto; font-size:16px; }
    .cart-modal__remove{ margin-left:12px; width:36px; height:36px; }
    .cart-modal__actions{ gap:10px; }
    .cart-modal__btn{ flex:1 1 100%; min-height:52px; font-size:16px; }
    /* Сотрудничество */
    .coop-intro__card{ padding:20px; border-radius:20px; min-height:0; }
    .coop-intro__title{ font-size:26px; }
    .coop-test__title{ font-size:26px; }
    .coop-science__title{ font-size:24px; }
    .coop-steps__title,.coop-videos__title,.coop-contacts__title{ font-size:26px; }
    .coop-steps__head{ flex-direction:column; align-items:flex-start; gap:16px; flex-wrap:wrap; }
.coop-steps__title{ white-space:normal; font-size:26px; }
    .coop-test__lead,.coop-science__text{ font-size:15px; }
    .coop-test__lead--shift{ margin-left:0; }
    .coop-step{ padding:78px 16px 16px; border-radius:15px; }
    .coop-step__badge{ width:104px; height:52px; font-size:18px; border-radius:15px; }
    .coop-step__title{ font-size:17px; }
    .coop-step__list li,.coop-step__note{ font-size:14px; }
    .coop-videos__grid{ grid-template-columns:1fr; }
    .coop-video__caption{ font-size:15px; margin-top:12px; }
    .coop-form{ padding:16px; border-radius:15px; }
    .coop-input{ min-height:56px; padding:0 18px; font-size:16px; }
    .coop-submit{ min-height:52px; font-size:16px; }
    .coop-info{ grid-template-columns:1fr; }
    .coop-info__card{ min-height:0; padding:18px; border-radius:15px; }
    /* вырез и левый паддинг пересчитываем под меньшую высоту кнопки */
    /* Интернет-магазин */
    .shop-grid{ grid-template-columns:1fr; gap:16px; }
    .shop-card{ border-radius:15px; }
    .shop-search,.shop-sort{ flex:1 1 100%; }
    .shop-chip{ height:38px; padding:0 18px; font-size:14px; }
    .shop-group__title{ font-size:24px; }
    .shop-catalog__title{ font-size:26px; }
    .shop-card__title{ font-size:16px; }
    .shop-card__text{ font-size:14px; }
    .shop-banner__title{ font-size:26px; }
    .shop-banner__text{ font-size:15px; }
    .crumbs{ font-size:14px; }
    .doc-hero__name{ font-size:30px; }
    .doc-hero__creds,.doc-hero__role{ font-size:15px; }
    .doc-card{ padding:18px; border-radius:20px; }
    .doc-card__title{ font-size:18px; }
    .doc-card__list li{ font-size:15px; }
    .doc-hero__btns{ align-self:stretch; align-items:stretch; }
    .doc-hero__btns .btn{ width:100%; }
    .doc-hero__video{ left:10px; right:10px; bottom:10px; font-size:14px; padding-inline:12px; }
    .doc-since__lbl{ font-size:15px; }
    .doc-since__year{ font-size:24px; }
    .doc-section__title{ font-size:26px; }
    .doc-timeline__item{ grid-template-columns:1fr; gap:6px; padding:16px; }
    .doc-timeline__year{ font-size:20px; }
    .doc-timeline__text{ font-size:15px; }
    .doc-dev{ padding:18px; }
    .doc-dev__title{ font-size:18px; }
    .doc-dev__list li{ font-size:15px; }
    /* Hero mobile */
    .hero{ padding-top:calc(var(--header-h) + 10px); padding-bottom:30px; }
    .hero__container{ display:flex; flex-direction:column; }
    .hero__bottom{ order:-1; margin-top:0; padding:20px 10px; min-height:auto; border-radius:10px; }
    .hero__title{ font-size:36px; line-height:1.3em; max-width:100%; }
    .hero__food{ display:block; position:relative; right:auto; bottom:auto; width:100%; max-width:354px; height:234px; margin:20px auto 0; }
    .hero__food img{ width:100%; height:auto; object-fit:contain; }
    .hero__food1{ width:68.4%; left:31.6%; top:0; }
    .hero__food2{ display:block; width:57.8%; left:14.2%; top:22.8%; }
    .hero__food3{ display:block; width:47.8%; left:0; top:44.7%; }
    .hero__dot{ display:block; }
    .hero__dot--1{ width:26px; height:23px; left:75.1%; top:41.7%; }
    .hero__dot--2{ width:21px; height:19px; left:50.9%; top:58.1%; }
    .hero__dot--3{ width:18px; height:16px; left:30.4%; top:73.8%; }
    .hero__top{ order:1; padding:10px; gap:10px; position:relative; background:var(--c-green-050); border-radius:10px; margin-inline:-10px; }
    .hero__panel{ height:auto; border-radius:10px; padding:10px 12px 10px 58px; max-width:100%; gap:6px; align-items:center; }
    .hero__logo{ position:absolute; left:11px; top:11px; width:48px; height:47px; margin:0; z-index:1; }
    .hero__lead{ font-size:18px; line-height:1.3; width:auto; }
    /* Specialists: 2 columns on mobile per Figma */
    .doctor__name{ font-size:18px; text-transform:uppercase; }
    .doctor__btn{ font-size:14px; }
    /* Programs */
    .prog__list{ grid-template-columns:1fr; }
    /* кегли больше не переопределяем: их держит clamp в базовых правилах,
       а фиксированные значения тут делали текст крупнее нового минимума */
    .prog-card__top{ flex-wrap:wrap; gap:8px; }
    .prog-card__buy,.prog-card__more{ padding:6px 14px; }
    /* плашка cookie: в строку не влезает, кнопка уходит под текст */
    .cookie-bar__inner{ flex-direction:column; align-items:stretch; gap:12px; }
    .cookie-bar__btn{ width:100%; }
    .prog-slider{ overflow:hidden; padding:20px 0; }
    .prog-panel__btns{ flex-direction:column; }
    .prog-panel__btns .btn{ width:100%; padding-inline:1rem; }
    /* Reviews */
    .review-card{ padding:16px; }
    .review-card__name{ font-size:16px; }
    .review-card__text{ font-size:14px; }
    .review-card__date{ font-size:14px; }
    /* Promos */
    .promos__grid{ grid-template-columns:1fr; }
    .promo--1{ grid-column:auto; }
    .promo{ color:var(--c-teal); border-radius:10px; }
    .promo__title{ color:var(--c-teal); }
    /* Contacts */
    .contacts__social{ grid-template-columns:1fr; }
    .contacts__app{ align-items:center; }
    .contacts__app-btns{ flex-wrap:nowrap; justify-content:center; }
    .contacts__extras{ flex-direction:column; align-items:flex-start; }
    .contact-box{ border-radius:10px; }
    .map-embed{ height:226px; border-radius:10px; }
    .contact-box--gallery{ border-radius:10px; }
    .footer__ooo{ text-align:left; }
    /* Section titles */
    .section-head__title{ font-size:30px; }
    /* О клинике */
    .about-intro{ padding-top:calc(var(--header-h) + 10px); }
    .about-intro__card{ border-radius:10px; }
    .about-intro__card--text{ margin-top:10px; }
    .about-intro__title{ font-size:36px; line-height:1.15; }
    .about-intro__lead{ font-size:18px; }
    .trust__grid{ grid-template-columns:1fr; }
    .trust-card{ border-radius:10px; }
    .trust-card__title{ font-size:20px; margin-top:14px; }
    .trust-card__text{ font-size:16px; }
    .method-card{ border-radius:10px; padding:10px; gap:16px; }
    .method-card__title{ font-size:22px; }
    .method-card__text{ font-size:16px; }
    .method-card__btn,.method__all,.science__btn{ width:100%; }
    /* Методология */
    .mtd-intro{ padding-top:calc(var(--header-h) + 10px); }
    .mtd-lead{ font-size:16px; }
    .mtd-tech-title{ font-size:22px; }
    .mtd-grid{ grid-template-columns:1fr; }
    .mtd-item{ border-radius:10px; }
    .mtd-item__title{ font-size:20px; margin-top:14px; }
    .mtd-item__text{ font-size:16px; }
    .mtd-photo{ border-radius:10px; }
    /* Новости */
    .nws-grid,.nws-video__grid{ grid-template-columns:1fr; }
    .nws-card{ border-radius:10px; min-height:0; }
    .nws-card__title{ font-size:18px; }
    .nws-video__title{ font-size:30px; }
    .nws-video__caption{ font-size:16px; }
    .nws-video__media{ border-radius:10px; }
    /* Уголок потребителя */
    .cns-block__title,.cns-req__title,.cns-pay__title{ font-size:30px; }
    .cns-block__text,.cns-pay-card__text,.cns-req__val{ font-size:16px; }
    .cns-req__grid{ grid-template-columns:1fr; }
    .cns-req__label,.cns-pay-card__title{ font-size:18px; }
    .cns-pay-card{ padding:20px; border-radius:10px; min-height:0; }
    .cns-banner__title{ font-size:24px; }
    .cns-banner__btn{ width:100%; min-width:0; }
    /* Отдельный чек-ап */
    .ckp-help__title{ font-size:30px; }
    .ckp-help__text{ font-size:16px; }
    .ckp-help__input,.ckp-help__btn{ width:100%; }
    .ckp-help__media{ border-radius:10px; }
    .ckp-card{ padding:10px; gap:16px; border-radius:10px; }
    .ckp-card__list,.ckp-includes__list,.ckp-prep-card__text{ font-size:16px; }
    .ckp-includes__title,.ckp-prep__title{ font-size:30px; }
    .ckp-prep__grid{ grid-template-columns:1fr; }
    .ckp-prep-card{ padding:20px; border-radius:10px; min-height:0; }
    .ckp-prep-card__title{ font-size:18px; }
    .ckp-card__btn{ width:100%; }
    /* Чек-апы */
    /* Мобильное приложение */
    .app-intro{ padding-top:calc(var(--header-h) + 10px); }
    .app-intro .ck-intro__card{ padding:20px; border-radius:10px; }
    .app-how{ margin-top:30px; }
    .app-how__title{ font-size:30px; }
    .app-phones{ margin-top:20px; }
    .app-steps{ grid-template-columns:1fr; margin-top:20px; }
    .app-step{ min-height:0; border-radius:10px; }
    .app-download{ display:block; padding-top:0; }
    .app-download__title{ font-size:20px; }
    .app-download__btns{ margin-top:16px; }
    .app-download__btns,.contacts__app-btns{ margin-inline:0; gap:12px; }
    .app-btn{ flex:1 1 0; min-width:0; max-width:212px; }
    .app-btn img{ width:100%; height:auto; }
    .app-banner{ margin-top:40px; padding-block:24px; }
    .app-banner__text{ margin-top:12px; }
    .app-banner__btn{ width:100%; max-width:280px; }
    /* Входной экран */
    .lp-head__logo img{ width:150px; }
    .lp-head__phone{ font-size:15px; }
    .lp-title{ font-size:24px; }
    .lp-row{ grid-template-columns:1fr; row-gap:20px; }
    .lp-list li,.lp-more{ font-size:16px; }
    .lp-quote__text{ font-size:22px; }
    .lp-ctas{ grid-template-columns:1fr; gap:20px; }
    .lp-foot{ justify-content:flex-start; gap:8px 20px; }
    /* Частые вопросы */
    .faq-intro{ padding-top:calc(var(--header-h) + 10px); }
    .faq-intro .ck-intro__card{ padding:20px; border-radius:10px; }
    .faq-intro__lead{ margin-top:14px; font-size:16px; }
    .faq-list{ margin-top:30px; gap:12px; }
    .faq-item__q{ min-height:0; gap:14px; padding:16px; }
    .faq-item__ic{ flex-basis:24px; width:24px; }
    .faq-item__title{ font-size:18px; }
    .faq-item__a{ padding:0 16px 20px 54px; }
    .faq-item__a p{ font-size:16px; }
    .faq-more__title,.faq-social__title{ font-size:30px; }
    .faq-more__grid{ grid-template-columns:1fr; margin-top:24px; }
    .faq-more-card{ min-height:0; padding:20px; border-radius:10px; }
    .faq-more-card__title{ font-size:20px; }
    .faq-more-card__text{ font-size:16px; margin-top:14px; }
    .faq-more-card__btn{ margin-top:20px; }
    .faq-social{ margin-top:40px; padding-block:24px; }
    .faq-social__text{ font-size:16px; margin-top:14px; }
    .faq-social__btns{ flex-direction:column; }
    .faq-social__btn{ flex:0 0 auto; }   /* иначе flex-basis из 1024 уходит в высоту */
    .ck-intro{ padding-top:calc(var(--header-h) + 10px); }
    .ck-intro__card{ padding:20px; border-radius:10px; }
    .ck-intro__title{ font-size:36px; }
    /* «конфиденциальности» — одно длинное слово, в 36px за экран 375px не влезает.
       У остальных страниц с этим заголовком слова короткие, поэтому правим точечно. */
    .pp-intro .ck-intro__title{ font-size:clamp(1.5rem,7vw,32px); overflow-wrap:anywhere; }
    .ck-intro__promo{ font-size:16px; margin-top:16px; }
    .ck-card{ border-radius:10px; }
    .ck-card__head{ flex-direction:column; gap:14px; }
    .ck-card__media{ flex:0 0 auto; width:100%; height:clamp(150px,42vw,200px); }
    .ck-card__title{ font-size:18px; }
    .ck-card__val{ font-size:18px; }
    .ck-card__old{ font-size:15px; margin-left:0; }
    .ck-card__list,.ck-consult__note{ font-size:15px; }
    .ck-card__btns .btn,.ck-consult__btn{ width:100%; }
    /* Страница программы */
    .pg-intro{ padding-top:calc(var(--header-h) + 10px); }
    .pg-intro__card{ padding:20px; border-radius:10px; }
    .pg-intro__title{ font-size:36px; }
    .pg-card{ padding:10px; gap:16px; border-radius:10px; }
    .pg-card__list li,.pg-effects__lead,.pg-effects__list li,.pg-articles__text{ font-size:16px; }
    .pg-card__btns .btn{ width:100%; }
    .pg-effects__title,.pg-articles__title{ font-size:30px; }
    /* Услуги */
    .sv-intro{ padding-top:calc(var(--header-h) + 10px); }
    .sv-grid,.sv-chef__grid{ grid-template-columns:1fr; }
    .sv-card,.sv-chef-card,.sv-doc{ border-radius:10px; }
    .sv-card__name,.sv-doc__name,.sv-chef-card__title{ font-size:18px; }
    .sv-card__bio,.sv-card__val,.sv-doc__item,.sv-chef-card__text{ font-size:16px; }
    .sv-chip{ font-size:15px; min-height:44px; padding:8px 14px; border-radius:10px; }
    .sv-doc{ flex-direction:column; }
    .sv-doc__media{ flex:0 0 auto; width:160px; }
    .sv-doc__btn,.sv-chef-card__btn,.sv-banner__btn{ width:100%; }
    .sv-banner__title{ font-size:24px; }
    /* Успешно лечим */
    .trt-intro{ padding-top:calc(var(--header-h) + 10px); }
    .trt-tabs__list{ grid-template-columns:1fr; }
    .trt-tab{ min-height:0; font-size:16px; border-radius:10px; }
    .trt-panel__title,.trt-card__title{ font-size:18px; }
    .trt-panel__sub,.trt-panel__text,.trt-note p,.trt-diseases__item,.trt-card__sub{ font-size:16px; }
    .trt-card{ flex-direction:column; border-radius:10px; }
    .trt-card__media{ flex:0 0 auto; width:100%; height:clamp(160px,45vw,220px); }
    .trt-card__list li{ font-size:15px; }
    .trt-note{ border-radius:10px; }
    .trt-btn{ width:100%; font-size:16px; }
    /* Научная база */
    .sci-intro{ padding-top:calc(var(--header-h) + 10px); }
    .sci-about__title{ font-size:30px; }
    .sci-note__lead{ font-size:18px; }
    .sci-note__text,.sci-lead,.sci-list__text{ font-size:16px; }
    .sci-outro__text{ font-size:20px; }
    .sci-list,.sci-photo{ border-radius:10px; }
    .sci-btn{ width:100%; }
    .science{ padding-block:30px; }
    .science__title{ font-size:30px; }
    .science__text,.subscribe__text{ font-size:18px; margin-top:16px; }
    .num-row{ flex-direction:column; align-items:flex-start; gap:6px; padding:16px; border-radius:10px; }
    .num-row__val{ font-size:32px; }
    .numbers__map{ padding:6px 16px; border-radius:10px; }
    .subscribe{ padding-block:30px; }
    .subscribe__title{ font-size:30px; }
    .subscribe__links{ flex-direction:column; width:100%; }
    .subscribe__btn{ width:100%; }
}
@media (max-width:400px){
    .btn{ width:100%; }
    .hero__btn{ width:auto; align-self:flex-start; }
}
@media print {
    .header,.footer,.burger,.menu,.menu-scrim,.modal{ display:none!important; }
    body{ color:#000; background:#fff; }
}


/* ====================== 27. КОРЗИНА И ОФОРМЛЕНИЕ ЗАКАЗА ======================
   Штатный шаблон sale.basket.basket подключает /bitrix/css/main/bootstrap.css
   (template.php: addExternalCss). Раньше он грузился ПОСЛЕ нашего файла и ставил
   .container ширину 1170px вместо наших 1600 — отсюда были узкие шапка и подвал.
   Теперь style.css подключается последним (после ShowHead в header.php), поэтому
   базовые стили ничем перебивать не нужно: правила ниже только правят разметку
   самого компонента. Отдельного правила на .btn здесь быть не должно — префикс
   «html body» бил специфичностью по нашим же .btn--ghost, .btn--outline и
   поблочным кнопкам (.trt-cta__btn, .cart-modal__btn--outline) на всех страницах.
   То же лечение работает и на /order/. */
html body .container { width:100%; max-width:var(--container); margin-inline:auto; padding-inline:var(--pad); }
html body a { color:var(--link); text-decoration:none; }
html body h1,html body h2,html body h3,html body h4 { color:var(--heading); line-height:var(--lh-t); font-weight:600; }

/* ---- 27.1 Корзина: штатный шаблон приводим к виду сайта ----------------------
   Все правила с префиксом html body: css компонента и bootstrap грузятся после
   нашего файла, обычной специфичности не хватает. */
html body .basket-items-list-wrapper,
html body .basket-checkout-section {
    background:var(--c-white); border:1px solid var(--c-line-4); border-radius:20px;
}
html body .basket-items-list-wrapper { margin-top:20px; overflow:hidden; }
html body .basket-items-list-table { border:none; margin:0; }
html body .basket-items-list-item-container { border-bottom:1px solid var(--c-line-4); }
html body .basket-items-list-item-container:last-child { border-bottom:none; }
html body .basket-items-list-item-descriptions { padding:24px 30px; vertical-align:middle; }
html body .basket-items-list-item-descriptions-inner { display:flex; align-items:center; gap:24px; }

/* картинка товара: в штатном шаблоне она растягивала строку на пол-экрана */
html body .basket-item-block-image { flex:0 0 110px; width:110px; padding:0; }
html body .basket-item-image { width:110px; height:110px; max-width:110px; max-height:110px; object-fit:contain; }

html body .basket-item-block-info { flex:1; min-width:0; padding:0; }
html body .basket-item-info-name { margin:0; font-size:20px; line-height:1.35; }
html body .basket-item-info-name-link { color:var(--c-teal); font-weight:600; text-decoration:none; }
html body .basket-item-info-name-link:hover { color:var(--c-green-dark); }

/* цены: при скидке штатный шаблон кладёт старую цену position:absolute
   поверх текущей и рисует зачёркивание SVG-волной — цифры слипаются.
   Складываем столбиком: старая сверху, актуальная под ней. */
html body .basket-item-block-price {
    display:inline-flex; flex-direction:column; align-items:center; gap:2px;
    position:relative; padding:0; text-align:center; white-space:normal;
}
html body .basket-item-price-current,
html body .basket-items-list-item-price .basket-item-price-current {
    font-size:22px; font-weight:600; line-height:1.3; color:var(--c-body); white-space:nowrap;
}
html body .basket-item-block-price .basket-item-price-old {
    position:static; top:auto; right:auto; order:-1;
    font-size:16px; font-weight:500; line-height:1.2; color:var(--c-red); opacity:.7;
    text-decoration:line-through;
}
html body .basket-item-block-price .basket-item-price-old-text {
    position:static; display:inline; font:inherit; color:inherit;
}
html body .basket-item-block-price .basket-item-price-old-text:after {
    content:none; display:none; background:none;
}
html body .basket-item-price-difference { font-size:14px; font-weight:500; color:var(--c-green); }
html body .basket-items-list-item-price-for-one,
html body .basket-item-price-title { font-size:14px; font-weight:500; color:rgba(31,31,31,.5); }
/* Цена по центру ячейки, как счётчик рядом. Класс basket-items-list-item-price
   несут обе ячейки — и «цена за штуку», и сумма строки, поэтому правило одно.
   vertical-align выравнивает их со счётчиком по одной линии. */
html body .basket-items-list-item-price { text-align:center; vertical-align:middle; }

/* Счётчик количества — единая плашка [ − | 1 | + ].
   Именно grid, а не flex: ячейка таблицы узкая, на flex-wrap кнопки
   сваливались в столбик. Колонки по содержимому, перенос исключён.
   Границы общие: у «−» скругление слева и нет правой линии, у поля только
   верх и низ, у «+» скругление справа и нет левой — стыки не задваиваются. */
html body .basket-items-list-item-amount { vertical-align:middle; }
html body .basket-item-block-amount {
    display:inline-grid; grid-template-columns:auto auto auto;
    align-items:stretch; justify-content:center; gap:0;
}
html body .basket-item-amount-btn-minus,
html body .basket-item-amount-btn-plus {
    width:38px; min-height:38px; border:1px solid var(--c-line-5); background:var(--c-white);
    color:var(--c-line-5); display:inline-flex; align-items:center; justify-content:center;
    transition:color var(--t1),border-color var(--t1),background var(--t1);
}
html body .basket-item-amount-btn-minus { border-right:none; border-radius:100px 0 0 100px; }
html body .basket-item-amount-btn-plus  { border-left:none;  border-radius:0 100px 100px 0; }
html body .basket-item-amount-btn-minus:hover,
html body .basket-item-amount-btn-plus:hover { color:var(--c-green); background:var(--bg-soft); }
html body .basket-item-amount-filed-block {
    display:inline-flex; align-items:center;
    border-top:1px solid var(--c-line-5); border-bottom:1px solid var(--c-line-5);
    background:var(--c-white);
}
html body .basket-item-amount-field, html body .basket-item-amount-filed {
    width:48px; height:auto; padding:0; border:none; background:transparent; border-radius:0;
    text-align:center; font-size:18px; font-weight:500; color:var(--c-teal);
}
html body .basket-item-amount-field-description {
    grid-column:1 / -1; margin-top:6px; text-align:center;
    font-size:13px; font-style:normal; font-weight:400; color:rgba(31,31,31,.5);
}

/* итог и купон */
html body .basket-checkout-section { padding:24px 30px; }
html body .basket-checkout-block-total-title,
html body .basket-checkout-block-total-description { font-size:16px; font-weight:500; color:rgba(31,31,31,.6); }
html body .basket-checkout-block-total-price-inner {
    display:flex; flex-direction:column; align-items:flex-end; position:relative;
}
html body .basket-checkout-block-total-price-current,
html body .basket-checkout-block-total-price { font-size:clamp(1.75rem,2.5vw,38px); font-weight:600; color:var(--c-body); }
html body .basket-coupon-block-total-price-old {
    position:static; top:auto; right:auto; order:-1;
    font-size:18px; font-weight:500; line-height:1.2; color:var(--c-red); opacity:.7;
    text-decoration:line-through;
}
html body .basket-coupon-block-total-price-old:after {
    content:none; display:none; background:none;
}
html body .basket-coupon-block-field, html body .basket-coupon-input {
    border:1px solid var(--c-line-4); border-radius:40px; min-height:46px; padding:0 20px;
    font-size:16px; color:var(--c-body); background:var(--c-white);
}
html body .basket-coupon-block-field-description { font-size:14px; color:rgba(31,31,31,.5); }
html body .basket-btn-checkout, html body .basket-checkout-button {
    display:inline-flex; align-items:center; justify-content:center;
    min-height:50px; padding:10px 30px; border-radius:100px;
    background:var(--c-green); border:2px solid transparent; color:var(--c-white);
    font-size:18px; font-weight:500; text-shadow:none; box-shadow:none;
}
html body .basket-btn-checkout:hover, html body .basket-checkout-button:hover { background:var(--c-green-dark); color:var(--c-white); }

/* пустая корзина */
html body .bx-sbb-empty-cart-text { font-size:clamp(1.25rem,2vw,28px); font-weight:600; color:var(--c-teal); }
html body .bx-sbb-empty-cart-desc a { color:var(--c-green); text-decoration:underline; }

/* Кнопка «Оформить заказ» приходит с классами bootstrap .btn.btn-default плюс
   зелёный из темы компонента — перебиваем адресно, иначе выигрывает тема. */
html body .basket-checkout-container .btn.basket-btn-checkout,
html body a.basket-btn-checkout, html body button.basket-btn-checkout {
    width:auto; min-width:230px; margin:0; padding:12px 30px;
    background:var(--c-green); background-image:none; border:2px solid transparent; border-radius:100px;
    color:var(--c-white); font-size:18px; font-weight:500; text-shadow:none; box-shadow:none;
}
/* border-color обязателен: рамка у кнопки прозрачная (border:2px solid transparent),
   а тема компонента на :hover/:focus/:active красит её своим цветом — и по краю
   кнопки проступает контур. Гасим во всех трёх состояниях. */
html body .basket-checkout-container .btn.basket-btn-checkout:hover,
html body a.basket-btn-checkout:hover, html body button.basket-btn-checkout:hover,
html body .basket-checkout-container .btn.basket-btn-checkout:focus,
html body a.basket-btn-checkout:focus, html body button.basket-btn-checkout:focus,
html body .basket-checkout-container .btn.basket-btn-checkout:active,
html body a.basket-btn-checkout:active, html body button.basket-btn-checkout:active {
    background:var(--c-green-dark); border-color:transparent; box-shadow:none;
}
/* Обводку снимаем только у мышиного фокуса: с клавиатуры кольцо должно остаться,
   его даёт общее правило :focus-visible. */
html body a.basket-btn-checkout:focus:not(:focus-visible),
html body button.basket-btn-checkout:focus:not(:focus-visible) { outline:none; }

/* внутренние плашки итога и купона своих рамок не имеют — рамка одна, общая */
html body .basket-checkout-block, html body .basket-coupon-section,
html body .basket-coupon-block-field-inner { border:none; background:transparent; box-shadow:none; }
html body .basket-checkout-section-inner { display:flex; align-items:center; justify-content:flex-end; gap:24px; flex-wrap:wrap; }
html body .basket-coupon-text { font-size:16px; font-weight:500; color:rgba(31,31,31,.6); }

/* рамка у блока оформления одна — на внешнем контейнере */
html body .basket-checkout-section { border:none; border-radius:0; padding:0; background:transparent; }
html body .basket-checkout-container {
    border:1px solid var(--c-line-4); border-radius:20px; background:var(--c-white);
    padding:24px 30px; display:flex; align-items:center; gap:30px; flex-wrap:wrap;
}
html body .basket-coupon-section { flex:1; min-width:280px; }
html body .basket-coupon-block-field-description { display:block; margin-bottom:8px; }

/* у купона рамка только на самом поле — обёртка без своей «пилюли» */
html body .basket-coupon-block-field { border:none; border-radius:0; padding:0; min-height:0; background:transparent; }
html body .basket-coupon-input { width:100%; }

/* Корзина на узких экранах.
   Штатный шаблон держит купон минимум в 280px и раскладывает итог по правому
   краю — на телефоне это давало горизонтальный вылет и пустой провал между
   купоном и «Итого». Складываем в колонку и выравниваем всё по центру. */
@media (max-width:768px) {
    html body .basket-checkout-container { padding:20px; gap:16px; flex-direction:column; align-items:stretch; }
    html body .basket-coupon-section { flex:none; min-width:0; width:100%; }
    html body .basket-checkout-section-inner { justify-content:center; gap:10px; flex-direction:column; }
    html body .basket-checkout-block-total-inner,
    html body .basket-checkout-block-total-price-inner { text-align:center; }
    html body .basket-checkout-block-total-price-current { font-size:clamp(1.5rem,7vw,32px); }
    html body .basket-checkout-block-btn { width:100%; }
    html body .basket-checkout-container .btn.basket-btn-checkout,
    html body a.basket-btn-checkout, html body button.basket-btn-checkout { width:100%; min-width:0; }

    /* строка товара: название, счётчик, цена и сумма — всё по центру */
    html body .basket-items-list-item-descriptions,
    html body .basket-items-list-item-amount,
    html body .basket-items-list-item-price { text-align:center; }
    html body .basket-items-list-item-descriptions-inner { flex-direction:column; gap:12px; text-align:center; }
    html body .basket-item-block-price { display:flex; }
    html body .basket-checkout-block-total-price-inner { align-items:center; }
}

/* ---- 27.2 Оформление заказа: штатный шаблон sale.order.ajax -----------------
   Компонент рисует секции голубой рамкой и своими кнопками. Возвращаем зелёный
   и типографику сайта; префикс html body — по той же причине, что и в корзине. */
html body .bx-soa-section {
    border:1px solid var(--c-line-4); border-radius:20px; margin-bottom:20px;
    background:var(--c-white); box-shadow:none; overflow:hidden;
}
html body .bx-soa-section.bx-active,
html body .bx-soa-section.bx-selected { border-color:var(--c-green); }
html body .bx-soa-section-title-container { background:var(--bg-soft); border:none; padding:18px 26px; }
html body .bx-soa-section-title {
    font-size:22px; font-weight:600; line-height:1.3; color:var(--c-teal); margin:0;
}
html body .bx-soa-section-title-count {
    background:var(--c-white); color:var(--c-green); border:1px solid var(--c-line-3);
    width:26px; height:26px; line-height:26px; font-size:14px; font-weight:600;
}
html body .bx-soa-section-content { padding:26px; }

/* правая колонка с итогом */
html body .bx-soa-cart-total { border:1px solid var(--c-line-4); border-radius:20px; background:var(--c-white); padding:8px 4px; }
html body .bx-soa-cart-total .bx-soa-cart-t,
html body .bx-soa-cart-total-line { font-size:17px; font-weight:500; color:var(--c-body); }
html body .bx-soa-cart-total-line-total { font-size:clamp(1.5rem,2.2vw,32px); font-weight:600; color:var(--c-body); }

/* товары в заказе — штатный шаблон печатает их мелким жирным */
html body .bx-soa-item-title, html body .bx-soa-item-td-title { font-size:17px; font-weight:600; color:var(--c-teal); }
html body .bx-soa-item-tr, html body .bx-soa-item-td { font-size:16px; font-weight:500; color:var(--c-body); }

/* кнопки шага и правки */
html body .bx-soa-editstep, html body .bx-soa-section .btn-default, html body .bx-soa-section .btn-primary {
    background:var(--c-green); background-image:none; border:2px solid transparent; border-radius:100px;
    color:var(--c-white); font-size:17px; font-weight:500; min-height:46px; padding:10px 28px;
    text-shadow:none; box-shadow:none;
}
html body .bx-soa-editstep:hover, html body .bx-soa-section .btn-default:hover { background:var(--c-green-dark); color:var(--c-white); }
html body .bx-soa-section-title-container .bx-soa-editstep {
    background:transparent; color:var(--c-green); border:none; min-height:0; padding:0; font-size:15px; text-decoration:underline;
}
html body .bx-soa-section-title-container .bx-soa-editstep:hover { background:transparent; color:var(--c-green-dark); }

/* поля формы (не селекторы местоположения — у них своя разметка) */
html body .bx-soa-section .form-control:not(.bx-sls):not(.bx-slst):not(.dropdown-block),
html body .bx-soa-customer-field input:not(.bx-ui-sls-fake):not(.bx-ui-combobox-fake),
html body .bx-soa-location-input-container > input {
    min-height:46px; border:1px solid var(--c-line-4); border-radius:12px; padding:8px 16px;
    font-size:16px; line-height:1.4; color:var(--c-body); box-shadow:none; box-sizing:border-box;
}
html body .bx-soa-section .form-control:focus { border-color:var(--c-green); box-shadow:none; }

/* Местоположение: поиск (.bx-sls) и шаги (.bx-slst).
   Битрикс: container overflow:hidden + fake height:33px/font:14px — буквы обрезаются.
   Высота строки без вертикального padding у absolute-инпута. */
html body .bx-soa .bx-sls.form-control,
html body .bx-soa .bx-slst.form-control,
html body .bx-soa .bx-sls .form-control.dropdown-block,
html body .bx-soa .bx-slst .form-control.dropdown-block,
html body .bx-soa .bx-sls .dropdown-block,
html body .bx-soa .bx-slst .dropdown-block {
    height:48px; min-height:48px; padding:0 40px 0 36px; overflow:visible;
    background:var(--c-white); border:1px solid var(--c-line-4); border-radius:12px;
    box-shadow:none; font-size:16px; margin-bottom:10px;
}
html body .bx-soa .bx-slst .dropdown-block:last-child { margin-bottom:0; }
html body .bx-soa .bx-sls .bx-ui-sls-container,
html body .bx-soa .bx-slst .bx-ui-combobox-container {
    overflow:visible !important; min-height:48px !important; height:48px; position:relative;
}
html body .bx-soa .bx-sls .bx-ui-sls-fake,
html body .bx-soa .bx-sls .bx-ui-sls-route,
html body .bx-soa .bx-slst .bx-ui-combobox-fake,
html body .bx-soa .bx-slst .bx-ui-combobox-route,
html body .bx-soa .bx-slst .bx-combobox-fake-as-input {
    height:48px !important; line-height:48px !important;
    padding:0 !important; margin:0 !important;
    font-size:16px !important; font-weight:500;
    box-sizing:border-box; overflow:visible !important;
}
html body .bx-soa .bx-sls .bx-ui-sls-fake,
html body .bx-soa .bx-slst .bx-ui-combobox-fake { color:var(--c-body) !important; }
html body .bx-soa .bx-sls .bx-ui-sls-route,
html body .bx-soa .bx-slst .bx-ui-combobox-route { color:rgba(31,31,31,.55) !important; }
html body .bx-soa .bx-sls .dropdown-icon,
html body .bx-soa .bx-slst .dropdown-icon {
    top:50% !important; left:12px; margin-top:-7px; width:14px; height:14px;
}
html body .bx-soa .bx-sls .bx-ui-sls-clear,
html body .bx-soa .bx-slst .bx-ui-combobox-toggle {
    top:50% !important; right:6px; margin-top:-15px; width:30px; height:30px;
}
html body .bx-soa .bx-sls .dropdown-fade2white,
html body .bx-soa .bx-slst .dropdown-fade2white {
    top:0; right:0; height:100%; width:48px;
}
html body .bx-soa .bx-sls .bx-ui-sls-pane,
html body .bx-soa .bx-slst .bx-ui-combobox-dropdown { top:50px; }

/* свёрнутый шаг и подсказки — крупнее, без обрезанного line-height */
html body .bx-soa-section-content { font-size:16px; line-height:1.45; color:var(--c-body); }
html body .bx-soa-section.bx-step-completed .bx-soa-section-content,
html body .bx-soa-section.bx-selected .bx-soa-section-content { line-height:1.45; }
html body .bx-soa-info-text { font-size:14px; line-height:1.4; color:rgba(31,31,31,.6); }

/* Тема компонента красит эти узлы через !important, поэтому здесь оно тоже нужно —
   иначе «Далее» остаётся ядовито-зелёной кнопкой из коробки. */
html body a.bx-soa-editstep, html body .bx-soa-section a.bx-soa-editstep {
    background:var(--c-green) !important; background-image:none !important;
    border-color:transparent !important; color:var(--c-white) !important;
    border-radius:100px !important;
}
html body a.bx-soa-editstep:hover { background:var(--c-green-dark) !important; }
/* «изменить» в шапке шага — не кнопка, а ссылка */
html body .bx-soa-section-title-container a.bx-soa-editstep {
    background:transparent !important; color:var(--c-green) !important; border:none !important;
}

/* номер шага — счётчик в ::after; светлый круг, зелёная цифра */
html body .bx-soa-section-title-count { border-radius:50%; text-align:center; }
html body .bx-soa-section .bx-soa-section-title-count::after {
    color:var(--c-green); font-size:16px; font-weight:600; line-height:26px;
}
html body .bx-soa-section.bx-step-completed .bx-soa-section-title-count {
    background:var(--c-white); border-color:var(--c-green);
}
html body .bx-soa-section.bx-step-completed .bx-soa-section-title-count::after {
    color:var(--c-green);
}

/* у обычных полей фиксированная высота не нужна; местоположение — выше отдельно */
html body .bx-soa-section .form-control:not(.bx-sls):not(.bx-slst):not(.dropdown-block) {
    min-height:0; height:auto; line-height:1.4; padding:11px 16px;
}

/* Bootstrap из штатной корзины добавляет .container:before/:after — клирфикс
   времён float-вёрстки. В обычном блоке они безвредны, но наши .container внутри
   шапки и подвала — flex, и там псевдоэлементы становятся полноценными flex-детьми.
   При justify-content:space-between они занимают края и выталкивают логотип
   с кнопками к середине: отсюда «шапка не прижата к краям» на /cart/ и /order/.
   Ширина контейнера при этом правильная — дело только в лишних детях. */
html body .container::before, html body .container::after { content:none; display:none; }

/* ---- 28. Прайсы на /services/: строки-таблицы -------------------------------
   Формат как на боевом сайте: строка-плашка с колонками и кнопкой заявки.
   Колонок три, а у лаборатории добавляется срок изготовления. */
.sv-table { margin-top:24px; display:flex; flex-direction:column; gap:10px; --sv-cols:1fr 180px 220px; }
.sv-table--term { --sv-cols:1fr 150px 190px 220px; }
.sv-table__head {
    display:grid; grid-template-columns:var(--sv-cols); gap:20px; align-items:center;
    padding:0 24px 4px; font-size:14px; font-weight:500; color:rgba(31,31,31,.5);
}
.sv-table__row {
    display:grid; grid-template-columns:var(--sv-cols); gap:20px; align-items:center;
    padding:14px 24px; min-height:64px;
    background:var(--c-white); border:1px solid var(--c-line-4); border-radius:12px;
    transition:border-color var(--t2);
}
.sv-table__row:hover { border-color:var(--c-green); }
.sv-table__name { font-size:17px; font-weight:500; line-height:1.35; color:var(--c-green-dark); }
.sv-table__bio { display:block; margin-top:4px; font-size:13px; font-weight:500; color:rgba(31,31,31,.5); }
.sv-table__price { font-size:17px; font-weight:600; color:var(--c-body); white-space:nowrap; }
.sv-table__term { font-size:16px; font-weight:500; color:rgba(31,31,31,.6); white-space:nowrap; }
.sv-table__act { display:flex; justify-content:flex-end; }
.sv-table__btn { width:100%; max-width:220px; min-height:40px; padding:8px 18px; border-radius:40px; font-size:15px; }

@media (max-width:900px) {
    .sv-table__head { display:none; }
    .sv-table__row { grid-template-columns:1fr; gap:10px; }
    .sv-table__act { justify-content:flex-start; }
    .sv-table__btn { max-width:none; }
}

/* ---- 28.1 Блок прайс-листа --------------------------------------------------- */
.sv-price { margin-top:clamp(2.5rem,6.25vw,100px); padding:clamp(2rem,3.75vw,60px) 0; background:var(--bg-soft); }
.sv-price__inner { display:flex; align-items:center; justify-content:space-between; gap:40px; flex-wrap:wrap; }
.sv-price__body { max-width:760px; }
.sv-price__title { font-size:var(--fs-h1); font-weight:600; line-height:1.2em; color:var(--c-teal); }
.sv-price__text { margin-top:20px; font-size:clamp(1rem,1.25vw,20px); font-weight:500; line-height:1.35; color:var(--c-body); }
.sv-price__side { display:flex; flex-direction:column; align-items:center; gap:20px; flex-shrink:0; }
.sv-price__cover { width:180px; }
.sv-price__btn { min-width:220px; min-height:46px; border-radius:40px; }
.sv-price__cover img { width:100%; height:auto; display:block; }

/* ====================== 29. intl-tel-input ====================== */
.iti { display:block; }
.iti input { width:100%; }
._iti-dial { margin-left:5px; margin-right:2px; font-size:13px; font-weight:600; color:var(--c-body); white-space:nowrap; }
.iti__selected-country { padding-right:6px; }
.iti__arrow { margin-left:4px; border-top-color:var(--c-body); }
.iti__dropdown-content { border:1px solid rgba(0,0,0,.12); border-radius:8px; box-shadow:0 4px 16px rgba(0,0,0,.08); }
.iti__country.iti__highlight { background:var(--bg-soft,#f5f5f5); }
/* чекбокс согласия в контакт-форме магазина */
.contact-consent { margin-top:12px; font-size:13px; color:var(--c-body); }

/* анкета вычета: на узких экранах поля в одну колонку */
@media (max-width:560px) {
    .field-row { grid-template-columns:1fr; }
}
.years--error .checkbox--chip { border-color:#c0392b; }


/* coop-test layout fix */
.coop-test {
    margin-top: 30px;
    background: var(--c-grey-050);
    padding: 40px 0 56px;
    overflow: visible;
    position: relative;
    z-index: 2;
}
.coop-test > .container { position: relative; }
.coop-test__title {
    font-size: clamp(1.75rem, 3.75vw, 60px);
    font-weight: 600;
    line-height: 1.2;
    color: var(--c-teal);
    margin: 0;
    max-width: 52%;
}
.coop-test__grid {
    margin-top: 18px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    column-gap: 40px;
    align-items: stretch;
}
.coop-test__col {
    display: flex;
    flex-direction: column;
    min-width: 0;
}
.coop-test__col--left {
    justify-content: flex-start;
    gap: 32px;
    padding-top: 8px;
    padding-bottom: 8px;
    min-height: 0;
}
.coop-test__col--right {
    align-items: flex-end;
    gap: 20px;
    padding-top: 0;
}
.coop-test__photo {
    display: block;
    width: min(100%, 491px);
    height: auto;
    max-height: 376px;
    margin-top: -200px;
    margin-right: 66px;
    margin-bottom: 8px;
    margin-left: auto;
    object-fit: contain;
    object-position: right top;
    position: relative;
    z-index: 3;
    pointer-events: none;
}
.coop-test__lead {
    font-size: clamp(1rem, 1.5vw, 24px);
    font-weight: 500;
    line-height: 1.3;
    color: var(--c-body);
    width: 100%;
    max-width: none;
    margin: 0;
    position: relative;
    z-index: 1;
}
.coop-test__col--left .coop-btn {
    margin-top: 8px;
    align-self: flex-start;
}
@media (max-width: 1100px) {
    .coop-test__photo { margin-top: -80px; margin-right: 24px; max-height: 320px; }
    .coop-test__title { max-width: none; }
}
@media (max-width: 900px) {
    .coop-test__grid { grid-template-columns: 1fr; gap: 24px; }
    .coop-test__photo {
        margin-top: 0; margin-right: 0; margin-left: 0;
        width: min(100%, 400px); max-height: 300px; align-self: center;
    }
    .coop-test__col--right { align-items: stretch; }
}
/* end coop-test layout fix */


/* coop-steps spacing fix */
.coop-steps {
    padding-top: clamp(80px, 9.4vw, 150px) !important;
    padding-bottom: 40px;
}
.coop-steps__head {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    flex-wrap: nowrap;
    margin-bottom: 0;
}
.coop-steps__grid {
    margin-top: 64px !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 20px !important;
    align-items: stretch;
}
.coop-step {
    position: relative;
    box-sizing: border-box;
    padding: 100px 28px 32px 28px !important;
    background: #fff;
    border: 1px solid #cecece !important;
    border-radius: 20px !important;
    box-shadow: 2px 2px 6px rgba(0,0,0,.08);
    min-height: 415px;
}
.coop-step__badge {
    position: absolute;
    left: -1px;
    top: -1px;
    z-index: 2;
    box-sizing: border-box;
    width: 124px !important;
    height: 64px !important;
    display: grid;
    place-items: center;
    border-radius: 20px;
    background: #f5f5f5;
    border: 4px solid #104714 !important;
    box-shadow: 2px 2px 6px rgba(0,0,0,.25);
    font-size: 25px !important;
    font-weight: 600;
    line-height: 1.3;
    text-transform: uppercase;
    color: #104714 !important;
}
.coop-step__title {
    margin: 0;
    padding: 0;
    font-size: clamp(1.125rem, 1.5vw, 24px);
    font-weight: 600;
    line-height: 1.3;
    color: #1f1f1f;
}
.coop-step__list {
    margin: 16px 0 0 !important;
    padding: 0 0 0 4px !important;
    display: grid;
    gap: 8px;
    list-style: none;
}
.coop-step__list li {
    position: relative;
    padding-left: 18px !important;
    margin: 0;
    font-size: clamp(0.95rem, 1.25vw, 20px);
    font-weight: 500;
    line-height: 1.35;
    color: #1f1f1f;
}
.coop-step__list li::before {
    content: '';
    position: absolute;
    left: 4px;
    top: 0.62em;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: #1f1f1f;
}
.coop-step__note {
    margin-top: 24px !important;
    padding: 0;
    font-size: clamp(0.95rem, 1.25vw, 20px);
    font-weight: 600;
    line-height: 1.3;
    color: #1f1f1f;
}
.coop-test {
    padding-bottom: 64px !important;
}
.coop-test__col--left .coop-btn {
    margin-top: 28px !important;
}
@media (max-width: 900px) {
    .coop-steps__grid {
        grid-template-columns: 1fr !important;
        margin-top: 36px !important;
        gap: 16px !important;
    }
    .coop-step {
        padding: 88px 20px 24px 20px !important;
        min-height: 0;
    }
    .coop-step__badge {
        width: 110px !important;
        height: 56px !important;
        font-size: 20px !important;
    }
    .coop-steps__head {
        flex-wrap: wrap;
        flex-direction: column;
        align-items: flex-start;
    }
}
/* end coop-steps spacing fix */


/* coop-videos slider fix */
.coop-videos {
    padding-top: 150px;
    padding-bottom: 0;
    overflow: hidden;
}
.coop-videos__title {
    font-size: clamp(1.75rem, 3.75vw, 60px);
    font-weight: 600;
    line-height: 1.2;
    color: var(--c-teal);
    margin: 0;
}
.coop-videos__swiper,
.videos-swiper {
    margin-top: 40px;
    overflow: visible;
}
.coop-videos .swiper-wrapper {
    align-items: stretch;
}
.coop-videos .swiper-slide {
    height: auto;
    box-sizing: border-box;
}
.coop-video {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-width: 0;
}
.coop-video__media {
    position: relative;
    display: block;
    border-radius: 20px;
    overflow: hidden;
    aspect-ratio: 355 / 236;
    background: #ddd;
}
.coop-video__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform .45s cubic-bezier(.22, 1, .36, 1);
    will-change: transform;
}
.coop-video__media:hover img,
.coop-video__media:focus-visible img {
    transform: scale(1.045);
}
.coop-video__play {
    position: absolute;
    left: 10px;
    bottom: 10px;
    width: 50px;
    height: 50px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #104714;
    color: #fff;
    transition: transform .35s cubic-bezier(.22, 1, .36, 1), background-color .35s ease;
}
.coop-video__play svg {
    width: 22px;
    height: 22px;
    margin-left: 2px;
    fill: currentColor;
    display: block;
}
.coop-video__media:hover .coop-video__play,
.coop-video__media:focus-visible .coop-video__play {
    transform: scale(1.06);
    background: #0a2e0c;
}
.coop-video__caption {
    margin-top: 20px;
    font-size: clamp(1rem, 1.5vw, 24px);
    font-weight: 500;
    line-height: 1.3;
    color: var(--c-body);
}
/* section gaps ~ Figma 150 */
.coop-steps {
    padding-top: 150px !important;
    padding-bottom: 40px;
}
.coop-science {
    margin-top: 150px !important;
    padding: 40px 0;
}
.coop-contacts {
    padding-top: 150px !important;
}
@media (max-width: 1024px) {
    .coop-videos { padding-top: 80px; }
    .coop-steps { padding-top: 80px !important; }
    .coop-science { margin-top: 80px !important; }
    .coop-contacts { padding-top: 80px !important; }
}
@media (max-width: 680px) {
    .coop-videos { padding-top: 60px; }
    .coop-video__caption { font-size: 15px; margin-top: 12px; }
}
/* end coop-videos slider fix */


/* Tilda coop-btn: fill SVG under + outline SVG on top; hover opacity 0 (same as immunohealth1.ru) */
.coop-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    margin-top: 0;
    gap: 0;
    flex: 0 0 auto;
    max-width: 100%;
    isolation: isolate;
    height: 46px;
    min-height: 46px;
    box-sizing: border-box;
    /* chevron sits in Tilda oval (~x=20); text after oval+gap (~x=70+) */
    padding: 0 40px 0 18px;
    color: #104714;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.2;
    white-space: nowrap;
    border: 0 !important;
    background: transparent !important;
}
/* bottom layer = green fill (always there) */
.coop-btn::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image: url("/local/templates/immunohealth/assets/img/coop/icons/btn-tilda-fill.svg?v=pad2");
    background-repeat: no-repeat;
    background-size: 100% 100%;
    background-position: center;
}
/* top layer = white outline; fades out on hover like Tilda sbs animate */
.coop-btn::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    background-image: url("/local/templates/immunohealth/assets/img/coop/icons/btn-tilda-outline.svg?v=pad2");
    background-repeat: no-repeat;
    background-size: 100% 100%;
    background-position: center;
    opacity: 1;
    transition: opacity .2s ease;
}
.coop-btn:hover::after,
.coop-btn:focus-visible::after {
    opacity: 0;
}
.coop-btn__ic {
    position: relative;
    z-index: 2;
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    margin: 0;
    padding: 0;
    display: grid;
    place-items: center;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0;
    color: #104714;
}
.coop-btn__ic::after { content: none !important; display: none !important; }
.coop-btn__ic svg,
.coop-btn__ic img {
    width: 18px;
    height: 18px;
    display: block;
    filter: none !important;
}
.coop-btn__label {
    position: relative;
    z-index: 2;
    display: block;
    margin: 0 0 0 36px;
    padding: 0;
    height: auto;
    min-height: 0;
    color: inherit;
    font: inherit;
    line-height: inherit;
    white-space: nowrap;
    border: 0 !important;
    background: transparent !important;
    background-image: none !important;
    -webkit-mask: none !important;
            mask: none !important;
}
.coop-btn__label::before,
.coop-btn__label::after {
    content: none !important;
    display: none !important;
}
.coop-btn:hover,
.coop-btn:focus-visible {
    color: #fff !important;
}
.coop-btn:hover .coop-btn__ic,
.coop-btn:focus-visible .coop-btn__ic {
    color: #fff !important;
    background: transparent !important;
    border: 0 !important;
}
.coop-btn:hover .coop-btn__ic img,
.coop-btn:focus-visible .coop-btn__ic img {
    filter: brightness(0) invert(1) !important;
}
.coop-btn:hover .coop-btn__label,
.coop-btn:focus-visible .coop-btn__label {
    color: #fff !important;
}
.coop-steps__head .coop-btn { flex: 0 0 auto; margin-top: 0; }
.coop-test__col--left .coop-btn { margin-top: 28px; align-self: flex-start; }
@media (max-width: 640px) {
    .coop-btn {
        height: 42px;
        min-height: 42px;
        padding: 0 28px 0 14px;
        font-size: 14px;
    }
    .coop-btn__ic { width: 16px; height: 16px; }
    .coop-btn__ic svg,
    .coop-btn__ic img { width: 16px; height: 16px; }
    .coop-btn__label { margin-left: 28px; }
}
/* end coop-btn tilda */


/* ========== company page Figma 1:13 (do not touch /about/) ========== */
.company-page { color: #1f1f1f; }
.company-h2 {
    margin: 0 0 clamp(28px, 3vw, 48px);
    color: #00403c;
    font-size: clamp(32px, 4.2vw, 60px);
    font-weight: 600;
    line-height: 1.3;
}
.company-lead {
    margin: 0 0 clamp(28px, 3vw, 48px);
    font-size: clamp(16px, 1.5vw, 24px);
    font-weight: 500;
    line-height: 1.3;
    color: #1f1f1f;
    max-width: 1485px;
}
.company-text {
    margin: 0 0 1.2em;
    font-size: clamp(16px, 1.5vw, 24px);
    font-weight: 500;
    line-height: 1.3;
    color: #1f1f1f;
}
.company-text:last-child { margin-bottom: 0; }
.company-em { color: #104714; font-weight: 600; }

.company-intro {
    padding: calc(var(--header-h) + 45px) 0 0;
}
.company-intro__card {
    background: #f7f7f7;
    border-radius: 30px;
    padding: clamp(24px, 3vw, 40px) clamp(24px, 3vw, 40px);
    min-height: clamp(120px, 14vw, 220px);
    display: flex;
    align-items: center;
}
.company-intro__title {
    margin: 0;
    color: #00403c;
    font-size: clamp(36px, 5.5vw, 80px);
    font-weight: 600;
    line-height: 1;
    max-width: 950px;
}

.company-mission { padding: clamp(60px, 9vw, 150px) 0 clamp(40px, 5vw, 80px); }
.company-mission__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: clamp(24px, 3vw, 48px);
    align-items: start;
}
.company-mission__media {
    border: 1px solid #cecece;
    border-radius: 20px;
    overflow: hidden;
    background: #f7f7f7;
}
.company-mission__media img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 674 / 392;
    object-fit: cover;
    object-position: center;
}

.company-audience { padding: 0 0 clamp(60px, 8vw, 120px); }
.company-audience__list {
    display: flex;
    flex-direction: column;
    gap: clamp(20px, 2vw, 30px);
}
.company-card {
    display: grid;
    grid-template-columns: minmax(200px, 347px) minmax(0, 1fr);
    gap: clamp(20px, 3vw, 40px);
    align-items: center;
    border: 1px solid #cecece;
    border-radius: 20px;
    box-shadow: 2px 2px 6px rgba(0,0,0,.25);
    padding: clamp(16px, 2vw, 28px);
    background: #fff;
}
.company-card__media {
    border: 1px solid #cecece;
    border-radius: 10px;
    overflow: hidden;
}
.company-card__media img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 347 / 227;
    object-fit: cover;
}
.company-card__title {
    margin: 0 0 12px;
    color: #00403c;
    font-size: clamp(20px, 2vw, 30px);
    font-weight: 600;
    line-height: 1.3;
    text-transform: uppercase;
}

.company-team { padding: 0 0 clamp(60px, 8vw, 120px); }
.company-team__grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: clamp(12px, 1.2vw, 20px);
    overflow: visible;
}
.company-person {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-width: 0;
    overflow: visible;
    padding: 0 4px 14px;
}
.company-person__photo {
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    background: linear-gradient(180deg, rgba(241,253,246,.3) 0%, rgba(5,174,21,.4) 100%);
    aspect-ratio: 278 / 350;
}
.company-person__photo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: top center;
}
/* Как doctor__cred на /clinic/: плашка на фото, не под ним */
.company-person__role {
    position: absolute;
    left: 10px;
    bottom: 11px;
    max-width: calc(100% - 20px);
    margin: 0;
    padding: 8px;
    border: 1px solid var(--c-line-3);
    border-radius: 12px;
    background: var(--c-white);
    font-size: 12.5px;
    font-weight: 500;
    line-height: 1.3;
    color: #1f1f1f;
}
.company-person__name {
    margin: 0;
    color: #00403c;
    font-size: clamp(12px, 1.15vw, 20px);
    font-weight: 600;
    line-height: 1.25;
    text-transform: uppercase;
    min-height: 2.5em;
}
.company-person .coop-btn {
    align-self: stretch;
    width: 100%;
    max-width: 100%;
    margin-top: 4px;
    height: 36px;
    min-height: 36px;
    padding: 0;
    box-sizing: border-box;
    overflow: visible;
    white-space: nowrap;
}
/* hide full-button Tilda layers — they clip in narrow cards */
.company-person .coop-btn::before,
.company-person .coop-btn::after {
    content: none !important;
    display: none !important;
    background: none !important;
}
.company-person .coop-btn__ic {
    flex: 0 0 34px;
    width: 34px;
    height: 30px;
    margin: 0;
    border: 3px solid #104714 !important;
    border-radius: 999px;
    background: #fff !important;
    color: #104714;
    z-index: 2;
}
.company-person .coop-btn__ic img {
    width: 12px;
    height: 12px;
    filter: none !important;
}
.company-person .coop-btn__label {
    position: relative;
    z-index: 1;
    margin: 0 0 0 -12px;
    padding: 0 18px 0 20px;
    height: 36px;
    min-height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1 1 auto;
    min-width: 0;
    font-size: 12px;
    font-weight: 500;
    color: #104714;
    white-space: nowrap;
}
.company-person .coop-btn__label::before {
    content: '' !important;
    display: block !important;
    position: absolute;
    inset: -2px;
    z-index: -1;
    pointer-events: none;
    background-image: url("/local/templates/immunohealth/assets/img/coop/icons/btn-label.svg?v=pad3");
    background-repeat: no-repeat;
    background-size: 100% 100%;
    background-position: center;
}
.company-person .coop-btn__label::after {
    content: none !important;
    display: none !important;
}
.company-person .coop-btn:hover,
.company-person .coop-btn:focus-visible {
    color: #fff !important;
}
.company-person .coop-btn:hover .coop-btn__ic,
.company-person .coop-btn:focus-visible .coop-btn__ic {
    background: #104714 !important;
    border-color: #104714 !important;
    color: #fff !important;
}
.company-person .coop-btn:hover .coop-btn__ic img,
.company-person .coop-btn:focus-visible .coop-btn__ic img {
    filter: brightness(0) invert(1) !important;
}
.company-person .coop-btn:hover .coop-btn__label,
.company-person .coop-btn:focus-visible .coop-btn__label {
    color: #fff !important;
}
.company-person .coop-btn:hover .coop-btn__label::before,
.company-person .coop-btn:focus-visible .coop-btn__label::before {
    background-image: url("/local/templates/immunohealth/assets/img/coop/icons/btn-label-fill.svg?v=pad3");
}

.coop-btn--sm {
    height: 36px;
    min-height: 36px;
    font-size: 12px;
}

.coop-btn--on-dark { color: #fff !important; }
.coop-btn--on-dark::after { opacity: 0 !important; }
.coop-btn--on-dark .coop-btn__ic img {
    filter: brightness(0) invert(1) !important;
}
.coop-btn--on-dark .coop-btn__label { color: #fff !important; }

.company-certs { padding: 0 0 clamp(60px, 8vw, 120px); }
.company-certs__row {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: clamp(8px, 1vw, 16px);
    margin: clamp(28px, 3vw, 48px) 0;
}
.company-certs__row img {
    display: block;
    width: 100%;
    height: auto;
    border: 1px solid #cecece;
    object-fit: cover;
    aspect-ratio: 230 / 325;
    background: #fff;
}
.company-certs__note { max-width: 1485px; }

.company-milestones {
    position: relative;
    padding: clamp(48px, 6vw, 90px) 0;
    background:
        linear-gradient(90deg, rgba(0,0,0,.55) 0%, rgba(0,0,0,.35) 45%, rgba(255,255,255,.05) 100%),
        url("/local/templates/immunohealth/assets/img/company/milestones-bg.png") center / cover no-repeat;
    color: #fff;
}
.company-milestones__inner {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 32px;
}
.company-milestones__title {
    margin: 0 0 24px;
    font-size: clamp(32px, 4vw, 60px);
    font-weight: 600;
    line-height: 1.2;
    color: #fff;
    max-width: 730px;
}
.company-milestones__text {
    margin: 0;
    max-width: 891px;
    font-size: clamp(16px, 1.5vw, 24px);
    font-weight: 500;
    line-height: 1.3;
    color: #fff;
}

.company-req { padding: clamp(60px, 8vw, 120px) 0; }
.company-req__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(24px, 4vw, 60px);
}
.company-req__item { margin-bottom: clamp(24px, 3vw, 40px); }
.company-req__item:last-child { margin-bottom: 0; }
.company-req__label {
    margin: 0 0 12px;
    color: #00403c;
    font-size: clamp(16px, 1.6vw, 24px);
    font-weight: 600;
    line-height: 1.3;
    text-transform: uppercase;
}
.company-req__val {
    margin: 0;
    font-size: clamp(15px, 1.4vw, 20px);
    font-weight: 500;
    line-height: 1.3;
    color: #1f1f1f;
}
.company-req__val--up { text-transform: uppercase; }
.company-req__val a { color: inherit; text-decoration: none; }
.company-req__val a:hover { text-decoration: underline; }

.company-contacts { padding: 0 0 clamp(60px, 8vw, 100px); }
.company-contacts__top {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(16px, 2vw, 24px);
    margin-bottom: clamp(24px, 3vw, 40px);
    align-items: stretch;
}
.company-contacts__form .contact-box {
    background: #f7f7f7;
    border-radius: 23px;
    padding: clamp(20px, 2vw, 30px);
    height: 100%;
    box-sizing: border-box;
}
.company-contacts__form .contact-submit,
.company-contacts__form .btn.contact-submit {
    width: 100%;
    border: 4px solid #104714;
    background: #fff;
    color: #104714;
    border-radius: 999px;
    min-height: 56px;
    font-size: 20px;
    font-weight: 500;
    box-shadow: none !important;
    transform: none !important;
    transition: background-color .25s ease, color .25s ease, border-color .25s ease;
}
.company-contacts__form .contact-submit:hover,
.company-contacts__form .btn.contact-submit:hover,
.company-contacts__form .contact-submit:focus-visible,
.company-contacts__form .btn.contact-submit:focus-visible {
    background: #104714;
    color: #fff;
    border-color: #104714;
    box-shadow: none !important;
    transform: none !important;
}
.company-contacts__slider {
    position: relative;
    border-radius: 30px;
    overflow: hidden;
    width: 100%;
    height: 343px;
    max-height: 343px;
    background: #e8e8e8;
}
.company-contacts__slider .swiper-wrapper { height: 100%; }
.company-contacts__slider .swiper-slide {
    height: 343px;
    overflow: hidden;
}
.company-contacts__slider img {
    display: block;
    width: 100%;
    height: 343px;
    max-height: 343px;
    object-fit: cover;
    object-position: center;
}
.company-contacts__nav {
    position: absolute;
    top: 50%;
    z-index: 2;
    transform: translateY(-50%);
    width: 68px;
    height: 68px;
    border: 0;
    border-radius: 50%;
    background: #104714 center / 28px no-repeat;
    cursor: pointer;
}
.company-contacts__nav--prev {
    left: 20px;
    background-image: url("/local/templates/immunohealth/assets/img/coop/icons/chevron-left.svg");
}
.company-contacts__nav--next {
    right: 20px;
    background-image: url("/local/templates/immunohealth/assets/img/coop/icons/chevron-right.svg");
}

@media (max-width: 1200px) {
    .company-team__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
    .company-mission__grid,
    .company-card,
    .company-contacts__top,
    .company-req__grid {
        grid-template-columns: 1fr;
    }
    .company-team__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .company-contacts__slider,
    .company-contacts__slider .swiper-slide,
    .company-contacts__slider img {
        height: 260px;
        max-height: 260px;
    }
}
@media (max-width: 640px) {
    .company-team__grid { grid-template-columns: 1fr; }
    .company-contacts__nav { width: 48px; height: 48px; }
}
/* end company page */


/* ===== method page Figma 1:671 ===== */
.method-page { color: #1f1f1f; }
.method-h2 {
    margin: 0 0 clamp(24px, 3vw, 40px);
    color: #00403c;
    font-size: clamp(32px, 4.2vw, 60px);
    font-weight: 600;
    line-height: 1.3;
}
.method-h3 {
    margin: 0 0 clamp(20px, 2.5vw, 32px);
    color: #00403c;
    font-size: clamp(20px, 2vw, 30px);
    font-weight: 600;
    line-height: 1.3;
}
.method-lead {
    margin: 0 0 clamp(24px, 3vw, 36px);
    font-size: clamp(16px, 1.5vw, 24px);
    font-weight: 500;
    line-height: 1.3;
    color: #1f1f1f;
    max-width: 1050px;
}
.method-lead--narrow { max-width: 1317px; }
.method-text {
    margin: 0 0 1.15em;
    font-size: clamp(16px, 1.5vw, 24px);
    font-weight: 500;
    line-height: 1.3;
    color: #1f1f1f;
}
.method-text:last-child { margin-bottom: 0; }
.method-em { color: #104714; font-weight: 600; }
.method-em-strong { color: #1f1f1f; font-weight: 600; font-size: clamp(18px, 1.8vw, 30px); line-height: 1.3; }

.method-intro {
    padding: calc(var(--header-h, 72px) + 45px) 0 0;
}
.method-intro__card {
    background: #f7f7f7;
    border-radius: 30px;
    padding: clamp(24px, 3vw, 40px) clamp(24px, 3vw, 40px);
    min-height: clamp(120px, 14vw, 222px);
    display: flex;
    align-items: center;
}
.method-intro__title {
    margin: 0;
    color: #00403c;
    font-size: clamp(36px, 5.5vw, 80px);
    font-weight: 600;
    line-height: 1;
    max-width: 900px;
}
.method-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 12px;
    margin: clamp(20px, 2.5vw, 32px) 0 0;
}
.method-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 7px 20px;
    border-radius: 100px;
    background: #f7f7f7;
    color: #00403c;
    font-size: 16px;
    font-weight: 500;
    line-height: 26px;
    text-decoration: none;
    transition: background .2s, color .2s;
}
.method-chip:hover { background: #104714; color: #fff; }

.method-science {
    margin-top: clamp(40px, 5vw, 80px);
    padding: 0 0 clamp(48px, 6vw, 80px);
}
/* Серая плашка кончается на кнопке «Подробнее», дальше страница белая (Фигма) */
.method-science__band {
    background: var(--c-grey-050);
    padding: clamp(28px, 3.4vw, 40px) 0 clamp(20px, 2.4vw, 30px);
}
.method-science__top {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(220px, 407px);
    gap: clamp(24px, 3vw, 48px);
    align-items: start;
}
.method-science__btns {
    display: flex;
    flex-wrap: wrap;
    gap: 16px 20px;
    margin: 0;
}
/* Подпись и кнопка pdf стоят в одну строку под плашкой */
.method-science__cta {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: clamp(24px, 3vw, 48px);
    margin-top: clamp(24px, 3vw, 40px);
}
.method-science__cta-note { margin: 0; max-width: 1019px; }
.method-science__media {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 20px;
}
.method-science__media > img {
    display: block;
    width: 100%;
    height: auto;
}
.method-science__pdf { flex: none; }
.method-science__mono { margin-top: clamp(36px, 5vw, 60px); }
/* В Фигме аннотация — единый блок текста, абзацы идут без воздуха между ними */
.method-science__mono .method-text { margin-bottom: 0; }
.method-quote {
    margin: clamp(28px, 4vw, 48px) 0 0;
    padding: 0;
    border: 0;
    text-align: right;
}
.method-quote__who {
    color: #104714;
    font-size: clamp(16px, 1.5vw, 24px);
    font-weight: 500;
    line-height: 1.3;
}
.method-quote__who p { margin: 0; }

.method-immunodiet { padding: clamp(60px, 8vw, 120px) 0 clamp(40px, 5vw, 80px); }
.method-immunodiet__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
    gap: clamp(24px, 3vw, 40px);
    align-items: stretch;
}
.method-checks {
    list-style: none;
    margin: 0;
    padding: clamp(24px, 3vw, 40px);
    border-radius: 0;
    /* По периметру рамки нет — в Фигме только зелёная линия слева */
    border: 0;
    border-left: 2px solid var(--c-coop);
    background: linear-gradient(90deg, #f7f7f7 0%, #fff 100%);
    display: flex;
    flex-direction: column;
    gap: clamp(18px, 2vw, 28px);
}
.method-checks__item {
    display: grid;
    grid-template-columns: 20px minmax(0, 1fr);
    gap: 14px;
    align-items: start;
    font-size: clamp(16px, 1.5vw, 24px);
    font-weight: 500;
    line-height: 1.3;
}
.method-checks__ic {
    display: inline-flex;
    width: 16px;
    height: 16px;
    margin-top: 6px;
}
.method-checks__ic img { width: 16px; height: 16px; display: block; }
.method-immunodiet__media {
    border: 1px solid #cecece;
    border-radius: 20px;
    overflow: hidden;
    min-height: 320px;
}
.method-immunodiet__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    min-height: 320px;
}

.method-technique { padding: 0 0 clamp(48px, 6vw, 80px); }
.method-feature-card {
    display: grid;
    grid-template-columns: minmax(180px, 460px) minmax(0, 1fr);
    gap: clamp(20px, 3vw, 40px);
    align-items: center;
    border: 1px solid #cecece;
    border-radius: 20px;
    box-shadow: 2px 2px 6px rgba(0,0,0,.25);
    padding: clamp(16px, 2vw, 24px);
    background: #fff;
    margin-bottom: clamp(28px, 3vw, 40px);
}
.method-feature-card--tall .method-feature-card__media { min-height: 180px; }
.method-feature-card__media {
    border: 1px solid #cecece;
    border-radius: 20px;
    overflow: hidden;
    height: 165px;
}
.method-feature-card--tall .method-feature-card__media { height: 218px; }
.method-feature-card__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.method-feature-card__title {
    margin: 0 0 12px;
    color: #00403c;
    font-size: clamp(22px, 2vw, 30px);
    font-weight: 600;
    line-height: 1.3;
    text-transform: uppercase;
}
.method-technique__body { max-width: 1480px; }
/* Как и аннотация: в Фигме это сплошной текст, а не абзацы с воздухом */
.method-technique__body .method-text { margin-bottom: 0; }

.method-faq { padding: clamp(40px, 6vw, 80px) 0 120px; }
.method-faq .method-h2 { margin-bottom: 40px; }
.method-accordion { display: flex; flex-direction: column; gap: 20px; }
.method-acc {
    background: #f7f7f7;
    border-radius: 10px;
    padding: 0;
}
.method-acc__sum {
    list-style: none;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 28px 40px 28px 32px;
    color: #195d3c;
    font-size: clamp(16px, 1.5vw, 24px);
    font-weight: 600;
    line-height: 1.3;
    position: relative;
}
.method-acc__sum::-webkit-details-marker { display: none; }
.method-acc__ic {
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.method-acc__ic img { display: block; width: 20px; height: 20px; object-fit: contain; }
.method-acc__q { flex: 1 1 auto; min-width: 0; }
.method-acc__sum::after {
    content: "";
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    margin-left: auto;
    background: url("/local/templates/immunohealth/assets/img/method/faq-plus.svg") center / contain no-repeat;
}
.method-acc[open] .method-acc__sum::after {
    background-image: url("/local/templates/immunohealth/assets/img/method/faq-plus.svg");
    transform: rotate(45deg);
}
.method-acc[open] .method-acc__sum { padding-bottom: 16px; }
.method-acc__body {
    padding: 0 40px 32px 68px;
    color: #195d3c;
    font-size: clamp(15px, 1.3vw, 20px);
    font-weight: 500;
    line-height: 1.3;
}
.method-acc__body p { margin: 0; }

.method-tech { padding: 0 0 clamp(48px, 6vw, 80px); }
.method-tech .method-feature-card { margin-bottom: 100px; }
.method-tech__lead {
    margin: 0 0 85px;
    max-width: 965px;
    font-size: clamp(20px, 2vw, 30px);
    font-weight: 600;
    line-height: 1.3;
    color: #00403c;
}
.method-tech__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 20px;
}
.method-tech-card {
    border: 1px solid #cecece;
    border-radius: 20px;
    box-shadow: 2px 2px 6px rgba(0,0,0,.25);
    padding: clamp(20px, 2.5vw, 32px) clamp(16px, 2vw, 24px);
    background: #fff;
    min-height: 260px;
}
.method-tech-card__ic {
    width: 24px;
    height: 24px;
    margin-bottom: 16px;
}
.method-tech-card__ic img { display: block; width: 24px; height: 24px; }
.method-tech-card__title {
    margin: 0 0 12px;
    font-size: clamp(18px, 1.5vw, 24px);
    font-weight: 600;
    line-height: 1.3;
    color: #1f1f1f;
}
.method-tech-card__text {
    margin: 0;
    font-size: clamp(15px, 1.3vw, 20px);
    font-weight: 500;
    line-height: 1.3;
    color: #1f1f1f;
}
.method-tech-card--visual {
    padding: 0;
    overflow: hidden;
    min-height: 0;
}
.method-tech-card--visual img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    min-height: 260px;
}

.method-symptoms { padding: clamp(40px, 6vw, 80px) 0; }
.method-symptoms__layout {
    display: grid;
    grid-template-columns: minmax(220px, 480px) minmax(0, 1fr);
    gap: clamp(20px, 3vw, 40px);
    align-items: start;
}
.method-symptoms__tabs {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.method-symptom-tab {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    text-align: left;
    border: 1px solid #cecece;
    border-radius: 20px;
    box-shadow: 2px 2px 6px rgba(0,0,0,.25);
    background: #fff;
    color: #00403c;
    font-size: clamp(13px, 1.25vw, 22px);
    font-weight: 600;
    line-height: 1.2;
    text-transform: uppercase;
    padding: 16px 18px;
    min-width: 0;
    overflow: hidden;
    cursor: pointer;
    transition: background .2s, color .2s, border-color .2s;
}
.method-symptom-tab > span:last-child {
    min-width: 0;
    flex: 1 1 auto;
    overflow-wrap: anywhere;
    word-break: break-word;
    hyphens: auto;
}
.method-symptom-tab__ic {
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    display: inline-flex;
}
.method-symptom-tab__ic img {
    display: block;
    width: 30px;
    height: 30px;
    object-fit: contain;
}
.method-symptom-tab.is-active {
    background: #104714;
    border-color: #cecece;
    color: #fff;
}
.method-symptom-tab.is-active .method-symptom-tab__ic img {
    filter: brightness(0) invert(1);
}
.method-symptom-panel[hidden] { display: none !important; }
.method-symptom-panel__title {
    margin: 0 0 12px;
    color: #00403c;
    font-size: clamp(22px, 2vw, 30px);
    font-weight: 600;
    line-height: 1.3;
    text-transform: uppercase;
}
.method-symptom-panel__tags {
    margin: 0 0 20px;
    color: rgba(31,31,31,.7);
    font-size: clamp(16px, 1.5vw, 24px);
    font-weight: 500;
    line-height: 1.3;
}
.method-symptom-panel__text p {
    margin: 0 0 1em;
    font-size: clamp(16px, 1.5vw, 24px);
    font-weight: 500;
    line-height: 1.3;
}
.method-symptom-panel__note {
    margin-top: 24px;
    background: #f7f7f7;
    border-radius: 30px;
    padding: clamp(20px, 2.5vw, 32px);
}
.method-symptom-panel__note p {
    margin: 0;
    font-size: clamp(16px, 1.5vw, 24px);
    font-weight: 500;
    line-height: 1.3;
}

.method-pubs { padding: 0 0 clamp(48px, 6vw, 80px); }
.method-pubs__list {
    margin: 0 0 clamp(28px, 3vw, 40px);
    padding-left: 1.4em;
    max-width: 1480px;
    list-style: decimal outside;
}
.method-pubs__list li { list-style: decimal outside; }
.method-pubs__list li {
    margin-bottom: 1.4em;
    font-size: clamp(16px, 1.5vw, 24px);
    font-weight: 500;
    line-height: 1.3;
}
.method-pubs__list li:last-child { margin-bottom: 0; }

.method-programs { padding: 0 0 clamp(48px, 6vw, 80px); }
.method-programs__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(16px, 2vw, 24px);
}
.method-prog-card {
    border: 1px solid #cecece;
    border-radius: 20px;
    box-shadow: 2px 2px 6px rgba(0,0,0,.25);
    padding: clamp(20px, 2.5vw, 28px);
    background: #fff;
    display: flex;
    flex-direction: column;
    min-height: 280px;
}
.method-prog-card--note {
    box-shadow: none;
    justify-content: flex-start;
}
.method-prog-card--note .method-prog-card__desc { flex: 0 0 auto; margin: 0; }
.method-prog-card__tag {
    align-self: flex-end;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 16px;
    border-radius: 100px;
    background: #00403c;
    color: #fff;
    font-size: 14px;
    font-weight: 500;
    line-height: 22px;
    margin-bottom: 16px;
}
.method-prog-card__title {
    margin: 0 0 12px;
    font-size: clamp(18px, 1.5vw, 24px);
    font-weight: 600;
    line-height: 1.3;
    color: #1f1f1f;
}
.method-prog-card__desc {
    margin: 0 0 20px;
    font-size: clamp(15px, 1.3vw, 20px);
    font-weight: 500;
    line-height: 1.3;
    flex: 1;
}
.method-prog-card__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 44px;
    padding: 0 20px;
    border: 1px solid #00403c;
    border-radius: 100px;
    color: #00403c;
    text-decoration: none;
    font-size: 16px;
    font-weight: 500;
    transition: background .2s, color .2s;
}
.method-prog-card__link:hover { background: #00403c; color: #fff; }

.method-media { padding: 0 0 clamp(48px, 6vw, 80px); }
.method-media__filters {
    display: flex;
    align-items: center;
    gap: 20px 35px;
    background: #f7f7f7;
    border-radius: 30px;
    padding: 30px 35px;
    margin-bottom: 40px;
}
.method-media__chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.method-media__chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 44px;
    padding: 0 20px;
    border: 1px solid #00403c;
    border-radius: 30px;
    color: #000;
    font-size: 14px;
    font-weight: 500;
    line-height: 21.7px;
    text-decoration: none;
    transition: background .2s, color .2s;
}
.method-media__chip:hover,
.method-media__chip.is-active { background: #00403c; color: #fff; }
.method-media__fields {
    display: flex;
    align-items: center;
    gap: 35px;
    margin-left: auto;
}
.method-media__field {
    display: flex;
    align-items: center;
    gap: 10px;
    height: 49px;
    padding: 0 16px;
    background: #fff;
    border-radius: 10px;
}
.method-media__field--sort { width: 362px; }
.method-media__field--search { width: 472px; }
.method-media__field-ic {
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    display: inline-flex;
    opacity: .7;
}
.method-media__field-ic img { display: block; width: 18px; height: 18px; }
.method-media__select,
.method-media__input {
    flex: 1 1 auto;
    min-width: 0;
    border: 0;
    background: transparent;
    color: #000;
    font-family: inherit;
    font-size: 16px;
    line-height: 25px;
    outline: none;
}
.method-media__select {
    appearance: none;
    padding-right: 26px;
    background: url("/local/templates/immunohealth/assets/img/method/ic-chevron-down.svg") right center / 16px 16px no-repeat;
    cursor: pointer;
}
.method-media__input::placeholder { color: #000; opacity: .7; }

@media (max-width: 1100px) {
    .method-media__filters { flex-wrap: wrap; padding: 24px; }
    .method-media__fields { margin-left: 0; width: 100%; gap: 16px; }
    .method-media__field--sort,
    .method-media__field--search { flex: 1 1 240px; width: auto; }
}
@media (max-width: 720px) {
    .method-media__fields { flex-direction: column; align-items: stretch; }
}

.method-media__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(16px, 2vw, 24px);
}
.method-media-card {
    background: #fff;
    border: 1px solid #cecece;
    border-radius: 20px;
    box-shadow: 2px 2px 6px rgba(0,0,0,.3);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}
.method-media-card__img img {
    display: block;
    width: 100%;
    height: 167px;
    object-fit: cover;
}
.method-media-card__body { padding: 16px 20px 22px; }
.method-media-card__meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}
.method-media-card__tag {
    color: #00403c;
    font-size: 13px;
    font-weight: 700;
    line-height: 20px;
    text-transform: uppercase;
}
.method-media-card__meta time {
    color: #000;
    opacity: .7;
    font-size: 13px;
    line-height: 20px;
}
.method-media-card__title {
    margin: 0 0 10px;
    font-size: 18px;
    font-weight: 500;
    line-height: 23px;
    color: #000;
}
.method-media-card__text {
    margin: 0;
    font-size: 14px;
    font-weight: 400;
    line-height: 22px;
    color: #000;
}

.method-contacts { padding: 0 0 clamp(60px, 8vw, 100px); }

@media (max-width: 1100px) {
    .method-science__top,
    .method-immunodiet__grid,
    .method-feature-card,
    .method-symptoms__layout {
        grid-template-columns: 1fr;
    }
    .method-science__cta { flex-direction: column; align-items: flex-start; }
    .method-feature-card__media,
    .method-feature-card--tall .method-feature-card__media {
        height: auto;
        min-height: 160px;
    }
    .method-tech__grid,
    .method-programs__grid,
    .method-media__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
@media (max-width: 720px) {
    .method-acc__sum { padding: 20px 16px; }
    .method-acc__body { padding: 0 16px 24px 52px; }
    .method-tech__grid,
    .method-programs__grid,
    .method-media__grid {
        grid-template-columns: 1fr;
    }
    .method-symptom-tab { font-size: 15px; padding: 14px 14px; }
}
/* end method page */
