/* ===== ШРИФТ ONEST (свой хостинг) =====
   Раньше подключался с fonts.googleapis.com и блокировал отрисовку
   примерно на 750 мс. Файлы те же, что отдавал Google, только лежат
   у нас и объявлены прямо здесь — лишнего запроса к чужому домену нет.
   Оставлены только кириллица и латиница: остальные подмножества
   (математика, символы, вьетнамский) на сайте не используются. */

/* cyrillic-ext 400 */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/gNMKW3F-SZuj7xmS-HY6EQ.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic 400 */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/gNMKW3F-SZuj7xmb-HY6EQ.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin-ext 400 */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/gNMKW3F-SZuj7xmR-HY6EQ.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin 400 */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/fonts/gNMKW3F-SZuj7xmf-HY.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext 500 */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/gNMKW3F-SZuj7xmS-HY6EQ.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic 500 */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/gNMKW3F-SZuj7xmb-HY6EQ.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin-ext 500 */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/gNMKW3F-SZuj7xmR-HY6EQ.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin 500 */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/fonts/gNMKW3F-SZuj7xmf-HY.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext 600 */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/gNMKW3F-SZuj7xmS-HY6EQ.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic 600 */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/gNMKW3F-SZuj7xmb-HY6EQ.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin-ext 600 */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/gNMKW3F-SZuj7xmR-HY6EQ.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin 600 */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/fonts/gNMKW3F-SZuj7xmf-HY.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext 700 */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/gNMKW3F-SZuj7xmS-HY6EQ.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic 700 */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/gNMKW3F-SZuj7xmb-HY6EQ.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin-ext 700 */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/gNMKW3F-SZuj7xmR-HY6EQ.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin 700 */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/fonts/gNMKW3F-SZuj7xmf-HY.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext 800 */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/fonts/gNMKW3F-SZuj7xmS-HY6EQ.woff2) format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic 800 */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/fonts/gNMKW3F-SZuj7xmb-HY6EQ.woff2) format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* latin-ext 800 */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/fonts/gNMKW3F-SZuj7xmR-HY6EQ.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin 800 */
@font-face {
  font-family: 'Onest';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/fonts/gNMKW3F-SZuj7xmf-HY.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@charset "UTF-8";
/* ============================================================
   Доктор ОСТ — дизайн-система (общие стили всех страниц)
   MODX-перенос: файл единый, подключается на всех шаблонах
   ============================================================ */

:root{
  /* Бренд */
  --brand:        #009c9d;
  --brand-600:    #008a8b;
  --brand-700:    #00787b;
  --brand-900:    #0a3a3c;
  --brand-tint:   #eaf6f6;
  --brand-tint-2: #f4fafa;

  /* Акцент (CTA) */
  --accent:       #f16522;
  --accent-600:   #d9551a;
  --accent-tint:  #fdeee5;

  /* Текст и линии */
  --ink:    #122423;
  --muted:  #5c706e;
  --line:   #dfe9e9;
  --white:  #ffffff;

  /* Системное */
  --radius:    18px;
  --radius-sm: 12px;
  --shadow:    0 10px 30px rgba(10,58,60,.08);
  --shadow-sm: 0 4px 14px rgba(10,58,60,.07);
  --container: 1240px;
  --font: 'Onest', -apple-system, 'Segoe UI', Roboto, sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  margin:0;
  font-family:var(--font);
  font-size:16px;
  line-height:1.6;
  color:var(--ink);
  background:var(--white);
}
img{ max-width:100%; display:block; }
a{ color:var(--brand); text-decoration:none; transition:color .2s ease; }
a:hover{ color:var(--brand-700); }
ul,ol{ margin:0; padding:0; list-style:none; }
h1,h2,h3,h4{ margin:0 0 .5em; line-height:1.2; font-weight:700; }
p{ margin:0 0 1em; }
button{ font-family:inherit; cursor:pointer; }
.price-accordion {
    margin-bottom: 50px;
}div#modal-iframe .modal__box {
    min-width: 760px;
}.page-card-doctors .doctor-card-actionspan .btn {
    padding: 15px 35px;
}
.container{
  width:100%;
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:24px;
}
ul.vertebra__orange {
    clear: both;
}.doctor-card-actionspan span {
    font-size: 12px;
    color: #818181;
    line-height: 16px;
    display: block;
    padding: 5px 0 0;
}
/* ---------- Типографика секций ---------- */
.section{ padding:88px 0; }
.section--tint{ background:var(--brand-tint-2); }
.section--dark{ background:var(--brand-900); color:#fff; }

.section-head{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:44px;
}
.section-head h2{
  font-size:clamp(26px,3.4vw,38px);
  font-weight:800;
  letter-spacing:-.01em;
  margin:0;
}
.section-head h2 span{ color:var(--brand); }
.section-head__link{
  flex:none;
  font-weight:600;
  font-size:15px;
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.section-head__link::after{
  content:'→';
  transition:transform .25s ease;
}
.section-head__link:hover::after{ transform:translateX(4px); }

/* ---------- Кнопки ---------- */
.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:14px 28px;
  border-radius:var(--radius-sm);
  border:1px solid transparent;
  font-weight:600;
  font-size:15px;
  line-height:1.2;
  transition:background .25s ease, color .25s ease, border-color .25s ease, transform .2s ease;
}
.btn:active{ transform:scale(.97); }
.btn--accent{
  background:var(--accent);
  color:#fff;
  /*box-shadow:0 8px 20px rgba(241,101,34,.28);*/
}
.btn--accent:hover{ background:var(--accent-600); color:#fff; }
.btn--brand{ background:var(--brand); color:#fff; }
.btn--brand:hover{ background:var(--brand-700); color:#fff; }
.btn--outline{
  background:transparent;
  border-color:var(--brand);
  color:var(--brand);
}
.btn--outline:hover{ background:var(--brand); color:#fff; }
.btn--white{ background:#fff; color:var(--brand-700); }
.btn--white:hover{ background:var(--brand-tint); color:var(--brand-700); }
.btn--sm{ padding:10px 18px; font-size:14px; }

/* ---------- Чипы / бейджи ---------- */
.chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:5px 12px;
  border-radius:999px;
  font-size:12.5px;
  font-weight:600;
  line-height:1;
}
.chip--accent{ background:var(--accent-tint); color:var(--accent-600); }
.chip--brand{ background:var(--brand-tint); color:var(--brand-700); }
.chip--green{ background:#e5f6ec; color:#178a4c; }
.chip--red{ background:#fde8e8; color:#c62828; }


.chip-group{ display:flex; flex-wrap:wrap; gap:10px; }

/* ============================================================
   ШАПКА
   ============================================================ */
.site-header{
  position: sticky;
  top: 0;
  z-index: 1400;
  transition: box-shadow .25s ease;
}
.site-header.is-scrolled{
  box-shadow: 0 10px 30px rgba(10, 58, 60, 0.1);
}
.topbar{
  background:var(--white);
  border-bottom:1px solid var(--line);
  transition: padding .25s ease, box-shadow .25s ease;
}
.site-header.is-scrolled .topbar{
  border-bottom-color: transparent;
}
.topbar__inner{
  display:flex;
  align-items:center;
  gap:28px;
  padding:14px 24px;
}
.topbar__logo{ flex:none; }
.topbar__logo img{ width:212px; height:auto; }

.topbar__meta{
  display:flex;
  align-items:center;
  gap:26px;
  font-size:14px;
  color:var(--muted);
  margin-right:auto;
}
.topbar__meta svg{ flex:none; width:17px; height:17px; stroke:var(--brand); }
.topbar__meta-item{ display:flex; align-items:flex-start; gap:9px; line-height:1.35; }
.topbar__meta-item b{ color:var(--ink); font-weight:600; }
.topbar__city{
  background:none; border:0; padding:0;
  font:inherit; color:var(--ink); font-weight:600;
  display:inline-flex; align-items:center; gap:4px;
  border-bottom:1px dashed var(--brand);
}
.topbar__city::after{
  content:''; width:6px; height:6px;
  border-right:1.6px solid var(--brand);
  border-bottom:1.6px solid var(--brand);
  transform:rotate(45deg) translateY(-2px);
}

.topbar__contacts{
  display:flex;
  align-items:center;
  gap:20px;
  flex:none;
  transition: transform .25s ease, opacity .25s ease;
}
.site-header.is-scrolled .topbar__inner{
  padding-top: 10px;
  padding-bottom: 10px;
}
.site-header.is-scrolled .topbar__logo img{
  width: 176px;
}
.site-header.is-scrolled .topbar__phone{
  font-size: 17px;
}
.site-header.is-scrolled .topbar__contacts .btn{
  transform: scale(0.96);
}
.topbar__phone{
  font-size:19px;
  font-weight:800;
  color:var(--ink);
  letter-spacing:-.01em;
  white-space:nowrap;
}
.topbar__phone:hover{ color:var(--brand); }
.topbar__phone small{
  display:block;
  font-size:12px;
  font-weight:500;
  color:var(--muted);
  text-align:right;
}

/* ---------- Навигация ---------- */
.nav{
  background:linear-gradient(90deg, var(--brand) 0%, var(--brand-700) 100%);
  box-shadow:0 4px 18px rgba(10,58,60,.18);
}
.nav__inner{
  display:flex;
  align-items:center;
  padding:0;
}
.nav__list{ display:flex; margin-left:8px; }
.nav__item{ position:relative; }
.nav__link{
  display:flex;
  align-items:center;
  gap:7px;
  color:#fff;
  font-size:14.5px;
  font-weight:600;
  white-space:nowrap;
  transition:background .2s ease;
}
.nav__link:hover{ color:#fff; background:rgba(255,255,255,.12); }
.nav__link{ padding:17px 13px; }

.nav__item--has-sub > .nav__link::after{
  content:''; width:7px; height:7px;
  border-right:1.8px solid #fff;
  border-bottom:1.8px solid #fff;
  transform:rotate(45deg) translateY(-2px);
  opacity:.85;
}
/* выпадающее меню */
.nav__dropdown{
  position:absolute;
  top:100%;
  left:0;
  min-width:290px;
  background:#fff;
  border-radius:0 0 var(--radius-sm) var(--radius-sm);
  box-shadow:var(--shadow);
  z-index:999;
  padding:10px;
  opacity:0;
  visibility:hidden;
  transform:translateY(8px);
  transition:opacity .22s ease, transform .22s ease, visibility .22s;
}
.nav__item:hover > .nav__dropdown,
.nav__item:focus-within > .nav__dropdown{
  opacity:1; visibility:visible; transform:translateY(0);
}
.nav__dropdown a{
  display:block;
  padding:10px 14px;
  border-radius:8px;
  color:var(--ink);
  font-size:14.5px;
}
.nav__dropdown a:hover{ background:var(--brand-tint); color:var(--brand-700); }
.nav__dropdown a.is-new{ display:flex; align-items:center; gap:8px; }
.nav__dropdown a.is-new::after{
  content:'new';
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.05em;
  background:var(--accent-tint);
  color:var(--accent-600);
  padding:3px 7px;
  border-radius:5px;
}

/* поиск по сайту в меню: маленькое белое поле, по фокусу (клик по нему)
   раскрывается поверх пунктов меню; клик мимо — теряет фокус и сжимается обратно */
.nav__search{
  position:relative;
  flex:none;
  margin-left:auto;
  width:96px;
  height:36px;
  margin-right: 30px;
}
.nav__search-input{
  position:absolute;
  top:0;
  right:0;
  z-index:2;
  width:100%;
  height:100%;
  padding:0 16px;
  border:0;
  border-radius:10px;
  background:#fff;
  color:var(--ink);
  font:inherit;
  font-size:13.5px;
  transition:width .25s ease, box-shadow .25s ease;
}
.nav__search-input::placeholder{ color:var(--muted); }
.nav__search-input:focus{
  outline:none;
  width:230px;
  box-shadow:0 14px 30px rgba(10,58,60,.35);
}

/* бургер */
.nav__burger{
  display:none;
  background:none;
  border:0;
  padding:16px 0;
  color:#fff;
  font-size:15px;
  font-weight:700;
  align-items:center;
  gap:12px;
  margin:0 auto;
}
.nav__burger-lines{ display:flex; flex-direction:column; gap:4.5px; }
.nav__burger-lines span{
  width:24px; height:2.4px; background:#fff; border-radius:2px;
  transition:transform .3s ease, opacity .3s ease;
}
body.menu-open .nav__burger-lines span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
body.menu-open .nav__burger-lines span:nth-child(2){ opacity:0; }
body.menu-open .nav__burger-lines span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }


/* ---------- Липкая шапка ---------- */
.header-sticky{
  position:sticky;
  top:0;
  z-index:1000;
}

/* ============================================================
   HERO (слайдер)
   ============================================================ */
.hero{
  background:var(--brand-tint-2);
}
.hero__slider{ position:relative; overflow:hidden; }
.hero__track{ display:flex; transition:transform .7s cubic-bezier(.32,.72,.35,1); }
.hero__slide{
  flex:0 0 100%;
  display:grid;
  grid-template-columns:minmax(0, 1.05fr) minmax(0, .95fr);
  align-items:center;
  gap:40px;
  min-height:440px;
  padding:44px 0;
}
.hero__badge{
  margin-bottom:20px;
}
.hero__title{
  font-size:clamp(28px, 4vw, 46px);
  font-weight:800;
  letter-spacing:-.015em;
  line-height:1.12;
  margin-bottom:18px;
}
.hero__title .mark{ color:var(--accent); }
.hero__text{
  font-size:17px;
  color:var(--muted);
  max-width:520px;
  margin-bottom:30px;
}
.hero__text b{ color:var(--ink); }
.hero__actions{ display:flex; gap:14px; flex-wrap:wrap; }
.hero__img {
    align-self: stretch;
    display: flex;
    align-items: flex-end;
    justify-content: flex-end;
    border-radius: 0px 10px 10px 0px;
    overflow: hidden;
}.hero__title b {
    color: #F44336;
}.hero__content span.chip.chip--accent {
    margin-bottom: 15px;
}
.hero__img img {
    max-height: 450px;
    width: auto;
    object-fit: contain;
    /* filter: drop-shadow(0 24px 40px rgba(10, 58, 60, .16)); */
}
/* управление */
.hero__nav{
  display:flex;
  align-items:center;
  gap:18px;
  padding-bottom:34px;
}
.hero__dots{ display:flex; gap:8px; }
.hero__dot{
  width:9px; height:9px;
  border-radius:50%;
  border:0;
  background:#c4dede;
  padding:0;
  transition:background .25s ease, transform .25s ease;
}
.hero__dot.is-active{ background:var(--brand); transform:scale(1.25); }
.hero__arrows{ display:flex; gap:10px; margin-left:auto; }
.slider-arrow{
  width:46px; height:46px;
  border-radius:50%;
  border:1px solid var(--line);
  background:#fff;
  color:var(--brand-700);
  font-size:18px;
  display:flex;
  align-items:center;
  justify-content:center;
  transition:background .25s ease, color .25s ease, border-color .25s ease;
}
.slider-arrow:hover{ background:var(--brand); border-color:var(--brand); color:#fff; }
.slider-arrow svg{ width:18px; height:18px; }
.hero__text ul li {
    position: relative;
    padding: 0 0 0 20px;
}

.hero__text ul li:after {
    content: "";
    height: 6px;
    width: 12px;
    background: #F44336;
    top: 10px;
    left: 0;
    position: absolute;
    border-radius: 4px;
}
/* ============================================================
   КАРТОЧКИ: НАПРАВЛЕНИЯ
   ============================================================ */
.directions-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:20px;
}
.direction-card{
  display:flex;
  align-items:center;
  gap:18px;
  padding:24px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  transition:border-color .25s ease, box-shadow .25s ease, transform .25s ease;
}
.direction-card:hover{
  border-color:var(--brand);
  box-shadow:var(--shadow);
  transform:translateY(-3px);
}
.direction-card__icon{
  flex:none;
  width:62px; height:62px;
  border-radius:16px;
  background:var(--brand-tint);
  display:flex;
  align-items:center;
  justify-content:center;
  transition:background .25s ease;
}
.direction-card__icon img{ width:34px; height:34px; object-fit:contain; transition:filter .25s ease; }
.direction-card:hover .direction-card__icon{ background:var(--brand); }
.direction-card:hover .direction-card__icon img{ filter:brightness(0) invert(1); }
.direction-card__name{
  display:block;
  font-weight:700;
  font-size:16.5px;
  line-height:1.3;
  color:var(--ink);
  margin:0 0 6px;
}
.direction-card > span:last-child{ display:block; min-width:0; }
.direction-card__more{
  font-size:13.5px;
  font-weight:600;
  color:var(--muted);
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.direction-card__more::after{ content:'→'; color:var(--brand); transition:transform .25s ease; }
.direction-card:hover .direction-card__more::after{ transform:translateX(4px); }

/* ============================================================
   СЛАЙДЕР КАРТОЧЕК (врачи, акции, методики, отзывы)
   ============================================================ */
.cards-slider{ position:relative; overflow:hidden; padding-bottom:2px; }
.cards-slider__track{
  display:flex;
  gap:20px;
  min-width:0;
  transition:transform .55s cubic-bezier(.32,.72,.35,1);
}.spoiler-box {
  position: relative;
}

/* Состояние, когда контент свернут */
.spoiler-box.is-collapsed .spoiler-box__content {
  max-height: 260px;
  overflow: hidden;
  position: relative;
  -webkit-mask-image: linear-gradient(180deg, #000 calc(100% - 60px), transparent 100%);
  mask-image: linear-gradient(180deg, #000 calc(100% - 60px), transparent 100%);
  transition: max-height 0.3s ease;
}

/* Плавный переход при раскрытии */
.spoiler-box:not(.is-collapsed) .spoiler-box__content {
  max-height: none;
  -webkit-mask-image: none;
  mask-image: none;
}

.spoiler-toggle {
  background: none;
  border: none;
  color: #F44336;
  cursor: pointer;
  padding: 4px 0;
  margin-top: 8px;
  font-size: 14px;
  font-weight: 500;
}

.spoiler-toggle:hover {
  text-decoration: underline;
}
.cards-slider__item{
  flex:0 0 calc((100% - 40px) / 3);
  min-width:0;
}
.cards-slider__nav{
  display:flex;
  align-items:center;
  gap:18px;
  margin-top:32px;
}
.cards-slider__dots{ display:flex; gap:8px; }
.cards-slider.is-static .cards-slider__nav{ display:none; }
.content-module{ margin-top:40px; }
.content-module__title{
  font-size:24px;
  font-weight:800;
  margin:0 0 20px;
  color:var(--ink);
}
.methodology-groups{
  display:grid;
  gap:24px;
}
.methodology-group{
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:24px;
  background:var(--brand-tint-2);
}
.methodology-group__title{
  font-size:18px;
  font-weight:700;
  margin:0 0 16px;
  color:var(--brand-700);
}
.methodology-slider .cards-slider__item{ flex-basis:calc((100% - 20px) / 2); }

/* ============================================================
   ВРАЧИ
   ============================================================ */
.doctor-card{
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  height:100%;
  transition:box-shadow .25s ease, transform .25s ease;
}
.doctor-card:hover{ box-shadow:var(--shadow); transform:translateY(-3px); }
.doctor-card__photo{
  position:relative;
  aspect-ratio:4/4.4;
  overflow:hidden;
  background:var(--brand-tint);
}
.doctor-card__photo img{
  width:100%; height:100%;
  object-fit:cover;
  object-position:top center;
  transition:transform .5s ease;
}
.doctor-card:hover .doctor-card__photo img{ transform:scale(1.04); }
.doctor-card__badges{
  position:absolute;
  top:14px; left:14px;
  display:flex;
  gap:8px;
}
.doctor-card__body{
  padding:20px 22px 22px;
  display:flex;
  flex-direction:column;
  flex:1;
}
.doctor-card__name{
  font-size:18px;
  font-weight:700;
  line-height:1.25;
  margin-bottom:6px;
}
.doctor-card__name a{ color:var(--ink); }
.doctor-card__name a:hover{ color:var(--brand); }
.doctor-card__spec{
  font-size:13.5px;
  color:var(--muted);
  line-height:1.45;
  margin-bottom:14px;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.doctor-card__city{
  font-size:13px;
  color:var(--muted);
  margin-bottom:10px;
}
.doctor-card__price{
  font-size:15px;
  font-weight:700;
  color:var(--brand-700);
  margin-bottom:14px;
}
.doctor-card__price small{
  display:block;
  font-size:12px;
  font-weight:500;
  color:var(--muted);
}
.doctor-card__foot{
  margin-top:auto;
  display:flex;
  gap:10px;
}
.doctor-card__foot .btn{ flex:1; padding:11px 10px; font-size:14px; }

/* ============================================================
   АКЦИИ
   ============================================================ */
.sale-card{
  position:relative;
  display:flex;
  flex-direction:column;
  height:100%;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  transition:box-shadow .25s ease, transform .25s ease;
}
.sale-card:hover{ box-shadow:var(--shadow); transform:translateY(-3px); }
.sale-card__pic{
  aspect-ratio:16/9.6;
  overflow:hidden;
  background:var(--brand-tint);
}
.sale-card__pic img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.sale-card:hover .sale-card__pic img{ transform:scale(1.05); }
.sale-card__badge{
  position:absolute;
  top:14px; left:14px;
  z-index:2;
}
.sale-card__body{
  padding:20px 22px 22px;
  display:flex;
  flex-direction:column;
  flex:1;
}
.sale-card__title{
  font-size:17px;
  font-weight:700;
  line-height:1.3;
  margin-bottom:8px;
  color:var(--ink);
}
.sale-card__anons{
  font-size:14px;
  color:var(--muted);
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
  margin-bottom:16px;
}
.sale-card__more{
  margin-top:auto;
  font-weight:600;
  font-size:14px;
  display:inline-flex;
  align-items:center;
  gap:7px;
}
.sale-card__more::after{ content:'→'; transition:transform .25s ease; }
.sale-card:hover .sale-card__more::after{ transform:translateX(4px); }

/* ============================================================
   МЕТОДИКИ
   ============================================================ */
.methods-head{
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:40px;
  align-items:end;
  margin-bottom:44px;
}
.methods-head p{ color:var(--muted); margin:0; font-size:16.5px; }
.method-card{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  height:100%;
}
.method-card__pic{ overflow:hidden; min-height:260px; background:var(--brand-tint); }
.method-card__pic img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.method-card:hover .method-card__pic img{ transform:scale(1.05); }
.method-card__body{
  padding:30px;
  display:flex;
  flex-direction:column;
}
.method-card__name{ font-size:21px; font-weight:700; margin-bottom:10px; }
.method-card__desc{
  color:var(--muted);
  font-size:15px;
  margin-bottom:22px;
  display:-webkit-box;
  -webkit-line-clamp:4;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.method-card__foot{ margin-top:auto; display:flex; align-items:center; gap:16px; }
.method-card__price{ font-weight:700; color:var(--brand-700); font-size:16px; }
.methods-slider .cards-slider__item{ flex-basis:calc((100% - 20px) / 2); }

/* ============================================================
   НОВОСТИ
   ============================================================ */
.news-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:20px;
}
.news-card{
  display:flex;
  flex-direction:column;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  transition:box-shadow .25s ease, transform .25s ease;
}
.news-card:hover{ box-shadow:var(--shadow); transform:translateY(-3px); }
.news-card__pic{ aspect-ratio:16/9.6; overflow:hidden; background:var(--brand-tint); }
.news-card__pic img{ display:block; width:100%; height:100%; object-fit:cover; object-position:center; transition:transform .5s ease; }
.news-card:hover .news-card__pic img{ transform:scale(1.05); }
.news-card__body{ padding:20px 22px 22px; display:flex; flex-direction:column; flex:1; }
.news-card__title{ font-size:17px; font-weight:700; line-height:1.3; margin-bottom:8px; }
.news-card__title a{ color:var(--ink); }
.news-card__title a:hover{ color:var(--brand); }
.news-card__anons{
  font-size:14px;
  color:var(--muted);
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
}
.news-card__more{
  margin-top:auto;
  padding-top:14px;
  font-weight:600;
  font-size:14px;
  display:inline-flex;
  gap:7px;
  align-items:center;
}
.news-card__more::after{ content:'→'; transition:transform .25s ease; }

/* ============================================================
   ВИДЕО
   ============================================================ */
.video-card{
  display:flex;
  flex-direction:column;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  transition:box-shadow .25s ease, transform .25s ease;
}
.video-card:hover{ box-shadow:var(--shadow); transform:translateY(-3px); }
.video-card__pic{ position:relative; aspect-ratio:16/9.6; overflow:hidden; background:var(--brand-tint); }
.video-card__pic img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.video-card:hover .video-card__pic img{ transform:scale(1.05); }
.video-card__play{
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  width:56px; height:56px; border-radius:50%;
  background:rgba(0,0,0,.55); display:flex; align-items:center; justify-content:center;
  transition:background .25s ease;
}
.video-card:hover .video-card__play{ background:var(--brand); }
.video-card__play::after{ content:''; border:10px solid transparent; border-left:16px solid #fff; margin-left:4px; }
.video-card__body{ padding:20px 22px 22px; display:flex; flex-direction:column; flex:1; }
.video-card__title{ font-size:17px; font-weight:700; line-height:1.3; margin-bottom:8px; color:var(--ink); }
.video-card__anons{
  font-size:14px; color:var(--muted);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.video-player{
  position:relative; width:100%; aspect-ratio:16/9;
  border-radius:var(--radius); overflow:hidden; background:#000; margin-bottom:28px;
}
.video-player video, .video-player iframe{ width:100%; height:100%; display:block; border:0; }
.video-player__missing{
  display:flex; align-items:center; justify-content:center; height:100%;
  color:#fff; font-size:15px; opacity:.7;
}
.video-methods{ margin-top:24px; padding-top:20px; border-top:1px solid var(--line); }
.video-methods__label{ font-weight:700; margin-bottom:10px; }
.video-methods__list{ display:flex; flex-wrap:wrap; gap:8px; }

.news-card:hover .news-card__more::after{ transform:translateX(4px); }

/* ============================================================
   О КЛИНИКЕ + ЦИФРЫ
   ============================================================ */
.about__grid{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);
  gap:56px;
  align-items:center;
}
.about__text h2{ color:#fff; font-size:clamp(26px,3.2vw,36px); font-weight:800; }
.about__text p{ color:#bcd9d9; font-size:16.5px; }
.about__stats{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:26px;
}
.about__stat{
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.14);
  border-radius:var(--radius-sm);
  padding:14px 20px;
}
.about__stat b{ display:block; font-size:24px; font-weight:800; color:#fff; line-height:1.1; }
.about__stat span{ font-size:13px; color:#9fc4c4; }
.about__stats--grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
}
.about__stats--grid .about__stat{
  display:flex;
  flex-direction:column;
  justify-content:center;
  text-align:center;
}
.about__photos {
    display: block;
}.about__photos img {
    border-radius: var(--radius);
    width: 100%;
    margin-bottom: 30px;
    margin-top: 20px;
}
.about__photos img:first-child{ transform:translateY(22px); }
.about__photos--split{
  grid-template-columns:1fr;
  grid-template-rows:auto auto;
}
.about__photos--split img:first-child{ transform:none;  min-height:280px; }
.about__photos--split img:last-child{ min-height:auto; }
.counters{
  margin-top:72px;
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:20px;
  border-top:1px solid rgba(255,255,255,.14);
  padding-top:44px;
}
.counters--4{ grid-template-columns:repeat(4, 1fr); }
.counters--big .counter__num{ font-size:clamp(32px,4.4vw,54px); }
.counters--big .counter__label{ font-size:15px; color:#cdeaea; }
.counter__num{
  font-size:clamp(26px,3vw,38px);
  font-weight:800;
  color:var(--accent);
  line-height:1.1;
  letter-spacing:-.01em;
}
.counter__label{ font-size:13.5px; color:#9fc4c4; margin-top:6px; line-height:1.4; }

/* ============================================================
   ПРЕИМУЩЕСТВА
   ============================================================ */
.advantages-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:20px;
}
.advantage{
  display:flex;
  gap:18px;
  padding:26px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  transition:border-color .25s ease, box-shadow .25s ease;
}
.advantage:hover{ border-color:var(--brand); box-shadow:var(--shadow-sm); }
.advantage__num{
  flex:none;
  width:44px; height:44px;
  border-radius:12px;
  background:var(--brand-tint);
  color:var(--brand-700);
  font-weight:800;
  font-size:17px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.advantage__text{ font-size:15.5px; line-height:1.5; font-weight:500; }

/* ============================================================
   ОТЗЫВЫ
   ============================================================ */
.review-card{
  display:flex;
  flex-direction:column;
  height:100%;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:24px;
  transition:box-shadow .25s ease, transform .25s ease;
}
.review-card:hover{ box-shadow:var(--shadow); transform:translateY(-3px); }
.review-card__top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  margin-bottom:6px;
}
.review-card__title{ font-size:16.5px; font-weight:700; line-height:1.3; color:var(--ink); }
.review-card__by{
  display:block;
  font-size:13px;
  color:var(--muted);
  margin-bottom:12px;
}
.review-card__stars{ color:var(--accent); font-size:14px; letter-spacing:2px; flex:none; padding-top:2px; }
.review-card__head{ display:none; }
.review-card__text{
  font-size:14px;
  color:var(--muted);
  display:-webkit-box;
  -webkit-line-clamp:4;
  -webkit-box-orient:vertical;
  overflow:hidden;
  margin-bottom:16px;
}
.review-card__tags{
  margin-top:auto;
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  padding-top:6px;
}
.review-card__tags span{
  font-size:12.5px;
  font-weight:600;
  color:var(--brand-700);
  background:var(--brand-tint);
  border-radius:999px;
  padding:4px 11px;
}

/* ============================================================
   ФОРМА ОБРАТНОЙ СВЯЗИ (чанк form-callback)
   ============================================================ */
.callback{
  background:linear-gradient(100deg, var(--brand) 0%, var(--brand-700) 100%);
  border-radius:calc(var(--radius) + 6px);
  padding:56px;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:56px;
  align-items:center;
  color:#fff;
  overflow:hidden;
  position:relative;
}
.callback::before{
  content:'';
  position:absolute;
  right:-120px; top:-120px;
  width:340px; height:340px;
  border-radius:50%;
  background:rgba(255,255,255,.07);
}
.callback__title{ font-size:clamp(24px,2.8vw,34px); font-weight:800; color:#fff; margin-bottom:12px; }
.callback__text{ color:#d4ecec; margin-bottom:26px; max-width:420px; }
.callback__phone{
  display:flex;
  align-items:center;
  gap:14px;
  font-size:clamp(22px,2.4vw,30px);
  font-weight:800;
  color:#fff;
}
.callback__phone:hover{ color:#ffe9dd; }
.callback__phone svg{ width:30px; height:30px; flex:none; }
.callback__note{ margin-top:8px; font-size:13.5px; color:#bfe2e2; }
.callback__form{
  background:#fff;
  border-radius:var(--radius);
  padding:32px;
  box-shadow:0 24px 48px rgba(10,58,60,.22);
  position:relative;
  z-index:1;
}
.callback__form-title{ color:var(--ink); font-size:19px; font-weight:700; margin-bottom:18px; }
.form-field{ margin-bottom:14px; }
.form-field input,
.form-field select,
.form-field textarea{
  width:100%;
  padding:14px 18px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  font:inherit;
  font-size:15px;
  color:var(--ink);
  background:#fbfdfd;
  transition:border-color .2s ease, box-shadow .2s ease;
}
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus{
  outline:none;
  border-color:var(--brand);
  box-shadow:0 0 0 3px rgba(0,156,157,.14);
}
.form-field input::placeholder{ color:#9db3b2; }
.form-agree{
  font-size:12.5px;
  color:var(--muted);
  margin-top:12px;
  line-height:1.45;
  margin-bottom: 10px;
}
.form-agree a{ text-decoration:underline; }
.form-consent{
  display:flex;
  gap:9px;
  align-items:flex-start;
  margin:0 0 14px;
  font-size:12.5px;
  line-height:1.45;
  color:var(--muted);
  cursor:pointer;
}
.form-consent input{ margin:3px 0 0; accent-color:var(--brand); }
.form-status{ display:none; margin:12px 0 0; font-size:13px; line-height:1.45; color:var(--muted); }
.form-status.is-visible{ display:block; }
.form-status.is-error{ color:#b1372c; }
.form-success{
  display:none;
  text-align:center;
  padding:30px 10px;
  color:var(--ink);
}
.form-success b{ display:block; font-size:19px; margin-bottom:8px; color:var(--brand-700); }
.callback__form.is-sent form{ display:none; }
.callback__form.is-sent .form-success{ display:block; }
.callback__form .btn{ width:100%; }
label.popup-form__checkbox-label {
    display: block;
}
/* ============================================================
   ПОДВАЛ
   ============================================================ */
.footer{
  background:var(--brand-900);
  color:#9fc4c4;
  font-size:14.5px;
}
.footer__top{
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1.2fr;
  gap:40px;
  padding:64px 0 48px;
}
.footer__logo img{ width:200px; filter:brightness(0) invert(1); margin-bottom:20px; }
.footer__rekv{ font-size:12.5px; line-height:1.7; color:#7faeae; }
.footer__title{
  color:#fff;
  font-size:15px;
  font-weight:700;
  margin-bottom:18px;
}
.footer__nav li{ margin-bottom:10px; }
.footer__nav a{ color:#9fc4c4; }
.footer__nav a:hover{ color:#fff; }
.footer__contacts{ display:grid; gap:14px; align-content:start; }
.footer__contacts .footer__phone{ font-size:20px; font-weight:800; color:#fff; }
.footer__contacts a{ color:#9fc4c4; }
.footer__contacts a:hover{ color:#fff; }
.footer__bottom{
  border-top:1px solid rgba(255,255,255,.12);
  padding:22px 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  font-size:12.5px;
  color:#7faeae;
  flex-wrap:wrap;
}
.footer__bottom-links{ display:flex; gap:22px; flex-wrap:wrap; }
.footer__bottom-links a{ color:#7faeae; }
.footer__bottom-links a:hover{ color:#fff; }
.footer__disclaimer {
    background: rgba(0, 0, 0, .18);
    padding: 14px 0;
    text-align: center;
    font-size: 26px;
    color: #a3c5c5;
    text-transform: uppercase;
}

/* ---------- Плавающие кнопки ---------- */
.float-btns{
  position:fixed;
  right:22px;
  bottom:22px;
  display:flex;
  flex-direction:column;
  gap:12px;
  z-index:90;
}
.float-btn{
  width:54px; height:54px;
  border-radius:50%;
  border:0;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 10px 24px rgba(10,58,60,.25);
  transition:transform .2s ease, background .25s ease, opacity .3s ease;
}
.float-btn svg{ width:22px; height:22px; }
.float-btn--call{ background:var(--accent); color:#fff; }
.float-btn--call:hover{ background:var(--accent-600); transform:scale(1.06); }
.float-btn--top{
  background:#fff;
  color:var(--brand-700);
  border:1px solid var(--line);
  opacity:0;
  visibility:hidden;
}
.float-btn--top.is-visible{ opacity:1; visibility:visible; }
.float-btn--top:hover{ background:var(--brand); color:#fff; border-color:var(--brand); }

/* ============================================================
   БЛОК: МИССИЯ
   ============================================================ */
.mission-block{
  display:grid;
  grid-template-columns: 1fr;
  gap: 32px;
  background-color: var(--brand-tint-2);
  padding: 40px;
  border-radius: var(--radius);
  border: 1px solid var(--line);
}
.mission-block__item h3,
.mission-block__item h2{
  font-size: 22px;
  font-weight: 700;
  color: var(--brand-700);
  margin-bottom: 12px;
}
.mission-block__item p,
.mission-block__item ul{
  margin: 0;
}
.mission-block__item ul{
  display: grid;
  gap: 12px;
  list-style: none;
  padding-left: 0;
}
.mission-block__item li{
  position: relative;
  padding-left: 32px;
  line-height: 1.5;
}
.mission-block__item li::before{
  content: '';
  position: absolute;
  left: 0;
  top: 2px;
  width: 22px;
  height: 22px;
  background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23009c9d' stroke-width='2'%3e%3cpath d='M22 11.08V12a10 10 0 1 1-5.93-9.14'/%3e%3cpath d='M22 4 12 14.01l-3-3'/%3e%3c/svg%3e") center/contain no-repeat;
}


/* ============================================================
   АДАПТИВ
   ============================================================ */
@media (max-width: 1080px){
  .topbar__meta{ margin-right:0; }
  .topbar__meta-item:nth-child(2){ display:none; }
  .topbar__meta-item:first-child > span > span,
  .topbar__meta-item:first-child > span > br{ display:none; }
  .cards-slider__item{ flex-basis:calc((100% - 20px) / 2); }
  .methods-slider .cards-slider__item{ flex-basis:100%; }
  .directions-grid{ grid-template-columns:repeat(2, 1fr); }
  .news-grid{ grid-template-columns:repeat(2, 1fr); }
  .advantages-grid{ grid-template-columns:repeat(2, 1fr); }
  .counters{ grid-template-columns:repeat(3, 1fr); row-gap:32px; }
  .footer__top{ grid-template-columns:1fr 1fr; }
  .callback{ padding:40px; gap:40px; }
}

@media (max-width: 1180px){
  /* пунктов меню много — переключаемся на бургер раньше общего брейкпоинта,
     иначе .nav__list не помещается в container и вылезает за его границы.
     Меню то же самое — .nav__list просто раскрывается в столбик по клику на бургер,
     без отдельного дублирующего дерева пунктов. */
  .nav__list{ display:none; }
  .nav__burger{ display:flex; }
  .nav__search{ display:none; }
  .nav__inner{ justify-content:center; flex-wrap:wrap; }

  body.menu-open .nav__list{
    display:flex;
    flex-direction:column;
    width:100%;
    margin:0;
  }
  .nav__item{ width:100%; }
  .nav__link{
    width:100%;
    justify-content:space-between;
    padding:14px 4px;
    border-top:1px solid rgba(255,255,255,.14);
  }
  .nav__item--has-sub > .nav__link::after{ transition:transform .25s ease; }
  .nav__item--has-sub.is-open > .nav__link::after{ transform:rotate(225deg) translateY(2px); }

  .nav__dropdown{
    position:static;
    opacity:1;
    visibility:visible;
    transform:none;
    max-height:0;
    overflow:hidden;
    background:rgba(0,0,0,.12);
    border-radius:0;
    box-shadow:none;
    padding:0;
    transition:max-height .3s ease;
  }
  .nav__item--has-sub.is-open .nav__dropdown{
    max-height:800px;
    padding:6px 0 10px;
  }
  .nav__dropdown a{ color:#fff; }
  .nav__dropdown a:hover{ background:rgba(255,255,255,.14); color:#fff; }

  body.menu-open .nav__search{
    display:block;
    width:100%;
    height:44px;
    margin:10px 0 14px;
  }
  body.menu-open .nav__search-input,
  body.menu-open .nav__search-input:focus{ width:100%; }
}

@media (max-width: 860px){
  .section{ padding:60px 0; }
  .hero__slide{ grid-template-columns:1fr; min-height:0; padding:36px 0 10px; gap:24px; }
      .hero__img {
        order: -1;
        align-items: center;
        justify-content: center;
    }
  .hero__img img{ max-height:240px; }
  .hero__text{ margin-bottom:24px; }
  .hero__nav{ padding-bottom:16px; }
  .hero__arrows{ margin-right:64px; }
  .methods-head{ grid-template-columns:1fr; gap:18px; }
  .method-card{ grid-template-columns:1fr; }
  .method-card__pic{ min-height:200px; aspect-ratio:16/9; }
  .about__grid{ grid-template-columns:1fr; gap:40px; }
  .about__photos img:first-child{ transform:none; }
  .about__photos--split img:first-child{ min-height:auto; }
  .logo-grid{ grid-template-columns:repeat(3, 1fr); }
  .page-head--media .page-head__inner{ grid-template-columns:1fr; gap:24px; }
  .page-head--media .page-head__media{ order:-1; max-width:320px; }
  .callback{ grid-template-columns:1fr; padding:36px 28px; }
  .callback__form{ padding:26px 22px; }
}

@media (max-width: 900px){
  /* Строка шапки (лого + город + телефон + кнопка) требует ~826px при самом длинном
     названии города, поэтому ниже 900px разрешаем ей переноситься: контакты уходят
     на вторую строку вместо горизонтальной прокрутки всей страницы. */
  .topbar__inner{ flex-wrap:wrap; gap:14px 20px; }
  .topbar__meta{ min-width:0; }
  .topbar__contacts{ margin-left:auto; }
}

@media (max-width: 620px){
  .container{ padding-inline:16px; }
  .topbar__inner{ flex-wrap:wrap; gap:14px; padding:12px 16px; }
  .topbar__logo img{ width:160px; }
  .topbar__contacts{ margin-left:auto; flex-wrap:wrap; justify-content:flex-end; gap:10px; row-gap:8px; }
  .topbar__phone{ font-size:16px; }
  .topbar__phone small{ display:none; }
  .topbar__contacts .btn{ padding:11px 16px; font-size:13.5px; white-space:nowrap; }
  .section-head{ flex-direction:column; align-items:flex-start; gap:12px; margin-bottom:30px; }
  .directions-grid,
  .news-grid,
  .advantages-grid{ grid-template-columns:1fr; }
  .cards-slider__item{ flex-basis:100%; }
  .counters,
  .about__stats--grid,
  .logo-grid{ grid-template-columns:repeat(2, 1fr); }
  .doctor-card__foot{ flex-direction:column; }
  .footer__top{ grid-template-columns:1fr; gap:32px; padding:48px 0 36px; }
  .float-btn{ width:48px; height:48px; }
}

@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ transition-duration:.01ms !important; animation-duration:.01ms !important; }
  html{ scroll-behavior:auto; }
}

/* ============================================================
   МОДАЛЬНОЕ ОКНО (чанк modal)
   ============================================================ */
.modal{
  position:fixed;
  inset:0;
  z-index:1500;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  visibility:hidden;
}
.modal__overlay{
  position:absolute;
  inset:0;
  background:rgba(10,58,60,.5);
  opacity:0;
  transition:opacity .3s ease;
}
.modal__box{
  position:relative;
  width:min(440px, 100%);
  background:#fff;
  border-radius:var(--radius);
  padding:34px 30px;
  box-shadow:0 32px 64px rgba(10,58,60,.3);
  transform:translateY(16px) scale(.97);
  opacity:0;
  transition:transform .3s cubic-bezier(.32,.72,.35,1), opacity .3s ease;
}
.modal.is-open{ visibility:visible; }
.modal.is-open .modal__overlay{ opacity:1; }
.modal.is-open .modal__box{ transform:none; opacity:1; }
.modal__close{
  position:absolute;
  top:14px; right:14px;
  width:36px; height:36px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fff;
  color:var(--ink);
  font-size:16px;
}
.modal__title{ font-size:22px; font-weight:800; margin-bottom:8px; }
.modal__text{ color:var(--muted); font-size:14.5px; margin-bottom:20px; }
.modal .btn{ width:100%; }
.modal.is-sent form{ display:none; }
.modal.is-sent .form-success{ display:block; }
body.modal-open{ overflow:hidden; }

/* ============================================================
   ЛАЙТБОКС (просмотр изображений в модалке)
   ============================================================ */
[data-lightbox]{ cursor:zoom-in; }
.modal__box--lightbox{
  width:min(920px, 100%);
  background:transparent;
  box-shadow:none;
  padding:0;
  pointer-events:none;
}
.modal__box--lightbox .modal__close,
.modal__box--lightbox .lightbox__img,
.modal__box--lightbox .lightbox__nav{
  pointer-events:auto;
}
.lightbox__img{
  display:block;
  max-width:100%;
  max-height:80vh;
  margin:0 auto;
  border-radius:var(--radius-sm);
  box-shadow:0 24px 60px rgba(0,0,0,.5);
}
.lightbox__nav{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:20px;
  margin-top:18px;
}
.lightbox__count{ color:#fff; font-size:14px; font-weight:600; }
.modal__box--lightbox .modal__close{ top:12px; right:12px; background:rgba(0,0,0,.55); border-color:rgba(255,255,255,.4); color:#fff; }

/* ============================================================
   МУЛЬТИГОРОД (модалка выбора города)
   ============================================================ */
.modal__box--wide{ width:min(560px, 100%); }

/* --- Всплывающий баннер акции (promo-popup) --------------------------- */
.promo-popup{ overflow:hidden; }
.promo-popup__media{ position:relative; margin:-34px -30px 20px; line-height:0; }
.promo-popup__media img{ width:100%; display:block; }
.promo-popup__timer{ position:absolute; left:0; right:0; bottom:0; height:17.5%; background:#228389; display:flex; align-items:center; justify-content:center; gap:clamp(8px,3vw,18px); }
/* #228389 — не токен из :root, а точный цвет полосы "МЕСТО ДЛЯ ТАЙМЕРА"
   на самой картинке баннера (сэмплирован пипеткой) — сплошная плашка
   поверх неё, чтобы не проступал статичный текст из картинки под цифрами. */
.promo-popup__timer-item{ text-align:center; }
.promo-popup__timer-item span{ display:block; color:#fff; font-size:clamp(15px,3.6vw,21px); font-weight:800; line-height:1.1; }
.promo-popup__timer-item label{ display:block; color:rgba(255,255,255,.75); font-size:10px; text-transform:uppercase; letter-spacing:.03em; }
.promo-popup__body{ text-align:center; }
.city-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:10px;
  margin-bottom:18px;
}
.city-grid__item{
  padding:13px 10px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:#fbfdfd;
  font:inherit;
  font-size:14.5px;
  font-weight:600;
  color:var(--ink);
  text-align:center;
  transition:border-color .2s ease, background .2s ease, color .2s ease;
}
.city-grid__item:hover{ border-color:var(--brand); color:var(--brand-700); }
.city-grid__item.is-active{
  background:var(--brand);
  border-color:var(--brand);
  color:#fff;
}
.city-current{ font-size:13.5px; color:var(--muted); }
.city-current b{ color:var(--brand-700); }

/* пустое состояние после фильтрации по городу — весь блок (включая заголовок) скрывается целиком */
.landing-section:has(.cards-slider.is-city-empty){ display:none; }
[data-city-hidden]{ display:none !important; }

@media (max-width: 620px){
  .city-grid{ grid-template-columns:repeat(2, 1fr); }
}

/* ============================================================
   ОТЗЫВЫ: фото и видео
   ============================================================ */
.review-card__media{
  position:relative;
  display:block;
  margin:-24px -24px 16px;
  aspect-ratio:16/10;
  overflow:hidden;
  border-radius:var(--radius) var(--radius) 0 0;
  background:var(--brand-tint);
}
.review-card__media img{
  width:100%; height:100%;
  object-fit:cover;
  transition:transform .5s ease;
}
.review-card:hover .review-card__media img{ transform:scale(1.05); }
.review-card__play{
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:rgba(10,58,60,.22);
  transition:background .25s ease;
}
.review-card:hover .review-card__play{ background:rgba(10,58,60,.34); }
.review-card__play span{
  width:62px; height:62px;
  border-radius:50%;
  background:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 10px 26px rgba(10,58,60,.3);
  transition:transform .25s ease;
}
.review-card:hover .review-card__play span{ transform:scale(1.08); }
.review-card__play svg{ width:22px; height:22px; fill:var(--brand); margin-left:3px; }
.review-card__mediatype{
  position:absolute;
  top:12px; left:12px;
  z-index:2;
}

/* ============================================================
   ВНУТРЕННИЕ СТРАНИЦЫ: крошки, шапка страницы
   ============================================================ */
.page-head{
  background:var(--brand-tint-2);
  padding:26px 0 34px;
  border-bottom:1px solid var(--line);
}
.breadcrumbs{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  font-size:13.5px;
  color:var(--muted);
  margin-bottom:18px;
}
.breadcrumbs a{ color:var(--muted); }
.breadcrumbs a:hover{ color:var(--brand); }
.breadcrumbs li{ display:flex; align-items:center; gap:6px; }
.breadcrumbs li:not(:last-child)::after{
  content:'/';
  color:#b9cbcb;
}
.breadcrumbs li:last-child{ color:var(--ink); font-weight:600; }
.page-head__title{
  font-size:clamp(28px,3.6vw,42px);
  font-weight:800;
  letter-spacing:-.015em;
  margin:0;
}
.page-head__lead{
  margin:14px 0 0;
  max-width:760px;
  font-size:16.5px;
  color:var(--muted);
}

/* картинка справа в шапке страницы (опционально, .page-head--media) */
.page-head--media .page-head__inner{
  display:grid;
  grid-template-columns:1fr minmax(220px, 340px);
  gap:40px;
  align-items:center;
}
.page-head__media img{
  display:block;
  width:100%;
  border-radius:var(--radius);
  box-shadow:var(--shadow-sm);
}

/* ---------- Фильтр каталога (пилюли / алфавит) ---------- */
.catalog-filter{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:36px;
}
.catalog-filter a,
.catalog-filter button,
.catalog-filter span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:40px;
  padding:9px 15px;
  border:1px solid var(--line);
  border-radius:999px;
  background:#fff;
  font:inherit;
  font-size:14px;
  font-weight:600;
  color:var(--ink);
  cursor:pointer;
  transition:border-color .2s ease, background .2s ease, color .2s ease;
}
.catalog-filter a:hover,
.catalog-filter button:hover{ border-color:var(--brand); color:var(--brand-700); }
.catalog-filter .is-active,
.catalog-filter span{
  background:var(--brand);
  border-color:var(--brand);
  color:#fff;
}
.catalog-filter .is-empty{ opacity:.35; pointer-events:none; }

/* ============================================================
   УНИВЕРСАЛЬНЫЙ КАТАЛОГ-ПЛИТКА
   (направления, акции, новости, статьи, методики, врачи, отзывы)
   ============================================================ */
.tile-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:20px;
}
.tile-card{
  position:relative;
  display:flex;
  flex-direction:column;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  overflow:hidden;
  transition:box-shadow .25s ease, transform .25s ease, border-color .25s ease;
}
.tile-card:hover{
  box-shadow:var(--shadow);
  transform:translateY(-3px);
  border-color:transparent;
}
.tile-card__pic{
  display:block;
  aspect-ratio:16/9.4;
  overflow:hidden;
  background:var(--brand-tint);
}
.tile-card__pic img{
  width:100%; height:100%;
  object-fit:cover;
  transition:transform .5s ease;
}
.tile-card:hover .tile-card__pic img{ transform:scale(1.05); }
.tile-card__label{
  position:absolute;
  top:14px; left:14px;
  z-index:2;
}
.tile-card__body{
  padding:22px 22px 24px;
  display:flex;
  flex-direction:column;
  flex:1;
}
.tile-card__title{
  font-size:18.5px;
  font-weight:700;
  line-height:1.28;
  margin:0 0 8px;
  color:var(--ink);
}
.tile-card__anons{
  font-size:14.5px;
  color:var(--muted);
  line-height:1.55;
  display:-webkit-box;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
  margin-bottom:18px;
}
.tile-card__price{
  font-size:18px;
  font-weight:700;
  color:var(--brand-700);
  margin-bottom:18px;
}
.tile-card__more{
  margin-top:auto;
  font-weight:600;
  font-size:14px;
  color:var(--brand);
  display:inline-flex;
  align-items:center;
  gap:7px;
  background:none;
  border:0;
  padding:0;
  font-family:inherit;
  cursor:pointer;
}
.tile-card__more::after{
  content:'→';
  transition:transform .25s ease;
}
.tile-card:hover .tile-card__more{ color:var(--brand-700); }
.tile-card:hover .tile-card__more::after{ transform:translateX(4px); }
.tile-card__foot{ margin-top:auto; display:flex; align-items:center; gap:12px; }
/* вся карточка — ссылка (растянутая; вешать на любой якорь внутри .tile-card,
   кроме .tile-card__more — у него ::after занят стрелкой) */
.tile-card__link{ position:static; }
.tile-card__link::after{
  content:'';
  position:absolute;
  inset:0;
  z-index:3;
}

/* ---------- Пагинация ---------- */
.pagination{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  margin-top:48px;
}
.pagination a,
.pagination span{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:44px;
  height:44px;
  padding:0 14px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:#fff;
  font-size:15px;
  font-weight:600;
  color:var(--ink);
  transition:border-color .2s ease, background .2s ease, color .2s ease;
}
.pagination a:hover{ border-color:var(--brand); color:var(--brand-700); }
.pagination span.is-current{
  background:var(--brand);
  border-color:var(--brand);
  color:#fff;
}
.pagination .is-dots{ border-color:transparent; background:transparent; }

@media (max-width: 1080px){
  .tile-grid{ grid-template-columns:repeat(2, 1fr); }
}
@media (max-width: 620px){
  .tile-grid{ grid-template-columns:1fr; }
  .content-sidebar--2-col{ grid-template-columns:1fr; }
  .page-head{ padding:20px 0 26px; }
}

/* ============================================================
   СТРАНИЦА: ЧТО ЛЕЧИМ (новый каталог)
   ============================================================ */
.chto-lechim-catalog {
  display:grid;
  grid-template-columns: minmax(0, 240px) minmax(0, 1fr);
  gap: 40px;
  align-items: flex-start;
}
.chto-lechim-catalog__filters {
  position: sticky;
  top: 124px; /* С отступом от липкого меню */
  display: grid;
  gap: 18px;
}

/* фильтр «Части тела» — боксом, по образцу .landing-nav */
.catalog-parts-filter{
  display: grid;
  gap: 4px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: linear-gradient(180deg, #ffffff 0%, var(--brand-tint-2) 100%);
  box-shadow: var(--shadow-sm);
}
.catalog-parts-filter__title{
  font-size: 12.5px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .05em;
  color: var(--muted);
  padding: 6px 10px 10px;
}
.catalog-parts-filter a{
  display: block;
  padding: 10px 10px;
  border-radius: 10px;
  font-size: 14.5px;
  font-weight: 600;
  color: var(--ink);
  transition: background .2s ease, color .2s ease;
}
.catalog-parts-filter a:hover{
  background: rgba(0,156,157,.08);
  color: var(--brand-700);
}
.catalog-parts-filter a.is-active{
  background: var(--brand);
  color: #fff;
}
#reset-filters{ display: none; width: 100%; margin-top: 4px; }
#no-results{ display: none; }

/* группа вопросов одной темы на странице «Вопрос-ответ» — видна только активная */
.topic-group{ display: none; }
.topic-group.is-active{ display: block; }

.catalog-search{
  margin-bottom: 18px;
}
.catalog-filter + .catalog-filter {
  margin-top: 0;
}
.catalog-search__input{
  width: 100%;
  padding: 14px 20px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  font:inherit;
  font-size: 16px;
  background: var(--brand-tint-2);
  transition: border-color .2s ease, box-shadow .2s ease;
}
.catalog-search__input:focus{
  outline: none;
  border-color: var(--brand);
  box-shadow: 0 0 0 3px rgba(0,156,157,.14);
  background: #fff;
}

/* каталог заболеваний — сетка карточек-категорий, а не column-count:
   при сильно разной длине категорий colum-count даёт хаотичный порядок чтения */
.chto-lechim-categories{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
  align-items: start;
  margin-top: 28px;
}
.chto-lechim-category{
  padding: 24px 26px 20px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
}
.chto-lechim-category__title{
  font-size: 18px;
  font-weight: 800;
  margin-bottom: 14px;
  padding-bottom: 14px;
  border-bottom: 2px solid var(--brand-tint);
  color: var(--brand-700);
}
.chto-lechim-category__list li{
  margin: 0;
}
.chto-lechim-category__list a{
  display: block;
  padding: 9px 0;
  border-bottom: 1px solid var(--line);
  font-size: 14.5px;
  line-height: 1.4;
  color: var(--ink);
  transition: color .2s ease;
}
.chto-lechim-category__list li:last-child a{ border-bottom: 0; }
.chto-lechim-category__list a:hover{
  color: var(--brand-700);
}

@media (max-width: 1080px){
  .chto-lechim-catalog{
    grid-template-columns: minmax(0, 220px) minmax(0, 1fr);
    gap: 28px;
  }
}

@media (max-width: 860px){
  .chto-lechim-catalog{
    grid-template-columns: 1fr;
  }
  .chto-lechim-catalog__filters{
    position: static;
  }
  .catalog-parts-filter{
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    background: none;
    border: 0;
    box-shadow: none;
    padding: 0;
  }
  .catalog-parts-filter__title{
    width: 100%;
    padding: 0 0 4px;
  }
  .catalog-parts-filter a{
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 8px 14px;
  }
  .catalog-parts-filter a.is-active{
    border-color: var(--brand);
  }
}

@media (max-width: 620px){
  .chto-lechim-categories{
    grid-template-columns: 1fr;
  }
}

.body-map {
  width: 100%;
  max-height: 450px;
}
.body-part {
  fill: var(--brand-tint);
  stroke: var(--brand-700);
  stroke-width: 2;
  transition: all .25s ease;
}
.body-part:hover {
  cursor: pointer;
  opacity: .8;
}
.body-part.is-active {
  fill: var(--accent);
  stroke: var(--accent-600);
}

.instruction-block {
  background: var(--brand-tint-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 24px 30px;
  margin-bottom: 36px;
}
.instruction-block__title {
  font-size: 20px;
  font-weight: 700;
  color: var(--brand-900);
  margin: 0 0 14px;
}
.instruction-block__list {
  display: grid;
  gap: 10px;
  font-size: 15px;
  line-height: 1.5;
  color: var(--muted);
}
.instruction-block__list li {
  display: flex;
  gap: 10px;
}
.instruction-block__list li strong {
  color: var(--ink);
}
.tile-grid--2-col { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 620px) {
  .tile-grid--2-col { grid-template-columns: 1fr; }
}
.info-card-note {
  grid-column: 1 / -1;
  margin: 4px 0 0;
  padding: 14px 18px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--brand-tint-2);
  color: var(--muted);
  font-size: 14px;
  line-height: 1.5;
}

/* ============================================================
   СЕТКА ЛОГОТИПОВ (партнёры, страховые компании)
   ============================================================ */
.logo-grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:20px;
}
.logo-grid__item{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:120px;
  padding:24px;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--radius);
  transition:box-shadow .2s ease, border-color .2s ease;
}
.logo-grid__item:hover{ border-color:var(--brand); box-shadow:var(--shadow-sm); }
.logo-grid__item img{
  max-width:100%;
  max-height:56px;
  object-fit:contain;
}

/* ============================================================
   ШАБЛОН: ЛЕНДИНГ НАПРАВЛЕНИЯ
   ============================================================ */
.landing-layout {
  padding: 44px 0 88px;
}
.landing-layout__inner {
  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 60px;
  align-items: flex-start;
}
.landing-layout__main {
  min-width: 0;
}
.landing-layout__aside {
  position: sticky;
  top: 124px;
  display: grid;
  gap: 18px;
}
.landing-nav {
  display: grid;
  gap: 8px;
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: linear-gradient(180deg, #ffffff 0%, var(--brand-tint-2) 100%);
  box-shadow: var(--shadow-sm);
}
.landing-nav a,
.landing-nav button {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px;
  width: 100%;
  padding: 10px 12px;
  border: 0;
  background: none;
  font: inherit;
  font-size: 14px;
  font-weight: 600;
  color: var(--ink);
  border-radius: 12px;
  cursor: pointer;
  transition: all .2s ease;
  text-align: left;
}
.landing-nav a span,
.landing-nav button span {
  line-height: 1.25;
}
.landing-nav a small,
.landing-nav button small {
  display: block;
  font-size: 11px;
  color: var(--muted);
  font-weight: 500;
  white-space: normal;
  line-height: 1.45;
}
.landing-nav a:hover,
.landing-nav button:hover {
  color: var(--brand-700);
  background: rgba(0,156,157,.08);
  transform: translateX(2px);
}
.landing-nav a.is-active,
.landing-nav button.is-active {
  color: var(--brand-700);
  background: rgba(0,156,157,.14);
  font-weight: 700;
}

.landing-section {
  padding-bottom: 52px;
  margin-bottom: 52px;
  border-bottom: 1px solid var(--line);
}
.landing-layout__main > section:last-child {
  border-bottom: 0;
  margin-bottom: 0;
}
.method-panel {
  display: grid;
  gap: 20px;
  margin: 26px 0 0;
}
.method-panel--2-col {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.method-panel--3-col {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.method-panel__item {
  padding: 24px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
}
.method-panel__item h3 {
  margin: 0 0 14px;
  font-size: 18px;
  line-height: 1.25;
  color: var(--ink);
}
.method-panel__item p {
  margin: 0;
  color: var(--muted);
  line-height: 1.7;
}
.method-panel__item .content-highlight {
  margin-top: 18px;
}
@media (max-width: 960px) {
  .method-panel--2-col,
  .method-panel--3-col {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 620px) {
  .method-panel__item p {
    font-size: 14px;
    line-height: 1.55;
  }
}
.landing-section__title {
  font-size: 28px;
  font-weight: 800;
  margin-bottom: 24px;
}
.landing-section__lead {
  font-size: 16px;
  color: var(--muted);
  max-width: 680px;
  margin: -16px 0 24px;
}
.landing-section__action {
  margin-top: 28px;
}

/* Блок с ценами */
.price-list {
  display: grid;
  gap: 14px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 28px;
}
.price-list__item {
  display: flex;
  align-items: baseline;
  gap: 12px;
  font-size: 16px;
}
.price-list__dots {
  flex: 1;
  border-bottom: 1px dotted #ccc;
  transform: translateY(-4px);
}
.price-list__value {
  font-weight: 700;
  font-size: 17px;
  color: var(--brand-700);
}

/* Прайс-лист: категории аккордеоном, внутри — таблица услуг и цен */
.price-accordion {
  display: grid;
  gap: 12px;
}
.price-accordion__item {
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  padding: 0 22px;
  background: #fff;
  min-width: 0;
}
.price-accordion__item[open] {
  background: var(--brand-tint-2);
}
.price-accordion__item summary {
  padding: 18px 0;
  font-size: 17px;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.price-accordion__item summary::after {
  content: '+';
  font-size: 24px;
  font-weight: 400;
  color: var(--brand);
  transition: transform .25s ease;
}
.price-accordion__item[open] summary::after {
  transform: rotate(45deg);
}
.price-accordion__item .price-table-wrap {
  padding-bottom: 18px;
  overflow-x: auto;
}
.price-table {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
  border-radius: var(--radius-sm);
  overflow: hidden;
}
.price-table th {
  text-align: left;
  font-size: 13px;
  color: var(--muted);
  font-weight: 700;
  padding: 10px 16px;
  border-bottom: 1px solid var(--line);
}
.price-table td {
  padding: 12px 16px;
  border-bottom: 1px solid var(--line);
  font-size: 15px;
}
.price-table tr:last-child td { border-bottom: 0; }
.price-table th:last-child,
.price-table td:last-child {
  text-align: right;
  white-space: nowrap;
  font-weight: 700;
  color: var(--brand-700);
}
.price-table th:nth-child(2),
.price-table td:nth-child(2) {
  color: var(--muted);
  white-space: nowrap;
}
@media (max-width: 620px) {
  .price-table th:nth-child(2),
  .price-table td:nth-child(2),
  .price-table th:nth-child(3),
  .price-table td:nth-child(3) {
    display: none;
  }
}

/* Блок FAQ (аккордеон) */
.faq-accordion {
  display: grid;
  gap: 12px;
}
.faq-accordion__item {
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  padding: 6px 22px;
  background: #fff;
}
.faq-accordion__item[open] {
  background: var(--brand-tint-2);
}
.faq-accordion__item summary {
  padding: 14px 0;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.faq-accordion__item summary::after {
  content: '+';
  font-size: 24px;
  font-weight: 400;
  color: var(--brand);
  transition: transform .25s ease;
}
.faq-accordion__item[open] summary::after {
  transform: rotate(45deg);
}
@media (max-width: 620px) {
  .faq-accordion__item {
    padding: 4px 16px;
  }
  .faq-accordion__item summary {
    padding: 12px 0;
    font-size: 14.5px;
    gap: 12px;
  }
}
.faq-accordion__item .content {
  padding-bottom: 18px;
  font-size: 15px;
  color: var(--muted);
}

@media (max-width: 960px) {
  .landing-layout__inner {
    grid-template-columns: 1fr;
  }
  .landing-layout__aside {
    position: static;
    margin-bottom: 40px;
    border-left: 0;
  }
  .landing-nav {
    flex-direction: row;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    border-left: 0;
  }
  .landing-nav a,
  .landing-nav button {
    width: auto;
    flex-direction: row;
    align-items: center;
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    padding: 8px 14px;
    margin-left: 0;
  }
  .landing-nav a small,
  .landing-nav button small {
    display: none;
  }
  .landing-nav a.is-active,
  .landing-nav button.is-active {
    border-left: 1px solid var(--brand);
    border-color: var(--brand);
    background: var(--brand);
    color: #fff;
  }
}

/* Дополнительные контентные блоки для лендинга */
.content-sidebar {
  display: grid;
  gap: 20px;
  margin-top: 32px;
}
.content-sidebar--2-col {
  grid-template-columns: 1fr 1fr;
}
.map {
  border: 0;
  display: block;
  width: 100%;
  aspect-ratio: 16/7;
  border-radius: var(--radius);
  margin-top: 32px;
}
.content-image {
  margin: 28px 0;
}
.content-image img {
  border-radius: var(--radius);
  box-shadow: var(--shadow-sm);
}
.content-image figcaption {
  font-size: 13px;
  color: var(--muted);
  text-align: center;
  margin-top: 10px;
}

.content-highlight {
  background: var(--brand-tint-2);
  border-left: 3px solid var(--brand);
  padding: 20px 24px;
  margin: 28px 0;
  font-size: 15px;
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
}


/* строка «текст слева — кнопка справа»: баннер городов акции, приглашение задать вопрос и т.п. */
.cta-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 24px 32px;
}
.cta-row__list {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 16px;
}
.cta-row__list .chip{
  font-size: 15px;
  font-weight: 700;
  padding: 12px 24px;
  gap: 8px;
  background: var(--brand);
  color: var(--white);
  box-shadow: var(--shadow-sm);
  transition: transform .18s ease, background .18s ease, box-shadow .18s ease;
}
.cta-row__list .chip:hover{
  background: var(--brand-700);
  color: var(--white);
  transform: translateY(-3px);
  box-shadow: var(--shadow);
}

/* карточка фактов пациента (отзывы): возраст / врач / симптомы / диагноз и т.д.
   любая строка может отсутствовать — просто не выводится её .review-facts__row */
.review-facts {
  display: grid;
  gap: 10px;
  padding: 5px 0 0 20px;
  margin: 60px 0;
  position: relative;
}
.review-facts::after {
  content: "";
  width: 5px;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background: #2f8488;
}
.method-sidebar-card__body .review-facts {
  margin: 0;
  padding: 15px 10px 5px 20px;
}
.review-facts__row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  font-size: 16px;
  line-height: 1.5;
}
.review-facts dt {
  font-weight: 800;
  color: var(--brand-700);
}
.review-facts dt::after {
  content: ':';
}
.review-facts dd {
  margin: 0;
  color: var(--ink);
}



.content h5,
.content h6 {
  font-weight: 800;
  margin-top: 1.6em;
  margin-bottom: .7em;
  font-size: 16px;
}

.content .warningText {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: var(--brand-tint-2, #fff3e0);
  border-radius: var(--radius-sm);
  padding: 14px 16px;
  margin: 20px 0;
}
.content .warningText img {
  display: block;
  width: 28px;
  height: 28px;
  max-width: 28px;
  flex: 0 0 28px;
  margin: 2px 0 0;
}
.content .warningText p {
  margin: 0;
}
.content img {
  display: block;
  max-width: 100%;
  height: auto;
  margin: 24px auto;
  border-radius: var(--radius-sm);
}
.content img[align="left"] {
  display: inline;
  margin: 4px 25px 16px 0;
}
.content img[align="right"] {
  display: inline;
  margin: 4px 0 16px 25px;
}

.content figure {
  margin: 28px 0;
}

.content figcaption {
  margin-top: 10px;
  font-size: 14px;
  color: var(--muted);
  text-align: center;
}

.content blockquote {
  margin: 28px 0;
  padding: 20px 24px;
  border-left: 4px solid var(--brand);
  background: var(--brand-tint);
  color: var(--ink);
  border-radius: var(--radius-sm);
}

.content table {
  display: block;
  width: 100%;
  border-collapse: collapse;
  margin: 28px 0;
  overflow-x: auto;
}

.content th,
.content td {
  padding: 14px 16px;
  border: 1px solid var(--line);
  text-align: left;
  vertical-align: top;
}

.content th {
  background: var(--brand-tint);
}

.content iframe,
.content video,
.content audio {
  width: 100%;
  max-width: 100%;
  display: block;
}

.expert-comment {
  display: flex;
  gap: 20px;
  align-items: flex-start;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 24px;
  margin: 28px 0;
}
.expert-comment__photo {
  flex-shrink: 0;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  object-fit: cover;
}
.expert-comment__name { font-weight: 700; font-size: 16px; margin-bottom: 2px; }
.expert-comment__spec { font-size: 13px; color: var(--muted); margin-bottom: 10px; }
.expert-comment__text { font-size: 15px; color: var(--muted); }
.expert-comment__text p:last-child { margin-bottom: 0; }

/* ============================================================
   СТИЛИ ДЛЯ КОНТЕНТА (WYSIWYG-редактор)
   ============================================================ */
.content h2, .content h3, .content h4 {
  font-weight: 800;
  margin-top: 1.8em;
  margin-bottom: .8em;
}
.content h2 { font-size: 24px; }
.content h3 { font-size: 20px; }
.content h4 { font-size: 18px; }

.content p {
  margin-bottom: 1em;
}
.content p:last-child {
  margin-bottom: 0;
}

.content ul, .content ol {
  margin: 1.2em 0;
  padding-left: 20px;
}
.content ul li, .content ol li {
  margin-bottom: .8em;
  padding-left: 10px;
}
.content ul {
  list-style: none;
}
.content ul li::before {
  content: '•';
  color: var(--brand);
  font-weight: bold;
  display: inline-block;
  width: 1em;
  margin-left: -1.1em;
  font-size: 1.2em;
  line-height: 1;
  vertical-align: middle;
  transform: translateY(-1px);
}

/* source content sometimes wraps a list item's text in a stray <p> (invalid
   HTML - a block element right after the li::before bullet forces the bullet
   onto its own line, detaching it from the text, see MIGRATION_LOG.md). Force
   it back inline so the bullet and text stay on the same line. */
.content ul li p,
.content ol li p {
  display: inline;
  margin: 0;
}


/* Стили для основного контента (внутри .content) */
.content ol {
  list-style: none;
  counter-reset: num-list;
  margin: 1em 0;
  padding-left: 40px;
}
.content ol li {
  position: relative;
  margin-bottom: 12px;
  counter-increment: num-list;
}
.content ol li::before {
  content: counter(num-list);
  position: absolute;
  left: -44px;
  top: -2px;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: var(--brand-tint);
  color: var(--brand-700);
  font-weight: 700;
  font-size: 15px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.image-grid {
  display: grid;
  gap: 18px;
  margin: 28px 0;
}
.image-grid--2-col { grid-template-columns: 1fr 1fr; }
.image-grid--3-col { grid-template-columns: 1fr 1fr 1fr; }
.image-grid img { width: 100%; border-radius: var(--radius-sm); box-shadow: var(--shadow-sm); }

/* одинаковые по размеру превью с обрезкой — для галерей сканов/сертификатов,
   где важен ровный ряд, а не пропорции оригинала (полный вид — в лайтбоксе) */
.image-grid--crop a { display: block; }
.image-grid--crop img {
  aspect-ratio: 3/4;
  object-fit: cover;
}

.compare-block {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  margin: 28px 0;
}
.compare-block__item { text-align: center; }
.compare-block__item img { border-radius: var(--radius-sm); box-shadow: var(--shadow-sm); }
.compare-block__label {
  margin-top: 12px;
  font-weight: 700;
  font-size: 15px;
  color: var(--brand-700);
}

/* Специальные стили для списков в определенных секциях */
/* Список с иконками-галочками в блоке преимуществ */
#advantages .content ul {
  list-style: none;
  padding-left: 0;
  display: grid;
  gap: 14px;
}
#advantages .content ul li {
  position: relative;
  padding-left: 34px;
  line-height: 1.5;
  margin-bottom: 0;
}
#advantages .content ul li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 4px;
  width: 22px;
  height: 22px;
  background: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23009c9d' stroke-width='2'%3e%3cpath d='M22 11.08V12a10 10 0 1 1-5.93-9.14'/%3e%3cpath d='M22 4 12 14.01l-3-3'/%3e%3c/svg%3e") center/contain no-repeat;
}


/* ============================================================
   ШАБЛОН: МЕТОДИКА / ЧТО ЛЕЧИМ (детальная)
   ============================================================ */
.method-layout {
  padding: 44px 0 88px;
}
.method-layout__inner {
  display: grid;
  grid-template-columns: minmax(0, 340px) 1fr;
  gap: 60px;
  align-items: flex-start;
}
.method-layout__aside {
  position: sticky;
  top: 124px; /* отступ от липкой шапки */
  display: grid;
  gap: 24px;
}
.method-sidebar-card {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: #fff;
  overflow: hidden;
  display: grid;
}
.method-sidebar-card--inline {
  margin-bottom: 24px;
  grid-template-columns: minmax(0, 1.1fr) minmax(250px, .9fr);
  align-items: stretch;
  border: 0;
  background: #f5fafa;
}
.method-sidebar-card--inline .media-gallery {
  overflow: hidden;
}
.method-sidebar-card--inline .method-sidebar-card__body {
  justify-content: center;
  padding: 20px 15px 20px 25px;
}
.method-sidebar-card--inline .method-sidebar-card__footer {
  padding: 0;
}
@media (max-width: 960px) {
  .method-sidebar-card--inline {
    grid-template-columns: 1fr;
  }
}
/* ============================================================
   УНИВЕРСАЛЬНАЯ ГАЛЕРЕЯ (фото / видео / слайдер — одним полем)
   Один слайд → просто фото. Несколько → слайдер (стрелки появляются
   автоматически, см. initPhotoGallery в main.js, класс .is-single).
   Слайд с видео — .media-gallery__slide--video с <iframe>.
   Используется в карточке методики, докторе, направлении и т.д.
   ============================================================ */
.media-gallery {
  position: relative;
  background: none;
  overflow: hidden;
}
.media-gallery__track {
  display: flex;
  transition: transform .28s ease;
}
.media-gallery__slide {
  position: relative;
  min-width: 100%;
  aspect-ratio: 5/3;
}
.media-gallery__slide img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.media-gallery__slide--video iframe,
.media-gallery__slide--video video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  object-fit: cover;
  background: #000;
}
.media-gallery.is-single .media-gallery__nav {
  display: none;
}
.media-gallery__nav {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 50%;
  background: rgba(14, 30, 42, 0.72);
  color: #fff;
  font-size: 22px;
  display: grid;
  place-items: center;
  cursor: pointer;
}
.media-gallery__nav--prev {
  left: 12px;
}
.media-gallery__nav--next {
  right: 12px;
}
.method-sidebar-card__body {
  padding: 24px;
  display: grid;
  gap: 16px;
}
.method-sidebar-card__description {
  margin: 0;
  font-size: 13px;
  line-height: 1.6;
  color: var(--muted);
}
.method-sidebar-card__body ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px;
  font-size: 13px;
  line-height: 1.6;
  color: var(--muted);
}
.method-sidebar-card__body ul li {
  position: relative;
  padding-left: 24px;
}
.method-sidebar-card__body ul li::before {
  content: '';
  position: absolute;
  left: 2px;
  top: 5px;
  width: 10px;
  height: 6px;
  border-left: 2px solid var(--brand);
  border-bottom: 2px solid var(--brand);
  transform: rotate(-45deg);
}
.method-sidebar-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}
.method-sidebar-card__price {
  display: grid;
  gap: 2px;
}
.method-sidebar-card__price-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted);
}
.method-sidebar-card__price-value {
  display: block;
  font-size: 22px;
  font-weight: 800;
  color: var(--brand-700);
  line-height: 1.1;
}
.method-sidebar-card .btn {
  width: auto;
  padding: 12px 14px;
  white-space: nowrap;
}
@media (max-width: 600px) {
  .method-sidebar-card__footer {
    flex-direction: column;
    align-items: stretch;
  }
  .method-sidebar-card .btn {
    width: 100%;
  }
}
.info-card {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: linear-gradient(135deg, #ffffff 0%, var(--brand-tint-2) 100%);
  padding: 20px 22px;
  display: grid;
  gap: 12px;
  box-shadow: var(--shadow-sm);
}
.info-card--highlight {
  border-color: rgba(0,156,157,.22);
  background: linear-gradient(135deg, #ffffff 0%, rgba(0,156,157,.08) 100%);
}
.info-card[data-set-city] {
  cursor: pointer;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.info-card[data-set-city]:hover {
  border-color: var(--brand);
}
.info-card[data-set-city].is-active {
  border-color: var(--brand);
  box-shadow: 0 0 0 2px rgba(0,156,157,.15);
}
.info-card__head {
  display: flex;
  align-items: center;
  gap: 10px;
}
.info-card__icon {
  width: 34px;
  height: 34px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--brand-tint);
  color: var(--brand-700);
  font-size: 16px;
  font-weight: 700;
}
.info-card__title {
  font-size: 14px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--brand-700);
}
.info-card__description {
  margin: 0;
  font-size: 14px;
  line-height: 1.6;
  color: var(--muted);
}
.info-card__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 10px;
}
.info-card__list li {
  margin: 0;
}
.info-card__list a {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 10px 12px;
  border: 1px solid rgba(0,156,157,.14);
  border-radius: 12px;
  background: rgba(255,255,255,.8);
  color: var(--ink);
  font-weight: 600;
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.info-card__list a span {
  color: var(--ink);
}
.info-card__list a small {
  font-size: 12px;
  color: var(--muted);
  font-weight: 500;
}
.info-card__list a:hover {
  color: var(--brand);
  border-color: var(--brand);
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(0,156,157,.12);
}
.info-card__meta {
  display: grid;
  gap: 6px;
  font-size: 14px;
  color: var(--muted);
}
.info-card__name {
  font-size: 15px;
  font-weight: 800;
  color: var(--ink);
}
.info-card__role {
  font-weight: 600;
}
.info-card__clinic {
  font-size: 13px;
}
.info-card ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 6px;
  font-size: 14px;
  color: var(--muted);
}
.info-card ul b {
  color: var(--ink);
}
.info-card__cities {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.info-card__chip {
  display: inline-flex;
  align-items: center;
  padding: 8px 10px;
  border-radius: 999px;
  background: rgba(0,156,157,.12);
  color: var(--brand-700);
  font-size: 13px;
  font-weight: 700;
}

@media (max-width: 960px) {
  .method-layout__inner {
    grid-template-columns: 1fr;
  }
  .method-layout__aside {
    position: static;
    margin-bottom: 40px;
  }
  .method-sidebar-card {
    display: grid;
    grid-template-columns: 200px 1fr;
    align-items: center;
  }
  .media-gallery__slide {
    width: 100%;
    height: 100%;
  }
}

/* ============================================================
   ДОКТОР: карточка фото/специализация — фото 1/3, текст 2/3
   ============================================================ */
.method-sidebar-card--doctor {
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
}
@media (max-width: 960px) {
  .method-sidebar-card--doctor {
    grid-template-columns: 1fr;
  }
  .method-sidebar-card--inline {
    grid-template-columns: 1fr;
  }
}

/* ДОКТОР: галерея фото/видео — сохраняем реальные пропорции, без обрезки в квадрат */
/* ДОКТОР: галерея фото/видео — сохраняем реальные пропорции, без обрезки в
   квадрат, но медиа теперь ЗАПОЛНЯЕТ всю высоту, которую даёт ему grid
   (стянутую по высоте вместе с правым блоком карточки), а не просто лежит
   внутри с произвольной auto-высотой — раньше из-за height:auto без
   заданной высоты object-fit:contain не имел эффекта, и фото/видео
   "висело" в своей ячейке, оставляя пустоту снизу. height:100% на каждом
   уровне цепочки решает это: контейнер растягивается на всю ячейку,
   медиа заполняет его целиком по центру (letterbox), без обрезки. */
.method-sidebar-card--doctor .media-gallery {
  height: 100%;
}
.method-sidebar-card--doctor .media-gallery__track {
  align-items: flex-start;
  height: 100%;
}
.method-sidebar-card--doctor .media-gallery__slide {
  aspect-ratio: auto;
  height: 100%;
}

.method-sidebar-card--doctor .media-gallery__slide--video video {
  position: static;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

/* ============================================================
   СТРАНИЦА ВРАЧА/МЕДСЕСТРЫ (.page-card-doctors на body, template=7) —
   правый блок карточки построен построчно (специализация, ФИО, рейтинг,
   стаж, стоимость, кнопка на всю ширину), чтобы не выглядеть пусто рядом
   с высоким вертикальным фото/видео слева. Не трогает method-sidebar-card
   на других страницах.
   ============================================================ */
.page-card-doctors .method-sidebar-card__body {
  align-content: end;
  gap: 15px;
  padding: 40px 40px 40px 56px;
}
.page-card-doctors .doctor-card-name {
  font-size: 32px;
  font-weight: 800;
  line-height: 1.15;
  color: var(--ink);
  margin: 0;
}
.page-card-doctors .doctor-card-spec {
  font-size: 17px;
  line-height: 1.5;
  color: var(--muted);
}
.page-card-doctors .doctor-card-divider {
  height: 1px;
  background: var(--line);
}
.page-card-doctors .doctor-card-row {
  display: grid;
  gap: 8px;
}
.page-card-doctors .doctor-card-row .chip {
  justify-self: start;
  font-size: 15px;
  padding: 8px 14px;
}
.page-card-doctors .doctor-card-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
.page-card-doctors .method-sidebar-card__price-value {
  font-size: 24px;
}
.page-card-doctors .doctor-card-btn {
  width: 100%;
  padding-top: 16px;
  padding-bottom: 16px;
  font-size: 16px;
}
@media (max-width: 640px) {
  .page-card-doctors .method-sidebar-card__body { padding: 24px; }
  .page-card-doctors .doctor-card-name { font-size: 28px; }
  .page-card-doctors .doctor-card-cols { grid-template-columns: 1fr; }
}

section#achievements {
    background: #29777b;
    padding: 30px;
    border-radius: 20px;
}section#achievements .counters.counters--4.counters--big {
    margin: 0 0 0;
    padding: 26px 0 0;
}section#achievements h2.landing-section__title {
    color: #fff;
    margin: 0 0 20px;
}section#achievements li {
    color: #fff;
}section#achievements .content ul li::before {
    background: #fff;
}
/* ============================================================
   МЕТОДИКИ: иконки в панели, чек-листы, таймлайн результатов
   ============================================================ */
.method-panel--4-col{
  grid-template-columns:repeat(4, minmax(0,1fr));
}
@media (max-width: 960px){
  .method-panel--4-col{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}
.method-panel__icon{
  width:44px; height:44px;
  border-radius:12px;
  background:var(--brand-tint);
  color:var(--brand-700);
  display:flex; align-items:center; justify-content:center;
  margin-bottom:14px;
  flex:none;
}
.method-panel__icon svg{ width:24px; height:24px; }

.checklist{
  list-style:none;
  padding-left:0;
  display:grid;
  gap:12px;
  margin:16px 0;
}
.checklist li{
  position:relative;
  padding-left:32px;
  line-height:1.5;
  margin-bottom:0;
}
.checklist li::before{
  content:'';
  position:absolute; left:0; top:2px;
  width:20px; height:20px;
  background:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23009c9d' stroke-width='2'%3e%3cpath d='M22 11.08V12a10 10 0 1 1-5.93-9.14'/%3e%3cpath d='M22 4 12 14.01l-3-3'/%3e%3c/svg%3e") center/contain no-repeat;
}


.tile-grid--3-col { grid-template-columns: repeat(3, 1fr); }
.tile-grid--4-col { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 960px) {
  .tile-grid--3-col, .tile-grid--4-col { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .tile-grid--3-col, .tile-grid--4-col { grid-template-columns: 1fr; }
}

/* Бейджи над панелью карточек (напр. "100% совместимость") */
.method-panel__badges{
  display:grid;
  gap:20px;
  margin:26px 0 0;
}
.method-panel__badges--2{ grid-template-columns:repeat(2, minmax(0,1fr)); }
.method-panel__badges--3{ grid-template-columns:repeat(3, minmax(0,1fr)); }
.method-panel__badges--4{ grid-template-columns:repeat(4, minmax(0,1fr)); }
@media (max-width:960px){
  .method-panel__badges--3, .method-panel__badges--4{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}
@media (max-width:640px){
  .method-panel__badges--2, .method-panel__badges--3, .method-panel__badges--4{ grid-template-columns:1fr; }
}
.method-panel__badge{
  display:flex;
  align-items:stretch;
  border:1.5px solid var(--brand);
  border-radius:10px;
  overflow:hidden;
}
.method-panel__badge--accent{ border-color:var(--accent); }
.method-panel__badge-value{
  flex:none;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:10px 16px;
  background:var(--brand);
  color:#fff;
  font-weight:800;
  font-size:17px;
  white-space:nowrap;
}
.method-panel__badge--accent .method-panel__badge-value{ background:var(--accent); }
.method-panel__badge-label{
  flex:1;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:8px 12px;
  font-size:12.5px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.03em;
  color:var(--ink);
  text-align:center;
}

/* Таймлайн результатов: 2 колонки, каждая — своя цепочка точек */
.result-timeline{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:0 40px;
  margin:24px 0 0;
}
@media (max-width:720px){
  .result-timeline{ grid-template-columns:1fr; }
}
.result-timeline__col{ display:grid; }
.result-timeline__item{
  display:grid;
  grid-template-columns:16px 1fr;
  gap:18px;
}
.result-timeline__marker-col{
  display:flex;
  flex-direction:column;
  align-items:center;
}
.result-timeline__dot{
  width:16px; height:16px;
  border-radius:50%;
  background:var(--brand);
  flex:none;
  margin-top:5px;
}
.result-timeline__dot--accent{ background:var(--accent); }
.result-timeline__line{
  width:2px;
  flex:1;
  background:var(--line);
  margin-top:4px;
  min-height:20px;
}
.result-timeline__body{ padding-bottom:26px; }
.result-timeline__col .result-timeline__item:last-child .result-timeline__body{ padding-bottom:0; }
.result-timeline__body h3,
.result-timeline__body h4{
  margin:0 0 8px;
  font-size:16px;
  font-weight:700;
  color:var(--ink);
}
.result-timeline__body p{
  margin:0;
  color:var(--muted);
  line-height:1.6;
}

/* ============================================================
   NAV BOTTOM + DISCLAIMER (общий чанк на основных страницах)
   ============================================================ */
.navBottom{
  padding:28px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.navBottom__inner{
  display:grid;
  grid-template-columns:repeat(6, minmax(0,1fr));
  gap:12px;
}
@media (max-width:960px){
  .navBottom__inner{ grid-template-columns:repeat(3, minmax(0,1fr)); }
}
@media (max-width:560px){
  .navBottom__inner{ grid-template-columns:repeat(2, minmax(0,1fr)); }
}
.navBottom-item{
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  gap:10px;
  padding:14px 8px;
  border-radius:var(--radius);
  background:#009688;
  border:none;
  cursor:pointer;
  font-family:inherit;
  font-size:13.5px;
  font-weight:600;
  line-height:1.3;
  color:var(--white);
  transition:background .2s ease, color .2s ease;
}
.navBottom-item:hover{ background:var(--accent-600); color:var(--white); }
.navBottom-item.orange{ color:var(--white); background:var(--accent-600); }
.navBottom-item.orange:hover{ background:var(--brand-700); color:var(--white); }
.navBottom__pic{
  display:flex;
  align-items:center;
  justify-content:center;
  height:42px;
}
.navBottom__pic img{
  max-height:42px;
  max-width:42px;
  width:auto;
  height:auto;
  object-fit:contain;
}

.disclaimer{
  padding:18px 0 32px;
}
.disclaimer__inner{
  display:flex;
  align-items:flex-start;
  gap:14px;
  padding:16px 20px;
  background:var(--brand-tint-2);
  border-radius:var(--radius);
}
.disclaimer__pic{ flex:none; width:24px; height:24px; margin-top:1px; }
.disclaimer__pic img{ width:100%; height:100%; object-fit:contain; }
.disclaimer__text{
  font-size:13px;
  line-height:1.55;
  color:var(--muted);
}
.disclaimer__text a,
.disclaimer__text button.link-btn{
  color:var(--brand-700);
  font-weight:600;
  text-decoration:underline;
  background:none;
  border:none;
  padding:0;
  font:inherit;
  cursor:pointer;
}

/* ============================================================
   Плашки в каталогах (направления / методики)
   ============================================================ */
.tile-card__pic{ position:relative; }
.tile-card__badge{
  position:absolute;
  top:12px; left:12px;
  padding:5px 12px;
  border-radius:20px;
  font-size:12px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.02em;
  color:#fff;
  z-index:1;
}
.tile-card__badge--new{ background:var(--brand); }
.tile-card__badge--premium{ background:#b8860b; }
.tile-card__badge--unique{ background:var(--accent); }
.tile-card__badge--sale,
.tile-card__badge--discount,
.tile-card__badge--special{ background:#e0294a; }

/* Единая высота карточек-методик во всех слайдерах (методики/направления/что лечим) */
.tile-card {
  min-height: 420px;
}
/* страница контактов (.page-kontakty на body) - без единой высоты плиток */
.page-kontakty .tile-card {
  min-height: auto;
}
@media (max-width: 640px) {
  .tile-card {
    min-height: auto;
  }
}


/* ============================================================
   ЧТО ЛЕЧИМ — стили, привязанные к body.tpl-chto-lechim,
   не затрагивают методики/направления
   ============================================================ */
body.tpl-chto-lechim .tile-card__pic {
  background: var(--brand-tint);
}
/* Длинные подписи в плашках-цифрах переносятся по словам, а не обрезаются */
body.tpl-chto-lechim .method-panel__badge-label {
  word-break: break-word;
  overflow-wrap: break-word;
  hyphens: auto;
}
/* Плашки-цифры: число сверху, подпись снизу, белый фон карточки */
body.tpl-chto-lechim .method-panel__badge {
  flex-direction: column;
  align-items: stretch;
  background: #fff;
  border: none;
  box-shadow: 0 4px 14px rgba(0,0,0,.12);
}
body.tpl-chto-lechim .method-panel__badge-value {
  background: transparent;
  color: var(--brand);
  padding: 18px 14px 4px;
  font-size: 26px;
}
body.tpl-chto-lechim .method-panel__badge--accent .method-panel__badge-value {
  color: var(--accent);
}
body.tpl-chto-lechim .method-panel__badge-label {
  color: var(--ink);
  padding: 4px 14px 18px;
}

/* === chto-lechim letter index: disease listing cards (v2, matched to site design tokens) === */
.diseases_list{ display:grid; gap:14px; }
.alphabet_disease{ margin-bottom:10px; }
.alphabet_disease p{ font-size:13px; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.03em; margin:0 0 10px; }
.alphabet_disease ul{ display:flex; flex-wrap:wrap; gap:6px; padding:0; list-style:none; }
.alphabet_disease-item{ list-style:none; }
.alphabet_disease-item a{ display:flex; align-items:center; justify-content:center; width:32px; height:32px; border-radius:var(--radius-sm); color:var(--brand); text-decoration:none; font-size:14px; font-weight:700; background:var(--brand-tint-2); }
.alphabet_disease-item a:hover{ background:var(--brand-tint); }
.alphabet_disease-item.active a{ background:var(--brand); color:#fff; }

.disease_info{
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:#fff;
  padding:0 20px;
}
.disease_info[open]{ background:var(--brand-tint-2); }
.disease_info-head{
  padding:14px 0;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  cursor:pointer;
  list-style:none;
}
.disease_info-head::-webkit-details-marker{ display:none; }
.disease_info-head h2{
  color:var(--ink);
  font-size:18px;
  font-weight:700;
  line-height:1.35;
  margin:0;
}
.disease_info-head::after{
  content:'+';
  font-size:24px;
  font-weight:400;
  color:var(--brand);
  flex:0 0 auto;
  transition:transform .25s ease;
}
.disease_info[open]>.disease_info-head::after{ transform:rotate(45deg); }

.disease_info-body{
  display:flex;
  flex-wrap:wrap;
  gap:20px;
  padding:16px 0 20px;
  border-top:1px solid var(--line);
}
.disease_info-body>.col-lg-4{ flex:1 1 240px; min-width:0; }

.disease_info__desc p{ font-size:14px; line-height:1.5; color:var(--muted); margin:0 0 14px; }
.disease_info__desc .more-link{
  display:inline-flex; align-items:center; justify-content:center;
  height:38px; padding:0 18px;
  border:1.5px solid var(--brand); border-radius:var(--radius-sm);
  color:var(--brand); font-size:13px; font-weight:700; text-transform:uppercase; letter-spacing:.02em;
  text-decoration:none;
}
.disease_info__desc .more-link:hover{ background:var(--brand); color:#fff; }

.disease_head{
  font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.03em;
  color:var(--muted); margin-bottom:6px;
}
.disease_symthom ul, .disease_recomendation ul{ list-style:none; padding:0; margin:0; }
.disease_symthom li, .disease_recomendation li{
  font-size:14px; line-height:1.4; padding:8px 0; border-bottom:1px solid var(--line);
}
.disease_symthom li:last-child, .disease_recomendation li:last-child{ border-bottom:none; }
.disease_symthom a, .disease_recomendation a{ color:var(--ink); text-decoration:none; display:block; }
.disease_symthom a:hover, .disease_recomendation a:hover{ color:var(--accent); }

/* акции: цифры сверху, подпись снизу (тот же паттерн, что у chto-lechim) */
body.tpl-aktsiya .method-panel__badge-label {
  word-break: break-word;
  overflow-wrap: break-word;
  hyphens: auto;
}
body.tpl-aktsiya .method-panel__badge {
  flex-direction: column;
  align-items: stretch;
  background: #fff;
  border: none;
  box-shadow: 0 4px 14px rgba(0,0,0,.12);
}
body.tpl-aktsiya .method-panel__badge-value {
  background: transparent;
  color: var(--brand);
  padding: 18px 14px 4px;
  font-size: 26px;
}
body.tpl-aktsiya .method-panel__badge--accent .method-panel__badge-value {
  color: var(--accent);
}
body.tpl-aktsiya .method-panel__badge-label {
  color: var(--ink);
  padding: 4px 14px 18px;
}

/* === content list-bullet icons (checkMarks/green__cubes/etc.) — ported from dr-ost.ru,
   used throughout scraped chto-lechim/aktsii/novosti/otzyvy content but never had CSS on this site === */
.achievements li, .articles li, .checkMarks li, .contraindications li, .courses li,
.dopGraduation li, .graduation li, .green__cubes li, .orange__cubes li, .vertebra__orange li {
  list-style: none;
  padding: 0 0 12px 0;
  font-weight: 400;
}
.achievements li:before, .articles li:before, .checkMarks li:before, .contraindications li:before,
.courses li:before, .dopGraduation li:before, .graduation li:before, .green__cubes li:before,
.orange__cubes li:before, .vertebra__orange li:before {
  content: "";
  display: inline-block;
  width: 18px;
  height: 18px;
  vertical-align: -3px;
  background-size: contain;
  background-repeat: no-repeat;
  margin-right: 10px;
}
.achievements li:before { background-image: url('/assets/img/lists/achievements.svg'); }
.articles li:before { background-image: url('/assets/img/lists/articles.svg'); }
.checkMarks li:before { background-image: url('/assets/img/lists/courses.svg'); }
.contraindications li:before { background-image: url('/assets/img/lists/contraindication.svg'); }
.courses li:before { background-image: url('/assets/img/lists/courses.svg'); }
.dopGraduation li:before { background-image: url('/assets/img/lists/edu_orange.svg'); }
.graduation li:before { background-image: url('/assets/img/lists/edu_green.svg'); }
.green__cubes li:before { background-image: url('/assets/img/lists/green_cube.svg'); }
.orange__cubes li:before { background-image: url('/assets/img/lists/orange_cube.svg'); width: 14px; height: 14px; }
.vertebra__orange li:before { background-image: url('/assets/img/lists/vertebra2.svg'); }

/* .content ul li::before sets content:'•' with higher specificity than the
   plain icon-list rules above (.content .achievements/.checkMarks/etc), so an
   icon list nested inside .content showed BOTH the bullet dot and the
   background-image icon at once. Explicitly clear the bullet content for
   these icon lists at matching specificity. */
.content ul.achievements li::before,
.content ul.articles li::before,
.content ul.checkMarks li::before,
.content ul.contraindications li::before,
.content ul.courses li::before,
.content ul.dopGraduation li::before,
.content ul.graduation li::before,
.content ul.green__cubes li::before,
.content ul.orange__cubes li::before,
.content ul.vertebra__orange li::before {
  content: '';
}

/* a list item that embeds an inline diagram/photo doesn't need its own
   bullet marker (plain dot or icon-square) sitting next to the image */
.content ul li:has(img)::before,
.content ul.achievements li:has(img)::before,
.content ul.articles li:has(img)::before,
.content ul.checkMarks li:has(img)::before,
.content ul.contraindications li:has(img)::before,
.content ul.courses li:has(img)::before,
.content ul.dopGraduation li:has(img)::before,
.content ul.graduation li:has(img)::before,
.content ul.green__cubes li:has(img)::before,
.content ul.orange__cubes li:has(img)::before,
.content ul.vertebra__orange li:has(img)::before {
  display: none;
}



/* === blue-box / blue-box_dark / blu — reused across chto-lechim/aktsii/novosti content === */
.blue-box, .blue-box_dark, .blu {
  background-color: var(--brand);
  color: #fff;
  padding: 20px 24px;
  margin: 20px 0;
  border-radius: var(--radius-sm);
}
.blue-box h2, .blue-box_dark h2, .blu h2 { color: #fff; margin-top: 0; }
.blue-box a, .blue-box_dark a, .blu a { color: #fff; text-decoration: underline; }
.blue-box ul, .blue-box_dark ul, .blue-box ol, .blue-box_dark ol,
.blu ul, .blu ol { padding-left: 20px; margin: 8px 0 0; }

/* === method__future__card — "stage/step" card grid used in some chto-lechim content === */
.method__future__card {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 20px;
}
.method__future__card-item {
  flex: 1 1 220px;
  padding: 18px 20px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: #fff;
}
.method__future__card-item h3 {
  display: flex;
  align-items: center;
  font-size: 16px;
  font-weight: 700;
  text-transform: uppercase;
  margin: 0 0 8px;
  color: var(--ink);
}
.method__future__card-item h3:before {
  content: "";
  display: inline-block;
  background: url('/assets/img/lists/vertebra.svg') center/contain no-repeat;
  width: 20px;
  height: 22px;
  margin-right: 8px;
  flex: none;
}


/* ============================================================
   ПРАВОВАЯ ИНФОРМАЦИЯ
   ============================================================ */
.legal-links {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-top: 24px;
}
.legal-card {
  display: block;
  padding: 22px 26px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  text-decoration: none;
  color: inherit;
  transition: border-color .2s ease, box-shadow .2s ease;
}
.legal-card:hover {
  border-color: var(--brand);
  box-shadow: var(--shadow-sm);
}
.legal-card h2 {
  color: var(--brand-700);
  margin: 0 0 8px;
  font-size: 19px;
}
.legal-card p {
  margin: 0;
  color: var(--muted);
  font-size: 14px;
}

/* ---------- Прайс: акция / старая-новая цена ---------- */
.price-table td:last-child{ white-space:nowrap; }
.price-table__badge{ margin-right:8px; vertical-align:middle; }
.price-table__old{ text-decoration:line-through; color:var(--muted); margin-right:8px; font-size:13px; }
.price-table__new{ font-weight:700; }
.price-table__row--promo td:last-child{ color:var(--accent-600); }

/* ---------- Поиск по сайту ---------- */
.search-hero{
  background:var(--brand-tint);
  padding:44px 0;
}
.search-hero__title{
  font-size:clamp(26px,3.4vw,36px);
  font-weight:800;
  margin:0 0 8px;
}
.search-hero__lead{
  color:var(--muted);
  font-size:15px;
  margin:0 0 22px;
  max-width:560px;
}
.search-form-lg{
  display:flex;
  gap:10px;
  max-width:640px;
}
.search-form-lg__input{
  flex:1;
  height:54px;
  padding:0 20px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:#fff;
  font:inherit;
  font-size:16px;
  color:var(--ink);
}
.search-form-lg__input::placeholder{ color:var(--muted); }
.search-form-lg__input:focus{
  outline:none;
  border-color:var(--brand);
  box-shadow:0 0 0 3px var(--brand-tint);
}
.search-form-lg__btn{
  flex:none;
  height:54px;
  padding:0 30px;
}

.search-results{
  padding:36px 0 20px;
}
.search-results__meta{
  color:var(--muted);
  font-size:14px;
  margin:0 0 24px;
}
.search-results__list{
  display:flex;
  flex-direction:column;
  gap:26px;
  max-width:760px;
}
.search-result{
  display:block;
}
.search-result__title{
  margin:0 0 4px;
  font-size:19px;
  line-height:1.35;
}
.search-result__title a{
  color:var(--brand-700);
  text-decoration:none;
}
.search-result__title a:hover{ text-decoration:underline; }
.search-result__url{
  color:#178a4c;
  font-size:13px;
  margin:0 0 6px;
  word-break:break-all;
}
.search-result__snippet{
  color:var(--ink);
  font-size:14.5px;
  line-height:1.55;
  margin:0;
}
.search-result__snippet .simplesearch-highlight{
  background:var(--accent-tint);
  color:var(--accent-600);
  font-weight:700;
  padding:0 2px;
  border-radius:3px;
}

.search-empty{
  max-width:560px;
  padding:8px 0 30px;
  color:var(--muted);
  font-size:15px;
}

.search-results .pagination{ justify-content:flex-start; }

/* ============================================================
   ВЕРСИЯ ДЛЯ СЛАБОВИДЯЩИХ
   ============================================================ */
.a11y-bar{
  background:#f2f6f6;
  border-bottom:1px solid var(--line);
}
.a11y-bar__inner{
  display:flex;
  justify-content:flex-end;
  padding-block:6px;
}
.a11y-bar__toggle{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border:0;
  background:none;
  cursor:pointer;
  font:inherit;
  font-size:13px;
  font-weight:600;
  color:var(--brand-700);
  padding:4px 6px;
  border-radius:6px;
}
.a11y-bar__toggle:hover{ background:rgba(0,156,157,.1); }
.a11y-bar__toggle svg{ width:18px; height:18px; flex:none; }

.a11y-panel{
  background:#f2f6f6;
  border-bottom:1px solid var(--line);
}
.a11y-panel__inner{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-end;
  gap:20px 28px;
  padding-block:16px;
}
.a11y-panel__group{ display:grid; gap:8px; }
.a11y-panel__label{
  font-size:12px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.03em;
  color:var(--muted);
}
.a11y-panel__row{ display:flex; gap:8px; }
.a11y-btn{
  border:1px solid var(--line);
  background:#fff;
  border-radius:8px;
  padding:7px 12px;
  font:inherit;
  font-size:13.5px;
  font-weight:600;
  color:var(--ink);
  cursor:pointer;
}
.a11y-btn[data-a11y-font="1"]{ font-size:15.5px; }
.a11y-btn[data-a11y-font="2"]{ font-size:17.5px; }
.a11y-btn.is-active{
  border-color:var(--brand);
  background:var(--brand);
  color:#fff;
}
.a11y-swatch{
  width:38px;
  height:38px;
  border-radius:8px;
  border:1px solid var(--line);
  cursor:pointer;
  font-weight:800;
  display:grid;
  place-items:center;
}
.a11y-swatch--normal{ background:#fff; color:var(--ink); }
.a11y-swatch--bw{ background:#fff; color:#000; border-color:#000; }
.a11y-swatch--wb{ background:#000; color:#fff; }
.a11y-swatch.is-active{ box-shadow:0 0 0 3px var(--brand); }
.a11y-reset{
  border:1px solid var(--brand);
  background:#fff;
  color:var(--brand-700);
  border-radius:8px;
  padding:9px 16px;
  font:inherit;
  font-size:13.5px;
  font-weight:700;
  cursor:pointer;
  align-self:flex-end;
}
.a11y-reset:hover{ background:var(--brand); color:#fff; }

@media (max-width:760px){
  .a11y-bar__toggle span{ display:none; }
  .a11y-panel__inner{ gap:16px 18px; padding-block:14px; }
}

/* --- размер шрифта (масштаб всей страницы) --- */
html.a11y-font-1{ zoom:1.15; }
html.a11y-font-2{ zoom:1.3; }

/* --- межбуквенный интервал --- */
html.a11y-spacing-1 body{ letter-spacing:.02em; }
html.a11y-spacing-1 p, html.a11y-spacing-1 li{ line-height:1.85; }
html.a11y-spacing-2 body{ letter-spacing:.045em; word-spacing:.08em; }
html.a11y-spacing-2 p, html.a11y-spacing-2 li{ line-height:2; }

/* --- изображения --- */
html.a11y-noimages img{ visibility:hidden !important; }

/* --- цветовая схема: чёрным по белому (высокий контраст) --- */
html.a11y-scheme-bw body{ background:#fff !important; }
html.a11y-scheme-bw *:not(img):not(svg):not(picture):not(video){
  background:#fff !important;
  color:#000 !important;
  border-color:#000 !important;
  box-shadow:none !important;
  text-shadow:none !important;
}
html.a11y-scheme-bw a,
html.a11y-scheme-bw button,
html.a11y-scheme-bw .btn{
  color:#0033cc !important;
  text-decoration:underline !important;
}
html.a11y-scheme-bw .btn,
html.a11y-scheme-bw button{
  border:2px solid #000 !important;
}
html.a11y-scheme-bw img,
html.a11y-scheme-bw svg,
html.a11y-scheme-bw picture{
  filter:grayscale(1) contrast(1.1);
}

/* --- цветовая схема: белым по чёрному (инверсия) --- */
html.a11y-scheme-wb body{ background:#000 !important; }
html.a11y-scheme-wb *:not(img):not(svg):not(picture):not(video){
  background:#000 !important;
  color:#fff !important;
  border-color:#fff !important;
  box-shadow:none !important;
  text-shadow:none !important;
}
html.a11y-scheme-wb a,
html.a11y-scheme-wb button,
html.a11y-scheme-wb .btn{
  color:#ffe600 !important;
  text-decoration:underline !important;
}
html.a11y-scheme-wb .btn,
html.a11y-scheme-wb button{
  border:2px solid #fff !important;
}
html.a11y-scheme-wb img,
html.a11y-scheme-wb svg,
html.a11y-scheme-wb picture{
  filter:grayscale(1) brightness(.85);
}
html.a11y-scheme-wb .topbar__logo img,
html.a11y-scheme-wb .footer__logo img{
  filter:invert(1) brightness(1.1);
}

/* активные состояния кнопок панели должны быть видны и поверх схем контраста */
html.a11y-scheme-bw .a11y-btn.is-active{
  background:#000 !important;
  color:#fff !important;
  border-color:#000 !important;
}
html.a11y-scheme-wb .a11y-btn.is-active{
  background:#fff !important;
  color:#000 !important;
  border-color:#fff !important;
}
html.a11y-scheme-bw .a11y-swatch.is-active,
html.a11y-scheme-wb .a11y-swatch.is-active{
  outline:3px solid currentColor;
  box-shadow:none !important;
}

/* ===== СОГЛАСИЕ НА COOKIE ===== */
.cookie-consent{
  position:fixed; left:0; right:0; bottom:0; z-index:1450;
  background:var(--brand-900); color:var(--white);
  box-shadow:0 -10px 30px rgba(10,58,60,.18);
}
.cookie-consent[hidden]{ display:none; }
.cookie-consent__inner{
  max-width:var(--container);
  margin:0 auto;
  padding:18px 20px;
  max-height:70vh;
  overflow-y:auto;
}
.cookie-consent__title{ margin:0 0 6px; font-size:16px; font-weight:700; }
.cookie-consent__text{ margin:0 0 14px; font-size:14px; line-height:1.55; color:#cfe3e3; max-width:92ch; }
.cookie-consent a{ color:var(--white); text-decoration:underline; }
.cookie-consent a:hover{ color:var(--brand-tint); }
.cookie-consent__actions{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.cookie-consent .btn--outline{ border-color:rgba(255,255,255,.55); color:var(--white); }
.cookie-consent .btn--outline:hover{ background:var(--white); color:var(--brand-900); }
.cookie-consent__link-btn{
  background:none; border:0; padding:0;
  color:var(--white); font:inherit; font-size:14px;
  text-decoration:underline; cursor:pointer;
}
.cookie-consent__link-btn:hover{ color:var(--brand-tint); }
.cookie-consent__settings:focus{ outline:none; }
.cookie-consent__settings[hidden], .cookie-consent__main[hidden]{ display:none; }
.cookie-cats{ list-style:none; margin:0 0 14px; padding:0; display:grid; gap:12px; }
.cookie-cat{ border-top:1px solid rgba(255,255,255,.16); padding-top:12px; }
.cookie-cat__row{ display:flex; align-items:center; gap:10px; cursor:pointer; font-weight:600; font-size:15px; }
.cookie-cat__row input{ width:18px; height:18px; accent-color:var(--accent); flex:0 0 auto; }
.cookie-cat__row input:disabled{ cursor:default; }
.cookie-cat__badge{ font-weight:500; font-size:12px; color:#9dc0c0; }
.cookie-cat__desc{ margin:6px 0 0 28px; font-size:13px; line-height:1.5; color:#cfe3e3; }
.footer__link-btn{
  background:none; border:0; padding:0;
  font:inherit; color:#7faeae; text-decoration:none; cursor:pointer;
}
.footer__link-btn:hover{ color:#fff; }

@media(max-width:620px){
  .cookie-consent__inner{ padding:14px 16px; max-height:78vh; }
  .cookie-consent__title{ font-size:15px; }
  .cookie-consent__text{ font-size:13px; }
  .cookie-consent__actions .btn{ flex:1 1 auto; justify-content:center; }
  .cookie-cat__desc{ font-size:12.5px; }
}


/* ===== ПОДСКАЗКА ПОД КНОПКОЙ ФОРМЫ ===== */
.form-hint{
  margin-top:8px;
  font-size:12.5px;
  line-height:1.4;
  color:var(--muted);
}
.form-hint[hidden]{ display:none; }

/* ===== ОКНО «ЗАЯВКА ПРИНЯТА» ===== */
.form-sent{
  position:fixed; inset:0; z-index:1600;
  display:flex; align-items:center; justify-content:center;
  padding:20px;
}
.form-sent[hidden]{ display:none; }
.form-sent__overlay{
  position:absolute; inset:0;
  background:rgba(10,58,60,.55);
  backdrop-filter:blur(2px);
}
.form-sent__box{
  position:relative;
  width:min(420px, 100%);
  background:var(--white);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
  padding:36px 28px 28px;
  text-align:center;
  animation:formSentIn .28s ease;
}
.form-sent__icon{
  width:64px; height:64px;
  margin:0 auto 18px;
  border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:var(--brand-tint);
  color:var(--brand);
}
.form-sent__icon svg{ width:30px; height:30px; }
.form-sent__title{
  font-size:22px; font-weight:700; line-height:1.25;
  margin-bottom:8px;
}
.form-sent__text{
  margin:0 0 22px;
  color:var(--muted);
  font-size:15px;
}
@keyframes formSentIn{
  from{ opacity:0; transform:translateY(12px) scale(.97); }
  to{ opacity:1; transform:none; }
}


/* ===== ОШИБКА ОТПРАВКИ ФОРМЫ ===== */
.form-error{
  margin:0 0 12px;
  padding:10px 14px;
  border-radius:var(--radius-sm);
  background:var(--accent-tint);
  color:var(--accent-600);
  font-size:13.5px;
  line-height:1.45;
}
.form-error[hidden]{ display:none; }
.page-head__action{ margin-top:18px; }
.form-field textarea{
  width:100%;
  padding:13px 16px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  font:inherit;
  font-size:15px;
  color:var(--ink);
  resize:vertical;
}
.form-field textarea:focus{ outline:none; border-color:var(--brand); }


/* ===== ЧАТ БИТРИКС24 И НАШИ ПЛАВАЮЩИЕ КНОПКИ =====
   Виджет чата стоит в правом нижнем углу (bottom:50 right:50, 66px,
   вокруг ещё пульсирующее кольцо до 108px) и накладывался на нашу
   кнопку звонка. Ставим свои кнопки столбиком над чатом по той же
   правой кромке, а когда показан баннер cookie — поднимаем и то и другое. */
.float-btns{ right:50px; bottom:140px; }
body.has-cookie-consent .float-btns{
  transform:translateY(calc(-1 * var(--cookie-consent-h, 0px)));
}
body.has-cookie-consent .b24-widget-button-wrapper{
  bottom:calc(50px + var(--cookie-consent-h, 0px)) !important;
}
@media (max-width:620px){
  .float-btns{ right:16px; bottom:132px; }
  body.has-cookie-consent .float-btns{
    transform:translateY(calc(-1 * var(--cookie-consent-h, 0px)));
  }
}


/* ===== CLS: резерв места =====
   Точки и стрелки слайдера дорисовывает JS, а картинка шапки имеет
   width:auto — до загрузки они занимали ноль места, и содержимое
   прыгало. Резервируем высоту заранее. */
.hero__nav{ min-height:61px; }
.hero__img img{ min-height:192px; }
/* Точки слайдера дорисовывает JS — держим высоту заранее */
.hero__dots{ min-height:9px; }
.float-btns{ transition:transform .2s ease; }


/* ===== ТЕЛЕФОН В ШАПКЕ И ОБРАТНЫЙ ЗВОНОК ===== */
.topbar__phone-block{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:2px;
}
.topbar__callback{
  background:none; border:0; padding:0;
  font:inherit; font-size:12px; font-weight:500;
  line-height:1.4;
  color:var(--brand);
  border-bottom:1px dashed var(--brand);
  cursor:pointer;
  transition:color .2s ease, border-color .2s ease;
}
.topbar__callback:hover{ color:var(--brand-700); border-bottom-color:var(--brand-700); }
@media (max-width:620px){
  .topbar__callback{ display:none; }
}

/* seo-headings */
.landing-section__title, .callback__title { line-height:1.2; }

/* page-prices */
.page-prices{ margin:0 0 20px; }
.page-prices__title{ font-weight:700; margin:0 0 10px; }
.page-prices .price-table-wrap{ overflow-x:auto; border:1px solid var(--line); border-radius:var(--radius-sm); }
.price-table--compact th:nth-child(2){ text-align:right; }
.price-table--compact td:nth-child(2){ color:var(--brand-700); font-weight:700; white-space:nowrap; text-align:right; }
.page-prices__note{ font-size:13px; color:var(--muted); margin:8px 0 0; }
@media (max-width:600px){ .price-table--compact td, .price-table--compact th{ padding:10px 12px; font-size:14px; } }
/* page-prices mobile */
@media (max-width:620px){ .price-table--compact th:nth-child(2), .price-table--compact td:nth-child(2){ display:table-cell; } }
/* page-prices groups */
.price-table--compact tr.price-table__group td{ background:var(--brand-tint-2); color:var(--ink); font-weight:700; font-size:14px; text-align:left; padding:8px 16px; }
.price-table--compact td a{ color:var(--ink); text-decoration:underline; text-decoration-color:var(--line); text-underline-offset:3px; }
.price-table--compact td a:hover{ color:var(--brand-700); }

/* QR-код в футере (только Пермь) */
.footer__qr{ display:block; width:fit-content; margin-top:14px; line-height:0; background:#ccc; }
.footer__qr img{ display:block; width:100px; height:auto; border-radius:var(--radius); }

/* Карточки врачей внутри .content: общее правило .content img давало картинке отступ 24px и закругление — фото «сдвигалось» */
.content .doctor-card__photo img{ margin:0; height:100%; border-radius:0; }

/* Нумерованный список в синем блоке: кружки с номерами не должны прилипать к краю блока */
.blue-box ol, .blue-box_dark ol, .blu ol{ padding-left:44px; }

/* Плавающая кнопка «Телемедицина / Онлайн консультация» */
.float-btn--tele{ position:relative; background:var(--brand); color:#fff; }
.float-btn--tele:hover{ background:var(--brand-700); transform:scale(1.06); }
.float-btn--tele::before{
  content:attr(data-tip);
  position:absolute; right:calc(100% + 12px); top:50%; transform:translateY(-50%);
  width:max-content; max-width:190px; padding:8px 12px;
  background:#fff; color:var(--ink); border:1px solid var(--line); border-radius:var(--radius-sm);
  box-shadow:var(--shadow-sm); font-size:13px; font-weight:600; line-height:1.3; text-align:left;
  opacity:0; visibility:hidden; pointer-events:none; transition:opacity .2s ease;
}
.float-btn--tele:hover::before, .float-btn--tele:focus-visible::before{ opacity:1; visibility:visible; }
@media (max-width:620px){ .float-btn--tele::before{ display:none; } }
.footer__qr-wrap{ margin-top:14px; width:max-content; max-width:260px; }
.footer__qr-wrap .footer__qr{ margin-top:0; }
.footer__qr-caption{ max-width:260px; margin:8px 0 0; font-size:13px; line-height:1.4; color:#9fc4c4; }
