/* ============================================
   ESC — базові стилі
   ============================================ */

/* ---- Шрифти (локально в fonts/ через @font-face) ----
   Дисплейні заголовки — Ermilov Bold; акцентний дисплей — Unbounded;
   основний текст — Inter (Google Fonts, підключено в <head>). */
@font-face {
  font-family: 'Ermilov';
  src: url('../fonts/Ermilov-Bold.otf') format('opentype');
  font-weight: 700; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Unbounded';
  src: url('../fonts/Unbounded-SemiBold.ttf') format('truetype');
  font-weight: 600; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Unbounded';
  src: url('../fonts/Unbounded-Bold.ttf') format('truetype');
  font-weight: 700; font-style: normal; font-display: swap;
}

:root {
  /* ---- Кольори (з home_page.json — фактичні fills) ---- */
  --color-bg:           #fefefe;  /* основне тло */
  --color-card:         #f4f7f6;  /* світлі секції / картки */
  --color-text:         #1a1a1a;  /* основний текст (заголовки, меню, CTA) */
  --color-accent:       #9fe870;  /* світло-зелений акцент (кнопки, підкреслення) */
  --color-accent-bright:#81df4c;  /* насичений зелений (промо-плашка, соц-іконки) */
  --color-accent-dark:  #163300;  /* темно-зелений (текст на акценті, заголовки) */
  --color-hover:        #8edb5c;  /* зелений для hover-станів (меню, дропдаун, посилання) */

  --color-dark:        #18302c;  /* темні секції (тло) */
  --color-dark-green:  #1d3208;  /* глибокий зелений (декор/тло) */
  --color-slate:       #38474f;  /* приглушений текст / слейт */
  --color-muted:       #f2f5f4;  /* ледь-сірий роздільник */
  --color-line:        #d3d5d2;  /* роздільники на світлому тлі */

  --font-display: 'Ermilov', 'Unbounded', system-ui, sans-serif;
  --font-accent:  'Unbounded', 'Ermilov', system-ui, sans-serif;
  --font-body:    'Inter', system-ui, sans-serif;

  --container-width:  1180px;   /* ВНУТРІШНЯ ширина контенту (як у Figma, x=370..1550) */
  --container-narrow: 1024px;
  --container-pad:    24px;

  /* 8px-сітка відступів: 4 / 8 / 16 / 24 / 32 / 48 / 64 */

  --radius-lg: 20px;
  --radius-md: 10px;
  --radius-sm: 6px;

  --transition: 0.25s ease;
}

/* ---- Reset ---- */
* { box-sizing: border-box; }

html, body {
  /* захист від горизонтального скролу через off-screen мобільне меню */
  overflow-x: hidden;
}

html { scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: var(--font-body);
  color: var(--color-text);
  background: var(--color-bg);
  line-height: 1.5;
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; display: block; }
a { text-decoration: none; color: inherit; }
ul { list-style: none; margin: 0; padding: 0; }
button { font: inherit; }
p { margin: 0; }

h1, h2, h3, h4 {
  font-family: var(--font-display);
  line-height: 1.15;
  margin: 0;
}

:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }

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

/* ---- Layout ---- */
.container {
  width: 100%;
  max-width: calc(var(--container-width) + var(--container-pad) * 2);
  margin: 0 auto;
  padding: 0 var(--container-pad);
}
.container-narrow { max-width: calc(var(--container-narrow) + var(--container-pad) * 2); }

.section { padding: 64px 0; }

/* ---- Buttons ---- */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 50px;
  padding: 0 32px;
  border-radius: 30px;                 /* pill — як у Figma (r=30) */
  font-size: 18px;
  font-weight: 700;
  border: none;
  cursor: pointer;
  white-space: nowrap;
  transition: background var(--transition), transform var(--transition);
}
/* Акцентна зелена кнопка з темно-зеленим текстом (Wise-стиль) */
.btn-accent,
.btn-primary { background: var(--color-accent); color: var(--color-accent-dark); }
.btn-accent:hover,
.btn-primary:hover { background: var(--color-hover); transform: translateY(-1px); }
.btn-outline { background: transparent; border: 1px solid var(--color-accent-dark); color: var(--color-accent-dark); }

/* ---- Утиліта: двоколірний заголовок ---- */
.accent { color: var(--color-accent); }

/* ============================================
   ХЕДЕР — промо-смуга + топ-бар (#2) + меню (#3)
   ============================================ */

/* ---- Промо-смуга ---- */
.promo-bar { background: var(--color-accent-bright); color: #fff; }
.promo-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 60px;                    /* висота плашки в Figma */
  padding-top: 8px;
  padding-bottom: 8px;
  text-align: center;
}
.promo-inner p { font-weight: 700; font-size: 24px; text-transform: uppercase; letter-spacing: 0.3px; margin: 0; }

/* ---- Топ-бар (ряд 1) ---- */
.site-header {
  position: sticky;
  top: 0;
  z-index: 50;
  background: #fffefe;
  transition: box-shadow var(--transition);
}
.site-header.is-scrolled { box-shadow: 0 4px 20px rgba(0,0,0,0.06); }

.topbar { background: #f7f7f8; color: var(--color-dark); font-size: 15px; }
.topbar-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding-top: 24px;
  padding-bottom: 24px;
}

.brand { display: inline-flex; align-items: center; color: inherit; }
.brand-logo { width: auto; height: 80px; }

.topbar-contacts { display: flex; gap: 48px; }
.tb-col { display: flex; flex-direction: column; gap: 8px; }
.tb-ic { flex: 0 0 auto; }
.tb-phone,
.tb-addr,
.tb-hours { display: flex; align-items: center; gap: 8px; }
.tb-phone { font-weight: 600; color: inherit; }
.tb-note { font-weight: 400; color: var(--color-slate); }
.tb-addr { font-weight: 600; }
.tb-hours { font-weight: 600; color: var(--color-slate); }
.tb-msgr { display: flex; gap: 16px; }
.tb-msgr a { display: inline-flex; align-items: center; gap: 8px; color: var(--color-slate); }
.tb-msgr a:hover { color: var(--color-dark); }

/* ---- Меню (ряд 2) ---- */
.navbar { position: relative; background: #fffefe; border-top: 1px solid var(--color-muted); border-bottom: 1px solid var(--color-muted); }
.navbar-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;   /* меню — до лівого краю, дії — до правого (як у дизайні) */
  gap: 40px;                        /* мінімальний гап, якщо контенту стане тісно */
  min-height: 64px;                 /* компактний навбар — як у Figma (64px) */
}
.main-nav { flex: 0 1 auto; }
.nav-list { display: flex; flex-wrap: wrap; align-items: center; gap: 40px; }

.nav-item > a,
.nav-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-body);
  font-weight: 600;                 /* Inter SemiBold */
  font-size: 18px;
  color: var(--color-text);
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  transition: color var(--transition);
}
.nav-item > a:hover,
.nav-toggle:hover,
.has-mega:hover .nav-toggle { color: var(--color-hover); }

/* каретка «Послуги» — лише на мобільному (на ПК меню відкривається по hover) */
.nav-caret {
  display: none;
  width: 0; height: 0;
  border-style: solid;
  border-width: 5px 5px 0 5px;
  border-color: currentColor transparent transparent transparent;
  transition: transform var(--transition);
}

.header-actions { display: flex; align-items: center; gap: 40px; }
.btn-appoint {
  font-family: var(--font-body);
  font-weight: 800;                 /* Inter ExtraBold */
  font-size: 18px;
  color: var(--color-dark-green);
  text-transform: uppercase;
  white-space: nowrap;
  border-bottom: 1px solid var(--color-accent);   /* тонка лінія 1px #9FE870, як у Figma */
}
.btn-appoint:hover { border-bottom-color: var(--color-accent-bright); }

/* ---- Мега-меню «Послуги» ---- */
.has-mega { position: static; }
.mega {
  position: absolute;
  left: 0; right: 0;
  top: 100%;
  z-index: 55;
  background: var(--color-card);
  box-shadow: 0 18px 30px rgba(0,0,0,0.10);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px);
  transition: opacity var(--transition), transform var(--transition), visibility var(--transition);
}
.mega-inner {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  padding: 48px var(--container-pad);
}
/* вертикальні роздільники між колонками */
.mega-col { padding: 0 48px; }
.mega-col:first-child { padding-left: 0; }
.mega-col:last-child { padding-right: 0; }
.mega-col:not(:last-child) { border-right: 1px solid rgba(24,48,44,0.14); }
.mega-group + .mega-group { margin-top: 32px; }
.mega-title {
  position: relative;
  display: block;
  width: 100%;
  text-align: left;
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 18px;
  color: var(--color-dark-green);
  background: none;
  border: none;
  padding: 0;
  margin-bottom: 24px;
  cursor: pointer;
}
/* підкреслення заголовка категорії — 1px, колір тексту (як у Figma) */
.mega-title::after {
  content: "";
  position: absolute;
  left: 0; bottom: -8px;
  width: 56px; height: 1px;
  background: currentColor;
}
.mega-caret { display: none; }
.mega-list { display: flex; flex-direction: column; gap: 16px; }
.mega-list a { font-size: 15px; color: var(--color-dark); }
.mega-list a:hover,
.mega-title:hover { color: var(--color-hover); }

/* Показ мега на десктопі — по hover/фокусу + підкреслення пунктів */
@media (min-width: 961px) {
  .has-mega:hover .mega,
  .has-mega:focus-within .mega { opacity: 1; visibility: visible; transform: none; }

  .nav-item > a,
  .nav-toggle { position: relative; }
  .nav-item > a::after,
  .nav-toggle::after {
    content: "";
    position: absolute;
    left: 0; right: 0; bottom: -8px;
    height: 1px;
    background: currentColor;
    opacity: 0;
    transition: opacity var(--transition);
  }
  .nav-item > a:hover::after,
  .nav-toggle:hover::after,
  .has-mega:hover .nav-toggle::after { opacity: 1; }
}

/* ---- Мобільний «підвал» меню + фіксований бар — лише на мобільному ---- */
.nav-extra { display: none; }
.mobile-bar { display: none; }

/* ---- Попап (модалка контактів; форма запису — TODO) ---- */
.modal {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  align-items: flex-end;
  justify-content: center;
}
.modal[hidden] { display: none; }
.modal-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.45);
  opacity: 0;
  transition: opacity var(--transition);
}
.modal.is-open .modal-overlay { opacity: 1; }
.modal-panel {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 480px;
  max-height: 90vh;
  overflow-y: auto;
  background: #fff;
  border-radius: 20px 20px 0 0;
  padding: 24px 24px calc(24px + env(safe-area-inset-bottom));
  transform: translateY(100%);
  transition: transform var(--transition);
}
.modal.is-open .modal-panel { transform: none; }

/* Центрований варіант (попап-форма запису) */
.modal--center { align-items: center; }
.modal--center .modal-panel {
  border-radius: 20px;
  transform: translateY(24px);
  opacity: 0;
  transition: transform var(--transition), opacity var(--transition);
}
.modal--center.is-open .modal-panel { transform: none; opacity: 1; }
.modal-panel--form { max-width: 520px; background: #ecefea; }
.modal-close {
  position: absolute;
  top: 16px; right: 16px;
  width: 36px; height: 36px;
  font-size: 26px;
  line-height: 1;
  color: var(--color-slate);
  background: none;
  border: none;
  cursor: pointer;
}
.modal-title { font-family: var(--font-display); font-size: 24px; color: var(--color-dark-green); margin-bottom: 24px; }
.modal-contacts { display: flex; flex-direction: column; gap: 16px; font-size: 16px; color: var(--color-dark); }
.modal-contacts li { display: flex; align-items: center; gap: 8px; }
.modal-contacts a { color: inherit; }
.modal-contacts a:hover { color: var(--color-hover); }
.modal-msgr { display: flex; gap: 24px; margin: 24px 0; }
.modal-msgr a { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: var(--color-dark); }
.modal-cta { display: inline-flex; }

/* ---- Дропдауни (телефони, мова) ---- */
.dropdown { position: relative; }
.dropdown-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0;                 /* браузерний дефолт для <button> — без цього іконка не збігається з рядком-<a> над ним */
  background: none;
  border: none;
  cursor: pointer;
  color: inherit;
  font-family: inherit;      /* НЕ "font: inherit" (шорткот) — він скидає й font-weight, перекриваючи .tb-phone{font-weight:600} */
  font-size: inherit;
  line-height: inherit;
}
/* каретка-трикутник 10×5, #25452E (за Figma) */
.dd-caret {
  width: 0; height: 0;
  border-style: solid;
  border-width: 5px 5px 0 5px;
  border-color: #25452e transparent transparent transparent;
  transition: transform var(--transition);
}
.dropdown.is-open .dd-caret { transform: rotate(180deg); }

.dropdown-menu {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  z-index: 60;
  min-width: max-content;
  display: flex;
  flex-direction: column;
  padding: 8px 0;
  background: #fff;
  border-radius: var(--radius-md);
  box-shadow: 0 12px 28px rgba(0,0,0,0.14);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-6px);
  transition: opacity var(--transition), transform var(--transition), visibility var(--transition);
}
.dropdown.is-open .dropdown-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.dropdown-menu a {
  padding: 8px 16px;
  font-weight: 600;
  color: var(--color-dark);
  white-space: nowrap;
}
.dropdown-menu a:hover { background: var(--color-card); color: var(--color-hover); }

.lang-switch { font-weight: 700; color: var(--color-text); }
.lang-menu { min-width: 60px; }

