/*
Theme Name: Stom24
Description: Тема стоматологической клиники: имплантация, калькулятор-конструктор, каталог материалов и услуг.
Version: 1.14.2
Author: Ingruppa
Requires PHP: 7.4
Text Domain: stom24
*/

/* =====================================================================
 * Токены
 * Тёмная база с зелёно-синим уходом + светлые секции на костяном.
 * Чередование тёмного и светлого — основа ритма страницы.
 * ===================================================================== */

:root{
  --ink-900:#0C1315;
  --ink-800:#121B1E;
  --ink-700:#1A2427;
  --ink-600:#243033;

  --bone:#EDE8DF;
  --bone-2:#E1DACE;
  --bone-3:#CFC6B7;

  --brass:#A9762C;
  --brass-lite:#D6A863;
  --brass-hi:#E3BE7C;

  --clay:#8C4A32;

  /* активная схема — тёмная; светлые секции переопределяют локально */
  --bg:var(--ink-900);
  --surface:var(--ink-800);
  --surface-2:var(--ink-700);
  --fg:#E4E8E6;
  --fg-muted:rgba(228,232,230,.62);
  --fg-faint:rgba(228,232,230,.4);
  --rule:rgba(228,232,230,.14);
  --accent:var(--brass-hi);

  --r:4px;
  --wrap:1200px;
  --pad:24px;
}

@media(max-width:760px){
  :root{--pad:18px}
}
@media(max-width:400px){
  :root{--pad:14px}
}

