:root {
  --bg: #eef3f7;
  --card: #fff;
  --ink: #101828;
  --ink-2: #475467;
  --muted: #667085;
  --line: #e4e9f0;
  --blue: #2f86f6;
  --blue-d: #1f6fd9;
  --blue-soft: #eaf3fe;
  --coral: #ff6a55;
  --coral-d: #f25540;
  --radius: 16px;
  --radius-s: 10px;
  --shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 4px 16px rgba(16, 24, 40, .04);
  --gap: 14px;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font: 15px/1.45 Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  -webkit-font-smoothing: antialiased;
}
body.no-scroll { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select { font: inherit; color: inherit; }
h1, h2, h3 { margin: 0; letter-spacing: -.02em; }
h2 { font-size: 28px; font-weight: 700; line-height: 1.15; }
p { margin: 0; }
.muted { color: var(--muted); }

.ic { width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.ic--blue { color: var(--blue); }

.page { max-width: 1320px; margin: 0 auto; padding: 0 20px 24px; display: flex; flex-direction: column; gap: var(--gap); }
.card { background: var(--card); border-radius: var(--radius); box-shadow: var(--shadow); }
.section { padding: 26px 26px 22px; }
.section__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.link-more { display: inline-flex; align-items: center; gap: 6px; color: var(--blue); font-size: 14px; font-weight: 500; }
.link-more .ic { width: 16px; height: 16px; }
.link-more:hover { color: var(--blue-d); }

/* Кнопки */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  border: 0; border-radius: var(--radius-s); cursor: pointer; white-space: nowrap;
  padding: 11px 18px; font-size: 14px; font-weight: 600;
  transition: background .15s, color .15s, box-shadow .15s, transform .1s;
}
.btn:active { transform: translateY(1px); }
.btn--lg { padding: 15px 26px; font-size: 15px; }
.btn--block { width: 100%; }
.btn--coral { background: var(--coral); color: #fff; }
.btn--coral:hover { background: var(--coral-d); }
.btn--blue { background: var(--blue); color: #fff; }
.btn--blue:hover { background: var(--blue-d); }
.btn--light { background: #eef5ff; color: var(--ink); }
.btn--light:hover { background: #fff; }
.btn--white { background: #fff; color: var(--coral); }
.btn--white:hover { background: #fff4f2; }
.btn--outline { background: #fff; color: var(--blue); box-shadow: inset 0 0 0 1.5px var(--blue); padding: 9px 16px; }
.btn--outline:hover { background: var(--blue-soft); }
.btn .ic { width: 17px; height: 17px; }

/* Верхняя строка */
.topbar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 8px 0; font-size: 13px; color: var(--ink-2); }
.topbar__info { display: flex; gap: 32px; flex-wrap: wrap; }
.topbar__info > span { display: inline-flex; align-items: center; gap: 8px; }
.topbar__info .ic { width: 16px; height: 16px; color: var(--muted); }
.topbar__search { display: flex; align-items: center; gap: 8px; background: #e3e9f0; border-radius: 999px; padding: 7px 14px; width: 220px; color: var(--muted); }
.topbar__search input { border: 0; background: none; outline: none; width: 100%; font-size: 13px; }
.topbar__search .ic { width: 15px; height: 15px; }

/* Шапка */
.header { display: flex; align-items: center; gap: 24px; padding: 12px 16px 12px 18px; position: sticky; top: 8px; z-index: 20; }
.logo img { width: 210px; height: auto; }
.nav { display: flex; gap: 6px; margin: 0 auto; }
.nav a { padding: 9px 16px; border-radius: 10px; font-size: 14px; font-weight: 500; color: var(--ink); position: relative; }
.nav a:hover { color: var(--blue); }
.nav a.is-active { background: var(--blue-soft); color: var(--blue); }
.nav a.is-active::after { content: ""; position: absolute; left: 16px; right: 16px; bottom: 4px; height: 2px; border-radius: 2px; background: var(--blue); }
.header__phone { display: flex; align-items: flex-start; gap: 10px; }
.header__call .ic { margin-top: 3px; display: block; }
.phone-main { display: block; font-weight: 700; font-size: 16px; white-space: nowrap; }
.phone-sub { display: block; font-size: 13px; color: var(--ink-2); white-space: nowrap; }
.burger { display: none; margin-left: auto; background: var(--blue-soft); border: 0; border-radius: 10px; padding: 9px; color: var(--blue); cursor: pointer; }
.burger .ic { width: 22px; height: 22px; }

/* Первый экран + преимущества (один блок) */
.hero-wrap { overflow: hidden; }
.hero {
  position: relative; overflow: hidden; border-radius: var(--radius) var(--radius) 0 0;
  min-height: 520px; display: flex; flex-direction: column; justify-content: center;
  background: #3c4148 url("../img/hero.jpg") 60% center / cover no-repeat;
}
.hero::before {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(40, 46, 54, .16) 0%, rgba(50, 56, 64, .05) 40%, rgba(50, 56, 64, 0) 60%);
}
/* белая карточка-подложка слева — строго по макету */
.hero__body { position: relative; margin: 26px; padding: 28px 32px 26px; max-width: 630px; color: var(--ink);
  background: #fff; border-radius: 28px; box-shadow: 0 30px 70px rgba(16, 24, 40, .26); }
.hero__top { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.hero__city { display: inline-flex; align-items: center; gap: 6px; background: var(--blue-soft); color: var(--blue-d);
  font-size: 13.5px; font-weight: 700; border-radius: 999px; padding: 6px 12px; }
.hero__city .ic { width: 15px; height: 15px; }
.hero__tag { font-size: 14px; color: var(--muted); }
.hero h1 { font-size: 46px; line-height: 1.08; font-weight: 800; letter-spacing: -.03em; color: var(--ink); }
.hero h1 b { color: var(--blue); font-weight: 800; }
.hero__sub { margin-top: 10px; font-size: 19px; font-weight: 600; color: var(--muted); }
.hero__actions { display: flex; gap: 12px; margin-top: 22px; flex-wrap: wrap; }
.hero__actions .btn--lg { padding: 15px 24px; }
/* плашка «сегодня принимают N врачей | есть вопросы» */
.hero__bar { display: flex; align-items: stretch; margin-top: 18px; background: #fff; border: 1px solid var(--line);
  border-radius: 16px; box-shadow: 0 6px 18px rgba(16, 24, 40, .06); overflow: hidden; }
.hero__today, .hero__help { display: flex; align-items: center; gap: 10px; padding: 13px 16px; flex: 1 1 0; min-width: 0;
  color: var(--ink); font-size: 14.5px; transition: background .2s; }
.hero__today:hover, .hero__help:hover { background: var(--blue-soft); }
.hero__help { border-left: 1px solid var(--line); }
.hero__bar-ic { width: 20px; height: 20px; color: var(--blue); flex: none; }
.hero__bar-chev { width: 14px; height: 14px; color: var(--muted); margin-left: auto; flex: none; transform: rotate(-90deg); }
.hero__help span { display: flex; flex-direction: column; line-height: 1.2; }
.hero__help b { font-weight: 700; font-size: 14px; }
.hero__help i { font-style: normal; font-size: 13px; color: var(--muted); }
/* преимущества внутри карточки баннера */
.hero__perks { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 20px; }
.hero__perks li { display: flex; flex-direction: column; gap: 8px; }
.hero__perks .ic { box-sizing: border-box; width: 38px; height: 38px; padding: 9px; border-radius: 12px; background: var(--blue-soft); color: var(--blue); }
.hero__perks span { display: flex; flex-direction: column; font-size: 12.5px; color: var(--muted); line-height: 1.25; }
.hero__perks b { font-weight: 600; color: var(--ink-2); }
.hero__today b { font-weight: 800; }
.hero__today-dot { width: 9px; height: 9px; border-radius: 50%; background: #34d27b; box-shadow: 0 0 0 0 rgba(52, 210, 123, .7); animation: heroPulse 2s infinite; flex: none; }
.hero__today--off .hero__today-dot { background: #ffc24d; animation: none; }
@keyframes heroPulse { 70% { box-shadow: 0 0 0 9px rgba(52, 210, 123, 0); } 100% { box-shadow: 0 0 0 0 rgba(52, 210, 123, 0); } }
@media (prefers-reduced-motion: reduce) { .hero__today-dot { animation: none; } }
.hero__note { position: absolute; left: 0; right: 0; bottom: 0; padding: 12px 20px; text-align: center; background: rgba(20, 26, 34, .72); color: #fff; font-size: 14px; font-weight: 600; backdrop-filter: blur(4px); }

/* Преимущества */
.features { display: grid; grid-template-columns: 270px 1fr; gap: 18px; align-items: stretch; padding: 16px; }
.feat-since { display: flex; align-items: center; gap: 16px; padding: 18px 20px; border-radius: 14px; background: linear-gradient(135deg, #eaf3fe 0%, #f4f9ff 100%); }
.feat-since__ic { width: 52px; height: 52px; flex: none; border-radius: 14px; background: #fff; display: grid; place-items: center; box-shadow: 0 6px 16px rgba(47, 134, 246, .15); }
.feat-since__ic .ic { width: 26px; height: 26px; fill: var(--coral); stroke: var(--coral); }
.feat-since b { display: block; font-size: 22px; font-weight: 800; letter-spacing: -.02em; }
.feat-since > div span { display: block; font-size: 13px; color: var(--ink-2); line-height: 1.35; margin-top: 2px; }
.feat-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); }
.feat { display: flex; align-items: center; gap: 12px; padding: 12px 16px; position: relative; }
.feat + .feat::before { content: ""; position: absolute; left: 0; top: 18px; bottom: 18px; width: 1px; background: var(--line); }
.feat__ic { width: 40px; height: 40px; flex: none; border-radius: 12px; background: var(--blue-soft); color: var(--blue); display: grid; place-items: center; transition: background .2s, color .2s; }
.feat:hover .feat__ic { background: var(--blue); color: #fff; }
.feat__ic .ic { width: 20px; height: 20px; }
.feat b { display: block; font-size: 14.5px; font-weight: 600; line-height: 1.3; }
.feat > div span { display: block; font-size: 12.5px; color: var(--muted); line-height: 1.4; margin-top: 3px; }

/* С чего начнём */
.start { padding: 22px 26px 24px; border-left: 5px solid var(--blue); }
.start__head { display: flex; align-items: center; gap: 28px; margin-bottom: 16px; flex-wrap: wrap; }
.tabs { display: inline-flex; border: 1px solid var(--line); border-radius: 10px; padding: 3px; background: #fff; }
.tab { border: 0; background: none; padding: 8px 20px; border-radius: 8px; cursor: pointer; font-size: 14px; color: var(--ink); }
.tab.is-active { background: var(--blue-soft); color: var(--blue); font-weight: 600; }
.start__form { display: grid; grid-template-columns: 1fr 1fr auto; gap: 16px; align-items: end; }
.start__form .btn { min-width: 220px; }
.field { display: flex; flex-direction: column; gap: 7px; }
.field > span { font-size: 13px; color: var(--ink-2); font-weight: 500; }
.field select, .field input {
  width: 100%; border: 1px solid #d5dde7; border-radius: var(--radius-s); background: #fff;
  padding: 13px 14px; font-size: 14px; outline: none; transition: border-color .15s, box-shadow .15s;
}
.field select {
  appearance: none; padding-right: 40px; cursor: pointer;
  background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23101828' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") right 14px center no-repeat;
}
.field select:disabled { color: var(--muted); cursor: default; background-color: #f7f9fb; }
.field select:focus, .field input:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(47, 134, 246, .15); }

/* Направления */
.dirs { display: grid; grid-template-columns: repeat(8, 1fr); gap: 10px; }
.dir {
  background: var(--blue-soft); border-radius: 12px; min-height: 118px; padding: 18px 8px 16px;
  display: flex; flex-direction: column; align-items: center; justify-content: space-between; gap: 12px;
  text-align: center; font-size: 13px; font-weight: 500; transition: background .15s, transform .15s, box-shadow .15s;
}
.dir:hover { background: #dcebfd; transform: translateY(-2px); box-shadow: 0 6px 16px rgba(47, 134, 246, .12); }
.dir__ic { width: 44px; height: 44px; fill: none; stroke: var(--blue); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

/* О клинике */
.about { display: grid; grid-template-columns: 5fr 7fr; gap: 16px; padding: 10px; }
.about__card { background: var(--blue-soft); border-radius: 12px; padding: 36px 26px 26px; }
.about__card h2 { font-size: 44px; line-height: 1.08; font-weight: 800; }
.about__card ul { list-style: none; padding: 0; margin: 34px 0 0; }
.about__card li { display: flex; align-items: center; gap: 16px; padding: 16px 0; font-size: 15px; }
.about__card li + li { border-top: 1px solid #cddcee; }
.about__card .ic { width: 22px; height: 22px; }
.about__media img { width: 100%; height: 260px; object-fit: cover; border-radius: 12px; }
.about__media p { padding: 16px 6px 8px; font-size: 15px; color: var(--ink); }

/* Врачи */
.docs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.doc { border: 1px solid var(--line); border-radius: 12px; padding: 12px 12px 14px; display: flex; flex-direction: column; transition: box-shadow .15s, border-color .15s; }
.doc:hover { border-color: #cfe0f7; box-shadow: 0 8px 24px rgba(16, 24, 40, .07); }
.doc__top { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 16px; }
.doc__top img { width: 116px; height: 124px; object-fit: cover; object-position: center top; border-radius: 6px; background: var(--blue-soft); }
.doc__go { width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--line); display: grid; place-items: center; color: var(--ink); }
.doc__go .ic { width: 15px; height: 15px; }
.doc__go:hover { border-color: var(--blue); color: var(--blue); }
.doc h3 a:hover { color: var(--blue); }
.doc h3 { font-size: 17px; font-weight: 700; }
.doc__name { font-size: 14px; color: var(--ink); margin-top: 2px; }
.doc__spec { font-size: 13px; color: var(--muted); margin-top: 8px; }
.doc__btn { margin: 22px 0 0 auto; padding: 10px 18px; }

/* Выбор специалиста + помощь */
.split { display: grid; grid-template-columns: 1fr 400px; gap: var(--gap); }
.pick { padding: 20px 14px 14px; }
.pick .section__head { padding: 0 6px; margin-bottom: 12px; }
.pick__search { display: flex; align-items: center; gap: 8px; border: 1px solid #d5dde7; border-radius: 8px; padding: 8px 12px; width: 240px; color: var(--muted); }
.pick__search input { border: 0; outline: none; width: 100%; font-size: 13px; }
.pick__search .ic { width: 15px; height: 15px; }
.pick__list { display: flex; flex-direction: column; gap: 8px; }
.pick__empty { padding: 16px 8px; }
.spec { display: flex; align-items: center; gap: 20px; border: 1px solid var(--line); border-radius: 10px; padding: 4px 16px 4px 4px; }
.spec__ph { width: 84px; height: 64px; border-radius: 8px; overflow: hidden; background: var(--blue-soft); display: grid; place-items: center; color: var(--blue); flex: none; }
.spec__ph img { width: 100%; height: 100%; object-fit: cover; }
.spec__ph .ic { width: 26px; height: 26px; }
.spec__txt { flex: 1; min-width: 0; }
.spec__txt b { display: block; font-size: 15px; }
.spec__txt span { font-size: 13px; color: var(--ink-2); }

.help { background: var(--coral); color: #fff; border-radius: var(--radius); padding: 30px 28px; display: flex; flex-direction: column; gap: 22px; }
.help h2 { font-size: 30px; font-weight: 700; }
.help__phones, .help__hours { display: flex; gap: 14px; align-items: flex-start; }
.help__phones .phone-main { font-size: 22px; color: #fff; }
.help__phones .phone-sub { color: #fff; font-size: 17px; font-weight: 500; }
.help__phones .ic { margin-top: 4px; width: 20px; height: 20px; }
.help__hours { font-size: 15px; font-weight: 600; }
.help__hours .ic { width: 22px; height: 22px; margin-top: 4px; }

/* Полезная информация */
.info { padding: 12px 12px 12px 26px; display: grid; grid-template-columns: 280px 1fr; align-items: start; gap: 16px; }
.info h2 { font-size: 24px; padding-top: 12px; }
.acc { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; align-items: start; }
.acc__item { border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.acc__item summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 14px 16px; font-size: 14px; font-weight: 500; }
.acc__item summary::-webkit-details-marker { display: none; }
.acc__item summary .ic { color: var(--blue); width: 20px; height: 20px; stroke-width: 2.2; transition: transform .2s; }
.acc__item[open] summary .ic { transform: rotate(45deg); }
.acc__body { padding: 0 16px 16px; font-size: 14px; color: var(--ink-2); display: flex; flex-direction: column; gap: 8px; }

/* Подвал */
.footer { display: grid; grid-template-columns: 1.1fr 1.2fr 1.1fr 1.6fr; gap: 24px; align-items: center; padding: 14px 14px 14px 26px; }
.footer__brand img { width: 200px; height: auto; }
.footer__brand p { font-size: 13px; color: var(--ink-2); margin-top: 16px; }
.footer__col { display: flex; flex-direction: column; gap: 18px; font-size: 14px; }
.footer__col p { display: flex; gap: 12px; align-items: flex-start; }
.footer__col .ic { color: var(--muted); margin-top: 2px; }
.footer__col .ic--blue { color: var(--blue); }
.footer__col a { display: block; }
.link-u { color: var(--blue); text-decoration: underline; text-underline-offset: 3px; }
.map { position: relative; height: 150px; border-radius: 12px; overflow: hidden; background: #e8ecef; }
.map iframe { width: 100%; height: 100%; border: 0; }
.map__label { position: absolute; left: 12px; top: 12px; display: flex; gap: 8px; align-items: center; background: #fff; border-radius: 10px; padding: 8px 12px; box-shadow: var(--shadow); font-size: 13px; line-height: 1.25; pointer-events: none; }
.map__label .ic { color: var(--coral); fill: var(--coral); stroke: #fff; width: 26px; height: 26px; }
.map__label span { display: block; }
.map__route { position: absolute; right: 12px; bottom: 12px; display: inline-flex; gap: 8px; align-items: center; background: #fff; border-radius: 10px; padding: 9px 14px; font-size: 13px; font-weight: 600; box-shadow: var(--shadow); }
.map__route .ic { color: var(--blue); width: 15px; height: 15px; }
.map__route:hover { color: var(--blue); }

.disclaimer { text-align: center; font-size: 13px; color: var(--ink-2); padding: 2px 0 6px; }

/* Якоря не прячутся под липкой шапкой */
.start, section[id], footer[id] { scroll-margin-top: 96px; }

/* С чего начнём: результаты */
.field select.is-invalid { border-color: var(--coral); box-shadow: 0 0 0 3px rgba(255, 106, 85, .18); }
.start__result { margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--line); }
.start__result:empty { display: none; }
.start__note { margin-top: 14px; font-size: 12px; color: var(--muted); }
.sr__title { font-size: 14px; font-weight: 600; margin-bottom: 10px; }
.sr__hint { font-size: 14px; color: var(--muted); margin-top: 12px; }
.sr__chips { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { border: 1px solid var(--line); background: #fff; border-radius: 999px; padding: 8px 14px; font-size: 13px; cursor: pointer; color: var(--ink-2); transition: border-color .15s, background .15s; }
.chip b { color: var(--ink); font-weight: 600; }
.chip:hover { border-color: var(--blue); background: var(--blue-soft); }
.sr__bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; background: var(--blue-soft); border-radius: 12px; padding: 14px 18px; margin-bottom: 14px; }
.sr__bar > div { display: flex; flex-direction: column; gap: 2px; }
.sr__bar > div > b { font-size: 17px; }
.sr__bar span { font-size: 14px; color: var(--ink-2); }
.sr__bar span b { color: var(--ink); }
.sr__empty { font-size: 14px; color: var(--ink-2); padding: 6px 2px; }
.sr__empty .phone-main { display: inline; font-size: 15px; }
.sr__docs { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }

.sd { display: grid; grid-template-columns: 72px 1fr auto; gap: 16px; align-items: center; border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px 12px 12px; }
.sd__ph { width: 72px; height: 72px; border-radius: 10px; overflow: hidden; background: var(--blue-soft); display: grid; place-items: center; color: var(--blue); font-weight: 700; font-size: 20px; }
.sd__ph img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
.sd__main { min-width: 0; }
.sd__name { display: block; font-size: 15px; }
.sd__meta { display: block; font-size: 13px; color: var(--muted); margin-top: 1px; }
.sd__week { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; margin-top: 10px; max-width: 420px; }
.wk { display: flex; flex-direction: column; align-items: center; gap: 1px; padding: 4px 2px; border-radius: 7px; font-size: 11px; line-height: 1.2; color: #a3adbb; background: #f5f7fa; white-space: nowrap; }
.wk b { font-size: 11px; font-weight: 600; }
.wk--on { background: var(--blue-soft); color: var(--blue); }
.wk--on b { color: var(--ink); }
.wk--today { box-shadow: inset 0 0 0 1.5px var(--blue); }
.sd__status { font-size: 13px; color: var(--ink-2); margin-top: 8px; }
.sd__status--today b { color: #12a150; }
.sd__status--off { color: var(--coral-d); }
.sd__btn { padding: 10px 16px; }
.sd--compact { grid-template-columns: 56px 1fr auto; padding: 10px 12px 10px 10px; }
.sd--compact .sd__ph { width: 56px; height: 56px; font-size: 16px; }

.price { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.price__row { display: grid; grid-template-columns: 1fr auto 18px; gap: 14px; align-items: center; width: 100%; text-align: left; background: #fff; border: 0; border-bottom: 1px solid var(--line); padding: 11px 16px; font-size: 14px; cursor: pointer; transition: background .15s; }
.price__row:last-child { border-bottom: 0; }
.price__row:hover { background: #f7faff; }
.price__row b { white-space: nowrap; }
.price__row .ic { width: 16px; height: 16px; color: var(--blue); }
.price__row.is-picked { background: var(--blue-soft); }
.price__row.is-picked .ic { color: var(--coral); }

.exam { display: grid; grid-template-columns: 1fr 1.1fr; gap: 24px; align-items: start; }
.exam__group { font-size: 13px; color: var(--blue); font-weight: 600; }
.exam h3 { font-size: 20px; margin-top: 4px; line-height: 1.3; }
.exam__price { font-size: 28px; font-weight: 800; margin-top: 10px; }
.exam__prep { font-size: 14px; color: var(--ink-2); background: #f7f9fb; border-radius: 10px; padding: 12px 14px; margin: 14px 0 18px; }
.exam__docs { display: flex; flex-direction: column; gap: 10px; }
.exam__docs .sr__title { margin-bottom: 0; }

.tests { display: grid; grid-template-columns: 1fr 340px; gap: 20px; align-items: start; }
.tests__search { width: 100%; margin-bottom: 10px; }
.tests .price { max-height: 360px; overflow-y: auto; }
.cart { background: #f7f9fb; border-radius: 12px; padding: 16px; display: flex; flex-direction: column; gap: 10px; position: sticky; top: 100px; }
.cart .sr__title { margin: 0; }
.cart .sr__hint { margin: 0; }
.cart__items { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.cart__items li { display: grid; grid-template-columns: 1fr auto 26px; gap: 8px; align-items: center; font-size: 13px; background: #fff; border-radius: 8px; padding: 7px 6px 7px 10px; }
.cart__rm { border: 0; background: none; cursor: pointer; color: var(--muted); display: grid; place-items: center; padding: 4px; border-radius: 6px; }
.cart__rm:hover { color: var(--coral); background: #fff2f0; }
.cart__rm .ic { width: 14px; height: 14px; }
.cart__total { display: flex; justify-content: space-between; align-items: baseline; border-top: 1px solid var(--line); padding-top: 10px; font-size: 15px; }
.cart__total b { font-size: 22px; }
.cart__clear { border: 0; background: none; color: var(--muted); font-size: 13px; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.cart__note { font-size: 12px; color: var(--muted); }

/* Вкладки: помещаются в строку, на телефоне листаются */
.tabs { max-width: 100%; overflow-x: auto; scrollbar-width: none; }
.tabs::-webkit-scrollbar { display: none; }
.tab { white-space: nowrap; }
.tab--help { color: var(--coral-d); }
.tab--help.is-active { background: #fff1ee; color: var(--coral-d); }

/* Кнопка «Назад» в «С чего начнём?» */
.start__back { order: 3; margin-left: auto; display: inline-flex; align-items: center; gap: 6px; border: 1px solid #d5dde7; background: #fff; border-radius: 10px; padding: 8px 14px; font-size: 14px; font-weight: 500; cursor: pointer; color: var(--ink); transition: all .15s; }
.start__back .ic { width: 16px; height: 16px; transform: rotate(180deg); color: var(--blue); }
.start__back:hover { border-color: var(--blue); color: var(--blue); }

/* Фильтры по времени */
.flts { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 16px; }
.flts[hidden] { display: none; }
.flt__label { font-size: 13px; color: var(--muted); margin-right: 2px; }
.flt { border: 1px solid #d5dde7; background: #fff; border-radius: 999px; padding: 7px 14px; font-size: 13px; cursor: pointer; transition: all .15s; }
.flt:hover { border-color: var(--blue); color: var(--blue); }
.flt.is-on { background: var(--blue); border-color: var(--blue); color: #fff; }
.flt--kids.is-on { background: var(--coral); border-color: var(--coral); }
.flt__reset { border: 0; background: none; color: var(--muted); font-size: 13px; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.kid { display: inline-block; font-size: 11px; font-weight: 600; color: var(--coral-d); background: #fff1ee; border-radius: 999px; padding: 1px 8px; vertical-align: 1px; }
.chip--now { position: relative; padding-left: 26px; }
.chip--now::before { content: ""; position: absolute; left: 11px; top: 50%; width: 8px; height: 8px; margin-top: -4px; border-radius: 50%; background: #12b76a; box-shadow: 0 0 0 3px rgba(18, 183, 106, .18); }
.chip--static { cursor: default; }
.chip--static:hover { border-color: var(--line); background: #fff; }

/* Программы */
.progs { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 14px; }
.prog { border: 1px solid var(--line); border-radius: 14px; padding: 18px 18px 16px; display: flex; flex-direction: column; transition: border-color .15s, box-shadow .15s; }
.prog:hover { border-color: #cfe0f7; box-shadow: 0 8px 24px rgba(16, 24, 40, .07); }
.prog h3 { font-size: 17px; }
.prog__for { font-size: 13px; color: var(--muted); margin-top: 4px; }
.prog ul { list-style: none; padding: 0; margin: 14px 0 0; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.prog li { display: flex; justify-content: space-between; gap: 10px; font-size: 13px; color: var(--ink-2); }
.prog li b { font-weight: 500; color: var(--ink); white-space: nowrap; }
.prog li.is-fee { color: var(--muted); }
.prog__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
.prog__foot small { display: block; font-size: 12px; color: var(--muted); }
.prog__foot b { font-size: 20px; }

/* Не знаю, к кому идти */
.help-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 8px; }
.hq { text-align: left; border: 1px solid var(--line); background: #fff; border-radius: 12px; padding: 12px 14px; font-size: 14px; line-height: 1.35; cursor: pointer; transition: all .15s; }
.hq:hover { border-color: var(--blue); background: #f7faff; }
.hq.is-on { border-color: var(--blue); background: var(--blue-soft); box-shadow: inset 0 0 0 1px var(--blue); }
.help-ans { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 16px; padding: 20px; border-radius: 14px; background: #f7f9fb; scroll-margin-top: 110px; }
.help-ans__label { font-size: 12px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; color: var(--muted); margin: 0 0 8px; }
.help-ans__label ~ .help-ans__label { margin-top: 16px; }
.help-doc { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; background: #fff; border-radius: 12px; padding: 12px 14px; }
.help-doc + .help-doc { margin-top: 8px; }
.help-doc b { font-size: 16px; }
.help-doc small { color: var(--muted); }
.help-doc span { display: block; font-size: 13px; color: var(--ink-2); }
.help-doc__btns { display: flex; gap: 8px; }
.help-doc__btns .btn { padding: 8px 14px; font-size: 13px; }
.help-ans__note { margin-top: 10px; font-size: 13px; color: var(--coral-d); }
.help-ans__tests { margin-top: 10px; border: 0; background: none; padding: 0; cursor: pointer; }
.help-ans__hint { margin-top: 14px; font-size: 13px; color: var(--muted); }
.help-warn { display: flex; gap: 10px; align-items: flex-start; margin-top: 16px; font-size: 13px; color: var(--ink-2); background: #fff7f5; border-radius: 12px; padding: 12px 14px; }
.help-warn .ic { color: var(--coral); fill: var(--coral); flex: none; margin-top: 1px; }

/* Окно записи: выбор времени */
.bk { max-width: 560px; max-height: calc(100vh - 32px); overflow-y: auto; }
.bk__pick { margin-top: 16px; }
.bk__docs { display: flex; flex-direction: column; gap: 6px; margin-bottom: 12px; }
.bk__docs:empty { display: none; }
.bk__doc { display: flex; align-items: center; gap: 12px; text-align: left; border: 1px solid var(--line); background: #fff; border-radius: 12px; padding: 8px 12px 8px 8px; cursor: pointer; }
.bk__doc.is-on { border-color: var(--blue); background: var(--blue-soft); }
.bk__doc b { display: block; font-size: 14px; }
.bk__doc small { display: block; font-size: 12px; color: var(--muted); }
.bk__ph { width: 40px; height: 40px; flex: none; border-radius: 50%; overflow: hidden; background: var(--blue-soft); color: var(--blue); display: grid; place-items: center; font-weight: 700; font-size: 13px; }
.bk__ph img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
.bk__label { font-size: 13px; font-weight: 600; margin: 14px 0 8px; }
.bk__days { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 4px; scrollbar-width: thin; }
.bk__day { flex: none; width: 58px; display: flex; flex-direction: column; align-items: center; gap: 1px; border: 1px solid var(--line); background: #fff; border-radius: 12px; padding: 7px 0; cursor: pointer; }
.bk__day small { font-size: 11px; color: var(--muted); }
.bk__day b { font-size: 18px; line-height: 1.1; }
.bk__day.is-on { background: var(--blue); border-color: var(--blue); color: #fff; }
.bk__day.is-on small { color: rgba(255, 255, 255, .85); }
.bk__day:disabled { opacity: .4; cursor: not-allowed; }
.bk__times { display: grid; grid-template-columns: repeat(auto-fill, minmax(70px, 1fr)); gap: 6px; }
.bk__time { border: 1px solid #cfe0f7; background: #fff; color: var(--blue); border-radius: 10px; padding: 9px 0; font-size: 14px; font-weight: 600; cursor: pointer; }
.bk__time:hover { background: var(--blue-soft); }
.bk__time.is-on { background: var(--blue); color: #fff; border-color: var(--blue); }
.bk__time:disabled { color: #b8c1cc; border-color: var(--line); background: #f5f7fa; text-decoration: line-through; cursor: not-allowed; }
.bk__skip { margin-top: 14px; border: 0; background: none; padding: 0; color: var(--blue); font-size: 13px; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; text-align: left; }
.bk__sum { display: flex; align-items: center; gap: 12px; background: var(--blue-soft); border-radius: 12px; padding: 12px 14px; font-size: 14px; }
.bk__sum .ic { color: var(--blue); width: 22px; height: 22px; }
.bk__sum div { flex: 1; }
.bk__sum button { border: 0; background: none; color: var(--blue); font-size: 13px; cursor: pointer; text-decoration: underline; text-underline-offset: 3px; }
.bk__hp { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }
.bk__err { color: var(--coral-d); font-size: 13px; background: #fff4f2; border-radius: 10px; padding: 10px 12px; }
.bk__ok { width: 56px; height: 56px; border-radius: 50%; background: #e8f8ef; display: grid; place-items: center; margin-bottom: 12px; }
.bk__ok .ic { width: 28px; height: 28px; color: #12b76a; fill: #12b76a; }
.booking__done .btn { margin-top: 18px; }
.field i { font-style: normal; font-weight: 400; }

/* Окно записи */
.modal { position: fixed; inset: 0; z-index: 100; background: rgba(16, 24, 40, .5); display: grid; place-items: center; padding: 16px; }
.modal[hidden] { display: none; }
.modal__box { width: 100%; max-width: 460px; padding: 30px 28px 28px; position: relative; }
.modal__box h2 { font-size: 26px; margin-bottom: 8px; }
.modal__close { position: absolute; top: 14px; right: 14px; border: 0; background: var(--bg); border-radius: 50%; width: 36px; height: 36px; display: grid; place-items: center; cursor: pointer; }
.booking { display: flex; flex-direction: column; gap: 14px; margin-top: 20px; }
.check { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; color: var(--ink-2); }
.check input { margin-top: 2px; accent-color: var(--blue); }
.booking__done { margin-top: 18px; }
.booking__done h3 { font-size: 22px; margin-bottom: 6px; }

/* ---------- Адаптив ---------- */
@media (max-width: 1180px) {
  .nav a { padding: 9px 11px; }
  .header { gap: 14px; }
  .logo img { width: 180px; }
  .dirs { grid-template-columns: repeat(4, 1fr); }
  .docs { grid-template-columns: repeat(2, 1fr); }
  .features { grid-template-columns: 1fr; }
  .feat-list { grid-template-columns: repeat(2, 1fr); row-gap: 4px; }
  .feat:nth-child(3)::before { display: none; }
  .footer { grid-template-columns: 1fr 1fr 1fr; }
  .map { grid-column: 1 / -1; height: 220px; }
  .info { grid-template-columns: 1fr; }
  .sr__docs { grid-template-columns: 1fr; }
  .exam, .tests { grid-template-columns: 1fr; }
  .cart { position: static; }
  .help-ans { grid-template-columns: 1fr; }
}

@media (max-width: 980px) {
  .header { flex-wrap: wrap; }
  .burger { display: block; }
  .header__phone { margin-left: auto; }
  .header__cta { display: none; }
  .nav { order: 5; width: 100%; flex-direction: column; display: none; margin: 0; padding-top: 8px; border-top: 1px solid var(--line); }
  .header.is-open .nav { display: flex; }
  .nav a.is-active::after { display: none; }
  .split { grid-template-columns: 1fr; }
  .about { grid-template-columns: 1fr; }
  .start__form { grid-template-columns: 1fr 1fr; }
  .start__form .btn { grid-column: 1 / -1; }
  .hero::before { background: linear-gradient(90deg, rgba(38, 44, 52, .95) 0%, rgba(44, 50, 58, .85) 45%, rgba(50, 56, 64, .35) 75%, rgba(50, 56, 64, .1)); }
}

@media (max-width: 680px) {
  :root { --gap: 12px; }
  .page { padding: 0 12px 20px; }
  h2 { font-size: 23px; }
  .topbar { flex-direction: column; align-items: stretch; gap: 10px; padding: 12px 4px 0; }
  .topbar__info { gap: 6px 18px; font-size: 12px; }
  .topbar__search { width: 100%; }
  .header { top: 6px; padding: 10px 12px; }
  .logo img { width: 150px; }
  .header { flex-wrap: wrap; }
  .header__phone > div { display: none; }
  .header__call { width: 40px; height: 40px; border-radius: 10px; background: var(--blue-soft); display: grid; place-items: center; }
  .header__call .ic { margin: 0 !important; width: 20px; height: 20px; }
  .burger { margin-left: 0; }
  .hero { min-height: 520px; background-image: url("../img/hero-m.jpg"); background-size: cover; background-position: 76% center; justify-content: flex-start; }
  .hero::before { background: linear-gradient(180deg, rgba(40, 46, 54, .3) 0%, rgba(44, 50, 58, .12) 60%, rgba(44, 50, 58, 0) 100%); }
  .hero__body { margin: 14px; padding: 22px 18px; border-radius: 22px; }
  .hero h1 { font-size: 34px; }
  .hero__sub { font-size: 16px; }
  .hero__actions { flex-direction: column; }
  .hero__actions .btn { width: 100%; }
  .hero__bar { flex-direction: column; }
  .hero__help { border-left: 0; border-top: 1px solid var(--line); }
  .hero__perks { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .hero__note { font-size: 12px; padding: 10px 14px; }
  .features { padding: 12px; }
  .feat-list { grid-template-columns: 1fr; }
  .feat { padding: 12px 8px; }
  .feat + .feat::before { left: 8px; right: 8px; top: 0; bottom: auto; width: auto; height: 1px; display: block; }
  .start { padding: 18px 16px 18px; }
  .start__head { gap: 12px; }
  .tabs { width: 100%; }
  .tab { flex: 1; padding: 8px 6px; }
  .start__form { grid-template-columns: 1fr; }
  .sd { grid-template-columns: 56px 1fr; }
  .sd__ph { width: 56px; height: 56px; }
  .sd__btn { grid-column: 1 / -1; width: 100%; }
  .wk { font-size: 10px; padding: 4px 0; }
  .sr__bar .btn { width: 100%; }
  .exam__price { font-size: 24px; }
  .exam .btn--lg { width: 100%; }
  .start__head { flex-direction: column; align-items: stretch; }
  .tab { flex: none; }
  .flts { gap: 6px; }
  .flt__label { width: 100%; }
  .help-doc__btns { width: 100%; }
  .help-doc__btns .btn { flex: 1; }
  .prog__foot .btn { padding: 10px 14px; }
  .section { padding: 20px 16px 16px; }
  .section__head { flex-wrap: wrap; }
  .dirs { grid-template-columns: repeat(2, 1fr); }
  .about__card h2 { font-size: 32px; }
  .about__card { padding: 26px 20px 16px; }
  .about__media img { height: 200px; }
  .docs { grid-template-columns: 1fr; }
  .pick__search { width: 100%; }
  .spec { gap: 12px; padding-right: 10px; flex-wrap: wrap; }
  .spec__ph { width: 64px; height: 56px; }
  .spec .btn { width: 100%; margin: 0 0 8px 6px; width: calc(100% - 12px); }
  .help { padding: 24px 20px; }
  .info { padding: 18px 16px 16px; }
  .info h2 { padding-top: 0; }
  .acc { grid-template-columns: 1fr; }
  .footer { grid-template-columns: 1fr; padding: 20px 16px 16px; }
}

/* ============ Страница «Расписание врачей» ============ */
.crumbs { display: flex; gap: 8px; font-size: 13px; color: var(--muted); }
.crumbs a { color: var(--blue); }
.sch-hero { padding: 26px 28px 28px; background: linear-gradient(120deg, #fff 55%, #eaf3fe 100%); }
.sch-hero__row { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px; margin-top: 14px; flex-wrap: wrap; }
.sch-hero h1 { font-size: 44px; font-weight: 800; letter-spacing: -.03em; line-height: 1.05; }
.sch-hero__lead { margin-top: 10px; font-size: 16px; color: var(--ink-2); max-width: 520px; }
.sch-stats { display: grid; grid-template-columns: repeat(4, auto); gap: 10px; }
.sch-stat { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 12px 16px; min-width: 128px; }
.sch-stat small { display: block; font-size: 12px; color: var(--muted); }
.sch-stat b { display: flex; align-items: center; gap: 8px; font-size: 24px; font-weight: 800; margin-top: 2px; }
.sch-stat--date b { font-size: 16px; font-weight: 700; margin-top: 6px; }
.sch-stat--now i { width: 10px; height: 10px; border-radius: 50%; background: #12b76a; box-shadow: 0 0 0 0 rgba(18, 183, 106, .5); animation: pulse 2s infinite; }
@keyframes pulse { 70% { box-shadow: 0 0 0 8px rgba(18, 183, 106, 0); } 100% { box-shadow: 0 0 0 0 rgba(18, 183, 106, 0); } }

.sch { padding: 22px 24px 20px; }
.sch-bar { display: grid; grid-template-columns: 1fr 260px auto; gap: 12px; align-items: center; }
.sch-search { display: flex; align-items: center; gap: 10px; border: 1px solid #d5dde7; border-radius: var(--radius-s); padding: 0 14px; background: #fff; transition: border-color .15s, box-shadow .15s; }
.sch-search:focus-within { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(47, 134, 246, .15); }
.sch-search input { border: 0; outline: none; width: 100%; padding: 13px 0; font-size: 14px; background: none; }
.sch-search .ic { color: var(--muted); }
.sch-view { display: inline-flex; border: 1px solid var(--line); border-radius: 10px; padding: 3px; background: #fff; }
.sch-view button { display: inline-flex; align-items: center; gap: 7px; border: 0; background: none; padding: 9px 14px; border-radius: 8px; cursor: pointer; font-size: 14px; white-space: nowrap; color: var(--ink-2); }
.sch-view button .ic { width: 16px; height: 16px; }
.sch-view button.is-on { background: var(--blue-soft); color: var(--blue); font-weight: 600; }
.sch-flts { margin-top: 14px; }
.flt--now.is-on { background: #12b76a; border-color: #12b76a; }
.sch-count { font-size: 13px; color: var(--muted); margin: 14px 0 4px; }
.sch-count:empty { display: none; }
.sch-empty { padding: 28px 8px; text-align: center; color: var(--ink-2); }
.sch-muted { font-size: 12.5px; color: var(--muted); }

/* Группа направления */
.sch-group { margin-top: 18px; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
.sch-group__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 14px 18px; background: #f7faff; border-bottom: 1px solid var(--line); }
.sch-group__head h2 { font-size: 18px; }
.sch-group__head > span { font-size: 13px; color: var(--ink-2); }
.wk-head, .wk-row { display: grid; grid-template-columns: minmax(210px, 1.5fr) repeat(7, minmax(60px, 1fr)) minmax(300px, 1.8fr); align-items: center; }
.wk-head { font-size: 12px; color: var(--muted); background: #fff; border-bottom: 1px solid var(--line); }
.wk-head > span { padding: 8px 6px; text-align: center; }
.wk-head > span:first-child, .wk-head > span:last-child { text-align: left; padding-left: 18px; }
.wk-head .is-today { color: var(--blue); font-weight: 700; background: #f4f9ff; }
.wk-head .is-today small { display: block; font-size: 10px; font-weight: 500; }
.wk-head .is-we:not(.is-today) { color: var(--coral-d); }
.wk-row { border-bottom: 1px solid var(--line); transition: background .15s; }
.wk-row:last-child { border-bottom: 0; }
.wk-row:hover { background: #fbfdff; }
.wk-row.is-off { opacity: .6; }
.wk-doc { display: flex; align-items: center; gap: 12px; padding: 12px 10px 12px 18px; min-width: 0; }
.wk-doc b { display: block; font-size: 14px; line-height: 1.3; }
.wk-doc small { display: block; font-size: 12px; color: var(--muted); margin-top: 1px; }
.sch-ph { width: 44px; height: 44px; flex: none; border-radius: 50%; overflow: hidden; background: var(--blue-soft); color: var(--blue); display: grid; place-items: center; font-weight: 700; font-size: 14px; }
.sch-ph img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
.wk-cell { align-self: stretch; display: flex; align-items: center; justify-content: center; text-align: center; font-size: 12px; color: #b8c1cc; padding: 6px 4px; line-height: 1.25; }
.wk-cell.is-today { background: #f4f9ff; }
.wk-cell.is-on { color: var(--ink); font-weight: 600; }
.wk-cell.is-on::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--blue); margin-right: 5px; flex: none; }
.wk-cell.is-now { color: #0e8a52; }
.wk-cell.is-now::before { background: #12b76a; box-shadow: 0 0 0 3px rgba(18, 183, 106, .2); }
.wk-next { display: grid; grid-template-columns: minmax(0, 1fr) 136px; align-items: center; gap: 12px; padding: 10px 16px 10px 18px; min-width: 0; }
.wk-next > :only-child { grid-column: 1 / -1; }
.wk-next .sch-badge--off { justify-self: start; }
.sch-next { text-align: left; border: 0; background: none; padding: 0; cursor: pointer; color: var(--ink); }
.sch-next b { display: block; font-size: 13.5px; color: #0e8a52; white-space: nowrap; }
.sch-next small { display: block; font-size: 12px; color: var(--muted); }
.sch-next:hover b { text-decoration: underline; text-underline-offset: 3px; }
.wk-btn { width: 136px; justify-content: center; padding: 9px 10px; font-size: 13px; grid-column: 2; }
.sch-badge--off { font-size: 12px; font-weight: 600; color: var(--coral-d); background: #fff1ee; border-radius: 999px; padding: 4px 10px; }
.sch-vac { padding: 14px 18px; background: #fffaf9; font-size: 14px; color: var(--ink-2); display: flex; flex-direction: column; gap: 6px; }
.sch-vac a { color: var(--blue); white-space: nowrap; }

/* Вид «по дням» */
.sch-dates { display: flex; gap: 8px; overflow-x: auto; padding: 16px 2px 8px; scrollbar-width: thin; }
.sch-date { flex: none; width: 84px; display: flex; flex-direction: column; align-items: center; gap: 1px; border: 1px solid var(--line); background: #fff; border-radius: 14px; padding: 9px 4px; cursor: pointer; transition: all .15s; }
.sch-date small { font-size: 12px; color: var(--muted); }
.sch-date b { font-size: 22px; line-height: 1.15; }
.sch-date i { font-style: normal; font-size: 11px; color: var(--blue); margin-top: 3px; }
.sch-date.is-we small:first-child { color: var(--coral-d); }
.sch-date:hover:not(:disabled) { border-color: var(--blue); }
.sch-date.is-on { background: var(--blue); border-color: var(--blue); color: #fff; box-shadow: 0 8px 18px rgba(47, 134, 246, .3); }
.sch-date.is-on small, .sch-date.is-on i { color: rgba(255, 255, 255, .9) !important; }
.sch-date:disabled { opacity: .45; cursor: default; }
.sch-dayh { font-size: 20px; margin: 16px 0 10px; }
.day-list { display: flex; flex-direction: column; gap: 10px; }
.day-row { display: grid; grid-template-columns: 120px minmax(220px, 300px) 1fr; gap: 12px; align-items: center; border: 1px solid var(--line); border-radius: 14px; padding: 10px 14px 10px 16px; }
.day-row .wk-doc { padding: 0; }
.day-row__time b { font-size: 14px; }
.day-row__time small { display: block; font-size: 11.5px; color: #0e8a52; font-weight: 600; }
.day-row__time.is-now b { color: #0e8a52; }
.day-row__slots { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.slot { border: 1px solid #cfe0f7; background: #fff; color: var(--blue); border-radius: 9px; padding: 7px 10px; font-size: 13px; font-weight: 600; cursor: pointer; transition: all .12s; }
.slot:hover { background: var(--blue); color: #fff; border-color: var(--blue); }
.slot.is-busy { color: #b8c1cc; border-color: var(--line); background: #f5f7fa; text-decoration: line-through; cursor: default; }

.sch-help { flex-direction: row; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap; padding: 28px 32px; }
.sch-help h2 { font-size: 26px; }
.sch-help p { margin-top: 4px; opacity: .92; }

@media (max-width: 1180px) {
  .sch-bar { grid-template-columns: 1fr 1fr; }
  .sch-view { grid-column: 1 / -1; justify-self: start; }
  .wk-head { display: none; }
  .wk-row { grid-template-columns: repeat(7, 1fr); padding: 12px 14px; gap: 4px 4px; }
  .wk-doc { grid-column: 1 / -1; padding: 0 0 6px; }
  .wk-cell { flex-direction: column; border-radius: 8px; background: #f7f9fb; padding: 5px 2px; font-size: 11px; }
  .wk-cell::after { content: attr(data-d); order: -1; font-size: 10.5px; font-weight: 600; color: var(--muted); }
  .wk-cell.is-on::before { display: none; }
  .wk-cell.is-on { background: var(--blue-soft); color: var(--blue); }
  .wk-cell.is-today { box-shadow: inset 0 0 0 1.5px var(--blue); }
  .wk-cell.is-now { background: #e8f8ef; color: #0e8a52; }
  .wk-next { grid-column: 1 / -1; padding: 8px 0 0; grid-template-columns: minmax(0, 1fr) 150px; }
  .wk-btn { width: 150px; }
  .sch-stats { grid-template-columns: repeat(2, 1fr); width: 100%; }
}
@media (max-width: 680px) {
  .sch-hero { padding: 20px 16px; }
  .sch-hero h1 { font-size: 32px; }
  .sch { padding: 16px 12px; }
  .sch-bar { grid-template-columns: 1fr; }
  .sch-view { width: 100%; }
  .sch-view button { flex: 1; justify-content: center; padding: 9px 6px; font-size: 13px; }
  .sch-group__head { padding: 12px 14px; }
  .wk-row { padding: 12px 10px; }
  .wk-cell { font-size: 10px; }
  .wk-next { grid-template-columns: 1fr; }
  .wk-btn { width: 100%; grid-column: 1; }
  .day-row { grid-template-columns: 1fr; gap: 8px; padding: 12px; }
  .sch-help { padding: 24px 20px; }
  .sch-help .btn { width: 100%; }
}

/* ============ Страница «Врачи» ============ */
.docs-hero { padding: 26px 28px 22px; background: linear-gradient(120deg, #fff 55%, #eaf3fe 100%); }
.docs-hero__row { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-top: 14px; flex-wrap: wrap; }
.docs-hero h1 { font-size: 44px; font-weight: 800; letter-spacing: -.03em; line-height: 1.05; }
.docs-hero__lead { margin-top: 10px; font-size: 16px; color: var(--ink-2); max-width: 620px; }
.docs-search { width: 380px; max-width: 100%; }
.docs-filter { display: flex; align-items: center; gap: 14px; margin-top: 22px; flex-wrap: wrap; }
.docs-seg { display: inline-flex; border: 1px solid var(--line); border-radius: 12px; padding: 3px; background: #fff; flex: none; }
.docs-seg button { border: 0; background: none; padding: 9px 16px; border-radius: 9px; cursor: pointer; font-size: 14px; color: var(--ink-2); white-space: nowrap; }
.docs-seg button.is-on { background: var(--blue); color: #fff; font-weight: 600; }
.docs-specs { display: flex; gap: 6px; overflow-x: auto; flex: 1; min-width: 0; padding-bottom: 4px; scrollbar-width: thin; }
.dspec { flex: none; border: 1px solid #d5dde7; background: #fff; border-radius: 999px; padding: 7px 12px; font-size: 13px; cursor: pointer; white-space: nowrap; transition: all .15s; }
.dspec i { font-style: normal; color: var(--muted); font-size: 12px; margin-left: 2px; }
.dspec:hover { border-color: var(--blue); color: var(--blue); }
.dspec.is-on { background: var(--blue-soft); border-color: var(--blue); color: var(--blue); font-weight: 600; }
.dspec.is-on i { color: var(--blue); }

.docs-wrap { display: flex; flex-direction: column; gap: 12px; }
.docs-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 6px; flex-wrap: wrap; }
.docs-bar p { font-size: 14px; color: var(--ink-2); }
.docs-sort { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--ink-2); }
.docs-sort select { border: 1px solid #d5dde7; border-radius: 10px; padding: 8px 10px; background: #fff; font-size: 14px; cursor: pointer; }
.dlist { display: flex; flex-direction: column; gap: 12px; }

.dcard { display: grid; grid-template-columns: 150px 1fr 320px; gap: 24px; align-items: stretch; background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); padding: 18px; transition: box-shadow .2s; }
.dcard:hover { box-shadow: 0 10px 30px rgba(16, 24, 40, .08); }
.dcard.is-off .dcard__ph, .dcard.is-off h2 { opacity: .7; }
.dcard__ph { display: grid; place-items: center; width: 150px; height: 180px; border-radius: 14px; overflow: hidden; background: var(--blue-soft); color: var(--blue); font-size: 36px; font-weight: 800; }
.dcard__ph img { width: 100%; height: 100%; object-fit: cover; object-position: center 18%; transition: transform .4s; }
.dcard:hover .dcard__ph img { transform: scale(1.04); }
.dcard__main { display: flex; flex-direction: column; min-width: 0; padding-top: 2px; }
.dcard__specs { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.dchip { display: inline-block; font-size: 12.5px; font-weight: 600; color: var(--blue); background: var(--blue-soft); border-radius: 999px; padding: 4px 10px; }
a.dchip:hover { background: #dcebfd; }
.dcard h2 { font-size: 22px; margin-top: 10px; line-height: 1.2; }
.dcard h2 a:hover { color: var(--blue); }
.dcard__facts { list-style: none; padding: 0; margin: 12px 0 14px; display: flex; flex-direction: column; gap: 7px; }
.dcard__facts li { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: var(--ink-2); line-height: 1.35; }
.dcard__facts .ic { width: 17px; height: 17px; color: var(--blue); margin-top: 1px; }
.dcard__facts b { color: var(--ink); }
.dcard__main .link-more { margin-top: auto; }
.dcard__book { background: #f7faff; border-radius: 14px; padding: 16px; display: flex; flex-direction: column; gap: 10px; }
.dcard__label { font-size: 12px; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; color: var(--muted); }
.dcard__day { font-size: 15px; }
.dcard__day b { color: #0e8a52; }
.dcard__slots { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.dcard__slots .slot { width: 100%; text-align: center; }
.dcard__note { font-size: 13px; color: var(--ink-2); }
.dcard__book .btn { margin-top: auto; }
.dcard__book .sch-badge--off { align-self: flex-start; }

/* ============ Страница врача ============ */
.dp-page { display: flex; flex-direction: column; gap: var(--gap); }
.dp-crumbs { padding: 4px 8px 0; }
.dp-loading, .dp-missing { padding: 40px; text-align: center; color: var(--ink-2); }
.dp-missing h1 { font-size: 28px; margin-bottom: 8px; color: var(--ink); }
.dp-missing a { color: var(--blue); }
.dp { display: grid; grid-template-columns: 300px 1fr; gap: 32px; padding: 24px; background: linear-gradient(120deg, #fff 60%, #eaf3fe 100%); }
.dp__ph { width: 300px; height: 360px; border-radius: 18px; overflow: hidden; background: var(--blue-soft); display: grid; place-items: center; color: var(--blue); font-size: 64px; font-weight: 800; }
.dp__ph img { width: 100%; height: 100%; object-fit: cover; object-position: center 18%; }
.dp__info { display: flex; flex-direction: column; justify-content: center; min-width: 0; }
.dp__info h1 { font-size: 40px; font-weight: 800; letter-spacing: -.03em; line-height: 1.1; margin-top: 12px; }
.dp__facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 22px; max-width: 680px; }
.dp__facts > div { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 12px 16px; }
.dp__facts small { display: block; font-size: 12px; color: var(--muted); }
.dp__facts b { display: block; font-size: 20px; font-weight: 800; margin-top: 2px; }
.dp__facts span { display: block; font-size: 12.5px; color: var(--ink-2); }
.dp-ok { color: #0e8a52; }
.dp-off { color: var(--coral-d); }
.dp__btns { display: flex; gap: 12px; margin-top: 22px; flex-wrap: wrap; }
.dp-grid { display: grid; grid-template-columns: 1fr 340px; gap: var(--gap); align-items: start; }
.dp-main { display: flex; flex-direction: column; gap: var(--gap); min-width: 0; }
.dp-sec { padding: 24px 26px; scroll-margin-top: 96px; }
.dp-sec h2 { font-size: 24px; margin-bottom: 16px; }
.dp-tabs { display: inline-flex; border: 1px solid var(--line); border-radius: 10px; padding: 3px; margin-bottom: 14px; flex-wrap: wrap; }
.dp-tabs button { border: 0; background: none; padding: 8px 14px; border-radius: 8px; cursor: pointer; font-size: 14px; }
.dp-tabs button.is-on { background: var(--blue-soft); color: var(--blue); font-weight: 600; }
.dp-days { padding-bottom: 6px; }
.dp-dayh { font-size: 14px; font-weight: 600; margin: 12px 0 8px; }
.dp-dayh:first-letter { text-transform: uppercase; }
.dp-hint { font-size: 13px; color: var(--muted); margin-top: 12px; }
.dp-note { font-size: 14px; color: var(--ink-2); margin-bottom: 14px; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.dp-treats { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.dp-treats li { display: flex; gap: 10px; align-items: center; background: #f7faff; border-radius: 12px; padding: 12px 14px; font-size: 14.5px; }
.dp-treats .ic { color: var(--coral); fill: var(--coral); width: 16px; height: 16px; }
.dp-week + .dp-week { margin-top: 14px; }
.dp-week__t { font-size: 14px; font-weight: 600; margin: 0 0 8px; }
.dp-week__grid { max-width: none; gap: 6px; margin-top: 0; }
.dp-week__grid .wk { font-size: 13px; padding: 9px 4px; border-radius: 10px; }
.dp-week__grid .wk b { font-size: 13px; }
.dp-price { margin-bottom: 4px; }
.dp-price + .dp-week__t { margin-top: 16px; }
.dp-price .price__row { cursor: default; }
.dp-price .price__row:hover { background: #fff; }
.dp-edu { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; }
.dp-edu li { display: grid; grid-template-columns: 70px 1fr; gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.dp-edu li:last-child { border-bottom: 0; }
.dp-edu__y { font-size: 15px; font-weight: 800; color: var(--blue); }
.dp-edu b { display: block; font-size: 15px; }
.dp-edu small { display: block; font-size: 13px; color: var(--ink-2); margin-top: 2px; }
.dp-side { display: flex; flex-direction: column; gap: var(--gap); position: sticky; top: 96px; }
.dp-help { padding: 26px 24px; gap: 18px; }
.dp-help h2 { font-size: 24px; }
.dp-others { padding: 20px; display: flex; flex-direction: column; gap: 6px; }
.dp-others h3 { font-size: 16px; margin-bottom: 6px; }
.dp-other { display: flex; align-items: center; gap: 12px; padding: 8px; border-radius: 12px; transition: background .15s; }
.dp-other:hover { background: #f7faff; }
.dp-other b { display: block; font-size: 14px; }
.dp-other small { display: block; font-size: 12px; color: var(--muted); }
.dp-others .link-more { margin-top: 6px; padding-left: 8px; }

@media (max-width: 1180px) {
  .dcard { grid-template-columns: 130px 1fr; }
  .dcard__ph { width: 130px; height: 160px; }
  .dcard__book { grid-column: 1 / -1; }
  .dcard__slots { grid-template-columns: repeat(6, 1fr); }
  .dp-grid { grid-template-columns: 1fr; }
  .dp-side { position: static; }
}
@media (max-width: 980px) {
  .dp { grid-template-columns: 1fr; }
  .dp__ph { width: 100%; max-width: 360px; height: 380px; }
}
@media (max-width: 680px) {
  .docs-hero { padding: 20px 16px; }
  .docs-hero h1, .dp__info h1 { font-size: 30px; }
  .docs-search { width: 100%; }
  .docs-seg { width: 100%; }
  .docs-seg button { flex: 1; padding: 9px 6px; }
  .dcard { grid-template-columns: 96px 1fr; gap: 14px; padding: 14px; }
  .dcard__ph { width: 96px; height: 120px; font-size: 26px; }
  .dcard h2 { font-size: 18px; }
  .dcard__facts li { font-size: 13px; }
  .dcard__slots { grid-template-columns: repeat(3, 1fr); }
  .dp { padding: 16px; gap: 18px; }
  .dp__ph { height: 320px; }
  .dp__facts { grid-template-columns: 1fr; }
  .dp__btns .btn { width: 100%; }
  .dp-sec { padding: 20px 16px; }
  .dp-treats { grid-template-columns: 1fr; }
  .dp-week__grid .wk { font-size: 10.5px; padding: 6px 1px; }
  .dp-week__grid .wk b { font-size: 11px; }
}

/* ============ Главная: «Наши специалисты» — лента ============ */
.team { overflow: hidden; }
.team__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.team__sub { font-size: 14px; color: var(--ink-2); margin-top: 6px; }
.team__nav { display: flex; align-items: center; gap: 8px; }
.team__all { padding: 10px 16px; }
.team__arrow { width: 42px; height: 42px; border-radius: var(--radius-s); border: 1px solid #d5dde7; background: #fff; display: grid; place-items: center; cursor: pointer; color: var(--ink); transition: all .15s; }
.team__arrow:hover { border-color: var(--blue); color: var(--blue); }
.team__arrow[data-step="-1"] .ic { transform: rotate(180deg); }
.team__chips { display: flex; gap: 6px; overflow-x: auto; margin: 18px -26px 0; padding: 0 26px 4px; scrollbar-width: none; }
.team__chips::-webkit-scrollbar { display: none; }
.tchip { flex: none; border: 1px solid #d5dde7; background: #fff; border-radius: 999px; padding: 8px 14px; font-size: 13px; cursor: pointer; white-space: nowrap; transition: all .15s; }
.tchip:hover { border-color: var(--blue); color: var(--blue); }
.tchip.is-on { background: var(--ink); border-color: var(--ink); color: #fff; }
.tchip i { font-style: normal; display: inline-grid; place-items: center; min-width: 20px; height: 20px; padding: 0 5px; margin-left: 4px; border-radius: 999px; background: #e8f8ef; color: #0e8a52; font-size: 11.5px; font-weight: 700; }
.tchip--today::before { content: ""; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: #12b76a; margin-right: 6px; vertical-align: 1px; }
.team__track { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; margin: 16px -26px 0; padding: 4px 26px 12px; scrollbar-width: thin; scroll-padding-left: 26px; }
.team__empty { flex: 0 0 280px; }
.tcard { flex: 0 0 272px; scroll-snap-align: start; display: flex; flex-direction: column; border-radius: 18px; background: #fff; border: 1px solid var(--line); overflow: hidden; transition: transform .25s, box-shadow .25s, border-color .25s; }
.tcard:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(16, 24, 40, .1); border-color: transparent; }
.tcard.is-off { opacity: .85; }
.tcard__ph { position: relative; display: block; height: 290px; background: var(--blue-soft); overflow: hidden; }
.tcard__ph img { width: 100%; height: 100%; object-fit: cover; object-position: center 15%; transition: transform .5s; }
.tcard:hover .tcard__ph img { transform: scale(1.05); }
.tcard__ph::after { content: ""; position: absolute; inset: auto 0 0 0; height: 40%; background: linear-gradient(0deg, rgba(16, 24, 40, .35), rgba(16, 24, 40, 0)); pointer-events: none; }
.tcard__ph--none { background: #eaf3fe; }
.tbadge { position: absolute; left: 12px; bottom: 12px; z-index: 1; display: inline-flex; align-items: center; gap: 6px; background: rgba(255, 255, 255, .95); color: var(--ink); border-radius: 999px; padding: 6px 12px; font-size: 12.5px; font-weight: 600; box-shadow: 0 4px 12px rgba(16, 24, 40, .12); }
.tbadge i { width: 8px; height: 8px; border-radius: 50%; background: #12b76a; box-shadow: 0 0 0 3px rgba(18, 183, 106, .2); }
.tbadge--today { color: #0e8a52; }
.tbadge--off { color: var(--coral-d); }
.tbadge--muted { color: var(--muted); }
.tcard__body { display: flex; flex-direction: column; flex: 1; padding: 14px 16px 16px; }
.tcard__spec { font-size: 12px; font-weight: 600; color: var(--blue); text-transform: uppercase; letter-spacing: .03em; line-height: 1.3; }
.tcard h3 { font-size: 21px; margin-top: 6px; line-height: 1.1; }
.tcard h3 a:hover { color: var(--blue); }
.tcard__name { font-size: 14px; color: var(--ink-2); }
.tcard__meta { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 10px; font-size: 13px; color: var(--ink-2); }
.tcard__meta span { display: inline-flex; align-items: center; gap: 5px; }
.tcard__meta .ic { width: 14px; height: 14px; color: var(--blue); }
.tcard__slots { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-top: 12px; }
.tslot { border: 1px solid #cfe0f7; background: #fff; color: var(--blue); border-radius: 9px; padding: 7px 0; font-size: 13px; font-weight: 600; cursor: pointer; transition: all .12s; }
.tslot:hover { background: var(--blue); color: #fff; border-color: var(--blue); }
.tcard__btns { display: flex; gap: 8px; margin-top: auto; padding-top: 14px; }
.tcard__btns .btn { flex: 1; padding: 11px 12px; }
.tcard__more { width: 44px; flex: none; border-radius: var(--radius-s); border: 1px solid #d5dde7; display: grid; place-items: center; color: var(--ink); transition: all .15s; }
.tcard__more:hover { border-color: var(--blue); color: var(--blue); }
.tcard--all { justify-content: center; align-items: flex-start; gap: 10px; padding: 26px 22px; background: linear-gradient(160deg, #2f86f6 0%, #1f6fd9 100%); color: #fff; border: 0; }
.tcard--all b { font-size: 26px; line-height: 1.15; }
.tcard--all span { font-size: 14px; opacity: .9; }
.tcard--all em { font-style: normal; display: inline-flex; align-items: center; gap: 8px; margin-top: 8px; background: #fff; color: var(--blue); border-radius: 999px; padding: 10px 18px; font-size: 14px; font-weight: 600; }
.tcard__faces { display: flex; margin-bottom: 8px; }
.tcard__faces img { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; object-position: center 15%; border: 3px solid #2f86f6; margin-left: -12px; background: #fff; }
.tcard__faces img:first-child { margin-left: 0; }

/* ============ Образование — дословно ============ */
.dq + .dq { margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); }
.dq__h { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 14px; font-weight: 700; color: var(--ink-2); margin-bottom: 8px; }
.dq__h .dchip { font-weight: 600; }
.dq__level { font-size: 16px; font-weight: 600; }
.dq__item { display: grid; grid-template-columns: 58px 1fr; gap: 14px; align-items: start; }
.dq__item + .dq__item { margin-top: 10px; }
.dq__y { font-size: 15px; font-weight: 800; color: var(--blue); padding-top: 1px; }
.dq__item p { font-size: 14.5px; line-height: 1.55; color: var(--ink); }

/* ============ Профиль: выбор времени → «Записаться на приём» ============ */
.bk__time.is-on { background: var(--blue); border-color: var(--blue); color: #fff; }
.dp-cta { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; margin-top: 16px; padding: 14px 16px; border-radius: 14px; background: #f7f9fb; border: 1px dashed #d5dde7; transition: all .2s; }
.dp-cta.is-ready { background: var(--blue-soft); border: 1px solid #cfe0f7; }
.dp-cta__sum { display: flex; align-items: center; gap: 12px; }
.dp-cta__sum .ic { width: 26px; height: 26px; color: var(--blue); }
.dp-cta__sum small { display: block; font-size: 12px; color: var(--muted); }
.dp-cta__sum b { display: block; font-size: 16px; }
.dp-cta__sum b:first-letter { text-transform: uppercase; }
.dp-cta .btn:disabled { opacity: .45; cursor: not-allowed; transform: none; }

/* ============ Окно записи: фамилия + имя ============ */
.bk__row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.req { color: var(--coral); font-weight: 700; }
.bk__sum { align-items: center; }
.bk__sum-ph { width: 44px; height: 44px; flex: none; border-radius: 50%; overflow: hidden; background: #fff; color: var(--blue); display: grid; place-items: center; font-weight: 700; font-size: 14px; }
.bk__sum-ph img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
.bk__sum small { display: block; font-size: 12.5px; color: var(--ink-2); }
.bk__sum b { display: block; font-size: 16px; }
.bk__sum b:first-letter { text-transform: uppercase; }

@media (max-width: 680px) {
  .team__nav { width: 100%; }
  .team__all { flex: 1; justify-content: center; }
  .team__chips, .team__track { margin-left: -16px; margin-right: -16px; padding-left: 16px; padding-right: 16px; }
  .tcard { flex-basis: 250px; }
  .tcard__ph { height: 250px; }
  .bk__row { grid-template-columns: 1fr; }
  .dp-cta .btn { width: 100%; }
  .dq__item { grid-template-columns: 1fr; gap: 2px; }
}

/* Окно записи: что записываемся, выбор из списков */
.bk__what { margin-top: 16px; }
.bk__topic { background: #f7faff; border: 1px solid #dbe8fb; border-radius: 12px; padding: 12px 14px; font-size: 14px; color: var(--ink-2); }
.bk__topic b { color: var(--ink); }
.dp-lead { margin: -8px 0 16px; font-size: 14.5px; color: var(--ink-2); }

/* ============ Страница «Направления и услуги» ============ */
.srv-hero { padding: 26px 28px 22px; background: linear-gradient(120deg, #fff 55%, #eaf3fe 100%); }
.srv-hero__row { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-top: 14px; flex-wrap: wrap; }
.srv-hero h1 { font-size: 44px; font-weight: 800; letter-spacing: -.03em; line-height: 1.05; }
.srv-hero__lead { margin-top: 10px; font-size: 16px; color: var(--ink-2); max-width: 600px; }
.srv-hero__search { width: 440px; max-width: 100%; }
.srv-pop { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 8px; }
.srv-pop::before { content: "Часто ищут:"; font-size: 12.5px; color: var(--muted); align-self: center; margin-right: 2px; }
.srv-pop button { border: 0; background: #fff; border-radius: 999px; padding: 4px 10px; font-size: 12.5px; color: var(--blue); cursor: pointer; box-shadow: inset 0 0 0 1px #cfe0f7; }
.srv-pop button:hover { background: var(--blue-soft); }
.srv-filter { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-top: 20px; }
.srv-jump { display: flex; gap: 6px; flex-wrap: wrap; }
.srv-jump a { font-size: 13.5px; padding: 8px 14px; border-radius: 999px; background: #fff; border: 1px solid var(--line); transition: all .15s; }
.srv-jump a:hover { border-color: var(--blue); color: var(--blue); }
.srv-body { display: flex; flex-direction: column; gap: var(--gap); }
.srv-group { padding: 24px 26px 26px; scroll-margin-top: 96px; }
.srv-group__head { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; margin-bottom: 18px; }
.srv-group__head h2 { font-size: 26px; }
.srv-group__head p { font-size: 14px; color: var(--muted); flex: 1; }
.srv-group__head span { font-size: 13px; font-weight: 700; color: var(--blue); background: var(--blue-soft); border-radius: 999px; padding: 3px 10px; }
.srv-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 14px; }
.srv-card { position: relative; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 16px; padding: 18px; background: #fff; transition: transform .2s, box-shadow .2s, border-color .2s; }
.srv-card:hover { transform: translateY(-3px); box-shadow: 0 14px 30px rgba(16, 24, 40, .08); border-color: #cfe0f7; }
.srv-card__link { position: absolute; inset: 0; z-index: 1; border-radius: 16px; }
.srv-card__top { display: flex; align-items: flex-start; justify-content: space-between; }
.srv-card__ic { width: 56px; height: 56px; border-radius: 16px; background: var(--blue-soft); display: grid; place-items: center; transition: background .2s; }
.srv-card__ic .dir__ic { width: 32px; height: 32px; }
.srv-card:hover .srv-card__ic { background: var(--blue); }
.srv-card:hover .srv-card__ic .dir__ic { stroke: #fff; }
.srv-card h3 { font-size: 18px; margin-top: 14px; line-height: 1.25; }
.srv-card__txt { font-size: 13.5px; color: var(--ink-2); margin-top: 6px; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.srv-card__hits { list-style: none; padding: 8px 10px; margin: 10px 0 0; background: #f7faff; border-radius: 10px; display: flex; flex-direction: column; gap: 4px; }
.srv-card__hits li { display: flex; justify-content: space-between; gap: 10px; font-size: 12.5px; }
.srv-card__hits b { white-space: nowrap; }
.srv-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin-top: 12px; font-size: 13px; color: var(--ink-2); }
.srv-price { font-weight: 700; color: var(--ink); }
.srv-price--muted { color: var(--muted); font-weight: 500; }
.srv-today { display: inline-flex; align-items: center; gap: 6px; color: #0e8a52; font-weight: 600; }
.srv-today i { width: 7px; height: 7px; border-radius: 50%; background: #12b76a; }
.srv-card__foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; padding-top: 14px; }
.srv-card__book { position: relative; z-index: 2; padding: 8px 14px; font-size: 13px; }
.srv-card--labs { background: linear-gradient(160deg, #fff 40%, #fff4f2 100%); border-color: #ffd9d2; }
.srv-card--labs .srv-card__ic { background: #fff1ee; }
.srv-card--labs .dir__ic { stroke: var(--coral); }

/* ============ Страница направления ============ */
.srv-top { display: grid; grid-template-columns: 1fr 260px; gap: 28px; align-items: center; padding: 28px; background: linear-gradient(120deg, #fff 55%, #eaf3fe 100%); overflow: hidden; }
.srv-top__group { font-size: 13px; font-weight: 600; color: var(--blue); }
.srv-top h1 { font-size: 42px; font-weight: 800; letter-spacing: -.03em; line-height: 1.08; margin-top: 8px; }
.srv-top__lead { font-size: 16px; color: var(--ink-2); margin-top: 12px; max-width: 720px; }
.srv-top__facts { margin-top: 20px; }
.srv-top__art { width: 240px; height: 240px; border-radius: 50%; background: radial-gradient(circle at 35% 30%, #fff 0, #eaf3fe 55%, #d7e8fd 100%); display: grid; place-items: center; justify-self: end; box-shadow: inset 0 0 0 1px #d9e8fb; }
.srv-top__ic { width: 120px; height: 120px; fill: none; stroke: var(--blue); stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.srv-tabs { position: sticky; top: 84px; z-index: 15; display: flex; gap: 4px; padding: 6px; overflow-x: auto; scrollbar-width: none; }
.srv-tabs a { flex: none; padding: 9px 16px; border-radius: 10px; font-size: 14px; font-weight: 500; transition: all .15s; }
.srv-tabs a:hover { background: var(--blue-soft); color: var(--blue); }
.srv-text { font-size: 15.5px; line-height: 1.65; color: var(--ink); scroll-margin-top: 150px; }
.srv-text p { margin: 0 0 12px; }
.srv-text ul { margin: 0 0 14px; padding-left: 0; list-style: none; display: flex; flex-direction: column; gap: 6px; }
.srv-text li { position: relative; padding-left: 22px; }
.srv-text li::before { content: ""; position: absolute; left: 4px; top: 10px; width: 7px; height: 7px; border-radius: 50%; background: var(--blue); }
.srv-text strong { font-weight: 700; }
.srv-text h2 ~ h2, .srv-text h3 { font-size: 18px; margin: 18px 0 8px; }
#prices, #doctors, #treats, #about { scroll-margin-top: 150px; }
.srv-sec-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.srv-sec-head h2 { margin: 0; }
.srv-psearch { width: 260px; }
.srv-docs { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.srv-doc { display: grid; grid-template-columns: 76px 1fr; gap: 14px; align-items: start; border: 1px solid var(--line); border-radius: 14px; padding: 12px; }
.srv-doc.is-off { opacity: .75; }
.srv-doc__ph { width: 76px; height: 92px; border-radius: 12px; overflow: hidden; background: var(--blue-soft); }
.srv-doc__ph img { width: 100%; height: 100%; object-fit: cover; object-position: center 18%; }
.srv-doc__body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.srv-doc__name { font-weight: 700; font-size: 15px; line-height: 1.3; }
.srv-doc__name:hover { color: var(--blue); }
.srv-doc__meta { font-size: 12.5px; color: var(--muted); }
.srv-doc__when { font-size: 13px; color: var(--ink-2); margin-top: 4px; }
.srv-doc__when b { color: #0e8a52; }
.srv-doc__slots { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 4px; }
.srv-doc__slots .slot { padding: 5px 8px; font-size: 12px; }
.srv-doc__btn { grid-column: 1 / -1; padding: 9px 14px; font-size: 13px; }
.srv-book { padding: 22px; display: flex; flex-direction: column; gap: 12px; }
.srv-book h3 { font-size: 20px; }
.srv-book p { font-size: 14px; color: var(--ink-2); }
.srv-book__slots { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; }
.srv-book__slots .slot { width: 100%; }
.srv-book__tel { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-weight: 700; color: var(--ink); }
.srv-book__tel .ic { color: var(--blue); }
.srv-mini { width: 40px; height: 40px; flex: none; border-radius: 12px; background: var(--blue-soft); display: grid; place-items: center; }
.srv-mini .dir__ic { width: 24px; height: 24px; }

@media (max-width: 1180px) {
  .srv-top { grid-template-columns: 1fr; }
  .srv-top__art { width: 100%; height: 220px; order: -1; }
  .srv-docs { grid-template-columns: 1fr; }
}
@media (max-width: 680px) {
  .srv-hero { padding: 20px 16px; }
  .srv-hero h1, .srv-top h1 { font-size: 30px; }
  .srv-hero__search { width: 100%; }
  .srv-group { padding: 20px 14px; }
  .srv-top { padding: 20px 16px; }
  .srv-tabs { top: 72px; }
  .srv-psearch { width: 100%; }
  .srv-card__foot { flex-wrap: wrap; }
}

.srv-off { font-size: 12.5px; font-weight: 600; color: var(--coral-d); background: #fff1ee; border-radius: 999px; padding: 2px 9px; }

/* Фирменная заглушка вместо фото */
.tcard__ph--none::after { display: none; }
.tcard__ph--none img, img[src$="doctor-placeholder.svg"] { object-position: center 45% !important; }

/* Иллюстрации направлений (фирменный комплект клиники) */
.srv-card { padding: 0; overflow: hidden; }
.srv-card > :not(.srv-card__img):not(.srv-card__link) { margin-left: 18px; margin-right: 18px; }
.srv-card__foot { padding-bottom: 18px; }
.srv-card__img { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: #eef5ff; }
.srv-card__img img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; transition: transform .5s; }
.srv-card:hover .srv-card__img img { transform: scale(1.06); }
.srv-card__kid { position: absolute; left: 12px; top: 12px; z-index: 1; box-shadow: 0 4px 10px rgba(255, 106, 85, .25); background: #fff; }
.srv-card__img--labs { display: grid; place-items: center; background: radial-gradient(circle at 35% 30%, #fff 0, #fff1ee 55%, #ffd9d2 100%); }
.srv-card__labic { width: 96px; height: 96px; fill: none; stroke: var(--coral); stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.srv-card h3 { margin-top: 14px; }
.srv-top__art { width: 320px; height: 240px; border-radius: 22px; overflow: hidden; background: #eef5ff; box-shadow: 0 16px 40px rgba(47, 134, 246, .15); }
.srv-top__art img { width: 100%; height: 100%; object-fit: cover; object-position: center 40%; }
.srv-top { grid-template-columns: 1fr 320px; }
.srv-mini { overflow: hidden; background: #eef5ff; }
.srv-mini img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 1180px) { .srv-top { grid-template-columns: 1fr; } }

/* ============ Меню: выпадающие пункты ============ */
.nav__dd { position: relative; }
.nav__top { display: inline-flex; align-items: center; gap: 4px; }
.nav__chev { width: 14px; height: 14px; transition: transform .2s; }
.nav__menu { position: absolute; left: 0; top: calc(100% + 6px); min-width: 250px; background: #fff; border-radius: 14px; box-shadow: 0 18px 40px rgba(16, 24, 40, .14); padding: 8px; display: flex; flex-direction: column; opacity: 0; visibility: hidden; transform: translateY(6px); transition: all .18s; z-index: 40; }
.nav__menu::before { content: ""; position: absolute; left: 0; right: 0; top: -10px; height: 10px; }
.nav__menu a { padding: 9px 12px !important; border-radius: 9px; font-size: 14px; white-space: nowrap; }
.nav__menu a:hover { background: var(--blue-soft); color: var(--blue); }
.nav__menu a.is-active { background: var(--blue-soft); color: var(--blue); }
.nav__menu a.is-active::after { display: none; }
.nav__dd:hover .nav__menu, .nav__dd:focus-within .nav__menu { opacity: 1; visibility: visible; transform: none; }
.nav__dd:hover .nav__chev { transform: rotate(180deg); }
@media (max-width: 1180px) { .nav > a, .nav__top { padding-left: 9px !important; padding-right: 9px !important; } }
@media (max-width: 980px) {
  .nav__dd { display: flex; flex-direction: column; }
  .nav__menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; padding: 0 0 4px 14px; min-width: 0; background: none; }
  .nav__menu a { font-size: 14px; color: var(--ink-2); }
  .nav__chev { display: none; }
}

/* ============ Подвал ============ */
.foot { padding: 30px 30px 18px; display: flex; flex-direction: column; gap: 22px; }
.foot__top { display: grid; grid-template-columns: 1.35fr 1fr 1.15fr 1fr 1.3fr; gap: 28px; }
.foot__brand img { width: 190px; height: auto; }
.foot__brand > p { font-size: 13.5px; color: var(--ink-2); margin-top: 14px; line-height: 1.5; }
.foot__h { font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--ink); margin-bottom: 12px; }
.foot__brand .foot__h { margin-top: 20px; margin-bottom: 10px; }
.foot__col { display: flex; flex-direction: column; gap: 9px; }
.foot__col a { font-size: 14px; color: var(--ink-2); transition: color .15s; }
.foot__col a:hover { color: var(--blue); }
.foot__all { display: inline-flex; align-items: center; gap: 6px; color: var(--blue) !important; font-weight: 600; }
.foot__all .ic { width: 15px; height: 15px; }
.foot__contacts { display: flex; flex-direction: column; gap: 11px; font-size: 14px; }
.foot__contacts p { display: flex; gap: 10px; align-items: flex-start; color: var(--ink-2); }
.foot__contacts .ic { color: var(--blue); margin-top: 2px; flex: none; }
.foot__contacts a { display: block; }
.foot__contacts .phone-main { color: var(--ink); }
.foot__contacts .btn { margin-top: 4px; }
.foot__soc { display: flex; gap: 8px; flex-wrap: wrap; }
.soc { display: inline-flex; align-items: center; gap: 8px; height: 42px; padding: 0 16px 0 10px; border-radius: 12px; color: #fff; font-size: 14px; font-weight: 600; transition: transform .15s, box-shadow .15s; }
.soc svg { width: 24px; height: 24px; }
.soc:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(16, 24, 40, .15); }
.soc--vk { background: #0077ff; }
.soc--max { background: linear-gradient(135deg, #4f5bff 0%, #9b4dff 100%); }
.soc--soon { cursor: default; }
.foot__map { height: 200px; border-radius: 16px; }
.foot__bottom { display: flex; justify-content: space-between; gap: 12px 24px; flex-wrap: wrap; padding-top: 16px; border-top: 1px solid var(--line); font-size: 13px; color: var(--muted); }
.foot__bottom nav { display: flex; gap: 18px; flex-wrap: wrap; }
.foot__bottom a:hover { color: var(--blue); }
@media (max-width: 1180px) { .foot__top { grid-template-columns: 1fr 1fr 1fr; } .foot__brand { grid-column: 1 / -1; } }
@media (max-width: 680px) {
  .foot { padding: 22px 16px 16px; }
  .foot__top { grid-template-columns: 1fr 1fr; gap: 22px 16px; }
  .foot__contacts { grid-column: 1 / -1; }
  .foot__map { height: 220px; }
}

/* ============ О клинике ============ */
.ab-hero { display: grid; grid-template-columns: 1.1fr 1fr; gap: 28px; align-items: center; padding: 28px; background: linear-gradient(120deg, #fff 55%, #eaf3fe 100%); }
.ab-eyebrow { font-size: 13px; font-weight: 600; color: var(--blue); margin-top: 16px; }
.ab-hero h1 { font-size: 46px; font-weight: 800; letter-spacing: -.03em; line-height: 1.05; margin-top: 8px; }
.ab-lead { font-size: 18px; color: var(--ink-2); margin-top: 12px; }
.ab-hero__img { border-radius: 20px; overflow: hidden; aspect-ratio: 16 / 10; box-shadow: 0 18px 40px rgba(16, 24, 40, .12); }
.ab-hero__img img { width: 100%; height: 100%; object-fit: cover; object-position: 72% center; }
.ab-stats { display: grid; grid-template-columns: repeat(4, 1fr); padding: 8px; }
.ab-stats > div { padding: 18px 20px; display: flex; flex-direction: column; gap: 2px; }
.ab-stats > div + div { border-left: 1px solid var(--line); }
.ab-stats b { font-size: 34px; font-weight: 800; color: var(--blue); letter-spacing: -.02em; }
.ab-stats span { font-size: 14px; color: var(--ink-2); }
.ab-why { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.ab-why > div { background: #f7faff; border-radius: 14px; padding: 16px; }
.ab-why b { display: block; font-size: 16px; margin-top: 10px; }
.ab-why p { font-size: 14px; color: var(--ink-2); margin-top: 4px; }
.ab-team { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.ab-doc { display: flex; flex-direction: column; gap: 2px; }
.ab-doc img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: center 15%; border-radius: 14px; margin-bottom: 6px; transition: transform .3s; }
.ab-doc:hover img { transform: translateY(-3px); }
.ab-doc b { font-size: 15px; }
.ab-doc small { font-size: 12.5px; color: var(--muted); }
.ab-mini { color: var(--blue); }
.ab-mini .ic { width: 20px; height: 20px; }
@media (max-width: 980px) { .ab-hero { grid-template-columns: 1fr; } .ab-stats { grid-template-columns: 1fr 1fr; } .ab-stats > div:nth-child(3) { border-left: 0; } }
@media (max-width: 680px) { .ab-hero { padding: 20px 16px; } .ab-hero h1 { font-size: 32px; } .ab-why { grid-template-columns: 1fr; } .ab-team { grid-template-columns: 1fr 1fr; } .ab-stats b { font-size: 26px; } }

/* ============ Цены ============ */
.pr-hero { padding: 26px 28px 24px; background: linear-gradient(120deg, #fff 55%, #eaf3fe 100%); }
.pr-hero__row { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-top: 14px; flex-wrap: wrap; }
.pr-hero h1 { font-size: 44px; font-weight: 800; letter-spacing: -.03em; }
.pr-hero__tools { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.pr-search { width: 420px; max-width: 100%; }
.pr-layout { display: grid; grid-template-columns: 290px 1fr; gap: var(--gap); align-items: start; }
.pr-side { position: sticky; top: 96px; padding: 14px; display: flex; flex-direction: column; gap: 2px; max-height: calc(100vh - 120px); overflow-y: auto; }
.pr-side__h { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); padding: 4px 10px 8px; }
.pr-side a { display: flex; justify-content: space-between; gap: 10px; align-items: center; padding: 8px 10px; border-radius: 9px; font-size: 14px; transition: all .15s; }
.pr-side a:hover { background: var(--blue-soft); color: var(--blue); }
.pr-side a i { font-style: normal; font-size: 12px; color: var(--muted); background: #f2f5f9; border-radius: 999px; padding: 1px 8px; }
.pr-side__cta { margin-top: 8px; background: #fff1ee; color: var(--coral-d) !important; font-weight: 600; justify-content: flex-start !important; gap: 8px !important; }
.pr-side__cta .ic { width: 16px; height: 16px; }
.pr-main { display: flex; flex-direction: column; gap: var(--gap); min-width: 0; }
.pr-sec { padding: 22px 24px; scroll-margin-top: 96px; }
.pr-sec__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.pr-sec__head h2 { font-size: 22px; }
.pr-table { display: flex; flex-direction: column; }
.pr-row { display: grid; grid-template-columns: 1fr auto 110px; gap: 16px; align-items: center; padding: 11px 6px; border-bottom: 1px dashed #e1e7ef; transition: background .15s; }
.pr-row:last-child { border-bottom: 0; }
.pr-row:hover { background: #f7faff; }
.pr-row__name { font-size: 14.5px; line-height: 1.4; }
.pr-row__name mark { background: #fff1c2; border-radius: 3px; padding: 0 1px; }
.pr-row__price { font-size: 15px; white-space: nowrap; text-align: right; }
.pr-row__book { justify-self: end; border: 1px solid #cfe0f7; background: #fff; color: var(--blue); border-radius: 8px; padding: 6px 10px; font-size: 12.5px; font-weight: 600; cursor: pointer; opacity: 0; transition: opacity .15s, background .15s; }
.pr-row:hover .pr-row__book, .pr-row__book:focus { opacity: 1; }
.pr-row__book:hover { background: var(--blue); color: #fff; }
.pr-note { padding: 16px 22px; font-size: 13.5px; color: var(--ink-2); }
.pr-note a { color: var(--blue); }
@media (max-width: 980px) { .pr-layout { grid-template-columns: 1fr; } .pr-side { position: static; max-height: none; flex-direction: row; flex-wrap: wrap; gap: 6px; } .pr-side__h { width: 100%; } .pr-side a { background: #f7faff; } }
@media (max-width: 680px) {
  .pr-hero { padding: 20px 16px; } .pr-hero h1 { font-size: 32px; }
  .pr-sec { padding: 18px 14px; }
  .pr-row { grid-template-columns: 1fr auto; } .pr-row__book { display: none; }
}
@media print {
  .topbar, .header, .foot, .disclaimer, .pr-side, .pr-hero__tools, .pr-row__book, .pr-sec__head .link-more, .modal { display: none !important; }
  body { background: #fff; }
  .card { box-shadow: none !important; }
  .pr-layout { display: block; }
  .pr-sec { break-inside: auto; padding: 8px 0; }
  .pr-row { grid-template-columns: 1fr auto; padding: 4px 0; }
}

/* ============ Акции ============ */
.promo-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--gap); }
.promo { position: relative; padding: 26px 26px 22px; display: flex; flex-direction: column; gap: 10px; overflow: hidden; }
.promo::after { content: ""; position: absolute; right: -60px; top: -60px; width: 200px; height: 200px; border-radius: 50%; background: radial-gradient(circle, #fff1ee 0%, rgba(255, 241, 238, 0) 70%); }
.promo__badge { position: relative; z-index: 1; align-self: flex-start; font-size: 34px; font-weight: 800; color: #fff; background: linear-gradient(135deg, #ff6a55, #f25540); border-radius: 16px; padding: 6px 16px; box-shadow: 0 10px 24px rgba(255, 106, 85, .3); }
.promo--kids .promo__badge { background: linear-gradient(135deg, #2f86f6, #1f6fd9); box-shadow: 0 10px 24px rgba(47, 134, 246, .3); }
.promo h2 { font-size: 22px; margin-top: 6px; position: relative; }
.promo p { font-size: 15px; color: var(--ink-2); line-height: 1.55; }
.promo__small { font-size: 13px !important; color: var(--muted) !important; }
.promo__foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: auto; padding-top: 12px; flex-wrap: wrap; }
@media (max-width: 800px) { .promo-grid { grid-template-columns: 1fr; } }

/* ============ Документы ============ */
.doc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 10px; }
.doc-card { display: grid; grid-template-columns: 48px 1fr 20px; gap: 14px; align-items: center; border: 1px solid var(--line); border-radius: 14px; padding: 12px 16px 12px 12px; transition: all .15s; scroll-margin-top: 120px; }
.doc-card:hover { border-color: #cfe0f7; background: #f7faff; }
.doc-card.is-flash { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(47, 134, 246, .2); }
.doc-card__ic { width: 48px; height: 56px; border-radius: 8px; background: #fff1ee; color: var(--coral-d); font-size: 12px; font-weight: 800; display: grid; place-items: center; border: 1px solid #ffd9d2; }
.doc-card__txt b { display: block; font-size: 14.5px; line-height: 1.35; font-weight: 600; }
.doc-card__txt small { display: block; font-size: 12.5px; color: var(--muted); margin-top: 3px; }
.doc-card__go { color: var(--blue); }
.doc-card__go .ic { width: 18px; height: 18px; }

/* ============ Контакты ============ */
.ct-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--gap); }
.ct-card { position: relative; overflow: hidden; padding: 22px; display: flex; flex-direction: column; gap: 6px; }
/* у каждой карточки свой крупный полупрозрачный значок на фоне */
.ct-card__bg { position: absolute; right: -16px; top: -12px; width: 118px; height: 118px; color: var(--blue); opacity: .07; pointer-events: none; }
.ct-card > *:not(.ct-card__bg) { position: relative; }
.ct-hero { position: relative; overflow: hidden; }
.ct-hero__bg { position: absolute; right: 48px; top: -46px; width: 210px; height: 210px; color: var(--blue); opacity: .06; pointer-events: none; }
.ct-hero > *:not(.ct-hero__bg) { position: relative; }
.ct-card .feat__ic { margin-bottom: 8px; }
.ct-card__h { font-size: 13px; font-weight: 600; color: var(--muted); text-transform: uppercase; letter-spacing: .04em; }
.ct-card b { font-size: 16px; line-height: 1.4; }
.ct-card .link-more { margin-top: 6px; }
.ct-big { font-size: 19px; font-weight: 800; color: var(--ink); }
.ct-big:hover { color: var(--blue); }
.ct-mail { font-size: 15px; word-break: break-all; }
.ct-soc { margin-top: 8px; }
.ct-map { position: relative; height: 460px; overflow: hidden; }
.ct-map iframe { width: 100%; height: 100%; border: 0; }
.ct-map__card { position: absolute; left: 20px; top: 20px; background: #fff; border-radius: 16px; padding: 18px; box-shadow: 0 14px 34px rgba(16, 24, 40, .15); display: flex; flex-direction: column; gap: 10px; max-width: 280px; }
.ct-map__card p { font-size: 14px; color: var(--ink-2); }
@media (max-width: 1180px) { .ct-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 680px) { .ct-grid { grid-template-columns: 1fr; } .ct-map { height: 380px; } .ct-map__card { left: 12px; right: 12px; top: auto; bottom: 12px; max-width: none; } }

/* ============ Панель фильтров «С чего начнём?» ============ */
.fp { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 14px 22px; padding: 14px 16px; border-radius: 14px; background: #f7faff; border: 1px solid #e3edfb; }
.fp__grp { display: flex; flex-direction: column; gap: 6px; }
.fp__label { font-size: 11.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); padding-left: 2px; }
.fp__seg { display: inline-flex; background: #fff; border: 1px solid #dbe5f1; border-radius: 11px; padding: 3px; gap: 2px; }
.fp__opt { display: inline-flex; align-items: center; gap: 7px; border: 0; background: none; border-radius: 8px; padding: 8px 12px; font-size: 13.5px; color: var(--ink); cursor: pointer; white-space: nowrap; transition: all .15s; }
.fp__opt i { font-style: normal; font-size: 11.5px; font-weight: 700; color: var(--muted); background: #f1f4f8; border-radius: 999px; min-width: 22px; padding: 1px 6px; text-align: center; }
.fp__opt:hover:not(:disabled) { background: var(--blue-soft); color: var(--blue); }
.fp__opt.is-on { background: var(--blue); color: #fff; box-shadow: 0 4px 12px rgba(47, 134, 246, .3); }
.fp__opt.is-on i { background: rgba(255, 255, 255, .25); color: #fff; }
.fp__opt--kids.is-on { background: var(--coral); box-shadow: 0 4px 12px rgba(255, 106, 85, .3); }
.fp__opt:disabled { opacity: .45; cursor: not-allowed; }
.fp__res { margin-left: auto; display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--ink-2); padding-bottom: 8px; }
.fp__res b { font-size: 20px; color: var(--ink); }
.fp__reset { display: inline-flex; align-items: center; gap: 4px; border: 0; background: #fff; border-radius: 8px; padding: 6px 10px; font-size: 13px; color: var(--coral-d); cursor: pointer; box-shadow: inset 0 0 0 1px #ffd9d2; }
.fp__reset .ic { width: 14px; height: 14px; }
@media (max-width: 680px) {
  .fp { padding: 12px; gap: 12px; }
  .fp__grp, .fp__seg { width: 100%; }
  .fp__opt { flex: 1; justify-content: center; padding: 8px 6px; font-size: 12.5px; white-space: normal; text-align: center; }
  .fp__res { margin-left: 0; padding-bottom: 0; }
}

.pr-side__h--sub { margin-top: 10px; border-top: 1px solid var(--line); padding-top: 14px !important; }
@media (max-width: 980px) { .pr-side__h--sub { border-top: 0; margin-top: 4px; padding-top: 4px !important; } }
/* Цены: ничего не должно раздвигать страницу на телефоне */
.pr-row { grid-template-columns: minmax(0, 1fr) auto 110px; }
.pr-row__name { overflow-wrap: anywhere; }
.pr-layout { grid-template-columns: 290px minmax(0, 1fr); }
@media (max-width: 980px) { .pr-layout { grid-template-columns: minmax(0, 1fr); } .pr-side { min-width: 0; } }
@media (max-width: 680px) {
  .pr-row { grid-template-columns: minmax(0, 1fr) auto; }
  .pr-hero__tools { width: 100%; }
  .pr-search { width: 100%; flex: 1 1 100%; min-width: 0; }
  .pr-hero__tools .btn { width: 100%; }
}
.pr-row__price { white-space: normal; max-width: 260px; }
@media (max-width: 680px) { .pr-row__price { max-width: 140px; font-size: 14px; } }

/* ============ Главная: «Диагностика и лечение в одном месте» ============ */
.diag { position: relative; overflow: hidden; min-height: 330px; display: flex; align-items: center; padding: 34px 36px;
  background: #f4f8fc url("../img/diag.jpg") 62% center / cover no-repeat; }
.diag::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(255,255,255,.97) 0%, rgba(255,255,255,.9) 34%, rgba(255,255,255,.35) 58%, rgba(255,255,255,0) 72%); }
.diag__text { position: relative; max-width: 440px; }
.diag h2 { font-size: 34px; font-weight: 800; line-height: 1.12; letter-spacing: -.02em; }
.diag p { font-size: 15.5px; color: var(--ink-2); margin: 14px 0 22px; line-height: 1.55; }
.btn--navy { background: #1f4fa3; color: #fff; }
.btn--navy:hover { background: #173f86; }
@media (max-width: 680px) {
  .diag { min-height: 0; padding: 24px 20px 220px; background-image: url("../img/diag-m.jpg"); background-position: 70% bottom; background-size: 180% auto; }
  .diag::before { background: linear-gradient(180deg, #fff 0%, #fff 55%, rgba(255,255,255,0) 80%); }
  .diag h2 { font-size: 26px; }
}

/* ============ Отзывы + акция ============ */
.rv-row { display: grid; grid-template-columns: 1fr 440px; gap: var(--gap); }
.rv { padding: 24px 24px 20px; overflow: hidden; display: flex; flex-direction: column; }
.rv__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; flex-wrap: wrap; }
.rv__meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 13.5px; color: var(--ink-2); margin-top: 6px; }
.rv__rating { font-size: 22px; font-weight: 800; color: var(--ink); }
.rv__stars { display: inline-flex; gap: 1px; letter-spacing: 0; }
.rv__stars i { font-style: normal; color: #d8dee7; font-size: 15px; line-height: 1; }
.rv__stars i.on { color: #f5a524; }
.rv__track { display: flex; gap: 14px; overflow-x: auto; scroll-snap-type: x mandatory; margin: 16px -24px 0; padding: 2px 24px 10px; scroll-padding-left: 24px; scrollbar-width: thin; }
.rv-card { flex: 0 0 300px; scroll-snap-align: start; display: flex; flex-direction: column; gap: 10px; border: 1px solid var(--line); border-radius: 16px; padding: 16px 16px 14px; background: #fff; }
.rv-card__text { font-size: 14px; line-height: 1.55; color: var(--ink); display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; }
.rv-card.is-open .rv-card__text { -webkit-line-clamp: unset; display: block; }
.rv-card__more { align-self: flex-start; border: 0; background: none; padding: 0; color: var(--blue); font-size: 13px; cursor: pointer; }
.rv-card__foot { display: flex; align-items: center; gap: 10px; margin-top: auto; padding-top: 10px; border-top: 1px solid var(--line); }
.rv-card__ph { width: 36px; height: 36px; border-radius: 50%; object-fit: cover; flex: none; background: var(--blue-soft); }
.rv-card__foot div { flex: 1; min-width: 0; }
.rv-card__foot b { display: block; font-size: 14px; }
.rv-card__foot small { display: block; font-size: 12px; color: var(--muted); }
.rv__all { margin-top: 12px; }
.promo-card { position: relative; overflow: hidden; border-radius: var(--radius); padding: 28px 26px; min-height: 300px; display: flex; flex-direction: column; align-items: flex-start; gap: 10px;
  background: #fbd9d0 url("../img/promo.jpg") 78% center / cover no-repeat; box-shadow: var(--shadow); }
.promo-card::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(251,217,208,.97) 0%, rgba(251,217,208,.88) 45%, rgba(251,217,208,0) 72%); }
.promo-card > * { position: relative; }
.promo-card__tag { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--coral-d); background: #fff; border-radius: 999px; padding: 4px 12px; }
.promo-card h2 { font-size: 26px; line-height: 1.15; max-width: 240px; margin-top: 6px; }
.promo-card p { font-size: 15px; color: var(--ink-2); max-width: 230px; }
.promo-card .btn { margin-top: auto; }
@media (max-width: 1180px) { .rv-row { grid-template-columns: 1fr; } .promo-card { min-height: 260px; } }
@media (max-width: 680px) {
  .rv { padding: 20px 16px; } .rv__track { margin: 14px -16px 0; padding: 2px 16px 10px; }
  .rv-card { flex-basis: 270px; }
  .promo-card { background-image: url("../img/promo-m.jpg"); background-position: 85% center; }
}

/* ============ Верхняя строка: версия для слабовидящих ============ */
.topbar__right { display: flex; align-items: center; gap: 10px; }
.a11y-btn { display: inline-flex; align-items: center; gap: 8px; border: 1px solid #cfdbe8; background: #fff; border-radius: 999px; padding: 6px 14px; font-size: 13px; color: var(--ink); cursor: pointer; white-space: nowrap; }
.a11y-btn .ic { width: 17px; height: 17px; color: var(--blue); }
.a11y-btn:hover, .a11y-btn[aria-pressed="true"] { border-color: var(--blue); color: var(--blue); }
@media (max-width: 680px) { .topbar__right { width: 100%; } .topbar__right .topbar__search { flex: 1; } .a11y-btn span { display: none; } .a11y-btn { padding: 8px 10px; } }

/* Панель настроек */
.a11y-panel { position: sticky; top: 0; z-index: 90; background: #fff; border-bottom: 2px solid #000; }
.a11y-panel__in { max-width: 1320px; margin: 0 auto; padding: 10px 20px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 26px; }
.a11y-grp { display: flex; align-items: center; gap: 6px; }
.a11y-grp span { font-size: 14px; font-weight: 700; margin-right: 4px; }
.a11y-panel button { min-width: 44px; height: 40px; padding: 0 12px; border: 2px solid #000; background: #fff; color: #000; border-radius: 8px; font-size: 16px; font-weight: 700; cursor: pointer; }
.a11y-panel button.is-on { outline: 3px solid #1f6fd9; outline-offset: 2px; }
.a11y-panel .a11y-f2 { font-size: 19px; } .a11y-panel .a11y-f3 { font-size: 22px; }
.a11y-panel .a11y-c0 { background: linear-gradient(135deg, #fff 50%, #2f86f6 50%) !important; }
.a11y-panel .a11y-c1 { background: #fff !important; color: #000 !important; }
.a11y-panel .a11y-c2 { background: #000 !important; color: #fff !important; }
.a11y-panel .a11y-c3 { background: #9dd1ff !important; color: #063462 !important; border-color: #063462 !important; }
.a11y-panel .a11y-off { margin-left: auto; font-size: 14px; }

/* Режимы */
html.a11y-fs2 body { zoom: 1.2; }
html.a11y-fs3 body { zoom: 1.4; }
html.a11y-ls body, html.a11y-ls button, html.a11y-ls input, html.a11y-ls select { letter-spacing: .12em !important; word-spacing: .2em !important; }
html.a11y-noimg img, html.a11y-noimg iframe { visibility: hidden !important; }
html.a11y-noimg .hero, html.a11y-noimg .diag, html.a11y-noimg .promo-card { background-image: none !important; }
html.a11y-bw body, html.a11y-bw body * { background-color: #fff !important; color: #000 !important; border-color: #000 !important; box-shadow: none !important; text-shadow: none !important; }
html.a11y-wb body, html.a11y-wb body * { background-color: #000 !important; color: #fff !important; border-color: #fff !important; box-shadow: none !important; text-shadow: none !important; }
html.a11y-blue body, html.a11y-blue body * { background-color: #9dd1ff !important; color: #063462 !important; border-color: #063462 !important; box-shadow: none !important; text-shadow: none !important; }
html.a11y-bw .hero::before, html.a11y-wb .hero::before, html.a11y-blue .hero::before,
html.a11y-bw .diag::before, html.a11y-wb .diag::before, html.a11y-blue .diag::before,
html.a11y-bw .promo-card::before, html.a11y-wb .promo-card::before, html.a11y-blue .promo-card::before { display: none; }
html.a11y-bw .hero, html.a11y-wb .hero, html.a11y-blue .hero, html.a11y-bw .diag, html.a11y-wb .diag, html.a11y-blue .diag,
html.a11y-bw .promo-card, html.a11y-wb .promo-card, html.a11y-blue .promo-card { background-image: none !important; }
html.a11y-bw a, html.a11y-wb a, html.a11y-blue a { text-decoration: underline !important; }
html.a11y-bw .btn, html.a11y-wb .btn, html.a11y-blue .btn, html.a11y-bw button, html.a11y-wb button, html.a11y-blue button { border: 2px solid currentColor !important; }
html.a11y .card, html.a11y .help { border: 1px solid currentColor; }
html.a11y :focus-visible { outline: 3px solid #f5a524 !important; outline-offset: 2px; }

/* ============ Уведомление о cookie ============ */
.cookie { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 95; max-width: 760px; margin: 0 auto; display: flex; align-items: center; gap: 16px; background: #fff; border-radius: 16px; padding: 14px 16px 14px 20px; box-shadow: 0 18px 50px rgba(16, 24, 40, .22); }
.cookie p { font-size: 13.5px; color: var(--ink-2); line-height: 1.45; }
.cookie a { color: var(--blue); text-decoration: underline; }
.cookie .btn { flex: none; }
@media (max-width: 680px) { .cookie { flex-direction: column; align-items: stretch; } }

/* ============ Подвал: правовая информация ============ */
.foot__legal { display: flex; flex-direction: column; gap: 4px; padding-top: 14px; border-top: 1px solid var(--line); font-size: 12.5px; color: var(--muted); line-height: 1.5; }
.foot__legal a { color: var(--blue); }
.foot__bottom { align-items: center; }
.foot__dev { width: 100%; }
.foot__dev a { color: var(--muted); font-weight: 400; font-size: 13px; }
.check a { color: var(--blue); text-decoration: underline; text-underline-offset: 2px; }

/* ============ Правовые страницы, сведения, карта сайта ============ */
.legal h2 { font-size: 19px; margin: 22px 0 8px; }
.legal h2:first-child { margin-top: 0; }
.legal a { color: var(--blue); }
.org-info { scroll-margin-top: 96px; }
.org-dl { display: grid; grid-template-columns: 240px 1fr; gap: 0; margin: 0; }
.org-dl dt, .org-dl dd { padding: 11px 0; border-bottom: 1px solid var(--line); margin: 0; font-size: 14.5px; }
.org-dl dt { color: var(--muted); padding-right: 16px; }
.org-dl a { color: var(--blue); }
.sm { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.sm-col { display: flex; flex-direction: column; gap: 7px; }
.sm-col h2 { font-size: 18px; margin-bottom: 6px; }
.sm-col a { font-size: 14px; color: var(--ink-2); }
.sm-col a:hover { color: var(--blue); }
@media (max-width: 980px) { .sm { grid-template-columns: 1fr 1fr; } }
@media (max-width: 680px) { .org-dl { grid-template-columns: 1fr; } .org-dl dt { border-bottom: 0; padding-bottom: 0; } .sm { grid-template-columns: 1fr; } }
/* Диагностика: фото правее, текст на чистом фоне */
.diag { background-position: right center; }
.diag::before { background: linear-gradient(90deg, #fff 0%, #fff 38%, rgba(255,255,255,.85) 50%, rgba(255,255,255,0) 66%); }
@media (max-width: 680px) { .diag { background-position: 70% bottom; } }
/* Акция: текст слева, фото справа — лица не перекрываются */
.promo-card { display: grid; grid-template-columns: 1fr 1fr; padding: 0; gap: 0; background: #fbd9d0; min-height: 320px; }
.promo-card::before { display: none; }
.promo-card__text { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: 26px 8px 24px 24px; }
.promo-card__img { width: 100%; height: 100%; object-fit: cover; object-position: 60% center; }
.promo-card h2 { max-width: none; font-size: 24px; }
.promo-card p { max-width: none; }
.team__arrow[data-rv="-1"] .ic { transform: rotate(180deg); }
@media (max-width: 680px) { .promo-card { grid-template-columns: 1fr; } .promo-card__img { height: 240px; order: -1; object-position: 70% 30%; } .promo-card__text { padding: 20px; } }
.diag { background-position: 22% center; }
.diag::before { background: linear-gradient(90deg, #fff 0%, #fff 42%, rgba(255,255,255,.75) 52%, rgba(255,255,255,0) 62%); }
.rv-row { grid-template-columns: 1fr 520px; }
.promo-card { grid-template-columns: 1fr 1.05fr; }
.promo-card__img { object-position: 76% center; }
@media (max-width: 1180px) { .rv-row { grid-template-columns: 1fr; } }
/* Диагностика: фото отдельным слоем справа */
.diag { background: #fff !important; }
.diag::before { display: none; }
.diag__img { position: absolute; right: 0; top: 0; width: 62%; height: 100%; object-fit: cover; object-position: 70% center;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 28%); mask-image: linear-gradient(90deg, transparent 0, #000 28%); }
.diag__text { max-width: 420px; }
@media (max-width: 680px) {
  .diag { padding: 0 0 24px; flex-direction: column; align-items: stretch; }
  .diag__img { position: static; width: 100%; height: 210px; -webkit-mask-image: linear-gradient(180deg, #000 70%, transparent 100%); mask-image: linear-gradient(180deg, #000 70%, transparent 100%); }
  .diag__text { padding: 0 20px; }
}
.diag__img { width: 54%; object-position: 64% center; -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 16%); mask-image: linear-gradient(90deg, transparent 0, #000 16%); }
.diag h2 { font-size: 31px; }
.diag__text { max-width: 390px; }
@media (max-width: 680px) { .diag__img { width: 100%; -webkit-mask-image: linear-gradient(180deg, #000 70%, transparent 100%); mask-image: linear-gradient(180deg, #000 70%, transparent 100%); } .diag h2 { font-size: 26px; } }
html.a11y-bw body *, html.a11y-wb body *, html.a11y-blue body * { background-image: none !important; }

/* ===== Главная, 30.09.2026 (2): преимущества с эффектом, баннер акции, полезная информация, вопросы ===== */
/* Преимущества под баннером: при наведении карточка приподнимается, увеличивается и подсвечивается */
.feat, .feat-since { border-radius: 14px; transition: transform .28s cubic-bezier(.2, .8, .2, 1), box-shadow .28s, background-color .28s; }
.feat::before { transition: opacity .2s; }
.feat__ic { transition: background .25s, color .25s, transform .3s cubic-bezier(.2, .8, .2, 1), box-shadow .25s; }
.feat b { transition: color .2s; }
.feat:hover { z-index: 2; background: #fff; transform: translateY(-4px) scale(1.05);
  box-shadow: 0 0 0 1px rgba(47, 134, 246, .22), 0 14px 32px rgba(47, 134, 246, .2), 0 0 28px rgba(47, 134, 246, .16); }
.feat:hover::before, .feat:hover + .feat::before { opacity: 0; }
.feat:hover .feat__ic { background: var(--blue); color: #fff; transform: scale(1.14) rotate(-6deg); box-shadow: 0 8px 18px rgba(47, 134, 246, .4); }
.feat:hover b { color: var(--blue-d); }
.feat-since:hover { transform: translateY(-4px) scale(1.03); box-shadow: 0 0 0 1px rgba(255, 106, 85, .22), 0 14px 32px rgba(255, 106, 85, .2), 0 0 28px rgba(255, 106, 85, .14); }
.feat-since__ic { transition: transform .3s; }
.feat-since:hover .feat-since__ic { animation: vm-beat 1s ease-in-out infinite; }
@keyframes vm-beat { 0%, 100% { transform: scale(1); } 15% { transform: scale(1.16); } 30% { transform: scale(1); } 45% { transform: scale(1.1); } }
@media (hover: none) { .feat:hover, .feat-since:hover { transform: none; box-shadow: none; } }
@media (prefers-reduced-motion: reduce) { .feat, .feat-since, .feat__ic, .ucard { transition: none; } .feat-since:hover .feat-since__ic { animation: none; } }

/* Отзывы — на всю ширину */
.rv-row--full { grid-template-columns: 1fr; }

/* Баннер акции: как присланная картинка — фото справа, розовое поле с текстом слева */
.promo-ban { position: relative; overflow: hidden; border-radius: var(--radius); background: #fcdad2; min-height: 360px; display: flex; align-items: center; box-shadow: var(--shadow); }
.promo-ban__img { position: absolute; right: 0; top: 0; height: 100%; width: auto; max-width: none; }
.promo-ban__text { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 12px; padding: 40px 48px; max-width: 560px; }
.promo-ban h2 { font-size: 44px; font-weight: 800; line-height: 1.05; letter-spacing: -.03em; }
.promo-ban p { font-size: 19px; color: var(--ink-2); }
.promo-ban__btns { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 10px; }
.promo-ban .btn--white { color: var(--ink); }
@media (max-width: 1180px) { .promo-ban__text { max-width: 470px; padding: 32px 32px; } .promo-ban h2 { font-size: 36px; } }
@media (max-width: 900px) { .promo-ban__img { right: -120px; } }
@media (max-width: 680px) {
  .promo-ban { flex-direction: column; align-items: stretch; min-height: 0; }
  .promo-ban__img { position: static; width: 100%; height: 220px; object-fit: cover; object-position: 96% center; }
  .promo-ban__text { padding: 20px 20px 24px; max-width: none; }
  .promo-ban h2 { font-size: 28px; }
  .promo-ban p { font-size: 16px; }
}
html.a11y-noimg .promo-ban__img, html.a11y-bw .promo-ban__img, html.a11y-wb .promo-ban__img, html.a11y-blue .promo-ban__img { display: none; }

/* Полезная информация — плитки */
.useful { padding: 26px 26px 26px; }
.useful__sub { color: var(--muted); font-size: 14px; margin-top: 4px; }
.useful__grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.ucard { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 18px 18px 44px; border: 1px solid var(--line); border-radius: 14px; background: #fff;
  transition: transform .28s cubic-bezier(.2, .8, .2, 1), box-shadow .28s, border-color .28s; }
.ucard__ic { width: 46px; height: 46px; border-radius: 13px; background: var(--blue-soft); color: var(--blue); display: grid; place-items: center; margin-bottom: 6px; transition: background .25s, color .25s, transform .3s; }
.ucard__ic .ic { width: 24px; height: 24px; }
.ucard b { font-size: 16px; font-weight: 700; line-height: 1.25; }
.ucard__text { font-size: 13.5px; color: var(--ink-2); line-height: 1.45; }
.ucard__go { position: absolute; right: 14px; bottom: 12px; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; color: var(--blue); background: var(--blue-soft); transition: background .25s, color .25s, transform .25s; }
.ucard__go .ic { width: 16px; height: 16px; }
.ucard:hover { transform: translateY(-4px); border-color: rgba(47, 134, 246, .35); box-shadow: 0 14px 32px rgba(47, 134, 246, .16); }
.ucard:hover .ucard__ic { background: var(--blue); color: #fff; transform: scale(1.08) rotate(-5deg); }
.ucard:hover .ucard__go { background: var(--coral); color: #fff; transform: translateX(3px); }
@media (max-width: 1180px) { .useful__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 680px) { .useful { padding: 20px 16px; } .useful__grid { grid-template-columns: 1fr; gap: 8px; } .ucard { flex-direction: row; flex-wrap: wrap; align-items: center; padding: 14px 52px 14px 14px; column-gap: 12px; row-gap: 2px; }
  .ucard__ic { margin: 0; width: 40px; height: 40px; } .ucard b { flex: 1; } .ucard__text { flex-basis: 100%; padding-left: 52px; } .ucard__go { top: 50%; bottom: auto; margin-top: -15px; } }

/* Вопросы и ответы */
.faq { display: grid; grid-template-columns: 330px 1fr; gap: 24px; padding: 26px; align-items: start; }
.faq__side { position: sticky; top: 96px; display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding: 24px; border-radius: 14px; background: linear-gradient(135deg, #eaf3fe 0%, #f4f9ff 100%); }
.faq__side h2 { font-size: 28px; }
.faq__side p { font-size: 14px; color: var(--ink-2); margin-bottom: 4px; }
.faq__side .phone-main { font-size: 20px; }
.faq__side .btn { margin-top: 10px; }
.faq__list { display: flex; flex-direction: column; gap: 8px; }
.faq__item { scroll-margin-top: 110px; transition: border-color .2s, box-shadow .2s; }
.faq__item summary { font-size: 15.5px; font-weight: 600; padding: 16px 18px; }
.faq__item[open] { border-color: rgba(47, 134, 246, .35); box-shadow: 0 8px 22px rgba(47, 134, 246, .08); }
.faq__item .acc__body { font-size: 14.5px; line-height: 1.55; padding: 0 18px 18px; }
.faq__item .acc__body a { color: var(--blue); }
@media (max-width: 980px) { .faq { grid-template-columns: 1fr; } .faq__side { position: static; } }
@media (max-width: 680px) { .faq { padding: 20px 16px; } }

/* ===== Страницы «Пациентам»: анализы, программы, не знаю к кому идти, подготовка (30.09.2026) ===== */
.pp-facts { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: 18px; }
.pp-fact { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--ink-2); }
.pp-fact > .ic { width: 30px; height: 30px; padding: 6px; border-radius: 9px; background: #fff; color: var(--blue); box-shadow: 0 2px 8px rgba(47, 134, 246, .12); }
.pp-fact a { color: var(--blue); }
.pp-cta { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; padding: 26px 28px; background: linear-gradient(120deg, #fff 40%, #eaf3fe 100%); }
.pp-cta h2 { font-size: 26px; }
.pp-cta p { margin-top: 6px; color: var(--ink-2); max-width: 620px; }
.pp-cta__btns { display: flex; gap: 10px; flex-wrap: wrap; }
.pp-cta .btn--outline.btn--lg { padding: 14px 24px; }

/* Анализы */
.an-layout { display: grid; grid-template-columns: 230px minmax(0, 1fr) 340px; gap: var(--gap); align-items: start; }
.an-side { position: sticky; top: 96px; padding: 14px 10px; display: flex; flex-direction: column; gap: 2px; max-height: calc(100vh - 116px); overflow: auto; }
.an-side__h { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); padding: 0 10px 6px; }
.an-side a { display: flex; justify-content: space-between; gap: 8px; align-items: center; padding: 8px 10px; border-radius: 8px; font-size: 14px; color: var(--ink-2); }
.an-side a i { font-style: normal; font-size: 12px; color: var(--muted); }
.an-side a:hover { background: var(--blue-soft); color: var(--blue-d); }
.an-side__cta { margin-top: 8px; border-top: 1px solid var(--line); border-radius: 0 !important; padding-top: 12px !important; color: var(--blue) !important; justify-content: flex-start !important; font-weight: 600; }
.an-main { display: flex; flex-direction: column; gap: var(--gap); min-width: 0; }
.an-group { padding: 20px 20px 10px; scroll-margin-top: 96px; }
.an-group__head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin-bottom: 8px; }
.an-group h2 { font-size: 20px; }
.an-group__head span { font-size: 13px; color: var(--muted); }
.an-group .price { border: 1px solid var(--line); border-radius: 12px; overflow: hidden; margin-bottom: 10px; }
.an-group--pop { padding-bottom: 20px; background: linear-gradient(120deg, #fff 50%, #f4f9ff 100%); }
.an-group--pop h2 { margin-bottom: 12px; }
.an-pop { display: flex; flex-wrap: wrap; gap: 8px; }
.chip.is-on { border-color: var(--blue); background: var(--blue-soft); }
.an-cart { position: sticky; top: 96px; padding: 20px; display: flex; flex-direction: column; gap: 10px; max-height: calc(100vh - 116px); overflow: auto; scroll-margin-top: 96px; }
.an-cart__h { font-size: 18px; font-weight: 700; display: flex; align-items: center; gap: 8px; }
.an-cart__h i { font-style: normal; font-size: 12px; color: #fff; background: var(--coral); border-radius: 999px; padding: 1px 8px; }
.an-cart .cart__items li { background: #f7f9fb; }
.an-cart__empty { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; color: var(--ink-2); background: #f7f9fb; border-radius: 10px; padding: 12px; }
.an-cart__empty .ic { color: var(--blue); flex: none; margin-top: 2px; }
.an-cart__prep { display: flex; flex-direction: column; gap: 4px; background: var(--blue-soft); border-radius: 12px; padding: 12px 14px; font-size: 13px; color: var(--ink-2); }
.an-cart__prep b { color: var(--ink); font-size: 14px; }
.an-cart__prep .link-more { font-size: 13px; margin-top: 2px; }
.an-bar { display: none; }
@media (max-width: 1180px) { .an-layout { grid-template-columns: minmax(0, 1fr) 320px; } .an-side { display: none; } }
@media (max-width: 860px) {
  .an-layout { grid-template-columns: 1fr; }
  .an-cart { position: static; max-height: none; }
  .an-bar:not([hidden]) { display: flex; position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 40; align-items: center; justify-content: space-between; gap: 10px;
    background: #fff; border-radius: 14px; padding: 10px 10px 10px 16px; box-shadow: 0 10px 30px rgba(16, 24, 40, .18); font-size: 14px; }
}
@media (max-width: 680px) { .an-group { padding: 16px 12px 6px; } .an-group .price__row { padding: 10px 12px; } }

/* Программы */
.pp-steps { padding: 24px 26px; }
.pp-steps h2 { font-size: 22px; margin-bottom: 16px; }
.pp-steps ol { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; counter-reset: st; }
.pp-steps li { counter-increment: st; position: relative; display: flex; flex-direction: column; gap: 4px; padding: 16px 16px 16px 60px; border-radius: 12px; background: #f7f9fb; font-size: 13.5px; color: var(--ink-2); }
.pp-steps li::before { content: counter(st); position: absolute; left: 16px; top: 14px; width: 32px; height: 32px; border-radius: 50%; background: var(--blue); color: #fff; font-weight: 700; display: grid; place-items: center; }
.pp-steps li b { color: var(--ink); font-size: 15px; }
.pg-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)); gap: var(--gap); }
.pg { display: flex; flex-direction: column; overflow: hidden; scroll-margin-top: 96px; transition: transform .28s cubic-bezier(.2, .8, .2, 1), box-shadow .28s; }
.pg:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(47, 134, 246, .14); }
.pg:target { box-shadow: 0 0 0 2px var(--blue), 0 16px 36px rgba(47, 134, 246, .16); }
.pg__pic { position: relative; height: 170px; background: #f3f8ff; overflow: hidden; }
.pg__pic img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.pg:hover .pg__pic img { transform: scale(1.05); }
.pg__sum { position: absolute; left: 16px; bottom: 14px; background: #fff; color: var(--ink); font-weight: 800; font-size: 18px; border-radius: 999px; padding: 6px 14px; box-shadow: 0 6px 16px rgba(16, 24, 40, .12); }
.pg__body { padding: 20px 22px 22px; display: flex; flex-direction: column; flex: 1; }
.pg h2 { font-size: 21px; }
.pg__for { color: var(--ink-2); font-size: 14px; margin-top: 4px; }
.pg__h { font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: var(--muted); margin: 14px 0 6px; }
.pg ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.pg li { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; }
.pg li b { white-space: nowrap; font-weight: 600; }
.pg .pg__fee { margin-top: 8px; padding-top: 8px; border-top: 1px dashed var(--line); }
.pg__fee li { color: var(--muted); font-size: 13px; }
.pg__when { display: flex; align-items: center; gap: 8px; margin-top: 14px; font-size: 13px; color: var(--ink-2); background: #eefbf3; border-radius: 10px; padding: 8px 12px; }
.pg__when .ic { color: #16a34a; }
.pg__foot { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-top: auto; padding-top: 18px; }
.pg__foot small { display: block; font-size: 12px; color: var(--muted); }
.pg__foot b { font-size: 24px; font-weight: 800; }
@media (max-width: 980px) { .pp-steps ol { grid-template-columns: 1fr 1fr; } }
@media (max-width: 680px) { .pp-steps ol { grid-template-columns: 1fr; } .pg-grid { grid-template-columns: 1fr; } .pp-cta { padding: 20px 16px; } }

/* Не знаю, к кому идти */
.kd { padding: 24px 26px; }
.kd__step { display: flex; align-items: center; gap: 10px; font-size: 18px; font-weight: 700; margin-bottom: 14px; }
.kd__step i { font-style: normal; width: 30px; height: 30px; border-radius: 50%; background: var(--blue); color: #fff; font-size: 15px; display: grid; place-items: center; }
.kd__step--sub { font-size: 14px; font-weight: 600; color: var(--muted); margin: 22px 0 10px; text-transform: uppercase; letter-spacing: .05em; }
.kd-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); gap: 10px; }
.kd-other { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.kq { display: flex; align-items: center; gap: 12px; text-align: left; border: 1px solid var(--line); border-radius: 14px; background: #fff; padding: 12px 14px; cursor: pointer; font-size: 14px; line-height: 1.35;
  transition: transform .25s cubic-bezier(.2, .8, .2, 1), box-shadow .25s, border-color .25s, background .25s; }
.kq__ic { width: 42px; height: 42px; flex: none; border-radius: 12px; background: var(--blue-soft); color: var(--blue); display: grid; place-items: center; transition: background .25s, color .25s; }
.kq__ic .ic { width: 22px; height: 22px; }
.kq__t small { display: block; font-size: 12.5px; color: var(--muted); }
.kq:hover { transform: translateY(-3px); border-color: rgba(47, 134, 246, .35); box-shadow: 0 12px 26px rgba(47, 134, 246, .14); }
.kq:hover .kq__ic, .kq.is-on .kq__ic { background: var(--blue); color: #fff; }
.kq.is-on { border-color: var(--blue); background: var(--blue-soft); box-shadow: 0 0 0 1px var(--blue); }
.kq--link { background: #f7f9fb; }
.kq--link > .ic { margin-left: auto; color: var(--blue); }
.kd-ans { scroll-margin-top: 96px; }
.kd-ans__q { font-size: 15px; color: var(--ink-2); margin: -6px 0 16px 40px; }
.kd-ans__grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 22px; align-items: start; }
.kd-dir { border: 1px solid var(--line); border-radius: 14px; padding: 14px; }
.kd-dir + .kd-dir { margin-top: 12px; }
.kd-dir__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.kd-dir__head b { font-size: 18px; }
.kd-dir__head small { color: var(--muted); }
.kd-dir__head span { display: block; font-size: 13.5px; color: var(--ink-2); margin-top: 2px; }
.kd-dir__docs { display: flex; flex-direction: column; gap: 8px; margin-top: 12px; }
.kd-ans__side { background: #f7f9fb; border-radius: 14px; padding: 16px; display: flex; flex-direction: column; gap: 6px; }
.kd-list { list-style: none; margin: 0 0 8px; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.kd-list li { display: flex; justify-content: space-between; gap: 10px; background: #fff; border-radius: 10px; padding: 9px 12px; font-size: 13.5px; }
.kd-list li b { white-space: nowrap; }
.kd-list small { display: block; font-size: 12px; color: var(--muted); margin-top: 2px; }
.kd-prog { display: flex; align-items: center; gap: 12px; margin-top: 10px; background: #fff; border: 1px solid rgba(47, 134, 246, .3); border-radius: 12px; padding: 12px; }
.kd-prog > .ic:first-child { width: 36px; height: 36px; padding: 8px; border-radius: 10px; background: var(--blue-soft); color: var(--blue); }
.kd-prog small { display: block; font-size: 12px; color: var(--muted); }
.kd-prog > .ic:last-child { margin-left: auto; color: var(--blue); }
.kd-warn { margin-top: 0; }
@media (max-width: 1180px) { .kd-other { grid-template-columns: 1fr 1fr; } }
@media (max-width: 980px) { .kd-ans__grid { grid-template-columns: 1fr; } }
@media (max-width: 680px) { .kd { padding: 20px 14px; } .kd-other { grid-template-columns: 1fr; } .kd-ans__q { margin-left: 0; } }

/* Подготовка */
.pp-nav { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.pp-nav a { border: 1px solid var(--line); background: #fff; border-radius: 999px; padding: 8px 16px; font-size: 14px; color: var(--ink-2); transition: border-color .2s, background .2s, color .2s; }
.pp-nav a:hover { border-color: var(--blue); background: var(--blue-soft); color: var(--blue-d); }
.pp-sec { padding: 26px; scroll-margin-top: 96px; }
.pp-sec > h2 { margin-bottom: 18px; font-size: 26px; }
.pp-sec .section__head h2 { font-size: 26px; }
.pp-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.pp-card { border: 1px solid var(--line); border-radius: 14px; padding: 18px; transition: transform .28s cubic-bezier(.2, .8, .2, 1), box-shadow .28s, border-color .28s; }
.pp-card:hover { transform: translateY(-3px); border-color: rgba(47, 134, 246, .3); box-shadow: 0 12px 28px rgba(47, 134, 246, .12); }
.pp-card__ic { width: 44px; height: 44px; border-radius: 12px; background: var(--blue-soft); color: var(--blue); display: grid; place-items: center; margin-bottom: 12px; }
.pp-card__ic .ic { width: 22px; height: 22px; }
.pp-card h3 { font-size: 17px; margin-bottom: 8px; }
.pp-card ul { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 6px; font-size: 14px; color: var(--ink-2); }
.pp-card li::marker { color: var(--blue); }
.pp-rules { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.pp-rules > div { display: flex; flex-direction: column; gap: 4px; background: #f7f9fb; border-radius: 12px; padding: 14px 16px 14px 44px; position: relative; font-size: 13.5px; color: var(--ink-2); }
.pp-rules > div::before { content: "\2713"; position: absolute; left: 14px; top: 13px; width: 20px; height: 20px; border-radius: 50%; background: var(--blue); color: #fff; font-size: 12px; font-weight: 700; display: grid; place-items: center; }
.pp-rules b { color: var(--ink); font-size: 15px; }
.pp-two { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 10px; }
.pp-box { border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; font-size: 14px; color: var(--ink-2); }
.pp-box h3 { font-size: 16px; color: var(--ink); margin-bottom: 4px; }
.pp-search { width: 280px; }
.pp-exams { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.pp-exam { border: 1px solid var(--line); border-radius: 14px; padding: 16px; }
.pp-exam h3 { font-size: 17px; margin-bottom: 8px; }
.pp-exam__row { display: flex; flex-direction: column; gap: 2px; padding: 8px 0; border-top: 1px solid var(--line); font-size: 14px; }
.pp-exam__row span { color: var(--ink-2); font-size: 13.5px; }
.pp-exam__plain { margin-top: 6px; font-size: 13.5px; color: var(--ink-2); }
.pp-exam__plain summary { cursor: pointer; color: var(--blue); padding: 6px 0; }
.pp-hint { margin-top: 14px; font-size: 13px; color: var(--muted); }
@media (max-width: 980px) { .pp-cards, .pp-rules { grid-template-columns: 1fr 1fr; } .pp-exams { grid-template-columns: 1fr; } }
@media (max-width: 680px) { .pp-sec { padding: 20px 16px; } .pp-cards, .pp-rules, .pp-two { grid-template-columns: 1fr; } .pp-search { width: 100%; } }

/* Акции: живое фото сверху карточки, скидка поверх фото */
.promo { padding: 0 0 22px; gap: 10px; }
.promo::after { display: none; }
.promo > :not(.promo__pic) { margin-left: 26px; margin-right: 26px; }
.promo__pic { position: relative; height: 230px; overflow: hidden; margin-bottom: 6px; }
.promo__pic img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2, .8, .2, 1); }
.promo__pic::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(16, 24, 40, 0) 55%, rgba(16, 24, 40, .25) 100%); }
.promo__pic .promo__badge { position: absolute; left: 18px; bottom: 16px; z-index: 1; }
.promo { transition: transform .28s cubic-bezier(.2, .8, .2, 1), box-shadow .28s; }
.promo:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(16, 24, 40, .12); }
.promo:hover .promo__pic img { transform: scale(1.05); }
@media (max-width: 680px) { .promo__pic { height: 190px; } .promo > :not(.promo__pic) { margin-left: 18px; margin-right: 18px; } }
html.a11y-noimg .promo__pic img { display: none; }
html.a11y-noimg .promo__pic { height: auto; padding: 16px 0 0; }
html.a11y-noimg .promo__pic .promo__badge { position: static; margin-left: 26px; }
/* Подготовка: карточки исследований колонками без пустот */
.pp-exams { display: block; columns: 2; column-gap: 12px; }
.pp-exam { break-inside: avoid; margin-bottom: 12px; }
@media (max-width: 980px) { .pp-exams { columns: 1; } }

/* ===== Приезжие специалисты (главная, под «С 2015 года») ===== */
.visit { padding: 26px; border: 1.5px solid rgba(47, 134, 246, .35); background: linear-gradient(135deg, #eaf3fe 0%, #f6faff 55%, #fff 100%); }
.visit__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; }
.visit h2 { font-size: 34px; font-weight: 800; letter-spacing: -.03em; }
.visit__head p { margin-top: 6px; font-size: 16px; color: var(--ink-2); }
.visit__call { display: inline-flex; align-items: center; gap: 10px; background: #fff; border: 1.5px solid var(--blue); border-radius: 12px; padding: 9px 16px; font-weight: 700; color: var(--ink); transition: background .2s; }
.visit__call:hover { background: var(--blue-soft); }
.visit__call .ic { color: var(--blue); }
.visit__call small { display: block; font-size: 11.5px; font-weight: 500; color: var(--muted); }
.visit__list { display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--gap); }
.vcard { display: grid; grid-template-columns: 190px 1fr; gap: 20px; background: #fff; border-radius: 14px; padding: 16px; box-shadow: 0 4px 18px rgba(47, 134, 246, .08);
  transition: transform .28s cubic-bezier(.2, .8, .2, 1), box-shadow .28s; }
.vcard:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(47, 134, 246, .16); }
.vcard__ph { position: relative; border-radius: 12px; overflow: hidden; background: #eef3f8; aspect-ratio: 4 / 5; align-self: start; display: grid; place-items: center; }
.vcard__ph img { width: 100%; height: 100%; object-fit: cover; object-position: center top; transition: transform .5s; }
.vcard:hover .vcard__ph img { transform: scale(1.04); }
.vcard__ph > span:not(.vcard__stage) { font-size: 36px; font-weight: 700; color: var(--blue); }
.vcard__body { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; min-width: 0; }
.vcard__date { display: flex; align-items: center; gap: 8px; color: var(--coral-d); font-size: 15px; }
.vcard__date .ic { width: 20px; height: 20px; }
.vcard__place { display: flex; align-items: flex-start; gap: 8px; font-size: 13px; color: var(--muted); }
.vcard__place .ic { width: 15px; height: 15px; margin-top: 2px; }
.vcard__from { display: inline-flex; align-items: center; gap: 0; font-size: 13px; background: var(--blue-soft); color: var(--blue-d); border-radius: 999px; padding: 5px 12px; width: fit-content; max-width: 100%; }
.vcard__from span { font-weight: 600; }
.vcard__from i { font-style: normal; color: var(--muted); }
.vcard__from i::before { content: '·'; margin: 0 7px; color: var(--muted); }
.vcard__spec { margin-top: 6px; font-size: 12.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--blue);
  background: var(--blue-soft); border-radius: 8px; padding: 5px 10px; width: fit-content; max-width: 100%; }
.vcard h3 { font-size: 20px; line-height: 1.2; }
.vcard__meta { font-size: 13.5px; color: var(--ink-2); }
/* дата и адрес — одной строкой, как на макете */
.vcard__when { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.vcard__sep { width: 1px; height: 18px; background: var(--line); flex: none; }
/* значок стажа поверх фото */
.vcard__stage { position: absolute; left: 12px; bottom: 12px; display: flex; flex-direction: column; line-height: 1.15;
  background: var(--blue); color: #fff; font-size: 13px; border-radius: 14px; padding: 9px 14px; box-shadow: 0 10px 24px rgba(16, 24, 40, .28); }
.vcard__stage i { font-style: normal; font-size: 11px; color: #fff; opacity: .85; }
.vcard__stage b { font-size: 14px; font-weight: 800; color: #fff; }
/* фамилия и бейдж учёной степени */
.vcard__name { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.vcard__degree { background: #fff1ee; color: var(--coral-d); border: 1px solid #ffd9d1; border-radius: 999px;
  padding: 6px 12px; font-size: 12.5px; font-weight: 700; line-height: 1.2; }
/* плитки тем приёма — со значками */
.vcard__tiles { display: flex; flex-wrap: wrap; gap: 8px; }
.vtile { display: inline-flex; align-items: center; gap: 8px; background: var(--blue-soft); border-radius: 12px; padding: 8px 12px; font-size: 12.5px; color: var(--ink-2); }
.vtile .ic { width: 18px; height: 18px; color: var(--blue); flex: none; }
.vtile i { font-style: normal; }
.vcard__goal { margin-top: 4px; font-size: 14px; font-weight: 700; color: #fff; background: var(--blue); border-radius: 10px; padding: 8px 12px; }
.vcard__tags { display: flex; flex-wrap: wrap; gap: 6px; }
.vcard__tags span { font-size: 12.5px; background: var(--blue-soft); color: var(--blue-d); border-radius: 999px; padding: 4px 10px; }
.vcard__bring { display: flex; align-items: flex-start; gap: 8px; font-size: 13px; color: var(--ink-2); background: #fff4f1; border-radius: 10px; padding: 8px 10px; }
.vcard__bring .ic { color: var(--coral); width: 16px; height: 16px; margin-top: 1px; }
.vcard__bring b { color: var(--coral-d); }
.vcard__btn { margin-top: auto; }
.vcard__body > .vcard__btn { margin-top: 10px; }
/* раскладка по числу врачей: один — на всю ширину, двое — пополам, трое — одна широкая и две узкие */
.visit__list--n1 { grid-template-columns: 1fr; }
.visit__list--n1 .vcard, .visit__list--n3.visit__list--wide-first .vcard:first-child, .visit__list--n3.visit__list--wide-last .vcard:last-child { grid-template-columns: 260px 1fr; gap: 28px; }
.visit__list--n1 .vcard h3, .visit__list--n3.visit__list--wide-first .vcard:first-child h3, .visit__list--n3.visit__list--wide-last .vcard:last-child h3 { font-size: 24px; }
.visit__list--n3.visit__list--wide-first .vcard:first-child, .visit__list--n3.visit__list--wide-last .vcard:last-child { grid-column: 1 / -1; }
@media (max-width: 1180px) { .visit__list, .visit__list--n1 { grid-template-columns: 1fr; } }
@media (max-width: 680px) {
  .visit__list--n1 .vcard, .visit__list--n3 .vcard:first-child, .visit__list--n3 .vcard:last-child { grid-template-columns: 110px 1fr; gap: 14px; }
  .visit__list--n1 .vcard h3, .visit__list--n3 .vcard h3 { font-size: 17px; }
  .visit { padding: 20px 14px; }
  .visit h2 { font-size: 26px; }
  .vcard { grid-template-columns: 110px 1fr; gap: 14px; padding: 12px; }
  .vcard h3 { font-size: 17px; }
  .vcard__btn { width: 100%; justify-content: center; grid-column: 1 / -1; }
}

/* Баннер акции: обе кнопки в одну строку на широком экране */
@media (min-width: 1181px) { .promo-ban__text { max-width: 660px; } }

/* ===== Блоки из редактора сайта: текст, текст и фото, призыв, галерея, цифры ===== */
.blk--soft { background: linear-gradient(135deg, #eaf3fe 0%, #f6faff 60%, #fff 100%); }
.blk-text { padding: 28px; }
.blk-text h2, .blk-ti h2, .blk-gal h2, .blk-stats h2 { margin-bottom: 14px; }
.blk-text__body { font-size: 16px; line-height: 1.6; color: var(--ink-2); display: flex; flex-direction: column; gap: 10px; max-width: 900px; }
.blk-text__body a { color: var(--blue); }
.blk-btns { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 18px; }
.blk-ti { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; align-items: center; padding: 28px; overflow: hidden; }
.blk-ti--left .blk-ti__img { order: -1; }
.blk-ti__img img { width: 100%; border-radius: 14px; aspect-ratio: 4 / 3; object-fit: cover; }
.blk-cta { display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; padding: 30px 34px; border-radius: var(--radius); background: linear-gradient(120deg, var(--coral) 0%, #ff8a6f 100%); color: #fff; box-shadow: var(--shadow); }
.blk-cta h2 { font-size: 30px; color: #fff; }
.blk-cta p { margin-top: 6px; font-size: 16px; opacity: .95; }
.blk-cta .blk-btns { margin-top: 0; align-items: center; }
.blk-cta .btn--white { color: var(--coral-d); }
.blk-cta__phone { display: inline-flex; align-items: center; gap: 8px; color: #fff; font-weight: 700; font-size: 20px; }
.blk-gal { padding: 28px; }
.blk-gal__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.blk-gal figure { margin: 0; }
.blk-gal img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 12px; transition: transform .4s; }
.blk-gal figure:hover img { transform: scale(1.03); }
.blk-gal figcaption { font-size: 13px; color: var(--muted); margin-top: 6px; }
.blk-stats { padding: 28px; }
.blk-stats__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; }
.blk-stats__grid > div { background: var(--blue-soft); border-radius: 14px; padding: 18px; display: flex; flex-direction: column; gap: 4px; }
.blk-stats b { font-size: 34px; font-weight: 800; color: var(--blue-d); letter-spacing: -.02em; }
.blk-stats span { color: var(--ink-2); font-size: 14px; }
@media (max-width: 860px) { .blk-ti { grid-template-columns: 1fr; } .blk-ti--left .blk-ti__img { order: 0; } }
@media (max-width: 680px) { .blk-text, .blk-ti, .blk-gal, .blk-stats { padding: 20px 16px; } .blk-cta { padding: 22px 18px; } .blk-cta h2 { font-size: 24px; } }

/* окно записи: ссылка на страницу записи пациента */
.bk-link { display: block; margin-top: 10px; font-size: 14px; }
.bk-link a { font-weight: 700; }

/* Подпись автора в подвале: имя — как от руки */
.foot__dev a { display: inline; color: var(--muted); font-weight: 400; transition: color .2s; }
.foot__sign { font-family: inherit; font-size: 13px; font-weight: 400; color: inherit; }
.foot__dev a:hover { color: var(--blue); }

/* Подсказки поиска по сайту */
.ssr { position: relative; }
.ssr__drop { position: absolute; top: calc(100% + 8px); right: 0; width: min(420px, 92vw); max-height: 60vh; overflow: auto; z-index: 60;
  background: #fff; border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 18px 44px rgba(16, 24, 40, .16); padding: 6px; }
.ssr__i { display: flex; flex-direction: column; gap: 2px; padding: 9px 12px; border-radius: 10px; color: var(--ink); }
.ssr__i small { font-size: 12px; color: var(--muted); }
.ssr__i b { color: var(--blue); }
.ssr__i:hover, .ssr__i.is-on { background: var(--blue-soft); }
.ssr__none { padding: 12px; font-size: 13px; color: var(--muted); }
.ssr__none a { color: var(--blue); font-weight: 600; white-space: nowrap; }
@media (max-width: 680px) { .ssr__drop { position: fixed; left: 8px; right: 8px; width: auto; top: 96px; } }

/* После отправки заявки: «с вами свяжется администратор» — заметная строка с мягким миганием */
/* проверка «вы не робот» — пример на сложение/умножение */
.bk__cap-row { display: flex; align-items: center; gap: 8px; }
.bk__cap-q { font-size: 18px; font-weight: 800; background: var(--blue-soft); color: var(--blue-d); border-radius: 10px; padding: 9px 14px; letter-spacing: .04em; }
.bk__cap-eq { font-size: 18px; font-weight: 800; color: var(--muted); }
.bk__cap-row input { width: 86px; text-align: center; font-size: 17px; font-weight: 700; }
.bk__cap-new { width: 38px; height: 38px; border-radius: 10px; border: 1px solid var(--line); background: #fff; color: var(--muted); font-size: 17px; cursor: pointer; flex: none; }
.bk__cap-new:hover { border-color: var(--blue); color: var(--blue); }
.bk__callback { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 0 auto 10px; max-width: 420px;
  background: #fff4f1; border: 1.5px solid var(--coral); border-radius: 12px; padding: 11px 16px;
  font-size: 15px; font-weight: 700; color: var(--coral-d); animation: bkGlow 1.9s ease-in-out infinite; }
.bk__dot { width: 10px; height: 10px; border-radius: 50%; background: var(--coral); flex: none; animation: bkDot 1.9s ease-in-out infinite; }
@keyframes bkGlow { 0%, 100% { box-shadow: 0 0 0 0 rgba(255, 106, 85, .45); } 50% { box-shadow: 0 0 0 10px rgba(255, 106, 85, 0); } }
@keyframes bkDot { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: .45; transform: scale(.75); } }
@media (prefers-reduced-motion: reduce) { .bk__callback, .bk__dot { animation: none; } }

/* ===== Макеты заказчика 16.10.2026: белая подложка первого экрана и «Приезжие специалисты» ===== */

.hero { min-height: 540px; justify-content: stretch; }
.hero::before { background: linear-gradient(90deg, rgba(231, 239, 246, .35) 0%, rgba(231, 239, 246, 0) 55%); }
.hero__body {
  display: flex; flex-direction: column; width: min(650px, 53%); max-width: none;
  margin: 30px 0 24px 26px; padding: 32px 34px 24px; border-radius: 26px;
  background: linear-gradient(125deg, rgba(255, 255, 255, .82), rgba(246, 250, 255, .66));
  box-shadow: 0 16px 54px rgba(18, 85, 138, .12);
  -webkit-backdrop-filter: blur(14px) saturate(1.2); backdrop-filter: blur(14px) saturate(1.2);
}
.hero__top { gap: 14px; margin-bottom: 0; flex-wrap: nowrap; }
.hero__city { gap: 7px; padding: 8px 12px; border-radius: 12px; background: #e6f2ff; color: #248aff; font-size: 15px; font-weight: 500; }
.hero__city .ic { width: 17px; height: 17px; }
.hero__tag { font-size: 15px; color: #4d5e75; }
.hero h1 { margin-top: 28px; font-size: clamp(40px, 3.9vw, 54px); line-height: 1.03; letter-spacing: -.045em; font-weight: 800; color: #102c51; }
.hero h1 b { color: #2a8afb; }
.hero__sub { margin-top: 10px; font-size: 20px; font-weight: 400; letter-spacing: -.01em; color: #516178; }

/* --- Первый экран: полупрозрачная белая панель, значки в плитках --- */
.hero__actions { gap: 12px; margin-top: 24px; }
.hero__tile { width: 46px; height: 46px; border-radius: 14px; background: #e8f3ff; color: #2a8afb; display: flex; align-items: center; justify-content: center; flex: none; }
.hero__tile .ic { width: 25px; height: 25px; stroke-width: 1.8; }
.hero__tile--mint { background: #e1f9ed; color: #12b76a; }

.hero__bar { display: grid; grid-template-columns: 1.15fr 1fr; margin-top: 18px; padding: 12px 8px; border: 1px solid rgba(216, 232, 248, .9); border-radius: 22px; background: rgba(255, 255, 255, .6); box-shadow: none; overflow: visible; }
.hero__bar > a:only-child, .hero__today[hidden] + .hero__help { grid-column: 1 / -1; }
.hero__today, .hero__help { position: relative; gap: 11px; padding: 4px 10px; border-radius: 14px; font-size: 15px; line-height: 1.25; color: #0b2344; }
.hero__today:hover, .hero__help:hover { background: #f1f7ff; }
.hero__help { border-left: 0; }
.hero__today:not([hidden]) + .hero__help::before { content: ""; position: absolute; left: -4px; top: 50%; width: 1px; height: 44px; margin-top: -22px; background: #bcd5f4; }
.hero__today span { white-space: nowrap; }
.hero__today b { display: block; font-size: 21px; font-weight: 800; color: #0b2344; }
.hero__today-dot { width: 14px; height: 14px; background: #07c87c; box-shadow: 0 0 0 5px #e3fbf1; animation: none; }
.hero__today--off .hero__today-dot { box-shadow: 0 0 0 5px #fff4d6; }
.hero__bar-chev { width: 15px; height: 15px; color: #6b7a90; }
.hero__help span { gap: 1px; }
.hero__help b { font-weight: 400; font-size: 15px; }
.hero__help i { font-size: 15px; font-weight: 600; color: #0b2344; }


@media (max-width: 1180px) {
  .hero__body { width: min(620px, 62%); padding: 28px 26px 22px; }
}
@media (max-width: 980px) {
  .hero::before { background: linear-gradient(90deg, rgba(231, 239, 246, .55) 0%, rgba(231, 239, 246, 0) 70%); }
  .hero__body { width: auto; max-width: 620px; margin-right: 26px; }
}
@media (max-width: 680px) {
  .hero { min-height: 0; padding-top: 0; background-position: 72% top; background-size: auto 250px; background-repeat: no-repeat; background-color: #e7eff6; }
  .hero::before { display: none; }
  .hero__body { width: auto; margin: 205px 10px 10px; padding: 22px 18px 20px; border-radius: 22px; background: rgba(255, 255, 255, .985); }
  .hero__top { flex-wrap: wrap; gap: 9px; }
  .hero__city { font-size: 13px; padding: 7px 9px; }
  .hero__tag { font-size: 13px; }
  .hero h1 { margin-top: 20px; font-size: clamp(31px, 8.4vw, 40px); letter-spacing: -.04em; }
  .hero__sub { font-size: 17px; }
  .hero__bar { grid-template-columns: 1fr; gap: 6px; border-radius: 18px; padding: 8px; }
  .hero__today:not([hidden]) + .hero__help { border-top: 1px solid #d8e8f8; padding-top: 10px; border-radius: 0; }
  .hero__today:not([hidden]) + .hero__help::before { display: none; }
  .hero__tile { width: 42px; height: 42px; border-radius: 12px; }
  .hero__tile .ic { width: 22px; height: 22px; }
  .hero__today b { font-size: 18px; }
}

/* --- Приезжие специалисты --- */
.visit { padding: 18px 22px 22px; border: 1px solid #8bbffd; border-radius: 22px; background: radial-gradient(ellipse at 54% 9%, #f9fdff 0%, #eaf5ff 57%, #edf8ff 100%); box-shadow: 0 12px 35px rgba(46, 105, 173, .045); }
.visit__head { align-items: flex-start; gap: 24px; margin-bottom: 16px; padding: 2px 2px 0; }
.visit__headline { position: relative; padding-left: 28px; }
.visit__headline::before { content: ""; position: absolute; left: 0; top: 7px; width: 7px; height: 42px; border-radius: 8px; background: #087af9; }
.visit h2 { font-size: clamp(28px, 2.9vw, 42px); font-weight: 850; letter-spacing: -.04em; line-height: 1.12; color: #0b1740; }
.visit h2 span { color: #0c73f8; }
.visit__head p { margin-top: 4px; font-size: 18px; color: #233f70; }
.visit__call { gap: 14px; min-height: 68px; padding: 9px 19px; border: 1px solid #268afa; border-radius: 15px; background: #fff; box-shadow: 0 5px 18px rgba(40, 117, 197, .05); font-size: 20px; font-weight: 750; letter-spacing: -.01em; white-space: nowrap; transition: background .2s, transform .2s; }
.visit__call:hover { background: #f2f8ff; transform: translateY(-1px); }
.visit__call .ic { width: 23px; height: 23px; color: #087af9; }
.visit__call small { font-size: 14px; font-weight: 400; color: #304c75; margin-bottom: 1px; }

.visit__list { gap: 13px; }
.vcard { position: relative; isolation: isolate; display: flex; gap: 18px; padding: 10px 12px; border-radius: 20px; box-shadow: 0 5px 20px rgba(67, 124, 176, .035); overflow: hidden; min-height: 430px; }
.vcard:hover { transform: none; box-shadow: 0 12px 30px rgba(47, 134, 246, .12); }
.vcard__ph { flex: 0 0 205px; aspect-ratio: auto; align-self: stretch; border-radius: 14px; background: #e8f6ff; }
.vcard__ph img { position: absolute; inset: 0; object-position: center top; }
.vcard__body { position: relative; z-index: 2; flex: 1; gap: 0; padding: 6px 0 4px; }
.vcard__when { gap: 4px 16px; }
.vcard__sep { display: none; }
.vcard__date { gap: 9px; color: #f21219; font-size: 18px; font-weight: 780; line-height: 1.27; }
.vcard__date b { font-weight: inherit; }
.vcard__date .ic { width: 22px; height: 22px; stroke-width: 2.2; }
.vcard__place { width: 100%; align-items: center; gap: 6px; margin-top: 4px; font-size: 13px; color: #2e4d7d; }
.vcard__place .ic { width: 17px; height: 17px; margin: 0; }
.vcard__from { display: flex; flex-wrap: wrap; align-items: center; gap: 0; margin-top: 10px; padding: 5px 9px; border-radius: 9px; background: #e3f2ff; color: #0052a4; font-size: 12.5px; font-weight: 680; line-height: 1.35; }
.vcard__from .ic { width: 17px; height: 17px; margin-right: 8px; color: #087afb; }
.vcard__from span { font-weight: inherit; }
.vcard__from i { color: inherit; }
.vcard__from i::before { content: '\00b7'; margin: 0 6px; color: inherit; }
.vcard__spec { margin: 12px 0 5px; padding: 0; border-radius: 0; font-size: 14px; font-weight: 800; letter-spacing: 0; line-height: 1.1; color: #0679fe; text-shadow: 0 4px 9px rgba(8, 122, 250, .18); background: linear-gradient(#eff8ff, #eff8ff) left 60% / 100% 74% no-repeat; }
.vcard__name { gap: 6px 12px; align-items: center; }
.vcard h3 { font-size: 23px; font-weight: 830; letter-spacing: -.03em; line-height: 1.1; color: #0b1740; }
.vcard__degree { padding: 4px 10px; font-size: 12px; }
.vcard__meta { margin: 6px 0 10px; font-size: 14.5px; line-height: 1.28; color: #375582; }
.vcard__goal { display: flex; align-items: center; gap: 10px; width: fit-content; max-width: 100%; margin: 0; padding: 9px 12px; border-radius: 10px; background: linear-gradient(112deg, #077cfb 0%, #006ff5 100%); box-shadow: 0 4px 8px rgba(0, 94, 223, .065); font-size: 14.5px; font-weight: 710; line-height: 1.32; }
.vcard__goal .ic { width: 24px; height: 24px; flex: none; color: #fff; stroke-width: 1.8; }
.vcard__tiles { gap: 6px 7px; margin-top: 10px; }
.vtile { gap: 5px; min-height: 29px; padding: 4px 9px; border-radius: 9px; background: #eaf5ff; color: #065db5; font-size: 12px; font-weight: 540; line-height: 1.15; }
.vtile .ic { width: 18px; height: 18px; color: #0879f9; stroke-width: 1.75; }
.vcard__bring { align-items: center; gap: 10px; margin-top: 13px; padding: 8px 12px; border-radius: 11px; background: #fff0ee; color: #294265; font-size: 13.5px; line-height: 1.3; }
.vcard__bring .ic { width: 19px; height: 19px; margin: 0; color: #fb2728; }
.vcard__bring b { color: #f02b22; }
.vcard__btn, .vcard__body > .vcard__btn { margin-top: auto; }
.vcard__body > :nth-last-child(2) { margin-bottom: 18px; }

.vcard__stage { left: 4%; bottom: 5%; min-height: 17%; flex-direction: row; align-items: center; gap: 10px; min-width: 82%; padding: 10px 14px 10px 11px; border-radius: 17px; background: linear-gradient(110deg, #0373f7 0%, #4097ff 67%, #7ebaff 100%); box-shadow: 0 9px 30px rgba(0, 94, 225, .22); font-size: 15px; line-height: 1.15; }
.vcard__stage .ic { width: 40px; height: 40px; stroke-width: 1.6; color: #fff; }
.vcard__stage > span { display: flex; flex-direction: column; gap: 2px; }
.vcard__stage i { font-size: 15px; opacity: 1; }
.vcard__stage b { font-size: 15px; font-weight: 750; white-space: nowrap; }

/* крупная карточка: фото больше, дата и адрес в строку, кнопка справа внизу */
.vcard--lead { min-height: 400px; gap: 25px; padding: 10px 13px; }
.vcard--lead .vcard__ph { flex-basis: 377px; min-height: 377px; border-radius: 16px; }
.vcard--lead .vcard__body { padding: 8px 12px 8px 0; }
.vcard--lead .vcard__when { flex-wrap: nowrap; }
.vcard--lead .vcard__date { font-size: 19px; white-space: nowrap; }
.vcard--lead .vcard__place { width: auto; margin-top: 0; padding-left: 16px; border-left: 1px solid #d3e1f2; font-size: 14px; }
.vcard--lead .vcard__from { font-size: 14px; padding: 5px 11px; }
.vcard--lead .vcard__spec { margin-top: 14px; font-size: 15px; }
.vcard--lead h3, .visit .visit__list .vcard.vcard--lead h3 { font-size: 34px; }
.vcard--lead .vcard__meta { font-size: 19px; margin: 4px 0 13px; }
.vcard--lead .vcard__goal { font-size: 18px; padding: 11px 18px; max-width: 620px; }
.vcard--lead .vcard__goal .ic { width: 26px; height: 26px; }
.vcard--lead .vcard__tiles { gap: 10px; max-width: 760px; margin-top: 12px; }
.vcard--lead .vtile { padding: 7px 12px; font-size: 13px; }
.vcard--lead .vtile .ic { width: 22px; height: 22px; }
.vcard--lead .vcard__bring { margin-top: 16px; font-size: 14px; }
.vcard--lead .vcard__body > .vcard__btn { position: absolute; right: 0; bottom: 0; }
.vcard--lead .vcard__body > :nth-last-child(2) { margin-bottom: 0; max-width: calc(100% - 230px); }
.vcard--lead .vcard__stage { left: 3%; bottom: 2.5%; min-width: 52%; min-height: 19%; }
.vcard--lead.is-tall .vcard__ph { flex-basis: 250px; min-height: 0; }
.vcard--lead.is-tall .vcard__stage { left: 4%; bottom: 5%; min-width: 82%; min-height: 17%; }
.vcard__art { position: absolute; right: 0; top: 0; bottom: 0; width: 348px; z-index: 0; pointer-events: none; opacity: .94;
  background: linear-gradient(90deg, #fff 0%, rgba(255, 255, 255, .17) 28%, rgba(255, 255, 255, 0) 80%) center right / 100% 100% no-repeat,
              url("../img/visiting/decor-neuro.webp") right top / auto 82% no-repeat; }
.visit__list--n1 .vcard, .visit__list--n3.visit__list--wide-first .vcard:first-child, .visit__list--n3.visit__list--wide-last .vcard:last-child { grid-template-columns: none; gap: 25px; }

@media (max-width: 1180px) {
  .visit__list, .visit__list--n1 { grid-template-columns: 1fr; }
  .vcard { min-height: 370px; }
  .vcard__ph { flex-basis: 29%; }
  .vcard--lead .vcard__ph { flex-basis: 32%; min-height: 0; }
  .vcard--lead h3, .visit .visit__list .vcard.vcard--lead h3 { font-size: 30px; }
  .vcard--lead .vcard__when { flex-wrap: wrap; }
  .vcard--lead .vcard__place { padding-left: 0; border-left: 0; width: 100%; }
  .vcard--lead .vcard__body > .vcard__btn { position: static; align-self: flex-start; }
  .vcard--lead .vcard__body > :nth-last-child(2) { margin-bottom: 18px; max-width: none; }
  .vcard__art { opacity: .4; }
}
@media (max-width: 680px) {
  .visit { padding: 14px 12px; border-radius: 16px; }
  .visit__head { display: block; margin-bottom: 14px; }
  .visit__headline { padding-left: 17px; }
  .visit__headline::before { width: 5px; height: 36px; top: 3px; }
  .visit h2 { font-size: clamp(27px, 7.4vw, 36px); }
  .visit__head p { font-size: 14px; line-height: 1.45; margin-top: 6px; }
  .visit__call { display: inline-flex; min-height: 52px; margin: 14px 0 0 17px; padding: 8px 12px; border-radius: 11px; font-size: 17px; }
  .visit__call small { font-size: 12px; }
  .vcard, .vcard--lead, .visit__list--n1 .vcard, .visit__list--n3 .vcard:first-child, .visit__list--n3 .vcard:last-child { flex-direction: column; gap: 0; padding: 10px; border-radius: 17px; min-height: 0; }
  .vcard__ph, .vcard--lead .vcard__ph { flex-basis: auto; width: 100%; height: 310px; min-height: 310px; border-radius: 12px; }
  .vcard__ph img { object-position: center 22%; }
  .vcard__body, .vcard--lead .vcard__body { padding: 15px 4px 4px; }
  .vcard__date, .vcard--lead .vcard__date { font-size: 17px; white-space: normal; }
  .vcard__place, .vcard--lead .vcard__place { font-size: 12px; }
  .vcard__from, .vcard--lead .vcard__from { font-size: 12px; }
  .vcard h3, .vcard--lead h3, .visit .visit__list .vcard.vcard--lead h3 { font-size: clamp(22px, 6vw, 27px); }
  .vcard__meta, .vcard--lead .vcard__meta { font-size: 14px; line-height: 1.4; margin: 8px 0 11px; }
  .vcard__goal, .vcard--lead .vcard__goal { width: 100%; font-size: 14px; padding: 10px; }
  .vtile, .vcard--lead .vtile { font-size: 12px; }
  .vcard__btn, .vcard__body > .vcard__btn, .vcard--lead .vcard__body > .vcard__btn { position: static; align-self: stretch; width: 100%; justify-content: center; margin-top: 16px; }
  .vcard__body > :nth-last-child(2), .vcard--lead .vcard__body > :nth-last-child(2) { margin-bottom: 0; }
  .vcard__stage, .vcard--lead .vcard__stage { bottom: 10px; left: 10px; min-height: 0; font-size: 14px; }
  .vcard__art { display: none; }
}

/* дата скорого приёма приезжего врача — мягко мигает, напоминание */
.vcard__date--soon { position: relative; padding: 3px 10px 3px 8px; margin-left: -8px; border-radius: 10px; animation: visitSoon 1.8s ease-in-out infinite; }
.vcard__date--soon .ic { animation: visitBlink 1.8s ease-in-out infinite; }
.vcard__date--soon::after { content: "скоро приём"; margin-left: 4px; padding: 2px 8px; border-radius: 999px; background: #f21219; color: #fff; font-size: 11px; font-weight: 700; letter-spacing: .02em; text-transform: uppercase; white-space: nowrap; }
@keyframes visitSoon { 0%, 100% { background: rgba(242, 18, 25, 0); box-shadow: 0 0 0 0 rgba(242, 18, 25, 0); } 50% { background: rgba(242, 18, 25, .08); box-shadow: 0 0 0 4px rgba(242, 18, 25, .06); } }
@keyframes visitBlink { 0%, 100% { opacity: 1; } 50% { opacity: .35; } }
@media (prefers-reduced-motion: reduce) { .vcard__date--soon, .vcard__date--soon .ic { animation: none; } }
@media (max-width: 680px) { .vcard__date--soon { flex-wrap: wrap; } }

/* 17.10.2026: плашка «Стаж» у приезжих врачей — синяя подложка на 50% прозрачная, как на макете */
.vcard__stage { background: rgba(3, 115, 247, .5); -webkit-backdrop-filter: blur(8px) saturate(1.3); backdrop-filter: blur(8px) saturate(1.3); box-shadow: 0 8px 24px rgba(0, 60, 150, .18); border: 1px solid rgba(255, 255, 255, .28); }

/* подпись разработчика в подвале: имя — как от руки, синим */
.foot__sign { font-family: 'Marck Script', cursive; font-size: 17px; line-height: 1; color: var(--blue); }