/* ---- Бургер (ховається на десктопі) ---- */
.burger {
  display: none;
  position: relative;
  width: 28px; height: 20px;
  background: none; border: none; cursor: pointer; padding: 0;
}
/* Фіксовані top-офсети (НЕ flex space-between) — виключає різне субпіксельне округлення
   ліній на різних DPI/зумі (на планшеті лінії виглядали різної товщини). Без border-radius —
   заокруглені кінці на 2px-лінії теж давали нерівномірну "вагу" через антиаліасинг. */
.burger span {
  position: absolute;
  left: 0; width: 100%; height: 2px;
  background: var(--color-text);
  border-radius: 0;
  transition: transform var(--transition), opacity var(--transition);
}
.burger span:nth-child(1) { top: 0; }
.burger span:nth-child(2) { top: 9px; }
.burger span:nth-child(3) { top: 18px; }
.burger.is-open span:nth-child(1) { transform: translateY(9px) rotate(45deg); }
.burger.is-open span:nth-child(2) { opacity: 0; }
.burger.is-open span:nth-child(3) { transform: translateY(-9px) rotate(-45deg); }

/* ============================================
   HERO (#4)
   ============================================ */
.hero {
  position: relative;
  overflow: hidden;
  background: #eef3f2 url('../images/hero.png') no-repeat right center / cover;
}
/* світлий фейд ліворуч — гарантія читабельності тексту поверх фото */
.hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg,
    #eef3f2 0%, rgba(238,243,242,0.85) 30%, rgba(238,243,242,0.35) 50%, transparent 66%);
}
.hero-inner {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  min-height: 580px;
  padding: 48px var(--container-pad);
}
.hero-content { flex: 1 1 52%; max-width: 620px; }
.hero-eyebrow {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: clamp(30px, 3.4vw, 48px);
  line-height: 1.1;
  text-transform: uppercase;
  color: var(--color-text);
}
.hero-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(44px, 5vw, 64px);
  line-height: 1;
  margin-top: 24px;
}
.hero-title sup { font-size: 0.4em; vertical-align: super; }
.hero-subtitle {
  font-weight: 600;
  font-size: 32px;
  line-height: 1.1;
  margin-top: 16px;
}
.hero-content .btn { margin-top: 32px; }

/* Кнопка — відносно .hero-inner (контейнер), НЕ всього full-bleed фону.
   14.9% від правого краю контейнера — точка з Figma (x=1550-1374=176px, 176/1180=14.9%);
   у % — самостійно масштабується на БУДЬ-ЯКІЙ ширині (на відміну від %% від 100vw
   на full-bleed фоні, де кроп фото "гуляв" і кнопка з'їжджала з фото на планшеті). */
.hero-play {
  position: absolute;
  z-index: 2;
  top: 50%; right: 14.9%;
  transform: translateY(-50%);
  width: 80px; height: 80px;
  border: none;
  background: url('../images/hero-play.svg') no-repeat center / contain;  /* біле коло 80%, з Figma */
  cursor: pointer;
}
.hero-play::before {
  content: "";
  position: absolute;
  top: 50%; left: 54%;
  transform: translate(-50%, -50%);
  border-style: solid;
  border-width: 12px 0 12px 20px;
  border-color: transparent transparent transparent #dedfe1;   /* Polygon 1 з Figma */
}

/* ============================================
   ІНТРО / ПРО ЦЕНТР (#5)
   ============================================ */
.intro { padding: 112px 0; }         /* вертикальний ритм секцій у Figma ≈ 110–120px */
.intro-box {
  position: relative;
  max-width: 780px;
  margin: 0 auto;
}
/* водяний знак-лого праворуч за текстом (у Figma: +451px від краю блока, -37px угору) */
.intro-decor {
  position: absolute;
  top: -40px;
  left: 451px;
  width: 315px; height: 306px;
  pointer-events: none;
  user-select: none;
}
.intro-title,
.intro-box p { position: relative; }  /* текст поверх декору */
.intro-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 24px;
  line-height: 1.4;
  text-transform: uppercase;         /* у Figma Ermilov — каповий */
  color: var(--color-text);
  margin-bottom: 32px;               /* 30px у Figma */
}
.intro-box p {
  font-size: 16px;
  line-height: 1.4;
  color: #313b34;                    /* м'якший темно-зелений текст (з Figma) */
}
.intro-box p + p { margin-top: 24px; }

/* ============================================
   ПОСЛУГИ-КАРТКИ (#6) «Ми можемо те, що не можуть інші»
   ============================================ */
/* Спільний заголовок секції: Ermilov, капс, по центру */
.section-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 64px;
  line-height: 1.2;
  text-transform: uppercase;
  text-align: center;
  color: var(--color-text);
  overflow-wrap: break-word;
}

.services { padding-bottom: 112px; }           /* верхній відступ дає .intro */
.services .section-title { margin-bottom: 32px; }

.services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}

/* Картка: фото зверху + плашка знизу, кути 20px */
.scard {
  position: relative;
  display: flex;
  flex-direction: column;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--color-card);
  color: inherit;
  transition: transform var(--transition), box-shadow var(--transition);
}
a.scard:hover { transform: translateY(-4px); box-shadow: 0 16px 32px rgba(24,48,44,0.12); }

.scard-photo {
  width: 100%;
  height: 268px;                     /* 434 - плашка 166 (з Figma) */
  object-fit: cover;
  object-position: top;              /* верхня частина фото (обличчя/голова) не обрізається */
}
.scard-body {
  flex: 1;
  padding: 24px 36px 28px;
}
.scard-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 28px;
  line-height: 1.2;
  color: var(--color-text);
  margin-bottom: 16px;
}
.scard-text {
  font-size: 16px;
  line-height: 1.3;
  color: var(--color-slate);
  padding-right: 32px;               /* місце під стрілку ↘ */
}
/* стрілка ↘ у правому нижньому куті плашки (експорт left-small-down) */
.scard-arrow {
  position: absolute;
  right: 16px; bottom: 16px;
  width: 28px; height: 28px;
  background: url('../images/icon-arrow-corner.svg') no-repeat center / contain;
}
a.scard:hover .scard-arrow { opacity: 0.6; }

/* Текстова картка VIP (без фото і плашки) */
.scard--plain {
  background: transparent;
  border-radius: 0;
  overflow: visible;
  justify-content: center;             /* вміст по центру висоти рядка — як сусідні картки */
  padding: 24px 36px 28px;             /* текст на 36px від краю — вирівняно з .scard-body */
}
.scard--plain .scard-icon { width: 60px; height: 56px; margin-bottom: 16px; }
.scard--plain .scard-title { margin-bottom: 8px; }
.scard--plain .scard-text { padding-right: 0; max-width: 260px; }

.services-more { text-align: center; margin-top: 48px; }

/* ============================================
   НАШІ ПЕРЕВАГИ (#8) — зелена стрічка з бенто-сіткою
   ============================================ */
.advantages {
  background: var(--color-accent);
  padding: 80px 0;                   /* 80px згори/знизу за Figma */
}
.advantages .section-title { margin-bottom: 48px; }

.adv-grid {
  display: grid;
  grid-template-columns: 292px repeat(3, 1fr);   /* фото-колонка 292 + 3 рівні (з Figma) */
  grid-auto-rows: minmax(214px, auto);           /* висота ряду 214 */
  gap: 24px;
}
/* ряд 1: фото | широка картка (2 колонки) | картка */
.a-t1 { grid-column: 2 / span 2; }
/* ряд 3: темна картка на 2 колонки */
.a-dark { grid-column: 1 / span 2; }

.adv-card {
  background: #fff;
  border-radius: var(--radius-lg);
  padding: 24px;
}
.adv-card h3 {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 24px;
  line-height: 1.2;
  color: var(--color-dark-green);
  margin-bottom: 16px;
}
.adv-card p { font-size: 16px; line-height: 1.3; color: var(--color-slate); }

.adv-card--img { padding: 0; overflow: hidden; }
.adv-card--img img { width: 100%; height: 100%; object-fit: cover; }

.adv-card--dark { background: var(--color-dark-green); }
.adv-card--dark h3 {
  font-family: var(--font-display);
  font-size: 22px;
  color: #fff;
}
.adv-card--dark p { color: #fefefe; }
.adv-card--dark p + p { margin-top: 16px; }

.adv-card--star { position: relative; }
.adv-star { position: absolute; right: 24px; bottom: 24px; }

/* ============================================
   ПЕРЕВАГИ ІМПЛАНТАЦІЇ MIMI® (#9) — карусель
   ============================================ */
.mimi { padding: 112px 0; overflow: hidden; }
.mimi-inner {
  display: flex;
  align-items: flex-start;
  gap: 120px;
}
.mimi-head { flex: 0 0 480px; }
.mimi-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 64px;
  line-height: 1.1;
  text-transform: uppercase;
  color: var(--color-text);
}
.mimi-title br + span { display: block; }
.mimi-text { font-size: 16px; line-height: 1.4; color: var(--color-slate); margin-top: 16px; }
.mimi-sub { font-size: 16px; font-weight: 600; color: var(--color-slate); margin-top: 24px; }
.mimi-nav { display: flex; gap: 72px; margin-top: 32px; }

/* Кругла кнопка каруселі 60×60 зі стрілкою (бордер 5px — як у Wise).
   Сіра за замовчуванням, зелена на hover. */
.car-btn {
  position: relative;
  width: 60px; height: 60px;
  border-radius: 50%;
  border: 5px solid #c2c8c6;
  background: none;
  cursor: pointer;
  transition: border-color var(--transition);
}
.car-btn::before {                    /* держак стрілки */
  content: "";
  position: absolute;
  top: 50%; left: 50%;
  width: 22px; height: 2px;
  background: #c2c8c6;
  transform: translate(-50%, -50%);
  transition: background var(--transition);
}
.car-btn::after {                     /* вістря стрілки */
  content: "";
  position: absolute;
  top: 50%;
  width: 9px; height: 9px;
  border: solid #c2c8c6;
  transition: border-color var(--transition);
}
.car-next::after { right: 16px; border-width: 2px 2px 0 0; transform: translateY(-50%) rotate(45deg); }
.car-prev::after { left: 16px; border-width: 2px 0 0 2px; transform: translateY(-50%) rotate(-45deg); }
.car-btn:hover { border-color: var(--color-accent-bright); }
.car-btn:hover::before { background: var(--color-accent-bright); }
.car-btn:hover::after { border-color: var(--color-accent-bright); }

/* Трек: виїжджає за правий край в'юпорта (рецепт із design/README.md) */
.mimi-right { flex: 1 1 auto; min-width: 0; }
/* Трек: авто-marquee у стилі Wise «For people going places» (JS) + drag/свайп.
   scroll-snap НЕ ставимо — він конфліктує з неперервним рухом. */
.mimi-track {
  display: flex;
  gap: 20px;                          /* крок каруселі = 275 + 20 = 295 (за макетом) */
  overflow-x: auto;
  scrollbar-width: none;
  margin-right: min(0px, calc((100vw - var(--container-width)) / -2));
  padding-bottom: 4px;
  cursor: grab;
}
.mimi-track.is-dragging { cursor: grabbing; }
.mimi-track::-webkit-scrollbar { display: none; }

.mimi-card {
  flex: 0 0 275px;
  height: 336px;
  border-radius: var(--radius-lg);
  padding: 24px;
  display: flex;
  flex-direction: column;
}
.mimi-num {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 96px;
  line-height: 1;
  color: #fefefe;
  margin-bottom: 48px;                /* текст у Figma на 173px від верху */
}
.mimi-card p {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 20px;
  line-height: 1.2;
  text-transform: uppercase;
}
.mimi-card p small { display: block; font-size: 12px; font-family: var(--font-body); text-transform: none; margin-top: 4px; }

