/* ═══════════════════════════════════════════
   Sanjar Dental Clinic — Астана
   Палитра снята с фирменных макетов клиники:
   грейж #E4E1DA и коричневый #5E5148
   ═══════════════════════════════════════════ */

/* Шкала идёт от светлого к тёмному: b-50…b-200 — подложки,
   b-600…b-900 — акценты и текст. В тёмной теме роли те же,
   меняются только значения, поэтому компоненты переписывать не нужно. */
:root{
  --b-900:#231D18;
  --b-800:#332B24;
  --b-700:#463C33;
  --b-600:#5E5148;      /* фирменный коричневый */
  --b-500:#7A6B5E;
  --b-400:#9E9082;
  --b-300:#C4B8A9;
  --b-200:#DED7CB;
  --b-100:#EDE9E1;
  --b-50:#F8F6F1;

  --ink:#231D18;
  --ink-2:#5A5048;
  --ink-3:#7C7269;
  --line:#E7E1D7;
  --white:#fff;         /* основная поверхность: фон страницы и карточек */

  /* то, что нельзя вывести из шкалы */
  --btn-ink:#fff;                     /* текст на коричневой заливке */
  --btn-bg:#5E5148;
  --header-bg:rgba(255,255,255,.84);
  --glass:rgba(255,255,255,.93);
  --footer-bg:#231D18;
  --deep-from:#332B24;                /* тёмные блоки: запись, острая боль */
  --deep-to:#5E5148;
  --sand:#F1EBE2;                     /* колонка «до» в сравнении */
  --sand-ink:#7A6248;
  --sand-mark:#B0937A;
  --gold:#B08D57;                     /* редкий акцент: рейтинг, акции */
  --gold-bg:#F6EFE3;
  --error:#C4553C;
  --error-line:#DD7B63;
  --error-bg:#FBF2EF;
  --map-ground:#F1EDE6;
  --map-road:#FFFFFF;
  --map-lane:#E3DCD0;
  --map-thin:#EAE4DA;
  --map-block:#E5DED2;
  --dim:none;                         /* приглушение светлых SVG-заглушек */
  --shadow-rgb:52,42,34;

  --radius:20px;
  --radius-sm:13px;
  --radius-lg:30px;

  --shadow-sm:0 2px 10px rgba(var(--shadow-rgb),.05);
  --shadow:0 14px 38px rgba(var(--shadow-rgb),.09);
  --shadow-lg:0 28px 72px rgba(var(--shadow-rgb),.14);

  --container:1200px;
  --header-h:78px;

  --font:'Manrope','Segoe UI',system-ui,-apple-system,'Helvetica Neue',Arial,sans-serif;
  --font-alt:'Jost','Manrope','Segoe UI',system-ui,sans-serif;
  --ease:cubic-bezier(.22,.8,.3,1);
}

/* ── Тёмная тема ───────────────────────────
   Сайт всегда открывается светлым, независимо от настроек системы.
   Тёмная включается только кнопкой в шапке и запоминается в браузере. */
:root[data-theme="dark"]{
  --b-900:#F6F2EC;
  --b-800:#E7DFD4;
  --b-700:#D2C4B2;
  --b-600:#C4B199;      /* акцент в тёмной теме — светлее фона */
  --b-500:#A79582;
  --b-400:#867665;
  --b-300:#61554A;
  --b-200:#413931;
  --b-100:#2E2823;
  --b-50:#211C18;

  --ink:#F0EAE2;
  --ink-2:#BCB1A5;
  --ink-3:#968B80;
  --line:#332C26;
  --white:#191512;

  --btn-ink:#1B1511;
  --btn-bg:#C9B79F;
  --header-bg:rgba(20,17,14,.84);
  --glass:rgba(25,21,18,.94);
  --footer-bg:#100D0B;
  --deep-from:#221C17;
  --deep-to:#4A3F36;
  --sand:#2E2620;
  --sand-ink:#D9C3A8;
  --sand-mark:#B99B7C;
  --gold:#D6B078;
  --gold-bg:#2A2117;
  --error:#EE8E76;
  --error-line:#A85440;
  --error-bg:#2B1815;
  --map-ground:#211C18;
  --map-road:#2E2822;
  --map-lane:#282219;
  --map-thin:#251F1A;
  --map-block:#2C251E;
  --dim:brightness(.76) saturate(.85);
  --shadow-rgb:0,0,0;
}

*,*::before,*::after{box-sizing:border-box}

html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px);-webkit-text-size-adjust:100%}

