/* ==========================================================================
   PERF-fix 2026-07-03: Inter self-hosted (variable font, weights 500-800).
   Раньше грузились через fonts.googleapis.com → +2 preconnect +1 CSS request.
   Теперь: локальные woff2, subsetted (latin + cyrillic), font-display: swap.
   ========================================================================== */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500 800;
  font-display: swap;
  src: url('/bitrix/templates/azbn7theme/fonts/inter-cyrillic.woff2') format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500 800;
  font-display: swap;
  src: url('/bitrix/templates/azbn7theme/fonts/inter-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ==========================================================================
   Design tokens (Stage 3, 2026-04-27): единый источник цветов/размеров.
   Применять в новых правилах через var(--token). Существующие правила оставлены
   с буквальными значениями для обратной совместимости.
   ========================================================================== */
:root {
  /* Палитра */   /* корпоративный синий (бренд) */   /* тёмный акцент */   /* основной текст */   /* вторичный/muted текст (AAA контраст на белом) */   /* тонкие линии и рамки */   /* фон карточек и секций */

  /* Типографика */

  /* Геометрия */      /* отступ между секциями */
}

/* ==========================================================================
   DIXION REDESIGN 2026
   Container: 1224px | Mobile padding: 16px
   Border-radius: pik.ru style (8-12px elements, pill buttons)
   ========================================================================== */

/* --- ШРИФТ: Inter подключён через <link> в header.php для скорости --- */
/* --- ОПТИМИЗАЦИЯ: скрываем ненужные на главной элементы до загрузки --- */

h1, h2, h3, h4,
.header-block__heading,
.header-block__heading a,
.header-page__heading,
.navbar__brand,
.btn-nav__heading {
  font-family: 'Inter', sans-serif !important;
  letter-spacing: -0.02em !important;
  font-weight: 600 !important;
}

/* ==========================================================================
   HERO SEARCH BLOCK (замена слайдера)
   ========================================================================== */
.hero-search {
  padding-top: 144px;
  padding-bottom: 144px;
  text-align: center;
}

.hero-search__container {
  max-width: 860px !important;
}

.hero-search__title {
  font-family: 'Inter', sans-serif !important;
  font-size: 80px !important;
  line-height: 86px !important;
  font-weight: 600 !important;
  letter-spacing: -0.03em !important;
  color: #29497a !important;
  margin: 0 0 20px !important;
  text-transform: none !important;
}

.hero-search__subtitle {
  font-size: 24px;
  line-height: 34px;
  font-weight: 400;
  color: #5a6a7a;
  margin: 0 auto 48px;
  max-width: 700px;
  text-align: center;
}

.hero-search__form {
  max-width: 940px;
  margin: 0 auto;
  position: relative;
}

.hero-search__input-wrap {
  display: flex;
  align-items: center;
  gap: 0;
  position: relative;
}

.hero-search__input-wrap {
  position: relative !important;
}

.hero-search__icon {
  display: none !important;
}

.hero-search__input {
  width: 100%;
  border: 1px solid transparent !important;
  border-radius: 56px !important;
  outline: none !important;
  font-size: 16px !important;
  line-height: 20px;
  font-family: "Inter", sans-serif;
  height: 62px !important;
  padding: 0 100px 0 28px !important;
  background: #F6F7F9 !important;
  color: #1a1a1a;
  box-shadow: none !important;
  transition: background 0.2s ease, border-color 0.2s ease;
  box-sizing: border-box !important;
}

.hero-search__input::placeholder {
  color: #838589 !important;
}

.hero-search__input:focus {
  background: #fff !important;
  border-color: #e0e0e0 !important;
  box-shadow: none !important;
}

/* Когда dropdown открыт — единая карточка */
.hero-search__input-box.has-dropdown .hero-search__input {
  border-radius: 28px 28px 0 0 !important;
  background: #fff !important;
  box-shadow: none !important;
  border: 1px solid #e0e0e0 !important;
  border-bottom: none !important;
}

/* placeholder color moved to input block above */

/* Кнопка рядом с инпутом справа */
.hero-search__btn {
  position: absolute !important;
  right: 8px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 48px !important;
  height: 48px !important;
  border-radius: 50% !important;
  background: #29497a !important;
  color: #fff !important;
  border: none !important;
  padding: 0 !important;
  font-size: 0 !important;
  cursor: pointer;
  transition: background 0.2s ease;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  z-index: 2 !important;
}

/* Стрелка > внутри кнопки */
.hero-search__btn::after {
  content: "" !important;
  display: block !important;
  width: 10px !important;
  height: 10px !important;
  border-right: 2.5px solid #fff !important;
  border-bottom: 2.5px solid #fff !important;
  transform: rotate(-45deg) !important;
  margin-left: -3px !important;
}

.hero-search__btn:hover {
  background: #1e3456 !important;
}

/* Mobile */
@media (max-width: 767px) {
  .hero-search {
    padding-top: 96px;
    padding-bottom: 96px;
  }

  .hero-search__title {
    font-size: 40px !important;
    line-height: 46px !important;
    text-align: center !important;
  }

  .hero-search__subtitle {
    font-size: 20px;
    line-height: 28px;
    margin-bottom: 32px;
    text-align: center !important;
  }

  .hero-search__input-wrap {
    flex-direction: row;
    gap: 0;
    position: relative !important;
  }

  .hero-search__input-box {
    width: 100%;
  }

  .hero-search__icon {
    display: none;
  }

  .hero-search__input {
    width: 100%;
    height: 62px !important;
    padding: 0 70px 0 20px !important;
    font-size: 16px !important;
    border-radius: 56px !important;
  }

  .hero-search__input-box.has-dropdown .hero-search__input {
    border-radius: 20px 20px 0 0 !important;
    background: #fff !important;
    border: 1px solid #e0e0e0 !important;
    border-bottom: none !important;
  }

  .hero-search__btn {
    position: absolute !important;
    right: 7px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    width: 48px !important;
    height: 48px !important;
    margin-top: 0 !important;
    border-radius: 50% !important;
  }

  .search-dropdown {
    border-radius: 0 0 20px 20px;
  }
}

/* --- Убираем фиксированный виджет справа --- */
.btn-fix__panel {
  display: none !important;
}

/* --- Убираем мобильный поиск в шапке --- */
.search__panel {
  display: none !important;
}

/* ==========================================================================
   SMART SEARCH DROPDOWN
   ========================================================================== */
.hero-search__input-box {
  flex: 1;
  min-width: 0;
  position: relative;
}

.hero-search__input-wrap {
  position: relative !important;
}

.search-dropdown {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: #fff;
  border: 1px solid #e0e0e0;
  border-top: none;
  border-radius: 0 0 28px 28px;
  box-shadow: none;
  z-index: 100;
  max-height: 420px;
  overflow-y: auto;
  padding: 8px 0 16px;
}

.search-dropdown.is-open {
  display: block;
}

.search-dropdown__label {
  padding: 10px 16px 4px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: #9ca3af;
  font-family: 'Inter', sans-serif;
  text-align: left !important;
}

.search-dropdown {
  text-align: left !important;
}

.search-dropdown__item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 16px;
  text-decoration: none !important;
  color: #1a1a1a !important;
  transition: background 0.15s ease;
}

.search-dropdown__item:hover {
  background: #f5f7fa;
  text-decoration: none !important;
}

.search-dropdown__icon {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f0f4f8;
  border-radius: 8px;
}