.mimi-card--light { background: var(--color-accent); }        /* #9fe870, темний текст */
.mimi-card--light p { color: var(--color-accent-dark); }
.mimi-card--dark { background: var(--color-dark-green); }     /* #1d3208 */
.mimi-card--dark p { color: #fff; }
.mimi-card--mid { background: #06a734; }
.mimi-card--mid p { color: var(--color-text); }
.mimi-card--deep { background: #4d811a; }
.mimi-card--deep p { color: #fff; }

.mimi-more { text-align: right; margin-top: 48px; }
.mimi-more a {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding-right: 32px;
  font-size: 16px;
  color: var(--color-dark-green);
}
.mimi-more a:hover { color: var(--color-hover); }
.mimi-more-arrow { position: absolute; right: 0; top: 0; }

/* ============================================
   КЕРІВНИЦТВО (#10)
   ============================================ */
.team { background: var(--color-card); padding: 80px 0 112px; }
.team-subtitle {
  text-align: center;
  font-size: 36px;
  font-weight: 600;
  line-height: 1.4;
  color: var(--color-dark-green);
  margin: 16px 0 64px;
}

.team-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}
.team-row + .team-row { margin-top: 48px; }

/* Плаваюча анотація на полі (значок + підпис) */
.team-note { flex: 0 0 180px; padding-top: 8px; }
.team-note p { font-size: 14px; line-height: 1.4; color: var(--color-text); margin-top: 8px; }
.team-note--bottom { align-self: flex-end; padding-bottom: 48px; }

/* Картка керівника: фото 452px + текст */
.team-card {
  display: flex;
  flex: 0 1 980px;
  max-width: 980px;
  background: #fefefe;
  border-radius: var(--radius-lg);
  overflow: hidden;
}
.team-photo {
  flex: 0 0 452px;
  width: 452px;
  height: 471px;
  object-fit: cover;
}
.team-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 64px 48px 48px 72px;   /* Figma: текст 405px у колонці 528 */
}
.team-info h3 {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 24px;
  line-height: 1.2;
  color: var(--color-text);
}
.team-role {
  font-size: 16px;
  font-weight: 700;
  color: var(--color-dark-green);
  text-decoration: underline;
  text-underline-offset: 4px;
  margin: 4px 0 16px;
}
.team-info > p:not(.team-role) { font-size: 16px; line-height: 1.4; color: var(--color-text); }
.team-info > p + p:not(.team-role) { margin-top: 16px; }
/* абзац-акцент (лише <strong>): більший відступ згори, менший до наступного — як у Figma */
.team-info > p:has(> strong:only-child) { margin-top: 24px; }
.team-info > p:has(> strong:only-child) + p { margin-top: 8px; }
.team-strong { font-weight: 600; }

.team-link {
  position: relative;
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  padding-right: 40px;
  margin-top: auto;                 /* лінк притиснутий до низу картки */
  font-size: 16px;
  font-weight: 700;
  color: var(--color-dark-green);
}
.team-link:hover { color: var(--color-hover); }
.team-link-arrow { position: absolute; right: 0; top: 0; }

/* дзеркальна картка: текст ліворуч, фото праворуч */
/* дзеркальна: текст ліворуч — ширша міра (Figma: 460px), щоб рядки не ламались */
.team-card--reverse .team-info { padding: 64px 24px 48px 48px; }

/* ============================================
   КЛІНІКА (#11) — темна стрічка з цифрами
   ============================================ */
.clinic {
  position: relative;
  overflow: hidden;
  background: var(--color-dark-green);
  color: #e4f5f5;
}
/* гігантський водяний знак-лого (SVG несе власні opacity/blend) */
.clinic-watermark {
  position: absolute;
  left: 350px; top: 48px;
  width: 813px; height: auto;
  opacity: 0.35;
  pointer-events: none;
  user-select: none;
}
.clinic-inner {
  position: relative;
  min-height: 828px;                 /* висота стрічки у Figma */
  padding-top: 76px;
}
.clinic-head { display: flex; gap: 32px; }
.clinic-title {
  flex: 0 0 500px;
  padding-left: 48px;                /* «клініка» у Figma зсунута на 49px */
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 96px;
  line-height: 1.4;
  text-transform: uppercase;
  color: var(--color-accent-bright);
}
.clinic-lead { max-width: 550px; padding-top: 24px; }
.clinic-subtitle {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 32px;
  line-height: 1.4;
  text-transform: uppercase;
}
.clinic-text { font-size: 20px; font-weight: 600; line-height: 1.4; margin-top: 24px; max-width: 454px; }
.clinic-more {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding-right: 40px;
  margin-top: 32px;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.5px;
  text-transform: uppercase;
  color: var(--color-accent);
}
.clinic-more:hover { color: var(--color-hover); }
/* зелена стрілка з експорту (ic_arrow_forward, #9FE870) */
.clinic-more-arrow {
  position: absolute;
  right: 0; bottom: -10px;
  width: 34px; height: 34px;
  background-image: url('../images/icon-arrow-fwd.svg');
}

/* Бульбашки-стати: PNG-експорти з Figma (цифри в самих картинках),
   абсолютні позиції від верху стрічки */
.clinic-bubbles { position: absolute; inset: 0; pointer-events: none; }
.bubble { position: absolute; height: auto; }

.b1 { left: 56px;   top: 280px; width: 172px; }
.b2 { left: 228px;  top: 410px; width: 223px; }
.b3 { left: 514px;  top: 479px; width: 256px; }
.b4 { left: 837px;  top: 460px; width: 193px; }
.b5 { left: 1030px; top: 332px; width: 147px; }

/* ============================================
   НАГОРОДИ (#12–13). Marquee-анімація — TODO (поки статично)
   ============================================ */
.awards { padding: 120px 0; overflow: hidden; }
.awards-subtitle {
  text-align: center;
  font-size: 36px;
  font-weight: 600;
  line-height: 1.4;
  color: var(--color-accent-dark);
  margin-top: 16px;
}
.awards-strip { margin-top: 120px; }
.awards-row {
  display: flex;
  gap: 32px;
  width: max-content;
  margin-left: -48px;                /* ряд починається за лівим краєм (як у Figma) */
  will-change: transform;            /* scroll-driven marquee (JS) */
}
.awards-row--b { margin-top: 64px; margin-left: -112px; }

/* Медаль 150×150 (PNG-експорти з Figma) */
.medal {
  flex: 0 0 150px;
  width: 150px; height: 150px;
  user-select: none;
}

/* ============================================
   ВІДГУКИ ПАЦІЄНТІВ (#14)
   ============================================ */
.reviews { background: var(--color-card); padding: 80px 0 96px; }

.reviews-rating { text-align: center; margin-top: 48px; }
.rr-score {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 24px;
  font-weight: 700;
  color: var(--color-text);
}
/* Простий значок Google G (плейсхолдер до фірмового SVG) */
.rr-g,
.review-g {
  display: inline-grid;
  place-items: center;
  width: 24px; height: 24px;
  border-radius: 50%;
  background: #fff;
  border: 1px solid #e0e3e1;
  font-size: 14px;
  font-weight: 700;
  color: #4285f4;
}
.rr-stars,
.review-stars { color: #f5b70a; letter-spacing: 2px; }
.rr-note { font-size: 14px; color: #394747; margin-top: 8px; }

.reviews-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-top: 64px;
}
.review {
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: var(--radius-lg);
  padding: 24px;
  box-shadow: 0 2px 10px rgba(24,48,44,0.05);
}
.review-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 16px;
}
.review-avatar {
  flex: 0 0 44px;
  width: 44px; height: 44px;
  border-radius: 50%;
  background: var(--color-hover);
  display: grid;
  place-items: center;
  font-size: 24px;
  font-weight: 600;
  color: #fefefe;
}
.review-head h3 { font-family: var(--font-body); font-size: 14px; font-weight: 700; line-height: 1.3; }
.review-stars { font-size: 11px; }
.review-g { margin-left: auto; align-self: flex-start; }
.review p { font-size: 14px; line-height: 1.45; color: var(--color-text); }
.review time { display: block; margin-top: 16px; font-size: 12px; color: #8b9490; }

.reviews-actions {
  display: flex;
  justify-content: center;
  gap: 16px;
  margin-top: 32px;
}
.btn-outline { border-radius: 30px; height: 50px; padding: 0 32px; display: inline-flex; align-items: center; }

/* ============================================
   НОВИНИ ТА ПОДІЇ (#15–16)
   ============================================ */
.news { padding: 120px 0 96px; }
.news-subtitle {
  text-align: center;
  font-size: 36px;
  font-weight: 600;
  line-height: 1.4;
  color: #06a734;
  margin-top: 16px;
}
.news-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 64px;
}
.ncard {
  position: relative;                 /* для розтягнутого лінка (клікабельна вся картка) */
  display: flex;
  flex-direction: column;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--color-muted);
}
.ncard:hover .ncard-title { color: var(--color-hover); }
.ncard-photo {
  width: 100%;
  height: 268px;
  object-fit: cover;
}
.ncard-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 24px;
}
.ncard-date { font-size: 12px; font-weight: 500; color: var(--color-accent-dark); }
.ncard-title { font-family: var(--font-body); font-size: 16px; font-weight: 400; line-height: 1.4; color: var(--color-text); margin-top: 8px; }
.ncard-more {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  align-self: flex-start;
  margin-top: auto;                   /* притиснути «Читати далі» до низу картки */
  padding-top: 24px;
  font-size: 12px;
  color: var(--color-text);
}
.ncard-more:hover { color: var(--color-hover); }
/* розтягнутий лінк: фото + назва + «Читати далі» — клікабельна вся картка */
.ncard-more::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
}
/* довга стрілка ⟶ */
.ncard-arrow { position: relative; width: 20px; height: 8px; }
.ncard-arrow::before {
  content: "";
  position: absolute;
  top: 50%; left: 0;
  width: 20px; height: 1px;
  background: currentColor;
}
.ncard-arrow::after {
  content: "";
  position: absolute;
  top: 50%; right: 0;
  width: 6px; height: 6px;
  border: solid currentColor;
  border-width: 1px 1px 0 0;
  transform: translateY(-50%) rotate(45deg) translateX(-1px);
}
.news-more { text-align: center; margin-top: 48px; }

/* ============================================
   ФУТЕР (#17)
   ============================================ */
.site-footer { background: #ecefea; color: var(--color-dark); }
.site-footer > .container { padding-top: 64px; }

/* Перелік послуг — 3 колонки (Стом.+Протез.+Видал. | Імплант. | Лікування) */
.footer-services {
  display: flex;
  justify-content: space-between;
  gap: 32px;
  padding-bottom: 48px;
}
.fs-col { flex: 0 1 auto; max-width: 300px; }
.fs-group + .fs-group { margin-top: 32px; }
.fs-title { font-family: var(--font-body); font-size: 18px; font-weight: 700; color: var(--color-dark-green); margin-bottom: 16px; }
.fs-list { display: flex; flex-direction: column; gap: 8px; }   /* 24lh + 8 = 32px ряд, як у Figma */
.fs-list a { font-size: 16px; color: var(--color-text); }
.fs-list a:hover { color: var(--color-hover); }

/* Контакти — 4 колонки */
.footer-contacts {
  position: relative;
  display: flex;
  justify-content: space-between;
  gap: 32px;
  padding: 32px 0;
}
/* повноширинний роздільник (як у Figma — від краю до краю) */
.footer-contacts::before {
  content: "";
  position: absolute;
  top: 0; left: 50%;
  transform: translateX(-50%);
  width: 100vw; height: 1px;
  background: var(--color-line);
}
.fc-info { display: flex; flex-direction: column; gap: 8px; font-size: 16px; font-weight: 500; }
.fc-info li { display: grid; grid-template-columns: 18px 1fr; align-items: center; gap: 8px; }
.fc-info a { color: inherit; }
.fc-info a:hover { text-decoration: underline; }

.fc-phones { display: flex; flex-direction: column; gap: 8px; font-size: 16px; font-weight: 500; }
.fc-phones a { color: inherit; }
.fc-phones a:hover { text-decoration: underline; }

.fc-free-num { display: inline-block; font-size: 16px; font-weight: 500; color: inherit; margin-bottom: 8px; }
.fc-free p { font-size: 14px; font-weight: 500; color: var(--color-slate); max-width: 230px; }

.fc-nav { display: flex; flex-direction: column; gap: 8px; font-weight: 700; font-size: 16px; }
.fc-nav a { color: inherit; }
.fc-nav a:hover { color: var(--color-hover); }

/* Низ (без роздільника — у Figma його немає).
   ⚠️ Зберігаємо бокові падінги контейнера (не затирати шорткатом!) */
.footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 24px var(--container-pad) 48px;
}
.fb-copy { font-size: 15px; line-height: 1.5; }
.fb-social { display: flex; gap: 16px; }
.fb-social a {
  display: grid;
  place-items: center;
  width: 42px; height: 42px;
  border-radius: 50%;
  background: var(--color-accent-bright);
  transition: transform var(--transition);
}
.fb-social a:hover { transform: translateY(-2px); }
.fb-social img { display: block; }

/* ============================================
   СТОРІНКА ПОСЛУГИ «ІМПЛАНТАЦІЯ» (implantatsiya.html)
   ============================================ */
/* --- Hero послуги --- */
.phero { background: #f7f7f8; }
.phero-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 48px;
  min-height: 554px;
  padding-top: 48px;
  padding-bottom: 48px;
}
.phero-content { max-width: 680px; }
.phero-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 48px;
  line-height: 1.1;
  text-transform: uppercase;
  color: var(--color-text);
}
.phero-actions { display: flex; gap: 16px; margin-top: 48px; }
.phero-media { position: relative; flex: 0 0 402px; }
.phero-tooth { display: block; }
.phero-mimi {
  position: absolute;
  left: 56px; top: 112px;
  line-height: 1.1;
}
.phero-mimi b {
  display: block;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 48px;
  color: var(--color-accent-bright);
}
.phero-mimi span {
  display: block;
  font-size: 18px;
  font-weight: 800;
  text-transform: uppercase;
  color: var(--color-accent-dark);
  margin-top: 4px;
}
.phero-medals { display: flex; gap: 16px; margin-top: 16px; justify-content: center; }
.phero-medals img { width: 60px; height: 60px; }

/* --- Хлібні крихти --- */
.breadcrumbs { padding: 24px 0; font-size: 16px; }
.breadcrumbs a { color: var(--color-slate); }
.breadcrumbs a:hover { color: var(--color-hover); }
.bc-sep {
  display: inline-block;
  width: 16px; height: 15px;
  margin: 0 8px;
  vertical-align: -2px;
  background: url('../images/icon-breadcrumb.svg') no-repeat center / contain;
}
.breadcrumbs [aria-current] { color: var(--color-text); }

/* --- Інтро-текст --- */
.imp-intro { padding: 32px 0 64px; }
.imp-intro-box { max-width: 780px; margin-left: 196px; }   /* зсув як у Figma (x=566) */
.imp-intro-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 24px;
  line-height: 1.4;
  text-transform: uppercase;
  margin-bottom: 32px;
}
.imp-intro-box p { font-size: 16px; line-height: 1.3; color: var(--color-slate); }
.imp-intro-box p + p { margin-top: 24px; }

/* --- Методики --- */
.methods { padding: 48px 0 64px; }
.methods .section-title { font-size: 48px; margin-bottom: 48px; }  /* виняток: менший за базові 64 */
.methods-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 64px; }
.mcard {
  position: relative;
  display: block;
  min-height: 308px;
  border-radius: var(--radius-lg);
  background: var(--color-card);
  padding: 32px 24px 56px;
  color: inherit;
  transition: transform var(--transition), box-shadow var(--transition);
}
.mcard:hover { transform: translateY(-4px); box-shadow: 0 16px 32px rgba(24,48,44,0.12); }
.mcard h3 {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 24px;
  line-height: 1.2;
  color: var(--color-dark-green);
  margin-bottom: 16px;
}
.mcard p { font-size: 16px; line-height: 1.3; color: var(--color-slate); }
.mcard--green { background: var(--color-hover); }         /* #8edb5c з Figma */