body{
  margin:0;
  font-family:var(--font);
  font-size:17px;
  line-height:1.65;
  color:var(--ink);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

body.is-locked{overflow:hidden}

img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul,ol{margin:0;padding:0;list-style:none}
button{font:inherit;color:inherit;border:0;background:none;cursor:pointer}
svg{width:100%;height:100%;fill:currentColor}

h1,h2,h3{margin:0;line-height:1.2;letter-spacing:-.02em;font-weight:700}
p{margin:0}

::selection{background:var(--b-200);color:var(--b-900)}

:focus-visible{outline:3px solid var(--b-500);outline-offset:3px;border-radius:6px}

.skip-link{
  position:absolute;left:-9999px;top:0;z-index:200;
  padding:12px 20px;background:var(--b-600);color:#fff;border-radius:0 0 12px 0;
}
.skip-link:focus{left:0}

.container{width:100%;max-width:var(--container);margin:0 auto;padding:0 24px}

/* ── Кнопки ───────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:14px 28px;border-radius:100px;
  font-weight:700;font-size:16px;letter-spacing:-.01em;
  cursor:pointer;white-space:nowrap;
  transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .25s var(--ease),color .25s var(--ease);
}
.btn svg{width:19px;height:19px;flex:none}
.btn--primary{background:var(--btn-bg);color:var(--btn-ink);box-shadow:0 10px 24px rgba(94,81,72,.24)}
.btn--primary:hover{background:var(--b-700);transform:translateY(-2px);box-shadow:0 16px 32px rgba(94,81,72,.3)}
.btn--ghost{background:var(--white);color:var(--b-700);box-shadow:inset 0 0 0 1.5px var(--b-300)}
.btn--ghost:hover{background:var(--b-50);box-shadow:inset 0 0 0 1.5px var(--b-500);transform:translateY(-2px)}
.btn--sm{padding:11px 22px;font-size:15px}
.btn--lg{padding:17px 34px;font-size:17px}
/* Блочная кнопка тянется на всю ширину, поэтому её длинный текст обязан
   переноситься: иначе nowrap задаёт колонке min-width по длине надписи
   и вся страница уезжает по горизонтали на телефонах. */
.btn--block{display:flex;width:100%;white-space:normal;text-align:center}
/* фон этой кнопки всегда светлый, поэтому цвет текста задаём literal-ом:
   токен --b-800 в тёмной теме светлеет и кнопка становится нечитаемой */
.btn--white{background:#fff;color:#463C33}
.btn--white:hover{background:#EDE9E1;transform:translateY(-2px)}

.chip{
  display:inline-block;padding:7px 16px;border-radius:100px;
  background:var(--b-100);color:var(--b-700);
  font-family:var(--font-alt);
  font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
}
.chip--sm{padding:5px 13px;font-size:11.5px}

/* ── Шапка ────────────────────────────────── */
.header{
  position:sticky;top:0;z-index:100;
  background:var(--header-bg);
  backdrop-filter:saturate(150%) blur(14px);
  -webkit-backdrop-filter:saturate(150%) blur(14px);
  border-bottom:1px solid transparent;
  transition:box-shadow .3s var(--ease),border-color .3s var(--ease);
}
.header.is-stuck{border-bottom-color:var(--line);box-shadow:0 6px 26px rgba(52,42,34,.05)}

.header__inner{display:flex;align-items:center;gap:28px;height:var(--header-h)}

/* Логотип: знак — маска из фирменной эмблемы, поэтому красится currentColor
   и одинаково читается в светлой и тёмной теме. */
.logo{display:flex;align-items:center;gap:12px;flex:none;color:var(--b-700)}
.logo__mark{
  width:38px;height:38px;flex:none;
  background:currentColor;
  -webkit-mask:url('../assets/img/mark.png') center/contain no-repeat;
  mask:url('../assets/img/mark.png') center/contain no-repeat;
}
.logo__text{display:flex;flex-direction:column;line-height:1}
.logo__name{
  font-family:var(--font-alt);
  font-size:23px;font-weight:400;letter-spacing:.14em;
  color:var(--b-800);
}
.logo__sub{
  margin-top:5px;
  font-family:var(--font-alt);
  font-size:9.5px;font-weight:400;letter-spacing:.24em;text-transform:uppercase;
  color:var(--ink-3);
}
.logo--light{color:rgba(255,255,255,.9)}
.logo--light .logo__name{color:#fff}
.logo--light .logo__sub{color:rgba(255,255,255,.5)}

.nav{display:flex;gap:2px;margin-left:auto}
.nav a{
  position:relative;padding:9px 14px;border-radius:100px;
  font-size:15.5px;font-weight:500;color:var(--ink-2);
  white-space:nowrap;                 /* пункт не должен ломаться на две строки */
  transition:color .2s var(--ease),background .2s var(--ease);
}
.nav a:hover{color:var(--b-700);background:var(--b-50)}
.nav a.is-active{color:var(--b-700);background:var(--b-100)}

.header__actions{display:flex;align-items:center;gap:12px;flex:none}
.header__phone{display:flex;align-items:center;gap:8px;font-weight:700;font-size:15.5px;color:var(--b-800);white-space:nowrap}
.header__phone svg{width:17px;height:17px;color:var(--b-500)}
.header__phone:hover{color:var(--b-600)}

/* переключатель языка */
.lang-switch{
  flex:none;display:flex;align-items:center;justify-content:center;
  height:42px;padding:0 14px;border-radius:100px;
  background:var(--b-50);color:var(--b-700);
  font-family:var(--font-alt);
  font-size:13px;font-weight:600;letter-spacing:.08em;
  transition:background .25s var(--ease),color .25s var(--ease),transform .25s var(--ease);
}
.lang-switch:hover{background:var(--b-100);transform:translateY(-2px)}

/* переключатель темы: показываем ту иконку, на которую переключимся */
.theme-toggle{
  position:relative;flex:none;
  width:42px;height:42px;padding:10px;border-radius:50%;
  background:var(--b-50);color:var(--b-700);
  transition:background .25s var(--ease),color .25s var(--ease),transform .25s var(--ease);
}
.theme-toggle:hover{background:var(--b-100);transform:rotate(12deg)}
.theme-toggle svg{
  position:absolute;inset:10px;width:22px;height:22px;
  transition:opacity .25s var(--ease),transform .35s var(--ease);
}
/* по умолчанию тема светлая — показываем луну («включить тёмную») */
.theme-toggle__sun{opacity:0;transform:rotate(-70deg) scale(.5)}
.theme-toggle__moon{opacity:1;transform:none}
:root[data-theme="dark"] .theme-toggle__sun{opacity:1;transform:none}
:root[data-theme="dark"] .theme-toggle__moon{opacity:0;transform:rotate(70deg) scale(.5)}

.burger{display:none;flex-direction:column;justify-content:center;gap:5px;width:44px;height:44px;border-radius:12px}
.burger span{display:block;height:2px;width:22px;margin:0 auto;background:var(--b-800);border-radius:3px;transition:transform .3s var(--ease),opacity .2s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ── Hero ─────────────────────────────────── */
.hero{position:relative;overflow:hidden;padding:80px 0 96px;background:linear-gradient(168deg,var(--b-50) 0%,var(--white) 60%)}
.hero__blob{position:absolute;border-radius:50%;filter:blur(78px);opacity:.55;pointer-events:none}
.hero__blob--1{width:540px;height:540px;background:var(--b-200);top:-200px;right:-140px}
.hero__blob--2{width:380px;height:380px;background:var(--b-100);bottom:-170px;left:-120px}

.hero__inner{position:relative;display:grid;grid-template-columns:1.05fr .95fr;gap:60px;align-items:center}

.tagline{
  display:inline-flex;align-items:center;gap:8px;
  padding:8px 18px;border-radius:100px;
  background:var(--white);box-shadow:var(--shadow-sm),inset 0 0 0 1px var(--line);
  font-size:14px;font-weight:600;color:var(--b-700);
}
.tagline svg{width:15px;height:15px;color:var(--gold)}

.hero__title{
  margin:24px 0 20px;
  font-size:clamp(37px,5vw,60px);
  font-weight:700;
  letter-spacing:-.035em;color:var(--b-900);
}
.hero__title span{
  position:relative;color:var(--b-600);white-space:nowrap;
}
.hero__title span::after{
  content:'';position:absolute;left:0;right:0;bottom:.07em;height:.14em;
  background:var(--b-200);border-radius:100px;z-index:-1;
}

.hero__lead{max-width:540px;font-size:18.5px;color:var(--ink-2);line-height:1.7}

.hero__cta{display:flex;flex-wrap:wrap;gap:14px;margin:34px 0 40px}

.hero__facts{display:flex;flex-wrap:wrap;gap:14px}
.hero__facts li{
  flex:1 1 150px;padding:16px 20px;border-radius:var(--radius-sm);
  background:var(--white);box-shadow:var(--shadow-sm),inset 0 0 0 1px var(--line);
}
.hero__facts b{display:block;font-size:15px;color:var(--b-700);font-weight:800}
.hero__facts span{display:block;margin-top:3px;font-size:14px;color:var(--ink-3);font-weight:500}

.hero__media{position:relative;margin:0}
.hero__media img{
  width:100%;aspect-ratio:4/3.4;object-fit:cover;
  border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);
}
.hero__badge{
  position:absolute;left:-26px;bottom:36px;
  display:flex;align-items:center;gap:13px;
  padding:15px 22px;border-radius:18px;
  background:var(--white);box-shadow:var(--shadow);
}
.hero__badge svg{width:26px;height:26px;flex:none;padding:5px;border-radius:50%;background:var(--b-100);color:var(--b-600)}
.hero__badge span{font-size:13.5px;color:var(--ink-2);line-height:1.4}
.hero__badge b{display:block;font-size:15px;color:var(--b-900);font-weight:800;line-height:1.35}

/* ── Секции ───────────────────────────────── */
.section{padding:104px 0}
.section--tight{padding:60px 0}
.section--tint{background:var(--b-50)}

.section__head{max-width:720px;margin:0 auto 56px;text-align:center}
.eyebrow{
  display:inline-block;margin-bottom:14px;
  font-family:var(--font-alt);
  font-size:12.5px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--b-500);
}
.eyebrow--light{color:var(--b-300)}
.section__title{font-size:clamp(29px,3.5vw,43px);font-weight:700;letter-spacing:-.032em;color:var(--b-900)}
.section__lead{margin-top:16px;font-size:17.5px;color:var(--ink-2);line-height:1.68}

/* ── Преимущества ─────────────────────────── */
.adv-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.adv{padding:32px 28px;border-radius:var(--radius);background:var(--white);box-shadow:inset 0 0 0 1px var(--line);transition:transform .3s var(--ease),box-shadow .3s var(--ease)}
.adv:hover{transform:translateY(-5px);box-shadow:var(--shadow),inset 0 0 0 1px transparent}
.adv__icon{width:50px;height:50px;padding:12px;margin-bottom:20px;border-radius:15px;background:var(--b-100);color:var(--b-600)}
.adv h3{font-size:18px;margin-bottom:10px;color:var(--b-900);font-weight:700}
.adv p{font-size:15.5px;color:var(--ink-2);line-height:1.6}

/* ── Острая боль ──────────────────────────── */
.urgent{
  display:flex;align-items:center;gap:26px;flex-wrap:wrap;
  padding:30px 34px;border-radius:var(--radius);
  background:linear-gradient(140deg,var(--deep-from),var(--deep-to) 95%);
  box-shadow:var(--shadow);
}
.urgent__icon{
  width:54px;height:54px;flex:none;padding:13px;border-radius:16px;
  background:rgba(255,255,255,.13);color:#fff;
}
.urgent__text{flex:1 1 300px}
.urgent__text h2{font-size:24px;color:#fff;letter-spacing:-.025em;margin-bottom:7px}
.urgent__text p{font-size:15.5px;color:rgba(255,255,255,.78);line-height:1.55}
.urgent__actions{display:flex;flex-direction:column;align-items:flex-end;gap:9px}
.urgent__hours{font-size:13px;color:rgba(255,255,255,.6);white-space:nowrap}

/* ── Услуги ───────────────────────────────── */
.services{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.service{
  position:relative;padding:32px 28px;border-radius:var(--radius);
  background:var(--white);box-shadow:inset 0 0 0 1px var(--line);
  overflow:hidden;transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.service::after{
  content:'';position:absolute;inset:auto -40px -40px auto;width:120px;height:120px;border-radius:50%;
  background:var(--b-50);transition:transform .45s var(--ease);z-index:0;
}
.service:hover{transform:translateY(-6px);box-shadow:var(--shadow),inset 0 0 0 1px transparent}
.service:hover::after{transform:scale(1.9)}
.service > *{position:relative;z-index:1}
.service__icon{width:48px;height:48px;padding:11px;margin-bottom:18px;border-radius:14px;background:var(--b-600);color:var(--btn-ink);box-shadow:0 8px 18px rgba(94,81,72,.22)}
.service h3{font-size:19px;margin-bottom:10px;color:var(--b-900);font-weight:700}
.service p{font-size:15.5px;color:var(--ink-2);line-height:1.6}

/* ── Акции ────────────────────────────────── */
.promos{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.promo{
  position:relative;display:flex;flex-direction:column;
  padding:30px 28px 28px;border-radius:var(--radius);
  background:var(--white);box-shadow:inset 0 0 0 1px var(--line);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.promo:hover{transform:translateY(-5px);box-shadow:var(--shadow),inset 0 0 0 1px transparent}
.promo--wide{grid-column:span 2}
.promo__tag{
  align-self:flex-start;margin-bottom:18px;
  padding:5px 13px;border-radius:100px;background:var(--gold-bg);color:var(--gold);
  font-family:var(--font-alt);
  font-size:11.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
}
.promo h3{font-size:19.5px;margin-bottom:12px;color:var(--b-900);line-height:1.3}
.promo p{font-size:15px;color:var(--ink-2);line-height:1.6;flex:1}
.promo__price{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-top:20px}
.promo__now{
  font-family:var(--font-alt);
  font-size:29px;font-weight:600;letter-spacing:-.02em;color:var(--b-700);
}
.promo__was{font-size:16px;color:var(--ink-3);text-decoration:line-through}
.promo__gain{
  padding:4px 12px;border-radius:100px;background:var(--b-100);color:var(--b-700);
  font-size:13px;font-weight:700;
}
.promo__note{
  display:flex;align-items:center;gap:9px;flex-wrap:wrap;
  margin-top:26px;padding:16px 22px;border-radius:var(--radius-sm);
  background:var(--gold-bg);
  font-size:14.5px;color:var(--sand-ink);line-height:1.5;
}
.promo__note svg{width:19px;height:19px;flex:none;color:var(--gold)}
.promo__note b{color:var(--b-800)}

/* ── Цены ─────────────────────────────────── */
/* minmax(0,…) вместо голого fr: иначе широкое содержимое колонки
   (длинная кнопка, неразрывная строка) растягивает её сверх своей доли. */
.prices{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.9fr);gap:24px;align-items:start}
.prices__table{
  width:100%;border-collapse:collapse;
  background:var(--white);border-radius:var(--radius);overflow:hidden;
  box-shadow:inset 0 0 0 1px var(--line);
}
.prices__caption{
  padding:22px 28px 14px;text-align:left;
  font-family:var(--font-alt);
  font-size:12.5px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--b-500);
}
.prices__table td{padding:15px 28px;border-top:1px solid var(--line);font-size:16px;color:var(--ink-2)}
.prices__table tr:first-child td{border-top:0}
.prices__table td:first-child{color:var(--b-900);font-weight:600}
.prices__table td:last-child{text-align:right;white-space:nowrap;font-weight:700;color:var(--b-700)}
.prices__free{color:var(--gold)!important}
.prices__note{
  padding:28px 30px;border-radius:var(--radius);
  background:var(--b-50);box-shadow:inset 0 0 0 1px var(--line);
}
.prices__note h3{font-size:18px;color:var(--b-900);margin-bottom:14px}
.prices__note ul{display:grid;gap:10px;margin-bottom:16px}
.prices__note li{position:relative;padding-left:24px;font-size:15px;color:var(--ink-2);line-height:1.5}
.prices__note li::before{
  content:'';position:absolute;left:0;top:8px;width:8px;height:8px;border-radius:50%;
  background:var(--b-300);box-shadow:0 0 0 3px var(--b-100);
}
.prices__note p{font-size:14.5px;color:var(--ink-2);line-height:1.6;margin-bottom:20px}

/* ── Рассрочка ────────────────────────────── */
.instal{
  display:flex;align-items:center;justify-content:space-between;gap:28px;flex-wrap:wrap;
  margin-top:24px;padding:28px 32px;border-radius:var(--radius);
  background:var(--white);box-shadow:inset 0 0 0 1px var(--line);
}
.instal__body{flex:1 1 320px}
.instal__body h3{font-size:21px;color:var(--b-900);margin-bottom:8px}
.instal__body p{font-size:15.5px;color:var(--ink-2);line-height:1.6}
.instal__plans{display:flex;gap:12px;flex-wrap:wrap}
.instal__plan{
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  min-width:112px;padding:14px 22px;border-radius:var(--radius-sm);
  background:var(--b-50);box-shadow:inset 0 0 0 1px var(--line);
}
.instal__plan b{
  font-family:var(--font-alt);
  font-size:24px;font-weight:600;letter-spacing:.02em;color:var(--b-700);
}
.instal__plan span{margin-top:2px;font-size:12.5px;color:var(--ink-3);font-weight:600}

/* ═══ ДО / ПОСЛЕ ═══════════════════════════ */
.ba-feature{
  display:grid;grid-template-columns:1.15fr .85fr;gap:44px;align-items:center;
  padding:34px;margin-bottom:52px;
  background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow);
}

.ba-slider{
  position:relative;aspect-ratio:16/9;overflow:hidden;
  border-radius:var(--radius);background:var(--b-100);
  cursor:ew-resize;user-select:none;-webkit-user-select:none;touch-action:pan-y;
}
.ba-slider__img{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  pointer-events:none;-webkit-user-drag:none;
}
.ba-slider__img--before{
  clip-path:inset(0 calc(100% - var(--pos,50%)) 0 0);
  will-change:clip-path;
}
/* пока настоящих снимков нет, подставляются светлые SVG-заглушки —
   в тёмной теме их нужно приглушить, иначе они бьют по глазам */
.ba-slider__img[src$=".svg"],.ba-card__side img[src$=".svg"],
.ba-slider__img[src*="svg+xml"],.ba-card__side img[src*="svg+xml"]{filter:var(--dim)}
.ba-slider__tag{
  position:absolute;top:16px;z-index:3;
  padding:6px 15px;border-radius:100px;
  font-family:var(--font-alt);
  font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;
  backdrop-filter:blur(6px);
}
.ba-slider__tag--before{left:16px;background:rgba(35,29,24,.6);color:#fff}
.ba-slider__tag--after{right:16px;background:rgba(94,81,72,.9);color:#fff}

.ba-slider__handle{
  position:absolute;top:0;bottom:0;left:var(--pos,50%);z-index:4;
  width:3px;margin-left:-1.5px;background:#fff;
  box-shadow:0 0 0 1px rgba(35,29,24,.12);
  pointer-events:none;
}
.ba-slider__handle svg{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  width:44px;height:44px;padding:11px;border-radius:50%;
  background:#fff;color:var(--b-600);
  box-shadow:0 6px 20px rgba(35,29,24,.25);
}
.ba-slider:focus-visible{outline:3px solid var(--b-500);outline-offset:4px}

.ba-feature__info h3{font-size:25px;margin:16px 0 14px;color:var(--b-900);letter-spacing:-.025em}
.ba-feature__info p{font-size:16px;color:var(--ink-2);line-height:1.68}
.ba-feature__list{margin:24px 0 28px;display:grid;gap:12px}
.ba-feature__list li{
  display:grid;grid-template-columns:110px 1fr;gap:14px;align-items:baseline;
  padding-bottom:12px;border-bottom:1px solid var(--line);
  font-size:15px;color:var(--ink-2);
}
.ba-feature__list li:last-child{border-bottom:0;padding-bottom:0}
.ba-feature__list b{font-family:var(--font-alt);font-size:12px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--b-500)}

.ba-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-bottom:52px}
.ba-card{
  background:var(--white);border-radius:var(--radius);overflow:hidden;
  box-shadow:inset 0 0 0 1px var(--line);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.ba-card:hover{transform:translateY(-5px);box-shadow:var(--shadow),inset 0 0 0 1px transparent}
.ba-card__pair{display:grid;grid-template-columns:1fr 1fr;gap:3px;background:var(--line)}
.ba-card__side{position:relative;margin:0;overflow:hidden;background:var(--b-100)}
.ba-card__side img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .5s var(--ease)}
.ba-card:hover .ba-card__side img{transform:scale(1.05)}
.ba-card__side figcaption{
  position:absolute;left:12px;bottom:12px;
  padding:5px 13px;border-radius:100px;
  font-family:var(--font-alt);
  font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;
  background:rgba(35,29,24,.6);color:#fff;backdrop-filter:blur(6px);
}
.ba-card__side--after figcaption{background:rgba(94,81,72,.9)}
.ba-card__body{padding:24px 26px 28px}
.ba-card__body h3{font-size:18.5px;margin:12px 0 9px;color:var(--b-900)}
.ba-card__body p{font-size:15px;color:var(--ink-2);line-height:1.6}

/* Сравнительная таблица */
.compare{
  padding:36px 38px 32px;background:var(--white);
  border-radius:var(--radius-lg);box-shadow:inset 0 0 0 1px var(--line);
}
.compare__title{font-size:23px;text-align:center;margin-bottom:28px;color:var(--b-900)}
.compare__table{display:grid;gap:0}
.compare__head,.compare__row{display:grid;grid-template-columns:1fr 1.35fr 1.35fr;gap:16px;align-items:center}
.compare__head{padding-bottom:14px;border-bottom:2px solid var(--line)}
.compare__label{
  padding:9px 18px;border-radius:100px;text-align:center;
  font-family:var(--font-alt);
  font-size:12.5px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;
}
.compare__label--before{background:var(--sand);color:var(--sand-ink)}
.compare__label--after{background:var(--b-100);color:var(--b-700)}
.compare__row{padding:16px 0;border-bottom:1px solid var(--line)}
.compare__row:last-child{border-bottom:0}
.compare__key{font-size:14.5px;font-weight:700;color:var(--b-900)}
.compare__cell{position:relative;padding-left:28px;font-size:15px;color:var(--ink-2);line-height:1.5}
.compare__cell::before{
  position:absolute;left:0;top:1px;
  width:19px;height:19px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  font-size:12px;font-weight:800;
}
.compare__cell--before::before{content:'−';background:var(--sand);color:var(--sand-mark)}
.compare__cell--after::before{content:'✓';background:var(--b-100);color:var(--b-600);font-size:10.5px}

/* ── Врачи ────────────────────────────────── */
.doctors{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.doctor{
  background:var(--white);border-radius:var(--radius);overflow:hidden;
  box-shadow:inset 0 0 0 1px var(--line);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.doctor:hover{transform:translateY(-6px);box-shadow:var(--shadow-lg),inset 0 0 0 1px transparent}
.doctor__photo{position:relative;overflow:hidden;background:var(--b-100)}
.doctor__photo img{width:100%;aspect-ratio:3/3.2;object-fit:cover;object-position:center 22%;transition:transform .55s var(--ease)}
.doctor:hover .doctor__photo img{transform:scale(1.045)}
.doctor__body{padding:26px 28px 30px}
.doctor__body h3{font-size:19.5px;color:var(--b-900);letter-spacing:-.02em}
.doctor__role{margin:8px 0 18px;font-size:14px;font-weight:700;color:var(--b-600);line-height:1.45}
.doctor__skills{display:grid;gap:9px}
.doctor__skills li{position:relative;padding-left:24px;font-size:14.8px;color:var(--ink-2);line-height:1.5}
.doctor__skills li::before{
  content:'';position:absolute;left:0;top:8px;width:8px;height:8px;
  border-radius:50%;background:var(--b-300);box-shadow:0 0 0 3px var(--b-100);
}
.doctors__note{
  margin-top:26px;padding:18px 24px;border-radius:var(--radius-sm);
  background:var(--b-50);box-shadow:inset 0 0 0 1px var(--line);
  font-size:14.5px;color:var(--ink-2);line-height:1.6;text-align:center;
}

/* ── Шаги ─────────────────────────────────── */
.steps{display:grid;grid-template-columns:repeat(5,1fr);gap:18px}
.step{
  position:relative;padding:30px 24px;border-radius:var(--radius);
  background:var(--white);box-shadow:inset 0 0 0 1px var(--line);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.step:hover{transform:translateY(-5px);box-shadow:var(--shadow),inset 0 0 0 1px transparent}
.step__num{
  display:inline-block;margin-bottom:16px;
  font-family:var(--font-alt);
  font-size:32px;font-weight:400;letter-spacing:-.02em;
  color:var(--b-300);
}
.step h3{font-size:17.5px;margin-bottom:9px;color:var(--b-900)}
.step p{font-size:14.8px;color:var(--ink-2);line-height:1.55}

/* ── Галерея ──────────────────────────────── */
.gallery{display:grid;grid-template-columns:2fr 1fr 1fr;gap:18px}
.gallery__item{
  position:relative;padding:0;overflow:hidden;
  border-radius:var(--radius);background:var(--b-100);
  box-shadow:var(--shadow-sm);
}
.gallery__item img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .55s var(--ease)}
.gallery__item:hover img{transform:scale(1.06)}
.gallery__item::after{
  content:'';position:absolute;inset:0;background:rgba(35,29,24,0);transition:background .3s var(--ease);
}
.gallery__item:hover::after{background:rgba(35,29,24,.1)}
.gallery__item--wide img{aspect-ratio:16/10.4}

/* ── Полезное ─────────────────────────────── */
.posts{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.post{
  display:flex;flex-direction:column;
  padding:30px 28px;border-radius:var(--radius);
  background:var(--white);box-shadow:inset 0 0 0 1px var(--line);
  cursor:pointer;transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.post:hover{transform:translateY(-5px);box-shadow:var(--shadow),inset 0 0 0 1px transparent}
.post__tag{
  align-self:flex-start;margin-bottom:16px;
  padding:5px 13px;border-radius:100px;background:var(--b-100);color:var(--b-700);
  font-family:var(--font-alt);
  font-size:11.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;
}
.post h3{font-size:18.5px;margin-bottom:11px;color:var(--b-900);line-height:1.34}
.post p{font-size:15px;color:var(--ink-2);line-height:1.6;flex:1}
.post__more{
  display:inline-flex;align-items:center;gap:7px;margin-top:20px;
  font-size:15px;font-weight:700;color:var(--b-700);
}
.post__more svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s var(--ease)}
.post:hover .post__more svg{transform:translateX(4px)}

/* ── Отзывы ───────────────────────────────── */
.rating{
  display:grid;grid-template-columns:auto minmax(0,1fr);gap:44px;align-items:center;
  padding:38px 42px;border-radius:var(--radius-lg);
  background:var(--white);box-shadow:inset 0 0 0 1px var(--line);
}
.rating__score{text-align:center}
.rating__num{
  display:block;font-family:var(--font-alt);
  font-size:64px;font-weight:500;line-height:1;letter-spacing:-.03em;color:var(--b-800);
}
.rating__stars{display:flex;gap:4px;justify-content:center;margin:12px 0 8px;color:var(--gold)}
.rating__stars svg{width:19px;height:19px}
.rating__count{font-size:13.5px;color:var(--ink-3);white-space:nowrap}
.rating__body h3{font-size:22px;color:var(--b-900);margin-bottom:10px;letter-spacing:-.02em}
.rating__body > p{font-size:16px;color:var(--ink-2);line-height:1.65}
.rating__tags{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 22px}
.rating__tags span{
  padding:6px 14px;border-radius:100px;
  background:var(--b-50);color:var(--b-700);
  font-size:13.5px;font-weight:600;
  box-shadow:inset 0 0 0 1px var(--line);
}
.rating__actions{display:flex;gap:12px;flex-wrap:wrap}

/* ── Запись ───────────────────────────────── */
.appoint{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:52px;align-items:start;
  padding:54px;border-radius:var(--radius-lg);
  background:linear-gradient(150deg,var(--deep-from),var(--deep-to) 92%);
  box-shadow:var(--shadow-lg);
}
.appoint__text h2{font-size:clamp(26px,3vw,35px);color:#fff;letter-spacing:-.03em;margin-bottom:16px}
.appoint__text > p{font-size:16.5px;color:rgba(255,255,255,.76);line-height:1.68}
.appoint__contacts{display:grid;gap:12px;margin-top:32px}
.appoint__contact{
  display:flex;align-items:center;gap:15px;
  padding:16px 20px;border-radius:var(--radius-sm);
  background:rgba(255,255,255,.08);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.13);
  transition:background .25s var(--ease),transform .25s var(--ease);
}
.appoint__contact:hover{background:rgba(255,255,255,.15);transform:translateX(4px)}
.appoint__contact svg{width:22px;height:22px;flex:none;color:var(--b-300)}
.appoint__contact span{font-size:13.5px;color:rgba(255,255,255,.68);line-height:1.4}
.appoint__contact b{display:block;font-size:16px;color:#fff;font-weight:700;margin-bottom:2px}

.appoint__form{
  padding:34px;border-radius:var(--radius);
  background:var(--white);box-shadow:var(--shadow);
}
.field{margin-bottom:18px}
.field label{display:block;margin-bottom:8px;font-size:14px;font-weight:700;color:var(--b-900)}
.field label span{color:var(--ink-3);font-weight:500}
.field input,.field select,.field textarea{
  width:100%;padding:14px 17px;
  font-family:inherit;font-size:16px;color:var(--ink);
  background:var(--b-50);border:2px solid transparent;border-radius:var(--radius-sm);
  transition:border-color .2s var(--ease),background .2s var(--ease);
  resize:vertical;
}
.field input::placeholder,.field textarea::placeholder{color:var(--ink-3)}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;background:var(--white);border-color:var(--b-400);
}
.field select{
  appearance:none;-webkit-appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237C7269' stroke-width='2.2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 16px center;background-size:18px;
  padding-right:46px;
}
.field.has-error input{border-color:var(--error-line);background:var(--error-bg)}
.field__error{display:none;margin-top:6px;font-size:13.5px;font-weight:600;color:var(--error)}
.field.has-error .field__error{display:block}
.appoint__note{margin-top:16px;font-size:12.5px;color:var(--ink-3);line-height:1.5;text-align:center}

/* ── Контакты ─────────────────────────────── */
.branches{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}
.branch{
  display:flex;flex-direction:column;
  border-radius:var(--radius-lg);overflow:hidden;
  background:var(--white);box-shadow:inset 0 0 0 1px var(--line);
  transition:box-shadow .3s var(--ease);
}
.branch:hover{box-shadow:var(--shadow),inset 0 0 0 1px transparent}
.branch__head{
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  padding:24px 28px 20px;border-bottom:1px solid var(--line);
}
.branch__head h3{font-size:21px;color:var(--b-900);letter-spacing:-.02em}
.branch__side{
  padding:5px 13px;border-radius:100px;background:var(--b-100);color:var(--b-700);
  font-family:var(--font-alt);
  font-size:11.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;
}
.branch__body{display:grid;gap:20px;padding:24px 28px 8px}
.contact-item{display:flex;gap:16px;align-items:flex-start}
.contact-item__icon{
  width:42px;height:42px;flex:none;padding:11px;border-radius:13px;
  background:var(--b-50);color:var(--b-600);box-shadow:inset 0 0 0 1px var(--line);
}
.contact-item b{display:block;font-family:var(--font-alt);font-size:11.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--b-500);margin-bottom:5px}
.contact-item p{font-size:16.5px;color:var(--b-900);font-weight:600;line-height:1.5}
.contact-item small{display:block;margin-top:3px;font-size:14px;color:var(--ink-3);font-weight:500}
.contact-item a:hover{color:var(--b-600)}

.hours{width:100%;border-collapse:collapse;font-size:15px}
.hours td{padding:4px 0;color:var(--ink-2)}
.hours td:last-child{text-align:right;font-weight:700;color:var(--b-900);white-space:nowrap}
.hours__off{color:var(--ink-3)!important;font-weight:500!important}

.branch__actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:20px 28px 26px;margin-top:auto}

/* блок-карта (работает без интернета и при открытии с диска) */
.mapcard{
  position:relative;display:block;overflow:hidden;
  height:210px;
  background:var(--b-100);
}
.mapcard__bg{position:absolute;inset:0;width:100%;height:100%}
.mapcard__bg .map-ground{fill:var(--map-ground)}
.mapcard__bg .map-block{fill:var(--map-block)}
.mapcard__bg .map-lane{stroke:var(--map-lane);fill:none}
.mapcard__bg .map-road{stroke:var(--map-road);fill:none}
.mapcard__bg .map-thin{stroke:var(--map-thin);fill:none}
.mapcard__pin{
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  display:flex;align-items:center;justify-content:center;
  width:50px;height:50px;padding:12px;border-radius:50%;
  background:var(--b-600);color:var(--btn-ink);
  box-shadow:0 10px 26px rgba(94,81,72,.4);
}
.mapcard__pin::after{
  content:'';position:absolute;inset:0;border-radius:50%;
  border:2px solid var(--b-600);animation:pulse 2.8s infinite;
}
.mapcard__label{
  position:absolute;left:18px;bottom:18px;
  padding:9px 16px;border-radius:100px;
  background:var(--glass);backdrop-filter:blur(8px);
  font-size:13.5px;font-weight:600;color:var(--b-800);
  box-shadow:var(--shadow-sm);
}

.socials{display:flex;flex-wrap:wrap;gap:11px;justify-content:center;margin-top:32px}
.social{
  display:inline-flex;align-items:center;gap:9px;
  padding:11px 20px;border-radius:100px;
  background:var(--white);color:var(--b-800);
  font-size:14.5px;font-weight:700;
  box-shadow:var(--shadow-sm),inset 0 0 0 1px var(--line);
  transition:transform .25s var(--ease),box-shadow .25s var(--ease),color .25s var(--ease);
}
.social svg{width:18px;height:18px;color:var(--b-600)}
.social:hover{transform:translateY(-3px);box-shadow:var(--shadow);color:var(--b-600)}
/* у WhatsApp намеренно нет фирменного зелёного: иконка наследует
   цвет от .social svg и остаётся в коричневой гамме сайта */

/* ── Подвал ───────────────────────────────── */
.footer{background:var(--footer-bg);color:rgba(255,255,255,.66);padding:64px 0 28px}
.footer__inner{display:grid;grid-template-columns:1.5fr 1fr 1.3fr;gap:48px}
.footer__brand p{margin-top:20px;font-size:15px;line-height:1.65;max-width:340px}
.footer__nav,.footer__contacts{display:flex;flex-direction:column;gap:11px}
.footer b{
  margin-bottom:8px;font-family:var(--font-alt);font-size:11.5px;font-weight:500;letter-spacing:.2em;
  text-transform:uppercase;color:#fff;
}
.footer__nav a,.footer__contacts a{font-size:15.5px;transition:color .2s var(--ease)}
.footer__nav a:hover,.footer__contacts a:hover{color:var(--b-300)}
.footer__contacts span{font-size:14.5px;line-height:1.5}
.footer__contacts a{font-size:17px;font-weight:700;color:#fff}
.footer__contacts em{display:block;margin-top:10px;font-style:normal;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.42)}

.footer__bottom{
  display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center;
  margin-top:48px;padding-top:24px;border-top:1px solid rgba(255,255,255,.1);
  font-size:13px;
}
.footer__disclaimer{max-width:620px;color:rgba(255,255,255,.44);line-height:1.5}

/* ── FAB ──────────────────────────────────── */
.fab{
  position:fixed;right:26px;bottom:26px;z-index:90;
  display:flex;align-items:center;justify-content:center;
  width:58px;height:58px;padding:14px;border-radius:50%;
  background:var(--btn-bg);color:var(--btn-ink);
  box-shadow:0 10px 28px rgba(94,81,72,.34);
  transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.fab:hover{transform:scale(1.09)}
.fab::before{
  content:'';position:absolute;inset:0;border-radius:50%;
  border:2px solid var(--btn-bg);animation:pulse 2.6s infinite;
}
@keyframes pulse{0%{transform:scale(1);opacity:.65}70%{transform:scale(1.55);opacity:0}100%{opacity:0}}

/* ── Модалка ──────────────────────────────── */
/* важно: правило .modal{display:flex} перебивает браузерное [hidden]{display:none},
   поэтому скрытое состояние задаём явно */
.modal[hidden],.lightbox[hidden]{display:none}

.modal{position:fixed;inset:0;z-index:150;display:flex;align-items:center;justify-content:center;padding:24px}
.modal__backdrop{position:absolute;inset:0;background:rgba(35,29,24,.55);backdrop-filter:blur(5px);animation:fade .3s var(--ease)}
.modal__box{
  position:relative;width:100%;max-width:720px;max-height:86vh;overflow-y:auto;
  padding:48px;border-radius:var(--radius-lg);background:var(--white);
  box-shadow:var(--shadow-lg);animation:pop .35s var(--ease);
}
.modal__close{
  position:absolute;top:20px;right:20px;z-index:2;
  width:42px;height:42px;padding:10px;border-radius:50%;
  background:var(--b-50);color:var(--b-800);transition:background .2s,transform .2s
}
.modal__close:hover{background:var(--b-100);transform:rotate(90deg)}
.modal__content h2{font-size:28px;margin-bottom:8px;color:var(--b-900);padding-right:44px;letter-spacing:-.028em}
.modal__content .modal__tag{
  display:inline-block;margin-bottom:18px;padding:5px 13px;border-radius:100px;
  background:var(--b-100);color:var(--b-700);
  font-family:var(--font-alt);
  font-size:11.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;
}
.modal__content p{margin-bottom:15px;font-size:16.5px;color:var(--ink-2);line-height:1.72}
.modal__content h3{font-size:19px;margin:26px 0 12px;color:var(--b-900)}
.modal__content ul{display:grid;gap:10px;margin-bottom:18px}
.modal__content ul li{position:relative;padding-left:26px;font-size:16px;color:var(--ink-2);line-height:1.6}
.modal__content ul li::before{
  content:'';position:absolute;left:0;top:9px;width:8px;height:8px;border-radius:50%;
  background:var(--b-400);box-shadow:0 0 0 3px var(--b-100);
}
.rda{display:grid;gap:10px;margin:18px 0 22px}
.rda__row{
  display:grid;grid-template-columns:112px 1fr;gap:16px;align-items:center;
  padding:13px 18px;border-radius:var(--radius-sm);background:var(--b-50);
}
.rda__val{font-size:15px;font-weight:800;color:var(--b-700)}
.rda__txt{font-size:15px;color:var(--ink-2);line-height:1.45}
.myth{display:grid;gap:14px;margin:18px 0 8px}
.myth__item{
  display:grid;grid-template-columns:1fr 1fr;gap:2px;
  border-radius:var(--radius-sm);overflow:hidden;background:var(--line);
}
.myth__side{padding:16px 18px;background:var(--white)}
.myth__side b{
  display:block;margin-bottom:7px;font-family:var(--font-alt);font-size:11px;font-weight:500;
  letter-spacing:.14em;text-transform:uppercase;
}
.myth__side--myth{background:var(--sand)}
.myth__side--myth b{color:var(--sand-mark)}
.myth__side--fact{background:var(--b-50)}
.myth__side--fact b{color:var(--b-600)}
.myth__side p{margin:0;font-size:14.8px;line-height:1.55}

@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes pop{from{opacity:0;transform:translateY(24px) scale(.97)}to{opacity:1;transform:none}}

/* ── Лайтбокс ─────────────────────────────── */
.lightbox{
  position:fixed;inset:0;z-index:160;
  display:flex;align-items:center;justify-content:center;padding:32px;
  background:rgba(35,29,24,.9);backdrop-filter:blur(6px);animation:fade .3s var(--ease);
}
.lightbox img{max-width:100%;max-height:88vh;border-radius:var(--radius);box-shadow:var(--shadow-lg)}
.lightbox__close{
  position:absolute;top:24px;right:24px;
  width:46px;height:46px;padding:11px;border-radius:50%;
  background:rgba(255,255,255,.15);color:#fff;transition:background .2s,transform .2s;
}
.lightbox__close:hover{background:rgba(255,255,255,.28);transform:rotate(90deg)}

/* ── Reveal ───────────────────────────────── */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.is-visible{opacity:1;transform:none}

/* ═══ АДАПТИВ ═══════════════════════════════ */

/* Пункты меню не переносятся, поэтому на узких десктопах
   поджимаем отступы, чтобы шапка осталась одной полосой. */
@media (min-width:1025px) and (max-width:1300px){
  .header__inner{gap:14px}
  .nav a{padding:9px 9px;font-size:14.5px}
  .header__phone{font-size:14.5px}
  .btn--sm{padding:11px 18px;font-size:14.5px}
  .logo__name{font-size:21px}
}

@media (max-width:1080px){
  .adv-grid{grid-template-columns:repeat(2,1fr)}
  .services,.posts,.promos{grid-template-columns:repeat(2,1fr)}
  .promo--wide{grid-column:span 2}
  .steps{grid-template-columns:repeat(3,1fr)}
  .doctors{grid-template-columns:1fr}
  .doctor{display:grid;grid-template-columns:230px 1fr}
  .doctor__photo img{height:100%;aspect-ratio:auto;min-height:280px}
  .ba-feature{grid-template-columns:1fr;gap:30px}
  .branches{grid-template-columns:1fr}
  .footer__inner{grid-template-columns:1fr 1fr;gap:36px}
}

@media (max-width:1024px){
  .nav{
    position:fixed;inset:var(--header-h) 0 auto 0;
    flex-direction:column;gap:2px;
    padding:18px 24px 26px;
    background:var(--white);border-bottom:1px solid var(--line);
    box-shadow:var(--shadow);
    transform:translateY(-140%);transition:transform .38s var(--ease);
    margin-left:0;
  }
  .nav.is-open{transform:none}
  .nav a{padding:14px 16px;font-size:17px;border-radius:12px}
  .burger{display:flex}
  /* меню стало position:fixed и выпало из потока — теперь вправо
     кнопки отодвигает сам блок действий, иначе справа остаётся пустота */
  .header__actions{margin-left:auto}
  .header__phone span{display:none}
  .header__phone{padding:10px;border-radius:50%;background:var(--b-50)}
  .header__phone svg{width:19px;height:19px}
  .header__inner{gap:14px}
  .hero__inner{grid-template-columns:1fr;gap:44px}
  .hero__media{order:-1}
  .hero__media img{aspect-ratio:16/10}
  .hero__badge{left:16px;bottom:16px;padding:12px 16px;gap:10px}
  .hero__badge b{font-size:13.5px}
  .hero__badge svg{width:22px;height:22px}
  .hero__lead{max-width:none}
  .section{padding:76px 0}
  .appoint{grid-template-columns:1fr;gap:36px;padding:38px}
  .gallery{grid-template-columns:1fr 1fr}
  .gallery__item--wide{grid-column:1/-1}
  .rating{grid-template-columns:1fr;gap:26px;text-align:center;padding:32px 28px}
  .rating__actions{justify-content:center}
  .rating__tags{justify-content:center}
  .compare__head,.compare__row{grid-template-columns:1fr;gap:8px}
  .compare__head{display:none}
  .compare__row{padding:18px 0}
  .compare__key{margin-bottom:6px}
  .compare__cell{padding:10px 14px 10px 40px;border-radius:12px}
  .compare__cell::before{left:14px;top:11px}
  .compare__cell--before{background:var(--sand)}
  .compare__cell--after{background:var(--b-50)}
}

/* на узких экранах в шапке остаются только логотип, звонок, тема и меню:
   кнопка записи дублируется первым экраном и плавающей кнопкой WhatsApp */
@media (max-width:600px){
  .header .btn--primary{display:none}
  .header__inner{gap:12px}
  .logo__name{font-size:19px;letter-spacing:.12em}
  .logo__sub{font-size:8.5px;letter-spacing:.2em}
  .logo__mark{width:32px;height:32px}
  .logo{gap:9px}

  /* четыре кнопки приводим к одной сетке: одинаковый размер, форма и фон */
  .header__actions{gap:9px}
  .header__phone,
  .theme-toggle,
  .lang-switch,
  .burger{
    width:42px;height:42px;flex:none;
    display:flex;align-items:center;justify-content:center;
    padding:0;border-radius:50%;background:var(--b-50);
  }
  .lang-switch{font-size:11.5px;letter-spacing:.02em}
  .header__phone svg{width:19px;height:19px}
  .burger{flex-direction:column;gap:5px}
  .burger span{width:18px}
}

@media (max-width:400px){
  .logo__name{font-size:17px}
  .logo__sub{display:none}
  .logo{gap:8px}
  .logo__mark{width:30px;height:30px}
  .header__actions{gap:6px}
  .header__phone,
  .theme-toggle,
  .lang-switch,
  .burger{width:38px;height:38px}
  .lang-switch{font-size:10.5px}
  .header__phone svg,
  .theme-toggle svg{width:17px;height:17px}
  .theme-toggle svg{inset:10.5px}
}

/* очень узкие экраны (320px): четыре кнопки помещаются только так */
@media (max-width:340px){
  .header .container{padding-left:12px;padding-right:12px}
  .logo__name{font-size:15.5px}
  .logo__mark{width:26px;height:26px}
  .header__actions{gap:5px}
  .header__phone,
  .theme-toggle,
  .lang-switch,
  .burger{width:34px;height:34px}
  .lang-switch{font-size:9.5px}
}

@media (max-width:760px){
  body{font-size:16px}
  .container{padding:0 18px}
  /* На узком экране длинная надпись важнее одной строки: разрешаем перенос,
     иначе кнопка вылезает за край и тянет за собой всю страницу. */
  .btn{white-space:normal;text-align:center}
  .rating__actions .btn,.branch__actions .btn,.urgent__actions .btn{width:100%}
  .section{padding:62px 0}
  .section--tight{padding:42px 0}
  .section__head{margin-bottom:38px}
  .adv-grid,.services,.posts,.ba-grid,.steps,.prices,.promos{grid-template-columns:1fr}
  .promo--wide{grid-column:auto}
  .urgent{padding:24px 22px;gap:18px}
  .urgent__text h2{font-size:21px}
  .urgent__actions{align-items:stretch;width:100%}
  .urgent__hours{text-align:center;white-space:normal}
  .prices__table td{padding:13px 20px;font-size:15px}
  .prices__caption{padding:18px 20px 12px}
  .prices__note{padding:22px 20px}
  .instal{padding:24px 22px;gap:20px}
  .instal__plans{width:100%}
  .instal__plan{flex:1 1 120px}
  .doctor{grid-template-columns:1fr}
  .doctor__photo img{aspect-ratio:3/2.6;min-height:0;object-position:center 20%}
  .ba-feature{padding:18px}
  .ba-slider{aspect-ratio:4/3}
  .ba-feature__info h3{font-size:21px}
  .ba-feature__list li{grid-template-columns:1fr;gap:4px}
  .compare{padding:26px 22px}
  .gallery{grid-template-columns:1fr}
  .appoint{padding:26px 22px}
  .appoint__form{padding:24px 20px}
  .branch__head{padding:20px 22px 16px}
  .branch__body{padding:20px 22px 6px}
  .branch__actions{padding:16px 22px 22px;grid-template-columns:1fr}
  .rating__num{font-size:54px}
  .footer__inner{grid-template-columns:1fr;gap:32px}
  .footer__bottom{flex-direction:column;align-items:flex-start;gap:12px}
  .modal__box{padding:32px 22px;max-height:90vh}
  .modal__content h2{font-size:23px}
  .myth__item{grid-template-columns:1fr}
  .rda__row{grid-template-columns:1fr;gap:4px}
  .fab{right:16px;bottom:16px;width:54px;height:54px}
  .hero{padding:44px 0 66px}
  .hero__facts li{flex:1 1 100%}
}

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