/* Светлая секция: переопределяем те же переменные, вёрстка не меняется */
.inv{
  --bg:var(--bone);
  --surface:#F5F2EC;
  --surface-2:var(--bone-2);
  --fg:#141C1B;
  --fg-muted:rgba(20,28,27,.68);
  --fg-faint:rgba(20,28,27,.45);
  --rule:rgba(20,28,27,.14);
  --accent:var(--brass);
  background:var(--bg);
  color:var(--fg);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
/* clip, а не hidden: hidden ломает position:sticky у шапки */
html,body{overflow-x:clip}
body{
  margin:0;
  background:var(--ink-900);
  color:var(--fg);
  font-family:'Commissioner',system-ui,-apple-system,sans-serif;
  font-size:17px;
  line-height:1.6;
  font-variant-numeric:tabular-nums;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
.wrap{max-width:var(--wrap);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
.skip-link{position:absolute;left:-9999px}
.skip-link:focus{left:16px;top:16px;z-index:999;background:var(--brass-hi);color:#1E1405;padding:10px 16px}

/* =====================================================================
 * Типографика
 * Заголовки — шрифт с засечками. Он и отличает сайт врача от лендинга
 * на конструкторе: серьёзность вместо технологичности.
 * ===================================================================== */

h1,h2,h3,h4{
  font-family:'Source Serif 4','Georgia',serif;
  font-weight:600;
  letter-spacing:-.015em;
  line-height:1.12;
  margin:0 0 .5em;
  color:var(--fg);
}
h1{font-size:clamp(34px,5vw,60px);line-height:1.04;letter-spacing:-.025em}
h2{font-size:clamp(26px,3.4vw,40px)}
h3{font-size:clamp(19px,2.1vw,23px);line-height:1.25}

.accent{color:var(--accent)}

/* Надзаголовок: капитель на серифе вместо моноширинного вразрядку */
.eyebrow{
  font-family:'Source Serif 4',serif;
  font-size:14px;font-style:italic;font-weight:400;
  color:var(--accent);
  margin:0 0 14px;
  letter-spacing:0;
}
.lede{font-size:19px;line-height:1.55;color:var(--fg-muted);max-width:54ch;margin:0 0 26px}

.prose{font-size:17.5px}
.prose > p,
.prose > ul,
.prose > ol,
.prose > h2,
.prose > h3,
.prose > blockquote{max-width:68ch}
.prose p{margin:0 0 1.1em;color:var(--fg-muted)}
.prose h2{margin:1.8em 0 .5em}
.prose h3{margin:1.5em 0 .4em}
.prose ul{padding-left:22px;margin:0 0 1.2em}
.prose li{margin-bottom:9px;color:var(--fg-muted)}
/* Блоки шорткодов ширину не ограничивают */
.prose .doctors,
.prose .reviews,
.prose .price-list,
.prose .cmp-scroll,
.prose .doctor-lead,
.prose .map,
.prose .pic,
.prose .slider,
.prose .lead,
.prose .contacts-top,
.prose .contacts-cols{max-width:none}
.prose strong{color:var(--fg);font-weight:600}
.prose a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:3px}

/* =====================================================================
 * Шапка
 * ===================================================================== */

.site-header{position:sticky;top:0;z-index:50;background:rgba(12,19,21,.9);
  backdrop-filter:blur(12px);border-bottom:1px solid var(--rule)}
.hd{display:flex;align-items:center;gap:26px;height:72px}
.logo{font-family:'Source Serif 4',serif;font-weight:600;font-size:21px;letter-spacing:-.02em;
  text-decoration:none;flex:none;color:var(--fg)}
.logo em{font-style:italic;color:var(--brass-hi)}
.nav{margin-left:auto}
.nav ul{display:flex;gap:24px;list-style:none;margin:0;padding:0}
.nav a{color:var(--fg-muted);text-decoration:none;font-size:15px;transition:color .15s}
.nav a:hover,.nav .current-menu-item>a{color:var(--fg)}
.hd-phone{font-size:16px;font-weight:600;color:var(--fg);text-decoration:none;white-space:nowrap}
.burger{display:none;width:42px;height:38px;border:1px solid var(--rule);background:transparent;
  color:var(--fg);cursor:pointer;font-size:18px;line-height:1;border-radius:var(--r)}
@media(max-width:980px){
  .burger{display:block;margin-left:auto}
  .nav{position:fixed;inset:72px 0 auto;background:var(--ink-800);border-bottom:1px solid var(--rule);
    margin:0;padding:14px var(--pad) 22px;display:none}
  .nav.open{display:block}
  .nav ul{flex-direction:column;gap:0}
  .nav a{display:block;padding:13px 0;font-size:17px;border-bottom:1px solid var(--rule)}
  .hd-phone{display:none}
}

/* =====================================================================
 * Кнопки — плоские, без градиентов и внутренних бликов
 * ===================================================================== */

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:15px 28px;border-radius:var(--r);border:1px solid transparent;
  font-family:inherit;font-size:16px;font-weight:600;text-decoration:none;cursor:pointer;
  transition:background .15s,color .15s,border-color .15s}
.btn-gold{background:var(--brass-hi);color:#1E1405}
.btn-gold:hover{background:#EFD09A}
.btn-ghost{border-color:var(--rule);color:var(--fg);background:transparent}
.btn-ghost:hover{border-color:var(--fg);background:rgba(255,255,255,.04)}
.inv .btn-ghost:hover{background:rgba(0,0,0,.04)}

/* =====================================================================
 * Секции
 * ===================================================================== */

.section{padding-top:86px;padding-bottom:86px}
.section-sm{padding-top:56px;padding-bottom:56px}
.section-head{margin-bottom:40px;max-width:62ch}
.section-head h2{margin-bottom:14px}

/* Правило вместо рамки: секции разделяются линией, а не карточками */
.rule-top{border-top:1px solid var(--rule)}

/* =====================================================================
 * Первый экран
 * ===================================================================== */

.hero-land{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.8fr);
  gap:56px;align-items:start;padding-top:72px;padding-bottom:64px}
@media(max-width:980px){.hero-land{grid-template-columns:1fr;gap:36px;padding-top:40px;padding-bottom:36px}}
.hero-land h1{max-width:15ch;margin-bottom:20px}
.hero-usp{list-style:none;margin:32px 0 0;padding:0;border-top:1px solid var(--rule)}
.hero-usp li{padding:16px 0;border-bottom:1px solid var(--rule);display:flex;gap:18px;align-items:baseline;flex-wrap:wrap}
.hero-usp b{font-family:'Source Serif 4',serif;font-size:22px;font-weight:600;color:var(--accent);white-space:nowrap;min-width:150px}
.hero-usp span{font-size:15px;color:var(--fg-muted);flex:1;min-width:200px}
.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}

/* Фотополоса под первым экраном */
.hero-strip{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:2px;background:var(--rule)}
@media(max-width:760px){.hero-strip{grid-template-columns:1fr 1fr}.hero-strip figure:first-child{grid-column:1/-1}}
.hero-strip figure{margin:0;position:relative;background:var(--ink-700);aspect-ratio:4/3;overflow:hidden}
.hero-strip img{width:100%;height:100%;object-fit:cover}
.hero-strip figcaption{position:absolute;left:0;right:0;bottom:0;padding:20px 18px 14px;font-size:13px;
  color:#EFEFEC;background:linear-gradient(to top,rgba(8,12,13,.88),transparent)}

/* =====================================================================
 * Преимущества — нумерованный список, не сетка карточек
 * ===================================================================== */

.adv{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 40px}
@media(max-width:1180px){.adv{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.adv{grid-template-columns:1fr;gap:0}}
.adv-i{padding:26px 0;border-top:1px solid var(--rule)}
@media(max-width:640px){.adv-i:first-child{border-top:1px solid var(--rule)}}
.adv-n{font-family:'Source Serif 4',serif;font-size:15px;font-style:italic;color:var(--accent);
  display:block;margin-bottom:10px}
.adv-i h3{margin-bottom:10px}
.adv-i p{margin:0;font-size:16px;color:var(--fg-muted)}

/* =====================================================================
 * Карточки каталога
 * ===================================================================== */

.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:2px;
  background:var(--rule);border:1px solid var(--rule)}
/* Ровно три колонки: для наборов из трёх и шести карточек, чтобы не было хвоста */
.cards-3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1000px){.cards-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.cards-3{grid-template-columns:1fr}}
.cards-4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1180px){.cards-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.cards-4{grid-template-columns:1fr}}
.card{display:flex;flex-direction:column;text-decoration:none;color:var(--fg);
  background:var(--bg);transition:background .15s}
.card:hover{background:var(--surface-2)}
.card-media{aspect-ratio:16/10;background:var(--surface-2);overflow:hidden}
.card-media img{width:100%;height:100%;object-fit:cover}
.card-body{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1}
.card-kicker{font-family:'Source Serif 4',serif;font-style:italic;font-size:13.5px;color:var(--accent);margin-bottom:10px}
.card h3{font-size:20px;margin:0 0 10px}
.card p{font-size:15px;color:var(--fg-muted);margin:0 0 18px;line-height:1.55}
.card-foot{margin-top:auto;display:flex;align-items:baseline;gap:8px;padding-top:14px;border-top:1px solid var(--rule)}
.card-price{font-family:'Source Serif 4',serif;font-size:21px;font-weight:600;color:var(--fg)}
.card-unit{font-size:13px;color:var(--fg-faint)}
.badge{display:inline-block;font-size:11.5px;padding:3px 8px;border-radius:2px;
  color:var(--accent);border:1px solid currentColor;font-weight:500}

/* =====================================================================
 * Полоса калькулятора и финальный блок
 * ===================================================================== */

.calc-band{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:34px;align-items:center;
  padding:44px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
@media(max-width:780px){.calc-band{grid-template-columns:1fr}}
.calc-band p{margin:0;color:var(--fg-muted);max-width:56ch;font-size:17px}

.final-cta{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:48px;align-items:start}
@media(max-width:940px){.final-cta{grid-template-columns:1fr;gap:32px}}
.final-contacts{margin:26px 0 0;font-size:17px;line-height:1.9}

/* =====================================================================
 * Этапы
 * ===================================================================== */

.steps-line{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0 34px}
.steps-line li{padding:24px 0 28px;border-top:2px solid var(--accent)}
.s-n{font-family:'Source Serif 4',serif;font-style:italic;font-size:15px;color:var(--accent);
  display:block;margin-bottom:12px}
.steps-line h3{font-size:19px;margin:0 0 9px}
.steps-line p{margin:0;font-size:15px;color:var(--fg-muted);line-height:1.55}

/* =====================================================================
 * Врач
 * ===================================================================== */

.mission{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:52px;align-items:center}
@media(max-width:900px){.mission{grid-template-columns:1fr;gap:30px}}
.mission-photo{margin:0;position:relative}
.mission-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;filter:saturate(.9)}
.mission blockquote{margin:0;font-family:'Source Serif 4',serif;font-weight:400;font-style:italic;
  font-size:clamp(22px,2.9vw,32px);line-height:1.32;letter-spacing:-.015em;color:var(--fg)}
.mission .who{margin-top:26px;font-size:16px;color:var(--fg-muted);padding-top:20px;border-top:1px solid var(--rule)}
.mission .who b{display:block;color:var(--fg);font-size:18px;font-family:'Source Serif 4',serif;
  font-weight:600;margin-bottom:4px}
.doc-facts{list-style:none;margin:24px 0 0;padding:0}
.doc-facts li{padding:12px 0;border-bottom:1px solid var(--rule);display:flex;gap:16px;font-size:15px}
.doc-facts b{min-width:130px;color:var(--fg)}
.doc-facts span{color:var(--fg-muted)}

/* =====================================================================
 * Галерея клиники
 * ===================================================================== */

.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:2px;background:var(--rule)}
.gallery figure{margin:0;aspect-ratio:3/2;overflow:hidden;background:var(--surface-2)}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.gallery figure:hover img{transform:scale(1.03)}