/* --- CTA консультація (текст від 6-ї колонки 12-кол. сітки) --- */
.consult { padding: 16px 0 48px; }
.consult-inner {
  display: flex;
  align-items: flex-start;
  gap: 24px;
}
/* зірка (перший елемент) стартує з 6-ї колонки 12-кол. сітки контейнера */
.consult-inner > img { margin-left: calc(100% * 5 / 12); }
.consult-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 24px;
  line-height: 1.4;
  text-transform: uppercase;
}
/* підпис під CTA: Figma — Inter 16 / 400 / lh 130% / #38474f (і на білому, і на зеленому) */
.consult-text { font-size: 16px; font-weight: 400; line-height: 1.3; color: var(--color-slate); margin-top: 8px; }
.consult-text a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.consult-text a:hover { color: var(--color-hover); }

/* --- Відео-картки --- */
.vids { padding: 48px 0 64px; }
.vids-grid {
  display: grid;
  grid-template-columns: repeat(2, 494px);
  gap: 32px;
  justify-content: center;
}
/* Список відео — кілька .vids-блоків підряд (esc/vids, layout=list): секційний
   падінг знімається до величини гапу сітки (32px), щоб вертикальні відступи між
   рядами відео збігались із горизонтальним гапом, а не сумувались 48/64 + 32
   при кожному наступному блоці. */
.vids--list { padding: 32px 0; }
.vids--list + .vids--list { padding-top: 0; }
.vcard-media {
  position: relative;
  display: block;
  width: 100%;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  overflow: hidden;
}
.vcard-media img { width: 100%; height: 277px; object-fit: cover; }
/* Повністю самодостатнє правило (НЕ покладатись на .hero-play: спільний клас у розмітці,
   але .hero-play тепер позиціюється через right% — конфлікт left+right давав зсув на картках). */
.vcard-play {
  position: absolute;
  top: 50%; left: 50%; right: auto;
  transform: translate(-50%, -50%);
  width: 80px; height: 80px;
  background: url('../images/hero-play.svg') no-repeat center / contain;
}
.vcard figcaption {
  background: var(--color-card);
  padding: 16px 24px;
  font-size: 16px;
  line-height: 1.3;
}

/* --- Сторінка «Про клініку»: hero-підзаголовок, інтро-акцент --- */
.phero-sub {
  font-size: 32px;
  line-height: 1.1;
  font-weight: 600;
  color: var(--color-text);
  margin-top: 8px;
}
.imp-intro-strong { font-weight: 700; }

/* --- Наші цінності: 3 зелені картки --- */
.values { padding: 48px 0 64px; }
.values .section-title { margin-bottom: 48px; }
.values-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 64px; }
.vcard-value {
  position: relative;
  display: block;
  min-height: 274px;
  border-radius: var(--radius-lg);
  background: var(--color-hover);            /* #8edb5c з Figma */
  padding: 32px 24px 56px;
  color: var(--color-text);
  transition: transform var(--transition), box-shadow var(--transition);
}
.vcard-value:hover { transform: translateY(-4px); box-shadow: 0 16px 32px rgba(24,48,44,0.16); }
.vcard-value h3 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 24px;
  line-height: 1.4;
  text-transform: uppercase;
  margin-bottom: 16px;
}
.vcard-value p { font-size: 16px; line-height: 1.35; }

/* --- Ліцензія та гарантії --- */
.license { background: var(--color-card); padding: 80px 0; }
.license .section-title { margin-bottom: 64px; }
.license-grid {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 48px;
}
.license-grid img { height: 508px; width: auto; }

/* --- Партнерство (рядок у .vids-grid) --- */
.partner-video .vcard-media { border-radius: var(--radius-lg); }
.partner-video img { width: 100%; height: 371px; object-fit: cover; }
.partner-info {
  padding-top: 48px;
  display: grid;
  grid-template-columns: auto 1fr;   /* зірка ліворуч, заголовок+текст праворуч (дизайн) */
  column-gap: 20px;
  align-items: start;
  /* ⚠️ без цього рядки «auto» розтягувались на висоту сусіднього відео
     (align-content: stretch за замовчуванням) і вільне місце падало у відступ
     між заголовком і текстом — тому він і «зменшувався», коли тексту більше. */
  align-content: start;
}
.partner-info > img { grid-column: 1; align-self: start; }
.partner-info > :not(img) { grid-column: 2; }   /* заголовок і всі абзаци — у праву колонку */
.partner-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 24px;
  line-height: 1.4;
  text-transform: uppercase;
  color: var(--color-text);
  margin-bottom: 16px;   /* Figma: заголовок 3040+136=3176, текст 3192 → 16px */
}
.partner-info p { font-size: 16px; line-height: 1.4; color: var(--color-text); }

/* --- Текстові секції «заголовок + фото + текст» --- */
.tblock { padding: 48px 0; }
.tblock-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 48px;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--color-text);
  max-width: 680px;
  margin-bottom: 48px;
}
/* текстова частина на ПК = 7/12, фото-зона = 5/12 */
.tblock-grid {
  display: grid;
  grid-template-columns: 5fr 7fr;      /* фото | текст */
  gap: 48px 0;
  align-items: start;
}
.tblock--photo-right .tblock-grid { grid-template-columns: 7fr 5fr; }  /* текст | фото */
.tblock--photo-right .tblock-grid > img { justify-self: end; }
.tblock-grid > img { border-radius: var(--radius-md); }
.tblock-text p { font-size: 16px; line-height: 1.4; color: var(--color-slate); }
.tblock-text p + p { margin-top: 16px; }

/* --- Чому імплантація --- */
.why { background: var(--color-card); padding: 64px 0 80px; }
.why .section-title { margin-bottom: 64px; }
.why-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 48px; }
/* кружечки 80×80 різних кольорів, з'єднані горизонтальною лінією */
.why-item { position: relative; }
.why-item::before {
  content: "";
  position: absolute;
  top: 40px;                          /* центр кружечка */
  left: 80px; right: -48px;           /* від краю кружечка до сусіднього */
  height: 1px;
  background: var(--color-line);
}
.why-item:last-child::before { right: 0; }   /* хвіст лінії і після 4-го */
.why-num {
  position: relative;
  display: grid;
  place-items: center;
  width: 80px; height: 80px;
  border-radius: 50%;
  color: #fefefe;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 60px;
  line-height: 1;
  margin-bottom: 32px;
}
.why-item:nth-child(1) .why-num { background: var(--color-accent); }      /* #9fe870 */
.why-item:nth-child(2) .why-num { background: var(--color-dark-green); }  /* #1d3208 */
.why-item:nth-child(3) .why-num { background: #06a734; }
.why-item:nth-child(4) .why-num { background: #4d811a; }
.why-item h3 {
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 24px;
  line-height: 1.3;
  color: var(--color-dark-green);
  margin-bottom: 16px;
}
.why-item p { font-size: 16px; font-weight: 400; line-height: 1.3; color: var(--color-slate); }

/* --- Фото до/після --- */
.ba { padding: 96px 0 64px; }
.ba .section-title { margin-bottom: 48px; }
.ba-grid { display: flex; justify-content: center; gap: 24px; }
.ba-item figcaption { text-align: center; font-size: 14px; color: var(--color-slate); margin-bottom: 8px; }

/* Інтерактивний слайдер до/після: «до» зверху, обрізається по --pos */
.ba-slider {
  position: relative;
  width: 479px;
  height: 179px;
  border-radius: var(--radius-md);
  overflow: hidden;
  touch-action: pan-y;                /* вертикальний скрол не блокуємо */
  cursor: ew-resize;
  user-select: none;
}
.ba-slider img { width: 100%; height: 100%; object-fit: cover; }
.ba-before {
  position: absolute;
  inset: 0 auto 0 0;
  width: var(--pos, 50%);
  overflow: hidden;
  border-right: 2px solid #fff;
}
.ba-before img {
  position: absolute;
  inset: 0 auto 0 0;
  width: 479px;                       /* = ширина слайдера, синхронить JS на resize */
  max-width: none;
  height: 100%;
}
.ba-handle {
  position: absolute;
  top: 50%; left: var(--pos, 50%);
  transform: translate(-50%, -50%);
  width: 40px; height: 40px;
  border: none;
  background: url('../images/ba-handle.svg') no-repeat center / contain;
  cursor: ew-resize;
  padding: 0;
}
.ba-how { max-width: 780px; margin: 64px auto 0; }
.ba-how h3 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 22px;
  text-transform: uppercase;
  text-align: center;
  margin-bottom: 32px;
}
.ba-how li {
  position: relative;
  padding-left: 24px;
  font-size: 16px;
  line-height: 1.3;
  color: var(--color-slate);
}
.ba-how li + li { margin-top: 16px; }
.ba-how li::before {
  content: "";
  position: absolute;
  left: 0; top: 7px;
  width: 8px; height: 8px;
  border-radius: 50%;
  background: var(--color-accent-bright);
}

/* --- Кому підійде (зелена стрічка) --- */
.fit { background: var(--color-accent); padding: 96px 0; }
.fit-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: stretch;   /* колонки однакової висоти → CTA центрується в залишку */
}
/* Колонки незалежні: висота плитки в одній колонці не тягне сусідню
   (раніше .fit-who span 2 rows звʼязував ряди — довгий текст праворуч
   робив діру між плитками ліворуч). */
.fit-col {
  display: flex;
  flex-direction: column;
  gap: 40px;
}
.fit-card {
  background: #fefefe;
  border-radius: var(--radius-lg);
  padding: 32px;
}
.fit-card h3 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 20px;
  line-height: 1.3;
  text-transform: uppercase;
  color: var(--color-text);
  margin-bottom: 24px;
}
.fit-card p, .fit-card li { font-size: 15px; line-height: 1.4; color: var(--color-slate); }
.fit-card p + p { margin-top: 16px; }
.fit-strong { font-weight: 700; }
.fit-who { grid-row: span 2; }
.fit-dot { position: relative; }
.fit-dot::after {
  content: "";
  position: absolute;
  top: 32px; right: 32px;
  /* однакові кружечки з крапками таймлайну «Етапи» (.steps-list li::before) */
  width: 16px; height: 16px;
  border-radius: 50%;
}
.fit-dot--green::after { background: var(--color-accent-bright); }
.fit-dot--red::after { background: #ff1e1e; }
.fit-dot ul li { position: relative; padding-left: 16px; }
.fit-dot ul li + li { margin-top: 8px; }
.fit-dot ul li::before {
  content: "";
  position: absolute;
  left: 0; top: 8px;
  width: 5px; height: 5px;
  border-radius: 50%;
  background: currentColor;          /* булет — у колір тексту списку */
}
.fit-cta {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 8px 32px;
}
/* CTA займає весь залишок своєї колонки, вміст — по центру цього залишку
   (Figma: центр CTA 4809 ≈ центр вільного місця 4804). */
.fit-col > .fit-cta { flex: 1 1 auto; }
.fit-cta-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 24px;
  line-height: 1.4;
  text-transform: uppercase;
  color: var(--color-text);
}
.fit-cta a {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.3;
  color: var(--color-slate);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.fit-cta a:hover { color: var(--color-dark-green); }

/* --- Етапи --- */
.steps { padding: 96px 0; }
.steps-grid { display: grid; grid-template-columns: 480px 1fr; gap: 120px; }
.steps-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 60px;
  line-height: 1;
  text-transform: uppercase;
  margin-bottom: 32px;
  /* Автоперенос НЕ вмикаємо: у дисплейних заголовках 48–64px розрив слова
     («ІМ-ПЛАНТАТАХ») виглядає погано. Лишається тільки страховка від виїзду
     за межі контейнера — спрацьовує, лише якщо слово ширше за рядок. */
  overflow-wrap: break-word;
}
.steps-head p { font-size: 16px; line-height: 1.4; color: var(--color-slate); }
.steps-more { margin-top: 32px; }
.steps-more a {
  position: relative;
  display: inline-flex;
  gap: 8px;                            /* inline-flex з'їдає пробіл перед MIMI® */
  padding-right: 40px;
  font-size: 16px;
  color: var(--color-dark-green);
}
.steps-more a:hover { color: var(--color-hover); }
.steps-more-arrow { position: absolute; right: 0; top: 0; }
/* розкладка «стовпчик»: заголовок на всю ширину, під ним етапи, далі вступ і посилання.
   Заголовок не тиснеться у вузьку колонку — довгі слова не треба рвати переносами. */
.steps--stacked .steps-title {
  font-size: 64px;
  line-height: 1.2;
  text-align: center;
  margin-bottom: 48px;
}
.steps--stacked .steps-list { max-width: 780px; margin: 0 auto; }
.steps--stacked .steps-foot {
  max-width: 780px;
  margin: 48px auto 0;
  padding-left: 40px;                 /* під текст пунктів таймлайну */
}
.steps--stacked .steps-foot p { font-size: 16px; line-height: 1.4; color: var(--color-slate); }