.search-dropdown__text {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.search-dropdown__name {
  font-size: 15px;
  font-weight: 500;
  font-family: 'Inter', sans-serif;
  line-height: 1.3;
}

.search-dropdown__name mark {
  background: rgba(41, 73, 122, 0.12);
  color: #29497a;
  border-radius: 2px;
  padding: 0 1px;
}

.search-dropdown__sub {
  font-size: 13px;
  color: #6b7280;
  line-height: 1.3;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.search-dropdown__empty {
  padding: 20px 16px;
  text-align: center;
  color: #9ca3af;
  font-size: 14px;
  font-family: 'Inter', sans-serif;
}

/* --- CONTAINER: 1224px --- */
.container {
  max-width: 1224px !important;
  width: 100% !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

@media (max-width: 767px) {
  .container {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}

/* ==========================================================================
   BORDER-RADIUS: PIK.RU STYLE
   8px — мелкие элементы (карточки, превью, изображения)
   12px — средние элементы (панели, блоки контента)
   16px — крупные элементы (модалки, большие карточки)
   32px — кнопки (pill)
   ========================================================================== */

/* --- Кнопки: pill (32px) --- */
.btn-line,
.btn-site.btn-line,
button[type="submit"] {
  border-radius: 32px !important;
}

/* Кнопка записи на приём (круглая → pill) */
.specialists-item__appointment {
  border-radius: 32px !important;
}

/* Быстрая навигация — карточки */
.btn-nav__card {
  border-radius: 12px !important;
}

/* Фиксированная боковая панель */
.btn-fix__panel {
  border-radius: 16px 0 0 16px !important;
}

.btn-fix__card {
  border-radius: 12px !important;
}

/* --- Карусель / Баннер --- */
.banner__carousel {
  border-radius: 12px !important;
  overflow: hidden !important;
}

/* --- Карточки специалистов: legacy alias под owl init, скругление переопределяется новой карточкой --- */
.specialists-item__item {
  border-radius: 16px !important;
  overflow: hidden;
}

.specialists-item__item.is--children {
  border-radius: 16px !important;
}

/* ==========================================================================
   SLIDER NAV: pik.ru style
   Кнопки < > в правом верхнем углу, без dots
   ========================================================================== */

/* Заголовки — не CAPS, обычный регистр */

.index-block .header-block__heading,
.index-block .header-block__heading a {
  text-transform: none !important;
}

/* Заголовок блока — flex строка с nav-кнопками (nav перемещается JS-ом) */
.index-block .page-header-block {
  display: flex !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
}

.index-block .page-header-block {
  margin-bottom: 32px !important;
}

.index-block .page-header-block .header-block__heading {
  flex: 1 !important;
  margin-bottom: 0 !important;
  min-width: 0 !important;
}

.index-block .page-header-block .header-block__heading a {
  white-space: nowrap !important;
}

/* Скрываем dots */
.index-block .owl-dots {
  display: none !important;
}

/* Nav-контейнер — в строке с заголовком (flex item) */
.index-block .page-header-block > .owl-nav {
  position: static !important;
  display: flex !important;
  gap: 8px !important;
  flex-shrink: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* Кнопки prev/next — аккуратные кружки (div и button) */
.index-block .owl-nav .owl-prev,
.index-block .owl-nav .owl-next {
  width: 48px !important;
  height: 48px !important;
  border-radius: 50% !important;
  border: none !important;
  background: #F6F7F9 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  margin: 0 !important;
  cursor: pointer !important;
  transition: all 0.2s ease !important;
  font-size: 0 !important;
  line-height: 0 !important;
  color: transparent !important;
  position: relative !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

.index-block .owl-nav .owl-prev:hover,
.index-block .owl-nav .owl-next:hover {
  background: #EDEEF0 !important;
}

/* Скрываем всё содержимое кнопок (SVG, текст) */
.index-block .owl-nav .owl-prev *,
.index-block .owl-nav .owl-next * {
  display: none !important;
}

/* Стрелки через pseudo-элементы */
.index-block .owl-nav .owl-prev::after,
.index-block .owl-nav .owl-next::after {
  content: '' !important;
  display: block !important;
  width: 9px !important;
  height: 9px !important;
  border-right: 2px solid #838589 !important;
  border-bottom: 2px solid #838589 !important;
  position: absolute !important;
}

.index-block .owl-nav .owl-prev::after {
  transform: rotate(135deg) !important;
  margin-left: 3px !important;
}

.index-block .owl-nav .owl-next::after {
  transform: rotate(-45deg) !important;
  margin-right: 3px !important;
}

/* Disabled state */
.index-block .owl-nav .owl-prev.disabled,
.index-block .owl-nav .owl-next.disabled {
  opacity: 0.35 !important;
  cursor: default !important;
}

@media (max-width: 767px) {
  .index-block .owl-nav {
    display: none !important;
  }
}

/* ==========================================================================
   CARD HOVER: белая кнопка со стрелкой → в правом нижнем углу
   Заменяет лупу на карточках новостей и специалистов
   ========================================================================== */

/* Скрываем оригинальную SVG-иконку (лупа) */
.specialists-item__more .icon-svg,
.specialists-item__more svg,
.news-item__more .icon-svg,
.news-item__more svg {
  display: none !important;
}

/* Общий стиль hover-кнопки */
.specialists-item__more,
.news-item__more {
  width: 48px !important;
  height: 48px !important;
  border-radius: 50% !important;
  background: #fff !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  bottom: 16px !important;
  right: 16px !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12) !important;
  transition: all 0.25s ease !important;
}

/* Стрелка → через pseudo-элемент */
.specialists-item__more::after,
.news-item__more::after {
  content: '→';
  font-size: 20px;
  color: #1a1a1a;
  font-weight: 400;
  line-height: 1;
}

/* Hover на карточке — показываем кнопку */
.specialists-item__item:hover .specialists-item__more,
.news-item__item:hover .news-item__more {
  opacity: 1 !important;
  transform: scale(1) !important;
}

/* Hover на самой кнопке */
.specialists-item__more:hover,
.news-item__more:hover {
  transform: scale(1.08) !important;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.16) !important;
}

/* --- Карточки новостей --- */
.news-item__item {
  border-radius: 8px !important;
  overflow: hidden;
}

.news-item__inner {
  border-radius: 8px !important;
}

.news-item__item img {
  border-radius: 8px 8px 0 0 !important;
}

/* --- Направления --- */

/* --- Модальные окна --- */
.modal-content,
.modal-base__content {
  border-radius: 16px !important;
}

/* --- Формы --- */
.form-site input[type="text"],
.form-site input[type="tel"],
.form-site input[type="email"],
.form-site input[type="number"],
.form-site select,
.form-site textarea {
  border-radius: 8px !important;
}

/* --- Cookie alert --- */

/* --- Карточки на страницах каталогов --- */
.specialists-catlist__item {
  border-radius: 8px !important;
  overflow: hidden;
}

/* --- Прайс-лист --- */
.price-list-block__line-item a {
  border-radius: 8px !important;
}

/* --- Галерея / Фото --- */
.lightgallery img {
  border-radius: 8px !important;
}

/* --- Поиск --- */
.search input[type="text"] {
  border-radius: 32px !important;
}

/* --- Табы --- */

/* --- Выпадающие меню --- */
.dropdown-menu {
  border-radius: 12px !important;
}

/* ==========================================================================
   NAVBAR: jivo.ru style
   Font 16px, no uppercase, hover = color change only (no left stripe)
   ========================================================================== */

/* Размер шрифта и убираем uppercase */
.navbar__nav {
  font-size: 16px !important;
  line-height: 24px !important;
}

.navbar__nav-link {
  text-transform: none !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  color: #29497a !important;
  transition: color 0.2s ease !important;
}

/* Убираем полоску слева (::after) */
.navbar__nav-link::after {
  display: none !important;
}

/* Hover — просто смена цвета */
.navbar__nav-link:hover {
  color: #2f80cc !important;
}

/* Активный пункт — без полоски, без bold */
.navbar__nav-item.is--active .navbar__nav-link,
.navbar__nav-item.open .navbar__nav-link {
  color: #29497a !important;
  font-weight: 500 !important;
}

.navbar__nav-item.is--active .navbar__nav-link::after,
.navbar__nav-item.open .navbar__nav-link::after {
  display: none !important;
}

/* Dropdown toggle — тот же стиль */
.dropdown-toggle.navbar__nav-link {
  text-transform: none !important;
  font-size: 16px !important;
}

/* ==========================================================================
   NAVBAR DROPDOWN: шеврон + hover open (jivo.ru style)
   ========================================================================== */

/* Шеврон ∨ справа от текста */
@media (min-width: 1025px) {
  .navbar__nav-item.dropdown > .navbar__nav-link::after {
    display: inline-block !important;
    content: '' !important;
    width: 6px !important;
    height: 6px !important;
    border: none !important;
    border-right: 1.5px solid currentColor !important;
    border-bottom: 1.5px solid currentColor !important;
    transform: rotate(45deg) !important;
    margin-left: 7px !important;
    margin-bottom: 3px !important;
    position: relative !important;
    top: 0 !important;
    left: 0 !important;
    background: none !important;
    transition: transform 0.2s ease !important;
    transform-origin: center center !important;
  }

  /* Шеврон поворачивается вверх при наведении / открытии */
  .navbar__nav-item.dropdown:hover > .navbar__nav-link::after,
  .navbar__nav-item.dropdown.open > .navbar__nav-link::after {
    transform: rotate(-135deg) !important;
    margin-bottom: 0 !important;
  }

  /* Dropdown открывается по hover */
  .navbar__nav-item.dropdown:hover > .navbar__nav-dropdown-menu {
    max-height: 500px !important;
    padding: 4vw !important;
  }

  /* Цвет ссылки при наведении на пункт с dropdown */
  .navbar__nav-item.dropdown:hover > .navbar__nav-link {
    color: #2f80cc !important;
  }
}

/* ==========================================================================
   NAVBAR: скрыть блок телефона/адреса, отступ лого→меню 52px
   ========================================================================== */
@media (min-width: 1025px) {
  .navbar__tel-cols {
    display: none !important;
  }

  .navbar__nav-cols {
    margin-left: 52px !important;
  }
}

/* ==========================================================================
   NAVBAR ACTIONS: кнопка CTA + ссылка «Для слабовидящих»
   ========================================================================== */

/* Скрываем старый круглый виджет (если остался) */

@media (min-width: 1025px) {
  .navbar__actions-cols {
    display: flex !important;
    align-items: center !important;
    gap: 32px !important;
    margin-left: auto !important;
    flex-shrink: 0 !important;
  }

  /* Кнопка «Записаться онлайн» */
  .navbar__cta-btn {
    display: inline-flex !important;
    align-items: center !important;
    padding: 10px 24px !important;
    background: #29497a !important;
    color: #fff !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    font-family: 'Inter', sans-serif !important;
    border-radius: 32px !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    transition: background 0.2s ease !important;
  }

  .navbar__cta-btn:hover {
    background: #1e3456 !important;
    color: #fff !important;
    text-decoration: none !important;
  }

  /* Ссылка «Для слабовидящих» — текст + иконка */
  .navbar__special-link {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    font-family: 'Inter', sans-serif !important;
    color: #29497a !important;
    text-decoration: none !important;
    white-space: nowrap !important;
    transition: color 0.2s ease !important;
  }

  .navbar__special-link svg {
    flex-shrink: 0;
  }

  .navbar__special-link:hover {
    color: #2f80cc !important;
    text-decoration: none !important;
  }
}



/* Fix: navbar actions-cols — auto width, не 100% */
@media (min-width: 1025px) {
  .navbar__collapse-row .navbar__actions-cols {
    width: auto !important;
    margin-bottom: 0 !important;
    flex-shrink: 0 !important;
  }
}

/* ==========================================================================
   NAVBAR: frosted glass background (jivo.ru style)
   ========================================================================== */
.navbar-site {
  background: rgba(255, 255, 255, 0.82) !important;
  -webkit-backdrop-filter: blur(16px) !important;
  backdrop-filter: blur(16px) !important;
}

/* ==========================================================================
   NAVBAR LOGO: единый размер во всех браузерах
   ========================================================================== */
.navbar__brand ._logo {
  display: block !important;
  width: 147px !important;
  max-width: 147px !important;
  height: 42px !important;
  color: #29497a !important;
}

.navbar__brand ._logo .icon-svg,
.navbar__brand ._logo svg {
  display: block !important;
  width: 147px !important;
  height: 42px !important;
  font-size: inherit !important;
}

@media (max-width: 1024px) {
  .navbar__brand ._logo,
  .navbar__brand ._logo .icon-svg,
  .navbar__brand ._logo svg {
    width: 147px !important;
    max-width: 147px !important;
    height: 42px !important;
  }
}

/* ==========================================================================
   NAVBAR: фиксированные отступы 24px сверху/снизу (только десктоп)
   ========================================================================== */
@media (min-width: 1200px) {
  .navbar-site {
    padding-top: 24px !important;
    padding-bottom: 24px !important;
  }

  .navbar-site .navbar__container,
  .navbar-site .navbar__row,
  .navbar-site .navbar__collapse,
  .navbar-site .navbar__collapse-inner,
  .navbar-site .navbar__collapse-row {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}

/* ==========================================================================
   NAVBAR LAYOUT: flexbox, лого+меню слева, кнопки справа
   ========================================================================== */
@media (min-width: 1200px) {
  /* Контейнер навбара — полный flex */
  .navbar-site .navbar__row {
    display: flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
  }

  /* Лого — auto ширина */
  .navbar-site .navbar__col-header {
    width: auto !important;
    flex-shrink: 0 !important;
  }

  /* Collapse — flex, занимает остаток */
  .navbar-site .navbar__col-collapse {
    width: auto !important;
    flex: 1 !important;
    min-width: 0 !important;
  }

  /* Внутренний ряд collapse — flex в линию */
  .navbar-site .navbar__collapse-row {
    display: flex !important;
    align-items: center !important;
    flex-wrap: nowrap !important;
  }

  /* Меню — слева, gap 52px от лого */
  .navbar-site .navbar__nav-cols {
    margin-left: 52px !important;
    width: auto !important;
    flex-shrink: 0 !important;
    margin-bottom: 0 !important;
  }

  /* Кнопки — справа */
  .navbar-site .navbar__actions-cols {
    margin-left: auto !important;
    width: auto !important;
    margin-bottom: 0 !important;
  }

  /* Убираем margin-bottom у всех .cols внутри collapse-row */
  .navbar-site .navbar__collapse-row > .cols {
    margin-bottom: 0 !important;
  }
}

/* ==========================================================================
   MOBILE MENU: jivo.ru style
   ========================================================================== */
@media (max-width: 1199px) {

  /* --- Шапка: 24px по бокам --- */
  .navbar-site {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }

  .navbar-site .navbar__container {
    padding-top: 18px !important;
    padding-bottom: 18px !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
  }

  /* Логотип слева, бургер справа */
  .navbar__row-header {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
  }

  .navbar__col-brand {
    order: 1 !important;
    flex: 1 !important;
  }

  .navbar__col-hamburger {
    order: 2 !important;
    justify-content: flex-end !important;
  }

  /* Бургер: 30px */
  .navbar__hamburger-btn {
    width: 42px !important;
    height: 42px !important;
    padding: 6px !important;
    box-sizing: border-box !important;
  }

  .hamburger-box {
    width: 30px !important;
    height: 20px !important;
  }

  .hamburger-inner,
  .hamburger-inner::before,
  .hamburger-inner::after {
    width: 30px !important;
    height: 2px !important;
  }

  /* Скрыть иконку глаза из шапки */
  .navbar__col-phone {
    display: none !important;
  }

  /* Убираем все тени с шапки и меню */
  .navbar-site,
  .navbar-site.scroll,
  .navbar__collapse,
  .navbar__collapse-inner {
    box-shadow: none !important;
    -webkit-box-shadow: none !important;
  }

  .top-shadow:before,
  .fecss.top-shadow:before,
  .navbar-site:before,
  .navbar-site:after {
    display: none !important;
    box-shadow: none !important;
  }

  /* Убираем тёмный оверлей при открытии меню */
  html.is--open-navbar body::before {
    display: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
  }

  /* --- Меню: выезжает СПРАВА, без тени --- */
  .navbar__collapse {
    top: 82px !important;
    height: calc(100vh - 82px) !important;
    width: 100% !important;
    left: auto !important;
    right: -100% !important;
    background: #fff !important;
    z-index: 1000 !important;
    overflow: visible !important;
    opacity: 1 !important;
    visibility: visible !important;
    transition: right 0.35s ease !important;
    box-shadow: none !important;
    -webkit-box-shadow: none !important;
    border-top: none !important;
    border: none !important;
  }

  .navbar__collapse.is--open {
    left: auto !important;
    right: 0 !important;
    opacity: 1 !important;
    visibility: visible !important;
  }



  /* Позиция: ровно под border-bottom шапки */
  .navbar-site .navbar__col-collapse {
    position: static !important;
  }

  .navbar__collapse-inner {
    padding: 0 !important;
    box-sizing: border-box !important;
    overflow: visible !important;
    background: transparent !important;
  }

  .navbar__collapse-row {
    padding: 0 !important;
    margin: 0 !important;
  }

  .navbar__collapse-row > .cols {
    margin-bottom: 0 !important;
  }

  .navbar__collapse-row > .navbar__nav-cols {
    padding: 0 !important;
  }

  /* Скрыть телефон и адрес */
  .navbar__tel-cols {
    display: none !important;
  }

  /* --- Пункты меню: 16px по бокам, 28px между, без разделителей --- */
  .navbar__nav {
    font-size: 20px !important;
    line-height: 28px !important;
    padding: 0 !important;
  }

  .navbar__nav-item {
    margin-bottom: 0 !important;
  }

  .navbar__nav-link {
    font-size: 20px !important;
    font-weight: 500 !important;
    color: #29497a !important;
    padding: 14px 16px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    text-transform: none !important;
    border-bottom: none !important;
    font-family: 'Inter', sans-serif !important;
    text-decoration: none !important;
  }

  .navbar__nav-item.is--active .navbar__nav-link {
    color: #29497a !important;
  }

  /* Dropdown-пункты (О нас, Услуги) — тот же размер */
  .dropdown-toggle.navbar__nav-link,
  .navbar__nav-item.dropdown > .navbar__nav-link {
    font-size: 20px !important;
    font-weight: 500 !important;
    color: #29497a !important;
  }

  /* Убираем старый ::after */
  .navbar__nav-link::after {
    display: none !important;
  }

  /* Шеврон для dropdown-пунктов (О нас, Услуги) */
  .navbar__nav-item.dropdown > .navbar__nav-link::after {
    display: inline-block !important;
    content: '' !important;
    width: 8px !important;
    height: 8px !important;
    border: none !important;
    border-right: 1.5px solid #29497a !important;
    border-bottom: 1.5px solid #29497a !important;
    transform: rotate(45deg) !important;
    flex-shrink: 0 !important;
    margin-left: auto !important;
    position: static !important;
    background: none !important;
    transition: transform 0.2s ease !important;
    transform-origin: center center !important;
  }

  /* Шеврон поворачивается вверх при открытии */
  .navbar__nav-item.dropdown.open > .navbar__nav-link::after {
    transform: rotate(-135deg) !important;
  }

  /* Nav cols — полная ширина */
  .navbar__nav-cols {
    margin-left: 0 !important;
    width: 100% !important;
  }

  /* --- Кнопки снизу: 24px по бокам --- */
  .navbar__actions-cols {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 16px !important;
    padding: 32px 24px 0 24px !important;
    width: 100% !important;
    margin-bottom: 0 !important;
    box-sizing: border-box !important;
  }

  .navbar__cta-btn {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    padding: 0 28px !important;
    height: 52px !important;
    background: #29497a !important;
    color: #fff !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    font-family: "Inter", sans-serif !important;
    border-radius: 32px !important;
    text-decoration: none !important;
  }

  .navbar__special-link {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    font-size: 14px !important;
    font-family: "Inter", sans-serif !important;
    color: #29497a !important;
    text-decoration: none !important;
    width: auto !important;
    height: auto !important;
  }

  .navbar__special-link span {
    display: inline !important;
  }
}

/* Скрыть блок быстрой навигации на мобайле */
@media (max-width: 767px) {
  .btn-nav__panel {
    display: none !important;
  }
}

/* br только на мобайле */
.mobile-br {
  display: none;
}
@media (max-width: 767px) {
  .mobile-br {
    display: block;
  }
}


/* ==========================================================================
   STORIES BLOCK: pik.ru style
   ========================================================================== */

/* --- Tour (clinics) cards --- */

/* --- Section wrapper: same as .index-block --- */
.stories-section {
  padding: 0;
}



/* --- Header: same as .index-block .page-header-block --- */
.stories-header {
  display: flex !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
  margin-bottom: 32px !important;
}

.stories-header__title {
  font-family: 'Inter', sans-serif !important;
  font-size: calc((100vw - 320px) / (1680 - 320) * (50 - 26) + 26px) !important;
  line-height: calc((100vw - 320px) / (1680 - 320) * (50 - 26) + 26px) !important;
  font-weight: 600 !important;
  color: #29497a !important;
  letter-spacing: -0.02em !important;
  text-transform: none !important;
  margin: 0 !important;
  flex: 1 !important;
  min-width: 0 !important;
}

/* --- Nav buttons: same as .index-block .owl-nav --- */
.stories-header__nav {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
}

.stories-header__btn {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: none;
  background: #F6F7F9;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  cursor: pointer;
  transition: all 0.2s ease;
  box-sizing: border-box;
  position: relative;
  overflow: hidden;
  font-size: 0;
  line-height: 0;
  color: transparent;
}

/* Скрываем SVG внутри кнопок */
.stories-header__btn svg {
  display: none;
}

/* Стрелки через pseudo — идентично owl-nav */
.stories-header__btn::after {
  content: '';
  display: block;
  width: 9px;
  height: 9px;
  border-right: 2px solid #838589;
  border-bottom: 2px solid #838589;
  position: absolute;
}

.stories-header__btn--prev::after {
  transform: rotate(135deg);
  margin-left: 3px;
}

.stories-header__btn--next::after {
  transform: rotate(-45deg);
  margin-right: 3px;
}

.stories-header__btn:hover {
  background: #EDEEF0;
}

.stories-header__btn.disabled {
  opacity: 0.35;
  cursor: default;
}

/* --- Horizontal strip --- */
.stories-block {
  position: relative;
}

.stories-strip {
  display: flex;
  gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scroll-behavior: smooth;
  padding: 4px 0;
  scrollbar-width: none;
}

.stories-strip::-webkit-scrollbar {
  display: none;
}

/* --- Story card: 230x230 square --- */
.stories-card {
  flex-shrink: 0;
  cursor: pointer;
}

.stories-card__cover {
  width: 100%;
  aspect-ratio: 1 / 1;
  border-radius: 16px;
  background-size: cover;
  background-position: center;
  background-color: #F6F7F9;
  position: relative;
  overflow: hidden;
  transition: transform 0.2s ease;
}

/* .dx-hover-lift — плавное увеличение + смена цвета при наведении */
/* .stories-card:hover .stories-card__cover {
  transform: scale(1.03);
} */

.stories-card__placeholder {
  display: none;
}

/* Title inside card, top-left */
.stories-card__title {
  position: absolute;
  top: 16px;
  left: 16px;
  right: 16px;
  font-size: 15px;
  font-weight: 600;
  font-family: 'Inter', sans-serif;
  color: #1a1a1a;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  z-index: 2;
}

/* --- Mobile cards --- */
@media (max-width: 767px) {
  .stories-card {
    width: 100%;
  }
  .stories-card__cover {
    width: 100%;
    aspect-ratio: 1 / 1;
    border-radius: 12px;
  }
  .stories-section {
    padding: 0;
  }
  .stories-strip {
    gap: 12px;
    padding-left: 0;
    padding-right: 0;
  }
  .stories-header {
    padding: 0;
    margin-bottom: 32px;
  }

  .stories-header__nav {
    display: flex;
  }

  .stories-header__btn {
    width: 48px;
    height: 48px;
  }

  .stories-card__title {
    font-size: 13px;
    top: 12px;
    left: 12px;
    right: 12px;
  }
}

/* ==========================================================================
   STORY VIEWER: fullscreen modal
   ========================================================================== */
.story-viewer {
  position: fixed;
  inset: 0;
  z-index: 10000;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.story-viewer.is-active {
  opacity: 1;
  visibility: visible;
}

.story-viewer__overlay {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.9);
}

.story-viewer__container {
  position: relative;
  width: 100%;
  max-width: 420px;
  height: 90vh;
  max-height: 750px;
  border-radius: 16px;
  overflow: hidden;
  background: #000;
  z-index: 1;
}

.story-viewer__content {
  position: relative;
  width: 100%;
  height: 100%;
}

/* --- Progress bars --- */
.story-viewer__progress {
  position: absolute;
  top: 12px;
  left: 12px;
  right: 12px;
  display: flex;
  gap: 4px;
  z-index: 10;
}

.story-viewer__progress-bar {
  flex: 1;
  height: 3px;
  background: rgba(255, 255, 255, 0.3);
  border-radius: 2px;
  overflow: hidden;
}

.story-viewer__progress-fill {
  height: 100%;
  background: #fff;
  width: 0;
  border-radius: 2px;
}

.story-viewer__progress-bar.is-done .story-viewer__progress-fill {
  width: 100%;
}

.story-viewer__progress-bar.is-active .story-viewer__progress-fill {
  animation: storyProgress linear forwards;
  animation-duration: 5000ms;
}

@keyframes storyProgress {
  from { width: 0; }
  to { width: 100%; }
}

/* --- Header / Close --- */
.story-viewer__header {
  position: absolute;
  top: 24px;
  right: 12px;
  z-index: 10;
}

.story-viewer__close {
  width: 36px;
  height: 36px;
  background: rgba(255, 255, 255, 0.85);
  border: none;
  border-radius: 50%;
  color: #333;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(8px);
}

.story-viewer__close:hover {
  background: #fff;
}

/* --- Slide content --- */
.story-viewer__slide {
  width: 100%;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
}

.story-viewer__image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  inset: 0;
}

.story-viewer__info {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 80px 24px 32px;
  background: linear-gradient(transparent, rgba(0,0,0,0.7));
  z-index: 5;
  text-align: center;
}

.story-viewer__title {
  font-size: 22px;
  font-weight: 600;
  color: #fff;
  font-family: 'Inter', sans-serif;
  margin-bottom: 8px;
}

.story-viewer__text {
  font-size: 15px;
  color: rgba(255,255,255,0.85);
  font-family: 'Inter', sans-serif;
  margin-bottom: 16px;
}

.story-viewer__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 14px 40px;
  background: #29497a;
  color: #fff;
  border-radius: 32px;
  font-size: 15px;
  font-weight: 500;
  font-family: 'Inter', sans-serif;
  text-decoration: none;
  transition: background 0.2s ease;
}

.story-viewer__cta:hover {
  background: #1e3456;
  color: #fff;
  text-decoration: none;
}

/* --- Navigation areas (click left/right) --- */
.story-viewer__nav {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 40%;
  z-index: 8;
  cursor: pointer;
}

.story-viewer__nav--prev {
  left: 0;
}

.story-viewer__nav--next {
  right: 0;
}

/* --- Side arrows (desktop) --- */
.story-viewer__arrows {
  position: fixed;
  top: 50%;
  left: 0;
  right: 0;
  transform: translateY(-50%);
  display: flex;
  justify-content: space-between;
  pointer-events: none;
  z-index: 10001;
  padding: 0 max(calc((100vw - 420px) / 2 - 94px), 20px);
}

.story-viewer__arrow {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 1.5px solid #c0c8d0;
  background: rgba(255, 255, 255, 0.85);
  color: #333;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  pointer-events: auto;
  transition: background 0.2s ease, border-color 0.2s ease;
  backdrop-filter: blur(8px);
}

.story-viewer__arrow:hover {
  background: #fff;
  border-color: #29497a;
}

/* Desktop: hide click-on-edges nav, use arrow buttons only */
@media (min-width: 768px) {
  .story-viewer__nav {
    display: none;
  }
}

/* --- Mobile viewer --- */
@media (max-width: 767px) {
  .story-viewer__container {
    max-width: 100%;
    height: 100vh;
    max-height: 100vh;
    border-radius: 0;
  }

  .story-viewer__arrows {
    display: none;
  }
}

/* Уведомление _dn_alert */
.modal_fade {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,0.45);
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    animation: modalFadeIn 0.25s ease;
}
.modal_fade .modal-dialog {
    max-width: 420px;
    width: 90%;
}
.modal_fade .modal-content {
    background: #fff;
    border-radius: 16px;
    padding: 40px 32px 32px;
    text-align: center;
    box-shadow: 0 20px 60px rgba(0,0,0,0.2);
}
.modal_fade .modal-body {
    font-size: 17px;
    line-height: 1.5;
    color: #1a1a1a;
    margin-bottom: 24px;
}
.modal_fade .btn-close {
    display: inline-block;
    padding: 12px 36px;
    background: #29497a;
    color: #fff;
    border: none;
    border-radius: 32px;
    font-size: 15px;
    cursor: pointer;
    transition: background 0.2s;
}
.modal_fade .btn-close:hover {
    background: #1e3660;
}
@keyframes modalFadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* === Stories: обводка непросмотренных === */
.stories-card.is-unseen .stories-card__cover {
  box-shadow: inset 0 0 0 2px #29497a;
}
.stories-card.is-seen .stories-card__cover {
  opacity: 0.7;
  transition: opacity 0.3s ease;
}
.stories-card.is-seen:hover .stories-card__cover {
  opacity: 1;
}

/* === Stories strip: snap к левому краю === */
.stories-strip {
  scroll-padding-left: 0;
}
@media (max-width: 767px) {
  .stories-strip {
    scroll-padding-left: 16px;
  }
}

/* === Направления: сетка 3x2 с карточками === */
.dx-directions-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.dx-direction-card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background: #F6F7F9 !important;
  border-radius: 16px;
  padding: 24px;
  min-height: 180px;
  text-decoration: none !important;
  color: #1a1a1a;
  border: none !important;
  box-shadow: none !important;
  position: relative;
  overflow: hidden;
  transition: transform 0.25s ease, background-color 0.25s ease;
}

/* dx-hover-lift эффект */
.dx-direction-card:hover {
  transform: scale(1.03);
  background-color: #EDEEF0;
}

.dx-direction-card__name {
  font-family: 'Inter', sans-serif;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.3;
  color: #29497a;
  max-width: 70%;
}

.dx-direction-card__icon {
  align-self: flex-end;
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0.45;
  transition: opacity 0.25s ease;
}

.dx-direction-card:hover .dx-direction-card__icon {
  opacity: 0.65;
}

.dx-direction-card__icon svg,
.dx-direction-card__icon img {
  width: 40px;
  height: 40px;
  color: #29497a;
  object-fit: contain;
}

/* Кнопка Все направления */
.dx-directions-footer {
  margin-top: 32px;
  text-align: center;
}

.dx-directions-btn {
  display: inline-block;
  padding: 14px 40px;
  background: #29497a;
  color: #fff;
  border-radius: 32px;
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  transition: background 0.2s ease;
}

.dx-directions-btn:hover {
  background: #1e3660;
  color: #fff;
  text-decoration: none;
}

/* Мобильная адаптация */
@media (max-width: 767px) {
  .dx-directions-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
  .dx-direction-card {
    min-height: 140px;
    padding: 18px;
    border-radius: 12px;
  }
  .dx-direction-card__name {
    font-size: 15px;
    max-width: 80%;
  }
  .dx-direction-card__icon {
    width: 40px;
    height: 40px;
  }
  .dx-direction-card__icon svg,
  .dx-direction-card__icon img {
    width: 32px;
    height: 32px;
  }
  .dx-directions-btn {
    width: 100%;
    text-align: center;
  }
}

/* === Цифры: сетка как направления === */
.dx-digits-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

.dx-digit-card {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  background: #F6F7F9 !important;
  border-radius: 16px;
  padding: 24px;
  min-height: 180px;
  border: none !important;
  box-shadow: none !important;
}

.dx-digit-card__number {
  font-family: 'Inter', sans-serif;
  font-size: 48px;
  font-weight: 700;
  line-height: 1;
  color: #29497a;
  letter-spacing: -0.02em;
}

.dx-digit-card__label {
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.4;
  color: #5a6a7a;
  max-width: 85%;
}

@media (max-width: 767px) {
  .dx-digits-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
  .dx-digit-card {
    min-height: 140px;
    padding: 18px;
    border-radius: 12px;
  }
  .dx-digit-card__number {
    font-size: 36px;
  }
  .dx-digit-card__label {
    font-size: 13px;
  }
}

/* === Универсальная карточка специалиста: см. блок «Doctor card v2» в конце файла === */

/* Скрываем старые hover-элементы */
.specialists-item__more,
.news-item__more,
.specialists-item__note,
.news-item__note,
.specialists-item__appointment {
  display: none !important;
}
/* Страница специалистов: отступы и сетка */

.personnel-item__block {  margin-bottom: 48px !important;}
.personnel-item__inner {  border-left: none !important;}
.personnel-item__cols.preview {  display: none !important;}.personnel-item__row {  margin-left: 0 !important;}


/* Каталог специалистов: секции и кнопки */
.dx-spec-section {
  margin-bottom: 48px;
}
.dx-spec-section:last-child {
  margin-bottom: 0;
}
.dx-spec-section__heading {
  font-family: "Inter", sans-serif;
  font-size: 22px;
  font-weight: 600;
  color: #29497a;
  margin: 0 0 20px;
  letter-spacing: -0.02em;
  text-transform: none;
}
.dx-spec-buttons {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.dx-spec-btn {
  display: flex;
  align-items: center;
  background: #F6F7F9;
  border-radius: 12px;
  padding: 16px 20px;
  font-family: "Inter", sans-serif;
  font-size: 15px;
  font-weight: 500;
  color: #29497a;
  text-decoration: none;
  transition: transform 0.2s ease, background-color 0.2s ease;
}
.dx-spec-btn:hover {
  background: #EDEEF0;
  transform: scale(1.03);
  text-decoration: none;
  color: #29497a;
}
@media (max-width: 1024px) {
  .dx-spec-buttons {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (max-width: 767px) {
  .dx-spec-buttons {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }
  .dx-spec-btn {
    padding: 14px 16px;
    font-size: 14px;
    border-radius: 10px;
  }
  .dx-spec-section__heading {
    font-size: 20px;
  }
}
@media (max-width: 480px) {
  .dx-spec-buttons {
    grid-template-columns: 1fr;
  }
}

.dx-specialists-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

@media (max-width: 1024px) {
  .dx-specialists-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
  }
}

@media (max-width: 767px) {
  .dx-specialists-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
}

@media (max-width: 480px) {
  .dx-specialists-grid {
    grid-template-columns: 1fr;
  }
}


/* Отступы между карточками карусели: 16px */
.owl-block .owl-item {
  padding-right: 0 !important;
}
.specialists__owl.owl-block .owl-stage,
.news__owl.owl-block .owl-stage {
  gap: 0;
}

/* === Рубрикатор === */
.dx-rubricator {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 36px;
}

.dx-rubricator__pill {
  padding: 10px 24px;
  border-radius: 100px;
  border: 1.5px solid #d0d5dd;
  background: transparent;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #5a6a7a;
  cursor: pointer;
  transition: all .2s ease;
  white-space: nowrap;
}

.dx-rubricator__pill:hover {
  border-color: #29497a;
  color: #29497a;
}

.dx-rubricator__pill.is-active {
  background: #29497a;
  border-color: #29497a;
  color: #fff;
}

/* === Лента статей === */
.dx-articles-feed {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-bottom: 48px;
}

/* Hero — первая карточка на всю ширину */
.dx-feed-card--hero {
  grid-column: 1 / -1;
}

.dx-feed-card--hero .dx-feed-card__link {
  display: grid;
  grid-template-columns: 1fr 1fr;
  min-height: 380px;
}

.dx-feed-card--hero .dx-feed-card__image {
  border-radius: 16px 0 0 16px;
  min-height: 380px;
}

.dx-feed-card--hero .dx-feed-card__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 40px;
}

.dx-feed-card--hero .dx-feed-card__title--hero {
  font-size: 26px !important;
  line-height: 1.25 !important;
  -webkit-line-clamp: 4;
}

.dx-feed-card--hero .dx-feed-card__excerpt {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  line-height: 1.55;
  color: #5a6a7a;
  margin: 16px 0 0;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/*
 * Чередование: hero(1) + 4 + 2 + 4 = 11, далее повтор 4+2+4+2...
 * Позиции (0-based, без hero): 
 *   1-4: по 1 колонке
 *   5-6: по 2 колонки
 *   7-10: по 1 колонке
 * Затем цикл по 6: (11-14: x1) (15-16: x2) (17-20: x1) (21-22: x2) ...
 * nth-child считает с hero=1, поэтому:
 *   wide: 6,7 и далее каждые 6: 6,7,12,13,18,19,24,25...
 */
.dx-feed-card:nth-child(6n+6),
.dx-feed-card:nth-child(6n+7) {
  grid-column: span 2;
}

.dx-feed-card:nth-child(6n+6) .dx-feed-card__image,
.dx-feed-card:nth-child(6n+7) .dx-feed-card__image {
  height: 280px;
}

/* Обычная карточка */
.dx-feed-card {
  border-radius: 16px;
  overflow: hidden;
  background: #F6F7F9;
  transition: transform .2s ease, box-shadow .2s ease;
}

.dx-feed-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(0,0,0,.08);
}

.dx-feed-card.is-hidden {
  display: none;
}

.dx-feed-card__link {
  display: flex;
  flex-direction: column;
  text-decoration: none !important;
  color: inherit !important;
  height: 100%;
}

.dx-feed-card__image {
  height: 200px;
  background-size: cover;
  background-position: center;
  background-color: #EDEEF0;
}

.dx-feed-card__body {
  padding: 20px;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.dx-feed-card__tag {
  display: inline-block;
  align-self: flex-start;
  padding: 4px 12px;
  background: #fff;
  border-radius: 20px;
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  font-weight: 500;
  color: #5a6a7a;
}

.dx-feed-card__title {
  font-family: 'Inter', sans-serif !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
  color: #29497a !important;
  letter-spacing: -0.01em !important;
  margin: 0 !important;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* === «Показать ещё» === */
.dx-articles-more {
  text-align: center;
  margin: 0 0 60px;
}

.dx-articles-more__btn {
  display: inline-block;
  padding: 14px 48px;
  border-radius: 100px;
  border: 1.5px solid #d0d5dd;
  background: transparent;
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  font-weight: 500;
  color: #29497a;
  cursor: pointer;
  transition: all .2s ease;
}

.dx-articles-more__btn:hover {
  background: #29497a;
  border-color: #29497a;
  color: #fff;
}

/* === Адаптивность фида === */
@media (max-width: 1200px) {
  .dx-articles-feed {
    grid-template-columns: repeat(3, 1fr);
  }
  .dx-feed-card:nth-child(6n+6),
  .dx-feed-card:nth-child(6n+7) {
    grid-column: span 1;
  }
  .dx-feed-card:nth-child(6n+6) .dx-feed-card__image,
  .dx-feed-card:nth-child(6n+7) .dx-feed-card__image {
    height: 200px;
  }
}

@media (max-width: 900px) {
  .dx-articles-feed {
    grid-template-columns: repeat(2, 1fr);
    gap: 16px;
  }
  .dx-feed-card--hero .dx-feed-card__link {
    grid-template-columns: 1fr;
  }
  .dx-feed-card--hero .dx-feed-card__image {
    min-height: 240px;
    border-radius: 16px 16px 0 0;
  }
  .dx-feed-card--hero .dx-feed-card__body {
    padding: 24px;
  }
  .dx-feed-card--hero .dx-feed-card__title--hero {
    font-size: 22px !important;
  }
}

@media (max-width: 520px) {
  .dx-articles-feed {
    grid-template-columns: 1fr;
  }
  .dx-feed-card:nth-child(6n+6),
  .dx-feed-card:nth-child(6n+7) {
    grid-column: span 1;
  }
}

/* === Карточка статьи: текст сверху, изображение снизу === */
.dx-article-card {
  border-radius: 16px !important;
  overflow: hidden !important;
  background: #F6F7F9 !important;
  border: none !important;
  box-shadow: none !important;
}

.dx-article-card__link {
  display: flex;
  flex-direction: column;
  text-decoration: none !important;
  color: inherit !important;
  height: 100%;
}

.dx-article-card__top {
  padding: 24px 24px 16px;
  display: flex;
  flex-direction: column;
  gap: 24px;
  height: 170px;
}

.dx-article-card__tag {
  display: inline-block;
  align-self: flex-start;
  padding: 5px 14px;
  background: #fff;
  border-radius: 20px;
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  font-weight: 500;
  color: #5a6a7a;
  letter-spacing: -0.01em;
  flex-shrink: 0;
}

.dx-article-card__title {
  font-family: 'Inter', sans-serif !important;
  font-size: 17px !important;
  font-weight: 600 !important;
  line-height: 1.3 !important;
  color: #29497a !important;
  letter-spacing: -0.02em !important;
  margin: 0 !important;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.dx-article-card__image {
  flex: none;
  height: 255px;
  background-size: cover;
  background-position: center;
  background-color: #EDEEF0;
  border-radius: 0 0 16px 16px;
}

@media (max-width: 767px) {
  .dx-article-card {
    border-radius: 12px !important;
  }
  .dx-article-card__top {
    height: 150px;
    padding: 20px 20px 12px;
  }
  .dx-article-card__title {
    font-size: 15px !important;
    -webkit-line-clamp: 3;
  }
  .dx-article-card__image {
    height: 195px;
    border-radius: 0 0 12px 12px;
  }
}

/* === Тур по клинике: карточки как у специалистов === */
.dx-tour-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}

.dx-tour-card {
  display: flex;
  flex-direction: column;
  border-radius: 16px;
  overflow: hidden;
  text-decoration: none !important;
  color: inherit !important;
}

.dx-tour-card__image {
  width: 100%;
  height: 340px;
  background-size: cover;
  background-position: center;
  background-color: #EDEEF0;
}

.dx-tour-card__body {
  background: #F6F7F9;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.dx-tour-card__title {
  font-family: 'Inter', sans-serif;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.3;
  color: #29497a;
  letter-spacing: -0.02em;
  margin: 0;
}

.dx-tour-card__address {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  line-height: 1.4;
  color: #5a6a7a;
  margin: 0;
}

/* Скрываем старые hover-элементы тура */

@media (max-width: 767px) {
  .dx-tour-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .dx-tour-card {
    border-radius: 12px;
  }
  .dx-tour-card__image {
    height: 220px;
  }
  .dx-tour-card__body {
    padding: 18px;
  }
  .dx-tour-card__title {
    font-size: 16px;
  }
}

/* Скрываем кнопку go-to-top */
.go-to-top { display: none !important; }

/* Отступ между каруселью и кнопкой */
.specialists-block .owl-block,
.news-block .owl-block,
.owl-block.owl-loaded {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
.specialists-block .dx-directions-footer,
.news-block .dx-directions-footer {
  margin-top: 32px;
}

/* FOUC fix: показываем карточки в ряд до инициализации Owl */
.owl-block:not(.owl-loaded) {
  display: flex !important;
  overflow: hidden !important;
  gap: 16px;
  max-height: 520px;
}
.owl-block:not(.owl-loaded) > * {
  flex: 0 0 calc(25% - 12px);
  min-width: 0;
}
.stories__owl.owl-block:not(.owl-loaded) > * {
  flex: 0 0 calc(20% - 13px);
}

/* Убираем padding-bottom у owl-stage-outer (был для dots) */
.owl-carousel .owl-stage-outer {
  padding-bottom: 0 !important;
}

/* === Hover-стрелка на карточках экскурсии и статей (карточка специалиста — через scale в блоке Doctor card v2) === */
.dx-tour-card__image,
.dx-article-card__image {
  position: relative;
}

.dx-tour-card__image::after,
.dx-article-card__image::after {
  content: '';
  position: absolute;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: #F6F7F9;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.25s ease;
  pointer-events: none;
  box-sizing: border-box;
}

.dx-tour-card__image::before,
.dx-article-card__image::before {
  content: '';
  position: absolute;
  width: 9px;
  height: 9px;
  border-right: 2px solid #838589;
  border-bottom: 2px solid #838589;
  transform: rotate(-45deg);
  z-index: 3;
  opacity: 0;
  transition: opacity 0.25s ease;
  pointer-events: none;
}

.dx-tour-card__image::after { top: 12px; right: 12px; }
.dx-tour-card__image::before { top: 31px; right: 33px; }
.dx-article-card__image::after { bottom: 12px; right: 12px; }
.dx-article-card__image::before { bottom: 31px; right: 33px; }

.dx-tour-card:hover .dx-tour-card__image::after,
.dx-tour-card:hover .dx-tour-card__image::before,
.dx-article-card:hover .dx-article-card__image::after,
.dx-article-card:hover .dx-article-card__image::before {
  opacity: 1;
}

/* ==========================================================================
   UI/UX AUDIT: унификация отступов, шрифтов, мобильной адаптации
   ========================================================================== */

/* --- Единые вертикальные отступы между секциями --- */
/* Сброс всех padding от site.css */
.stories-section,
.direction-block.index-block,
.specialists-block.index-block,
.news-block.index-block,
.digits-block.index-block,
.dx-booking-section.index-block,
.tour-block.index-block {
  padding: 0 !important;
  margin-top: 0 !important;
  margin-bottom: 96px !important;
}





/* --- Единые заголовки блоков --- */
.index-block .header-block__heading,
.stories-header__title {
  font-family: 'Inter', sans-serif !important;
  font-weight: 600 !important;
  color: #29497a !important;
  letter-spacing: -0.02em !important;
  text-transform: none !important;
}

/* --- Единый margin-bottom заголовков --- */
.index-block .page-header-block,
.stories-header {
  margin-bottom: 32px !important;
}

/* --- Мобильные карточки прочих типов (карточка специалиста — в блоке Doctor card v2) --- */
@media (max-width: 767px) {
  /* Направления */
  .dx-direction-card {
    padding: 18px;
    min-height: 140px;
  }
  .dx-direction-card__name {
    font-size: 15px;
  }

  /* Цифры */
  .dx-digit-card {
    padding: 18px;
    min-height: 130px;
  }
  .dx-digit-card__number {
    font-size: 32px;
  }
  .dx-digit-card__label {
    font-size: 13px;
  }

  /* Тур */
  .dx-tour-card__image {
    height: 200px;
  }
  .dx-tour-card__body {
    padding: 18px;
  }
  .dx-tour-card__title {
    font-size: 16px;
  }
  .dx-tour-card__address {
    font-size: 13px;
  }

  /* Кнопки "Все ..." */
  .dx-directions-footer {
    margin-top: 24px;
  }
  .dx-directions-btn {
    padding: 14px 32px;
    font-size: 14px;
  }

  /* Стрелки hover на мобильных не нужны */
  .dx-tour-card__image::after,
  .dx-tour-card__image::before,
  .dx-article-card__image::after,
  .dx-article-card__image::before {
    display: none !important;
  }
}

/* Сброс padding-top у content-block (отступ уже задан margin-bottom секций) */
.content-block.index-page {
  padding-bottom: 0 !important;
  padding-top: 0 !important;
}

/* Плавная прокрутка страницы */
html {
  scroll-behavior: smooth;
}

/* === Плашка рейтинга и звезда — см. блок Doctor card v2 в конце файла === */

/* ==========================================================================
   БЛОК ЗАПИСИ НА ПРИЁМ
   ========================================================================== */
.dx-booking {
  background: #F6F7F9;
  border-radius: 24px;
  padding: 48px;
}

.dx-booking__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 32px;
}

.dx-booking__header .header-block__heading {
  margin: 0 !important;
}

/* Прогресс-бар */
.dx-booking__progress {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}

.dx-booking__progress-bar {
  width: 80px;
  height: 4px;
  background: #d0d5dd;
  border-radius: 2px;
  overflow: hidden;
}

.dx-booking__progress-fill {
  height: 100%;
  width: 50%;
  background: #29497a;
  border-radius: 2px;
  transition: width 0.3s ease;
}

.dx-booking__progress-text {
  font-family: Inter, sans-serif;
  font-size: 13px;
  color: #5a6a7a;
  white-space: nowrap;
}

/* Шаги */
.dx-booking__step--hidden {
  display: none;
}

/* Даты: горизонтальная полоса с навигацией */
.dx-booking__dates-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 20px;
}

.dx-booking__dates-arrow {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: none;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  transition: background 0.2s;
}

.dx-booking__dates-arrow:hover {
  background: #EDEEF0;
}

.dx-booking__dates {
  display: flex;
  gap: 8px;
  overflow: hidden;
  flex: 1;
}

.dx-booking__date {
  flex: 1;
  min-width: 0;
  padding: 12px 8px;
  border-radius: 16px;
  background: #fff;
  border: 2px solid transparent;
  text-align: center;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.dx-booking__date:hover {
  border-color: #c0c8d0;
}

.dx-booking__date.is-active {
  background: #29497a;
  border-color: #29497a;
}

.dx-booking__date-dow {
  font-family: Inter, sans-serif;
  font-size: 12px;
  font-weight: 500;
  color: #5a6a7a;
}

.dx-booking__date-day {
  font-family: Inter, sans-serif;
  font-size: 22px;
  font-weight: 700;
  color: #29497a;
  line-height: 1.2;
}

.dx-booking__date-month {
  font-family: Inter, sans-serif;
  font-size: 12px;
  font-weight: 500;
  color: #5a6a7a;
}

.dx-booking__date.is-active .dx-booking__date-dow,
.dx-booking__date.is-active .dx-booking__date-day,
.dx-booking__date.is-active .dx-booking__date-month {
  color: #fff;
}

/* Временные слоты */
.dx-booking__times {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 20px;
}

.dx-booking__time {
  padding: 10px 20px;
  border-radius: 32px;
  background: #fff;
  border: 2px solid transparent;
  font-family: Inter, sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #1a1a1a;
  cursor: pointer;
  transition: all 0.2s ease;
}

.dx-booking__time:hover {
  border-color: #c0c8d0;
}

.dx-booking__time.is-active {
  background: #29497a;
  border-color: #29497a;
  color: #fff;
}

/* Поля ввода */
.dx-booking__field {
  margin-bottom: 16px;
}

.dx-booking__textarea,
.dx-booking__input {
  width: 100%;
  padding: 16px 20px;
  border-radius: 16px;
  border: 1.5px solid #d0d5dd;
  background: #fff;
  font-family: Inter, sans-serif;
  font-size: 15px;
  color: #1a1a1a;
  outline: none;
  transition: border-color 0.2s;
  box-sizing: border-box;
  resize: none;
}

.dx-booking__textarea:focus,
.dx-booking__input:focus {
  border-color: #29497a;
}

/* Согласие */
.dx-booking__consent {
  margin-bottom: 20px;
}

.dx-booking__consent label {
  font-family: Inter, sans-serif;
  font-size: 13px;
  color: #5a6a7a;
  display: flex;
  align-items: flex-start;
  gap: 8px;
  cursor: pointer;
}

.dx-booking__consent a {
  color: #29497a;
}

/* Кнопки */
.dx-booking__btn {
  display: inline-block;
  padding: 16px 48px;
  background: #29497a;
  color: #fff;
  border: none;
  border-radius: 32px;
  font-family: Inter, sans-serif;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s;
}

.dx-booking__btn:hover {
  background: #1e3660;
}

.dx-booking__btn--back {
  background: #fff;
  color: #29497a;
  border: 1.5px solid #d0d5dd;
}

.dx-booking__btn--back:hover {
  background: #EDEEF0;
}

.dx-booking__btns {
  display: flex;
  gap: 12px;
}

/* Сноска */
.dx-booking__note {
  margin-top: 16px;
  font-family: Inter, sans-serif;
  font-size: 13px;
  color: #838589;
}

/* Успех */
.dx-booking__success {
  text-align: center;
  padding: 32px 0;
}

.dx-booking__success-icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: #29497a;
  color: #fff;
  font-size: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
}

.dx-booking__success-title {
  font-family: Inter, sans-serif;
  font-size: 24px;
  font-weight: 600;
  color: #29497a;
  margin: 0 0 8px;
}

.dx-booking__success-text {
  font-family: Inter, sans-serif;
  font-size: 15px;
  color: #5a6a7a;
  margin: 0 0 24px;
}

/* Мобильная адаптация */
@media (max-width: 767px) {
  .dx-booking {
    padding: 24px 16px;
    border-radius: 16px;
  }
  .dx-booking__header {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
  }
  .dx-booking__date {
    padding: 10px 4px;
    border-radius: 12px;
  }
  .dx-booking__date-day {
    font-size: 18px;
  }
  .dx-booking__time {
    padding: 8px 16px;
    font-size: 13px;
  }
  .dx-booking__btn {
    width: 100%;
    text-align: center;
  }
  .dx-booking__btns {
    flex-direction: column;
  }
  .dx-booking__btn--back {
    width: 100%;
    text-align: center;
  }
}

/* ==========================================================================
   БЛОК ЗАПИСИ НА ПРИЁМ v2
   ========================================================================== */
.dx-booking {
  background: #F6F7F9;
  border-radius: 24px;
  padding: 40px;
}

.dx-booking__step--hidden { display: none; }

/* Layout: 2 колонки */
.dx-booking__layout {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 48px;
  align-items: start;
}

/* Левая колонка: текст */
.dx-booking__title {
  font-family: Inter, sans-serif;
  font-size: 24px;
  font-weight: 700;
  color: #29497a;
  letter-spacing: -0.02em;
  margin: 0 0 12px;
  line-height: 1.3;
}

.dx-booking__subtitle {
  font-family: Inter, sans-serif;
  font-size: 15px;
  line-height: 1.5;
  color: #5a6a7a;
  margin: 0 0 24px;
}

/* Правая колонка: даты + время */
.dx-booking__dates-header {
  display: flex;
  justify-content: flex-end;
  margin-bottom: 16px;
}

.dx-booking__dates-nav {
  display: flex;
  gap: 6px;
}

.dx-booking__nav-btn {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: none;
  background: #fff;
  font-size: 0;
  color: transparent;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s ease;
  position: relative;
  overflow: hidden;
  padding: 0;
  line-height: 0;
}

.dx-booking__nav-btn:hover { background: #F3F4F6; }

.dx-booking__nav-btn::after {
  content: "";
  display: block;
  width: 9px;
  height: 9px;
  border-right: 2px solid #838589;
  border-bottom: 2px solid #838589;
  position: absolute;
}

/* Даты */
.dx-booking__dates {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 8px;
  margin-bottom: 16px;
}

.dx-booking__date {
  padding: 10px 4px;
  border-radius: 12px;
  background: #fff;
  border: 1px solid transparent;
  text-align: center;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}

.dx-booking__date:hover { border-color: #29497a; }

.dx-booking__date.is-active {
  background: #29497a;
  border-color: #29497a;
}

.dx-booking__date-dow {
  font-family: Inter, sans-serif;
  font-size: 11px;
  font-weight: 500;
  color: #838589;
}

.dx-booking__date-day {
  font-family: Inter, sans-serif;
  font-size: 20px;
  font-weight: 700;
  color: #29497a;
  line-height: 1.2;
}

.dx-booking__date-month {
  font-family: Inter, sans-serif;
  font-size: 11px;
  font-weight: 500;
  color: #838589;
}

.dx-booking__date.is-active .dx-booking__date-dow,
.dx-booking__date.is-active .dx-booking__date-day,
.dx-booking__date.is-active .dx-booking__date-month { color: #fff; }

/* Временные промежутки */
.dx-booking__times {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
  margin-bottom: 16px;
}

.dx-booking__time {
  padding: 10px 8px;
  border-radius: 12px;
  background: #fff;
  border: 1px solid transparent;
  font-family: Inter, sans-serif;
  text-align: center;
  cursor: pointer;
  transition: all 0.2s ease;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.dx-booking__time:hover { border-color: #29497a; }

.dx-booking__time.is-active {
  background: #29497a;
  border-color: #29497a;
}

.dx-booking__time-label {
  font-size: 14px;
  font-weight: 600;
  color: #1a1a1a;
}

.dx-booking__time-range {
  font-size: 11px;
  color: #838589;
}

.dx-booking__time.is-active .dx-booking__time-label,
.dx-booking__time.is-active .dx-booking__time-range { color: #fff; }

/* Поля ввода */
.dx-booking__field { margin-bottom: 16px; }
.dx-booking__field--mobile { display: none; }

.dx-booking__textarea,
.dx-booking__input {
  width: 100%;
  padding: 14px 16px;
  border-radius: 12px;
  border: 1px solid transparent;
  background: #fff;
  font-family: Inter, sans-serif;
  font-size: 14px;
  color: #1a1a1a;
  outline: none;
  transition: border-color 0.2s;
  box-sizing: border-box;
  resize: none;
}

.dx-booking__textarea::placeholder,
.dx-booking__input::placeholder {
  color: #838589;
}
.dx-booking__textarea:focus,
.dx-booking__input:focus { border-color: #29497a; }

/* Согласие */
.dx-booking__consent {
  margin-bottom: 16px;
  margin-top: 4px;
}

.dx-booking__consent label {
  font-family: Inter, sans-serif;
  font-size: 12px;
  color: #838589;
  display: flex;
  align-items: flex-start;
  gap: 8px;
  cursor: pointer;
}

.dx-booking__consent a { color: #29497a; }

/* Кнопки */
.dx-booking__btn {
  display: inline-block;
  padding: 14px 40px;
  background: #29497a;
  color: #fff;
  border: none;
  border-radius: 32px;
  font-family: Inter, sans-serif;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s;
}

.dx-booking__btn:hover { background: #1e3660; }

.dx-booking__btn--back {
  background: #fff;
  color: #29497a;
  border: 1px solid transparent;
}

.dx-booking__btn--back:hover { background: #EDEEF0; }

.dx-booking__btns { display: flex; gap: 10px; }

/* Прогресс */
.dx-booking__progress {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 20px;
}

.dx-booking__progress-bar {
  width: 60px;
  height: 3px;
  background: #d0d5dd;
  border-radius: 2px;
  overflow: hidden;
}

.dx-booking__progress-fill {
  height: 100%;
  width: 50%;
  background: #29497a;
  border-radius: 2px;
  transition: width 0.3s;
}

.dx-booking__progress-text {
  font-family: Inter, sans-serif;
  font-size: 12px;
  color: #838589;
}

/* Сноска */
.dx-booking__note {
  margin-top: 20px;
  font-family: Inter, sans-serif;
  font-size: 12px;
  color: #838589;
}

/* Успех */
.dx-booking__success {
  text-align: center;
  padding: 40px 0;
}

.dx-booking__success-icon {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #29497a;
  color: #fff;
  font-size: 24px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
}

.dx-booking__success-title {
  font-family: Inter, sans-serif;
  font-size: 22px;
  font-weight: 600;
  color: #29497a;
  margin: 0 0 8px;
}

.dx-booking__success-text {
  font-family: Inter, sans-serif;
  font-size: 14px;
  color: #5a6a7a;
  margin: 0 0 20px;
}

/* ===== Мобильная адаптация ===== */
@media (max-width: 767px) {
  .dx-booking {
    padding: 24px 16px;
    border-radius: 16px;
  }

  .dx-booking__layout {
    grid-template-columns: 1fr;
    gap: 24px;
  }

  .dx-booking__title {
    font-size: 20px;
  }

  .dx-booking__subtitle {
    font-size: 14px;
    margin-bottom: 0;
  }

  .dx-booking__field--desktop { display: none; }
  .dx-booking__field--mobile { display: block; }

  .dx-booking__dates {
    grid-template-columns: repeat(7, 1fr);
    gap: 4px;
  }

  .dx-booking__date {
    padding: 8px 2px;
    border-radius: 10px;
  }

  .dx-booking__date-day { font-size: 16px; }
  .dx-booking__date-dow, .dx-booking__date-month { font-size: 10px; }

  .dx-booking__times {
    grid-template-columns: repeat(2, 1fr);
    gap: 6px;
  }

  .dx-booking__btn {
    width: 100%;
    text-align: center;
  }

  .dx-booking__btns {
    flex-direction: column;
  }

  .dx-booking__btn--back {
    width: 100%;
    text-align: center;
  }
}

/* Problem input above dates */
.dx-booking__input--problem {
  background: #fff;
}
.dx-booking__input--problem::placeholder {
  color: #838589;
}
.dx-booking__field--top {
  margin-bottom: 16px;
}
.dx-booking__field--mobile { display: none !important; }
.dx-booking__field--desktop { display: none !important; }

/* === Анимации формы записи === */
@keyframes dxSlideIn {
  from { opacity: 0; transform: translateX(20px); }
  to { opacity: 1; transform: translateX(0); }
}

@keyframes dxSlideOut {
  from { opacity: 1; transform: translateX(0); }
  to { opacity: 0; transform: translateX(-20px); }
}

@keyframes dxFadeUp {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

.dx-booking__step--enter {
  animation: dxSlideIn 0.3s ease forwards;
}

.dx-booking__step--exit {
  animation: dxSlideOut 0.2s ease forwards;
}

.dx-booking__dates--animate .dx-booking__date {
  animation: dxFadeUp 0.25s ease both;
}

.dx-booking__dates--animate .dx-booking__date:nth-child(1) { animation-delay: 0s; }
.dx-booking__dates--animate .dx-booking__date:nth-child(2) { animation-delay: 0.03s; }
.dx-booking__dates--animate .dx-booking__date:nth-child(3) { animation-delay: 0.06s; }
.dx-booking__dates--animate .dx-booking__date:nth-child(4) { animation-delay: 0.09s; }
.dx-booking__dates--animate .dx-booking__date:nth-child(5) { animation-delay: 0.12s; }
.dx-booking__dates--animate .dx-booking__date:nth-child(6) { animation-delay: 0.15s; }
.dx-booking__dates--animate .dx-booking__date:nth-child(7) { animation-delay: 0.18s; }

/* Отступ кнопок от формы */
.dx-booking__btn#bookingNext,
.dx-booking__btns {
  margin-top: 24px;
}

/* Скрываем прогресс-бар шагов */
.dx-booking__progress {
  display: none !important;
}

/* ==========================================================================
   FOOTER v2: 4 колонки, F6F7F9
   ========================================================================== */
.footer-site { display: none !important; }

.dx-footer {
  background: #F6F7F9;
  padding: 40px 0 0;
  margin-top: 0;
}

.dx-footer__grid {
  display: grid;
  grid-template-columns: 1.2fr 0.8fr 0.8fr 1fr;
  gap: 40px;
  align-items: start;
}

/* Логотип */
.dx-footer__logo {
  display: block;
  margin-bottom: 20px;
}

.dx-footer__logo svg.icon-svg {
  width: 140px;
  height: 40px;
  color: #29497a;
  fill: #29497a;
  font-size: unset;
  overflow: visible;
}

/* Юрлица */
.dx-footer__legal {
  margin-bottom: 20px;
}

.dx-footer__legal p {
  font-family: 'Inter', sans-serif;
  font-size: 12px;
  line-height: 1.5;
  color: #838589;
  margin: 0 0 12px;
}

.dx-footer__link {
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  color: #29497a;
  text-decoration: none;
}

.dx-footer__link:hover {
  text-decoration: underline;
}

/* Заголовки колонок */
.dx-footer__heading {
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  font-weight: 600;
  color: #29497a;
  margin: 0 0 20px;
  letter-spacing: -0.01em;
  padding-top: 0;
}

/* Навигация */
.dx-footer__nav {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.dx-footer__nav a {
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  color: #5a6a7a;
  text-decoration: none;
  transition: color 0.2s;
}

.dx-footer__nav a:hover {
  color: #29497a;
}

/* Колонка действий */
.dx-footer__col--actions {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.dx-footer__cta-btn {
  display: inline-block;
  padding: 14px 32px;
  background: #29497a;
  color: #fff;
  border-radius: 32px;
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  text-align: center;
  transition: background 0.2s;
}

.dx-footer__cta-btn:hover {
  background: #1e3660;
  color: #fff;
  text-decoration: none;
}

.dx-footer__special-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  color: #5a6a7a;
  text-decoration: none;
  transition: color 0.2s;
}

.dx-footer__special-link:hover {
  color: #29497a;
}

/* Соцсети */
.dx-footer__social {
  display: flex;
  gap: 10px;
  margin-top: 8px;
}

.dx-footer__soc-item {
  width: 42px;
  height: 42px;
  border-radius: 10px;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s;
  color: #29497a;
}

.dx-footer__soc-item:hover {
  background: #29497a;
  color: #fff;
}

.dx-footer__soc-item svg {
  width: 22px;
  height: 22px;
  fill: currentColor;
}

/* Нижняя строка */
.dx-footer__bottom {
  margin-top: 32px;
  padding: 20px 0;
  border-top: 1px solid #e0e3e8;
}

.dx-footer__bottom p {
  font-family: Inter, sans-serif;
  font-size: 12px;
  color: #838589;
  margin: 0;
}

.dx-footer__legal-links {
  display: flex;
  gap: 20px;
  margin-top: 8px;
  flex-wrap: wrap;
}

.dx-footer__legal-links a {
  font-family: Inter, sans-serif;
  font-size: 12px;
  color: #838589;
  text-decoration: none;
  transition: color .2s;
}

.dx-footer__legal-links a:hover {
  color: #29497a;
}

/* === Мобильная адаптация === */
@media (max-width: 767px) {
  .dx-footer {
    padding: 32px 0 0;
  }

  .dx-footer__grid {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .dx-footer__col--actions {
    align-items: flex-start;
  }

  .dx-footer__cta-btn {
    width: 100%;
  }

  .dx-footer__bottom {
    margin-top: 32px;
    padding: 20px 0;
  }
}

@media (min-width: 768px) and (max-width: 1024px) {
  .dx-footer__grid {
    grid-template-columns: 1fr 1fr;
    gap: 32px;
  }
}

/* ==========================================================================
   SPECIALIST PAGE REDESIGN
   ========================================================================== */

/* Отступы spec-page: единые с другими внутренними страницами (header→content 66, content→footer 80).
   Поднимаем специфичность через body, иначе перебивает позднее глобальное правило .content-block:not(.index-page). */
body .content-block.spec-page { padding: 66px 0 80px !important; }
.spec-page .content-container { padding-top: 0; padding-bottom: 0; }

/* --- Two-column layout: sidebar + content --- */
.spec-layout {
  display: grid;
  grid-template-columns: 380px 1fr;
  gap: 20px;                /* горизонталь sidebar↔content */
  align-items: start;
  margin-bottom: 0;
}

/* --- Sidebar (sticky photo + buttons) --- */
.spec-sidebar {
  position: sticky;
  top: 100px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.spec-sidebar__photo {
  border-radius: 16px;
  overflow: hidden;
  background: #EDEEF0;
  margin-bottom: 8px;
}
.spec-sidebar__photo img { width: 100%; height: auto; display: block; }

.spec-btn {
  display: block;
  text-align: center;
  padding: 14px 24px;
  border-radius: 32px;
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.2s ease;
  cursor: pointer;
  border: none;
}
.spec-btn--primary { background: #29497a; color: #fff; }
.spec-btn--primary:hover { background: #1e3660; color: #fff; text-decoration: none; }
.spec-btn--outline { background: transparent; color: #29497a; border: 2px solid #29497a; }
.spec-btn--outline:hover { background: #29497a; color: #fff; text-decoration: none; }

/* --- Content (right column) ---
   Единый вертикальный ритм через flex-gap, чтобы между всеми блоками было ровно 20px.
   margin-bottom на детях обнуляем — компонент booking-inline и т.п. не должны влиять. */
.spec-content {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.spec-content > * { margin-top: 0 !important; margin-bottom: 0 !important; }

/* --- Info block --- */
.spec-info { /* margin управляется gap родителя */ }
.spec-info__badges { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.spec-badge {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 6px 14px; border-radius: 20px; background: #F6F7F9;
  font-family: 'Inter', sans-serif; font-size: 13px; font-weight: 500; color: #5a6a7a;
}
.spec-badge--rating { background: #fff; border: 1px solid #e0e0e0; }
.spec-star { color: #FDC92B; font-size: 15px; }

.spec-info__name {
  font-family: 'Inter', sans-serif; font-size: 36px; font-weight: 600;
  line-height: 1.15; color: #1a1a1a; margin: 0 0 12px; letter-spacing: -0.02em;
}
.spec-info__specialization {
  font-family: 'Inter', sans-serif; font-size: 18px; line-height: 1.4;
  color: #5a6a7a; margin: 0 0 24px;
}

/* --- Booking with date/time --- */

/* Date/time cards */
.dx-date-card {
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  padding: 12px 8px; border-radius: 12px; border: 1px solid #e0e0e0;
  background: #fff; cursor: pointer; transition: all 0.15s;
  font-family: 'Inter', sans-serif;
}
.dx-date-card:hover { border-color: #29497a; }
.dx-date-card.active { background: #29497a; border-color: #29497a; color: #fff; }
.dx-date-card__day { font-size: 12px; font-weight: 500; color: #838589; }
.dx-date-card.active .dx-date-card__day { color: rgba(255,255,255,0.7); }
.dx-date-card__num { font-size: 20px; font-weight: 600; color: #1a1a1a; }
.dx-date-card.active .dx-date-card__num { color: #fff; }
.dx-date-card__month { font-size: 11px; color: #838589; }
.dx-date-card.active .dx-date-card__month { color: rgba(255,255,255,0.7); }
.dx-time-card {
  display: flex; flex-direction: column; align-items: center; gap: 2px;
  padding: 10px 8px; border-radius: 10px; border: 1px solid #e0e0e0;
  background: #fff; cursor: pointer; transition: all 0.15s;
  font-family: 'Inter', sans-serif;
}
.dx-time-card:hover { border-color: #29497a; }
.dx-time-card.active { background: #29497a; border-color: #29497a; color: #fff; }
.dx-time-card__label { font-size: 14px; font-weight: 600; color: #1a1a1a; }
.dx-time-card.active .dx-time-card__label { color: #fff; }
.dx-time-card__sub { font-size: 11px; color: #838589; }
.dx-time-card.active .dx-time-card__sub { color: rgba(255,255,255,0.7); }

.spec-booking .dx-booking__dates-nav {
  position: absolute; top: 32px; right: 32px;
  display: flex; gap: 8px;
}
.dx-booking__arrow {
  width: 36px; height: 36px; border-radius: 50%;
  border: 1px solid #e0e0e0; background: #fff;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; transition: all 0.15s; color: #5a6a7a;
}
.dx-booking__arrow:hover { border-color: #29497a; color: #29497a; }

/* --- Sections — единая карточка для education/advanced/accreditation/reviews --- */
.spec-content > .spec-section {
  background: #F6F7F9;
  border-radius: 16px;
  padding: 32px 40px;
}
@media (max-width: 767px) {
  .spec-content > .spec-section { padding: 24px; }
}
.spec-section__title {
  font-family: 'Inter', sans-serif; font-size: 24px; font-weight: 600;
  color: #29497a; margin: 0 0 24px; letter-spacing: -0.02em;
}

/* --- About --- */

/* --- Education timeline --- */
.spec-education { background: #F6F7F9; border-radius: 16px; padding: 32px 40px; }

/* --- Education timeline (icon-based) --- */

/* --- Accreditation cards --- */

/* --- Reviews (full width) --- */
.spec-reviews { margin-bottom: 0; }
.spec-reviews__empty {
  background: #F6F7F9; border-radius: 16px; padding: 48px 40px; text-align: center;
}
.spec-reviews__empty p { font-family: 'Inter', sans-serif; font-size: 16px; color: #838589; margin: 0 0 20px; }
.spec-reviews__empty .spec-btn { display: inline-block; width: auto; }

/* --- Mobile --- */
@media (max-width: 1024px) {
  .spec-layout { grid-template-columns: 320px 1fr; gap: 32px; }
  .spec-info__name { font-size: 30px; }
}

@media (max-width: 767px) {
  body .content-block.spec-page { padding: 32px 0 48px !important; }
  .spec-page .content-container { padding-top: 0; padding-bottom: 0; }
  .spec-layout { grid-template-columns: 1fr; gap: 0; }
  .spec-sidebar { position: static; order: 1; }
  .spec-content { order: 2; }
  .spec-sidebar__photo { max-width: 100%; border-radius: 12px; margin-bottom: 16px; }
  .spec-btn { padding: 12px 20px; font-size: 14px; border-radius: 28px; }
  .spec-info { margin-bottom: 24px; margin-top: 24px; }
  .spec-info__badges { margin-bottom: 12px; gap: 6px; }
  .spec-badge { font-size: 12px; padding: 5px 10px; }
  .spec-info__name { font-size: 26px; margin-bottom: 8px; }
  .spec-info__specialization { font-size: 15px; margin-bottom: 16px; }
  .dx-date-card { padding: 8px 2px; border-radius: 8px; }
  .dx-date-card__day { font-size: 11px; }
  .dx-date-card__num { font-size: 16px; }
  .dx-date-card__month { font-size: 10px; }
  .dx-time-card { padding: 10px 6px; }
  .spec-booking .dx-booking__dates-nav { top: 20px; right: 16px; }
  .dx-booking__arrow { width: 32px; height: 32px; }
  .spec-section { margin-bottom: 24px; }
  .spec-section__title { font-size: 20px; margin-bottom: 16px; }
  .spec-education { padding: 20px 16px; border-radius: 12px; }
  .spec-reviews__empty { padding: 32px 20px; border-radius: 12px; }
  .spec-reviews__empty p { font-size: 15px; }
}

/* ==========================================================================
   UNIFIED FORM STYLES
   ========================================================================== */

/* --- Custom checkboxes --- */
.dx-form__consent {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  cursor: pointer;
  font-family: 'Inter', sans-serif;
  font-size: 13px;
  font-weight: 400 !important;
  line-height: 1.4;
  color: #5a6a7a !important;
  margin-bottom: 12px;
}
.dx-form__consent:last-of-type {
  margin-bottom: 0;
}
.dx-form__consent a {
  color: #29497a;
  font-weight: 400;
  text-decoration: none;
}
.dx-form__consent a:hover {
  text-decoration: underline;
}
.dx-form__consent input[type="checkbox"] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  width: 22px;
  height: 22px;
  min-width: 22px;
  border: 1.5px solid #d0d4da;
  border-radius: 6px;
  background: #fff;
  cursor: pointer;
  position: relative;
  transition: all 0.15s ease;
  margin: 0;
  flex-shrink: 0;
}
.dx-form__consent input[type="checkbox"]:checked {
  background: #29497a;
  border-color: #29497a;
}
.dx-form__consent input[type="checkbox"]:checked::after {
  content: '';
  position: absolute;
  left: 6px;
  top: 2px;
  width: 6px;
  height: 11px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.dx-form__consent input[type="checkbox"]:focus {
  outline: none;
  box-shadow: 0 0 0 3px rgba(41, 73, 122, 0.15);
}

/* --- Consent block with spacing before button --- */
.dx-form__consents {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: 16px;
}

/* --- Submit button spacing --- */
.dx-form__submit {
  margin-top: 24px;
  display: block;
  width: 100%;
  padding: 16px 40px;
  background: #29497a;
  color: #fff;
  border: none;
  border-radius: 32px;
  font-family: 'Inter', sans-serif;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.2s ease;
  text-align: center;
}
.dx-form__submit:hover {
  background: #1e3660;
}

/* --- Form inputs unified --- */
.dx-form__input {
  width: 100%;
  padding: 16px 20px;
  border: 1.5px solid #d0d5dd;
  border-radius: 16px;
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  background: #fff;
  color: #1a1a1a;
  outline: none;
  transition: border-color 0.2s;
  box-sizing: border-box;
}
.dx-form__input:focus {
  border-color: #29497a;
}
.dx-form__input::placeholder {
  color: #a0a4a8;
}
.dx-form__fields {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* --- Modal form overrides --- */
.modal-base .dx-form__input {
  width: 100%;
}
.modal-base .dx-form__submit {
  margin-top: 24px;
}
.modal-base .dx-form__consents {
  margin-top: 20px;
}

/* --- Inline form card --- */
.dx-form-card {
  background: #F6F7F9;
  border-radius: 24px;
  padding: 40px;
}

@media (max-width: 767px) {
  .dx-form-card {
    padding: 24px 20px;
    border-radius: 16px;
  }
  .dx-form__consent {
    font-size: 12px;
    gap: 10px;
  }
  .dx-form__consent input[type="checkbox"] {
    width: 20px;
    height: 20px;
    min-width: 20px;
  }
  .dx-form__consent input[type="checkbox"]:checked::after {
    left: 5px;
    top: 1px;
    width: 5px;
    height: 10px;
  }
  .dx-form__submit {
    padding: 14px 32px;
    font-size: 15px;
    margin-top: 20px;
  }
}

/* ==========================================================================
   MODAL FORM REDESIGN
   ========================================================================== */

.dx-modal .modal-base__dialog {
  max-width: 480px;
  margin: 15vh auto;
}
.dx-modal .modal-base__body {
  background: #fff;
  border-radius: 24px;
  padding: 40px;
  position: relative;
  border: none;
  box-shadow: 0 20px 60px rgba(0,0,0,0.15);
}
.dx-modal__close {
  position: absolute;
  top: 16px;
  right: 16px;
  width: 40px;
  height: 40px;
  border: none;
  background: #F6F7F9;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: #5a6a7a;
  transition: all 0.15s;
  padding: 0;
  z-index: 1;
}
.dx-modal__close:hover {
  background: #EDEEF0;
  color: #1a1a1a;
}
.dx-modal .modal-base__content {
  padding: 0;
}
.dx-modal__title {
  font-family: 'Inter', sans-serif;
  font-size: 24px;
  font-weight: 600;
  color: #1a1a1a;
  margin: 0 0 8px;
  letter-spacing: -0.02em;
  padding-right: 40px;
}
.dx-modal__subtitle {
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  color: #838589;
  margin: 0 0 24px;
  line-height: 1.4;
}
.dx-modal__form .dx-form__fields {
  margin-bottom: 0;
}
.dx-modal__form .dx-form__consents {
  margin-top: 20px;
}
.dx-modal__form .dx-form__submit {
  margin-top: 24px;
}

/* Override old modal styles */
.dx-modal .form__heading,
.dx-modal .form__note,
.dx-modal .form__row,
.dx-modal .form__cols,
.dx-modal .form__item,
.dx-modal .form__btn-block {
  all: unset;
  display: block;
}

@media (max-width: 767px) {
  .dx-modal .modal-base__dialog {
    margin: 16px;
  }
  .dx-modal .modal-base__body {
    padding: 28px 20px;
    border-radius: 16px;
  }
  .dx-modal__title {
    font-size: 22px;
  }
}

/* ==========================================================================
   STICKY MOBILE CTA
   ========================================================================== */
.dx-sticky-cta {
  display: none;
}

@media (max-width: 767px) {
  .dx-sticky-cta {
    display: flex;
    gap: 8px;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 9990;
    padding: 12px 16px;
    padding-bottom: max(12px, env(safe-area-inset-bottom));
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border-top: 1px solid #e8e9eb;
  }

  .dx-sticky-cta__btn {
    display: block;
    flex: 1;
    padding: 14px 12px;
    border: none;
    border-radius: 32px;
    font-family: 'Inter', sans-serif;
    font-size: 15px;
    font-weight: 600;
    text-align: center;
    text-decoration: none !important;
    cursor: pointer;
    transition: background 0.2s;
  }

  .dx-sticky-cta__btn--primary {
    background: #29497a;
    color: #fff !important;
  }

  .dx-sticky-cta__btn--primary:hover,
  .dx-sticky-cta__btn--primary:active {
    background: #1e3660;
  }

  .dx-sticky-cta__btn--secondary {
    background: #F6F7F9;
    color: #29497a !important;
    border: none;
  }

  .dx-sticky-cta__btn--secondary:hover,
  .dx-sticky-cta__btn--secondary:active {
    background: #edeef0;
  }

  /* Отступ для контента, чтобы sticky не перекрывал */
  .dx-footer {
    padding-bottom: 72px;
  }
}

/* --- Badge «Новый специалист» — см. блок Doctor card v2 в конце файла --- */

/* ==========================================================================
   CONTACTS PAGE REDESIGN
   ========================================================================== */
.dx-contacts.contacts-page {
  padding-top: 0 !important;
}

.dx-contacts .page-header-block {
  padding-top: 48px;
}

.dx-contacts .header-page__heading {
  text-transform: none !important;
}

.dx-contact-card {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  border-radius: 24px;
  overflow: hidden;
  margin-bottom: 24px;
}

.dx-contact-card__info {
  background: #F6F7F9;
  padding: 40px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 16px;
}

.dx-contact-card__name {
  font-family: 'Inter', sans-serif;
  font-size: 22px;
  font-weight: 700;
  color: #29497a;
  letter-spacing: -0.02em;
  line-height: 1.3;
  margin: 0 0 8px;
}

.dx-contact-card__row {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  line-height: 1.5;
  color: #1a1a1a;
}

.dx-contact-card__row a {
  color: #29497a;
  text-decoration: none;
  font-weight: 500;
}

.dx-contact-card__row a:hover {
  text-decoration: underline;
}

.dx-contact-card__icon {
  width: 20px;
  height: 20px;
  min-width: 20px;
  margin-top: 2px;
  color: #29497a;
}

.dx-contact-card__icon svg {
  width: 20px;
  height: 20px;
}

.dx-contact-card__map {
  width: 100%;
  height: 100%;
  min-height: 380px;
}

/* Hide old blue panel */
.dx-contacts .contacts-panel__item {
  display: none;
}

/* Form spacing */
.dx-contacts .dx-forms-inline {
  margin-top: 24px;
  margin-bottom: 48px;
}

@media (max-width: 767px) {
  .dx-contacts.contacts-page {
  padding-top: 0 !important;
}

.dx-contacts .page-header-block {
    margin-top: 24px;
  }

  .dx-contact-card {
    grid-template-columns: 1fr;
    border-radius: 16px;
  }

  .dx-contact-card__info {
    padding: 24px;
    gap: 12px;
  }

  .dx-contact-card__name {
    font-size: 18px;
  }

  .dx-contact-card__map {
    min-height: 280px;
  }
}

/* ==========================================================================
   DOCTORS PAGE: /specialists/
   Единый каталог врачей с фильтрами (клиника, специальность, ФИО)
   ========================================================================== */

/* .doctors-page висит на элементе, у которого уже класс .container с 15px
   горизонтальным padding. Переопределяем ТОЛЬКО вертикальный отступ, чтобы
   не сломать сетку сайта. */
.doctors-page {
  padding-top: 32px;
  padding-bottom: 64px;
  font-family: 'Inter', sans-serif;
}

.doctors-page__header {
  margin-bottom: 24px;
}

.doctors-page__title {
  font-family: 'Inter', sans-serif;
  font-size: clamp(26px, 3.4vw, 36px);
  font-weight: 600;
  letter-spacing: -0.01em;
  color: #0a1f44;
  margin: 0;
  line-height: 1.2;
}

.doctors-page__subtitle {
  font-family: 'Inter', sans-serif;
  font-size: 16px;
  line-height: 1.55;
  color: #5a6a7a;
  margin: 12px 0 0;
  max-width: 820px;
}
@media (max-width: 767px) {
  .doctors-page__subtitle { font-size: 14px; margin-top: 8px; }
}

/* Фильтры */
.doctors-filters {
  background: #f7f8fa;
  border-radius: 16px;
  padding: 20px;
  margin-bottom: 32px;
}

.doctors-filters__row {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 12px;
}

.doctors-filters__field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.doctors-filters__label {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.doctors-filters__field { min-width: 0; }

.doctors-filters__select,
.doctors-filters__input {
  width: 100%;
  max-width: 100%;
  min-width: 0;
  box-sizing: border-box;
  height: 52px;
  padding: 0 22px;
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  font-weight: 500;
  color: #0a1f44;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 999px;
  outline: none;
  transition: border-color .15s, box-shadow .15s;
  appearance: none;
  -webkit-appearance: none;
  text-overflow: ellipsis;
}

.doctors-filters__select {
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'><path d='M1 1.5L6 6.5L11 1.5' stroke='%236b7280' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/></svg>");
  background-repeat: no-repeat;
  background-position: right 22px center;
  padding-right: 46px;
  cursor: pointer;
}

/* Чипы — фильтры по аудитории и формату приёма */
.doctors-filters__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}
.doctors-chip {
  display: inline-flex;
  align-items: center;
  height: 40px;
  padding: 0 18px;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 500;
  color: #0a1f44;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 999px;
  cursor: pointer;
  transition: background .15s, border-color .15s, color .15s;
}
.doctors-chip:hover { border-color: #29497a; }
.doctors-chip.is-active {
  background: #29497a;
  border-color: #29497a;
  color: #fff;
}

.doctors-filters__select:focus,
.doctors-filters__input:focus {
  border-color: #0a1f44;
  box-shadow: 0 0 0 3px rgba(10, 31, 68, 0.08);
}

.doctors-filters__input::-webkit-search-cancel-button {
  cursor: pointer;
}

.doctors-filters__reset {
  margin-top: 16px;
  background: none;
  border: none;
  color: #0a1f44;
  font-family: 'Inter', sans-serif;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  padding: 6px 0;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.doctors-filters__reset:hover {
  opacity: .7;
}

/* Сетка карточек */
.doctors-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

@media (max-width: 1024px) {
  .doctors-grid { grid-template-columns: repeat(3, 1fr); }
  .doctors-filters__row { grid-template-columns: 1fr 1fr; }
  .doctors-filters__field--search { grid-column: 1 / -1; }
}

@media (max-width: 767px) {
  .doctors-grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
  .doctors-filters__row { grid-template-columns: 1fr; }
  .doctors-filters { padding: 16px; }
  .doctors-filters__select, .doctors-filters__input { height: 48px; padding: 0 18px; }
  .doctors-filters__select { padding-right: 40px; background-position: right 18px center; }
  .doctors-chip { height: 38px; padding: 0 14px; font-size: 13px; }
}

@media (max-width: 480px) {
  .doctors-grid { grid-template-columns: 1fr; }
}

/* Карточка врача (.doctor-card) — устарела, заменена на .dx-card-item; см. блок Doctor card v2 в конце файла */

.doctors-empty,
.doctors-error {
  text-align: center;
  font-size: 16px;
  color: #6b7280;
  padding: 48px 16px;
}

/* ==========================================================================
   NAVBAR DROPDOWN — собственный компактный dropdown для десктопа.
   Старое .navbar__nav-dropdown-menu скрыто на десктопе, новое собирается
   через /js/nav-dropdown.js и получает класс .dx-nav-dd.
   На мобильном (<992px) ничего не трогаем — работает нативное меню сайта.
   ========================================================================== */

@media (min-width: 992px) {
  /* Полностью прячем оригинальное full-width меню на десктопе */
  .navbar__nav-item.dropdown.dx-has-new > .navbar__nav-dropdown-menu {
    display: none !important;
  }

  .navbar__nav-item.dropdown.dx-has-new {
    position: relative;
  }

  .dx-nav-dd {
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%) translateY(4px);
    min-width: 240px;
    max-width: 320px;
    padding: 8px 0;
    background: #fff;
    border: 1px solid #eef0f3;
    border-radius: 12px;
    box-shadow: 0 12px 32px rgba(10, 31, 68, 0.12);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .15s ease, visibility .15s ease, transform .15s ease;
    z-index: 1050;
  }

  .navbar__nav-item.dropdown.dx-has-new:hover > .dx-nav-dd,
  .navbar__nav-item.dropdown.dx-has-new:focus-within > .dx-nav-dd {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateX(-50%) translateY(0);
  }

  /* Hover-мост: ликвидирует 4px зазор между пунктом и меню */
  .dx-nav-dd::before {
    content: '';
    position: absolute;
    top: -4px;
    left: 0;
    right: 0;
    height: 4px;
  }

  .dx-nav-dd__link {
    display: block;
    padding: 10px 20px;
    font-family: 'Inter', sans-serif;
    font-size: 15px;
    font-weight: 400;
    color: #0a1f44;
    text-decoration: none;
    line-height: 1.4;
    white-space: nowrap;
    transition: background-color .15s, color .15s;
  }

  .dx-nav-dd__link:hover,
  .dx-nav-dd__link:focus {
    background-color: #f7f8fa;
    color: #0a1f44;
    text-decoration: none;
  }
}

/* ==========================================================================
   Phase C1 (2026-04-27): убираем CAPS-стиль с заголовков на внутренних страницах
   ========================================================================== */
.header-page__heading,
.header-block__heading,
.header-block__heading a {
  text-transform: none !important;
}

/* ==========================================================================
   Phase F2 (2026-04-27): A11y — color-contrast fix
   .dx-forms__date (неактивная) — серый текст dow/month слишком светлый (3.56 < 4.5 AA)
   ========================================================================== */
.dx-forms__date:not(.is-active) .dx-forms__date-dow,
.dx-forms__date:not(.is-active) .dx-forms__date-month,
.dx-forms__time-range,
.dx-forms__time:not(.is-active) {
  color: #475467 !important;
}

/* ==========================================================================
   Stage 1 (2026-04-27): унификация H1 на внутренних страницах
   ========================================================================== */
/* Расширяем C1: убираем CAPS на всех вариантах H1 */
.header-page__heading,
.header-block__heading,
.header-block__heading a,
.header-news-block__heading,
.page-header__heading,
.doctors-page__title,
.spec-info__name {
  text-transform: none !important;
}

/* Унифицируем размер/цвет H1 под эталон .header-page__heading */
.page-header__heading,
.header-news-block__heading,
.doctors-page__title,
.spec-info__name {
  font-size: 45.7647px !important;
  font-weight: 600 !important;
  color: rgb(41, 73, 122) !important;
  letter-spacing: -0.02em !important;
}

/* ==========================================================================
   Stage 5 (2026-04-27): унификация отступов внутренних страниц
   Главная (.index-page) исключена — она уникальна.
   ========================================================================== */
.content-block:not(.index-page) {
  padding-top: 64px !important;       /* header → page H1 */
  padding-bottom: 80px !important;    /* last block → footer */
}

/* page-header-block (стандартный wrapper заголовка): отступ к контенту */
.content-block:not(.index-page) .page-header-block {
  margin-top: 0 !important;
  margin-bottom: 32px !important;     /* H1 → first content */
  padding: 0 !important;
}

/* H1 внутри page-header-block: без своих margin (управляет parent) */
.content-block:not(.index-page) .page-header-block > .header-page__heading,
.content-block:not(.index-page) .page-header-block > .page-header__heading,
.content-block:not(.index-page) .page-header-block > .header-news-block__heading {
  margin: 0 !important;
}

/* /specialists/ — другая обёртка заголовка (.doctors-page__header) */
.content-block:not(.index-page) .doctors-page__header {
  margin-top: 0 !important;
  margin-bottom: 32px !important;
  padding: 0 !important;
}
.content-block:not(.index-page) .doctors-page__header > .doctors-page__title {
  margin: 0 !important;
}

/* /articles/item/ и /news/item/ — header-news-block (другой класс wrapper) */
.content-block:not(.index-page) .header-news-block {
  margin-top: 0 !important;
  margin-bottom: 32px !important;
}

/* /specialists/ — отдельный wrapper section.doctors-page вместо .content-block */
section.doctors-page {
  padding-top: 64px !important;
  padding-bottom: 80px !important;
}

section.doctors-page .doctors-page__header {
  margin-top: 0 !important;
  margin-bottom: 32px !important;
  padding: 0 !important;
}
section.doctors-page .doctors-page__header > .doctors-page__title {
  margin: 0 !important;
}

/* Last block внутри content-block не должен иметь margin-bottom — padding уже задан */
.content-block:not(.index-page) > *:last-child,
.content-block:not(.index-page) > .container > *:last-child,
section.doctors-page > *:last-child {
  margin-bottom: 0 !important;
}

/* Дополнительное обнуление margin-bottom для часто встречающихся внутренних блоков, что добавляют свой margin-bottom и ломают единый padding снизу */
.content-block:not(.index-page) .personnel-item__block:last-child,
.content-block:not(.index-page) .text-block:last-child,
.content-block:not(.index-page) .text-container:last-child,
.content-block:not(.index-page) .row:last-child,
section.doctors-page .specialists-list__row:last-child,
section.doctors-page .specialists-section__list:last-child {
  margin-bottom: 0 !important;
}

/* ==========================================================================
   DOCTOR CARD v2 (Figma 2026-04, single source of truth)
   Используется на: /specialists/, /specialists/[spec]/, /directions/[slug]/,
   на главной (слайдер), на детской главной.
   Модификаторы фона:
     .dx-card-item--on-white   (по умолчанию для каталогов и листингов)
     .dx-card-item--on-grey    (для слайдеров на белой секции)
   ========================================================================== */

.dx-card-item {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  min-height: 540px;
  border-radius: 16px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  background: #ffffff;
  border: 1px solid #e3e6eb;          /* приглушённая статичная обводка */
  font-family: 'Inter', sans-serif;
}

.dx-card-item--on-grey {
  background: #f6f7f9;
  border-color: #f6f7f9;
}

/* Hover: только зум фото — без анимации обводки/тени (см. ниже scale на img) */

/* Stretched-link: вся карточка ведёт на профиль, кроме play и CTA */
.dx-card-item__main-link {
  display: flex;
  flex-direction: column;
  gap: 8px;                     /* отступ между ФИО и регалиями */
  color: inherit;
  text-decoration: none;
}

.dx-card-item__main-link::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
}

/* CTA — над растянутой ссылкой (play уже absolute, ему достаточно z-index) */
.dx-card-item__cta {
  position: relative;
  z-index: 3;
}

/* ---- Фото ---- */

.dx-card-item__image {
  position: relative;
  width: 100%;
  height: 340px;
  flex: 0 0 340px;
  background: #cfe3f5;
  overflow: hidden;
  border-radius: 16px;          /* скругление по всем 4 сторонам */
}

.dx-card-item__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
  transition: transform .35s ease;
  will-change: transform;
}

.dx-card-item:hover .dx-card-item__image img {
  transform: scale(1.04);
}

.dx-card-item__photo-placeholder {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #eef0f3, #dde2e8);
}

/* ---- Чипы поверх фото ---- */

.dx-card-item__rating,
.dx-card-item__exp,
.dx-card-item__new {
  position: absolute;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 34px;
  padding: 0 12px;
  border-radius: 48px;
  font-size: 12px;
  font-weight: 500;
  white-space: nowrap;
  z-index: 2;
  pointer-events: none;
  letter-spacing: 0;
}

.dx-card-item__rating {
  top: 19px;
  left: 19px;
  background: #ffffff;
  color: #1a1a1a;
}

.dx-card-item__rating-star {
  color: #FDC92B;
  font-size: 14px;
  line-height: 1;
}

/* контейнер для нижних чипов: order — Новый, потом Стаж */
.dx-card-item__chips {
  position: absolute;
  left: 19px;
  bottom: 19px;
  display: flex;
  align-items: center;
  gap: 8px;
  z-index: 2;
}

.dx-card-item__chips .dx-card-item__exp,
.dx-card-item__chips .dx-card-item__new {
  position: static;
}

.dx-card-item__exp {
  background: #ffffff;
  color: #1a1a1a;
}

.dx-card-item__new {
  background: #29497a;
  color: #ffffff;
}

/* ---- Кнопка play (видео-приветствие) ---- */

.dx-card-item__play {
  position: absolute;
  top: 19px;
  right: 19px;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #29497a;
  border: none;
  padding: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 3;
  transition: transform .2s ease, background .2s ease;
}

.dx-card-item__play:hover {
  background: #1e3660;
  transform: scale(1.08);
}

.dx-card-item__play svg {
  width: 12px;
  height: 12px;
  fill: #ffffff;
  margin-left: 2px;
}

/* ---- Тело карточки ---- */

.dx-card-item__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  padding: 20px;
  background: inherit;
}

.dx-card-item__text {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.dx-card-item__title {
  margin: 0 !important;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.3;
  color: #29497a;
  letter-spacing: -0.01em;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.dx-card-item__desc {
  margin: 0 !important;
  font-size: 14px;
  font-weight: 400;
  line-height: 1.4;
  color: #5a6a7a;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* ---- CTA ---- */

.dx-card-item__cta {
  display: block;
  width: 100%;
  height: 38px;
  margin-top: auto;          /* прибито к низу */
  border: none;
  border-radius: 8px;
  background: #eef0f4;
  color: #29497a;
  font-family: inherit;
  font-size: 14px;
  font-weight: 500;
  line-height: 38px;
  text-align: center;
  cursor: pointer;
  transition: background .2s ease, color .2s ease;
}

.dx-card-item__cta:hover,
.dx-card-item__cta:focus-visible,
.dx-card-item__cta:active {
  background: #29497a;
  color: #ffffff;
  outline: none;
}

/* ---- Адаптив ---- */

@media (max-width: 1024px) {
  .dx-card-item { min-height: 520px; }
  .dx-card-item__image { height: 320px; flex-basis: 320px; }
}

@media (max-width: 767px) {
  .dx-card-item {
    min-height: 480px;
    border-radius: 16px;
  }
  .dx-card-item__image {
    height: 280px;
    flex-basis: 280px;
  }
  .dx-card-item__rating,
  .dx-card-item__chips {
    top: 14px;
    left: 14px;
  }
  .dx-card-item__chips {
    top: auto;
    bottom: 14px;
  }
  .dx-card-item__play {
    top: 14px;
    right: 14px;
  }
  .dx-card-item__body { padding: 18px; }
}

/* Сетка — алиас для существующих .doctors-grid и .dx-specialists-grid */
.doctors-grid,
.dx-specialists-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}

@media (max-width: 1024px) {
  .doctors-grid,
  .dx-specialists-grid { grid-template-columns: repeat(3, 1fr); gap: 20px; }
}

@media (max-width: 767px) {
  .doctors-grid,
  .dx-specialists-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}

/* «Показать ещё» — пагинация на /specialists/ */
.doctors-load-more-wrap {
  display: flex;
  justify-content: center;
  margin-top: 40px;
}

.dx-loadmore-btn {
  height: 48px;
  padding: 0 32px;
  border-radius: 999px;
  border: 1px solid #29497a;
  background: transparent;
  color: #29497a;
  font-family: 'Inter', sans-serif;
  font-size: 15px;
  font-weight: 500;
  cursor: pointer;
  transition: background .2s ease, color .2s ease;
}

.dx-loadmore-btn:hover,
.dx-loadmore-btn:focus-visible {
  background: #29497a;
  color: #ffffff;
  outline: none;
}