/* =====================================================================
 * Гарантия
 * ===================================================================== */

.warranty{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:48px;align-items:center;
  padding:38px 0;border-top:2px solid var(--accent);border-bottom:1px solid var(--rule)}
@media(max-width:1040px){.warranty{grid-template-columns:auto minmax(0,1fr);gap:36px}}
@media(max-width:820px){.warranty{grid-template-columns:1fr;gap:20px}}
.warranty-figure{display:flex;align-items:center;gap:18px}
.warranty-num{font-family:'Source Serif 4',serif;font-size:clamp(58px,7vw,88px);font-weight:600;
  color:var(--accent);line-height:.9;letter-spacing:-.03em}
.warranty-unit{font-family:'Source Serif 4',serif;font-size:clamp(17px,2vw,22px);line-height:1.25;
  color:var(--fg);letter-spacing:-.01em}
/* Текст занимает всю оставшуюся ширину: иначе рулетки блока тянутся до края,
   а содержимое обрывается на середине, и блок кажется шире соседних. */
.warranty-text{margin:0;font-size:16.5px;line-height:1.65;color:var(--fg-muted)}
.warranty-link{white-space:nowrap;font-size:15px;font-weight:600;color:var(--fg);text-decoration:none;
  border-bottom:1px solid var(--rule);padding-bottom:2px;transition:color .15s,border-color .15s}
.warranty-link:hover{color:var(--accent);border-color:var(--accent)}
@media(max-width:1040px){.warranty-link{grid-column:1/-1;justify-self:start}}

/* =====================================================================
 * Формы
 * ===================================================================== */

.lead{padding:32px 30px;background:var(--surface);border:1px solid var(--rule)}
.inv .lead{background:#fff}
.lead-title{font-size:24px;margin:0 0 10px}
.lead-text{font-size:15px;color:var(--fg-muted);margin:0 0 22px}
.lead-f{display:block;margin-bottom:14px}
.lead-f span{display:block;font-size:13.5px;color:var(--fg-faint);margin-bottom:6px}
.lead-f input,.lead-f textarea{width:100%;padding:14px 15px;border-radius:var(--r);font:inherit;font-size:16px;
  color:var(--fg);background:transparent;border:1px solid var(--rule);transition:border-color .15s}
.lead-f input:focus,.lead-f textarea:focus{outline:none;border-color:var(--accent)}
.lead-f textarea{resize:vertical;min-height:80px}
.lead-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.lead-consent{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--fg-faint);
  margin:6px 0 20px;line-height:1.45}