/* таймлайн: зелені крапки на вертикальній лінії; hover абзаца → червона */
.steps-list { list-style: none; margin: 0; padding: 0; }
.steps-list li {
  position: relative;
  padding-left: 40px;
  font-size: 15px;
  line-height: 1.4;
  color: var(--color-slate);
}
.steps-list li + li { margin-top: 24px; }
.steps-list li::before {
  content: "";
  position: absolute;
  left: 0; top: 2px;
  width: 16px; height: 16px;
  border-radius: 50%;
  background: var(--color-accent);
  transition: background var(--transition);
  z-index: 1;
}
.steps-list li:hover::before { background: #ff1e1e; }
.steps-list li::after {
  content: "";
  position: absolute;
  left: 7px; top: 18px;
  bottom: -26px;                      /* лінія до наступної крапки */
  width: 1px;
  background: var(--color-dark-green);
}
.steps-list li:last-child::after { bottom: -8px; }   /* хвіст і після останньої */

/* --- Ціни --- */
.prices { background: var(--color-card); padding: 96px 0; }
.prices .section-title { margin-bottom: 64px; }
/* пласка таблиця цін (сторінка послуги) — контейнер рядків .price-row */
.price-list { max-width: 780px; margin: 0 auto; }
/* примітка під таблицею цін */
.prices-note {
  max-width: 780px;
  margin: 24px auto 0;
  color: var(--color-slate);
  font-size: 14px;
  line-height: 1.6;
}
/* CTA цін: зелена зірка, від 6-ї колонки, шрифт 24px */
.prices-cta {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 48px;
  padding-left: calc(100% * 5 / 12);   /* 6-та колонка 12-кол. сітки контейнера */
}
.prices-cta-title a {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 24px;
  line-height: 1.4;
  text-transform: uppercase;
  text-decoration: underline;
  text-underline-offset: 4px;
  color: var(--color-text);
}
.prices-cta-title a:hover { color: var(--color-hover); }
.prices-cta-promo {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 24px;
  text-transform: uppercase;
  color: var(--color-accent-bright);
  margin-top: 8px;
}

/* --- FAQ --- */
.faq { padding: 96px 0; }
.faq .section-title { margin-bottom: 48px; }
.faq-list { max-width: 848px; margin: 0 auto; }
.faq-item + .faq-item { margin-top: 16px; }
.faq-question {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  width: 100%;
  text-align: left;
  background: var(--color-card);
  border: none;
  border-radius: 60px;              /* пігулка (у дизайні 60px), не прямокутник */
  padding: 16px 24px 16px 40px;     /* зліва 40px — з дизайну */
  font-size: 24px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--color-dark-green);
  cursor: pointer;
}
/* стрілки-кнопки з експорту: зелена ↓ = закрито, темна ↑ = відкрито */
.faq-ic {
  flex: 0 0 40px;
  width: 40px; height: 40px;
  background: url('../images/faq-closed.svg') no-repeat center / contain;
}
.faq-item.is-open .faq-ic { background-image: url('../images/faq-open.svg'); }
.faq-answer {
  display: none;
  padding: 16px 24px 8px;
  font-size: 16px;
  line-height: 1.5;
  color: var(--color-slate);
}
.faq-item.is-open .faq-answer { display: block; }
/* довільне форматування у відповіді (InnerBlocks): абзаци, списки, лінки */
.faq-answer > :is(p, ul, ol, h3, h4, figure, blockquote, table) + :is(p, ul, ol, h3, h4, figure, blockquote, table) { margin-top: 16px; }
.faq-answer ul, .faq-answer ol { padding-left: 24px; }
.faq-answer ul { list-style: disc; }
.faq-answer ol { list-style: decimal; }
.faq-answer li + li { margin-top: 8px; }
.faq-answer a { text-decoration: underline; text-underline-offset: 3px; }
.faq-answer a:hover { color: var(--color-hover); }

/* --- Фото-стрічка: авто-marquee + лайтбокс --- */
.gallery-strip { overflow: hidden; padding: 48px 0; }
.gallery-track {
  display: flex;
  gap: 16px;
  width: max-content;
  will-change: transform;             /* рух — transform (marquee JS), кліпає .gallery-strip */
  touch-action: pan-y;                /* горизонталь — нам, вертикаль — браузеру */
  cursor: grab;
}
.gallery-track.is-dragging { cursor: grabbing; }
.gallery-track img { flex: 0 0 400px; width: 400px; height: 266px; object-fit: cover; user-select: none; }

/* Лайтбокс */
.lightbox {
  position: fixed;
  inset: 0;
  z-index: 120;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,0.82);
  cursor: zoom-out;
}
.lightbox img {
  max-width: 92vw;
  max-height: 92vh;
  border-radius: var(--radius-md);
}

/* --- Наші нагороди (компактні) --- */
.mini-awards { padding: 64px 0 120px; overflow: hidden; }
.mini-awards-grid {
  display: grid;
  grid-template-columns: 400px 1fr;   /* під заголовок 64px (уніфіковано з .section-title) */
  gap: 48px;
  align-items: center;
}
.mini-awards-head h2 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 64px;
  line-height: 1.1;
  text-transform: uppercase;
}
.mini-awards-head p {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--color-dark-green);
  margin-top: 16px;
  max-width: 300px;                   /* текст вужчий за заголовок — як у дизайні (3 рядки) */
}
/* плашка до правого краю екрана; лівий торець — півколо */
.mini-awards-row {
  background: var(--color-card);
  border-radius: 999px 0 0 999px;
  padding: 32px 0;
  margin-right: min(0px, calc((100vw - var(--container-width)) / -2));
  overflow: hidden;
}
.mini-awards-track {
  display: flex;
  gap: 32px;
  align-items: center;
  width: max-content;
  will-change: transform;             /* рух — transform, кліпає .mini-awards-row */
  touch-action: pan-y;
  cursor: grab;
}
.mini-awards-track.is-dragging { cursor: grabbing; }
.mini-awards-track .medal { flex: 0 0 auto; user-select: none; }   /* розмір бере з .medal (width/height) — не з flex-basis, інакше на планшеті конфлікт "ширина 150 / висота 120" сплюснути медаль */

/* ============================================
   СТОРІНКА ЛІКАРЯ (boss.html)
   ============================================ */
/* --- Hero лікаря --- */
.dhero-role { font-size: 32px; line-height: 1.1; font-weight: 600; color: var(--color-text); margin-top: 8px; }
.dhero-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 24px;
  margin-top: 24px;
}
.dhero-tags + .dhero-tags { margin-top: 16px; }
.dhero-tags li {
  position: relative;
  padding-left: 16px;
  font-size: 16px;        /* Figma: 16px Regular, без жирності */
  font-weight: 400;
  color: var(--color-text);
}
/* зелена галочка перед тегом */
.dhero-tags li::before {
  content: "";
  position: absolute;
  left: 0; top: 4px;
  width: 6px; height: 10px;
  border: solid var(--color-accent-bright);
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
/* обидві колонки на всю висоту: плашка ODC і ряд медалей притиснуті до низу */
.dhero .phero-inner { align-items: stretch; }
.dhero .phero-content { display: flex; flex-direction: column; align-items: flex-start; }
.dhero .phero-media { display: flex; flex-direction: column; justify-content: flex-end; }
.dhero .phero-media .phero-tooth { margin-bottom: auto; }
.dhero-odc {
  display: flex;
  align-items: center;
  justify-content: space-between;     /* текст ліворуч, лого праворуч — плашка на всю ширину */
  gap: 24px;
  width: 100%;
  max-width: 680px;                   /* Figma: плашка x=370..1050 */
  margin-top: 24px;                  /* мінімальний відступ від тегів завжди (не лише коли є вільне місце) */
  padding: 16px 24px;
  background: #fefefe;
  border-radius: var(--radius-md);
  font-size: 16px;                    /* Figma: 16px Regular */
  line-height: 1.4;
}
.dhero-odc img { flex: 0 0 auto; }
@media (min-width: 961px) {
  .dhero-odc { margin-top: auto; }   /* десктоп: притиснуто донизу героя, як і було */
}

/* --- Лічильники --- */
.counters { padding: 48px 0 64px; }
.counters-grid {
  display: flex;
  justify-content: center;
  gap: 160px;
}
.counter { text-align: center; }
.counter-num {
  display: grid;
  place-items: center;
  width: 160px; height: 160px;
  margin: 0 auto 24px;
  border-radius: 50%;
  color: #fefefe;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 60px;
}
.counter-num--deep { background: #295708; }
.counter-num--mid  { background: #06a734; }
.counter-num--moss { background: #4d811a; }
.counter p { font-family: var(--font-body); font-size: 24px; font-weight: 700; color: var(--color-text); }

/* --- Досягнення (зелена стрічка) --- */
.achieve { background: var(--color-accent); padding: 64px 0 96px; }
.achieve .section-title { margin-bottom: 64px; }
.achieve-grid {
  display: grid;
  grid-template-columns: 5fr 7fr;   /* Figma: 480 / 660 при gap 40 у контейнері 1180 */
  gap: 40px;
  align-items: start;
}
.achieve-col { display: flex; flex-direction: column; gap: 40px; }
.achieve-card {
  background: #fefefe;
  border-radius: var(--radius-lg);
  padding: 32px;
}
.achieve-card h3 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 24px;
  line-height: 1.3;
  text-transform: uppercase;
  color: var(--color-text);
  margin-bottom: 24px;
}
.spec-list li {
  position: relative;
  padding-left: 16px;
  font-size: 16px;
  line-height: 1.4;
}
.spec-list li + li { margin-top: 8px; }
.spec-list li::before {
  content: "";
  position: absolute;
  left: 0; top: 8px;
  width: 5px; height: 5px;
  border-radius: 50%;
  background: var(--color-text);
}

/* таймлайн «Шлях майстерності» */
.path-list { list-style: none; margin: 0; padding: 0; }
.path-list li {
  position: relative;
  padding-left: 32px;
  padding-bottom: 24px;
}
.path-list li::before {
  content: "";
  position: absolute;
  left: 0; top: 4px;
  width: 12px; height: 12px;
  border-radius: 50%;
  background: var(--color-accent);
  z-index: 1;
}
.path-list li::after {                 /* лінія і в останнього маркера (як у дизайні) */
  content: "";
  position: absolute;
  left: 5px; top: 16px; bottom: -4px;
  width: 1px;
  background: var(--color-text);        /* темна лінія таймлайну (у дизайні) */
}
.path-period { display: block; font-size: 16px; font-weight: 600; color: var(--color-accent); margin-bottom: 4px; }
.path-list b { display: block; font-family: var(--font-display); font-size: 16px; font-weight: 700; margin-bottom: 4px; }
.path-list p { font-size: 16px; line-height: 1.4; color: var(--color-slate); }

/* публікації */
.pub-list { list-style: none; margin: 0; padding: 0; }
.pub-list li + li { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--color-muted); }
.pub-num { display: block; font-family: var(--font-display); font-size: 16px; font-weight: 700; color: var(--color-accent); margin-bottom: 8px; }
.pub-list b { display: block; font-family: var(--font-display); font-size: 16px; font-weight: 700; line-height: 1.35; margin-bottom: 4px; }
.pub-list p { font-size: 16px; line-height: 1.4; color: var(--color-slate); }
/* стрілка «→» — іконка з дизайну (замість текстового символу) */
.pub-arrow {
  display: inline-block;
  width: 12px; height: 11px;
  margin-left: 4px;
  background: url('../images/icon-arrow-right.svg') no-repeat center / contain;
}
.pub-link { color: inherit; }
.pub-link:hover b { color: var(--color-dark-green); }

/* темна картка Leading Implant Centers */
.achieve-card--dark {
  position: relative;
  background: var(--color-dark-green);
  color: #fefefe;
}
.achieve-card--dark h3 { color: #fff; padding-right: 64px; }
.achieve-dark-star { position: absolute; top: 32px; right: 32px; }
.achieve-card--dark p { font-size: 16px; line-height: 1.45; }
.achieve-card--dark p + p { margin-top: 16px; }
.lic-link {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid var(--color-accent);   /* роздільник над профіль-лінком — акцентний зелений (дизайн) */
  font-size: 16px;
  font-weight: 600;
  color: #fefefe;
}
.lic-label { display: inline-flex; align-items: center; gap: 8px; }
.lic-text { text-decoration: underline; text-underline-offset: 3px; }
.lic-link:hover .lic-text { color: var(--color-accent); }
/* стрілка «↗» — іконка з дизайну (біла, на темній картці) */
.lic-arrow {
  flex: 0 0 auto;
  width: 9px; height: 9px;
  background: url('../images/icon-arrow-upright.svg') no-repeat center / contain;
}
.lic-faces { display: flex; align-items: flex-end; flex: 0 0 auto; }
.lic-faces img { border-radius: 50%; border: 2px solid var(--color-dark-green); }
.lic-faces img:first-child { width: 64px; height: 64px; }              /* фото — більше */
.lic-faces img:last-child { width: 52px; height: 52px; margin-left: -20px; }  /* медаль — менша, нижче-правіше */

.achieve-cta {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 8px 0;                       /* вирівняно по лівому краю карток (дизайн) */
}
.achieve-cta a {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 24px;
  line-height: 1.4;
  text-transform: uppercase;
  text-decoration: underline;
  text-underline-offset: 4px;
  color: var(--color-text);
}
.achieve-cta a:hover { color: var(--color-dark-green); }

/* --- Відеозвернення --- */
.appeal { padding: 96px 0 48px; }
.appeal .section-title { margin-bottom: 48px; }
.appeal-video { max-width: 980px; margin: 0 auto; }
.appeal-video .vcard-media img { height: auto; aspect-ratio: 1177 / 661; }
/* велике відео — підпис із «повітрям» (Figma: текст x=425 y=3819 у плашці 370/3778) */
.appeal-video figcaption { border-radius: 0 0 var(--radius-lg) var(--radius-lg); padding: 40px 56px; }

/* --- Сертифікати / патенти: каруселі --- */
.certs { padding: 96px 0 48px; }
.certs .section-title { margin-bottom: 48px; }
.patents { background: var(--color-card); padding: 96px 0; margin-top: 48px; }
.patents .section-title { margin-bottom: 48px; }
.certs-strip { overflow: hidden; }
.certs-track {
  display: flex;
  align-items: center;
  gap: 24px;
  width: max-content;
  will-change: transform;
  touch-action: pan-y;
  cursor: grab;
}
.certs-track.is-dragging { cursor: grabbing; }
.certs-track img { height: 250px; width: auto; user-select: none; }
.certs-track--tall img { height: 397px; }

/* дот-навігація каруселей */
.marquee-dots {
  display: flex;
  justify-content: center;
  gap: 16px;
  margin-top: 32px;
}
.marquee-dots button {
  width: 8px; height: 8px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: #cfd4d1;
  cursor: pointer;
  transition: background var(--transition);
}
.marquee-dots button.is-active { background: var(--color-accent-bright); }

/* ============================================
   СТОРІНКИ РОБІТ (works.html / works-single.html)
   ============================================ */

/* --- Заголовок сторінки --- */
.works-head { padding: 8px 0 32px; }
.works-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 48px;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--color-text);
}

/* --- Архів: сітка клінічних випадків --- */
.works-cases { padding: 0 0 32px; }
.works-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.wcase {
  display: flex;
  flex-direction: column;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--color-card);
}
.wcase-media {
  display: block;
  aspect-ratio: 1 / 1;
  overflow: hidden;
}
.wcase-media img { width: 100%; height: 100%; object-fit: cover; }
.wcase-body { display: block; padding: 32px; }
.wcase-title {
  display: block;
  font-weight: 700;
  font-size: 28px;
  line-height: 1.15;
  color: var(--color-text);
}
.wcase-text {
  display: block;
  margin-top: 16px;
  font-size: 16px;
  line-height: 1.3;
  color: var(--color-slate);
}
.wcase:hover .wcase-title { color: var(--color-hover); }

