/* Клинический Институт Регенеративной Медицины — стили нового сайта.
   Без препроцессоров и зависимостей. Шрифты — локальные (assets/fonts). */

@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 500; font-display: swap; src: url(fonts/cormorant-garamond-cyrillic-500-normal.woff2) format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 600; font-display: swap; src: url(fonts/cormorant-garamond-cyrillic-600-normal.woff2) format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 700; font-display: swap; src: url(fonts/cormorant-garamond-cyrillic-700-normal.woff2) format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 500; font-display: swap; src: url(fonts/cormorant-garamond-latin-500-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 600; font-display: swap; src: url(fonts/cormorant-garamond-latin-600-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Cormorant Garamond"; font-style: normal; font-weight: 700; font-display: swap; src: url(fonts/cormorant-garamond-latin-700-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 400; font-display: swap; src: url(fonts/manrope-cyrillic-400-normal.woff2) format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 500; font-display: swap; src: url(fonts/manrope-cyrillic-500-normal.woff2) format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 600; font-display: swap; src: url(fonts/manrope-cyrillic-600-normal.woff2) format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 700; font-display: swap; src: url(fonts/manrope-cyrillic-700-normal.woff2) format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 400; font-display: swap; src: url(fonts/manrope-latin-400-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 500; font-display: swap; src: url(fonts/manrope-latin-500-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 600; font-display: swap; src: url(fonts/manrope-latin-600-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Manrope"; font-style: normal; font-weight: 700; font-display: swap; src: url(fonts/manrope-latin-700-normal.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
  --bg: #f3f4f3;          /* светло-серый фон */
  --bg-2: #e6e9e7;        /* серебристые секции */
  --card: #ffffff;
  --ink: #1e2622;
  --muted: #64706a;
  --green: #0f7e35;       /* основной зелёный (оттенок логотипа, насыщеннее): кнопки, ссылки, акценты */
  --green-2: #189e47;     /* светлее: ховеры, градиенты */
  --green-3: #e7f2eb;     /* очень светлый фон плашек */
  --green-4: #bcdbc6;     /* светлые рамки/бейджи */
  --green-dark: #0c5a27;  /* подложки: футер, фон видео */
  --green-cta-1: #0d6c2e; /* градиент блока «Записаться» */
  --green-cta-3: #2c8d4d;
  --green-rgb: 15, 126, 53;   /* = --green, для полупрозрачных теней */
  --shade-rgb: 12, 90, 39;   /* тёмно-зелёная вуаль поверх видео и фото */
  /* тонировка видео на первом экране (режим «умножение»: окрашивает, не создавая дымки).
     Слева — глубже под текст, справа — белый = кадр без изменений. Темнее tint-1 → контрастнее текст. */
  --hero-tint-1: #185c30;
  --hero-tint-2: #3a8250;
  --hero-tint-3: #c4decc;
  --hero-video-filter: saturate(1.3) contrast(1.1);
  --lime: #a4c735;        /* салатовый лист логотипа */
  --lime-2: #b6d64a;
  --on-lime: #1a2e20;     /* текст на салатовой кнопке */
  --gold: var(--green-2); /* акцентные подписи — зелёные вместо золота */
  --silver: #b7bfbb;
  --line: #dbe0dd;
  --danger: #b3423c;
  --radius: 22px;
  --radius-sm: 14px;
  --shadow: 0 12px 40px rgba(30, 38, 34, .10);
  --serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;
  --sans: "Manrope", "Segoe UI", system-ui, -apple-system, sans-serif;
  --container: 1240px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }
body { margin: 0; font-family: var(--sans); font-size: 17px; line-height: 1.6; color: var(--ink); background: var(--bg); -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--green); text-decoration: none; }
a:hover { color: var(--green-2); }
h1, h2, h3, .h2 { font-family: var(--serif); font-weight: 600; line-height: 1.12; margin: 0 0 .5em; color: var(--ink); letter-spacing: -.005em; }
h1 { font-size: clamp(38px, 5.2vw, 64px); }
h2, .h2 { font-size: clamp(30px, 3.6vw, 44px); }
h3 { font-size: clamp(22px, 2.2vw, 26px); }
p { margin: 0 0 1em; }
ul, ol { margin: 0 0 1em; padding-left: 1.3em; }
small { font-size: .85em; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.skip { position: absolute; left: -999px; top: 8px; background: var(--green); color: #fff; padding: 8px 14px; border-radius: 8px; z-index: 1000; }
.skip:focus { left: 8px; }
:focus-visible { outline: 3px solid var(--lime); outline-offset: 3px; border-radius: 6px; }
.container { width: min(var(--container), 100% - 32px); margin: 0 auto; }
.container--narrow { width: min(860px, 100% - 32px); }
.ico { display: inline-flex; width: 1.15em; height: 1.15em; vertical-align: -.22em; margin-right: .35em; }
.ico svg { width: 100%; height: 100%; }
.eyebrow { font-family: var(--sans); font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--gold); margin: 0 0 12px; }
.eyebrow--light { color: var(--lime); }
.section--tint .eyebrow { color: var(--green); }
.link { font-weight: 600; border-bottom: 1px solid var(--green-4); }
.link:hover { border-color: var(--green); }

/* ---------- кнопки ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .5em; padding: 13px 24px; border-radius: 999px; border: 1.5px solid transparent; font: 600 15px/1.2 var(--sans); cursor: pointer; transition: background .2s, color .2s, transform .15s, box-shadow .2s; white-space: nowrap; }
.btn:active { transform: translateY(1px); }
.btn--primary { background: var(--green); color: #fff; box-shadow: 0 8px 22px rgba(var(--green-rgb), .25); }
.btn--primary:hover { background: var(--green-2); color: #fff; }
.btn--outline { border-color: var(--green-4); color: var(--green); background: transparent; }
.btn--outline:hover { border-color: var(--green); background: #fff; }
.btn--ghost { background: var(--green-3); color: var(--green); }
.btn--ghost:hover { background: var(--green-4); }
.btn--lg { padding: 16px 30px; font-size: 16px; }
.btn--sm { padding: 10px 18px; font-size: 14px; }
.btn .ico { margin: 0; }
.iconbtn { width: 44px; height: 44px; border-radius: 12px; border: 1.5px solid var(--line); background: #fff; color: var(--ink); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; }
.iconbtn .ico { margin: 0; width: 22px; height: 22px; }
.chip { display: inline-flex; align-items: center; gap: .3em; padding: 8px 14px; border-radius: 999px; background: #fff; border: 1px solid var(--line); font-size: 14px; font-weight: 600; color: var(--ink); }
.chip:hover { border-color: var(--green); color: var(--green); }
.chip--light { background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .25); color: #fff; }
.chip--light:hover { background: rgba(255, 255, 255, .22); color: #fff; }
.actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 22px 0 0; }
.actions--center { justify-content: center; margin-top: 36px; }

/* ---------- шапка ---------- */
.topbar { background: var(--green); color: #d8e6d8; font-size: 13px; }
.topbar__in { display: flex; gap: 28px; align-items: center; min-height: 36px; }
.topbar a { color: #fff; font-weight: 600; }
.topbar__phones { margin-left: auto; display: flex; align-items: center; gap: 10px; }
.dot { width: 4px; height: 4px; border-radius: 50%; background: var(--lime); display: inline-block; }
/* z-index выше плавающих кнопок (.fab): открытое меню не должно уходить под них */
.header { position: sticky; top: 0; z-index: 95; background: rgba(255, 255, 255, .9); backdrop-filter: saturate(160%) blur(12px); border-bottom: 1px solid var(--line); }
.header__in { display: flex; align-items: center; gap: 20px; min-height: 76px; }
/* шапка и верхняя полоса шире контента: меню с 8 пунктами, телефон и кнопка не помещаются в 1240px */
.header__in, .topbar__in { width: min(1400px, 100% - 48px); }
.logo { display: inline-flex; align-items: center; margin-right: 8px; flex: 0 0 auto; }
.logo img { height: 54px; width: auto; max-width: none; }
.logo--sm img { height: 44px; }
.logo--footer img { height: 60px; opacity: .95; }
.nav { margin-left: auto; align-self: stretch; display: flex; }
.nav__list { list-style: none; margin: 0; padding: 0; display: flex; gap: 2px; flex-wrap: nowrap; }
/* пункт растянут на всю высоту шапки: выпадающий список начинается сразу под ним, без зазора, где курсор «терял» меню */
.nav__item { position: relative; display: flex; align-items: center; }
.nav__link { display: inline-flex; align-items: center; gap: 2px; padding: 10px 10px; border-radius: 10px; font-weight: 600; font-size: 15px; color: var(--ink); white-space: nowrap; }
.nav__link .ico { width: 16px; height: 16px; margin: 0; opacity: .6; }
.nav__link:hover, .nav__link.is-active, .nav__item.is-open > .nav__link { color: var(--green); background: var(--green-3); }
.header__actions { display: flex; align-items: center; gap: 18px; flex: 0 0 auto; margin-left: 4px; }
.header__phone { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; color: var(--ink); white-space: nowrap; }
.header__phone .ico { width: 18px; height: 18px; margin: 0; color: var(--green-2); }
.header__phone:hover { color: var(--green); }
.header .btn--primary { padding: 12px 22px; }
.burger { display: none; }
.mega, .drop { position: absolute; top: 100%; padding-top: 12px; opacity: 0; visibility: hidden; transform: translateY(6px); transition: .18s; z-index: 60; }
.has-mega { position: static; }
.has-mega .mega { left: 0; right: 0; }
/* без JS — по наведению и фокусу; app.js ставит .nav[data-js] и открывает списки классом .is-open (с задержкой на закрытие) */
.nav:not([data-js]) .has-mega:hover .mega, .nav:not([data-js]) .has-mega:focus-within .mega,
.nav:not([data-js]) .has-drop:hover .drop, .nav:not([data-js]) .has-drop:focus-within .drop,
.nav__item.is-open > .mega, .nav__item.is-open > .drop { opacity: 1; visibility: visible; transform: none; }
/* шапка липкая, поэтому меню ниже экрана не докрутить: на невысоких экранах (ноутбуки с масштабом 125–150%) список прокручивается сам */
.mega__grid { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); padding: 26px 28px; display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px 28px; max-height: calc(100vh - 150px); overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; }
.mega__title { font-family: var(--serif); font-size: 20px; font-weight: 700; display: block; margin-bottom: 8px; color: var(--ink); }
.mega__title:hover { color: var(--green); }
.mega ul { list-style: none; margin: 0; padding: 0; }
.mega li a { display: block; font-size: 14px; padding: 3px 0; color: var(--muted); }
.mega li a:hover { color: var(--green); }
.mega li a.more { color: var(--green); font-weight: 600; }
.drop { left: 0; min-width: 280px; }
.drop ul { list-style: none; margin: 0; padding: 12px; background: #fff; border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow); }
.drop li a { display: block; padding: 8px 12px; border-radius: 8px; font-size: 14px; color: var(--ink); }
.drop li a:hover { background: var(--green-3); color: var(--green); }

/* мобильное меню */
.mnav { position: fixed; inset: 0 auto 0 0; width: min(420px, 92vw); background: #fff; z-index: 200; transform: translateX(-105%); transition: transform .25s; overflow-y: auto; padding: 16px 20px 40px; box-shadow: var(--shadow); }
.mnav.is-open { transform: none; }
.mnav__backdrop { position: fixed; inset: 0; background: rgba(var(--shade-rgb), .45); z-index: 190; }
.mnav__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.mnav__group { border-top: 1px solid var(--line); }
.mnav__group > summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; padding: 14px 0; font-family: var(--serif); font-size: 22px; font-weight: 700; }
.mnav summary::-webkit-details-marker { display: none; }
.mnav__group ul { list-style: none; margin: 0; padding: 0 0 8px; }
.mnav__group li a { display: block; padding: 8px 0; font-weight: 600; color: var(--ink); }
.mnav__group li details summary { list-style: none; display: flex; justify-content: space-between; align-items: center; cursor: pointer; }
.mnav__group li details ul { padding-left: 14px; border-left: 2px solid var(--green-3); margin: 4px 0 8px; }
.mnav__group li details ul a { font-weight: 500; font-size: 15px; color: var(--muted); }
.mnav__link { display: block; padding: 14px 0; border-top: 1px solid var(--line); font-family: var(--serif); font-size: 22px; font-weight: 700; color: var(--ink); }
.mnav__contacts { border-top: 1px solid var(--line); padding-top: 18px; margin-top: 6px; }
.mnav__contacts .btn { width: 100%; margin-bottom: 14px; }
.mnav__phone { display: inline-block; font-weight: 700; font-size: 18px; margin: 2px 0; }
.mnav__msg a { margin-right: 14px; font-weight: 600; }

/* ---------- секции ---------- */
.section { padding: 72px 0; }
.section--tint { background: var(--bg-2); }
.section--tight { padding-top: 12px; }
.section__head { max-width: 760px; margin-bottom: 36px; }
.section__descr { color: var(--muted); font-size: 18px; margin: 0; }
/* «Стоимость услуг» на главной: подзаголовок — длинная фраза о ценах, во всю ширину раздела */
.section--prices .section__head { max-width: none; }
/* фраза о ценах (главная, страница цен, «Пациентам»): без одинокого слова на последней строке — где браузер умеет */
.section--prices .section__descr, .legal-root .prose p { text-wrap: pretty; }
.grid { display: grid; gap: 22px; }
.grid--2 { grid-template-columns: repeat(2, 1fr); }
.grid--3 { grid-template-columns: repeat(3, 1fr); }
.grid--4 { grid-template-columns: repeat(4, 1fr); }
.card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
a.card { color: inherit; transition: transform .2s, box-shadow .2s, border-color .2s; }
a.card:hover { transform: translateY(-3px); box-shadow: var(--shadow); border-color: var(--green-4); }

/* ---------- главная: hero с видео ---------- */
.hero--video { position: relative; isolation: isolate; overflow: hidden; color: #fff; min-height: calc(100vh - 112px); display: flex; align-items: center; padding: 64px 0 72px; background: var(--green-dark); }
.hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; filter: var(--hero-video-filter); }
.hero__shade { position: absolute; inset: 0; z-index: 1; mix-blend-mode: multiply; background: linear-gradient(100deg, var(--hero-tint-1) 0%, var(--hero-tint-2) 40%, var(--hero-tint-3) 66%, #fff 85%); }
.hero__in { position: relative; z-index: 2; display: grid; grid-template-columns: 1.15fr .85fr; gap: 56px; align-items: center; width: min(var(--container), 100% - 32px); margin: 0 auto; }
.hero--video h1 { color: #fff; font-size: clamp(40px, 5.4vw, 72px); margin-bottom: 18px; text-shadow: 0 2px 24px rgba(0, 0, 0, .25); }
.hero__lead { font-size: clamp(18px, 1.6vw, 21px); color: rgba(255, 255, 255, .86); max-width: 560px; }
.hero--video .btn--primary { background: var(--lime); color: var(--on-lime); box-shadow: 0 10px 30px rgba(164, 199, 53, .35); }
.hero--video .btn--primary:hover { background: var(--lime-2); color: var(--on-lime); }
.hero--video .btn--ghost { background: rgba(255, 255, 255, .14); color: #fff; border-color: rgba(255, 255, 255, .35); backdrop-filter: blur(8px); }
.hero--video .btn--ghost:hover { background: rgba(255, 255, 255, .24); }
.hero__focus { background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .22); backdrop-filter: blur(6px); border-radius: var(--radius); padding: 18px; display: grid; gap: 10px; }
/* «Ключевые направления»: плашка с плотным фоном — читается на любом кадре видео (салатовый на светлом кадре давал 1.8:1, белый на зелёном — 5.2:1) */
.hero__focus-title { justify-self: start; display: inline-flex; align-items: center; margin: 0 0 4px; padding: 7px 14px; border-radius: 999px; background: var(--green); color: #fff; font-size: 13px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; box-shadow: 0 6px 18px rgba(var(--green-rgb), .25); }
.focus { display: grid; grid-template-columns: 72px 1fr auto; gap: 14px; align-items: center; padding: 10px; border-radius: 16px; background: rgba(255, 255, 255, .92); color: var(--ink); transition: transform .2s, background .2s; }
.focus:hover { transform: translateX(4px); background: #fff; color: var(--ink); }
.focus__img { width: 72px; height: 72px; border-radius: 12px; object-fit: cover; }
.focus__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.focus__body strong { font-family: var(--serif); font-size: 21px; font-weight: 700; line-height: 1.1; }
.focus__body span { font-size: 13px; color: var(--muted); }
.focus__arrow { width: 38px; height: 38px; border-radius: 50%; background: var(--green); color: #fff; display: inline-flex; align-items: center; justify-content: center; }
.focus__arrow .ico { margin: 0; }
.facts-band { background: var(--bg-2); border-bottom: 1px solid var(--line); }
.facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; padding: 28px 0; }
.fact__num { font-family: var(--serif); font-size: 42px; font-weight: 600; line-height: 1; color: var(--green); }
.fact__num small { font-size: 22px; color: var(--green-2); }
.fact__text { color: var(--muted); font-size: 15px; margin-top: 6px; }

/* ---------- карточки направлений и процедур ---------- */
.dgrid { display: grid; gap: 18px; }
.dgrid--all { grid-template-columns: repeat(4, 1fr); }   /* главная: все направления одинаковые, 4×2 */
.dgrid--rest { grid-template-columns: repeat(4, 1fr); }  /* «Другие направления» на страницах направлений */
/* карточка направления: фото без наложений сверху, подпись на белом снизу */
.dcard { display: flex; flex-direction: column; border-radius: var(--radius); overflow: hidden; background: #fff; color: var(--ink); border: 1px solid var(--line); box-shadow: 0 6px 20px rgba(30, 38, 34, .07); transition: transform .25s, box-shadow .25s; }
.dcard:hover { transform: translateY(-4px); box-shadow: var(--shadow); color: var(--ink); }
.dcard__media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--green-3); }
.dcard__media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.dcard:hover .dcard__media img { transform: scale(1.05); }
.dcard__body { flex: 1; display: flex; flex-direction: column; gap: 4px; padding: 16px 18px 18px; }
.dcard__meta { font-size: 11px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--green); }
.dcard h3 { color: var(--ink); font-size: 22px; line-height: 1.15; margin: 0; }
.dcard:hover h3 { color: var(--green); }
.dcard__text { color: var(--muted); font-size: 13.5px; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.dcard__text p { margin: 0; }
.dcard__cta { display: inline-flex; align-items: center; gap: 4px; margin-top: auto; padding-top: 10px; font-size: 13px; font-weight: 700; color: var(--green); }
.dgrid--rest .dcard__body { padding: 12px 14px 14px; }
.dgrid--rest .dcard h3 { font-size: 18px; }
.dgrid--rest .dcard__text, .dgrid--rest .dcard__cta { display: none; }
/* страница «Услуги»: процедуры по направлениям */
.svc-lists { columns: 3 280px; column-gap: 28px; }
.svc-list { break-inside: avoid; margin-bottom: 26px; }
.svc-list h3 { font-size: 22px; margin: 0 0 8px; }
.svc-list h3 a { color: var(--ink); }
.svc-list h3 a:hover { color: var(--green); }
.svc-list ul { list-style: none; margin: 0; padding: 0; }
.svc-list li a { display: block; padding: 5px 0; color: var(--muted); font-size: 15px; border-bottom: 1px solid var(--line); }
.svc-list li a:hover { color: var(--green); }
.pcard { display: flex; flex-direction: column; }
.pcard__media { aspect-ratio: 16 / 10; background: var(--green-3); }
.pcard__body { padding: 20px 22px 22px; flex: 1; display: flex; flex-direction: column; }
.pcard h3 { font-size: 22px; }
.pcard__text { color: var(--muted); font-size: 15px; flex: 1; }
.pcard__text p { margin-bottom: .6em; }
.pcard__text ul { padding-left: 1.1em; }
.pcard__foot { margin-top: 14px; font-weight: 700; font-size: 14px; color: var(--green); display: inline-flex; align-items: center; gap: 4px; }
.features { gap: 18px; }
.feature { background: #fff; border-radius: var(--radius); padding: 26px 24px; border: 1px solid var(--line); }
.feature__ico { display: inline-flex; width: 44px; height: 44px; border-radius: 12px; background: var(--green-3); color: var(--green); align-items: center; justify-content: center; margin-bottom: 14px; }
.feature__ico .ico { margin: 0; width: 22px; height: 22px; }
.feature h3 { font-size: 22px; }
.feature p { color: var(--muted); font-size: 15px; margin: 0; }

/* ---------- врачи ---------- */
.doc { display: flex; flex-direction: column; }
.doc__photo { aspect-ratio: 4 / 5; background: var(--green-3); }
.doc__photo img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
.doc__body { padding: 18px 22px 22px; }
.doc h3 { font-size: 24px; margin-bottom: 4px; }
.doc p { color: var(--muted); font-size: 14.5px; min-height: 3.3em; }

/* ---------- акции ---------- */
.promo { display: grid; grid-template-columns: 1fr 1.1fr; }
.promo__media { background: var(--green-3); min-height: 200px; }
.promo__media img { width: 100%; height: 100%; object-fit: cover; }
.promo__body { padding: 24px; }
.promo h3 { font-size: 22px; }
.promo__more { margin: 0 0 16px; }
.promo__more summary { cursor: pointer; font-weight: 600; color: var(--green); font-size: 14px; }
.promo__more .prose { font-size: 14.5px; color: var(--muted); margin-top: 8px; }

/* ---------- отзывы ---------- */
.rbadges { display: flex; flex-wrap: wrap; gap: 12px; margin: -8px 0 26px; }
.rbadge { display: inline-flex; align-items: center; gap: 12px; padding: 10px 18px 10px 12px; border-radius: 16px; background: #fff; border: 1px solid var(--line); color: var(--ink); transition: transform .2s, box-shadow .2s; }
.rbadge:hover { transform: translateY(-2px); box-shadow: var(--shadow); color: var(--ink); }
.rbadge__logo { width: 40px; height: 40px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; font: 800 20px var(--sans); color: #fff; }
.rbadge--yandex .rbadge__logo { background: #fc3f1d; }
.rbadge--google .rbadge__logo { background: #4285f4; }
.rbadge__body { display: flex; flex-direction: column; line-height: 1.15; }
.rbadge__body strong { font-family: var(--serif); font-size: 26px; font-weight: 700; color: var(--green); }
.rbadge__body span { font-size: 13px; color: var(--muted); }
.scroller { overflow-x: auto; scroll-snap-type: x mandatory; margin: 0 -16px; padding: 4px 16px 18px; scrollbar-width: thin; }
.scroller__track { display: flex; gap: 18px; align-items: flex-start; }
.scroller .review { flex: 0 0 min(400px, 85vw); scroll-snap-align: start; }
.review { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 22px 24px; display: flex; flex-direction: column; }
.review__head { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; }
.review__avatar { width: 46px; height: 46px; border-radius: 50%; background: linear-gradient(135deg, var(--green-3), var(--green-4)); color: var(--green); display: inline-flex; align-items: center; justify-content: center; font: 700 15px var(--sans); flex: 0 0 auto; }
.review h3 { font-family: var(--sans); font-size: 16px; font-weight: 700; margin: 0; }
.review__head p { margin: 0; color: var(--muted); font-size: 13px; }
.review__src { margin-left: auto; width: 26px; height: 26px; border-radius: 8px; color: #fff; font: 800 13px/26px var(--sans); text-align: center; flex: 0 0 auto; }
.review--yandex .review__src { background: #fc3f1d; }
.review--google .review__src { background: #4285f4; }
.review__stars { margin: 0 0 8px; color: var(--lime); letter-spacing: 2px; font-size: 16px; line-height: 1; }
.review__text { margin: 0; font-size: 15px; line-height: 1.6; color: var(--ink); white-space: pre-line; overflow-wrap: anywhere; } /* тексты отзывов без правок: «слово,слово,слово» без пробелов не должно раздвигать страницу */
.review__text.is-clamped { display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; }
.review__more { align-self: flex-start; margin-top: 10px; background: none; border: 0; padding: 0; color: var(--green); font: 600 14px var(--sans); cursor: pointer; border-bottom: 1px solid var(--green-4); }
.review__more:hover { border-color: var(--green); }
.rfilter { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 22px; }
.rfilter .chip { cursor: pointer; font-family: var(--sans); }
.rfilter .chip.is-active { background: var(--green); color: #fff; border-color: var(--green); }
.rgrid { columns: 3; column-gap: 18px; }
.rgrid .review { break-inside: avoid; margin-bottom: 18px; }
.rgrid .review.is-hidden { display: none; }

/* ---------- цены ---------- */
/* «Самые популярные процедуры» в «Стоимости услуг» на главной: цены направления (капельницы) из общего прайса */
.pricepop { position: relative; overflow: hidden; background: #fff; border: 1px solid var(--green-4); border-radius: var(--radius); padding: 26px 32px 26px 36px; margin: 0 0 20px; box-shadow: 0 12px 36px rgba(var(--green-rgb), .09); }
.pricepop::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; background: linear-gradient(180deg, var(--lime), var(--green-2)); }
.pricepop__badge { display: inline-flex; align-items: center; gap: 6px; margin: 0; padding: 6px 13px 6px 10px; border-radius: 999px; background: var(--lime); color: var(--on-lime); font-size: 12px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.pricepop__badge .ico { width: 15px; height: 15px; margin: 0; }
.pricepop__title { font-size: 28px; margin: 14px 0 12px; }
.pricepop__title a { color: var(--ink); }
.pricepop__title a:hover { color: var(--green); }
.pricepop__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 44px; }
.pricepop .prices { font-size: 16px; }
.pricepop__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 24px; margin: 20px 0 0; }
/* фраза о ценах: окончательную стоимость подтверждает администратор (страница цен) */
.acc-list { display: grid; grid-template-columns: minmax(0, 1fr); gap: 12px; } /* minmax(0): колонка не растягивается под самый длинный заголовок раздела */
.acc summary > span:first-child { min-width: 0; overflow-wrap: anywhere; }
.prices td:first-child { overflow-wrap: anywhere; }
.acc { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-sm); overflow: hidden; transition: box-shadow .2s, border-color .2s; }
.acc:hover { border-color: var(--green-4); }
.acc[open] { border-color: var(--green-4); box-shadow: 0 10px 30px rgba(30, 38, 34, .08); }
.acc summary { list-style: none; cursor: pointer; padding: 18px 22px 18px 26px; font-family: var(--serif); font-size: 24px; font-weight: 700; display: flex; align-items: center; gap: 14px; position: relative; background: linear-gradient(90deg, var(--green-3), #fff 60%); }
.acc summary::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; background: linear-gradient(180deg, var(--lime), var(--green-2)); }
.acc summary::-webkit-details-marker { display: none; }
.price-group { overflow: hidden; overflow: clip; } /* clip, а не hidden: иначе sticky у заголовка не работает */
.price-group[open] > summary { position: sticky; top: var(--header-h, 76px); z-index: 3; background: linear-gradient(90deg, var(--green-3), #f4f8f5 30%, #fff); box-shadow: 0 1px 0 var(--line); }
.price-group.is-target > summary { animation: pgroup-flash 1.8s ease-out; }
@keyframes pgroup-flash { 0%, 35% { box-shadow: inset 0 0 0 3px var(--lime), 0 1px 0 var(--line); } 100% { box-shadow: 0 1px 0 var(--line); } }
.acc summary::after { content: "+"; width: 34px; height: 34px; border-radius: 50%; background: var(--green); color: #fff; font: 400 22px/34px var(--sans); text-align: center; flex: 0 0 auto; transition: transform .2s, background .2s; }
.acc[open] summary::after { content: "–"; background: var(--green-2); }
.acc[open] summary { background: linear-gradient(90deg, var(--green-3), var(--green-3) 30%, #fff); }
.acc__count { margin-left: auto; font: 700 12px var(--sans); color: var(--green); background: #fff; border: 1px solid var(--green-4); padding: 4px 10px; border-radius: 999px; white-space: nowrap; }
.acc__body { padding: 4px 22px 18px 26px; }
.prices { width: 100%; border-collapse: collapse; font-size: 15px; }
.prices td { padding: 10px 0; border-top: 1px solid var(--line); vertical-align: top; }
.prices td.price { text-align: right; white-space: nowrap; font-weight: 700; color: var(--green); padding-left: 16px; }
.prices tr.is-hidden { display: none; }
.prices--sm { font-size: 14px; }
.pricesearch { max-width: 640px; margin: 0 0 14px; }
.field--search { position: relative; }
.field--search .ico { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); color: var(--muted); }
.field--search input { padding-left: 48px !important; }
.pricesearch__hint { font-size: 13px; color: var(--muted); margin: 8px 0 0 4px; }
.pcats { display: grid; grid-template-columns: repeat(auto-fill, minmax(196px, 1fr)); gap: 8px; margin-bottom: 34px; }
.pcat { position: relative; display: flex; flex-direction: column; gap: 4px; padding: 10px 42px 10px 14px; border-radius: 14px; background: linear-gradient(135deg, #fff, var(--green-3)); border: 1px solid var(--green-4); color: var(--ink); min-height: 60px; transition: transform .2s, box-shadow .2s, background .2s, color .2s; overflow: hidden; }
.pcat::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: linear-gradient(180deg, var(--lime), var(--green-2)); }
.pcat__title { font-weight: 700; font-size: 14px; line-height: 1.25; }
.pcat__meta { font-size: 12px; color: var(--green-2); font-weight: 600; }
.pcat__arrow { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); width: 28px; height: 28px; border-radius: 50%; background: #fff; color: var(--green); display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--green-4); }
.pcat__arrow .ico { margin: 0; width: 15px; height: 15px; }
.pcat:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(var(--green-rgb), .18); background: linear-gradient(135deg, var(--green), var(--green-2)); color: #fff; border-color: transparent; }
.pcat:hover .pcat__meta { color: rgba(255, 255, 255, .8); }
.pcat:hover .pcat__arrow { background: var(--lime); color: var(--green); border-color: transparent; }
.empty { color: var(--muted); padding: 24px; text-align: center; }
.tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.tile { position: relative; display: block; aspect-ratio: 4 / 3; border-radius: var(--radius-sm); overflow: hidden; background: var(--green); color: #fff; box-shadow: 0 8px 26px rgba(30, 38, 34, .12); transition: transform .25s; }
.tile:hover { transform: translateY(-3px); color: #fff; }
.tile__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(var(--shade-rgb), .05) 30%, rgba(var(--shade-rgb), .9) 100%); }
.tile__body { position: absolute; left: 16px; right: 56px; bottom: 14px; z-index: 1; }
.tile h3 { color: #fff; font-size: 20px; margin: 0 0 2px; }
.tile__meta { font-size: 12px; color: var(--lime); font-weight: 700; }
.tile__arrow { position: absolute; right: 14px; bottom: 14px; z-index: 1; width: 34px; height: 34px; border-radius: 50%; background: rgba(255, 255, 255, .92); color: var(--green); display: inline-flex; align-items: center; justify-content: center; }
.tile__arrow .ico { margin: 0; }
.chips .chip { background: #fff; }
.chips .chip:hover { background: var(--green); color: #fff; border-color: var(--green); }

/* ---------- запись ---------- */
.cta { background: linear-gradient(120deg, var(--green-cta-1), var(--green) 55%, var(--green-cta-3)); color: #fff; }
.cta__in { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
.cta h2 { color: #fff; }
.cta__text > p { color: #cfe0cf; font-size: 18px; }
.cta__phones { font-size: 20px; font-weight: 700; }
.cta__phones a { color: #fff; }
.cta__form { padding: 30px; color: var(--ink); }
.form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.field { display: block; margin-bottom: 14px; }
.field > span { display: block; font-size: 13px; font-weight: 700; margin-bottom: 6px; color: var(--muted); }
.field input { width: 100%; padding: 13px 16px; border: 1.5px solid var(--line); border-radius: 12px; font: 500 16px var(--sans); background: #fff; color: var(--ink); }
.field input:focus { border-color: var(--green); outline: none; box-shadow: 0 0 0 4px var(--green-3); }
.field input.is-invalid { border-color: var(--danger); }
.check { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; color: var(--muted); margin: 6px 0 18px; }
.check input { margin-top: 3px; accent-color: var(--green); width: 18px; height: 18px; }
.form .btn { width: 100%; }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.form__status { margin: 12px 0 0; font-size: 14px; min-height: 1em; }
.form__status.is-ok { color: var(--green); font-weight: 600; }
.form__status.is-err { color: var(--danger); font-weight: 600; background: #fdf1f0; border: 1px solid #f1c9c6; border-radius: 10px; padding: 10px 12px; }
.form__consent { margin: 12px 0 0; font-size: 12.5px; line-height: 1.45; color: var(--muted); text-align: center; }
.form__consent a { border-bottom: 1px solid var(--green-4); }
.form--compact .form__row { grid-template-columns: 1fr; }

/* модальное окно */
.modal { border: 0; padding: 0; background: transparent; max-width: 100vw; width: 100%; height: 100%; max-height: 100vh; }
.modal::backdrop { background: rgba(var(--shade-rgb), .55); backdrop-filter: blur(4px); }
.modal__box { position: relative; width: min(560px, 100% - 24px); margin: 6vh auto; background: #fff; border-radius: var(--radius); padding: 34px 32px 28px; box-shadow: var(--shadow); }
.modal__close { position: absolute; right: 14px; top: 14px; width: 40px; height: 40px; border-radius: 50%; border: 0; background: var(--bg-2); cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.modal__close .ico { margin: 0; }
.modal__title { font-size: 32px; }
.modal__lead { color: var(--muted); font-size: 15px; }

/* ---------- контакты ---------- */
.contacts { display: grid; grid-template-columns: 1fr 1.3fr; gap: 24px; }
.contacts__card { padding: 28px; }
.contacts__card p { margin-bottom: 14px; }
.contacts__card strong { display: inline-block; }
.contacts__map { min-height: 340px; }
.ymap { position: relative; height: 100%; min-height: 380px; border-radius: var(--radius); overflow: hidden; border: 1px solid var(--line); background: var(--green-3); }
.ymap iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.ymap .mapstub { min-height: 380px; border: 0; border-radius: 0; }
.mapstub { height: 100%; min-height: 340px; border-radius: var(--radius); background: linear-gradient(135deg, var(--green-3), var(--bg-2)); border: 1px dashed var(--green-4); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 24px; color: var(--muted); gap: 8px; }
.mapstub strong { color: var(--ink); font-size: 18px; }
.mapstub > span:first-child { color: var(--green); }
.mapstub .ico { width: 36px; height: 36px; margin: 0; }

/* ---------- подвал ---------- */
.footer { background: var(--green-dark); color: #c9d6c9; padding: 60px 0 28px; font-size: 14.5px; }
.footer a { color: #e8efe8; }
.footer a:hover { color: var(--lime); }
.footer__grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 36px; }
.footer h3 { color: #fff; font-size: 20px; margin-bottom: 14px; }
.footer ul { list-style: none; margin: 0; padding: 0; }
.footer li { margin-bottom: 8px; }
.footer__legal { margin: 18px 0 14px; color: #9db39d; font-size: 13px; }
.footer__contacts { line-height: 1.8; }
.footer__msg .chip { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .15); color: #fff; }
.footer__disclaimer { border-top: 1px solid rgba(255, 255, 255, .12); margin-top: 40px; padding-top: 24px; font-size: 12.5px; color: #8fa68f; line-height: 1.55; }
.footer__warn { color: #e6c98a; font-weight: 700; font-size: 13px; letter-spacing: .02em; }
.footer__copy { margin: 20px 0 0; font-size: 12.5px; color: #7d957d; }
.stickybar { display: none; }

/* плавающие кнопки мессенджеров (только десктоп, появляются после первого экрана) */
.fab { position: fixed; right: 24px; bottom: 24px; z-index: 90; display: none; flex-direction: column; gap: 12px; opacity: 0; transform: translateY(16px); pointer-events: none; transition: opacity .3s ease, transform .3s ease; }
.fab.is-visible { opacity: 1; transform: none; pointer-events: auto; }
.fab__btn { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 54px; height: 54px; border-radius: 50%; color: #fff; box-shadow: 0 10px 26px rgba(var(--shade-rgb), .22), 0 2px 6px rgba(var(--shade-rgb), .12); transition: transform .2s ease, box-shadow .2s ease; }
.fab__btn .ico { width: 30px; height: 30px; margin: 0; color: #fff; vertical-align: 0; }
.fab__btn--tg .ico { transform: translateX(-2px); } /* самолётик оптически смещён вправо */
.fab__btn--wa .ico { width: 32px; height: 32px; }
.fab__btn:hover, .fab__btn:focus-visible { transform: translateY(-2px) scale(1.04); box-shadow: 0 14px 30px rgba(var(--shade-rgb), .28), 0 3px 8px rgba(var(--shade-rgb), .14); }
.fab__btn--tg { background: #2aa5e0; }
.fab__btn--wa { background: #33c35c; }
.fab__tip { position: absolute; right: calc(100% + 12px); top: 50%; transform: translateY(-50%) translateX(6px); white-space: nowrap; padding: 7px 12px; border-radius: 10px; background: var(--ink); color: #fff; font-size: 13px; font-weight: 600; opacity: 0; visibility: hidden; transition: opacity .18s ease, transform .18s ease, visibility .18s; pointer-events: none; }
.fab__tip::after { content: ""; position: absolute; left: 100%; top: 50%; transform: translateY(-50%); border: 5px solid transparent; border-left-color: var(--ink); }
.fab__btn:hover .fab__tip, .fab__btn:focus-visible .fab__tip { opacity: 1; visibility: visible; transform: translateY(-50%); }
@media (min-width: 961px) { .fab { display: flex; } }

/* ---------- внутренние страницы ---------- */
.crumbs ol { list-style: none; margin: 0 0 18px; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; font-size: 13px; color: var(--muted); }
.crumbs li + li::before { content: "/"; margin-right: 6px; color: var(--green-4); }
.crumbs a { color: var(--muted); }
.crumbs a:hover { color: var(--green); }
.phero { padding: 40px 0 44px; background: linear-gradient(180deg, #e9ece9, var(--bg)); }
.phero__in { display: grid; grid-template-columns: 1.15fr .85fr; gap: 44px; align-items: center; }
.phero__in:not(:has(.phero__media)) { grid-template-columns: 1fr; }
.phero h1 { font-size: clamp(34px, 4.4vw, 56px); margin-bottom: 14px; }
/* компактная шапка страницы (цены): на первом экране — поиск и карточки разделов */
.phero.phero--compact { padding: 22px 0 18px; }
.phero--compact .crumbs ol { margin-bottom: 10px; }
.phero--compact h1 { margin-bottom: 8px; }
.phero--compact .phero__lead { max-width: 860px; font-size: 16px; line-height: 1.55; }
.phero--compact .phero__lead p { margin: 0 0 6px; text-wrap: pretty; }
.phero--compact .phero__meta { margin: 0; }
.section--pricebody { padding-top: 18px; }
.phero__lead { font-size: 18px; color: var(--muted); max-width: 640px; }
.phero__lead h3 { font-size: 22px; color: var(--ink); }
.phero__meta { color: var(--muted); font-size: 14px; }
.phero__media img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; border-radius: 26px; box-shadow: var(--shadow); }
.article { max-width: 860px; }
/* переход по якорю (из меню, с плиток прайса): раздел не прячется под липкой шапкой */
section[id], .article [id], .acc[id] { scroll-margin-top: calc(var(--header-h, 76px) + 16px); }
.article-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 40px; align-items: start; }
.article-grid .article { max-width: none; }
.sidebar { position: sticky; top: 92px; display: grid; gap: 16px; }
.side { padding: 22px 24px; }
.side h3 { font-size: 22px; margin-bottom: 8px; }
.side p { font-size: 14.5px; color: var(--muted); }
.side--cta { background: var(--green-3); border-color: var(--green-4); }
.side--cta .btn { width: 100%; margin-top: 4px; }
.side__phone { margin: 12px 0 0; font-weight: 700; }
.side__phone a { color: var(--ink); }
.side__list { list-style: none; margin: 0; padding: 0; }
.side__list li { border-top: 1px solid var(--line); }
.side__list a { display: block; padding: 8px 0; font-size: 14.5px; font-weight: 600; color: var(--ink); }
.side__list a:hover { color: var(--green); }
.side .link { display: inline-block; margin-top: 10px; font-size: 14px; }

/* «Коротко»: главное о направлении или процедуре одним блоком (цена, адрес, часы, запись) */
.section--brief { padding: 28px 0 0; }
.section--brief + .section { padding-top: 48px; }
.brief { background: #fff; border: 1px solid var(--green-4); border-radius: var(--radius-sm); padding: 18px 22px 20px; margin: 0 0 32px; }
.section--brief .brief { margin: 0; }
.brief__title { font-family: var(--sans); font-size: 12px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--green); margin: 0 0 12px; }
.brief__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 14px 28px; margin: 0; }
.brief__item { min-width: 0; }
.brief dt { font-size: 13px; color: var(--muted); margin: 0; }
.brief dd { margin: 3px 0 0; font-size: 15px; font-weight: 600; line-height: 1.45; overflow-wrap: anywhere; }
.brief dd a { color: var(--green); border-bottom: 1px solid var(--green-4); }
.brief dd a[href^="tel:"] { white-space: nowrap; }
.legal-grid { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 40px; align-items: start; }
.subnav { position: sticky; top: 92px; }
.subnav ul { list-style: none; margin: 0; padding: 0; border-left: 2px solid var(--line); }
.subnav a { display: block; padding: 8px 16px; font-size: 14.5px; font-weight: 600; color: var(--muted); margin-left: -2px; border-left: 2px solid transparent; }
.subnav a:hover, .subnav a.is-active { color: var(--green); border-color: var(--green); }
.subnav__drop { display: none; }
.legal-index { margin-top: 44px; padding-top: 32px; border-top: 1px solid var(--line); }
/* общая страница «Пациентам»: текст во всю ширину страницы, под заголовком */
.legal-root .article { max-width: none; }
@media (min-width: 1101px) { .legal-root .lcards { grid-template-columns: repeat(3, 1fr); } }
.legal-index .lead { margin-bottom: 22px; }
.lcards { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.lcard { display: grid; grid-template-columns: 40px 1fr 28px; gap: 12px; align-items: center; padding: 14px 16px; border-radius: 14px; background: #fff; border: 1px solid var(--line); color: var(--ink); transition: transform .2s, box-shadow .2s, border-color .2s; }
.lcard:hover { transform: translateY(-2px); box-shadow: var(--shadow); border-color: var(--green-4); color: var(--ink); }
.lcard__ico { width: 40px; height: 40px; border-radius: 12px; background: var(--green-3); color: var(--green); display: inline-flex; align-items: center; justify-content: center; }
.lcard__ico .ico { margin: 0; width: 20px; height: 20px; }
.lcard__body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.lcard__body strong { font-size: 15px; }
.lcard__body span { font-size: 13px; color: var(--muted); line-height: 1.4; }
.lcard__arrow { color: var(--green); }
.lcard__arrow .ico { margin: 0; }
.split { display: grid; grid-template-columns: 1.1fr .9fr; gap: 36px; align-items: center; margin: 12px 0 36px; }
.split__img { border-radius: var(--radius); aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.gallery { display: grid; gap: 14px; margin: 26px 0; }
.gallery--1 { grid-template-columns: 1fr; }
.gallery--2 { grid-template-columns: 1fr 1fr; }
.gallery--3 { grid-template-columns: repeat(3, 1fr); }
.gallery--4 { grid-template-columns: repeat(4, 1fr); }
.gallery figure { margin: 0; border-radius: var(--radius-sm); overflow: hidden; background: var(--green-3); }
.gallery img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: 4 / 3; }
.doclink { display: inline-flex; gap: 8px; align-items: flex-start; padding: 12px 16px; border: 1px solid var(--line); border-radius: 12px; background: #fff; color: var(--ink); font-weight: 600; margin: 4px 0; width: 100%; }
.doclink::before { content: "↓"; color: var(--green); font-weight: 700; flex: 0 0 auto; }
.doclink:hover { border-color: var(--green); color: var(--green); }
.legal ul { list-style: none; padding: 0; }
.legal li { margin-bottom: 6px; }
.legal li:not(:has(.doclink)) { padding-left: 1.2em; position: relative; }
.legal li:not(:has(.doclink))::before { content: "•"; position: absolute; left: 0; color: var(--gold); }

.notfound { text-align: center; padding: 60px 0 40px; }
.notfound > p { max-width: 560px; margin-left: auto; margin-right: auto; color: var(--muted); }
.notfound .actions { margin-top: 28px; }
.notfound__hours { font-size: 15px; margin-top: 18px; }
.notfound__links { font-size: 14px; margin-top: 26px; }
.notfound__links a { font-weight: 600; }

/* ---------- текст из контента ---------- */
.prose { font-size: 17px; line-height: 1.7; }
.prose h2 { margin-top: 1.4em; }
.prose h3 { font-size: 24px; margin: 1.5em 0 .5em; }
.prose h3:first-child { margin-top: 0; }
.prose ul { padding-left: 0; list-style: none; }
.prose ul li { position: relative; padding-left: 1.5em; margin-bottom: .45em; }
.prose ul li::before { content: ""; position: absolute; left: 0; top: .62em; width: 9px; height: 9px; border-radius: 50%; background: var(--lime); }
.prose ol li { margin-bottom: .45em; }
.prose strong { font-weight: 700; color: var(--ink); }
.prose .table-wrap { overflow-x: auto; margin: 1em 0; }
.prose table { width: 100%; border-collapse: collapse; font-size: 15px; }
.prose td { padding: 9px 12px; border: 1px solid var(--line); vertical-align: top; }
.prose tr:first-child td { background: var(--green-3); font-weight: 700; }
.prose a { border-bottom: 1px solid var(--green-4); }
.prose a[href^="tel:"] { white-space: nowrap; } /* номер телефона не разрывается переносом */
.lead { font-size: 19px; color: var(--muted); margin-bottom: 20px; }
.about .gallery { margin: 34px 0; }

/* ---------- адаптив ---------- */
@media (max-width: 1400px) {
  .header__phone { display: none; }
}
@media (max-width: 1280px) {
  .nav__link { font-size: 14px; padding: 10px 9px; }
}
@media (max-width: 1200px) {
  /* узкий десктоп / планшет в альбоме: ужимаем шапку, чтобы меню из 8 пунктов и кнопка помещались */
  .header__in { gap: 12px; }
  .logo img { height: 46px; }
  .nav__link { font-size: 13.5px; padding: 9px 7px; }
  .header__actions { margin-left: 0; }
  .header .btn--primary { padding: 10px 16px; font-size: 14px; }
}
@media (max-width: 1100px) {
  .grid--4 { grid-template-columns: repeat(2, 1fr); }
  .dgrid--rest { grid-template-columns: repeat(3, 1fr); }
  .dgrid--all { grid-template-columns: repeat(2, 1fr); }
  .tiles { grid-template-columns: repeat(3, 1fr); }
  .mega__grid { grid-template-columns: repeat(3, 1fr); }
  .footer__grid { grid-template-columns: 1fr 1fr; }
  .facts { grid-template-columns: repeat(2, 1fr); }
  .nav__link { padding: 10px 8px; font-size: 14px; }
}
@media (max-width: 1040px) {
  /* планшет в альбоме: 8 пунктов меню уже не помещаются — бургер, как на мобильном */
  .nav { display: none; }
  .burger { display: inline-flex; }
  .header__actions { margin-left: auto; }
}
@media (max-width: 960px) {
  .pricepop { padding: 20px 18px 20px 24px; }
  .pricepop__grid { grid-template-columns: 1fr; }
  .pricepop__title { font-size: 23px; }
  .pricepop .prices { font-size: 15px; }
  .topbar { display: none; }
  .header__phone { display: none; }
  .header__in { min-height: 66px; gap: 12px; }
  /* телефон/планшет: видео — фон под текстом, в кадре стойка ресепшена; панель направлений идёт ниже, не перекрывая видео */
  .hero--video { min-height: 0; padding: 0; align-items: stretch; display: block; }
  .hero__video { height: 122%; top: auto; bottom: 0; object-position: 67% 50%; } /* прижимаем кадр к низу: больше стойки, меньше потолка */
  .hero__shade { background: linear-gradient(180deg, var(--hero-tint-1) 0%, #468c5a 32%, #d2e6d8 56%, #fff 80%, #aac8b4 100%); }
  .hero__in, .phero__in, .cta__in, .contacts, .split { grid-template-columns: 1fr; }
  .hero__in { display: block; }
  .hero__text { min-height: calc(100svh - 66px); padding: 36px 0 96px; display: flex; flex-direction: column; justify-content: flex-start; }
  .hero__text .actions { margin-top: auto; padding-top: 10vh; }
  .hero--video h1 { font-size: clamp(30px, 7.4vw, 48px); margin-bottom: 12px; }
  .hero--video .eyebrow { font-size: 11px; }
  .hero__hours { display: none; }
  .hero--video .actions { gap: 8px; }
  .hero--video .actions .btn { padding: 12px 18px; font-size: 14px; }
  .hero__focus { position: relative; z-index: 2; background: #fff; border: 0; backdrop-filter: none; border-radius: 22px 22px 0 0; margin: 0 -16px; width: calc(100% + 32px); padding: 18px 16px 6px; box-shadow: 0 -10px 30px rgba(0, 0, 0, .12); }
  .hero__focus-title { margin: 0 0 10px; }
  .focus { border: 1px solid var(--line); background: #fff; padding: 10px 12px; grid-template-columns: 56px 1fr auto; margin-bottom: 8px; }
  .focus:hover { transform: none; }
  .focus__img { width: 56px; height: 56px; }
  .focus__body strong { font-size: 18px; font-family: var(--sans); font-weight: 700; }
  .focus__body span { display: none; }
  .focus__arrow { width: 34px; height: 34px; }
  .dgrid--rest { grid-template-columns: repeat(2, 1fr); }
  .tiles { grid-template-columns: repeat(2, 1fr); }
  .grid--3 { grid-template-columns: repeat(2, 1fr); }
  .rgrid { columns: 2; }
  .article-grid, .legal-grid { grid-template-columns: minmax(0, 1fr); }
  .sidebar, .subnav { position: static; }
  /* телефон: вместо длинного списка — выпадающий список «текущий раздел ▾» */
  .subnav__list { display: none; }
  .subnav__drop { display: block; border: 1px solid var(--line); border-radius: 14px; background: #fff; }
  .subnav__drop summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; padding: 12px 16px; font-weight: 700; color: var(--green); }
  .subnav__drop summary::-webkit-details-marker { display: none; }
  .subnav__drop summary .ico { margin: 0; transition: transform .2s; }
  .subnav__drop[open] summary .ico { transform: rotate(180deg); }
  .subnav__drop ul { border: 0; border-top: 1px solid var(--line); padding: 6px 0; }
  .subnav__drop a { padding: 9px 16px; border: 0; margin: 0; }
  .subnav__drop a.is-active { background: var(--green-3); color: var(--green); }
  .section { padding: 54px 0; }
  .promo { grid-template-columns: minmax(0, 1fr); }
  .promo__media { aspect-ratio: 16 / 9; min-height: 0; } /* с min-height 200px пропорция давала ширину 356px — шире телефона */
  .gallery--4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  body { font-size: 16px; padding-bottom: 68px; }
  .grid--2, .grid--3, .grid--4, .gallery--3, .gallery--2 { grid-template-columns: 1fr; }
  .docs { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .lcards { grid-template-columns: 1fr; }
  .rgrid { columns: 1; }
  .rbadge { flex: 1 1 100%; }
  .doc h3 { font-size: 19px; }
  .doc__body { padding: 12px 14px 16px; }
  .doc p { font-size: 13px; }
  .doc .btn { width: 100%; }
  .facts { gap: 12px; grid-template-columns: repeat(2, 1fr); padding: 20px 0; }
  .fact__num { font-size: 34px; }
  .dgrid--rest { grid-template-columns: 1fr 1fr; gap: 10px; }
  .dgrid--rest .dcard h3 { font-size: 16px; }
  .dgrid--all { gap: 10px; }
  .dcard__body, .dgrid--rest .dcard__body { padding: 10px 12px 12px; }
  .dcard h3, .dgrid--rest .dcard h3 { font-size: 17px; }
  .dcard__text, .dcard__cta { display: none; }
  .tiles { grid-template-columns: 1fr; }
  .focus__body strong { font-size: 16px; }
  .form__row { grid-template-columns: 1fr; }
  .cta__form { padding: 22px 18px; }
  .acc summary { font-size: 19px; padding: 14px 14px 14px 18px; gap: 10px; }
  .acc__body { padding: 0 14px 14px 18px; }
  .pcats { grid-template-columns: 1fr 1fr; gap: 8px; }
  .pcat { min-height: 56px; padding: 9px 36px 9px 12px; }
  .phero.phero--compact { padding: 16px 0 12px; }
  .phero--compact .phero__lead { font-size: 15px; line-height: 1.5; }
  .section--pricebody { padding-top: 12px; }
  .pcat__title { font-size: 13px; }
  .modal__box { margin: 3vh auto; padding: 28px 20px 22px; }
  .modal__title { font-size: 26px; }
  .header__actions .btn { display: none; }
  .logo img { height: 40px; }
  .header__in { justify-content: space-between; }
  .stickybar { position: fixed; left: 0; right: 0; bottom: 0; z-index: 100; display: grid; grid-template-columns: 1fr 1fr 1.4fr; gap: 6px; padding: 8px 10px calc(8px + env(safe-area-inset-bottom)); background: rgba(255, 255, 255, .96); border-top: 1px solid var(--line); backdrop-filter: blur(10px); }
  .stickybar a { display: inline-flex; align-items: center; justify-content: center; gap: 4px; padding: 11px 6px; border-radius: 12px; font-size: 13.5px; font-weight: 700; color: var(--green); background: var(--green-3); }
  .stickybar__main { background: var(--green) !important; color: #fff !important; }
  .stickybar { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.4fr); } /* кнопки сжимаются, панель не шире экрана */
  .stickybar a { min-width: 0; white-space: nowrap; }
  .phero { padding: 26px 0 30px; }
  .phero__media { order: -1; }
  .phero__media img { aspect-ratio: 16 / 10; }
  .footer__grid { grid-template-columns: 1fr; gap: 26px; }
}
@media (max-width: 600px) {
}

@media (max-width: 380px) {
  .stickybar a { font-size: 13px; padding: 11px 4px; }
  .stickybar a .ico { display: none; }
}

/* =====================================================================================
   ВЕРСИЯ ДЛЯ СЛАБОВИДЯЩИХ
   Режим включается атрибутами на <html>: data-a11y (+ data-a11y-font / -scheme / -img / -ls / -lh / -ff / -speech).
   Их ставит скрипт в <head> до отрисовки (build.py → A11Y_HEAD) и кнопки панели (app.js).
   Разметка кнопок и панели — build.py: a11y_toggle(), a11y_panel().
   ===================================================================================== */

/* ---- кнопки «Версия для слабовидящих» в обычном режиме ---- */
.a11y-toggle { display: inline-flex; align-items: center; gap: 6px; font: inherit; cursor: pointer; }
.a11y-toggle .ico { width: 18px; height: 18px; margin: 0; }
.a11y-toggle__off { display: none; }
.topbar__a11y { margin-left: 16px; padding: 3px 12px; border: 1px solid rgba(255, 255, 255, .5); border-radius: 999px; background: transparent; color: #fff; font-size: 13px; font-weight: 600; }
.topbar__a11y:hover { background: rgba(255, 255, 255, .15); }
.a11y-toggle--icon { display: none; }
.mnav__a11y { width: 100%; justify-content: center; margin-bottom: 12px; padding: 11px 16px; border: 1.5px solid var(--green-4); border-radius: 999px; background: #fff; color: var(--green); font-weight: 700; }
.footer__a11y { margin: 0 0 12px; }
.footer__a11y-btn { padding: 8px 16px; border: 1px solid rgba(255, 255, 255, .45); border-radius: 999px; background: transparent; color: #fff; font-size: 14px; font-weight: 600; }
.footer__a11y-btn:hover { background: rgba(255, 255, 255, .12); }
.a11y { display: none; }
@media (max-width: 960px) { .a11y-toggle--icon { display: inline-flex; } }

/* ---- параметры режима ---- */
html[data-a11y] {
  --a-bg: #fff; --a-fg: #000;                     /* схема «чёрный на белом» (по умолчанию) */
  --a-fs: 20px; --a-lh: 1.55; --a-ls: normal;
  --a-ff: Arial, "Helvetica Neue", Helvetica, sans-serif;
  --a-panel: 18px;
  --header-h: 0px !important;                     /* шапка в этом режиме не липкая */
  scroll-behavior: auto;
}
html[data-a11y][data-a11y-scheme="wb"]    { --a-bg: #000;    --a-fg: #fff; }
html[data-a11y][data-a11y-scheme="blue"]  { --a-bg: #9dd1ff; --a-fg: #063462; }
html[data-a11y][data-a11y-scheme="brown"] { --a-bg: #f7f3d6; --a-fg: #4d4b43; }
html[data-a11y][data-a11y-scheme="green"] { --a-bg: #3b2716; --a-fg: #a9e44d; }
html[data-a11y][data-a11y-font="2"] { --a-fs: 24px; --a-panel: 20px; }
html[data-a11y][data-a11y-font="3"] { --a-fs: 30px; --a-panel: 22px; }
html[data-a11y][data-a11y-lh="2"] { --a-lh: 1.9; }
html[data-a11y][data-a11y-lh="3"] { --a-lh: 2.3; }
html[data-a11y][data-a11y-ls="2"] { --a-ls: .08em; }
html[data-a11y][data-a11y-ls="3"] { --a-ls: .16em; }
html[data-a11y][data-a11y-ff="serif"] { --a-ff: Georgia, "Times New Roman", Times, serif; }
@media (max-width: 640px) { html[data-a11y][data-a11y-font="3"] { --a-fs: 27px; } }

/* ---- цвета, шрифт, интервалы: одна схема на всё, без градиентов, теней и полупрозрачности ---- */
html[data-a11y], html[data-a11y] body { background: var(--a-bg) !important; color: var(--a-fg) !important; }
html[data-a11y] body { font-family: var(--a-ff) !important; font-size: var(--a-fs) !important; line-height: var(--a-lh) !important; letter-spacing: var(--a-ls) !important; padding-bottom: 0 !important; }
html[data-a11y] body * {
  font-family: inherit !important; font-size: inherit !important; line-height: inherit !important; letter-spacing: inherit !important;
  color: var(--a-fg) !important; background-color: var(--a-bg) !important; background-image: none !important;
  border-color: var(--a-fg) !important; box-shadow: none !important; text-shadow: none !important; text-transform: none !important;
  transition: none !important; animation: none !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important;
  overflow-wrap: anywhere; hyphens: auto;          /* anywhere: длинные слова при крупном шрифте не выталкивают блоки за край экрана */
}
html[data-a11y] body *::before, html[data-a11y] body *::after { background-color: transparent !important; background-image: none !important; box-shadow: none !important; color: var(--a-fg) !important; border-color: var(--a-fg) !important; }
html[data-a11y] body ::placeholder { color: var(--a-fg) !important; opacity: 1; }
html[data-a11y] body :is(h1, .h1) { font-size: calc(var(--a-fs) * 1.75) !important; line-height: 1.25 !important; }
html[data-a11y] body :is(h2, .h2) { font-size: calc(var(--a-fs) * 1.45) !important; line-height: 1.3 !important; }
html[data-a11y] body :is(h3, .h3) { font-size: calc(var(--a-fs) * 1.2) !important; line-height: 1.35 !important; }
html[data-a11y] body :is(h4, h5, h6) { font-size: calc(var(--a-fs) * 1.08) !important; }
html[data-a11y] body :is(h1, h2, h3, h4, h5, h6, .h2) { font-weight: 700 !important; }
@media (max-width: 640px) {
  html[data-a11y] body :is(h1, .h1) { font-size: calc(var(--a-fs) * 1.4) !important; }
  html[data-a11y] body :is(h2, .h2) { font-size: calc(var(--a-fs) * 1.22) !important; }
  html[data-a11y] body :is(h3, .h3) { font-size: calc(var(--a-fs) * 1.1) !important; }
}
/* ссылки подчёркнуты, элементы управления — с рамкой, фокус хорошо заметен */
html[data-a11y] body a { text-decoration: underline !important; text-decoration-thickness: 2px !important; text-underline-offset: .18em; }
html[data-a11y] body .btn { text-decoration: none !important; font-weight: 700 !important; white-space: normal !important; }
html[data-a11y] body :is(.btn, button, input, select, textarea, .chip, .pcat, .acc, .card, .dcard, .doc, .promo, .review, .tile, .lcard, .focus, .rbadge, .pricepop, .side, .modal__box, .nav__link, .iconbtn, .feature, .contacts__card, .hero__focus) { border: 2px solid var(--a-fg) !important; }
html[data-a11y] body :focus-visible { outline: 4px solid var(--a-fg) !important; outline-offset: 3px !important; }
html[data-a11y] body :is(.header__phone, .acc__count, .nav__link, .prose a[href^="tel:"]) { white-space: normal !important; }
html[data-a11y] body :is(.prose ul li)::before { background-color: var(--a-fg) !important; }
html[data-a11y] body .acc summary::after { border: 2px solid var(--a-fg) !important; }

/* ---- изображения: чёрно-белые или скрыты ---- */
html[data-a11y][data-a11y-img="gray"] body :is(img, video, iframe) { filter: grayscale(1) !important; }
html[data-a11y][data-a11y-img="off"] body :is(img, picture, video, .dcard__media, .doc__photo, .promo__media, .phero__media, .split__media, .gallery, .focus__img, .tile__img) { display: none !important; }
html[data-a11y][data-a11y-img="off"] .logo::after { content: "Клинический Институт Регенеративной Медицины"; font-weight: 700; }
html[data-a11y][data-a11y-img="off"] :is(.promo, .focus) { grid-template-columns: minmax(0, 1fr) !important; }

/* ---- раскладка: без видео и наложений, одна-две колонки, меню без выпадающих списков ---- */
html[data-a11y] :is(.hero__video, .hero__shade, .fab, .stickybar, .mega, .drop, .a11y-toggle--icon, .topbar__a11y, .pcat__arrow, .tile__arrow, .focus__arrow, .nav__link .ico, .pcat::before, .acc summary::before, .pricepop::before, .tile::after) { display: none !important; }
html[data-a11y] :is(.container, .header__in, .topbar__in) { width: min(1200px, 100% - 32px) !important; }
html[data-a11y] .topbar { border-bottom: 2px solid var(--a-fg); }
html[data-a11y] .topbar__in { flex-wrap: wrap; gap: 6px 24px; min-height: 0; padding: 8px 0; }
html[data-a11y] .topbar__phones { flex-wrap: wrap; }
html[data-a11y] .header { position: static !important; border-bottom: 2px solid var(--a-fg) !important; }
html[data-a11y] .header__in { flex-wrap: wrap; gap: 12px 20px; min-height: 0; padding: 12px 0; }
html[data-a11y] .logo { flex: 0 1 auto; min-width: 0; max-width: 100%; }
html[data-a11y] .logo img { height: 44px !important; }
html[data-a11y] .header__actions { margin-left: auto; flex: 1 1 auto; min-width: 0; flex-wrap: wrap; justify-content: flex-end; gap: 10px 14px; }
html[data-a11y] .header__phone { display: inline-flex !important; }
html[data-a11y] .nav { order: 5; flex: 1 1 100%; margin: 0; align-self: auto; }
html[data-a11y] .nav__list { flex-wrap: wrap; gap: 8px; }
html[data-a11y] .nav__item { display: block; }
html[data-a11y] .nav__link { padding: 6px 14px; border-radius: 10px; }
html[data-a11y] .nav__link.is-active { font-weight: 800 !important; outline: 2px solid var(--a-fg); outline-offset: 2px; }
html[data-a11y] .mnav { border-right: 3px solid var(--a-fg) !important; }
html[data-a11y] :is(.sidebar, .subnav) { position: static !important; }
html[data-a11y] .section { padding: 36px 0 !important; }
html[data-a11y] :is(.grid, .dgrid, .tiles, .pcats, .docs, .footer__grid, .facts, .lcards, .pricepop__grid, .form__row, .gallery, .rgrid, .scroller__track) {
  display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15em), 1fr)) !important; gap: 16px !important; columns: auto !important;
}
html[data-a11y] :is(.hero__in, .phero__in, .cta__in, .contacts, .split, .article-grid, .legal-grid, .promo) { display: grid !important; grid-template-columns: minmax(0, 1fr) !important; gap: 20px !important; }
html[data-a11y] .svc-lists { columns: auto !important; column-count: 1 !important; }
html[data-a11y] .scroller { overflow: visible !important; margin: 0 !important; padding: 0 !important; }
html[data-a11y] .scroller .review { flex: none !important; }
html[data-a11y] .hero--video { min-height: 0 !important; display: block !important; padding: 28px 0 !important; }
html[data-a11y] .hero__text { min-height: 0 !important; padding: 0 !important; display: block !important; }
html[data-a11y] .hero__text .actions { margin-top: 18px !important; padding-top: 0 !important; }
html[data-a11y] .hero__focus { margin: 0 !important; width: auto !important; padding: 16px !important; border-radius: 16px !important; }
html[data-a11y] .focus { grid-template-columns: auto minmax(0, 1fr) !important; }
html[data-a11y] .phero { padding: 24px 0 !important; }
html[data-a11y] .dcard__text { display: block !important; -webkit-line-clamp: unset !important; overflow: visible !important; }
html[data-a11y] .dcard__cta { display: inline-flex !important; }
html[data-a11y] .tile { aspect-ratio: auto !important; display: flex !important; flex-direction: column; }
html[data-a11y] .tile__img { position: static !important; height: auto !important; aspect-ratio: 4 / 3; }
html[data-a11y] .tile__body { position: static !important; padding: 12px 14px !important; }
html[data-a11y] .pcat { padding: 12px 14px !important; min-height: 0 !important; }
html[data-a11y] .promo__media { min-height: 0 !important; } /* пропорция 16:9 + min-height 200px давали ширину больше экрана */
html[data-a11y] .modal__box { width: min(760px, 100% - 16px) !important; margin: 3vh auto !important; max-height: 94vh; overflow: auto; border-width: 3px !important; }
html[data-a11y] .ymap { border: 2px solid var(--a-fg); }
html[data-a11y] .prices { table-layout: fixed; width: 100%; }
html[data-a11y] .prices td.price { white-space: normal !important; width: 34%; }
html[data-a11y] .acc summary { flex-wrap: wrap; gap: 8px; }
html[data-a11y] .acc summary > span:first-child { flex: 1 1 60%; min-width: 0; }

/* ---- панель настроек ---- */
html[data-a11y] .a11y { display: block; border-bottom: 3px solid var(--a-fg) !important; }
html[data-a11y] .a11y, html[data-a11y] .a11y * { font-size: var(--a-panel) !important; line-height: 1.35 !important; letter-spacing: normal !important; font-family: Arial, "Helvetica Neue", Helvetica, sans-serif !important; hyphens: manual; }
html[data-a11y] .a11y, html[data-a11y] .a11y * { overflow-wrap: normal; }
html[data-a11y] .a11y__bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; width: min(1200px, 100% - 32px); margin: 0 auto; padding: 10px 0; }
html[data-a11y] .a11y__more { display: inline-flex; align-items: center; gap: 8px; min-height: 48px; padding: 6px 14px; border: 2px solid var(--a-fg) !important; border-radius: 8px; font-weight: 700; cursor: pointer; }
html[data-a11y] .a11y__more::after { content: "▼"; font-size: .8em; }
html[data-a11y][data-a11y-open] .a11y__more::after { content: "▲"; }
html[data-a11y] .a11y__more .ico { width: 1.3em; height: 1.3em; margin: 0; }
html[data-a11y] .a11y__btn--exit { margin-left: auto; }
html[data-a11y] .a11y__body { display: none; flex-wrap: wrap; align-items: flex-start; gap: 14px 30px; width: min(1200px, 100% - 32px); margin: 0 auto; padding: 4px 0 16px; }
html[data-a11y][data-a11y-open] .a11y__body { display: flex; }
html[data-a11y] .a11y__group { display: flex; flex-direction: column; gap: 6px; }
html[data-a11y] .a11y__label { font-weight: 700; }
html[data-a11y] .a11y__opts, html[data-a11y] .a11y__actions { display: flex; flex-wrap: wrap; gap: 6px; }
html[data-a11y] .a11y__actions { align-self: flex-end; }
@media (max-width: 640px) {
  html[data-a11y] { --a-panel: 18px !important; }
  html[data-a11y] .a11y__body { gap: 12px; }
  html[data-a11y] .a11y__btn--exit { margin-left: 0; }
}
html[data-a11y] .a11y__hint { font-weight: 400; }
html[data-a11y] .a11y__btn { min-width: 48px; min-height: 48px; padding: 6px 12px; border: 2px solid var(--a-fg) !important; border-radius: 8px; cursor: pointer; font-weight: 700; }
html[data-a11y] .a11y__btn[aria-pressed="true"] { background-color: var(--a-fg) !important; color: var(--a-bg) !important; }
html[data-a11y] .a11y .a11y__btn--f1 { font-size: 18px !important; }
html[data-a11y] .a11y .a11y__btn--f2 { font-size: 23px !important; }
html[data-a11y] .a11y .a11y__btn--f3 { font-size: 28px !important; }
html[data-a11y] .a11y .a11y__btn--serif { font-family: Georgia, "Times New Roman", serif !important; }
/* образцы цветовых схем — всегда в своих цветах; выбранная отмечена толстой рамкой */
html[data-a11y] .a11y .a11y__sch { width: 48px; font-size: 24px !important; }
html[data-a11y] .a11y .a11y__sch--bw    { background-color: #fff !important;    color: #000 !important;    border-color: #000 !important; }
html[data-a11y] .a11y .a11y__sch--wb    { background-color: #000 !important;    color: #fff !important;    border-color: #fff !important; outline: 2px solid #000; }
html[data-a11y] .a11y .a11y__sch--blue  { background-color: #9dd1ff !important; color: #063462 !important; border-color: #063462 !important; }
html[data-a11y] .a11y .a11y__sch--brown { background-color: #f7f3d6 !important; color: #4d4b43 !important; border-color: #4d4b43 !important; }
html[data-a11y] .a11y .a11y__sch--green { background-color: #3b2716 !important; color: #a9e44d !important; border-color: #a9e44d !important; }
html[data-a11y] .a11y .a11y__sch[aria-pressed="true"] { box-shadow: 0 0 0 3px var(--a-bg), 0 0 0 6px var(--a-fg) !important; }
html[data-a11y] .a11y-toggle__on { display: none; }
html[data-a11y] .a11y-toggle__off { display: inline; }
/* озвучивание: читаемый фрагмент обведён */
html[data-a11y][data-a11y-speech="on"] main :is(p, li, h1, h2, h3, h4, td, th, dt, dd, blockquote, figcaption) { cursor: pointer; }
html[data-a11y] .a11y-reading { outline: 3px dashed var(--a-fg) !important; outline-offset: 4px !important; }