.lead-consent input{margin-top:3px;flex:none;accent-color:var(--brass)}
.lead-consent a{color:var(--fg-muted)}
.lead-submit{width:100%}
.lead-msg{margin:12px 0 0;font-size:14px;min-height:1em;color:var(--fg-muted)}
.lead-msg.is-ok{color:var(--accent)}
.lead-msg.is-err{color:#D2735A}
.lead.is-sent .lead-f,.lead.is-sent .lead-consent,.lead.is-sent .lead-submit{display:none}

/* Окно заявки калькулятора: узкая вертикальная форма поверх сметы. */
.stom-estimate-dialog{box-sizing:border-box;width:min(490px,calc(100vw - 28px));max-height:min(90dvh,850px);
  margin:auto;padding:0;overflow-y:auto;color:var(--fg);background:var(--ink-800);border:1px solid var(--brass-lite);
  border-radius:8px;box-shadow:0 30px 90px rgba(0,0,0,.55)}
.stom-estimate-dialog::backdrop{background:rgba(7,13,15,.82);backdrop-filter:blur(3px)}
.stom-estimate-dialog .lead{padding:8px 30px 30px;border:0;background:transparent}
.stom-estimate-dialog .lead-title{font-size:clamp(22px,4vw,27px);line-height:1.2}
.stom-estimate-dialog .lead-text{font-size:14px;margin-bottom:18px}
.stom-estimate-dialog .lead-f{margin-bottom:12px}
.stom-estimate-dialog .lead-f textarea{min-height:65px}
.stom-estimate-dialog .lead-consent{font-size:12px;margin-bottom:12px}
.stom-estimate-dialog .lead-policy{margin-bottom:14px}
.stom-estimate-preview{margin:30px 64px 0 30px;padding-bottom:12px;border-bottom:1px solid var(--rule);
  color:var(--fg-muted);font-size:14px}
.stom-estimate-preview strong{display:block;margin-top:5px;color:var(--brass-hi);font-size:23px}
.stom-estimate-close{position:absolute;right:15px;top:15px;width:36px;height:36px;border:1px solid var(--rule);
  border-radius:50%;background:var(--ink-700);color:var(--fg);font-size:26px;cursor:pointer;line-height:1}
.stom-estimate-close:hover,.stom-estimate-close:focus-visible{border-color:var(--brass-hi);color:var(--brass-hi)}
@media(max-width:520px){.stom-estimate-dialog .lead{padding:8px 20px 24px}.stom-estimate-preview{margin:24px 58px 0 20px}}

/* =====================================================================
 * Хлебные крошки
 * ===================================================================== */

.crumbs{font-size:14px;color:var(--fg-faint);padding-top:20px}
.crumbs a{color:var(--fg-muted);text-decoration:none}
.crumbs a:hover{color:var(--fg)}
.crumbs span{margin:0 8px;opacity:.5}

.spec{border-collapse:collapse;width:100%;font-size:16px;margin:0 0 24px}
.spec th,.spec td{text-align:left;padding:13px 0;border-bottom:1px solid var(--rule);vertical-align:top}
.spec th{color:var(--fg-faint);font-weight:400;width:45%}
.price-box{position:sticky;top:92px;padding:28px 26px;background:var(--surface);border:1px solid var(--rule)}
.price-box .p{font-family:'Source Serif 4',serif;font-size:38px;font-weight:600;line-height:1}
.price-box .u{font-size:14px;color:var(--fg-faint);margin:6px 0 22px}
.price-box .btn{width:100%;margin-bottom:10px}
.price-box .note{font-size:13px;color:var(--fg-faint);line-height:1.5;margin:14px 0 0}

/* =====================================================================
 * Сравнение и FAQ
 * ===================================================================== */

.cmp-scroll{overflow-x:auto;border:1px solid var(--rule)}
.cmp{border-collapse:collapse;width:100%;min-width:580px;font-size:16px}
.cmp th,.cmp td{padding:15px 18px;text-align:left;border-bottom:1px solid var(--rule);vertical-align:top}
.cmp thead th{font-family:'Source Serif 4',serif;font-size:17px;font-weight:600;color:var(--fg)}
.cmp thead th a{color:var(--fg-muted);text-decoration:none}
.cmp thead th a:hover{color:var(--accent)}
.cmp tbody th{font-weight:400;color:var(--fg-faint);white-space:nowrap}
.cmp td{color:var(--fg-muted)}
.cmp .cmp-self{color:var(--fg);box-shadow:inset 2px 0 0 var(--accent)}

.faq details{border-bottom:1px solid var(--rule)}
.faq summary{cursor:pointer;padding:20px 0;font-family:'Source Serif 4',serif;font-size:20px;font-weight:600;
  list-style:none;display:flex;align-items:flex-start;gap:14px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";margin-left:auto;color:var(--accent);font-size:24px;line-height:1;flex:none;font-family:'Commissioner',sans-serif;font-weight:300}
.faq details[open] summary::after{content:"–"}
.faq summary:hover{color:var(--accent)}
.faq details p{margin:0;padding:0 0 22px;color:var(--fg-muted);font-size:16.5px;line-height:1.65;max-width:70ch}

/* =====================================================================
 * Прайс
 * ===================================================================== */

/* Одна таблица на весь прайс + фиксированные колонки: иначе ширина
   считается по содержимому и столбцы прыгают от группы к группе. */
.price-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:16px}
.price-col-name{width:auto}
.price-col-unit{width:170px}
.price-col-val{width:160px}
@media(max-width:760px){
  .price-col-unit{width:0}
  .price-col-val{width:120px}
}

.price-table td{padding:14px 0;border-bottom:1px solid var(--rule);vertical-align:baseline}
.price-table a{color:var(--fg);text-decoration:none;border-bottom:1px solid transparent}
.price-table a:hover{border-color:var(--accent);color:var(--accent)}

.price-group-row th{font-family:'Source Serif 4',serif;font-size:22px;font-weight:600;
  color:var(--accent);text-align:left;padding:38px 0 10px;border-bottom:1px solid var(--rule)}
.price-group-row:first-child th{padding-top:0}

.price-unit{color:var(--fg-faint);font-size:14px;padding-left:18px!important;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.price-val{font-family:'Source Serif 4',serif;font-weight:600;font-size:18px;
  text-align:right;white-space:nowrap;padding-left:18px!important}

/* =====================================================================
 * Подвал
 * ===================================================================== */

.site-footer{border-top:1px solid var(--rule);margin-top:0;padding:56px 0 40px;font-size:16px;background:var(--ink-900)}
.ft{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.1fr;gap:36px}
@media(max-width:1040px){.ft{grid-template-columns:1fr 1fr;gap:32px}}
@media(max-width:620px){.ft{grid-template-columns:1fr;gap:28px}}
.ft h4{font-family:'Source Serif 4',serif;font-style:italic;font-size:15px;color:var(--brass-hi);
  margin:0 0 16px;font-weight:400}
.ft ul{list-style:none;margin:0;padding:0}
.ft li{margin-bottom:10px}
.ft a{color:var(--fg-muted);text-decoration:none}
.ft a:hover{color:var(--fg)}
.legal-note{margin-top:40px;padding-top:24px;border-top:1px solid var(--rule);
  font-size:13.5px;color:var(--fg-faint);line-height:1.65}

/* =====================================================================
 * Мобильный ритм: на узком экране вертикальные отступы съедают экран
 * ===================================================================== */

@media(max-width:760px){
  body{font-size:16px}
  .section{padding-top:52px;padding-bottom:52px}
  .section-sm{padding-top:36px;padding-bottom:36px}
  .section-head{margin-bottom:28px}
  .lede{font-size:17px}

  .hero-usp b{min-width:0}
  .hero-usp li{gap:10px;padding:14px 0}
  .hero-actions .btn{flex:1;min-width:160px}

  .adv{gap:0}
  .adv-i{padding:22px 0}

  .steps-line{gap:0}
  .steps-line li{padding:20px 0 22px}

  .lead{padding:24px 20px}
  .warranty{padding:28px 0}

  .card-body{padding:20px 18px 22px}
  .price-box{position:static}
  .single-layout{padding-top:8px}

  .faq summary{font-size:18px;padding:17px 0}
  .faq details p{font-size:16px;padding-bottom:18px}

  .price-unit{display:none}
  .price-col-unit{width:0}
  .requisites{grid-template-columns:1fr;gap:12px}
}

/* Длинные слова и ссылки не должны распирать страницу по горизонтали */
h1,h2,h3,.lede,.prose p,.card p{overflow-wrap:break-word}

@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto}}