/* --- CTA (зірка+текст стартують з 6-ї колонки 12-кол. сітки, як усюди) --- */
.works-cta { padding: 32px 0 64px; }
.works-cta-link {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  margin-left: calc(100% * 5 / 12);
}
.works-cta-link img { flex: 0 0 auto; width: 60px; height: 58px; }
.works-cta-link span {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 24px;
  line-height: 1.4;
  text-transform: uppercase;
  color: var(--color-text);
  text-decoration: underline;
  text-underline-offset: 4px;
  text-align: left;
}
.works-cta-link:hover span { color: var(--color-hover); }

/* --- Сінгл: заголовок + опис зі зсувом --- */
.wsingle-lead {
  margin-left: 196px;
  margin-top: 24px;
  max-width: 773px;
  font-size: 16px;
  line-height: 1.3;
  color: var(--color-slate);
}

/* --- Сінгл: галерея випадку --- */
.wgallery { background: var(--color-card); padding: 96px 0; }
.wgallery-inner {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 24px;
}
.wgallery-main { flex: 0 0 581px; max-width: 581px; }
.wgallery-main img {
  display: block;
  width: 100%;
  aspect-ratio: 581 / 591;
  object-fit: cover;
  border-radius: var(--radius-lg);
}
.wgallery-main figcaption {
  margin-top: 24px;
  text-align: center;
  font-size: 16px;
  line-height: 1.3;
  color: var(--color-slate);
}

.wgallery-nav {
  flex: 0 0 182px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}
.wgallery-arrow {
  flex: 0 0 auto;
  width: 60px; height: 60px;
  padding: 0;
  border: none;
  background: none;
  cursor: pointer;
  transition: opacity var(--transition);
}
.wgallery-arrow img { display: block; width: 60px; height: 60px; }
.wgallery-arrow:hover { opacity: 0.75; }

.wgallery-thumbs {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
}
.wgallery-thumb {
  display: block;
  padding: 0;
  border: 2px solid transparent;
  border-radius: var(--radius-lg);
  background: none;
  cursor: pointer;
  overflow: hidden;
  transition: border-color var(--transition);
}
.wgallery-thumb img {
  display: block;
  width: 100%;
  height: 140px;
  object-fit: cover;
  border-radius: calc(var(--radius-lg) - 2px);
}
.wgallery-thumb.is-active { border-color: var(--color-accent-bright); }
.wgallery-thumb:hover { border-color: var(--color-hover); }

/* ============================================
   СТОРІНКИ НОВИН (news.html / news-single.html)
   ============================================ */

/* --- Архів: заголовок + фільтри --- */
.news-head { padding: 64px 0 0; }
.news-filters { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 32px; }
.news-filter {
  height: 40px;
  padding: 0 24px;
  display: inline-flex;
  align-items: center;
  border: none;
  border-radius: 10px;
  background: #ecefea;
  color: var(--color-text);
  font-family: var(--font-body);
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: background var(--transition), color var(--transition);
}
.news-filter:hover { background: #e2e7e0; }
.news-filter.is-active { background: var(--color-accent); color: var(--color-accent-dark); }
.news-filter.is-active:hover { background: var(--color-hover); }

.news-archive { padding: 56px 0 96px; }   /* 56px між head (фільтрами) і сіткою */

/* --- Сінгл: стаття --- */
.article { padding: 8px 0 96px; }
.article-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 48px;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--color-text);
  max-width: 680px;
}
/* тіло статті — колонка зі зсувом (як усюди: ~2 колонки) */
.article-body { margin-left: 196px; max-width: 780px; margin-top: 48px; }
.article-body p { font-size: 16px; line-height: 1.4; color: var(--color-slate); }
.article-body p + p { margin-top: 16px; }
.article-list { margin-top: 16px; padding-left: 24px; list-style: disc; }
.article-list li {
  font-size: 16px;
  line-height: 1.4;
  color: var(--color-slate);
}
.article-list li + li { margin-top: 8px; }

.article-figure { margin-top: 32px; }
.article-ph {
  display: block;
  width: 100%;
  border-radius: var(--radius-lg);
  background: var(--color-muted) repeating-linear-gradient(
    -45deg, transparent 0 22px, rgba(0,0,0,.03) 22px 44px);
}

.article-subtitle {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 24px;
  line-height: 1.3;
  color: var(--color-text);
  margin-top: 48px;
}

.article-split {
  display: grid;
  grid-template-columns: 379fr 377fr;
  gap: 24px;
  align-items: start;
  margin-top: 24px;
}
.article-split .article-figure { margin-top: 0; }
.article-split-text p { font-size: 16px; line-height: 1.4; color: var(--color-slate); }
.article-split-text p + p { margin-top: 16px; }

.article-duo {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin-top: 24px;
}
.article-duo .article-figure { margin-top: 0; }

/* ───────────────────────────────────────────────────────────────
   Типографіка тіла статті/новини — контент із редактора Gutenberg
   (стандартні блоки: заголовки, списки, фото+підпис, цитата, таблиця,
   посилання, жирний/курсив, колонки, роздільник). Класи .article-* вище —
   для статичного еталона; тут — усе, що дає редактор при наповненні.
   Ресет глобально гасить ul/margin — тому список/відступи вмикаємо явно.
   ─────────────────────────────────────────────────────────────── */

/* вертикальний ритм: блокові елементи мають відступ згори; перший — без */
.article-body :is(p, ul, ol, figure, blockquote, table, hr,
  h2, h3, h4, h5, h6, .wp-block-columns, .wp-block-buttons, .wp-block-separator, .wp-block-embed) {
  margin-top: 20px;
}
.article-body :is(h2, h3, h4, h5, h6) { margin-top: 40px; }
.article-body > :first-child { margin-top: 0; }
.article-body .wp-block-column > :first-child { margin-top: 0; }

/* заголовки (Ermilov, як підзаголовок статті в дизайні) */
.article-body :is(h2, h3, h4, h5, h6) {
  font-family: var(--font-display);
  font-weight: 700;
  line-height: 1.3;
  color: var(--color-text);
}
.article-body h2 { font-size: 24px; }
.article-body h3 { font-size: 20px; }
.article-body h4 { font-size: 18px; }
.article-body :is(h5, h6) { font-size: 16px; }

/* абзаци (перекриває базове .article-body p вище тим самим виглядом) */
.article-body :is(p, li) { font-size: 16px; line-height: 1.5; color: var(--color-slate); }

/* посилання */
.article-body a { color: var(--color-dark-green); text-decoration: underline; text-underline-offset: 3px; }
.article-body a:hover { color: var(--color-hover); }

/* акценти */
.article-body :is(strong, b) { font-weight: 700; color: var(--color-text); }
.article-body :is(em, i) { font-style: italic; }
.article-body mark { background: var(--color-accent); color: var(--color-dark-green); padding: 0 2px; }

/* списки (core .wp-block-list і будь-які ul/ol) — ресет обнулив, вмикаємо */
.article-body :is(ul, ol) { padding-left: 24px; }
.article-body ul { list-style: disc; }
.article-body ol { list-style: decimal; }
.article-body li + li { margin-top: 8px; }
.article-body li > :is(ul, ol) { margin-top: 8px; }

/* фото + підпис (core wp-block-image). Підпис є/нема — обидва коректні */
.article-body figure { margin: 0; }
.article-body figure.wp-block-image { text-align: center; }
.article-body figure.wp-block-image img {
  display: block;
  width: 100%;
  height: auto;
  margin-inline: auto;                 /* фото з ручною шириною — по центру */
  border-radius: var(--radius-lg);
  /* Задати фото ВИСОТУ в редакторі → воно заповнює ширину й ОБРІЗАЄТЬСЯ, а не
     спотворюється. Двом фото в ряд (колонки) задати ОДНАКОВУ висоту → рівний ряд,
     без потреби вантажити фото однакового розміру. Ручні розміри з редактора
     (inline width/height) мають пріоритет над цим правилом (inline > CSS). */
  object-fit: cover;
}
.article-body figure.wp-block-image.alignleft  { float: left;  max-width: 50%; margin: 4px 24px 16px 0; }
.article-body figure.wp-block-image.alignright { float: right; max-width: 50%; margin: 4px 0 16px 24px; }
.article-body figcaption {
  margin-top: 8px;
  font-size: 14px;
  line-height: 1.4;
  color: var(--color-slate);
  text-align: center;
}

/* цитата */
.article-body blockquote {
  margin: 0;
  padding: 4px 0 4px 24px;
  border-left: 3px solid var(--color-accent);
  font-size: 20px;
  line-height: 1.4;
  color: var(--color-text);
}
.article-body blockquote p { font-size: inherit; line-height: inherit; color: inherit; }
.article-body blockquote :is(cite, .wp-block-quote__citation) {
  display: block;
  margin-top: 8px;
  font-style: normal;
  font-size: 14px;
  color: var(--color-slate);
}

/* таблиця */
.article-body table { width: 100%; border-collapse: collapse; font-size: 15px; }
.article-body :is(th, td) {
  padding: 12px;
  border: 1px solid #0f0f0f;
  text-align: left;
  line-height: 1.4;
  color: var(--color-slate);
}
.article-body th { font-weight: 700; color: var(--color-text); }
.article-body .wp-block-table figcaption { text-align: left; }

/* роздільник */
.article-body :is(hr, .wp-block-separator) { border: 0; border-top: 1px solid var(--color-line); }

/* колонки (core CSS дає flex; ширина колонок задається в редакторі: Колонка → Ширина).
   Підстраховка ритму. */
.article-body .wp-block-column > * { min-width: 0; }
/* Фото в колонці ЗАВЖДИ заповнює свою колонку — навіть коли редактор лишив
   «ширина: Авто» (inline width:auto). Задавши двом фото ОДНАКОВУ висоту, отримаєте
   рівний, повністю заповнений ряд — незалежно від розміру завантажених фото. */
.article-body .wp-block-column .wp-block-image img { width: 100% !important; }

/* вирівнювання по ширині контенту */
.article-body :is(.alignwide, .alignfull) { margin-left: 0; margin-right: 0; }

/* ============================================
   СТОРІНКА 404
   ============================================ */