/* ---------- обязательные сведения и уведомления ---------- */
.requisites{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px 32px;
  margin-top:40px;padding-top:26px;border-top:1px solid var(--rule);font-size:13.5px;color:var(--fg-muted)}
.requisites span{display:block;color:var(--fg-faint);font-size:12px;margin-bottom:3px}
.official-links{margin:22px 0 0;font-size:13px;line-height:1.9;color:var(--fg-faint)}
.official-links a{color:var(--fg-muted)}
.official-links a:hover{color:var(--accent)}
.suspension{background:var(--brass-hi);color:#1E1405;font-size:15px;font-weight:600;padding:12px 0}
.lead-policy{margin:-10px 0 18px;font-size:12.5px}
.lead-policy a{color:var(--fg-faint)}
.lead-policy a:hover{color:var(--accent)}


/* ---------- уведомление о cookie ---------- */
.cookie-note{position:fixed;left:0;right:0;bottom:0;z-index:80;background:var(--ink-800);
  border-top:1px solid var(--rule);padding:16px 0;box-shadow:0 -14px 40px rgba(0,0,0,.5)}
.cookie-inner{display:flex;align-items:center;gap:22px}
.cookie-note p{margin:0;font-size:14px;color:var(--fg-muted);flex:1}
.cookie-note a{color:var(--brass-hi)}
.cookie-note .btn{padding:11px 24px;font-size:15px;flex:none}
@media(max-width:640px){
  .cookie-inner{flex-direction:column;align-items:stretch;gap:12px}
  .cookie-note p{font-size:13px}
}
.lead-hint{display:block;margin-top:6px;font-size:12px;color:var(--fg-faint);line-height:1.4}

.mission--solo{grid-template-columns:1fr;max-width:76ch}


/* ---------- отзывы ---------- */
.reviews-summary{display:flex;align-items:center;gap:20px;padding:24px 0;border-top:2px solid var(--accent);
  border-bottom:1px solid var(--rule);margin-bottom:32px}
.reviews-avg{font-family:'Source Serif 4',serif;font-size:56px;font-weight:600;color:var(--accent);line-height:1}
.reviews-meta{font-size:15px;color:var(--fg-muted);line-height:1.5}
.reviews-meta a{color:var(--fg);text-decoration-thickness:1px;text-underline-offset:3px}
.reviews-meta a:hover{color:var(--accent)}

.reviews-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2px;
  background:var(--rule);border:1px solid var(--rule)}
@media(max-width:640px){.reviews-list{grid-template-columns:1fr}}
.review{background:var(--bg);padding:24px 22px}
.review-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:4px}
.review-author{font-family:'Source Serif 4',serif;font-size:18px;font-weight:600}
.review-stars{color:var(--accent);font-size:14px;letter-spacing:1px;margin-left:auto;white-space:nowrap}
.review-stars-off{color:var(--fg-faint);opacity:.4}
.review-date{font-size:13px;color:var(--fg-faint);margin-bottom:12px}
.review-text{font-size:15px;line-height:1.6;color:var(--fg-muted)}
.review-text p{margin:0 0 .8em}
.review-text p:last-child{margin-bottom:0}
.review-answer{margin-top:16px;padding:14px 16px;border-left:2px solid var(--accent);
  background:rgba(214,168,99,.07);font-size:14px;line-height:1.55;color:var(--fg-muted)}
.review-answer span{display:block;font-size:12px;color:var(--accent);margin-bottom:5px}


/* ---------- врачи: список ---------- */
.doctors{display:grid;gap:2px;background:var(--rule);border:1px solid var(--rule)}
.doctor{display:grid;grid-template-columns:220px minmax(0,1fr);gap:0;background:var(--bg)}
.doctor--nophoto{grid-template-columns:1fr}
@media(max-width:720px){.doctor{grid-template-columns:1fr}}
.doctor-photo{background:var(--surface-2);aspect-ratio:4/5;overflow:hidden}
@media(max-width:720px){.doctor-photo{aspect-ratio:3/2}}
.doctor-photo img{width:100%;height:100%;object-fit:cover;object-position:top center}
.doctor-body{padding:26px 28px 28px;display:flex;flex-direction:column;align-items:flex-start}
.doctor-name{font-size:22px;margin:0 0 8px}
.doctor-position{margin:0 0 14px;font-size:14px;color:var(--accent);line-height:1.45}
.doctor-schedule{display:inline-block;margin:0 0 14px;font-size:13.5px;color:var(--fg-muted);
  border:1px solid var(--rule);padding:7px 13px;border-radius:var(--r)}
.doctor-intro{margin:0 0 20px;font-size:15px;color:var(--fg-muted);line-height:1.6}
.doctor-more{margin-top:auto;padding:11px 22px;font-size:14px}

/* ---------- врач: страница ---------- */
.doctor-single{display:grid;grid-template-columns:320px minmax(0,1fr);gap:44px;align-items:start;padding-top:24px}
@media(max-width:900px){.doctor-single{grid-template-columns:1fr;gap:28px}}
.doctor-single-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:top center}
.doctor-card{margin-top:2px;padding:22px 20px;background:var(--surface);border:1px solid var(--rule)}
.doctor-fact{padding-bottom:14px;margin-bottom:14px;border-bottom:1px solid var(--rule);font-size:15px}
.doctor-fact span{display:block;font-size:12.5px;color:var(--fg-faint);margin-bottom:3px}
.doctor-card .btn{width:100%}
.doctor-list{list-style:none;margin:0 0 1.6em;padding:0;max-width:70ch}
.doctor-list li{padding:12px 0;border-bottom:1px solid var(--rule);font-size:15.5px;color:var(--fg-muted)}
.doctor-list li:first-child{border-top:1px solid var(--rule)}

.logo-img{display:flex;align-items:center;flex:none}
.logo-img img{max-height:44px;width:auto}

.logo{display:inline-flex;align-items:center;gap:11px}
.logo-mark{display:block;width:30px;height:30px;color:var(--brass-hi);flex:none}
.logo-mark svg{width:100%;height:100%;display:block}
.logo-text{display:block}
@media(max-width:420px){.logo-text{font-size:15px}.logo-mark{width:26px;height:26px}}


/* ---------- врач-руководитель: вводный блок ---------- */
.doctor-lead{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:44px;align-items:center;
  padding:34px 0 38px;border-top:2px solid var(--accent);border-bottom:1px solid var(--rule);margin-bottom:38px}