.notfound { padding: 96px 0 112px; text-align: center; }
.notfound-code {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 160px;
  line-height: 1;
  color: var(--color-dark-green);
}
.notfound-code img { width: 130px; height: 126px; flex: 0 0 auto; }
.notfound-title { margin: 24px 0 16px; }
.notfound-text {
  max-width: 560px;
  margin: 0 auto 40px;
  font-size: 16px;
  line-height: 1.5;
  color: var(--color-slate);
}
.notfound-actions { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; }
.notfound-links { margin-top: 48px; }
/* меню локації «notfound» (wp_nav_menu → ul.notfound-menu > li > a) */
.notfound-menu {
  display: flex;
  gap: 8px 24px;
  justify-content: center;
  flex-wrap: wrap;
  list-style: none;
  margin: 0;
  padding: 0;
}
.notfound-menu a {
  font-weight: 600;
  color: var(--color-dark-green);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.notfound-menu a:hover { color: var(--color-hover); }

/* ============================================
   СТОРІНКА ЦІНИ (prices.html)
   ============================================ */
.prices { padding: 56px 0 32px; }
.prices-title { max-width: 680px; }
.prices-acc { max-width: 780px; margin: 40px auto 0; }   /* акордеон центрований (200px з боків) */
/* категорії цін = ті самі стилі, що питання в блоці FAQ (.faq-question) —
   оверрайду немає навмисно, щоб вигляд був 1:1 з FAQ. */
.prices-acc .faq-answer { padding: 0; }
/* єдиний компонент рядка «послуга — ціна» для ОБОХ блоків
   (пласка .price-list на сторінці послуги + акордеон .prices-acc).
   ⭐ КАНОН — затверджена таблиця цін зі сторінки послуги (правка [6]):
   компактний, тонка темна лінія #0f0f0f, назва ЖОРСТКІ 62% + відступ 48px до ціни
   (назва переноситься в межах колонки, не липне до ціни), ціна праворуч у решті 38%.
   Базово — без бокових відступів (пласка таблиця); акордеон додає їх нижче. */
.price-row {
  display: flex;
  align-items: baseline;
  padding: 8px 0;
  border-bottom: 1px solid #0f0f0f;
}
.price-name { flex: 0 0 62%; padding-right: 48px; font-size: 15px; line-height: 1.35; color: var(--color-slate); }
.price-val { flex: 1 1 auto; text-align: right; font-size: 15px; line-height: 1.35; color: var(--color-slate); white-space: nowrap; }
/* Акордеон (сторінка Ціни) — за Figma (design/prices, секція 5) рядки просторіші:
   вертикальний відступ 16px (уточнено власником), текст 16px, назва на всю колонку (не жорсткі 62%),
   бокові 30px — щоб рядок став під заокруглену пігулку заголовка. Лінія — та сама #0f0f0f. */
.prices-acc .price-row { padding: 16px 8px 16px 28px; }
.prices-acc .price-name { flex: 1 1 auto; padding-right: 32px; font-size: 16px; line-height: 1.3; }
.prices-acc .price-val { flex: 0 0 auto; font-size: 16px; line-height: 1.3; }

/* ============================================
   СТОРІНКА КОНТАКТИ (contacts.html)
   ============================================ */
.contacts { padding: 8px 0 96px; }
.contacts-title { margin-bottom: 40px; }
.contacts-grid {
  display: grid;
  grid-template-columns: 1fr 504px;
  gap: 56px;
  align-items: start;
}

/* --- Ліва колонка: інфо --- */
.ci-top { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.ci-h {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 24px;
  line-height: 1.4;
  text-transform: uppercase;
  color: var(--color-text);
  margin-bottom: 16px;
}
.ci-text { font-size: 16px; line-height: 1.4; color: var(--color-text); }
.ci-text b { font-weight: 700; font-size: 20px; }   /* значення робочих годин 09:00–19:00 */
.ci-note { font-size: 14px; line-height: 1.4; color: var(--color-slate); margin-top: 16px; }
/* розділювач між годинами і приміткою: 1px акцентний зелений, 88px */
.ci-note::before { content: ""; display: block; width: 88px; height: 1px; background: var(--color-accent); margin-bottom: 16px; }

.contacts-info > .ci-h { margin-top: 40px; }
.ci-contact { display: flex; gap: 40px; }
.ci-freebox {
  flex: 0 0 280px;
  border-radius: var(--radius-lg);
  background: var(--color-accent);
  padding: 24px;
}
.ci-freebox b { display: block; font-size: 20px; font-weight: 700; color: var(--color-text); }
.ci-freebox span { display: block; margin-top: 8px; font-size: 16px; line-height: 1.4; color: var(--color-slate); }
.ci-phones { display: flex; flex-direction: column; gap: 8px; }
.ci-phones a { font-size: 16px; line-height: 1.4; color: var(--color-slate); }
.ci-phones a:hover { color: var(--color-hover); }
.ci-email { margin-top: 8px; }

.ci-offers {
  display: flex;
  align-items: center;
  gap: 16px;
  width: fit-content;
  margin: 48px auto 0;   /* центрувати під лівою колонкою (як у макеті) */
}
.ci-offers img { flex: 0 0 auto; width: 60px; height: 57px; }
.ci-offers span {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 24px;
  line-height: 1.4;
  text-transform: uppercase;
  color: var(--color-text);
  text-decoration: underline;
  text-underline-offset: 4px;
}
.ci-offers:hover span { color: var(--color-hover); }

/* --- Права колонка: форма запису --- */
.contacts-form {
  background: #ecefea;
  border-radius: var(--radius-lg);
  padding: 40px;
}
.cf-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 24px;
  line-height: 1.4;
  text-transform: uppercase;
  text-align: center;
  color: var(--color-text);
}
.cf-sub { text-align: center; font-size: 16px; line-height: 1.3; color: var(--color-slate); margin-top: 8px; }
.cf-field {
  display: block;
  width: 100%;
  height: 40px;
  margin-top: 20px;
  padding: 0 20px;
  border: none;
  border-radius: var(--radius-lg);
  background: var(--color-card);
  font-family: var(--font-body);
  font-size: 14px;
  color: var(--color-text);
}
.cf-field::placeholder { color: var(--color-slate); }
.cf-field:focus { outline: 2px solid var(--color-accent); outline-offset: 0; }
.cf-row { display: flex; gap: 20px; }
.cf-row .cf-field { flex: 1; min-width: 0; }
.cf-area { height: 118px; padding: 12px 20px; resize: vertical; }
.cf-btn {
  display: block;
  width: 240px;
  height: 50px;
  margin: 24px auto 0;
  border: none;
  border-radius: 30px;
  background: var(--color-accent);
  font-family: var(--font-body);
  font-size: 18px;
  font-weight: 700;
  color: var(--color-accent-dark);
  cursor: pointer;
  transition: background var(--transition);
}
.cf-btn:hover { background: var(--color-hover); }

/* --- Мапа --- */
.map-section { padding: 0 0 96px; }
.map-section .section-title { margin-bottom: 48px; }
.map-embed {
  border-radius: var(--radius-lg);
  overflow: hidden;
  aspect-ratio: 1180 / 748;
}
.map-embed iframe { display: block; width: 100%; height: 100%; border: 0; }

/* ============================================
   RESPONSIVE — брейкпоінти 1100 / 960 / 640 / 400
   ============================================ */

@media (max-width: 1100px) {
  .topbar-contacts { gap: 24px; }
  .navbar-inner { gap: 24px; }        /* середні екрани: рівномірно менший гап (усе узгоджено) */
  .nav-list { gap: 24px; }
  .nav-item > a, .nav-link { font-size: 16px; }
  .header-actions { gap: 24px; }
}

/* ============================================================
   МОБІЛЬНЕ МЕНЮ (≤960): офф-канвас панель + 2-рівневий акордеон
   ============================================================ */
@media (max-width: 960px) {
  .burger { display: flex; }
  .topbar-contacts { display: none; }         /* ряд 1 = лого + бургер */
  .topbar-inner { padding-top: 8px; padding-bottom: 8px; min-height: 64px; }
  .header-actions { display: none; }          /* ЗАПИС + мова — у меню */

  .navbar { border-top: none; }
  .navbar-inner { display: block; padding: 0; min-height: 0; }

  /* Панель меню */
  .main-nav {
    position: fixed;
    left: 0; right: 0;
    top: var(--menu-top, 128px);
    bottom: 0;
    z-index: 45;
    background: #fff;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 4px 0 48px;
    transform: translateX(100%);
    visibility: hidden;
    transition: transform var(--transition), visibility var(--transition);
  }
  .main-nav.is-open { transform: none; visibility: visible; }

  .nav-list { flex-direction: column; align-items: stretch; gap: 0; padding: 0 var(--container-pad); }
  .nav-item { border-bottom: 1px solid var(--color-muted); }
  .nav-item > a,
  .nav-link {
    width: 100%;
    justify-content: space-between;
    padding: 16px 4px;
    font-weight: 700;
    color: var(--color-text);
  }
  .nav-caret { display: inline-block; border-color: var(--color-dark) transparent transparent transparent; }
  .nav-item.has-mega.is-open .nav-caret { transform: rotate(180deg); }

  /* Мега → вкладений акордеон */
  .mega {
    position: static;
    opacity: 1; visibility: visible; transform: none;
    background: transparent; box-shadow: none;
    max-height: 0; overflow: hidden;
    transition: max-height var(--transition);
  }
  .has-mega.is-open .mega { max-height: 2400px; }
  .mega-inner { display: block; padding: 0; }
  .mega-col { display: block; padding: 0; }
  .mega-col:not(:last-child) { border-right: none; }   /* без десктопних роздільників колонок */
  .mega-group,
  .mega-group + .mega-group { margin: 0; border-top: 1px solid var(--color-muted); }
  .mega-col:first-child .mega-group:first-child { border-top: none; }
  .mega-title {
    display: flex; align-items: center; justify-content: flex-start; gap: 8px;
    padding: 16px 4px 16px 16px; margin: 0; font-size: 16px;
  }
  .mega-title::after { display: none; }   /* без підкреслення в моб.-акордеоні */
  /* шеврон ‹зліва› (›), розкрито → ⌄ — як у моб.-дизайні */
  .mega-caret {
    order: -1;
    display: inline-block;
    width: 7px; height: 7px;
    border: solid var(--color-dark);
    border-width: 2px 2px 0 0;
    transform: rotate(45deg);
    transition: transform var(--transition);
  }
  .mega-group.is-open .mega-caret { transform: rotate(135deg); }
  .mega-list {
    gap: 0; max-height: 0; overflow: hidden;
    padding-left: 32px; transition: max-height var(--transition);
  }
  .mega-group.is-open .mega-list { max-height: 900px; padding-bottom: 8px; }
  .mega-list a { display: block; padding: 8px 0; }

  /* Підвал меню (контакти + кнопка) */
  .nav-extra { display: block; padding: 24px var(--container-pad) 8px; }
  .ne-lead { margin-bottom: 16px; }
  .ne-phone-big { font-size: 20px; font-weight: 800; color: var(--color-dark); }
  .ne-note { font-size: 14px; color: var(--color-slate); margin-top: 4px; }
  .ne-phones { display: flex; flex-direction: column; gap: 16px; margin-bottom: 16px; }
  .ne-phones a { font-size: 16px; color: var(--color-dark); }
  .ne-msgr { display: flex; gap: 24px; margin-bottom: 24px; }
  .ne-msgr a { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; color: var(--color-dark); }
  .ne-contacts {
    display: flex; flex-direction: column; gap: 16px;
    padding-top: 24px; border-top: 1px solid var(--color-muted); font-size: 15px;
  }
  .ne-contacts li { display: flex; align-items: center; gap: 8px; }
  .ne-contacts a { color: inherit; }
  .ne-appoint { margin-top: 24px; }

  /* Блокування скролу тіла під час відкритого меню */
  body.menu-open { overflow: hidden; }

  /* hero: фото ще фон, але текст на всю ширину */
  .hero-inner { min-height: 440px; }
  .hero-content { max-width: 64%; }
  /* .hero-play — % від .hero-inner, самостійно масштабується, оверрайд більше не потрібен */

  /* Фіксований нижній бар — на моб. і планшеті (коли шапка в бургері) */
  .mobile-bar {
    display: flex; align-items: stretch;
    position: fixed; left: 0; right: 0; bottom: 0;
    z-index: 60;
    background: var(--color-accent);           /* зелений бар #9FE870 */
    box-shadow: 0 -4px 16px rgba(0,0,0,0.10);
    padding: 0;
  }
  .mb-item {
    flex: 1 1 0;
    display: inline-flex; align-items: center; justify-content: center; gap: 8px;
    padding: 16px 8px;
    font-family: var(--font-body); font-size: 16px; font-weight: 700;
    color: var(--color-accent-dark);
    background: none; border: none; cursor: pointer;
  }
  .mb-top {
    flex: 0 0 auto;
    width: 80px;
    display: grid; place-items: center;
    border: none;
    border-left: 1px solid rgba(255,255,255,0.75);   /* білий роздільник */
    background: none; cursor: pointer; padding: 8px;
  }
  .mb-top img { width: 40px; height: 40px; }

  /* щоб контент не ховався під фіксованим баром + меню не заходило під нього */
  body { padding-bottom: 64px; }
  .main-nav { bottom: 64px; }

  /* інтро: декор притискаємо до правого краю блока, щоб не вилазив */
  .intro { padding: 64px 0; }
  .intro-decor { left: auto; right: 0; }

  /* послуги: 2 колонки */
  .section-title { font-size: 36px; }
  .methods .section-title { font-size: 36px; }   /* глушимо десктоп-виняток (0,2,0) на моб. */
  .services { padding-bottom: 64px; }
  .services-grid { grid-template-columns: repeat(2, 1fr); gap: 24px; }
  .scard--plain { padding-top: 24px; }

  /* hero-підзаголовки — менші на планшеті/моб. (десктоп 32) */
  .hero-subtitle,
  .phero-sub,
  .dhero-role { font-size: 24px; }
  .counters-grid { gap: 48px; }
  .achieve { padding: 48px 0 64px; }
  .achieve-grid { grid-template-columns: 1fr; }
  .appeal { padding: 64px 0 32px; }
  .certs { padding: 64px 0 32px; }
  .patents { padding: 64px 0; }

  /* сторінка Про клініку */
  .values { padding: 32px 0 48px; }
  .values-grid { grid-template-columns: 1fr; gap: 24px; }
  .vcard-value { min-height: 0; }
  .license { padding: 64px 0; }
  .license-grid { gap: 24px; }
  .license-grid img { height: auto; width: calc(50% - 12px); }
  .partner-info { padding-top: 0; }
  .partner-video img { height: auto; aspect-ratio: 502 / 371; }
  .tblock-title { font-size: 36px; margin-bottom: 32px; }
  .tblock-grid { grid-template-columns: 1fr; gap: 24px; }
  .tblock-grid > img { width: 100%; height: auto; }

  /* сторінка Імплантація */
  .phero-inner { flex-direction: column; align-items: flex-start; min-height: 0; }
  .phero-title { font-size: 36px; }
  .phero-media { flex: 0 0 auto; align-self: center; }
  .imp-intro-box { margin-left: 0; }
  .methods-grid { grid-template-columns: 1fr; gap: 24px; }
  .mcard { min-height: 0; }
  .vids-grid { grid-template-columns: 1fr; }
  .vcard-media img { height: auto; aspect-ratio: 494 / 277; }
  .consult-inner > img { margin-left: 0; }
  .prices-cta { padding-left: 0; justify-content: center; }
  .why-grid { grid-template-columns: repeat(2, 1fr); gap: 32px; }
  .why-item:not(:last-child)::before { display: none; }
  .ba-grid { flex-direction: column; align-items: center; }
  .ba-slider { width: 100%; max-width: 479px; }
  .fit { padding: 64px 0; }
  .fit-grid { grid-template-columns: 1fr; }
  .fit-who { grid-row: auto; }
  .fit-col { display: contents; }   /* одна колонка — плитки в потік сітки */
  .steps { padding: 64px 0; }
  .steps-grid { grid-template-columns: 1fr; gap: 48px; }
  .steps-title { font-size: 48px; }
  .steps--stacked .steps-title { font-size: 36px; }   /* = .section-title: «Етапи» і «Ціни» однакові */
  .prices { padding: 64px 0; }
  .faq { padding: 64px 0; }
  .mini-awards { padding: 48px 0 96px; }
  .mini-awards-grid { grid-template-columns: 1fr; gap: 24px; }
  .mini-awards-row { flex-wrap: wrap; border-radius: var(--radius-lg); margin-right: 0; }

  /* керівництво: стовпчик, анотації над/під карткою */
  .team { padding: 64px 0; }
  .team-subtitle { font-size: 24px; margin-bottom: 32px; }
  .team-row { flex-direction: column; }
  .team-row + .team-row { margin-top: 32px; }
  .team-note { flex: 0 0 auto; display: flex; align-items: center; gap: 16px; padding: 0; }
  .team-note p { margin: 0; }
  .team-note--bottom { align-self: flex-start; padding: 0; order: 1; }
  .team-card { flex: 1 1 auto; max-width: none; }
  .team-photo { flex-basis: 40%; width: 40%; height: auto; }
  .team-info { padding: 32px; }
  .team-card--reverse .team-info { padding: 32px; }
  .team-link { margin-top: 24px; }

  /* клініка: потік замість абсолютних бульбашок */
  .clinic-inner { min-height: 0; padding: 64px 0; }
  .clinic-head { flex-direction: column; gap: 24px; }
  .clinic-title { flex: 0 0 auto; padding-left: 0; font-size: 64px; }
  .clinic-watermark { left: auto; right: -160px; }
  .clinic-bubbles {
    position: static;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 24px;
    margin-top: 48px;
  }
  .bubble { position: relative; inset: auto; }
  .b1, .b2, .b3, .b4 { left: auto; top: auto; width: 200px; height: 200px; }
  .b5 { display: none; }

  /* новини: 2 колонки */
  .news { padding: 64px 0; }
  .news-subtitle { font-size: 24px; }
  .news-grid { grid-template-columns: repeat(2, 1fr); margin-top: 32px; gap: 16px; }
  .news-more { margin-top: 32px; }

  /* відгуки: 2 колонки */
  .reviews { padding: 64px 0; }
  .reviews-grid { grid-template-columns: repeat(2, 1fr); margin-top: 32px; gap: 16px; }
  .reviews-rating { margin-top: 24px; }

  /* нагороди */
  .awards { padding: 64px 0; }
  .awards-subtitle { font-size: 24px; }
  .awards-strip { margin-top: 48px; }
  .awards-row--b { margin-top: 32px; }
  .medal { flex-basis: 120px; width: 120px; height: 120px; }

  /* карусель MIMI: колонки в стовпчик */
  .mimi { padding: 64px 0; }
  .mimi-inner { flex-direction: column; gap: 32px; }
  .mimi-head { flex: 0 0 auto; }
  .mimi-title { font-size: 48px; }
  .mimi-right { width: 100%; }
  .mimi-more { margin-top: 32px; }

  /* переваги: 2 колонки */
  .advantages { padding: 64px 0; }
  .advantages .section-title { margin-bottom: 32px; }
  .adv-grid { grid-template-columns: 1fr 1fr; grid-auto-rows: auto; }
  .adv-card--img { min-height: 214px; }
  .a-t1 { grid-column: auto; }
  .a-dark { grid-column: 1 / -1; }

  /* футер */
  .footer-services { flex-wrap: wrap; gap: 32px; }
  .fs-col { flex: 1 1 45%; min-width: 240px; }
  .footer-contacts { flex-wrap: wrap; gap: 24px 32px; }
  .footer-contacts > * { flex: 1 1 40%; min-width: 220px; }

  /* сторінки робіт */
  .works-grid { grid-template-columns: 1fr 1fr; }
  .works-cta-link { margin-left: 0; }
  .wsingle-lead { margin-left: 0; max-width: none; }

  /* сторінки новин */
  .news-head { padding-top: 48px; }
  .article-body { margin-left: 0; max-width: none; }

  /* контакти: форма під інфо */
  .contacts-grid { grid-template-columns: 1fr; gap: 40px; }
  .contacts-form { max-width: 504px; }
  .wgallery { padding: 48px 0; }
  .wgallery-inner { flex-direction: column; align-items: center; gap: 24px; }
  .wgallery-main { flex-basis: auto; width: 100%; max-width: 581px; }
  .wgallery-nav {
    flex-basis: auto;
    width: 100%;
    max-width: 581px;
    flex-direction: row;
    align-items: center;
  }
  .wgallery-thumbs { flex-direction: row; }
  .wgallery-thumb img { height: 100px; }
}

@media (max-width: 640px) {
  :root { --container-pad: 32px; }    /* лівий відступ моб. макета = 32px */
  .section { padding: 48px 0; }

  .brand-logo { height: 56px; }
  .promo-inner p { font-size: 16px; }

  /* hero: БЕЗ фото — лише текст на світлому тлі (як у моб.-дизайні) */
  .hero { background: #eef3f2; }
  .hero::before { display: none; }
  .hero-inner { padding: 32px var(--container-pad) 48px; min-height: 0; }
  .hero-content { max-width: 100%; }
  .hero .hero-play { display: none; }  /* скопом .hero-play — сховає й .vcard-play (спільний клас) */

  /* інтро: без водяного знака (як у моб. макеті) */
  .intro { padding: 48px 0; }
  .intro-decor { display: none; }

  /* послуги: 1 колонка */
  /* 26px: найдовше слово «МІКРОПРОТЕЗУВАННЯ» = 12.53em Ermilov → 326px ≤ 337px (401px − 2×32 падінг) */
  .section-title { font-size: 26px; }
  .methods .section-title { font-size: 26px; }
  .services { padding-bottom: 48px; }
  .services-grid { grid-template-columns: 1fr; gap: 16px; }
  .services-more { margin-top: 32px; }
  .scard--plain .scard-text { max-width: none; }

  /* переваги: 1 колонка */
  .advantages { padding: 48px 0; }
  .adv-grid { grid-template-columns: 1fr; gap: 16px; }
  .a-dark { grid-column: auto; }

  /* сторінки робіт: 1 колонка */
  .works-title { font-size: 28px; }
  .works-grid { grid-template-columns: 1fr; gap: 16px; }
  .works-cta-link span { font-size: 20px; }

  /* 404 на мобільному */
  .notfound { padding: 64px 0 80px; }
  .notfound-code { font-size: 88px; gap: 8px; }
  .notfound-code img { width: 74px; height: 72px; }
  .notfound-actions { flex-direction: column; align-items: stretch; }

  /* сторінки новин: 1 колонка */
  .article-title { font-size: 28px; }
  .article-subtitle { font-size: 20px; }
  .article-split { grid-template-columns: 1fr; gap: 24px; }
  .article-duo { grid-template-columns: 1fr; gap: 16px; }
  /* тіло статті (контент редактора) на мобільному */
  .article-body h2 { font-size: 22px; }
  .article-body h3 { font-size: 19px; }
  .article-body :is(h2, h3, h4, h5, h6) { margin-top: 32px; }
  .article-body figure.wp-block-image.alignleft,
  .article-body figure.wp-block-image.alignright { float: none; max-width: 100%; margin: 20px 0 0; }
  .article-body blockquote { font-size: 18px; }
  /* широка таблиця — горизонтальний скрол, а не переповнення сторінки */
  .article-body .wp-block-table { overflow-x: auto; }
  .article-body .wp-block-table table { min-width: 480px; }

  /* попап-форма запису: знову bottom-sheet на мобільному */
  .modal--center { align-items: flex-end; }
  .modal--center .modal-panel { border-radius: 20px 20px 0 0; transform: translateY(100%); opacity: 1; }
  .modal--center.is-open .modal-panel { transform: none; }

  /* ціни: мобільний — таблиця послуги компактна, акордеон трохи просторіший */
  .faq-question, .prices-acc .faq-question { font-size: 18px; padding: 16px 20px; }
  .price-name { flex: 1 1 auto; padding-right: 16px; }   /* назва по контенту */
  .price-val { flex: 0 0 auto; }
  .price-name, .price-val { font-size: 14px; }
  .prices-acc .price-row { padding: 16px 20px; }         /* акордеон під пігулку, airy */
  .prices-acc .price-name, .prices-acc .price-val { font-size: 15px; }

  /* контакти: 1 колонка */
  .ci-top { grid-template-columns: 1fr; gap: 32px; }
  .ci-contact { flex-direction: column; gap: 24px; }
  .ci-freebox { flex-basis: auto; }
  .ci-offers { margin-top: 32px; }
  .contacts-form { padding: 24px; }
  .cf-row { flex-direction: column; gap: 0; }
  .map-embed { aspect-ratio: 3 / 4; }

  /* керівництво: фото зверху на всю ширину */
  .team { padding: 48px 0; }
  .team-card,
  .team-card--reverse { flex-direction: column; }
  .team-card--reverse .team-info { order: 1; }
  .team-photo { flex-basis: auto; width: 100%; height: 280px; }
  .team-info { padding: 24px; }
  .team-card--reverse .team-info { padding: 24px; }

  /* сторінка Імплантація: мобільний */
  .phero-inner { padding-top: 32px; padding-bottom: 32px; }
  .phero-title { font-size: 26px; }
  .phero-actions { flex-direction: column; align-items: stretch; margin-top: 32px; }
  .phero-media { max-width: 100%; }
  .phero-tooth { width: 300px; height: auto; }
  .phero-mimi { left: 40px; top: 80px; }
  .phero-mimi b { font-size: 36px; }
  .phero-mimi span { font-size: 14px; }
  .phero-medals img { width: 48px; height: 48px; }
  .imp-intro { padding: 24px 0 48px; }
  .why-grid { grid-template-columns: 1fr; }
  .why { padding: 48px 0; }
  .ba { padding: 48px 0; }
  .consult-inner { flex-direction: column; }
  .steps-title { font-size: 36px; }
  .steps--stacked .steps-title { font-size: 26px; }
  .steps--stacked .steps-foot { padding-left: 0; }
  .steps-grid { gap: 32px; }
  .prices-cta, .fit-cta { flex-direction: column; align-items: flex-start; }
  .gallery-track { margin-left: 0; }
  .gallery-track img { width: 280px; height: 187px; }
  .mini-awards-head h2 { font-size: 36px; }
  .mini-awards-row { gap: 16px; padding: 24px; }
  .mini-awards-row .medal { flex-basis: 100px; width: 100px; height: 100px; }

  /* сторінка Лікаря */
  .counters-grid { flex-direction: column; gap: 32px; }
  .counter-num { width: 96px; height: 96px; font-size: 32px; }
  .dhero-odc { flex-direction: column; align-items: flex-start; gap: 16px; font-size: 15px; }
  .appeal-video figcaption { padding: 24px; }
  .achieve-cta { flex-direction: column; align-items: flex-start; padding: 8px 0; }
  .certs-track img { height: 180px; }
  .certs-track--tall img { height: 280px; }

  /* новини: 1 колонка */
  .news { padding: 48px 0; }
  .news-grid { grid-template-columns: 1fr; }

  /* відгуки: 1 колонка */
  .reviews { padding: 48px 0; }
  .reviews-grid { grid-template-columns: 1fr; }
  .reviews-actions { flex-direction: column; align-items: center; }

  /* клініка: компактніше */
  .clinic-inner { padding: 48px 0; }
  .clinic-title { font-size: 48px; }
  .clinic-subtitle { font-size: 24px; }
  .clinic-text { font-size: 16px; }
  .b1, .b2, .b3, .b4 { width: 148px; height: 148px; }
  .bubble-stat b { font-size: 24px; }

  /* карусель MIMI: без вильоту, нативний свайп */
  .mimi { padding: 48px 0; }
  .mimi-title { font-size: 36px; }
  .mimi-track { margin-right: 0; }
  .mimi-card { flex-basis: 248px; height: 304px; }
  .mimi-num { font-size: 72px; }

  .footer-services { flex-direction: column; }
  .fs-col { max-width: none; }
  .footer-contacts { flex-direction: column; }
  .footer-contacts > * { min-width: 0; }
  .footer-bottom { flex-direction: column; align-items: flex-start; gap: 16px; }
}

@media (max-width: 400px) {
  :root { --container-pad: 24px; }
  /* 24px: «МІКРОПРОТЕЗУВАННЯ» 301px ≤ 312px (360px − 2×24) — вузькі Android */
  .section-title,
  .methods .section-title,
  .steps--stacked .steps-title,
  .phero-title { font-size: 24px; }
  .brand-logo { height: 48px; }
  .hero-title { font-size: 40px; }
}