@media(max-width:900px){.doctor-lead{grid-template-columns:1fr;gap:26px}}
.doctor-lead-photo{margin:0}
.doctor-lead-photo img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:top center}
.doctor-lead h2{font-size:clamp(24px,3vw,34px);margin:0 0 6px}
.doctor-lead .doctor-position{margin-bottom:20px}
.doctor-lead blockquote{margin:0 0 22px;padding-left:20px;border-left:2px solid var(--accent);
  font-family:'Source Serif 4',serif;font-style:italic;font-size:clamp(17px,2.1vw,21px);
  line-height:1.45;color:var(--fg)}
.doctor-lead .doctor-more{margin-top:0}


/* =====================================================================
 * Текстовые страницы и карточки: колонка чтения не должна болтаться слева
 * ===================================================================== */

/* Документные страницы — узкий контейнер по центру */
.wrap-doc{max-width:940px}

/* Карточка каталога: статья слева, блок цены справа, одной сеткой */
.single-layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:48px;align-items:start}
@media(max-width:980px){.single-layout{grid-template-columns:1fr;gap:28px}}
.single-layout--solo{grid-template-columns:1fr;max-width:940px}
.single-main{min-width:0}
.single-main > h1{margin-bottom:16px}
.single-aside{min-width:0}
.single-image{margin:26px 0;overflow:hidden;border:1px solid var(--rule)}
.single-image img{width:100%;display:block}
.single-h2{margin:2em 0 .7em}
.note-accent{color:var(--accent);border-top:1px solid rgba(214,168,99,.3);padding-top:12px;margin-top:14px}

/* В узкой колонке текст уже ограничен сеткой — второй лимит только мешает */
.single-main .prose > p,
.single-main .prose > ul,
.single-main .prose > ol,
.single-main .prose > h2,
.single-main .prose > h3,
.wrap-doc .prose > p,
.wrap-doc .prose > ul,
.wrap-doc .prose > ol,
.wrap-doc .prose > h2,
.wrap-doc .prose > h3{max-width:none}


/* ---------- карта проезда ---------- */
.contacts-top{display:grid;grid-template-columns:minmax(0,0.72fr) minmax(0,1.28fr);gap:56px;
  align-items:start;margin-bottom:20px}
@media(max-width:980px){.contacts-top{grid-template-columns:1fr;gap:28px}}
.contacts-top > div > h2:first-child{margin-top:0}

/* Страница сама разместила заголовок — верхний отступ секции не нужен */
.section--tight{padding-top:34px}
.contacts-top h1{margin-bottom:26px}
.contacts-top h2:first-of-type{margin-top:0}

/* Фотография фасада: выше и шире, чем текстовая колонка рядом */
.contacts-top .pic{aspect-ratio:5/4}
@media(min-width:981px){
  .contacts-top .pic{min-height:600px}
}
@media(min-width:1300px){
  .contacts-top .pic{min-height:700px}
}

/* Нижние блоки контактов — в ширину, а не длинной лентой */
.contacts-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 48px;
  margin-top:46px;padding-top:6px;border-top:1px solid var(--rule)}
.contacts-cols--2{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:980px){.contacts-cols{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 36px}}
@media(max-width:640px){.contacts-cols,.contacts-cols--2{grid-template-columns:1fr}}
.contacts-cols > div{padding:28px 0}
.contacts-cols h2{font-size:22px;margin:0 0 14px}
.contacts-cols p{font-size:15.5px;line-height:1.6;margin:0 0 .9em}

.map{margin:0}
.map-frame{display:block;border:1px solid var(--rule);overflow:hidden;background:var(--surface-2)}
.map-frame img{width:100%;height:100%;display:block;object-fit:cover;
  filter:grayscale(.22) contrast(1.05) brightness(.95);transition:filter .25s}
.map-frame{aspect-ratio:13/9;min-height:400px}
@media(max-width:980px){.map-frame{min-height:0}}
.map-frame:hover img{filter:grayscale(0) contrast(1) brightness(1)}
.map-frame--empty{display:flex;align-items:center;justify-content:center;aspect-ratio:13/9;
  color:var(--fg-muted);text-decoration:none;font-size:15px}
.map-frame--empty:hover{color:var(--accent)}
.map figcaption{padding:14px 0 0;font-size:15px;color:var(--fg-muted)}
.map-caption-inner{display:flex;align-items:baseline;justify-content:space-between;gap:20px;flex-wrap:wrap}
.map figcaption strong{color:var(--fg);font-weight:600}
.map-links{display:flex;gap:22px;flex-wrap:wrap}
.map figcaption a{color:var(--fg-muted);text-decoration:none;white-space:nowrap;
  border-bottom:1px solid var(--rule);padding-bottom:2px}
.map figcaption a:hover{color:var(--accent);border-color:var(--accent)}
.map-links a:first-child{color:var(--fg);font-weight:600}


/* ---------- горизонтальная форма ---------- */
.lead--inline{padding:30px 32px;margin-top:8px}
.lead--inline .lead-title{font-size:22px;margin-bottom:6px}
.lead--inline .lead-text{margin-bottom:20px}
.lead--inline .lead-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) auto;
  gap:18px;align-items:end}
@media(max-width:820px){.lead--inline .lead-fields{grid-template-columns:1fr}}
.lead--inline .lead-f{margin-bottom:0}
.lead--inline .lead-submit{width:auto;white-space:nowrap;padding:14px 32px;grid-column:auto}
@media(max-width:820px){.lead--inline .lead-submit{width:100%}}
.lead--inline .lead-consent{margin:18px 0 0}
.lead--inline .lead-policy{margin:8px 0 0}
.lead-note{margin:16px 0 0;padding-top:16px;border-top:1px solid var(--rule);
  font-size:14px;line-height:1.6;color:var(--fg-muted);max-width:78ch}
.lead--inline .lead-msg{margin-top:10px}


/* ---------- произвольная фотография из слота ---------- */
.pic{margin:0}
.pic img{width:100%;height:100%;display:block;object-fit:cover;object-position:center}
.pic{border:1px solid var(--rule);overflow:hidden;aspect-ratio:var(--pic-ratio,4/5);position:relative}
.pic figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 18px 14px;font-size:13.5px;
  color:#EFEFEC;background:linear-gradient(to top,rgba(8,12,13,.88),transparent)}

/* ---------- карта во всю ширину окна ---------- */
.map--full{width:100vw;max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);
  margin-top:52px;margin-bottom:8px;
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.map--full .map-frame{border:0;aspect-ratio:auto;min-height:0;
  height:clamp(420px,40vw,720px)}
@media(max-width:700px){.map--full .map-frame{height:clamp(300px,62vw,420px)}}
.map--full figcaption{padding:0}
.map--full .map-caption-inner{max-width:var(--wrap);margin:0 auto;
  padding:16px var(--pad) 0}


/* =====================================================================
 * Слайдер фотографий
 * Прокрутка нативная (scroll-snap): свайп на телефоне работает сам,
 * скрипт нужен только для стрелок и точек.
 * ===================================================================== */

.slider{position:relative;margin:0 0 4px}
.slider:focus{outline:none}
.slider:focus-visible{outline:2px solid var(--accent);outline-offset:6px}

.slider-track{display:flex;gap:18px;overflow-x:auto;overscroll-behavior-x:contain;
  scroll-snap-type:x mandatory;scrollbar-width:none;-ms-overflow-style:none;
  padding-inline:calc(50% - var(--slide-w) / 2)}
.slider-track::-webkit-scrollbar{display:none}

.slider{--slide-w:min(880px, 68vw)}
@media(max-width:1100px){.slider{--slide-w:min(720px, 76vw)}}
@media(max-width:700px){.slider{--slide-w:86vw}}

.slide{flex:0 0 var(--slide-w);margin:0;position:relative;scroll-snap-align:center;
  aspect-ratio:var(--slide-ratio,16/10);overflow:hidden;border:1px solid var(--rule);
  background:var(--surface-2);opacity:.4;transition:opacity .3s}
.slide.is-active{opacity:1}
.slide img{width:100%;height:100%;object-fit:cover;display:block}
.slide figcaption{position:absolute;left:0;right:0;bottom:0;padding:34px 20px 16px;font-size:14px;
  color:#EFEFEC;background:linear-gradient(to top,rgba(8,12,13,.9),transparent)}

.slider-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;
  width:52px;height:52px;border-radius:50%;border:1px solid var(--rule);
  background:rgba(12,19,21,.82);backdrop-filter:blur(6px);color:var(--fg);
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  transition:background .15s,color .15s,opacity .15s}
.slider-nav svg{width:22px;height:22px}
.slider-nav:hover{background:var(--accent);color:#1E1405;border-color:var(--accent)}
.slider-prev{left:calc(50% - var(--slide-w) / 2 - 26px)}
.slider-next{right:calc(50% - var(--slide-w) / 2 - 26px)}
@media(max-width:700px){
  .slider-nav{width:44px;height:44px}
  .slider-prev{left:10px}
  .slider-next{right:10px}
}

.slider-dots{display:flex;justify-content:center;gap:9px;margin-top:22px}
.slider-dot{width:9px;height:9px;padding:0;border:0;border-radius:50%;cursor:pointer;
  background:var(--rule);transition:background .2s,width .2s}
.slider-dot:hover{background:var(--fg-faint)}
.slider-dot.is-active{background:var(--accent);width:26px;border-radius:5px}

@media(prefers-reduced-motion:reduce){
  .slide{transition:none}
  .slider-track{scroll-behavior:auto}
}


/* ---------- интерактивная карта ---------- */
.map-frame--live{position:relative;display:block;background:var(--surface-2)}
.map-frame--live img{width:100%;height:100%;object-fit:cover;display:block;
  filter:grayscale(.3) brightness(.8)}
.map-frame--live iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.map-frame--live.is-loaded img,
.map-frame--live.is-loaded .map-consent{display:none}

.map-consent{position:absolute;inset:0;width:100%;height:100%;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;
  background:rgba(10,14,16,.55);border:0;cursor:pointer;color:var(--fg);
  font:inherit;text-align:center;padding:20px;transition:background .2s}
.map-consent:hover{background:rgba(10,14,16,.42)}
.map-consent span{font-size:16px;font-weight:600;
  border:1px solid rgba(255,255,255,.35);border-radius:var(--r);padding:12px 22px;
  background:rgba(12,19,21,.8)}
.map-consent:hover span{border-color:var(--accent);color:var(--accent)}
.map-consent small{font-size:12.5px;color:rgba(255,255,255,.62);max-width:36ch}
