/* ============================================================
   like.doctor — redesign stylesheet
   Дизайн-токены, типографика, базовая раскладка контейнера.
   Брейкпоинт мобилки — 768px.
   ============================================================ */

:root {
  /* ====== Дизайн-токены (взяты из design Like Doctor/*.jsx) ====== */
  /* Фон страницы (design-canvas) и базовый текст */
  --ld-bg: #f0eee9;
  --ld-fg: #0F172A;            /* slate-900 — главный текст */
  --ld-fg-muted: #475569;      /* slate-600 — вторичный текст */
  --ld-fg-soft: #64748B;       /* slate-500 — приглушённый текст */
  --ld-fg-faint: #94A3B8;      /* slate-400 — самый бледный текст */
  --ld-line: rgba(15, 23, 42, .06);

  /* Slate-шкала (используется в разных секциях) */
  --ld-slate-50:  #F8FAFC;
  --ld-slate-100: #F1F5F9;
  --ld-slate-200: #E2E8F0;
  --ld-slate-300: #CBD5E1;
  --ld-slate-700: #334155;

  /* Главный акцент. ВАЖНО: дефолт в дизайне — #3B82F6 (Tailwind blue-500),
     задан как window.__TWEAK_DEFAULTS.accent во всех HTML-страницах дизайна
     (Стоматология Менделеев.html и др.). Используется для:
       • кнопок «Оставить отзыв» / «Записаться» / других primary-кнопок,
       • дашевой подчёркнутой ссылки-адреса в hero,
       • kicker-заголовков секций («Поделитесь опытом» и т.п.),
       • бейджей с tone="accent",
       • декоративных подсвечиваний (hover на чипсах). */
  --ld-accent: #3B82F6;
  --ld-accent-soft: rgba(59, 130, 246, .14);

  /* Цвет ссылок и рейтингов — синий из дизайна (#0089E0).
     Используется для имён клиник, врачей, цифр рейтинга, иконок звёзд рядом
     с цифрами рейтинга. Отдельный от --ld-accent, не зависит от тематической
     перекраски акцента. */
  --ld-link: #0089E0;
  --ld-link-soft: #5C9DD0;     /* приглушённый вариант для подписей под ссылкой */

  /* Статусы (success/warn/danger) — взяты из ld-shared.jsx */
  --ld-success: #1F7A3D;
  --ld-success-bg: #E7F7EE;
  --ld-warn: #9A6213;
  --ld-warn-bg: #FFF4E0;
  --ld-danger: #DC2626;        /* красный для ошибок/удаления */
  --ld-stars:  #F5A623;        /* «золотой» цвет звёзд рейтинга клиник */

  /* Карточки */
  --ld-card-bg: #fff;
  --ld-card-radius: 14px;
  --ld-card-shadow-soft: 0 8px 24px rgba(15, 23, 42, .06);

  /* Типографика */
  --ld-font: 'Manrope', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --ld-mono: ui-monospace, 'SF Mono', Menlo, monospace;

  /* Лэйаут */
  --ld-container: 1240px;
  --ld-pad-x: 32px;
}

@media (max-width: 768px) {
  :root {
    --ld-pad-x: 16px;
  }
}

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

html, body {
  margin: 0;
  padding: 0;
  background: var(--ld-bg);
  color: var(--ld-fg);
  font-family: var(--ld-font);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a { color: inherit; text-decoration: none; }
/* Сбрасываем глобальный a:hover { color:#fff } из main.css — на белом фоне ссылки исчезают.
   :where(.ld-page) — нулевая специфичность для .ld-page, итого селектор имеет вес (0,1,1)
   ровно как у main.css a:hover, и побеждает по порядку.
   color: var(--ld-accent) — дефолтный hover-цвет для НЕстилизованных ссылок (синий).
   ЛЮБОЕ class-based :hover-правило (.ld-ed-doc-name:hover, .ld-btn--primary:hover,
   .ld-hero__cta:hover) имеет специфичность ≥ (0,2,0) и побеждает этот дефолт. */
:where(.ld-page) a:hover, :where(.ld-page) a:focus { color: var(--ld-accent); text-decoration: none; }

/* Контейнер фиксированной ширины — используется во всех секциях */
.ld-container {
  max-width: var(--ld-container);
  margin: 0 auto;
  padding: 0 var(--ld-pad-x);
}

/* Карточка клиники подаётся на белом фоне (отлично от #f0eee9 страницы) */
.ld-page { background: #fff; }

/* main.css задаёт html{min-height:100%} body{min-height:100%} — это может растягивать
   страницу за пределы контента (особенно когда внутри body есть невидимые элементы
   вроде yandex-tracking scripts). Отключаем оба правила в редизайне. */
html:has(body.ld-page) { min-height: 0 !important; }
body.ld-page { min-height: 0 !important; }


/* ====== TopNav ====== */
.ld-topnav {
  border-bottom: 1px solid var(--ld-line);
  background: #fff;
  position: sticky;
  top: 0;
  z-index: 30;
}
.ld-topnav__inner {
  max-width: var(--ld-container);
  margin: 0 auto;
  padding: 14px var(--ld-pad-x);
  display: flex;
  align-items: center;
  gap: 16px;
}
/* --- Логотип --- */
.ld-topnav__logo {
  display: flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  flex: 0 0 auto;
}
.ld-topnav__logo-icon {
  display: block;
  width: 28px;
  height: 28px;
  object-fit: contain;
  flex: 0 0 auto;
}
.ld-topnav__logo-text {
  display: block;
  height: 32px;
  width: auto;
  object-fit: contain;
  flex: 0 0 auto;
}
/* ===========================================================================
   Поиск + выбор города — кастомный typeahead (см. design/ld-search-combo.jsx)
   Структура:
     .ld-search
     ├── .ld-search__field           — пилюля (38px → 56px при is-open)
     │   ├── .ld-search__icon--mag   — лупа (режим search)
     │   ├── .ld-search__icon--city  — стрелка-навигатор (режим city)
     │   ├── .ld-search__input       — текстовое поле
     │   ├── .ld-search__city        — кнопка-пилюля "в Москве" (режим search)
     │   └── .ld-search__close       — × закрыть город (режим city)
     └── .ld-search__dropdown        — выпадашка с результатами / подсказкой
   =========================================================================== */
.ld-search {
  position: relative;
  flex: 1;
  min-width: 0;
}
.ld-search__field {
  display: flex;
  align-items: center;
  gap: 8px;
  background: #F1F5F9;
  border-radius: 10px;
  padding: 0 12px;
  height: 38px;
  position: relative;
  z-index: 2;
  transition: background .15s ease, height .15s ease, border-radius .15s ease, padding .15s ease, box-shadow .15s ease;
}
.ld-search.is-open .ld-search__field {
  background: #fff;
  height: 56px;
  padding: 0 16px;
  border-radius: 12px 12px 0 0;
  box-shadow: inset 0 0 0 1px rgba(15,23,42,.08);
}
/* Иконка лупы / стрелки-навигатора слева */
.ld-search__icon {
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  color: #64748B;
  width: 16px;
  height: 16px;
  transition: color .15s ease, width .15s ease, height .15s ease;
}
.ld-search__icon svg { width: 100%; height: 100%; display: block; }
.ld-search.is-open .ld-search__icon--mag {
  color: #0F172A;
  width: 20px;
  height: 20px;
}
.ld-search__icon--city {
  color: #0F172A;
  width: 20px;
  height: 20px;
}
/* Поле ввода */
.ld-search__input {
  border: 0;
  background: transparent;
  flex: 1;
  outline: none;
  font-family: inherit;
  font-size: 14px;
  color: var(--ld-fg);
  min-width: 0;
  height: 100%;
  transition: font-size .15s ease;
  padding: 0;
}
.ld-search__input::placeholder { color: #94A3B8; }
.ld-search.is-open .ld-search__input { font-size: 17px; }
/* Пилюля города (правый край поля) */
.ld-search__city {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 30px;
  padding: 0 10px 0 8px;
  border-radius: 8px;
  border: 0;
  background: #fff;
  cursor: pointer;
  font-family: inherit;
  font-size: 13px;
  font-weight: 600;
  color: var(--ld-fg);
  box-shadow: 0 1px 2px rgba(15,23,42,.06), inset 0 0 0 1px rgba(15,23,42,.08);
  white-space: nowrap;
  flex: 0 0 auto;
  text-decoration: none;
  transition: background .15s ease, box-shadow .15s ease;
}
.ld-search.is-open .ld-search__city {
  background: #F1F5F9;
  box-shadow: none;
}
/* Кнопка закрытия выбора города */
.ld-search__close {
  border: 0;
  background: transparent;
  cursor: pointer;
  color: #94A3B8;
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  flex: 0 0 auto;
  padding: 0;
}
.ld-search__close:hover { color: #475569; }
/* Выпадашка */
.ld-search__dropdown {
  display: none;
  position: absolute;
  top: 55px;          /* fieldHeight (56) − 1px чтобы слиться */
  left: 0;
  right: 0;
  background: #fff;
  border-radius: 0 0 12px 12px;
  box-shadow: 0 1px 0 rgba(15,23,42,.06), 0 0 0 1px rgba(15,23,42,.08), 0 28px 60px -20px rgba(15,23,42,.22);
  overflow: hidden;
  z-index: 1;
  max-height: min(70vh, 560px);
  overflow-y: auto;
}
.ld-search.is-open .ld-search__dropdown { display: block; }
/* Подсказка (пустой запрос / ничего не найдено) */
.ld-search__hint {
  padding: 18px 20px 22px;
  display: flex;
  align-items: flex-start;
  gap: 12px;
  color: #64748B;
}
.ld-search__hint-icon {
  flex: 0 0 auto;
  color: #94A3B8;
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
}
.ld-search__hint-icon svg { width: 100%; height: 100%; display: block; }
.ld-search__hint-text { min-width: 0; }
.ld-search__hint-title { color: var(--ld-fg); font-size: 15px; }
.ld-search__hint-sub { color: #64748B; font-size: 13px; margin-top: 2px; }
/* Строка результата */
.ld-search__row {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 14px 20px;
  background: #fff;
  cursor: pointer;
  border-bottom: 1px solid rgba(15,23,42,.04);
}
.ld-search__row:last-child { border-bottom: 0; }
.ld-search__row.is-active { background: #F1F5F9; }
.ld-search__row--note {
  cursor: default;
  background: #F1F5F9;
}
.ld-search__row-icon {
  flex: 0 0 auto;
  padding-top: 2px;
  color: var(--ld-link);          /* синий цвет ссылок из дизайна (#0089E0) */
  width: 22px;
  height: 22px;
  display: grid;
  place-items: center;
}
.ld-search__row-icon svg { width: 100%; height: 100%; display: block; }
.ld-search__row.is-active .ld-search__row-icon { color: var(--ld-fg-muted); }
.ld-search__row--note .ld-search__row-icon { color: var(--ld-fg-soft); }
.ld-search__row-text { flex: 1; min-width: 0; }
.ld-search__row-name {
  font-size: 16px;
  font-weight: 500;
  color: var(--ld-link);          /* синий цвет ссылок из дизайна (#0089E0) */
  line-height: 1.3;
  letter-spacing: -0.005em;
}
.ld-search__row-name b { font-weight: 700; }
.ld-search__row.is-active .ld-search__row-name { color: var(--ld-fg); }
.ld-search__row--note .ld-search__row-name { color: var(--ld-fg); }
.ld-search__row-sub {
  font-size: 13.5px;
  color: var(--ld-link-soft);     /* приглушённый синий для подписей под ссылкой (#5C9DD0) */
  margin-top: 3px;
  line-height: 1.35;
}
.ld-search__row.is-active .ld-search__row-sub { color: var(--ld-fg-muted); }
.ld-search__row--note .ld-search__row-sub { color: var(--ld-fg-soft); }
/* --- Избранное (десктоп — pill) --- */
.ld-topnav__favs {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 36px;
  padding: 0 14px;
  border-radius: 999px;
  background: #fff;
  box-shadow: inset 0 0 0 1px rgba(15,23,42,.10);
  color: var(--ld-fg);
  text-decoration: none;
  font-size: 14px;
  font-weight: 600;
  white-space: nowrap;
  flex: 0 0 auto;
  transition: box-shadow .15s, background .15s;
}
.ld-topnav__favs:hover { background: #F8FAFC; box-shadow: inset 0 0 0 1px rgba(15,23,42,.18); }
.ld-topnav__favs-count {
  display: none;
  background: #F1F5F9;
  color: #475569;
  font-size: 12px;
  font-weight: 700;
  padding: 1px 7px;
  border-radius: 999px;
  font-variant-numeric: tabular-nums;
}
.ld-topnav__favs-count:not(:empty) { display: inline-block; }
/* --- Избранное (мобиль — иконка с бейджем) --- */
.ld-topnav__favs-mobile {
  display: none;
  position: relative;
  width: 38px;
  height: 38px;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  color: var(--ld-fg);
  text-decoration: none;
}
.ld-topnav__favs-mobile-badge {
  display: none;
  position: absolute;
  top: 2px;
  right: 2px;
  background: var(--ld-accent);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 999px;
  place-items: center;
  font-variant-numeric: tabular-nums;
  box-shadow: 0 0 0 2px #fff;
}
.ld-topnav__favs-mobile-badge:not(:empty) { display: grid; }
/* --- Войти / Профиль --- */
.ld-topnav__login {
  color: var(--ld-fg-muted);
  text-decoration: none;
  font-weight: 500;
  font-size: 14px;
  white-space: nowrap;
  flex: 0 0 auto;
}
/* --- Пилюля залогиненного пользователя: аватар-кружок + Фамилия И. О. --- */
.ld-topnav__user {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 600;
  color: var(--ld-fg);
  text-decoration: none;
  white-space: nowrap;
  flex: 0 0 auto;
}
.ld-topnav__user-avatar {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0;
  box-shadow: inset 0 0 0 1px rgba(15,23,42,.08);
  text-transform: uppercase;
  flex: 0 0 auto;
}
.ld-topnav__user--user .ld-topnav__user-avatar  { background: #E0F2FE; color: #0369A1; }
.ld-topnav__user--admin .ld-topnav__user-avatar { background: #FEF3C7; color: #92400E; }

/* --- Гамбургер (десктоп + мобиль) --- */
.ld-topnav__menu {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  background: #fff;
  border: 0;
  border-radius: 999px;
  box-shadow: inset 0 0 0 1px rgba(15,23,42,.1);
  cursor: pointer;
  flex: 0 0 auto;
  color: var(--ld-fg);
  padding: 0;
}
.ld-topnav__menu-badge {
  position: absolute;
  top: -2px;
  right: -2px;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 999px;
  background: #EF4444;
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  display: grid;
  place-items: center;
  box-shadow: 0 0 0 2px #fff;
  font-variant-numeric: tabular-nums;
}
/* --- Мобильная адаптация --- */
@media (max-width: 768px) {
  .ld-topnav__inner { padding: 10px var(--ld-pad-x); gap: 10px; }
  .ld-topnav__logo-text { display: none; }
  .ld-search__city { display: none; }      /* пилюля города — на мобиле скрыта */
  .ld-topnav__favs { display: none; }
  .ld-topnav__favs-mobile { display: inline-flex; }
  .ld-topnav__login,
  .ld-topnav__user-name { display: none; } /* «Войти» / ФИО прячем — оставляем только аватарку и бургер */
}

/* ====== HeaderMenu (выезжающая панель) ====== */
.ld-hm {
  position: fixed;
  inset: 0;
  z-index: 1000;
}
.ld-hm[hidden] { display: none; }
.ld-hm__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15,23,42,.45);
  opacity: 0;
  transition: opacity .2s ease;
}
.ld-hm.is-open .ld-hm__backdrop { opacity: 1; }
.ld-hm__sheet {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: min(360px, 92vw);
  background: #fff;
  box-shadow: -24px 0 60px -20px rgba(15,23,42,.25);
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform .25s cubic-bezier(.2,.7,.2,1);
  font-family: var(--ld-font);
}
.ld-hm.is-open .ld-hm__sheet { transform: translateX(0); }

.ld-hm__header {
  padding: 16px 18px 14px;
  border-bottom: 1px solid rgba(15,23,42,.06);
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 0 0 auto;
}
.ld-hm__avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 14px;
  font-weight: 700;
  flex: 0 0 auto;
  text-transform: uppercase;
}
.ld-hm__avatar--user  { background: #E0F2FE; color: #0369A1; }
.ld-hm__avatar--admin { background: #FEF3C7; color: #92400E; }
.ld-hm__head-text { flex: 1; min-width: 0; }
.ld-hm__head-title {
  font-size: 15px;
  font-weight: 700;
  color: var(--ld-fg);
  display: flex;
  align-items: center;
  gap: 8px;
}
.ld-hm__head-badge {
  padding: 2px 7px;
  border-radius: 999px;
  background: #FEE2E2;
  color: #B91C1C;
  font-size: 11px;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}
.ld-hm__head-sub {
  font-size: 13px;
  color: var(--ld-fg-soft);
  margin-top: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ld-hm__close {
  width: 36px;
  height: 36px;
  border-radius: 999px;
  border: 0;
  background: #F1F5F9;
  color: #475569;
  cursor: pointer;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
}

.ld-hm__body {
  flex: 1;
  overflow-y: auto;
  padding: 4px 0 16px;
}
.ld-hm__section {
  padding: 6px 0;
  border-bottom: 1px solid rgba(15,23,42,.05);
}
.ld-hm__section-title {
  padding: 10px 20px 4px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: #94A3B8;
}
.ld-hm__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 20px;
  color: var(--ld-fg);
  font-size: 15px;
  font-weight: 500;
  text-decoration: none;
}
.ld-hm__link:hover { background: #F1F5F9; }
.ld-hm__badge {
  min-width: 22px;
  height: 20px;
  padding: 0 7px;
  border-radius: 999px;
  background: #FEE2E2;
  color: #B91C1C;
  font-size: 11px;
  font-weight: 800;
  display: grid;
  place-items: center;
  font-variant-numeric: tabular-nums;
}
.ld-hm__plus {
  width: 22px;
  height: 22px;
  border-radius: 999px;
  background: #FEE2E2;
  color: #B91C1C;
  font-size: 14px;
  font-weight: 800;
  display: grid;
  place-items: center;
  cursor: pointer;
  line-height: 1;
}
.ld-hm__plus:hover { background: #FCA5A5; color: #fff; }

.ld-hm__group-toggle {
  width: 100%;
  border: 0;
  background: transparent;
  cursor: pointer;
  padding: 14px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-family: inherit;
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #475569;
  text-align: left;
}
.ld-hm__group-toggle:hover { background: #F8FAFC; }
.ld-hm__chev {
  color: #94A3B8;
  transition: transform .15s ease;
}
.ld-hm__group.is-open .ld-hm__chev { transform: rotate(90deg); }
.ld-hm__group-body { display: none; padding-bottom: 8px; }
.ld-hm__group.is-open .ld-hm__group-body { display: block; }

.ld-hm__footer {
  padding: 12px 18px 14px;
  border-top: 1px solid rgba(15,23,42,.06);
  display: grid;
  gap: 8px;
  flex: 0 0 auto;
}
.ld-hm__btn {
  height: 44px;
  border-radius: 12px;
  border: 0;
  font-family: inherit;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  text-decoration: none;
}
.ld-hm__btn--primary { background: var(--ld-accent); color: #fff; }
.ld-hm__btn--ghost {
  background: transparent;
  color: #475569;
  box-shadow: inset 0 0 0 1px rgba(15,23,42,.12);
  font-weight: 600;
  font-size: 14px;
  height: 40px;
}

/* ====== RatingBanner ====== */
.ld-rating-banner {
  max-width: var(--ld-container);
  margin: 16px auto 0;
  padding: 0 var(--ld-pad-x);
}
.ld-rating-banner__inner {
  position: relative;
  overflow: hidden;
  border-radius: 14px;
  background: linear-gradient(90deg, #4B2BC9 0%, #2A6FE0 50%, #289ED4 100%);
  padding: 18px 28px;
  display: flex;
  align-items: center;
  min-height: 72px;
  color: #fff;
}
.ld-rating-banner__title {
  flex: 1;
  font-size: 19px;
  font-weight: 700;
  letter-spacing: -.01em;
  padding: 0 18px;
}
.ld-rating-banner__close {
  background: transparent;
  border: 0;
  color: #fff;
  opacity: .7;
  cursor: pointer;
  padding: 4px 8px;
  font-size: 18px;
  line-height: 1;
}
.ld-rating-banner__close:hover { opacity: 1; }
@media (max-width: 768px) {
  .ld-rating-banner__inner { padding: 14px 16px; min-height: 56px; }
  .ld-rating-banner__title { font-size: 15px; padding: 0 12px; }
}

/* ====== Breadcrumbs ====== */
.ld-breadcrumbs {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 0 0;
}
.ld-breadcrumbs__nav {
  font-size: 13px;
  color: var(--ld-fg-soft);
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  min-width: 0;
}
.ld-breadcrumbs__nav a { color: var(--ld-fg-soft); text-decoration: none; }
.ld-breadcrumbs__nav a:hover { color: var(--ld-fg); }
.ld-breadcrumbs__chevron { color: var(--ld-fg-faint); }
.ld-breadcrumbs__meta { display: inline-flex; }
@media (max-width: 768px) {
  .ld-breadcrumbs { padding: 12px 0 0; }
  .ld-breadcrumbs__meta { display: none !important; }
}

/* ====== Missing data marker ======
   Жёлтый бейдж — для элементов, которых нет в БД, но они есть в дизайне.
   Видно глазом, чтобы доработать данные параллельно. */
.ld-missing {
  background: #FFF3A8 !important;
  color: #6B5700 !important;
  outline: 2px dashed #E0A800;
  outline-offset: 2px;
  position: relative;
}
.ld-missing::before {
  content: '⚠ нет в БД';
  position: absolute;
  top: -10px; left: 50%;
  transform: translateX(-50%);
  background: #E0A800;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 4px;
  letter-spacing: .03em;
  pointer-events: none;
  white-space: nowrap;
  z-index: 5;
}

/* ====== Hero ====== */
.ld-hero { padding: 24px 0 16px; }

.ld-hero__avatar-wrap {
  margin-top: 12px;
  display: flex;
  justify-content: center;
  position: relative;
  z-index: 2;
}
.ld-hero__avatar-rel { position: relative; display: inline-block; }
.ld-hero__avatar {
  width: 184px;
  height: 184px;
  border-radius: 50%;
  background: #fff;
  padding: 6px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, .16);
}
.ld-hero__avatar-img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  overflow: hidden;
  position: relative;
  display: grid;
  place-items: center;
  color: #fff;
  font-weight: 800;
  font-size: 64px;
}
.ld-hero__avatar-img img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Favorite-кнопка справа-снизу от логотипа */
.ld-clinic-fav {
  position: absolute;
  right: -6px; bottom: 8px;
  width: 52px; height: 52px;
  border-radius: 50%;
  border: 0; cursor: pointer;
  background: #fff;
  box-shadow: inset 0 0 0 1.5px rgba(15,23,42,.14), 0 1px 2px rgba(15,23,42,.06);
  display: grid; place-items: center;
  transition: all .18s ease;
}
.ld-clinic-fav[data-active="1"] {
  background: #EF4444;
  box-shadow: 0 6px 16px rgba(239, 68, 68, .27);
}
.ld-clinic-fav[data-active="1"] svg { stroke: #fff; fill: #fff; }

/* Счётчик добавлений в избранное (на кнопке-сердечке у логотипа клиники).
   Маленький бейдж справа-снизу от сердечка. Скрыт, если пусто (count = 0). */
.ld-clinic-fav__count {
  position: absolute;
  bottom: -4px;
  right: -4px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 2px 6px rgba(15,23,42,.18), inset 0 0 0 1px rgba(15,23,42,.08);
  font-size: 11px;
  font-weight: 700;
  color: #0F172A;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.ld-clinic-fav__count:empty { display: none; }

/* Favorite-кнопка в hero страницы врача (аналог .ld-clinic-fav, но для врача).
   Базовый вид + активное состояние (синяя заливка, белое сердце). */
.ld-doc-hero-fav {
  width: 52px; height: 52px; border-radius: 50%;
  border: 0; cursor: pointer; background: #fff;
  box-shadow: inset 0 0 0 1.5px rgba(15,23,42,.14), 0 1px 2px rgba(15,23,42,.06);
  display: grid; place-items: center;
  transition: all .18s ease;
}
.ld-doc-hero-fav:hover { box-shadow: inset 0 0 0 1.5px rgba(15,23,42,.22), 0 4px 12px rgba(15,23,42,.10); }
.ld-doc-hero-fav[data-active="1"] {
  background: var(--ld-accent);
  box-shadow: 0 6px 16px rgba(59, 130, 246, .27);
}
.ld-doc-hero-fav[data-active="1"] svg { stroke: #fff; fill: #fff; }
.ld-doc-hero-fav__count {
  position: absolute; left: 74%; bottom: -6px;
  min-width: 22px; height: 22px; padding: 0 6px;
  border-radius: 999px; background: #fff; color: #0F172A;
  font-size: 12px; font-weight: 800; line-height: 1;
  font-variant-numeric: tabular-nums;
  display: grid; place-items: center;
  box-shadow: 0 2px 8px rgba(15,23,42,.22);
  pointer-events: none; white-space: nowrap;
}
.ld-doc-hero-fav__count:empty { display: none; }

/* ============================================================
   Страница «Мои избранные» - карточки врачей
   ============================================================ */
.ld-fav-doctors {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 16px;
}
.ld-fav-doctor {
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 1px 2px rgba(15,23,42,.04), 0 8px 20px rgba(15,23,42,.06);
  overflow: hidden;
  transition: transform .15s, box-shadow .15s;
  display: flex;
  flex-direction: column;
}
.ld-fav-doctor:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(15,23,42,.10);
}
.ld-fav-doctor__photo {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 3;
  background: linear-gradient(135deg, #DBEAFE 0%, #BFDBFE 100%);
  display: grid;
  place-items: center;
  overflow: hidden;
}
.ld-fav-doctor__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ld-fav-doctor__initials {
  font-size: 48px;
  font-weight: 800;
  color: #fff;
  letter-spacing: .02em;
}
.ld-fav-doctor__body {
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.ld-fav-doctor__name {
  font-size: 17px;
  font-weight: 800;
  color: #0089E0;
  line-height: 1.2;
  text-decoration: none;
}
.ld-fav-doctor__name:hover { color: var(--ld-accent); }
.ld-fav-doctor__meta { font-size: 14px; color: #64748B; }

.ld-hero__center {
  margin-top: 18px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}
.ld-hero__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
}

.ld-hero__network {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 15px; color: var(--ld-fg-soft);
  text-decoration: none; cursor: pointer;
  font-weight: 800;
  padding-top: 10px;
}
.ld-hero__network-name {
  color: var(--ld-accent);
}

.ld-hero h1, .ld-hero__h1-wrap {
  margin: 0;
  font-size: 46px;
  line-height: 1.04;
  font-weight: 800;
  letter-spacing: -.025em;
  text-wrap: balance;
  max-width: 720px;
  color: var(--ld-fg);
}
.ld-hero__h1-wrap {
  display: block;
}
.ld-hero__edit-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; border-radius: 50%;
  background: rgba(15,23,42,.06);
  color: #3B82F6;
  text-decoration: none;
  transition: background .15s, color .15s;
  font-size: 0;
  vertical-align: middle;
  margin-left: 6px;
  position: relative; top: -2px;
}
.ld-hero__edit-btn:hover {
  background: rgba(59,130,246,.12);
  color: #3B82F6;
}

/* Бейдж «клиника скрыта от пользователей» — зачёркнутый глазик рядом с шестерёнкой.
   Показывается только когда $model->show == 0 (галочка «Не отображать клинику»
   в секции _admin.php). Управляется классом --on; toggle через JS-функцию
   ldClinicToggleHiddenBadge, которая объявлена в _admin.php. */
.ld-hero__hidden-badge {
  display: none;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #FEE2E2;
  color: #B91C1C;
  vertical-align: middle;
  margin-left: 6px;
  position: relative;
  top: -2px;
}
.ld-hero__hidden-badge--on { display: inline-flex; }

/* ════════════════════════════════════════════════════════════════════════════
   Admin section (.ld-admin-section)
   Внизу страницы клиники между блоком «Запишитесь на приём» и подвалом.
   Видна только администратору (role_id = 1).
   Дублирует функционал старого views/blocks/admin/rightblock.php.
   ════════════════════════════════════════════════════════════════════════════ */
.ld-admin-card {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 24px;
  padding: 24px;
  background: #fff;
  border: 1px solid var(--ld-line);
  border-radius: var(--ld-card-radius);
  box-shadow: var(--ld-card-shadow-soft);
}
.ld-admin-card__col {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.ld-admin-card__col--info {
  gap: 8px;
  padding: 14px 16px;
  background: #F8FAFC;
  border-radius: 12px;
  align-self: start;
}

/* Чекбоксы */
.ld-admin-check {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 0;
  cursor: pointer;
  font-size: 14px;
  color: #1E293B;
  font-weight: 500;
  line-height: 1.35;
}
.ld-admin-check input[type="checkbox"] {
  width: 18px;
  height: 18px;
  cursor: pointer;
  accent-color: var(--ld-accent);
  flex-shrink: 0;
  margin: 0;
}
.ld-admin-check span { margin: 0; }

/* Ссылки-действия */
.ld-admin-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 0;
  font-size: 14px;
  font-weight: 600;
  color: var(--ld-accent);
  text-decoration: none;
  transition: opacity .15s ease;
}
.ld-admin-link:hover,
.ld-admin-link:focus {
  color: var(--ld-accent);
  opacity: .7;
  text-decoration: none;
}
.ld-admin-link svg { flex: 0 0 auto; }
/* Опасное действие (удаление клиники из БД) */
.ld-admin-link--danger { color: #D6453B; }
.ld-admin-link--danger:hover,
.ld-admin-link--danger:focus { color: #D6453B; opacity: .75; }

/* Инфо-строки (даты, дубликат) */
.ld-admin-info-row {
  display: flex;
  gap: 8px;
  font-size: 14px;
  color: #64748B;
  line-height: 1.5;
}
.ld-admin-info-lbl { font-weight: 600; }
.ld-admin-info-val { color: #0F172A; font-variant-numeric: tabular-nums; }
.ld-admin-info-row--alert {
  color: #B91C1C;
  font-weight: 600;
  background: #FEE2E2;
  padding: 6px 10px;
  border-radius: 6px;
  margin-top: 4px;
}

@media (max-width: 900px) {
  .ld-admin-card {
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 18px;
  }
}

/* Представители клиники (внутри админ-секции) */
.ld-admin-reps {
  margin-top: 18px;
  padding: 20px 24px 24px;
  background: #fff;
  border: 1px solid var(--ld-line);
  border-radius: var(--ld-card-radius);
  box-shadow: var(--ld-card-shadow-soft);
}
.ld-admin-reps__head {
  font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  color: #93A0B5; margin-bottom: 14px;
}
.ld-admin-reps__empty { font-size: 14px; color: #93A0B5; }
.ld-admin-reps__list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 12px;
}
.ld-admin-rep {
  display: flex; align-items: center; gap: 12px;
  padding: 12px; border: 1px solid var(--ld-line); border-radius: 12px;
  background: #F8FAFC;
}
.ld-admin-rep__photo { flex: none; }
.ld-admin-rep__photo img {
  width: 48px; height: 48px; border-radius: 50%; object-fit: cover; display: block;
}
.ld-admin-rep__body { min-width: 0; flex: 1; display: flex; flex-direction: column; gap: 2px; }
.ld-admin-rep__name {
  font-size: 14px; font-weight: 700; color: #0F172A; text-decoration: none;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.ld-admin-rep__name:hover { color: var(--ld-accent); }
.ld-admin-rep__desc {
  font-size: 13px; color: #5E6B82; line-height: 1.35;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.ld-admin-rep__fire {
  flex: none; display: inline-flex; align-items: center; gap: 5px;
  font-size: 13px; font-weight: 600; color: #B91C1C; text-decoration: none;
  padding: 6px 8px; border-radius: 8px; transition: background .15s;
}
.ld-admin-rep__fire:hover { background: #FEE2E2; color: #991B1B; }
.ld-admin-rep__fire svg { flex: none; }

@media (max-width: 600px) {
  .ld-admin-reps { padding: 16px; }
  .ld-admin-reps__list { grid-template-columns: 1fr; }
}

/* Админ-секция врача: слияние/добавление (поле + кнопка), документы */
.ld-admin-merge { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-top: 12px; }
.ld-admin-merge input {
  height: 38px; padding: 0 12px; border-radius: 10px;
  border: 1px solid rgba(15,23,42,.16); font-family: inherit; font-size: 14px; min-width: 220px;
}
.ld-admin-merge button {
  height: 38px; padding: 0 16px; border-radius: 10px; border: 0; cursor: pointer;
  background: var(--ld-accent); color: #fff; font-family: inherit; font-size: 14px; font-weight: 600;
}
.ld-admin-merge button:hover { background: #2563EB; }
.ld-admin-docs { display: flex; flex-wrap: wrap; gap: 14px; }
.ld-admin-doc { display: flex; flex-direction: column; gap: 6px; width: 160px; text-decoration: none; color: #475569; font-size: 13px; }
.ld-admin-doc img { width: 160px; height: 120px; object-fit: cover; border-radius: 10px; box-shadow: 0 1px 4px rgba(15,23,42,.12); }
.ld-admin-doc span { font-weight: 600; }

/* Редактирование мест работы врача (redesign/user/history.php) */
.ld-wp-row { padding: 16px 0; border-bottom: 1px solid rgba(15,23,42,.07); }
.ld-wp-row__main { display: grid; grid-template-columns: 1fr 160px 160px 40px; gap: 12px; align-items: end; }
.ld-wp-row:last-child { border-bottom: 0; }
.ld-wp-row__specs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-top: 12px; }
.ld-wp-specs__lbl { font-size: 13px; color: #64748B; font-weight: 600; }
.ld-wp-spec { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; color: #334155; cursor: pointer; background: #F8FAFC; border: 1px solid rgba(15,23,42,.08); border-radius: 8px; padding: 5px 10px; user-select: none; }
.ld-wp-spec input { margin: 0; cursor: pointer; }
.ld-wp-row .ld-form-label { display: block; font-size: 13px; color: #64748B; font-weight: 600; margin-bottom: 5px; }
.ld-wp-row .ld-form-input { width: 100%; }
.ld-wp-row__del { width: 40px; height: 42px; border: 0; background: transparent; color: #94A3B8; cursor: pointer; border-radius: 10px; display: grid; place-items: center; }
.ld-wp-row__del:hover { background: #FEE2E2; color: #DC2626; }
.ld-wp-add { display: inline-flex; align-items: center; gap: 8px; margin-top: 14px; background: transparent; border: 0; color: var(--ld-accent); font-family: inherit; font-size: 15px; font-weight: 600; cursor: pointer; padding: 6px 0; }
.ld-ac-drop { position: absolute; left: 0; right: 0; top: 100%; z-index: 30; background: #fff; border: 1px solid rgba(15,23,42,.14); border-radius: 10px; box-shadow: 0 8px 24px rgba(15,23,42,.14); max-height: 260px; overflow: auto; margin-top: 4px; }
.ld-ac-item { padding: 9px 12px; font-size: 14px; color: #0F172A; cursor: pointer; }
.ld-ac-item:hover { background: #F1F5F9; }
@media (max-width: 600px) {
  .ld-wp-row__main { grid-template-columns: 1fr 1fr 40px; }
  .ld-wp-row__clinic { grid-column: 1 / -1; }
}
.ld-hero__address {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 15px;
  color: var(--ld-accent);
  font-weight: 600;
  text-decoration: none;
  border-bottom: 1px dashed rgba(59, 130, 246, .4);
  padding-bottom: 1px;
}

/* Metro stations row */
.ld-hero__metros {
  display: flex; flex-direction: column; gap: 6px;
  font-size: 14px; color: var(--ld-fg-muted);
}
.ld-hero__metro {
  display: inline-flex; align-items: center; gap: 8px;
  justify-content: center;
}
.ld-hero__metro-dot {
  width: 10px; height: 10px; border-radius: 50%;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.06);
  flex: 0 0 auto;
}
.ld-hero__metro-name { color: var(--ld-fg); font-weight: 500; }
.ld-hero__metro-sep { color: #CBD5E1; }
.ld-hero__metro-mins { font-variant-numeric: tabular-nums; }

.ld-hero__rating {
  display: inline-flex;
  align-items: center;
  flex-wrap: nowrap;
  gap: 8px;
  font-size: 17px;
  line-height: 1.2;
  color: var(--ld-fg-muted);
  font-weight: 500;
}
.ld-hero__rating-num { color: var(--ld-fg); font-weight: 800; font-variant-numeric: tabular-nums; }
.ld-hero__rating-label { color: var(--ld-success); font-weight: 700; }
.ld-hero__rating-sep { color: #CBD5E1; }
.ld-hero__rating-reviews { color: var(--ld-fg); font-weight: 700; }
.ld-hero__rating-anon { color: var(--ld-fg-faint); }

.ld-hero__desc {
  margin: 0;
  font-size: 16px;
  line-height: 1.55;
  color: var(--ld-fg-muted);
  max-width: 640px;
  text-wrap: pretty;
}
.ld-hero__phones {
  margin-top: 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}
.ld-hero__phones-list {
  display: flex; flex-direction: column; align-items: center; gap: 14px;
}
.ld-hero__phone-item {
  display: flex; flex-direction: column; align-items: center; gap: 4px;
}
.ld-hero__phone {
  font-size: 26px;
  font-weight: 700;
  letter-spacing: -.01em;
  font-variant-numeric: tabular-nums;
  color: var(--ld-fg);
  text-decoration: none;
  transition: opacity .15s ease;
}
.ld-hero__phone:hover, .ld-hero__phone:focus { color: var(--ld-fg); opacity: .7; text-decoration: none; }
.ld-hero__phone-label { font-size: 13px; color: var(--ld-fg-soft); font-weight: 500; }
.ld-hero__cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-top: 6px;
  padding: 14px 26px;
  border-radius: 12px;
  background: var(--ld-accent);
  color: #fff;
  border: none;
  text-decoration: none;
  font-family: inherit;
  font-size: 16px;
  font-weight: 700;
  letter-spacing: -.005em;
  cursor: pointer;
  box-shadow: 0 6px 14px rgba(59, 130, 246, .25);
  transition: background .15s ease, box-shadow .15s ease;
}
.ld-hero__cta:hover, .ld-hero__cta:focus { background: #2563EB; color: #fff; text-decoration: none; box-shadow: 0 8px 20px rgba(59, 130, 246, .35); }
.ld-hero__cta:active { background: #1D4ED8; color: #fff; }
.ld-hero__contact-row {
  margin-top: 18px;
  padding: 18px 22px;
  border-radius: 16px;
  background: #F8FAFC;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
}
.ld-hero__contact-cell {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 0 22px;
  border-left: 1px solid rgba(15,23,42,.08);
}
.ld-hero__contact-cell:first-child { border-left: 0; padding-left: 0; }
.ld-hero__contact-icon {
  width: 32px; height: 32px; border-radius: 8px; background: #fff;
  box-shadow: inset 0 0 0 1px rgba(15,23,42,.06);
  display: grid; place-items: center; flex: 0 0 auto;
}
.ld-hero__contact-title { font-size: 14px; font-weight: 700; color: var(--ld-fg); line-height: 1.3; }
.ld-hero__contact-sub { font-size: 12px; color: var(--ld-fg-soft); margin-top: 2px; }

.ld-hero__trust-badges {
  margin-top: 16px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
}

@media (max-width: 768px) {
  .ld-hero { padding: 12px 0 8px; }
  .ld-hero__avatar { width: 140px; height: 140px; }
  .ld-hero__avatar-img { font-size: 48px; }
  .ld-clinic-fav { width: 44px; height: 44px; right: -4px; bottom: 4px; }
  .ld-hero h1 { font-size: 30px; }
  .ld-hero__phone { font-size: 22px; }
  .ld-hero__rating { font-size: 15px; flex-wrap: wrap; justify-content: center; }
  .ld-hero__contact-row { grid-template-columns: 1fr; gap: 14px; padding: 14px 16px; }
  .ld-hero__contact-cell { border-left: 0; padding: 0; }
  .ld-hero__cta { padding: 12px 22px; font-size: 15px; }
  .ld-missing::before { font-size: 9px; padding: 1px 4px; }
}

/* ====== Badge ====== */
.ld-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 999px;
  background: #F1F5F9;
  color: #334155;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
}
.ld-badge--warn { background: var(--ld-warn-bg); color: var(--ld-warn); }
.ld-badge--accent { background: var(--ld-accent-soft); color: var(--ld-accent); }
.ld-badge--success { background: var(--ld-success-bg); color: var(--ld-success); }

/* ====== Buttons ====== */
.ld-btn {
  display: inline-flex;
  align-items: center; justify-content: center; gap: 8px;
  height: 44px; padding: 0 18px;
  border-radius: 12px; border: none;
  font-family: inherit; font-size: 15px; font-weight: 600;
  cursor: pointer; transition: all .15s;
  white-space: nowrap; text-decoration: none;
  line-height: 1;
}
.ld-btn--secondary {
  background: #fff;
  color: #0F172A;
  box-shadow: inset 0 0 0 1px rgba(15,23,42,.12);
}
.ld-btn--secondary:hover {
  background: #F8FAFC;
  box-shadow: inset 0 0 0 1.5px rgba(15,23,42,.22);
  color: #0F172A;
}
.ld-btn--secondary:active {
  background: #F1F5F9;
  box-shadow: inset 0 0 0 1.5px rgba(15,23,42,.28);
  color: #0F172A;
  transform: translateY(1px);
}
.ld-btn--ghost {
  background: transparent;
  color: var(--ld-accent);
  box-shadow: none;
  padding: 0 12px;
}
.ld-btn--ghost:hover { background: rgba(59,130,246,.08); color: var(--ld-accent); }
.ld-btn--sm { height: 36px; padding: 0 14px; font-size: 14px; border-radius: 12px; }

/* ====== Section title (H2) ====== */
.ld-section {
  padding: 40px 0;
}
.ld-section--bg { background: #F8FAFC; }
.ld-section__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 24px;
}
/* Inline-вариант (как в PromotionsSection из ld-sections.jsx):
   kicker отдельной строкой, заголовок и ссылка-«more» — рядом на одной строке. */
.ld-section__head--inline {
  display: block;
}
.ld-section__head--inline .ld-section__title-row {
  display: flex;
  align-items: baseline;
  gap: 20px;
  flex-wrap: wrap;
}
@media (max-width: 768px) {
  .ld-section__head--inline .ld-section__title-row { gap: 10px; }
}
/* Kicker (мини-метка над заголовком) — токены дизайн-системы:
   14px, weight 800, dim-цвет, uppercase, letter-spacing 0.08em */
.ld-section__kicker {
  font-size: 14px;
  font-weight: 800;
  color: var(--ld-fg-soft);
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 8px;
}
/* Ссылка-«more» в заголовке секции — по правилу link из ld-tokens:
   color: accent, hover: opacity .7, без подчёркивания. */
.ld-section__more {
  font-size: 15px;
  color: var(--ld-accent);
  font-weight: 600;
  text-decoration: none;
  white-space: nowrap;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  transition: opacity .15s ease;
}
.ld-section__more:hover, .ld-section__more:focus {
  color: var(--ld-accent);
  opacity: .7;
  text-decoration: none;
}
.ld-section h2,
.ld-section__title {
  margin: 0;
  font-size: 28px;
  font-weight: 700;
  color: var(--ld-fg);
  letter-spacing: -.01em;
  line-height: 1.15; /* по эталону ld-sections.jsx — иначе браузерный 1.5 даёт большое межстрочное */
}
@media (max-width: 768px) {
  .ld-section { padding: 28px 0; }
  .ld-section h2,
  .ld-section__title { font-size: 22px; }
}

/* ====== Card ====== */
.ld-card {
  background: var(--ld-card-bg);
  border-radius: var(--ld-card-radius);
  box-shadow: var(--ld-card-shadow-soft);
  padding: 24px;
}
.ld-card--flat { box-shadow: none; background: #F8FAFC; }
.ld-card--outlined { box-shadow: inset 0 0 0 1px var(--ld-line); background: #fff; }

/* ====== About ====== */
/* ────────────────────── О КЛИНИКЕ (About) ────────────────────── */

/* Двухколонная сетка: текст слева, карта+реквизиты справа */
.ld-about-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  gap: 32px;
  align-items: start;
}
.ld-about-grid--single { grid-template-columns: 1fr; }

/* ── Левая колонка ── */
.ld-about-left { min-width: 0; }

.ld-about-text {
  transition: max-height .3s ease;
}
.ld-about-text p {
  font-size: 16px; line-height: 1.75;
  color: var(--ld-fg); margin: 0 0 14px;
}
.ld-about-text p:last-child { margin-bottom: 0; }

/* кнопка «Показать полностью» */
.ld-about-toggle {
  display: inline-flex; align-items: center; gap: 5px;
  margin-top: 10px;
  color: var(--ld-accent); font-weight: 600; font-size: 15px;
  text-decoration: underline; text-underline-offset: 3px;
  cursor: pointer;
}
.ld-about-toggle:hover { opacity: .8; }

/* SEO-шаблон (генерируется из типа клиники/города) */
.ld-about-seo {
  font-size: 15px; line-height: 1.7;
  color: var(--ld-fg-muted);
}
.ld-about-seo--separated { margin-top: 20px; padding-top: 20px; border-top: 1px solid var(--ld-slate-200); }
.ld-about-seo p { margin: 0 0 12px; }
.ld-about-seo p:last-child { margin-bottom: 0; }

/* ── Правая колонка ── */
.ld-about-right { min-width: 0; display: grid; gap: 14px; }

/* Карточка: мини-карта + адрес + контакты */
.ld-about-contact-card { padding: 0; overflow: hidden; }
.ld-about-map-wrap { line-height: 0; }

.ld-about-contact-body { padding: 16px 18px; display: grid; gap: 14px; }

.ld-about-contact-row {
  display: flex; gap: 10px; align-items: flex-start;
}
.ld-about-contact-row__icon { flex-shrink: 0; margin-top: 2px; }
.ld-about-contact-row__main {
  font-size: 14px; font-weight: 600; color: var(--ld-fg); line-height: 1.3;
}
.ld-about-contact-row__sub {
  display: flex; align-items: center; gap: 6px;
  font-size: 13px; color: var(--ld-fg-muted); margin-top: 3px;
}
.ld-about-contact-row__link {
  display: inline-block; font-size: 13px; margin-top: 5px;
  color: var(--ld-accent); text-decoration: underline; text-underline-offset: 2px;
}
.ld-about-contact-row__link:hover { opacity: .8; }
.ld-about-contact-row__phone {
  font-size: 15px; font-weight: 700; color: var(--ld-fg); text-decoration: none;
  font-variant-numeric: tabular-nums;
}
.ld-about-contact-row__phone:hover { color: var(--ld-accent); }

/* Кружки соцсетей */
.ld-about-socials {
  display: flex; gap: 8px; flex-wrap: wrap; padding-top: 4px;
}
.ld-about-social-btn {
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border-radius: 50%;
  background: var(--ld-slate-100); color: #475569;
  transition: background .15s, color .15s;
}
.ld-about-social-btn:hover { background: var(--ld-accent); color: #fff; }

/* Карточка: юридическая информация */
.ld-about-legal-card { padding: 16px 18px; }
.ld-about-legal-card__title {
  font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .06em;
  color: #94A3B8; margin-bottom: 12px;
}
.ld-about-legal-dl {
  margin: 0; display: grid;
  grid-template-columns: 200px 1fr;
  gap: 10px 12px;
  font-size: 13px; line-height: 1.45;
}
.ld-about-legal-dl dt { color: #64748B; font-weight: 500; }
.ld-about-legal-dl dd {
  margin: 0; color: var(--ld-fg); font-weight: 500; word-break: break-word;
}
.ld-about-legal-dl__mono {
  font-family: ui-monospace, "SF Mono", monospace;
  font-variant-numeric: tabular-nums; letter-spacing: .02em;
}

/* ── Адаптив ── */
@media (max-width: 768px) {
  .ld-about-grid { grid-template-columns: 1fr; gap: 24px; }
  .ld-about-legal-dl { grid-template-columns: 1fr; gap: 6px 0; }
  .ld-about-legal-dl dt { padding-bottom: 0; }
  .ld-about-legal-dl dd { margin-bottom: 6px; }
}

/* ── Устаревшие классы (оставлены для обратной совместимости) ── */
.ld-about__text {
  font-size: 16px; line-height: 1.7;
  color: var(--ld-fg-muted); max-width: 900px;
}
.ld-about__text p { margin: 0 0 14px; }
.ld-about__text p:last-child { margin-bottom: 0; }
.ld-about__description {
  font-size: 16px; line-height: 1.75;
  color: var(--ld-fg); max-width: 900px;
  white-space: pre-line; margin-bottom: 20px;
}

/* ====== Stats ====== */
.ld-stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.ld-stat {
  background: #F8FAFC;
  border-radius: var(--ld-card-radius);
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.ld-stat__num {
  font-size: 32px;
  font-weight: 800;
  color: var(--ld-fg);
  font-variant-numeric: tabular-nums;
  letter-spacing: -.02em;
}
.ld-stat__label {
  font-size: 13px;
  color: var(--ld-fg-soft);
  font-weight: 500;
}
@media (max-width: 768px) {
  .ld-stats { grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .ld-stat { padding: 14px; }
  .ld-stat__num { font-size: 24px; }
}

/* ====== Services chips ====== */
.ld-services__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.ld-services__chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border-radius: 999px;
  background: #F1F5F9;
  color: var(--ld-fg);
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  transition: all .15s;
}
.ld-services__chip:hover { background: var(--ld-accent-soft); color: var(--ld-accent); }

/* ====== Doctors ====== */

/* Filter row */
.ld-doctors-filter {
  display: grid;
  grid-template-columns: 1fr 450px;
  gap: 10px;
  margin-bottom: 16px;
}
.ld-doctors-search-wrap {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  background: #fff;
  border-radius: 12px;
  padding: 0 14px;
  height: 48px;
  box-shadow: inset 0 0 0 1.5px rgba(15,23,42,.10);
  transition: box-shadow .15s;
  cursor: text;
}
.ld-doctors-search-wrap:focus-within {
  box-shadow: inset 0 0 0 1.5px var(--ld-accent);
}
.ld-doctors-search {
  flex: 1;
  border: 0;
  outline: none;
  background: transparent;
  font-family: inherit;
  font-size: 15px;
  color: #0F172A;
  min-width: 0;
}
.ld-doctors-search::placeholder { color: #94A3B8; }
.ld-doctors-search-clear {
  flex: 0 0 auto;
  width: 26px; height: 26px;
  border-radius: 50%; border: 0;
  background: #F1F5F9; color: #64748B;
  cursor: pointer;
  display: grid; place-items: center;
  font-size: 16px; line-height: 1;
}
.ld-doctors-dept-wrap {
  position: relative;
}
.ld-doctors-dept {
  width: 100%; height: 48px;
  padding: 0 38px 0 14px;
  border-radius: 12px; border: 0;
  box-shadow: inset 0 0 0 1.5px rgba(15,23,42,.10);
  background: #fff;
  font-family: inherit; font-size: 15px;
  color: #64748B;
  outline: none;
  appearance: none; -webkit-appearance: none; -moz-appearance: none;
  cursor: pointer;
  transition: box-shadow .15s;
}
.ld-doctors-dept:focus { box-shadow: inset 0 0 0 1.5px var(--ld-accent); }
.ld-doctors-dept:has(option:not([value=""]):checked) { color: #0F172A; }
.ld-doctors-dept-arrow {
  position: absolute;
  right: 14px; top: 50%;
  transform: translateY(-50%);
  pointer-events: none;
  color: #64748B;
  display: flex; align-items: center;
}
/* Селект специализации = кастомный комбобокс (поиск + скролл, стиль сайта).
   Когда комбобокс собран - прячем нативную стрелку и подгоняем триггер под фильтр (48px). */
.ld-doctors-dept-wrap:has(.ld-combo) .ld-doctors-dept-arrow { display: none; }
.ld-doctors-dept-wrap .ld-combo__trigger {
  height: 48px;
  padding: 0 14px;
  border: 0;
  border-radius: 12px;
  box-shadow: inset 0 0 0 1.5px rgba(15,23,42,.10);
  font-size: 15px;
  color: #0F172A;
}
.ld-doctors-dept-wrap .ld-combo__trigger--placeholder .ld-combo__value { color: #94A3B8; }
.ld-doctors-dept-wrap .ld-combo.is-open .ld-combo__trigger,
.ld-doctors-dept-wrap .ld-combo__trigger:focus-visible {
  box-shadow: inset 0 0 0 1.5px var(--ld-accent);
}

/* Cards list */
.ld-doctors-list {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}
.ld-doctors-empty {
  display: none;
  padding: 28px;
  text-align: center;
  color: #64748B;
  font-size: 15px;
  background: #fff;
  border-radius: var(--ld-card-radius);
  box-shadow: inset 0 0 0 1px var(--ld-line);
}
.ld-doctors-empty.is-visible { display: block; }
.ld-doctors-reset {
  display: inline-block;
  margin-left: 8px;
  color: var(--ld-accent);
  background: transparent; border: 0;
  cursor: pointer;
  font-family: inherit; font-size: 15px; font-weight: 600;
}

/* ── Doctor card (wide horizontal) ── */
.ld-doctor-card2 {
  background: #fff;
  border-radius: var(--ld-card-radius);
  box-shadow: inset 0 0 0 1px var(--ld-line);
  overflow: hidden;
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  padding: 0;
}

/* Group A: photo column + content */
.ld-doctor-card2__main {
  flex: 1 1 540px;
  min-width: 0;
  display: grid;
  grid-template-columns: 244px 1fr; /* 200px фото + 22px паддинги слева/справа = 244px */
  align-items: stretch;
}

/* Photo column */
.ld-doctor-card2__photo-col {
  padding: 22px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 12px;
}
.ld-doctor-card2__photo-wrap {
  position: relative;
  flex: 0 0 auto;
}
.ld-doctor-card2__photo {
  width: 200px; height: 200px;
  border-radius: 50%;
  object-fit: cover;
  display: block;
  box-shadow: inset 0 0 0 1px rgba(15,23,42,.06);
}
.ld-doctor-card2__avatar {
  width: 200px; height: 200px;
  border-radius: 50%;
  overflow: hidden;
  background: linear-gradient(135deg, #E6EEFB, #C7D9F4);
  color: #1E4FA8;
  display: grid; place-items: center;
  font-weight: 700; font-size: 46px;
}

/* Fav button */
.ld-doctor-fav-btn {
  position: absolute;
  top: 8px; right: 8px;
  width: 34px; height: 34px;
  border-radius: 50%; border: 0;
  cursor: pointer;
  background: rgba(255,255,255,.96);
  box-shadow: 0 2px 8px rgba(15,23,42,.16);
  display: grid; place-items: center;
  transition: all .18s ease;
  color: #0F172A;
}
.ld-doctor-fav-btn[data-active="1"] {
  background: #EF4444;
  box-shadow: 0 4px 12px rgba(239,68,68,.34);
  color: #fff;
}
/* Активное сердце заливается сплошным белым (как у .ld-clinic-fav), а не остаётся контуром. */
.ld-doctor-fav-btn[data-active="1"] svg { stroke: #fff; fill: #fff; }
/* Мобильная версия: сердце выносим в угол фото (на десктопе остаётся 8px/8px). */
@media (max-width: 768px) {
  .ld-doctor-fav-btn { top: -7px; right: -7px; }
}

/* Verified pill */
.ld-doctor-card2__verified {
  position: absolute;
  left: 8px; bottom: 8px;
  display: inline-flex; align-items: center; gap: 4px;
  padding: 4px 8px 4px 6px;
  border-radius: 999px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 2px 8px rgba(15,23,42,.16);
  font-size: 11px; font-weight: 700; color: #0F172A;
  white-space: nowrap;
}
.ld-doctor-card2__verified-dot {
  display: inline-grid; place-items: center;
  width: 14px; height: 14px;
  border-radius: 50%;
  background: var(--ld-accent);
  flex: 0 0 auto;
}

/* Mobile info (beside photo — hidden on desktop) */
.ld-doctor-card2__mobile-info { display: none; }
.ld-doctor-card2__name-sm {
  font-size: 19px; font-weight: 800;
  color: var(--ld-accent);
  line-height: 1.2; letter-spacing: -0.01em;
  text-decoration: none;
  display: inline-block;
}
.ld-doctor-card2__name-sm:hover { color: var(--ld-accent); text-decoration: none; }
.ld-doctor-card2__spec-sm {
  margin-top: 6px;
  font-size: 13px; color: #475569; line-height: 1.35;
}
.ld-doctor-card2__rating-sm {
  margin-top: 8px;
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 13px; flex-wrap: wrap;
}

/* Content column */
.ld-doctor-card2__content {
  padding: 22px 8px 22px 0; /* слева 0: зазор от аватара = 22px паддинг photo-col, как слева */
  display: grid;
  gap: 12px;
  align-content: start;
}

/* Desktop info (name+specs — hidden on mobile) */
.ld-doctor-card2__desktop-info { /* visible by default */ }
.ld-doctor-card2__name {
  font-size: 24px; font-weight: 800;
  line-height: 1.15; letter-spacing: -0.015em;
  color: var(--ld-accent);
  text-decoration: none;
  display: inline-block;
  transition: opacity .15s ease;
}
.ld-doctor-card2__name:hover { color: var(--ld-accent); opacity: .7; text-decoration: none; }
/* Иконка редактирования врача рядом с ФИО (админ / управляющий клиники) */
.ld-doctor-card2__edit {
  display: inline-flex; align-items: center; justify-content: center;
  width: 30px; height: 30px; margin-left: 8px;
  border-radius: 8px; color: #64748B; background: #F1F5F9;
  vertical-align: middle; position: relative; top: -3px;
  transition: background .15s, color .15s;
}
.ld-doctor-card2__edit:hover { background: var(--ld-accent); color: #fff; }
.ld-doctor-card2__name-sm + .ld-doctor-card2__edit { width: 26px; height: 26px; top: 0; }
.ld-doctor-card2__specs {
  margin-top: 10px;
  font-size: 14px; color: #475569; line-height: 1.4;
}
.ld-doctor-card2__spec-primary { color: #64748B; font-weight: 400; }
.ld-doctor-card2__spec-rest { color: #64748B; }

/* Mobile extra specs row */
.ld-doctor-card2__mobile-extra { display: none; font-size: 13px; color: #64748B; line-height: 1.4; }

/* Rating row */
.ld-doctor-card2__rating {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 14px; color: #475569;
  flex-wrap: wrap;
}
.ld-doctor-card2__rating-num { color: #0F172A; font-weight: 700; }
.ld-doctor-card2__rating-label { color: #0F172A; font-weight: 600; }
.ld-doctor-card2__rating-count { color: #64748B; }
.ld-doctor-card2__rating-anon { color: #94A3B8; }

/* Portfolio row */
.ld-doctor-card2__portfolio {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 14px; color: #475569;
  flex-wrap: wrap;
}

/* Meta row: опыт + образование */
.ld-doctor-card2__meta {
  display: flex; flex-wrap: wrap;
  gap: 6px 14px;
  font-size: 14px; color: #475569;
  margin-top: 2px;
}
.ld-doctor-card2__meta-item {
  display: inline-flex; align-items: center; gap: 6px;
}

/* Credentials */
.ld-doctor-card2__credentials {
  display: inline-flex; align-items: flex-start; gap: 8px;
  font-size: 14px; color: #0F172A; font-weight: 600;
  line-height: 1.4;
}

/* Offer strip (free consultation) */
.ld-doctor-card2__offer {
  justify-self: start;
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 12px;
  border-radius: 10px;
  background: #E7F7EE; color: #155E2D;
  font-size: 14px; font-weight: 600;
  margin-top: 2px;
}
.ld-doctor-card2__offer-dot {
  display: inline-grid; place-items: center;
  width: 18px; height: 18px;
  border-radius: 50%;
  background: #1F7A3D;
  flex: 0 0 auto;
}

/* Group B: cases panel */
.ld-doctor-card2__cases-col {
  flex: 0 0 450px;
  min-width: 0;
}
.ld-doctor-cases {
  padding: 16px 22px 16px 8px;
  display: flex; flex-direction: column;
  gap: 10px;
  justify-content: center;
  height: 100%;
  box-sizing: border-box;
}
.ld-doctor-cases--empty-wrap { gap: 0; }
.ld-doctor-cases__empty {
  flex: 1;
  border-radius: 12px;
  padding: 32px 20px;
  background: #F8FAFC;
  border: 1px dashed rgba(15,23,42,.12);
  color: #94A3B8;
  text-align: center;
  font-size: 13px; line-height: 1.5;
  display: flex; align-items: center; justify-content: center;
}
.ld-doctor-cases__item {
  border-radius: 12px;
  overflow: hidden;
  background: #F8FAFC;
  border: 1px solid rgba(15,23,42,.06);
}
.ld-doctor-cases__photos {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: rgba(15,23,42,.08);
  aspect-ratio: 2.4 / 1;
}
.ld-doctor-cases__photo-half {
  position: relative;
  overflow: hidden;
  background: #fff;
}
.ld-doctor-cases__photo-half img {
  width: 100%; height: 100%;
  object-fit: cover; display: block;
}
.ld-doctor-cases__label {
  position: absolute;
  top: 6px; left: 6px;
  padding: 2px 8px;
  border-radius: 4px;
  background: rgba(15,23,42,.78); color: #fff;
  font-size: 10px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .06em;
}
.ld-doctor-cases__label--after { background: var(--ld-accent); }

/* Слайдер «до/после» в карточке врача (.ld-ba) - перетаскиваемый разделитель двух фото.
   Наследует aspect-ratio 2.4/1 от .ld-doctor-cases__photos; перекрывает grid на block. */
.ld-ba {
  display: block !important;
  position: relative;
  overflow: hidden;
  cursor: ew-resize;
  user-select: none;
  touch-action: none;
  background: #000;
  /* Фото работ стандартизированы как 2:1 (напр. 1000x500), поэтому бокс слайдера тоже 2:1 -
     иначе object-fit:cover обрезает фото (выглядит непропорционально). */
  aspect-ratio: 2 / 1;
}
.ld-ba__img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover; display: block;
}
.ld-ba__before { clip-path: inset(0 75% 0 0); } /* старт: 1/4 «до», 3/4 «после» */
.ld-ba__tag {
  position: absolute; top: 12px; z-index: 2;
  padding: 4px 10px; border-radius: 999px;
  font-size: 12px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .02em;
}
.ld-ba__tag--before { left: 12px; background: rgba(255,255,255,.95); color: #0F172A; }
.ld-ba__tag--after  { right: 12px; background: var(--ld-accent); color: #fff; }
.ld-ba__divider {
  position: absolute; top: 0; bottom: 0; left: 25%;
  width: 3px; background: #fff; transform: translateX(-50%);
  box-shadow: 0 0 0 1px rgba(15,23,42,.10); z-index: 3; pointer-events: none;
}
.ld-ba__handle {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: 32px; height: 32px; border-radius: 50%;
  background: #fff; display: grid; place-items: center;
  box-shadow: 0 4px 12px rgba(15,23,42,.28);
}
/* Ссылка-название работы «до/после» (дизайн-система: синяя ссылка, hover меняет цвет). */
.ld-case-title-link { color: var(--ld-link); text-decoration: none; transition: color .12s; }
.ld-case-title-link:hover, .ld-case-title-link:focus { color: var(--ld-accent); text-decoration: none; }
/* Если заголовок-ссылка внутри карточки-ссылки (.ld-work-card) - меняем цвет при наводке на всю карточку. */
.ld-work-card:hover .ld-case-title-link { color: var(--ld-accent); }
.ld-doctor-cases__info { padding: 10px 12px 12px; }
.ld-doctor-cases__title {
  font-size: 14px; font-weight: 600; color: #0F172A;
  line-height: 1.35;
}
.ld-doctor-cases__duration {
  margin-top: 6px;
  font-size: 13px; color: #64748B;
  display: flex; gap: 8px; align-items: center;
}
.ld-doctor-cases__tags {
  display: flex; flex-wrap: wrap; gap: 6px;
  margin-top: 10px;
}
.ld-doctor-cases__tag {
  font-size: 12px; font-weight: 500;
  padding: 4px 8px; border-radius: 6px;
  background: #F1F5F9; color: #475569;
}

/* ── Doctor promo card (shown instead of cases when no before/after photos) ── */
.ld-doctor-promo-card {
  display: flex; flex-direction: column;
  border-radius: 12px; overflow: hidden;
  background: #F8FAFC;
  border: 1px solid rgba(15,23,42,.07);
  width: 100%; text-decoration: none; color: inherit;
  transition: box-shadow .18s, transform .18s;
}
.ld-doctor-promo-card:hover {
  box-shadow: 0 6px 20px rgba(15,23,42,.10);
  transform: translateY(-2px);
}
.ld-doctor-promo-card__img {
  aspect-ratio: 2.4 / 1;
  background: #E5E7EB center/cover no-repeat;
  position: relative; flex-shrink: 0;
}
.ld-doctor-promo-card__badge {
  position: absolute; top: 8px; left: 8px;
  display: inline-flex; align-items: center; gap: 4px;
  background: var(--ld-accent, #3B82F6); color: #fff;
  font-size: 11px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .4px;
  padding: 3px 7px; border-radius: 6px;
  line-height: 1.4;
}
.ld-doctor-promo-card__price-tag {
  position: absolute; top: 8px; right: 8px;
  display: inline-flex; flex-direction: column; align-items: flex-end;
  background: rgba(15,23,42,.72); color: #fff;
  font-size: 13px; font-weight: 700;
  padding: 4px 8px; border-radius: 7px;
  font-variant-numeric: tabular-nums; line-height: 1.3;
}
.ld-doctor-promo-card__price-old {
  font-size: 11px; font-weight: 400;
  text-decoration: line-through; opacity: .7;
}
.ld-doctor-promo-card__body {
  padding: 10px 12px 12px;
  display: flex; flex-direction: column; gap: 5px;
}
.ld-doctor-promo-card__title {
  font-size: 14px; font-weight: 600;
  color: #0F172A; line-height: 1.35;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;
  overflow: hidden;
}
.ld-doctor-promo-card__until {
  display: flex; align-items: center; gap: 4px;
  font-size: 12px; color: #64748B; line-height: 1.4;
}
.ld-doctor-promo-card__until svg { flex-shrink: 0; }

/* Show all button */
.ld-doctors-showall {
  margin-top: 18px;
  text-align: center;
}

/* ── Mobile overrides ── */
@media (max-width: 768px) {
  .ld-doctors-filter {
    grid-template-columns: 1fr;
  }

  /* On mobile, card is block (stacks vertically) */
  .ld-doctor-card2 {
    display: block;
  }

  /* Group A on mobile: photo col switches to row layout */
  .ld-doctor-card2__main {
    grid-template-columns: 1fr;
  }

  .ld-doctor-card2__photo-col {
    padding: 18px 18px 0;
    flex-direction: row;
    align-items: flex-start;
  }

  .ld-doctor-card2__photo {
    width: 88px; height: 88px;
  }
  .ld-doctor-card2__avatar {
    width: 88px; height: 88px;
    font-size: 26px;
  }

  /* Show mobile info, hide desktop info */
  .ld-doctor-card2__mobile-info { display: block; min-width: 0; padding-top: 2px; }
  .ld-doctor-card2__desktop-info { display: none; }

  /* Show mobile extra specs, hide desktop rating */
  .ld-doctor-card2__mobile-extra { display: block; }
  .ld-doctor-card2__rating { display: none; }

  /* Content on mobile: more padding, less horizontal gap */
  .ld-doctor-card2__content {
    padding: 14px 18px 18px;
    gap: 10px;
  }

  /* Cases panel hidden on mobile */
  .ld-doctor-card2__cases-col { display: none; }
}

/* ====== Prices ====== */
.ld-prices-table {
  display: flex; flex-direction: column;
  border-radius: var(--ld-card-radius);
  background: #fff;
  box-shadow: inset 0 0 0 1px var(--ld-line);
  overflow: hidden;
}
.ld-prices-row {
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; padding: 14px 20px;
  border-top: 1px solid var(--ld-line);
}
.ld-prices-row:first-child { border-top: 0; }
.ld-prices-name { font-size: 15px; color: var(--ld-fg); }
.ld-prices-value {
  font-size: 15px; font-weight: 700; color: var(--ld-fg);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
@media (max-width: 768px) {
  .ld-prices-row { padding: 12px 14px; gap: 12px; font-size: 14px; }
  .ld-prices-row, .ld-prices-name, .ld-prices-value { font-size: 14px; }
}

/* ====== Ceny tips (admin hints) ====== */
.ld-ceny-tip {
  display: flex; align-items: flex-start; gap: 14px;
  padding: 16px 20px; border-radius: 12px; margin-bottom: 16px;
}
.ld-ceny-tip--global {
  background: #EFF6FF;
  border: 1px solid #BFDBFE;
  color: #1E40AF;
}
.ld-ceny-tip--global .ld-ceny-tip__icon { color: #3B82F6; }
.ld-ceny-tip--star {
  background: #FFF8E7; border: 1px solid #FDE68A; color: #92400E;
}
.ld-ceny-tip--fill {
  background: #ECFDF5; border: 1px solid #6EE7B7; color: #065F46;
}
.ld-ceny-tip__icon {
  flex-shrink: 0; margin-top: 1px;
}
.ld-ceny-tip--star .ld-ceny-tip__icon { color: #F59E0B; }
.ld-ceny-tip--fill .ld-ceny-tip__icon { color: #10B981; }
.ld-ceny-tip--promo {
  background: #FFF1F2;
  border-color: #FBCFE8;
}
.ld-ceny-tip--promo .ld-ceny-tip__icon { color: #F43F5E; }
.ld-ceny-tip__title {
  font-weight: 700; font-size: 14px; margin-bottom: 4px;
}
.ld-ceny-tip__text {
  font-size: 13px; line-height: 1.55;
}
.ld-ceny-tip__text strong { font-weight: 700; }

/* ====== Prices — tabbed (new design) ====== */
.ld-prices-all-link {
  font-size: 14px; font-weight: 600; color: var(--ld-accent);
  text-decoration: none; white-space: nowrap;
}
.ld-prices-all-link:hover { text-decoration: underline; }

.ld-prices-tabs {
  display: flex; flex-wrap: wrap; gap: 6px;
  margin-bottom: 18px;
}

.ld-prices-tab {
  padding: 10px 16px; border-radius: 999px; border: 0;
  cursor: pointer; font-family: inherit; font-size: 14px;
  font-weight: 600; white-space: nowrap;
  background: #F1F5F9; color: #334155;
  transition: background .15s, color .15s;
}
.ld-prices-tab::first-letter { text-transform: uppercase; }
.ld-prices-tab--active { background: #0F172A; color: #fff; }
.ld-prices-tab:hover:not(.ld-prices-tab--active) { background: #E2E8F0; }

.ld-prices-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
.ld-prices-card {
  background: #fff;
  border-radius: var(--ld-card-radius);
  box-shadow: var(--ld-card-shadow-soft);
  padding: 20px;
  display: flex; flex-direction: column;
}
.ld-prices-card__name {
  font-size: 16px; font-weight: 700; color: #0F172A; line-height: 1.35;
}
.ld-prices-card__name::first-letter { text-transform: uppercase; }
.ld-prices-card__desc {
  font-size: 13px; color: #64748B; margin-top: 6px; line-height: 1.5;
  flex: 1;
}
.ld-prices-card__price {
  font-size: 16px; font-weight: 800; color: var(--ld-accent);
  margin-top: 12px; font-variant-numeric: tabular-nums;
}
.ld-prices-card__price--free { color: #16a34a; }
.ld-prices-disclaimer {
  display: flex; align-items: flex-start; gap: 8px;
  font-size: 13px; color: #64748B; line-height: 1.5; margin-top: 14px;
}
@media (max-width: 768px) {
  .ld-prices-grid { grid-template-columns: 1fr; }
  .ld-prices-card { padding: 16px; }
  .ld-prices-card__name { font-size: 15px; }
  .ld-prices-card__price { font-size: 15px; }
}

/* ====== Promotions ======
   Эталон: ld-sections.jsx → PromotionsSection (строки 2181-2308).
   Карточка — 3 колонки grid: 220px (фото) | 1fr (контент) | auto (цена),
   gap 24px. БЕЗ кнопки «Подробнее» (вся карточка — ссылка). */

/* Число в скобках в шапке («Действующие акции (4)») — серое weight 600.
   Используется в секциях типа CasesSection. */
.ld-section__title-count {
  color: #94A3B8;
  font-weight: 600;
  margin-left: 4px;
}

/* Модификатор для NetworkMapSection — h2 как inline-flex baseline gap:10
   (эталон ld-sections.jsx:3186-3192). */
.ld-section__title--inline-flex {
  display: inline-flex;
  align-items: baseline;
  gap: 10px;
}

.ld-promo-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}
.ld-promo-card {
  display: grid;
  grid-template-columns: 220px 1fr auto;
  gap: 24px;
  background: #fff;
  border-radius: var(--ld-card-radius);
  box-shadow: var(--ld-card-shadow-soft);
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  transition: box-shadow .15s ease, transform .15s ease;
}
.ld-promo-card:hover { transform: translateY(-2px); box-shadow: 0 12px 32px rgba(15,23,42,.1); }

/* Колонка 1 — фото (квадрат 1:1) */
.ld-promo-photo {
  width: 220px;
  aspect-ratio: 1 / 1;
  align-self: stretch;
  background: #F1F5F9 center/cover no-repeat;
  flex-shrink: 0;
}
.ld-promo-photo--empty { background: #F1F5F9; }

/* Колонка 2 — контент. padding только вертикальный — горизонтальные отступы даёт grid gap. */
.ld-promo-content {
  padding: 20px 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}
.ld-promo-meta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
/* Бейдж тип-акции: серая pill, иконка accent, текст #475569. */
.ld-promo-tag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 10px;
  border-radius: 999px;
  background: #F1F5F9;
  color: #475569;
  font-size: 14px;
  font-weight: 700;
}
.ld-promo-tag svg { color: currentColor; }
.ld-promo-until { font-size: 14px; color: #94A3B8; font-weight: 500; }
/* Заголовок акции — accent-color по эталону (color: accent). */
.ld-promo-title {
  margin: 0;
  font-size: 19px;
  font-weight: 700;
  color: var(--ld-accent);
  letter-spacing: -.01em;
  line-height: 1.25;
  text-wrap: balance;
}
.ld-promo-desc {
  margin: 0;
  font-size: 14px;
  color: #64748B;
  line-height: 1.6;
  text-wrap: pretty;
}
.ld-promo-specs {
  font-size: 14px;
  color: #64748B;
  line-height: 1.6;
}

/* Колонка 3 — цена. По центру вертикально и горизонтально, padding-right 22px. */
.ld-promo-right {
  padding: 20px 22px 20px 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-width: 160px;
}
.ld-promo-price-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}
/* Цена крупная — СЕРАЯ (#94A3B8), не цветная (по эталону строки 2291-2293). */
.ld-promo-price-val {
  font-size: 26px;
  font-weight: 800;
  color: #94A3B8;
  letter-spacing: -.02em;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.ld-promo-price-old {
  font-size: 18px;
  color: #CBD5E1;
  text-decoration: line-through;
  font-variant-numeric: tabular-nums;
}

@media (max-width: 768px) {
  .ld-promo-card {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .ld-promo-photo { width: 100%; aspect-ratio: 1 / 1; }
  .ld-promo-content { padding: 16px 16px 4px; }
  .ld-promo-right {
    padding: 0 16px 16px;
    align-items: stretch;
    min-width: 0;
  }
  .ld-promo-price-block { align-items: flex-start; }
  .ld-promo-title { font-size: 17px; }
  .ld-promo-price-val { font-size: 22px; }
}

/* ====== Address ====== */
.ld-address-section { }
.ld-address-grid {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 24px;
  align-items: start;
}
/* Левая карточка — карта */
.ld-address-map-card {
  padding: 0;
  overflow: hidden;
  line-height: 0;
  min-height: 200px;
}
.ld-address-map-card--empty { background: #F1F5F9; }

/* Правая карточка — инфо */
.ld-address-info-card {
  display: grid;
  gap: 16px;
  padding: 24px;
}

/* Атомарные текстовые стили */
.ld-addr-lbl  { font-size: 13px; color: #64748B; margin-bottom: 4px; }
.ld-addr-bold { font-size: 17px; font-weight: 700; color: #0F172A; line-height: 1.35; }
.ld-addr-sub  { font-size: 14px; color: #475569; margin-top: 4px; }

/* Метро */
.ld-addr-metro-list { display: flex; flex-direction: column; gap: 5px; margin-top: 8px; }
.ld-addr-metro-item { display: flex; align-items: center; gap: 7px; font-size: 14px; color: #334155; }
.ld-addr-metro-dot  { flex-shrink: 0; width: 10px; height: 10px; border-radius: 50%; }
.ld-addr-metro-name { font-weight: 500; }
.ld-addr-metro-walk { color: #64748B; font-size: 13px; margin-left: 2px; }

/* 2-колоночная сетка (часы + телефон) */
.ld-addr-2col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
.ld-addr-hours-day  { font-size: 14px; color: #0F172A; font-weight: 600; }
.ld-addr-hours-time { font-size: 14px; color: #475569; margin-bottom: 6px; }
.ld-addr-phone      { font-size: 15px; color: #0F172A; font-weight: 600; text-decoration: none; display: inline-block; }
.ld-addr-phone:hover { color: var(--ld-accent); }
.ld-addr-phone-note { font-size: 13px; color: #94A3B8; margin-top: 4px; }

/* Кнопки */
.ld-addr-btn-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 4px;
}
.ld-btn--accent {
  background: var(--ld-accent);
  color: #fff;
}
.ld-btn--accent:hover { background: #2563EB; color: #fff; }

/* Клиника онлайн */
.ld-addr-online {
  margin-top: 8px;
  padding-top: 14px;
  border-top: 1px dashed rgba(15,23,42,.10);
}
.ld-addr-online-title {
  font-size: 11px; font-weight: 600;
  text-transform: uppercase; letter-spacing: .06em;
  color: #94A3B8; margin-bottom: 8px;
}
.ld-addr-online-links { display: flex; flex-wrap: wrap; gap: 6px; }
.ld-addr-online-link {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 5px 10px; border-radius: 8px;
  font-size: 12px; font-weight: 600;
  color: #64748B; background: #F8FAFC;
  border: 1px solid rgba(15,23,42,.06);
  text-decoration: none;
  transition: color .15s, background .15s, border-color .15s;
}
.ld-addr-online-link:hover {
  color: var(--ld-accent);
  background: rgba(59,130,246,.06);
  border-color: rgba(59,130,246,.25);
}

@media (max-width: 768px) {
  .ld-address-grid { grid-template-columns: 1fr; gap: 16px; }
  .ld-address-info-card { padding: 18px; gap: 14px; }
  .ld-address-map-card iframe { height: 220px !important; }
  .ld-addr-btn-row { grid-template-columns: 1fr 1fr; }
}

/* ====== Photos ====== */
.ld-photos-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
}
.ld-photo-tile {
  /* 3:2 — фото клиники в БД зажаты Jcrop'ом в 240/160 (=1.5), полная версия 1200×800.
     Совпадение пропорций ячейки и фото убирает обрезку через object-fit: cover. */
  aspect-ratio: 3 / 2;
  border-radius: var(--ld-card-radius);
  overflow: hidden;
  display: block;
  background: #F1F5F9;
}
.ld-photo-tile img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .25s; }
.ld-photo-tile:hover img { transform: scale(1.04); }
@media (max-width: 768px) {
  .ld-photos-grid { grid-template-columns: repeat(2, 1fr); gap: 8px; }
}

/* ====== Cases (до/после) ====== */
.ld-cases-section {
  background: #F8FAFC;
  padding: 40px 0;
}
.ld-cases-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
.ld-case-card {
  background: var(--ld-card-bg);
  border-radius: var(--ld-card-radius);
  box-shadow: var(--ld-card-shadow-soft);
  overflow: hidden;
}
/* фотопара */
.ld-case-photos {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
  background: #fff;
}
.ld-case-photo {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #0F172A;
}
.ld-case-photo img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ld-case-photo__empty {
  position: absolute;
  inset: 0;
}
.ld-case-label {
  position: absolute;
  top: 12px;
  padding: 4px 10px;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .02em;
  text-transform: uppercase;
}
.ld-case-label--left  { left: 12px;  background: rgba(255,255,255,.95); color: #0F172A; }
.ld-case-label--right { right: 12px; background: var(--ld-accent);      color: #fff;    }
/* разделитель */
.ld-case-divider {
  position: absolute;
  left: 50%; top: 0; bottom: 0;
  width: 2px;
  background: #fff;
  transform: translateX(-50%);
}
.ld-case-divider-circle {
  position: absolute;
  left: 50%; top: 50%;
  transform: translate(-50%, -50%);
  width: 36px; height: 36px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 4px 12px rgba(15,23,42,.18);
  display: grid;
  place-items: center;
  color: #0F172A;
}
/* подвал карточки */
.ld-case-footer { padding: 20px; }
.ld-case-title {
  font-size: 16px;
  font-weight: 700;
  color: #0F172A;
  line-height: 1.3;
  margin-bottom: 8px;
}
.ld-case-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 14px;
  font-size: 13px;
  color: #64748B;
  align-items: center;
}
.ld-case-meta__item { display: inline-flex; align-items: center; gap: 6px; }
.ld-case-meta__sep  { color: #CBD5E1; }
.ld-case-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 12px; }
.ld-case-tag {
  font-size: 12px;
  padding: 4px 8px;
  border-radius: 6px;
  background: #F1F5F9;
  color: #475569;
  font-weight: 500;
}
@media (max-width: 768px) {
  .ld-cases-grid  { grid-template-columns: 1fr; }
  .ld-case-footer { padding: 16px; }
  .ld-cases-section { padding: 28px 0; }
}

/* ====== Reviews ====== */
/* Фон и padding берутся из .ld-section + .ld-section--bg */

/* Layout: левая колонка 320px + правая flex */
.ld-reviews-layout {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 32px;
  align-items: start;
}

/* ── Сводная карточка (левая) ── */
.ld-reviews-summary { padding: 24px; }

.ld-reviews-summary__top {
  display: flex;
  align-items: baseline;
  gap: 12px;
}
.ld-reviews-summary__big {
  font-size: 56px;
  font-weight: 800;
  color: #0F172A;
  letter-spacing: -0.03em;
  line-height: 1;
}
.ld-reviews-summary__stars { display: inline-flex; gap: 2px; }
.ld-reviews-summary__count { font-size: 14px; color: #64748B; margin-top: 4px; }

/* Дистрибуция */
.ld-reviews-dist { margin-top: 18px; display: grid; gap: 8px; }
.ld-reviews-dist__row {
  display: grid;
  grid-template-columns: 24px 1fr 36px;
  align-items: center;
  gap: 10px;
  font-size: 13px;
  color: #475569;
}
.ld-reviews-dist__num  { font-weight: 600; }
.ld-reviews-dist__bar  { height: 6px; border-radius: 3px; background: #E2E8F0; overflow: hidden; }
.ld-reviews-dist__fill { height: 100%; background: var(--ld-accent); border-radius: 3px; transition: width .3s; }
.ld-reviews-dist__cnt  { text-align: right; }

/* «Пациенты отмечают» */
.ld-reviews-criteria {
  margin-top: 20px;
  padding-top: 18px;
  border-top: 1px solid rgba(15,23,42,.08);
}
.ld-reviews-criteria__title {
  font-size: 13px; font-weight: 700; color: #0F172A; margin-bottom: 10px;
}
.ld-reviews-criteria__tags { display: flex; flex-wrap: wrap; gap: 6px; }
.ld-reviews-criteria__tag {
  display: inline-block;
  padding: 6px 12px;
  border-radius: 999px;
  border: 1px solid rgba(15,23,42,.12);
  font-size: 13px; color: #475569; font-weight: 500;
  white-space: nowrap;
}

/* ── Список карточек (правая) ── */
.ld-reviews-list { display: grid; gap: 12px; }

/* Карточка отзыва */
.ld-review-card2 { padding: 24px; }

/* Шапка карточки */
.ld-review-card2__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}
.ld-review-card2__header-left {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.ld-review-card2__stars {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.ld-review-card2__stars strong { font-size: 14px; font-weight: 800; color: #0E1726; }
.ld-review-card2__no-rating {
  font-size: 12px; font-weight: 600; color: #64748B;
  padding: 4px 8px; border-radius: 999px; background: #F1F5F9;
  letter-spacing: .02em;
}
/* Чип «Дата визита …» (эталон: DS - Карточка отзыва о клинике / ReviewCard) */
.ld-review-card2__visit {
  display: inline-flex; align-items: center; gap: 5px;
  font-size: 13px; font-weight: 600; color: #64748B;
  padding: 4px 10px 4px 8px; border-radius: 999px; background: #F1F5F9;
  white-space: nowrap;
}
.ld-review-card2__visit svg { flex: 0 0 auto; }
.ld-review-card2__service-tag {
  font-size: 12px; font-weight: 600; color: var(--ld-accent);
  padding: 4px 10px; border-radius: 999px;
  background: rgba(59,130,246,.09);
  letter-spacing: .01em;
}
.ld-review-card2__date {
  font-size: 13.5px; color: #5E6B82;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

/* Строка автора */
.ld-review-card2__author-row {
  display: flex; align-items: flex-start; gap: 12px; margin-bottom: 10px;
}
.ld-review-card2__avatar {
  width: 40px; height: 40px; min-width: 40px;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 14px; font-weight: 700; color: #fff;
}
.ld-review-card2__avatar--photo {
  object-fit: cover; display: block;
}
.ld-review-card2__avatar--operator {
  object-fit: contain;
  display: block;
  background: #fff;
}
.ld-review-card2__author-info { flex: 1; min-width: 0; }
.ld-review-card2__author-name {
  font-weight: 700; color: #0F172A; font-size: 15px; line-height: 1.3;
  word-break: break-word;
}
.ld-review-card2__author-sub {
  font-size: 13px; color: #64748B; margin-top: 2px; line-height: 1.45;
}
.ld-review-card2__svc { color: #334155; }
.ld-review-card2__doc { color: #0F172A; font-weight: 600; }
.ld-review-card2__svc-link { color: var(--ld-accent); text-decoration: none; }
.ld-review-card2__svc-link:hover { text-decoration: underline; }
.ld-review-card2__doc-link { color: #0F172A; font-weight: 600; text-decoration: none; }
.ld-review-card2__doc-link:hover { text-decoration: underline; }

/* Текст отзыва */
.ld-review-card2__text {
  margin: 0; font-size: 15px; line-height: 1.62; color: #33405A;
}

/* Скрытый/на модерации отзыв (виден только редакторам и клинике-администратору) */
.ld-review-card2--hidden {
  opacity: .45;
  border: 1.5px dashed #CBD5E1 !important;
}
.ld-review-card2__eye-slash {
  display: inline-block;
  vertical-align: middle;
  margin-left: 5px;
  color: #94A3B8;
  flex-shrink: 0;
}

/* Гео-подпись (IP/город/регион) рядом с именем автора */
.ld-review-card2__geo {
  font-size: 12.5px;
  color: #93A0B5;
  font-weight: 400;
  margin-left: 4px;
}

/* Последний вход (admin only) - в эталоне ld-rd-profile.jsx: 12.5px, RD.faint, marginTop 4 */
.ld-review-card2__logged-geo {
  font-size: 12.5px;
  color: #93A0B5;
  font-variant-numeric: tabular-nums;
  margin-top: 4px;
}

/* Ответы клиники на отзыв */
/* Ответ клиники - по макету «Профиль пользователя 1»: акцентный бокс с левой полосой */
.ld-review-reply {
  margin-top: 16px;
  display: flex;
  gap: 12px;
  align-items: flex-start;
  background: rgba(59,130,246,.05);
  border-left: 3px solid var(--ld-accent, #3B82F6);
  border-radius: 14px;
  padding: 14px 16px;
}
.ld-review-reply__avatar {
  width: 42px; height: 42px; border-radius: 50%; flex-shrink: 0;
  background: #F1F5F9; color: #475569; font-size: 15px; font-weight: 800;
  display: flex; align-items: center; justify-content: center; object-fit: cover;
}
.ld-review-reply__avatar--photo { background: none; border: 1px solid rgba(15,23,42,.08); }
.ld-review-reply__body { flex: 1; min-width: 0; }
.ld-review-reply__head { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; flex-wrap: nowrap; }
.ld-review-reply__who { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1 1 auto; }
.ld-review-reply__line1 { font-size: 15px; line-height: 1.3; }
.ld-review-reply__name { font-size: 15px; font-weight: 800; color: var(--ld-accent, #3B82F6); text-decoration: none; }
.ld-review-reply__name:hover,
.ld-review-reply__name:focus { text-decoration: none; color: var(--ld-accent, #3B82F6); }
.ld-review-reply__role { font-size: 15px; font-weight: 500; color: #94A3B8; }
.ld-review-reply__org { display: inline-flex; align-items: center; gap: 5px; font-size: 12.5px; font-weight: 700; color: #475569; letter-spacing: .02em; }
.ld-review-reply__org--spec { font-size: 14px; font-weight: 700; color: #94A3B8; letter-spacing: 0; }
.ld-review-reply__date { font-size: 14px; color: #94A3B8; white-space: nowrap; font-variant-numeric: tabular-nums; }
.ld-review-reply__meta { display: flex; align-items: center; gap: 6px; flex: 0 0 auto; align-self: flex-start; }
/* Скрытый комментарий (show=0) - виден только админу, на засветлённом приглушённом фоне */
.ld-review-reply--hidden { background: rgba(15,23,42,.05); border-left-color: #CBD5E1; opacity: .65; }
/* Инлайн-правка комментария */
.ld-rc-cedit { margin-top: 8px; }
.ld-rc-cedit__textarea { width: 100%; box-sizing: border-box; resize: vertical; min-height: 64px; font-family: inherit; font-size: 14.5px; line-height: 1.5; color: #0E1726; background: #fff; border: 1px solid rgba(14,23,38,.09); border-radius: 10px; padding: 9px 12px; outline: none; }
.ld-rc-cedit__textarea:focus { border-color: #3B82F6; box-shadow: 0 0 0 3px rgba(59,130,246,.14); }
.ld-rc-cedit__foot { margin-top: 8px; display: flex; align-items: center; gap: 10px; }
.ld-rc-cedit__save { border: 0; border-radius: 9px; font-family: inherit; font-size: 13.5px; font-weight: 700; padding: 8px 16px; cursor: pointer; color: #fff; background-color: #3B82F6; }
.ld-rc-cedit__cancel { border: 0; background: transparent; cursor: pointer; font-family: inherit; font-size: 13.5px; font-weight: 600; color: #5E6B82; padding: 8px 4px; }

.ld-review-card2__avatar-wrap {
  position: relative; flex-shrink: 0;
}
.ld-review-card2__social-vk {
  position: absolute; bottom: -3px; right: -3px;
  width: 18px; height: 18px;
  background: #0077FF; color: #fff;
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  border: 2px solid #fff;
}

.ld-review-reply__text {
  margin: 10px 0 0;
  font-size: 15px;
  line-height: 1.55;
  color: #334155;
}

/* Адаптив */
@media (max-width: 900px) {
  .ld-reviews-layout { grid-template-columns: 280px 1fr; gap: 20px; }
}
@media (max-width: 768px) {
  .ld-reviews-layout { grid-template-columns: 1fr; }
  .ld-reviews-section { padding: 32px 0; }
  .ld-review-card2 { padding: 18px; }
}

/* ====== Branches & Similar ====== */
.ld-branches-grid, .ld-similar-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.ld-similar-grid { grid-template-columns: repeat(4, 1fr); }
.ld-branch-card, .ld-similar-card {
  display: flex; gap: 14px; padding: 16px;
  background: #fff;
  border-radius: var(--ld-card-radius);
  box-shadow: inset 0 0 0 1px var(--ld-line);
  text-decoration: none; color: inherit;
  transition: box-shadow .15s, transform .15s;
}
.ld-similar-card { flex-direction: column; align-items: flex-start; }
.ld-branch-card:hover, .ld-similar-card:hover { box-shadow: var(--ld-card-shadow-soft); transform: translateY(-2px); }
.ld-branch-card__logo, .ld-similar-card__logo {
  width: 56px; height: 56px; border-radius: 12px;
  background: linear-gradient(135deg, #EAF4EC, #C8E5CE);
  color: #1F7A3D;
  display: grid; place-items: center;
  font-weight: 700; font-size: 17px;
  flex: 0 0 auto; overflow: hidden;
}
.ld-similar-card__logo { width: 64px; height: 64px; }
.ld-branch-card__logo img, .ld-similar-card__logo img { width: 100%; height: 100%; object-fit: cover; }
.ld-branch-card__name, .ld-similar-card__name {
  font-size: 15px; font-weight: 700; color: var(--ld-link);
  line-height: 1.3;
}
.ld-branch-card__addr { font-size: 13px; color: var(--ld-fg-soft); margin-top: 4px; line-height: 1.4; }
.ld-similar-card__rating { display: inline-flex; align-items: center; gap: 4px; font-size: 14px; font-weight: 800; color: var(--ld-link); margin-top: 6px; }
@media (max-width: 768px) {
  .ld-branches-grid, .ld-similar-grid { grid-template-columns: 1fr; gap: 12px; }
}

/* ════════════════════════════════════════════════════════════════════════════
   Network / Branches map section (.ld-net-*)
   Эталон: ld-sections.jsx → NetworkMapSection (строки 3150-3340).
   Layout: 2-col grid (1fr 380px) — слева Yandex-карта, справа список филиалов.
   ════════════════════════════════════════════════════════════════════════════ */
.ld-net-grid {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 16px;
  align-items: stretch;
}

/* ── Левая колонка: карта ── */
.ld-net-map-card {
  padding: 0;
  overflow: hidden;
  min-height: 440px;
  position: relative;
}
.ld-net-map {
  width: 100%;
  height: 100%;
  min-height: 440px;
}

/* ── Правая колонка: список филиалов ── */
.ld-net-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* Карточка одного филиала */
.ld-net-item {
  padding: 16px 18px;
  border-radius: 16px;
  background: #fff;
  border: 1.5px solid rgba(15, 23, 42, .08);
  box-shadow: 0 1px 4px rgba(15, 23, 42, .04);
  cursor: pointer;
  transition: border-color .18s ease, background .18s ease, box-shadow .18s ease;
  font-family: inherit;
}
.ld-net-item:hover {
  border-color: rgba(59, 130, 246, .35);
}
.ld-net-item--active {
  border: 2px solid var(--ld-accent);
  background: rgba(59, 130, 246, .03);
  padding: 15.5px 17.5px; /* компенсируем +0.5px бордера, чтобы layout не «прыгал» */
  box-shadow: 0 8px 20px rgba(59, 130, 246, .09);
}

/* Шапка карточки: номер + название слева, статус справа */
.ld-net-item__head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 8px;
}
.ld-net-item__name-wrap {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  min-width: 0;
}
.ld-net-item__num {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #E2E8F0;
  color: #64748B;
  display: grid;
  place-items: center;
  font-size: 14px;
  font-weight: 800;
  flex: 0 0 auto;
  transition: background .18s ease, color .18s ease;
}
.ld-net-item--active .ld-net-item__num {
  background: var(--ld-accent);
  color: #fff;
}
.ld-net-item__name {
  font-size: 14px;
  font-weight: 700;
  color: #0F172A;
  letter-spacing: -.01em;
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Статус «Открыто 9:00–21:00» / «Сегодня закрыто» */
.ld-net-item__status {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 14px;
  font-weight: 600;
  color: #94A3B8;
  flex: 0 0 auto;
  white-space: nowrap;
}
.ld-net-item__status--open { color: #15803D; }
.ld-net-item__status-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #CBD5E1;
}
.ld-net-item__status--open .ld-net-item__status-dot { background: #22C55E; }

/* Адрес + метро */
.ld-net-item__addr,
.ld-net-item__metro {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  color: #475569;
  line-height: 1.4;
  margin-top: 4px;
}
.ld-net-item__addr svg { flex: 0 0 auto; }
.ld-net-item__metro { color: #64748B; }
.ld-net-item__metro-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex-shrink: 0;
}

/* Раскрытая часть (видна только когда .ld-net-item--active) */
.ld-net-item__expand {
  display: none;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(15, 23, 42, .07);
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}
.ld-net-item--active .ld-net-item__expand { display: flex; }
.ld-net-item__phone {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 600;
  color: #0F172A;
  text-decoration: none;
  font-variant-numeric: tabular-nums;
  transition: opacity .15s ease;
}
.ld-net-item__phone:hover { color: #0F172A; opacity: .7; text-decoration: none; }
.ld-net-item__btns {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

/* ── Адаптив ── */
@media (max-width: 900px) {
  .ld-net-grid {
    grid-template-columns: 1fr;
  }
  .ld-net-map-card,
  .ld-net-map { min-height: 320px; }
}
@media (max-width: 768px) {
  .ld-net-item__head {
    flex-wrap: wrap;
  }
  .ld-net-item__status {
    flex-basis: 100%;
    order: 3;
    margin-top: 4px;
  }
}

/* ====== Advantages chips ====== */
.ld-advantages-chips {
  display: flex; flex-wrap: wrap; gap: 10px;
}
.ld-advantage-chip {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 16px;
  background: #fff;
  box-shadow: inset 0 0 0 1px var(--ld-line);
  border-radius: 999px;
  font-size: 14px; font-weight: 600; color: var(--ld-fg);
}

/* ====== Badge-метки ====== */
.ld-badges-section {
  padding-top: 0;
  padding-bottom: 20px;
}
.ld-badges-list {
  display: flex; flex-wrap: wrap; gap: 8px; justify-content: center;
}
.ld-badge-chip {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 12px;
  border: 1px solid;
  border-radius: 999px;
  font-size: 13px; font-weight: 600;
  line-height: 1.3;
  white-space: nowrap;
}
.ld-badge-chip svg {
  flex-shrink: 0;
}

/* ====== Final CTA ====== */
.ld-final-cta {
  margin-top: 24px;
  padding: 0;
  background: transparent;
}
.ld-final-cta__inner {
  max-width: var(--ld-container);
  margin: 0 auto;
  padding: 60px var(--ld-pad-x);
  /* Градиент: accent → его затемнённый вариант (как shade(accent,-22) в дизайне).
     Для #3B82F6 (blue-500) затемнение даёт примерно #1D4ED8 (Tailwind blue-700). */
  background: linear-gradient(135deg, var(--ld-accent) 0%, #1D4ED8 100%);
  color: #fff;
  border-radius: 24px;
  display: flex; flex-direction: column; align-items: center;
  gap: 16px; text-align: center;
}
.ld-final-cta__title { font-size: 32px; font-weight: 800; letter-spacing: -.02em; max-width: 640px; }
.ld-final-cta__sub { margin: 0; font-size: 16px; opacity: .9; max-width: 540px; line-height: 1.55; }
.ld-final-cta__phone {
  font-size: 32px; font-weight: 800;
  color: #fff; text-decoration: none;
  font-variant-numeric: tabular-nums;
  letter-spacing: -.01em;
  margin-top: 8px;
}
.ld-final-cta__btn {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 28px;
  background: #fff;
  color: var(--ld-fg);           /* было #0E7B86 (старый cyan) — в дизайне тёмный текст */
  border-radius: 12px;
  font-size: 16px; font-weight: 700;
  text-decoration: none;
  margin-top: 4px;
}
@media (max-width: 768px) {
  .ld-final-cta__inner { padding: 40px 20px; border-radius: 16px; }
  .ld-final-cta__title { font-size: 24px; }
  .ld-final-cta__phone { font-size: 26px; }
}

/* ====== Footer ======
   Тёмная плашка для визуального контраста с тёплым фоном страницы (#f0eee9).
   Одна центральная колонка: логотип → маленькая кнопка-капсула → разделитель
   → горизонтальная навигация → копирайт + disclaimer. */
.ld-footer {
  margin-top: 56px;
  border-top: 1px solid rgba(14,23,38,.09);
  background: #F3F6FB;          /* RD.alt */
}
.ld-footer__inner {
  max-width: var(--ld-container);
  margin: 0 auto;
  padding: 48px var(--ld-pad-x) 40px;
}

/* Верхняя зона: бренд (1.5fr) + 3 колонки (1fr) */
.ld-footer__top {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: 40px;
  align-items: start;
}
/* На desktop 3 колонки становятся прямыми ячейками грида .ld-footer__top */
.ld-footer__cols { display: contents; }

/* Бренд-колонка */
.ld-footer__brand {
  display: flex;
  flex-direction: column;
  gap: 18px;
  max-width: 320px;
}

/* Карточка «Нашли неточность? Сообщить нам» */
.ld-footer__report {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 14px;
  border-radius: 14px;
  border: 1px solid rgba(14,23,38,.09);
  background: #fff;
  text-decoration: none;
  transition: box-shadow .15s, border-color .15s;
}
.ld-footer__report:hover {
  box-shadow: 0 6px 18px rgba(14,23,38,.08);
  border-color: rgba(59,130,246,.4);
}
.ld-footer__report-ic {
  width: 34px; height: 34px; flex: 0 0 auto;
  border-radius: 10px;
  background: rgba(59,130,246,.1);
  color: var(--ld-accent);
  display: grid; place-items: center;
}
.ld-footer__report-txt {
  display: flex; flex-direction: column; line-height: 1.3;
}
.ld-footer__report-t1 { font-size: 13.5px; font-weight: 700; color: #0E1726; }
.ld-footer__report-t2 { font-size: 12.5px; font-weight: 700; color: var(--ld-accent); }

/* Копирайт + дисклеймер */
.ld-footer__copy {
  font-size: 12.5px;
  line-height: 1.6;
  color: #93A0B5;          /* RD.faint */
}

/* Колонка ссылок */
.ld-footer__col-h {
  font-size: 12px; font-weight: 800;
  color: #93A0B5;
  letter-spacing: .06em; text-transform: uppercase;
  margin-bottom: 16px;
}
.ld-footer__col-links { display: flex; flex-direction: column; gap: 11px; }
.ld-footer__col-links a {
  font-size: 14px; color: #5E6B82;     /* RD.muted */
  text-decoration: none; width: fit-content;
  transition: color .15s;
}
.ld-footer__col-links a:hover { color: var(--ld-accent); }

/* Нижняя зона: юридические ссылки */
.ld-footer__legal {
  margin-top: 32px;
  padding-top: 20px;
  border-top: 1px solid rgba(14,23,38,.09);
  display: flex; flex-wrap: wrap;
  gap: 10px 22px;
}
.ld-footer__legal a {
  font-size: 13.5px; color: #5E6B82;
  text-decoration: none;
  transition: color .15s;
}
.ld-footer__legal a:hover { color: var(--ld-accent); }

@media (max-width: 768px) {
  .ld-footer { margin-top: 40px; }
  .ld-footer__inner { padding: 36px var(--ld-pad-x) 32px; }
  /* Бренд на всю ширину, ниже — 3 колонки в 2-колоночной сетке */
  .ld-footer__top { display: flex; flex-direction: column; gap: 32px; }
  .ld-footer__brand { max-width: 100%; }
  .ld-footer__cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px 24px;
  }
  .ld-footer__legal { margin-top: 28px; }
}

/* ===== Контакты (/contact) - email-центричная страница в стиле 404 ===== */
.ld-contact-hero { padding: 84px 0 110px; }
.ld-contact-hero__inner {
  display: flex; flex-direction: column; align-items: center; text-align: center;
}
.ld-contact-hero__kicker {
  font-size: 13px; font-weight: 800; letter-spacing: .14em;
  text-transform: uppercase; color: #93A0B5; margin-bottom: 18px;
}
/* Крупный e-mail (как код 404). Длинный адрес - адаптивный размер + перенос. */
.ld-contact-hero__email {
  font-size: clamp(32px, 7.5vw, 88px);
  font-weight: 800; line-height: 1.02; letter-spacing: -0.03em;
  color: var(--ld-accent); text-decoration: none;
  overflow-wrap: anywhere; max-width: 100%;
  margin-bottom: 26px; transition: color .15s;
}
.ld-contact-hero__email:hover { color: #2563EB; }
.ld-contact-hero__sub {
  font-size: 17px; color: #475569; line-height: 1.55;
  max-width: 600px; margin: 0 0 30px;
}
.ld-contact-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }

@media (max-width: 768px) {
  .ld-contact-hero { padding: 52px 0 76px; }
  .ld-contact-hero__sub { font-size: 15px; }
}

/* ===== AwardsBlock ===== */
.ld-awards-section {
  max-width: var(--ld-container);
  margin: 24px auto 0;
  padding: 0 var(--ld-pad-x);
}
.ld-awards-grid {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
}
.ld-award-card {
  flex: 0 0 calc(25% - 14px);
  min-width: 160px; max-width: 220px;
  background: #fff;
  border: 1px solid rgba(15,23,42,.08);
  border-radius: 16px;
  padding: 20px 18px;
  display: flex; flex-direction: column; align-items: center;
  gap: 10px; text-align: center;
}
/* text */
.ld-award-card__title {
  font-size: 13px; color: #64748B; line-height: 1.35;
  text-wrap: balance;
}
.ld-award-card__link {
  color: #2563EB; text-decoration: none;
  transition: color .15s;
}
.ld-award-card__link:hover {
  color: #1d4ed8;
}
.ld-award-card__sub {
  font-size: 14px; color: #0F172A; font-weight: 700; line-height: 1.25;
}
@media (max-width: 768px) {
  .ld-awards-grid { gap: 10px; }
  .ld-award-card { flex: 0 0 calc(50% - 10px); min-width: 130px; padding: 16px 12px; }
  .ld-award-card__title { font-size: 12px; }
  .ld-award-card__sub { font-size: 13px; }
}

/* ============================================================
   LeaveReviewSection — форма оставить отзыв
   ============================================================ */
.ld-leave-review-wrap {
  padding: 56px 0;
}
.ld-leave-review {
  background: #F8FAFC;
  border: 1px solid rgba(15,23,42,.07);
  border-radius: 20px;
  padding: 36px;
  display: grid;
  gap: 24px;
}
/* Header inside form */
.ld-lr-kicker {
  font-size: 13px; font-weight: 700; color: #475569;
  text-transform: uppercase; letter-spacing: .08em; margin-bottom: 8px;
}
.ld-lr-title {
  margin: 0; font-size: 30px; font-weight: 800; color: #0F172A;
  letter-spacing: -0.01em;
}
.ld-lr-sub {
  margin: 10px 0 0; font-size: 15px; line-height: 1.55; color: #475569; max-width: 640px;
}
/* FormBlock */
.ld-formblock {
  padding: 20px;
  border-radius: 14px;
  border: 1px solid rgba(15,23,42,.06);
  background: #fff;
}
.ld-formblock__head {
  display: flex; align-items: center; gap: 12px; margin-bottom: 14px;
}
.ld-formblock__num {
  flex: 0 0 28px; width: 28px; height: 28px; border-radius: 50%;
  background: #F1F5F9; color: #475569;
  display: grid; place-items: center;
  font-size: 13px; font-weight: 800; font-variant-numeric: tabular-nums;
}
.ld-formblock__meta { flex: 1; min-width: 0; }
.ld-formblock__title {
  font-size: 16px; font-weight: 700; color: #0F172A; letter-spacing: -0.005em;
}
.ld-formblock__title .ld-required { color: #DC2626; margin-left: 6px; }
.ld-formblock__hint {
  font-size: 12px; color: #94A3B8; margin-top: 2px;
}
/* Overall star row */
.ld-star-row {
  display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
}
.ld-star-row__stars { display: inline-flex; gap: 4px; }
.ld-star-btn {
  background: none; border: 0; padding: 4px; cursor: pointer;
  color: #CBD5E1; transition: color .12s; line-height: 0;
}
.ld-star-btn.active { color: #F5A623; }
.ld-star-row__label {
  font-size: 17px; font-weight: 700; color: #0F172A; min-width: 120px;
}
/* Criteria rows */
.ld-criterion {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center; gap: 12px;
  padding: 10px 0;
  border-top: 1px solid rgba(15,23,42,.06);
}
.ld-criterion__label { font-size: 14px; color: #334155; font-weight: 500; }
.ld-criterion__stars { display: inline-flex; align-items: center; gap: 8px; }
.ld-criterion__star-wrap { display: inline-flex; gap: 2px; }
.ld-criterion-btn {
  background: none; border: 0; padding: 2px; cursor: pointer;
  color: #CBD5E1; line-height: 0;
}
.ld-criterion-btn.active { color: #F5A623; }
.ld-criterion__val {
  font-size: 12px; color: #94A3B8; min-width: 14px;
  font-variant-numeric: tabular-nums; text-align: right;
}
/* Tag chips */
.ld-tags-group { display: flex; flex-wrap: wrap; gap: 8px; }
.ld-tags-label {
  font-size: 12px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .06em;
  margin-bottom: 8px;
}
.ld-tags-label--pos { color: #16A34A; }
.ld-tags-label--neg { color: #DC2626; margin-top: 16px; }
.ld-tag-chip {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 12px; border-radius: 999px;
  border: 1px solid rgba(15,23,42,.12);
  background: #fff; color: #334155;
  font-size: 13px; font-weight: 600; font-family: inherit;
  cursor: pointer; transition: background .12s, border-color .12s, color .12s;
  user-select: none;
}
.ld-tag-chip.active-pos {
  border-color: #16A34A; background: rgba(22,163,74,.08); color: #16A34A;
}
.ld-tag-chip.active-neg {
  border-color: #DC2626; background: rgba(220,38,38,.08); color: #DC2626;
}
.ld-tag-chip__icon { font-size: 14px; line-height: 1; opacity: .4; }
.ld-tag-chip.active-pos .ld-tag-chip__icon,
.ld-tag-chip.active-neg .ld-tag-chip__icon { opacity: 1; }
/* Input */
.ld-input {
  width: 100%; height: 44px; padding: 0 14px;
  border: 1px solid rgba(15,23,42,.1); border-radius: 10px;
  background: #fff; font-family: inherit; font-size: 15px; color: #0F172A;
  outline: none; box-sizing: border-box;
}
.ld-input:focus { border-color: var(--ld-accent); box-shadow: 0 0 0 3px rgba(59, 130, 246, .12); }
.ld-input--select { appearance: auto; }
.ld-input--textarea {
  height: auto; padding: 12px 14px; resize: vertical; line-height: 1.5;
}
.ld-input-counter {
  margin-top: 6px; font-size: 12px; color: #94A3B8;
  text-align: right; font-variant-numeric: tabular-nums;
}
/* Combobox — кастомный селект с поиском и прокруткой (data-ld-combobox) */
.ld-combo { position: relative; }
.ld-combo__native { display: none; }            /* нативный select скрыт, значение доступно через JS */
.ld-combo__trigger {
  width: 100%; height: 44px; padding: 0 14px;
  border: 1px solid rgba(15,23,42,.1); border-radius: 10px;
  background: #fff; font-family: inherit; font-size: 15px; color: #0F172A;
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  cursor: pointer; text-align: left; box-sizing: border-box; outline: none;
}
.ld-combo__trigger:focus-visible { border-color: var(--ld-accent); box-shadow: 0 0 0 3px rgba(59,130,246,.12); }
.ld-combo.is-open .ld-combo__trigger { border-color: var(--ld-accent); box-shadow: 0 0 0 3px rgba(59,130,246,.12); }
.ld-combo.is-disabled .ld-combo__trigger {
  background: #F1F5F9; color: #94A3B8; cursor: not-allowed;
  border-color: rgba(15,23,42,.08); box-shadow: none;
}
.ld-combo.is-disabled .ld-combo__chev { opacity: .4; }
.ld-combo__value { flex: 1 1 auto; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ld-combo__trigger--placeholder .ld-combo__value { color: #94A3B8; }
.ld-combo__chev { flex: 0 0 auto; display: inline-flex; color: #94A3B8; transition: transform .18s ease; }
.ld-combo.is-open .ld-combo__chev { transform: rotate(180deg); }
.ld-combo__panel {
  position: absolute; top: calc(100% + 6px); left: 0; right: 0; z-index: 60;
  display: flex; flex-direction: column;
  background: #fff; border: 1px solid rgba(15,23,42,.1); border-radius: 12px;
  box-shadow: 0 12px 32px rgba(15,23,42,.14); padding: 8px; box-sizing: border-box;
}
/* display:flex выше перебивает UA-правило [hidden]{display:none}, поэтому
   скрытие панели через panel.hidden=true нужно вернуть явно (специфичнее). */
.ld-combo__panel[hidden] { display: none; }
.ld-combo__search { padding-bottom: 8px; }
.ld-combo__search-input {
  width: 100%; height: 38px; padding: 0 12px;
  border: 1px solid rgba(15,23,42,.1); border-radius: 8px;
  background: #fff; font-family: inherit; font-size: 14px; color: #0F172A;
  outline: none; box-sizing: border-box;
}
.ld-combo__search-input:focus { border-color: var(--ld-accent); box-shadow: 0 0 0 3px rgba(59,130,246,.12); }
.ld-combo__list { max-height: 260px; overflow-y: auto; -webkit-overflow-scrolling: touch; }
.ld-combo__opt {
  padding: 9px 12px; border-radius: 8px; font-size: 14px; line-height: 1.3;
  color: #0F172A; cursor: pointer; white-space: normal;
}
.ld-combo__opt:hover { background: rgba(59,130,246,.08); }
.ld-combo__opt.is-selected { background: rgba(59,130,246,.12); color: var(--ld-accent); font-weight: 600; }
.ld-combo__opt--placeholder { color: #94A3B8; }
.ld-combo__empty { padding: 12px; font-size: 14px; color: #94A3B8; text-align: center; }
/* Тонкий скроллбар внутри списка */
.ld-combo__list::-webkit-scrollbar { width: 8px; }
.ld-combo__list::-webkit-scrollbar-thumb { background: rgba(15,23,42,.18); border-radius: 8px; }
.ld-combo__list::-webkit-scrollbar-track { background: transparent; }
/* Context row (date + service) */
.ld-context-grid {
  display: grid; grid-template-columns: 1fr 1.4fr; gap: 12px;
}
.ld-context-label {
  display: grid; gap: 6px;
}
.ld-context-label > span { font-size: 13px; color: #64748B; }
/* Submit row */
.ld-submit-row {
  margin-top: 4px; padding: 16px;
  background: #F8FAFC; border-radius: 14px;
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; flex-wrap: wrap;
}
.ld-submit-disclaimer {
  font-size: 12px; color: #64748B;
  display: inline-flex; align-items: center; gap: 6px;
  max-width: 480px;
}
.ld-submit-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 22px; border-radius: 12px;
  border: none; cursor: pointer;
  font-weight: 700; font-size: 15px; font-family: inherit;
  background: var(--ld-accent); color: #fff;
  box-shadow: 0 6px 18px rgba(59, 130, 246, .28);
  transition: background .15s, box-shadow .15s;
}
.ld-submit-btn:hover, .ld-submit-btn:focus { background: #2563EB; color: #fff; text-decoration: none; box-shadow: 0 8px 22px rgba(59, 130, 246, .38); }
.ld-submit-btn:active { background: #1D4ED8; color: #fff; }
.ld-submit-btn:disabled {
  background: #CBD5E1; box-shadow: none; cursor: not-allowed;
}
/* .ld-submit-hint удалён: все сообщения формы отзыва теперь показываются
   в .ld-lr-error (по клику «Отправить отзыв»), в едином стиле. */
/* Success state */
.ld-lr-success {
  background: #fff;
  border: 1px solid rgba(15,23,42,.07);
  border-radius: 20px;
  padding: 44px 36px;
  text-align: center;
  display: none; /* shown via JS */
  flex-direction: column; align-items: center; gap: 14px;
}
.ld-lr-success__icon {
  width: 64px; height: 64px; border-radius: 50%;
  background: #DCFCE7; color: #16A34A;
  display: grid; place-items: center;
  margin: 0 auto;
}
.ld-lr-success__title {
  margin: 0; font-size: 26px; font-weight: 800; color: #0F172A;
  letter-spacing: -0.01em;
}
.ld-lr-success__text {
  margin: 0; font-size: 15px; line-height: 1.55; color: #475569;
  max-width: 520px;
}
.ld-lr-success__again {
  margin-top: 8px; padding: 10px 18px; border-radius: 10px;
  border: 1px solid rgba(15,23,42,.12); background: #fff;
  color: #0F172A; font-weight: 600; font-family: inherit;
  font-size: 14px; cursor: pointer;
}
.ld-lr-error {
  padding: 12px 16px; border-radius: 10px;
  background: #FEF2F2; border: 1px solid rgba(220,38,38,.2);
  color: #DC2626; font-size: 14px; display: none;
}

@media (max-width: 768px) {
  .ld-leave-review-wrap { padding: 28px 0; }
  .ld-leave-review { padding: 22px; gap: 18px; }
  .ld-lr-title { font-size: 24px; }
  .ld-formblock { padding: 16px; }
  .ld-criterion { grid-template-columns: 1fr; gap: 4px; }
  .ld-context-grid { grid-template-columns: 1fr; }
  .ld-submit-row { flex-direction: column; align-items: stretch; }
  .ld-submit-btn { justify-content: center; }
  .ld-lr-success { padding: 28px 22px; }
  .ld-lr-success__title { font-size: 22px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   Редактирование клиники — форма (views/redesign/edit-clinic/index.php)
   ─────────────────────────────────────────────────────────────────────── */

.ld-edit-page { padding: 24px 0 60px; }
.ld-edit-page__header {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: 16px; flex-wrap: wrap; margin-bottom: 24px;
}
.ld-edit-page__header h1 {
  font-size: 28px; font-weight: 800; letter-spacing: -.5px;
  color: var(--ld-fg); margin: 4px 0 0;
}
.ld-edit-page__id {
  display: inline-block; font-size: 14px; font-weight: 500;
  color: #94A3B8; margin-left: 8px; vertical-align: middle;
}

/* ── Карточка-секция формы ── */
.ld-edit-card {
  background: #fff; border-radius: var(--ld-card-radius);
  box-shadow: var(--ld-card-shadow-soft);
  border: 1px solid rgba(15,23,42,.05);
  margin-bottom: 16px; overflow: hidden;
}
.ld-edit-card__head {
  padding: 18px 24px 12px; border-bottom: 1px solid rgba(15,23,42,.06);
  background: #FBFBF9;
}
.ld-edit-card__title {
  font-size: 16px; font-weight: 700; color: var(--ld-fg);
  margin: 0; letter-spacing: -.2px;
}
.ld-edit-card__hint {
  font-size: 13px; color: #64748B; margin: 4px 0 0; line-height: 1.45;
}
.ld-edit-card__body { padding: 18px 24px; }

/* ── 3-колонная строка внутри карточки (ИНН / КПП / ОГРН) ── */
.ld-edit-card__row-3 {
  display: grid; grid-template-columns: 1fr 1fr 1fr;
  gap: 0 16px;
}
.ld-edit-card__row-3 .ld-form-row {
  grid-template-columns: 1fr; gap: 4px;
}
.ld-edit-card__row-3 .ld-form-row > .ld-form-label { padding-top: 0; }
.ld-edit-card__row-3 .ld-form-row > .help-block,
.ld-edit-card__row-3 .ld-form-row > .ld-form-error { grid-column: 1; }
@media (max-width: 768px) {
  .ld-edit-card__row-3 { grid-template-columns: 1fr; gap: 0; }
}

/* ── Form-row: label + input ── */
.ld-form-row {
  display: grid; grid-template-columns: 200px 1fr;
  gap: 12px 16px; align-items: start;
  margin-bottom: 14px;
}
.ld-form-row:last-child { margin-bottom: 0; }
.ld-form-row > .help-block,
.ld-form-row > .ld-form-error {
  grid-column: 2; margin-top: -4px;
}
/* Перевёрнутый порядок: input слева (1fr), label справа (auto).
   Используется в Worktime для поля «Примечание». */
.ld-form-row--reverse { grid-template-columns: 1fr auto; }
.ld-form-label--right { padding-top: 9px; }
.ld-form-label {
  font-size: 14px; font-weight: 500; color: #475569;
  padding-top: 9px; line-height: 1.3;
}

/* ── Inputs ── */
.ld-form-input, .ld-form-select, .ld-form-textarea {
  width: 100%;
  font: inherit; font-size: 14px; color: var(--ld-fg);
  background: #fff;
  border: 1px solid #CBD5E1; border-radius: 8px;
  padding: 8px 12px; line-height: 1.4;
  transition: border-color .15s, box-shadow .15s;
  box-sizing: border-box;
}
.ld-form-input:focus, .ld-form-select:focus, .ld-form-textarea:focus {
  outline: none; border-color: var(--ld-accent);
  box-shadow: 0 0 0 3px rgba(59,130,246,.15);
}
.ld-form-input.disabled, .ld-form-input[disabled] {
  background: #F1F5F9; color: #94A3B8; cursor: not-allowed;
}
.ld-form-textarea { resize: vertical; min-height: 64px; }
.ld-form-textarea--lg { min-height: 140px; }
/* textarea-full: лейбл над textarea, а не слева — для широкого текстового поля */
.ld-form-row--textarea-full { grid-template-columns: 1fr; gap: 6px; }
.ld-form-row--textarea-full > .ld-form-label { padding-top: 0; }
.ld-form-select {
  appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat: no-repeat;
  background-position: right 10px center;
  padding-right: 32px;
}

/* Кнопка-крестик возле input (очистка / удаление) */
.ld-form-row__input-wrap {
  display: flex; align-items: center; gap: 6px;
}
.ld-form-row__input-wrap > .ui-autocomplete-input,
.ld-form-row__input-wrap > input.ld-form-input { flex: 1 1 auto; }
.ld-form-clear {
  flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; border-radius: 50%;
  font-size: 18px; line-height: 1; color: #94A3B8;
  text-decoration: none;
  background: transparent;
  transition: background .15s, color .15s;
}
.ld-form-clear:hover { background: #FEE2E2; color: #B91C1C; }

/* Yii AutoComplete оборачивает input — стилизуем его как ld-form-input */
.ld-form-row .ui-autocomplete-input {
  width: 100%; font: inherit; font-size: 14px;
  color: var(--ld-fg); background: #fff;
  border: 1px solid #CBD5E1; border-radius: 8px;
  padding: 8px 12px; line-height: 1.4; box-sizing: border-box;
}
.ld-form-row .ui-autocomplete-input:focus {
  outline: none; border-color: var(--ld-accent);
  box-shadow: 0 0 0 3px rgba(59,130,246,.15);
}

/* Select2 — выравниваем под наш дизайн */
.ld-edit-card .select2-container { width: 100% !important; }
.ld-edit-card .select2-container--default .select2-selection--single {
  height: 38px; border: 1px solid #CBD5E1; border-radius: 8px;
}
.ld-edit-card .select2-container--default .select2-selection--single .select2-selection__rendered {
  line-height: 36px; padding-left: 12px; color: var(--ld-fg);
}
.ld-edit-card .select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 36px;
}
.ld-edit-card .select2-container--default.select2-container--focus .select2-selection--single,
.ld-edit-card .select2-container--default.select2-container--open  .select2-selection--single {
  border-color: var(--ld-accent);
  box-shadow: 0 0 0 3px rgba(59,130,246,.15);
}
/* Заблокированное место работы (чужая клиника): поля и Select2 «Должность» делаем серыми,
   как отключённые input-ы, чтобы было видно, что блок нередактируемый. */
.ld-work--locked .ld-form-input:disabled,
.ld-work--locked .ld-form-select:disabled,
.ld-work--locked .select2-container--default .select2-selection--single {
  background: #E2E8F0;
  color: #94A3B8;
}
.ld-work--locked .select2-container--default .select2-selection--single .select2-selection__rendered { color: #94A3B8; }
/* Выпадающий список Select2 (рендерится в body) - в стиль сайта, со скроллом */
.select2-dropdown { border: 1px solid rgba(15,23,42,.14); border-radius: 10px; box-shadow: 0 12px 32px rgba(14,23,38,.14), 0 2px 8px rgba(14,23,38,.06); overflow: hidden; }
.select2-results__options { max-height: 260px; }
.select2-container--default .select2-results__option { padding: 9px 12px; font-size: 14.5px; color: #33405A; }
.select2-container--default .select2-results__option--highlighted[aria-selected] { background: var(--ld-accent); color: #fff; }
.select2-container--default .select2-results__option[aria-selected="true"] { background: rgba(59,130,246,.10); color: #0F172A; }
.select2-search--dropdown .select2-search__field { border: 1px solid rgba(15,23,42,.16); border-radius: 8px; padding: 7px 10px; }

/* ── Ошибки валидации ── */
.ld-form-error { color: #B91C1C; font-size: 13px; }
.ld-form-row .help-block.help-block-error { color: #B91C1C; font-size: 13px; margin-top: 4px; }
.ld-form-row.has-error .ld-form-input,
.ld-form-row.has-error .ld-form-select,
.ld-form-row.has-error .ui-autocomplete-input {
  border-color: #DC2626;
}
.ld-form-error--block {
  background: #FEF2F2; border: 1px solid #FCA5A5; color: #B91C1C;
  padding: 10px 14px; border-radius: 8px; margin: 12px 0;
}
.ld-form-error--block p { margin: 0; }

/* ── MultiSelector (старый widget) внутри редизайн-формы ──
   Старая разметка: <div class="editor-block-line"><label class="editor-block-line-left">…</label>
   …<select class="slct_comments"></select><a><i class="fa fa-close"></i></a></div>.
   В старом дизайне лейбл занимал 30% слева. В редизайне у нас лейбл уже есть
   над всем блоком (через .ld-form-label), поэтому встроенный лейбл скрываем,
   а строку с селектом и кнопкой удаления выравниваем по flex'у. */
.ld-edit-form .editor-block-line {
  display: flex; align-items: center; gap: 8px;
  width: 100%; margin-bottom: 8px;
}
.ld-edit-form .editor-block-line-left {
  /* Скрываем встроенный лейбл — у нас есть .ld-form-label над всем виджетом */
  display: none;
}
.ld-edit-form .multiselector_element { width: 100%; }
.ld-edit-form .multiselector_element .editor-block-line { margin-bottom: 6px; }
.ld-edit-form .multiselector_element select.slct_comments,
.ld-edit-form .multiselector_element select.select2sl {
  flex: 1 1 auto;
  width: 100%;
  font: inherit; font-size: 14px; color: var(--ld-fg);
  background: #fff;
  border: 1px solid #CBD5E1; border-radius: 8px;
  padding: 8px 12px; line-height: 1.4;
  appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  background-repeat: no-repeat;
  background-position: right 10px center;
  padding-right: 32px;
  box-sizing: border-box;
}
.ld-edit-form .multiselector_element select.slct_comments:focus,
.ld-edit-form .multiselector_element select.select2sl:focus {
  outline: none; border-color: var(--ld-accent);
  box-shadow: 0 0 0 3px rgba(59,130,246,.15);
}
/* Disabled-инпут для readonly-режима MultiSelector */
.ld-edit-form .multiselector_element input[type="text"][disabled] {
  flex: 1 1 auto; width: 100%;
  font: inherit; font-size: 14px; color: #94A3B8;
  background: #F1F5F9;
  border: 1px solid #CBD5E1; border-radius: 8px;
  padding: 8px 12px; line-height: 1.4;
  box-sizing: border-box; cursor: not-allowed;
}
/* Кнопка-крестик «удалить элемент» */
.ld-edit-form .multiselector_element .editor-block-line > a {
  flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; border-radius: 50%;
  color: #94A3B8; text-decoration: none;
  transition: background .15s, color .15s;
}
.ld-edit-form .multiselector_element .editor-block-line > a:hover {
  background: #FEE2E2; color: #B91C1C;
}
.ld-edit-form .multiselector_element .editor-block-line > a .fa-close::before {
  content: "×"; font-size: 18px; line-height: 1;
}
.ld-edit-form .multiselector_element .editor-block-line > a .fa { font-family: inherit; }
/* Кнопка «+ Добавить ещё одну…» */
.ld-edit-form .multiselect_addmore_btn {
  display: inline-flex; align-items: center; gap: 6px;
  margin-top: 6px;
  font-size: 14px; font-weight: 500;
  color: var(--ld-accent); text-decoration: none;
  cursor: pointer;
}
.ld-edit-form .multiselect_addmore_btn:hover {
  text-decoration: underline;
}
.ld-edit-form .multiselect_addmore_btn::before {
  content: "+"; font-size: 18px; line-height: 1; font-weight: 700;
}

/* ── Quill 2.x WYSIWYG (наш единственный визуальный редактор) ──
   Подключается через views/redesign/admin/_quill_editor.php. Файлы CSS/JS
   тянутся с jsDelivr — quill.snow.css загружается отдельно. Здесь только
   подгонка стандартного theme="snow" под палитру редизайна. */
.ld-quill-wrap {
  background: #fff;
  border-radius: 8px;
  overflow: hidden;
  border: 1px solid #CBD5E1;
}
.ld-quill-wrap .ql-toolbar.ql-snow {
  border: 0 !important;
  border-bottom: 1px solid #E2E8F0 !important;
  background: #F8FAFC;
  padding: 8px 10px;
}
.ld-quill-wrap .ql-container.ql-snow {
  border: 0 !important;
  font: inherit;
  font-size: 15px;
  line-height: 1.6;
}
.ld-quill-wrap .ql-editor {
  min-height: inherit;
  color: var(--ld-fg);
  padding: 14px 18px;
}
.ld-quill-wrap .ql-editor.ql-blank::before {
  color: #94A3B8;
  font-style: normal;
  font-size: 14px;
  padding: 0;
  left: 18px;
}
.ld-quill-wrap .ql-snow .ql-stroke { stroke: #64748B; }
.ld-quill-wrap .ql-snow .ql-fill   { fill:   #64748B; }
.ld-quill-wrap .ql-snow .ql-picker { color:  #64748B; }
.ld-quill-wrap .ql-snow.ql-toolbar button:hover .ql-stroke,
.ld-quill-wrap .ql-snow.ql-toolbar button.ql-active .ql-stroke,
.ld-quill-wrap .ql-snow .ql-picker-label.ql-active .ql-stroke {
  stroke: var(--ld-accent);
}
.ld-quill-wrap .ql-snow.ql-toolbar button:hover .ql-fill,
.ld-quill-wrap .ql-snow.ql-toolbar button.ql-active .ql-fill {
  fill: var(--ld-accent);
}
.ld-quill-wrap .ql-snow.ql-toolbar button:hover,
.ld-quill-wrap .ql-snow.ql-toolbar button.ql-active,
.ld-quill-wrap .ql-snow .ql-picker-label:hover {
  color: var(--ld-accent);
}

/* ── WYSIWYG-контент (info-страницы: /about, /terms, /licence, /nav, ...) ──
   HTML из CKEditor: <p>, <ul>, <ol>, <a>, <h2>, <img>, <table>, <blockquote>. */
.ld-wysiwyg {
  padding: 24px 28px;
  font-size: 15px; line-height: 1.65; color: var(--ld-fg);
}
.ld-wysiwyg > *:first-child { margin-top: 0; }
.ld-wysiwyg > *:last-child  { margin-bottom: 0; }
.ld-wysiwyg p { margin: 0 0 14px; }
.ld-wysiwyg h2 {
  margin: 28px 0 10px;
  font-size: 22px; font-weight: 600; line-height: 1.3;
}
.ld-wysiwyg h3 {
  margin: 22px 0 8px;
  font-size: 18px; font-weight: 600; line-height: 1.3;
}
.ld-wysiwyg h4 {
  margin: 18px 0 6px;
  font-size: 16px; font-weight: 600;
}
.ld-wysiwyg a {
  color: var(--ld-accent);
  text-decoration: none;
  border-bottom: 1px solid rgba(59,130,246,.3);
  transition: border-color .15s;
}
.ld-wysiwyg a:hover { border-bottom-color: var(--ld-accent); }
.ld-wysiwyg ul, .ld-wysiwyg ol { margin: 0 0 14px; padding-left: 22px; }
.ld-wysiwyg ul li, .ld-wysiwyg ol li { margin-bottom: 4px; }
.ld-wysiwyg ul { list-style: disc; }
.ld-wysiwyg ol { list-style: decimal; }
.ld-wysiwyg blockquote {
  margin: 16px 0;
  padding: 10px 16px;
  border-left: 3px solid var(--ld-accent);
  color: #475569;
  background: #F8FAFC;
  border-radius: 0 8px 8px 0;
}
.ld-wysiwyg blockquote p:last-child { margin-bottom: 0; }
.ld-wysiwyg img {
  max-width: 100%; height: auto;
  border-radius: 8px;
  margin: 8px 0;
}
.ld-wysiwyg hr {
  border: 0; border-top: 1px solid #E2E8F0;
  margin: 22px 0;
}
.ld-wysiwyg table {
  border-collapse: collapse;
  width: 100%;
  margin: 14px 0;
  font-size: 14px;
}
.ld-wysiwyg table th, .ld-wysiwyg table td {
  padding: 8px 10px;
  border: 1px solid #E2E8F0;
  text-align: left;
  vertical-align: top;
}
.ld-wysiwyg table th { background: #F8FAFC; font-weight: 600; }
.ld-wysiwyg code {
  font-family: ui-monospace, Menlo, monospace;
  font-size: 13px; color: #1E293B;
  background: #F1F5F9; padding: 1px 6px; border-radius: 4px;
}
.ld-wysiwyg pre {
  background: #F8FAFC; padding: 12px 14px;
  border-radius: 8px; overflow: auto;
  font-size: 13px; line-height: 1.5;
  margin: 14px 0;
}
.ld-wysiwyg strong { font-weight: 600; }

/* ── Админские таблицы (универсальные) ──
   Чистая таблица для служебных страниц: лог, отчёты, метрики. */
.ld-admin-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 13px; line-height: 1.4;
  color: var(--ld-fg);
  background: #fff;
}
.ld-admin-table thead th {
  background: #F8FAFC; color: #475569;
  font-weight: 600; text-align: left;
  padding: 10px 12px;
  border-bottom: 1px solid #E2E8F0;
  font-size: 12px; text-transform: uppercase;
  letter-spacing: .03em;
}
.ld-admin-table tbody td {
  padding: 8px 12px;
  border-bottom: 1px solid #F1F5F9;
  vertical-align: top;
  word-break: break-word;
}
.ld-admin-table tbody tr:hover { background: #F8FAFC; }
.ld-admin-table tbody tr.is-error td { background: #FEF2F2; }
.ld-admin-table tbody tr.is-error td:first-child { border-left: 3px solid #DC2626; }
.ld-admin-table td.is-nowrap, .ld-admin-table th.is-nowrap { white-space: nowrap; }
.ld-admin-table td.is-num, .ld-admin-table th.is-num { text-align: right; font-variant-numeric: tabular-nums; }
.ld-admin-table td code,
.ld-admin-table td pre {
  font-family: ui-monospace, Menlo, monospace;
  font-size: 12px; color: #1E293B;
  background: #F1F5F9; padding: 1px 5px; border-radius: 4px;
  white-space: pre-wrap; word-break: break-all;
}
.ld-admin-table td pre { padding: 6px 8px; display: block; margin: 0; max-height: 240px; overflow: auto; }

/* Карточка-обёртка для таблицы — табличный layout. */
.ld-admin-table-wrap {
  border-radius: var(--ld-card-radius);
  background: #fff;
  box-shadow: var(--ld-card-shadow-soft);
  overflow: hidden;
  margin-bottom: 20px;
}
.ld-admin-table-wrap__head {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 14px 18px; border-bottom: 1px solid #E2E8F0;
  background: #FAFAF7;
}
.ld-admin-table-wrap__title {
  margin: 0; font-size: 15px; font-weight: 600; color: var(--ld-fg);
}
.ld-admin-table-wrap__meta { color: #64748B; font-size: 13px; }
.ld-admin-table-wrap__scroll { overflow: auto; max-width: 100%; }
.ld-admin-table-wrap__empty { padding: 24px; text-align: center; color: #64748B; font-size: 14px; }

/* Метрики (числовые карточки): APC-статистика и пр. */
.ld-admin-stats {
  display: grid; gap: 14px;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  margin-bottom: 20px;
}
.ld-admin-stat {
  background: #fff;
  border-radius: 10px; padding: 14px 16px;
  box-shadow: var(--ld-card-shadow-soft);
}
.ld-admin-stat__label {
  font-size: 12px; color: #64748B;
  text-transform: uppercase; letter-spacing: .03em;
  margin: 0 0 6px;
}
.ld-admin-stat__value {
  font-size: 22px; font-weight: 600; color: var(--ld-fg);
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
}
.ld-admin-stat__hint { font-size: 12px; color: #94A3B8; margin-top: 4px; }

/* Список служебных ссылок (страница «Обслуживание»). */
.ld-admin-link-list {
  display: flex; flex-direction: column;
}
.ld-admin-link-list__group { border-top: 1px solid #F1F5F9; padding: 10px 0; }
.ld-admin-link-list__group:first-child { border-top: 0; padding-top: 0; }
.ld-admin-link-list__group-title {
  font-size: 12px; font-weight: 600; color: #64748B;
  text-transform: uppercase; letter-spacing: .04em;
  margin: 0 0 6px;
}
.ld-admin-link-list__link {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 6px 0;
  color: var(--ld-fg); text-decoration: none;
  font-size: 14px;
}
.ld-admin-link-list__link:hover { color: var(--ld-accent); text-decoration: underline; }
.ld-admin-link-list__link::before {
  content: "→"; color: #94A3B8; font-weight: 500;
}

/* Фильтры над таблицей */
.ld-admin-filters {
  display: flex; align-items: center; gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}
.ld-admin-filters .ld-form-input { width: auto; min-width: 160px; }

/* ── Cookie-баннер (первый визит) ──
   Нижняя плашка во всю ширину. НЕ перекрывает контент модально,
   не блокирует прокрутку — пользователь спокойно листает страницу. */
.ld-cookie-banner {
  position: fixed; left: 0; right: 0; bottom: 0;
  z-index: 9000;
  background: #fff;
  border-top: 1px solid #E2E8F0;
  box-shadow: 0 -8px 24px rgba(15,23,42,.08);
  animation: ld-cookie-in .25s ease-out;
}
.ld-cookie-banner__inner {
  display: flex; align-items: center; gap: 18px;
  padding: 14px 24px;
  max-width: var(--ld-container);
}
.ld-cookie-banner__text {
  flex: 1 1 auto;
  margin: 0;
  font-size: 14px; line-height: 1.5;
  color: var(--ld-fg);
}
.ld-cookie-banner__link {
  color: var(--ld-accent);
  text-decoration: underline;
  text-underline-offset: 2px;
}
.ld-cookie-banner__link:hover { text-decoration: none; }
.ld-cookie-banner__btn {
  flex-shrink: 0;
  padding: 9px 22px;
  font-size: 14px;
  font-weight: 500;
}
@keyframes ld-cookie-in {
  from { opacity: 0; transform: translateY(20px); }
  to   { opacity: 1; transform: translateY(0); }
}
@media (max-width: 768px) {
  .ld-cookie-banner__inner {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    padding: 12px 16px;
  }
  .ld-cookie-banner__text { font-size: 13px; }
  .ld-cookie-banner__btn  { align-self: stretch; }
}

/* ── Lightbox (универсальный) ──
   Открывается JS-ом на клике по .ld-photo-tile или [data-ld-lightbox].
   Закрытие: × в углу, клик по фону, Escape. */
.ld-lightbox {
  position: fixed; inset: 0;
  background: rgba(15,23,42,.92);
  z-index: 10000;
  display: flex; align-items: center; justify-content: center;
  padding: 24px;
  animation: ld-lightbox-in .15s ease-out;
  cursor: zoom-out;
}
.ld-lightbox__img {
  max-width: 92vw; max-height: 92vh;
  object-fit: contain;
  display: block;
  border-radius: 8px;
  box-shadow: 0 30px 60px rgba(0,0,0,.5);
  cursor: pointer;     /* подсказка: клик → следующая */
  animation: ld-lightbox-img-in .2s ease-out;
}
.ld-lightbox__counter {
  position: absolute; bottom: 16px; left: 50%;
  transform: translateX(-50%);
  color: rgba(255,255,255,.85);
  background: rgba(15,23,42,.6);
  padding: 5px 12px;
  border-radius: 100px;
  font-size: 13px;
  font-variant-numeric: tabular-nums;
  user-select: none;
  pointer-events: none;
}
.ld-lightbox__close {
  position: absolute; top: 16px; right: 16px;
  width: 42px; height: 42px;
  background: rgba(255,255,255,.12); color: #fff;
  border: 0; border-radius: 50%;
  font-size: 26px; line-height: 1; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  transition: background .15s;
}
.ld-lightbox__close:hover { background: rgba(255,255,255,.24); }
@keyframes ld-lightbox-in     { from { opacity: 0; }                            to { opacity: 1; } }
@keyframes ld-lightbox-img-in { from { opacity: 0; transform: scale(.96); }    to { opacity: 1; transform: scale(1); } }

/* ── Toast (универсальный) ──
   Используется JS-хелпером window.ldToast(text, type) — type: 'success'|'error'|'info'.
   Контейнер создаётся в body один раз, тосты появляются стопкой в правом нижнем углу. */
.ld-toast-container {
  position: fixed; right: 16px; bottom: 16px;
  display: flex; flex-direction: column; gap: 8px;
  z-index: 9999; pointer-events: none;
}
.ld-toast {
  display: flex; align-items: center; gap: 10px;
  min-width: 220px; max-width: 360px;
  padding: 12px 16px; padding-right: 14px;
  background: #fff; color: var(--ld-fg);
  border: 1px solid #E2E8F0; border-left: 4px solid #94A3B8;
  border-radius: 10px;
  box-shadow: 0 10px 24px rgba(15,23,42,.10), 0 2px 6px rgba(15,23,42,.06);
  font-size: 14px; line-height: 1.4;
  pointer-events: auto;
  animation: ld-toast-in .25s ease-out;
}
.ld-toast--success { border-left-color: #16A34A; }
.ld-toast--success .ld-toast__icon { color: #16A34A; }
.ld-toast--error   { border-left-color: #DC2626; }
.ld-toast--error   .ld-toast__icon { color: #DC2626; }
.ld-toast--info    { border-left-color: var(--ld-accent); }
.ld-toast--info    .ld-toast__icon { color: var(--ld-accent); }
.ld-toast__icon { flex-shrink: 0; display: inline-flex; align-items: center; }
.ld-toast__text { flex: 1 1 auto; }
.ld-toast__close {
  flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  width: 24px; height: 24px; border-radius: 50%;
  font-size: 18px; line-height: 1; color: #94A3B8;
  background: transparent; border: 0; cursor: pointer;
  transition: background .15s, color .15s;
}
.ld-toast__close:hover { background: #F1F5F9; color: var(--ld-fg); }
.ld-toast.is-leaving { animation: ld-toast-out .2s ease-in forwards; }
@keyframes ld-toast-in  { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@keyframes ld-toast-out { from { opacity: 1; transform: translateY(0); }   to { opacity: 0; transform: translateY(8px); } }

/* Состояние "идёт запрос" у кнопки async-action */
.ld-admin-tree__action.is-loading { opacity: 0.5; pointer-events: none; }

/* ── Чекбоксы ── */
/* Чекбокс-метка и блок специализаций в редизайне редактирования врача */
.ld-edit-check {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 14px; color: var(--ld-fg); cursor: pointer; user-select: none;
}
.ld-edit-check input { margin: 0; cursor: pointer; }
.ld-edit-specs select,
.ld-edit-specs .slct_comments,
.ld-edit-specs input[type="text"] {
  width: 100%; max-width: 520px; height: 42px; padding: 0 12px;
  border: 1px solid rgba(15,23,42,.16); border-radius: 10px;
  font-family: inherit; font-size: 15px; background: #fff; margin-bottom: 8px;
}
.ld-edit-specs a { color: var(--ld-accent); font-weight: 600; text-decoration: none; }
.ld-edit-checkboxes {
  display: flex; flex-direction: column; gap: 8px;
}
.ld-edit-checkboxes--grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 8px 16px;
}
.ld-edit-checkbox {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 14px; color: var(--ld-fg); cursor: pointer;
}
.ld-edit-checkbox input[type="checkbox"] {
  width: 16px; height: 16px; accent-color: var(--ld-accent);
  margin: 0;
}

/* ── Кнопки и ссылки внутри формы ── */
.ld-edit-link {
  display: inline-flex; align-items: center; gap: 4px;
  color: var(--ld-accent); font-size: 14px; font-weight: 600;
  text-decoration: none; padding: 6px 0;
}
.ld-page a.ld-edit-link:hover,
.ld-page a.ld-edit-link:focus {
  color: var(--ld-accent);
  text-decoration: underline;
}

/* .ld-btn--primary — единственное определение; базовые размеры наследуются от
   .ld-btn (см. секцию "Buttons" выше — h:44/p:0 18/r:12/fs:15 для md). */
.ld-btn--primary {
  background: var(--ld-accent); color: #fff;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 6px 14px rgba(59,130,246,.20);
}
.ld-btn--primary:hover { background: #2563EB; color: #fff; box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 8px 20px rgba(59,130,246,.32); }
.ld-btn--primary:active { background: #1D4ED8; color: #fff; transform: translateY(1px); box-shadow: inset 0 0 0 0 transparent, 0 2px 6px rgba(59,130,246,.25); }

.ld-edit-form__actions {
  padding: 16px 0;
  display: flex; gap: 8px; align-items: center;
}

/* ── Логотип ── */
.ld-edit-logo {
  display: flex; gap: 24px; align-items: center;
}
.ld-edit-logo__preview {
  flex-shrink: 0; width: 120px; height: 120px;
  border-radius: 12px; overflow: hidden;
  background: #F1F5F9; border: 1px solid rgba(15,23,42,.07);
  display: grid; place-items: center;
}
.ld-edit-logo__preview img {
  width: 100%; height: 100%; object-fit: cover;
}
.ld-edit-logo__actions { flex: 1; }
.ld-edit-logo__progress {
  margin-top: 10px;
}
.ld-edit-logo__progress-bar {
  height: 8px; border-radius: 4px; background: #E2E8F0;
  overflow: hidden; margin-bottom: 6px;
}
.ld-edit-logo__progress-bar .uploader_bar {
  height: 100%; background: var(--ld-accent); transition: width .3s;
}
.ld-edit-logo__progress .progress_note {
  font-size: 13px; color: #64748B;
}

/* ── Фото клиники (интерьер) на странице редактирования ──
   Используется существующий fileuploader.js — у нас здесь только стили. */
.ld-clinic-photos__upload { margin-bottom: 12px; }
.ld-clinic-photos__progress {
  display: none;
  background: #F8FAFC;
  border: 1px solid #E2E8F0;
  border-radius: 8px;
  padding: 10px 14px;
  margin-bottom: 12px;
}
.ld-clinic-photos__progress .uploader_bar {
  height: 6px;
  background: var(--ld-accent);
  border-radius: 3px;
  transition: width .2s ease;
  margin-bottom: 6px;
}
.ld-clinic-photos__progress .progress_note { font-size: 13px; color: #64748B; }

.ld-clinic-photos__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 12px;
  /* clearfix старого col_6 не нужен */
}
.ld-clinic-photos__grid::before,
.ld-clinic-photos__grid::after { content: none !important; display: none !important; }

/* Каждый элемент-плейсхолдер фото внутри сетки.
   fileuploader.js при загрузке вставляет `<div class="col_6 work_image_placeholder">`
   с inline `style="width:100%"` у <img>. Через .interior_photos_block .work_image_placeholder
   site.css задаёт фикс. height 190px — это нам ломает сетку, поэтому жёстко
   ресетим всё с !important. */
.ld-clinic-photos__grid > div,
.ld-clinic-photos__grid > .col_6,
.ld-clinic-photos__grid > .work_image_placeholder,
.ld-clinic-photos__grid > .ld-clinic-photos__item {
  position: relative !important;
  width: auto !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  float: none !important;
  padding: 0 !important;
  margin: 0 !important;
  box-sizing: border-box !important;
  border-radius: 10px;
  overflow: hidden;
  background: #F1F5F9;
  cursor: move;        /* drag-and-drop через .makemesortable */
  aspect-ratio: 3 / 2;
}

.ld-clinic-photos__grid img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  display: block;
}

/* <br> внутри карточки от старой разметки — скрываем (Удалить превращаем в кнопку-оверлей) */
.ld-clinic-photos__grid > div > br { display: none; }

/* Кнопка «Удалить» — независимо от классов и наличия <br> */
.ld-clinic-photos__grid > div > a,
.ld-clinic-photos__delete {
  position: absolute;
  top: 8px; right: 8px;
  display: inline-flex !important;
  align-items: center; justify-content: center;
  padding: 4px 10px;
  border-radius: 6px;
  background: rgba(15,23,42,.7);
  color: #fff !important;
  text-decoration: none !important;
  font-size: 12px;
  line-height: 1.2;
  transition: background .15s ease;
}
.ld-clinic-photos__grid > div > a:hover,
.ld-clinic-photos__delete:hover {
  background: #DC2626;
  color: #fff !important;
}

/* Подсветка позиции при drag-drop */
.ld-clinic-photos__grid > div.ui-sortable-helper {
  opacity: .9;
  box-shadow: 0 8px 24px rgba(15,23,42,.18);
}
.ld-clinic-photos__grid > div.ui-sortable-placeholder {
  background: #E0F2FE !important;
  border: 2px dashed #67E8F9;
  visibility: visible !important;
}
.ld-clinic-photos__empty {
  margin-top: 8px;
  padding: 14px;
  text-align: center;
  background: #F8FAFC;
  border: 1px dashed #CBD5E1;
  border-radius: 8px;
  color: #64748B;
  font-size: 14px;
}

/* ────────────────────────────────────────────────────────────
   Страница edit-work (добавление/редактирование работы «До и после»)
   Сетка фото аналогична интерьеру клиники, но пропорция 2:1 (1000×500).
   fileuploader.js вставляет `<div class="col_6 work_image_placeholder">` -
   ресетим старые col_6/work_image_placeholder-стили из site.css через !important.
   ──────────────────────────────────────────────────────────── */
.ld-work-photos__upload { margin-bottom: 12px; }
.ld-work-photos__progress {
  display: none;
  background: #F8FAFC; border: 1px solid #E2E8F0; border-radius: 8px;
  padding: 10px 14px; margin-bottom: 12px;
}
.ld-work-photos__progress .uploader_bar {
  height: 6px; background: var(--ld-accent); border-radius: 3px;
  transition: width .2s ease; margin-bottom: 6px;
}
.ld-work-photos__progress .progress_note { font-size: 13px; color: #64748B; }

.ld-work-photos__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 12px;
}
.ld-work-photos__grid::before,
.ld-work-photos__grid::after { content: none !important; display: none !important; }

.ld-work-photos__grid > div,
.ld-work-photos__grid > .col_6,
.ld-work-photos__grid > .work_image_placeholder,
.ld-work-photos__grid > .ld-work-photos__item {
  position: relative !important;
  width: auto !important; height: auto !important;
  min-height: 0 !important; max-height: none !important;
  float: none !important; padding: 0 !important; margin: 0 !important;
  box-sizing: border-box !important;
  border-radius: 10px; overflow: hidden; background: #F1F5F9;
  cursor: move; aspect-ratio: 2 / 1;
}
.ld-work-photos__grid img {
  width: 100% !important; height: 100% !important;
  object-fit: cover; display: block;
}
.ld-work-photos__grid > div > br { display: none; }
.ld-work-photos__grid > div > a,
.ld-work-photos__delete {
  position: absolute; top: 8px; right: 8px;
  display: inline-flex !important; align-items: center; justify-content: center;
  padding: 4px 10px; border-radius: 6px;
  background: rgba(15,23,42,.7); color: #fff !important;
  text-decoration: none !important; font-size: 12px; line-height: 1.2;
  transition: background .15s ease;
}
.ld-work-photos__grid > div > a:hover,
.ld-work-photos__delete:hover { background: #DC2626; color: #fff !important; }
.ld-work-photos__grid > div.ui-sortable-helper { opacity: .9; box-shadow: 0 8px 24px rgba(15,23,42,.18); }
.ld-work-photos__grid > div.ui-sortable-placeholder {
  background: #E0F2FE !important; border: 2px dashed #67E8F9; visibility: visible !important;
}
.ld-work-photos__hint { margin: 10px 0 0; font-size: 13px; color: #64748B; }

/* Поля, у которых метка над полем (заголовок/описание работы) */
.ld-form-row--stack { display: block !important; }
.ld-form-row--stack > .ld-form-label { display: block; margin-bottom: 6px; }
.ld-form-hint { margin: 6px 0 0; font-size: 12px; color: #94A3B8; }
/* Нередактируемое значение в строке формы (клиника, когда выбор недоступен) */
.ld-form-static { font-size: 15px; color: #0F172A; padding: 9px 0; }
/* Чекбокс в стиле формы */
.ld-check { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; font-size: 14px; color: #334155; }
.ld-check input { width: 16px; height: 16px; accent-color: var(--ld-accent); cursor: pointer; }

/* Превью видео на странице добавления видео (edit-video): iframe из videoform.js */
.ld-video-preview { margin-top: 14px; }
.ld-video-preview:empty { display: none; }
.ld-video-preview iframe {
  width: 100%; max-width: 640px; aspect-ratio: 16 / 9; height: auto;
  border: 0; border-radius: 12px; display: block; background: #0B1220;
}

/* ── Фото лицензии ── */
.ld-license-photo { display: flex; align-items: flex-start; gap: 14px; flex-wrap: wrap; }

.ld-license-photo__thumb {
  position: relative; flex-shrink: 0;
  width: 120px; height: 90px;
  border-radius: 8px; overflow: hidden;
  border: 1px solid #CBD5E1;
  background: #F8FAFC;
}
.ld-license-photo__thumb a { display: block; width: 100%; height: 100%; }
.ld-license-photo__thumb img {
  width: 100%; height: 100%; object-fit: cover;
  cursor: pointer; transition: opacity .15s;
}
.ld-license-photo__thumb:hover img { opacity: .85; }

.ld-license-photo__delete {
  position: absolute; top: 4px; right: 4px;
  width: 22px; height: 22px;
  background: rgba(255,255,255,.9); backdrop-filter: blur(4px);
  border: none; border-radius: 50%; cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  color: #64748B; padding: 0;
  transition: background .15s, color .15s;
}
.ld-license-photo__delete:hover { background: #FEE2E2; color: #B91C1C; }

.ld-license-photo__upload { display: flex; align-items: center; }
.ld-license-photo__spinner { font-size: 13px; color: #64748B; display: inline-flex; align-items: center; gap: 6px; }
.ld-license-photo__error { font-size: 13px; color: #B91C1C; margin-top: 4px; }

/* ── Метро ── */
.ld-edit-metro {
  display: flex; flex-wrap: wrap; gap: 8px;
}
.ld-edit-metro__item {
  display: inline-flex; align-items: center; gap: 6px;
  background: #F8FAFC; border: 1px solid #E2E8F0;
  padding: 6px 10px; border-radius: 999px;
  font-size: 13px; color: var(--ld-fg);
}
.ld-edit-metro__dot {
  width: 10px; height: 10px; border-radius: 50%;
  display: inline-block;
}
.ld-edit-metro__dist { color: #64748B; font-size: 12px; }

/* ── Warning о дублях ── */
.ld-edit-warning {
  background: #FEF3C7; border: 1px solid #FCD34D; color: #92400E;
  padding: 10px 14px; border-radius: 8px; font-size: 13px;
}

/* ── Worktime ── */
.ld-edit-worktime { display: flex; flex-direction: column; gap: 14px; }
.ld-edit-worktime__item {
  background: #FAFAF7; border: 1px solid rgba(15,23,42,.06);
  border-radius: 10px; padding: 12px 14px;
}
.ld-edit-worktime__row {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px;
  margin-bottom: 8px;
}
.ld-edit-worktime__row select.ld-form-select { width: auto; min-width: 64px; }
.ld-edit-worktime__sep {
  font-size: 13px; color: #64748B;
}

/* ── Phones ── */
.ld-edit-phones {
  display: flex; flex-direction: column; gap: 12px;
  margin-bottom: 8px;
}
.ld-edit-phone {
  background: #FAFAF7; border: 1px solid rgba(15,23,42,.06);
  border-radius: 10px; padding: 12px 14px;
}
.ld-edit-phone .ld-form-row { margin-bottom: 8px; }
.ld-edit-phone .ld-form-row:last-child { margin-bottom: 0; }

/* ── Прочее ── */
.ld-edit-note {
  font-size: 13px; color: #64748B; line-height: 1.5;
  background: #F8FAFC; padding: 12px 16px; border-radius: 8px;
  margin: 8px 0 0;
}
.ld-edit-notice {
  display: flex; gap: 14px; align-items: flex-start;
  font-size: 14px; font-weight: 500; line-height: 1.6; color: #7A4A00;
  background: linear-gradient(135deg, #FFF8EC 0%, #FFF3D6 100%);
  border: 1.5px solid #F5C842;
  border-left: 4px solid #F5A623;
  border-radius: 12px; padding: 16px 20px; margin: 0 0 24px;
  box-shadow: 0 2px 10px rgba(245,166,35,.15);
}
.ld-edit-notice--error { color: #8B1A12; background: #FCEEED; border-color: rgba(214,69,59,.45); border-left-color: #D6453B; box-shadow: none; }
.ld-edit-notice--error .ld-edit-notice__text span { display: block; }
.ld-edit-notice--success { color: #136A3A; background: #ECFAF1; border-color: rgba(22,163,74,.35); border-left-color: #16A34A; box-shadow: none; }
.ld-edit-notice--success .ld-edit-notice__icon { color: #16A34A; }
.ld-edit-notice--success .ld-edit-notice__text span { color: #2F855A; }

/* ── Блок «Места работы» (переверстано) ── */
/* overflow:visible - чтобы выпадашка поиска клиники не обрезалась карточкой;
   верхние углы шапки скругляем вручную (иначе фон шапки даёт квадратные углы) */
.ld-edit-card--overflow { overflow: visible; }
.ld-edit-card--overflow .ld-edit-card__head { border-top-left-radius: var(--ld-card-radius); border-top-right-radius: var(--ld-card-radius); }
.ld-work-list { display: flex; flex-direction: column; gap: 14px; margin-bottom: 14px; }
.ld-work { border: 1px solid rgba(14,23,38,.09); border-radius: 14px; padding: 16px 18px; background: #fff; }
.ld-work__grid { display: grid; grid-template-columns: 1fr; gap: 14px; margin-bottom: 14px; }
/* Строки места работы используют ту же сетку «метка | поле» (200px 1fr), что и блок
   «Образование и квалификация» - поле начинается с того же отступа, всё ровно.
   Выпадашка автокомплита (.ld-work__results) растягивается на всю строку, как у вуза - это ок. */
.ld-work__grid:last-of-type { margin-bottom: 0; }
/* Обёртка поля (колонка 2 сетки): относительный контейнер, чтобы выпадашка
   автокомплита позиционировалась по ширине поля ввода, а не всей строки с меткой. */
.ld-work__field { position: relative; }
.ld-work__results { position: absolute; z-index: 40; top: calc(100% + 4px); left: 0; right: 0; background: #fff; border: 1px solid rgba(14,23,38,.09); border-radius: 12px; box-shadow: 0 12px 32px rgba(14,23,38,.14), 0 2px 8px rgba(14,23,38,.06); padding: 6px; max-height: 260px; overflow-y: auto; }
.ld-work__opt { padding: 9px 12px; border-radius: 9px; cursor: pointer; font-size: 14.5px; color: #33405A; }
.ld-work__opt:hover { background: #F3F6FB; }
.ld-work__empty { padding: 9px 12px; font-size: 14px; color: #93A0B5; }
.ld-work__remove { margin-top: 14px; display: inline-flex; align-items: center; gap: 7px; background: transparent; border: 0; cursor: pointer; font-family: inherit; font-size: 13.5px; font-weight: 700; color: #D6453B; padding: 0; }
.ld-work__remove:hover { opacity: .8; }
/* Специализации врача в клинике (чекбоксы) - раскладка как у поля «Должность» (метка | колонка). */
.ld-work__specs-row { align-items: start; }
.ld-work__specs-list { display: flex; flex-direction: column; gap: 9px; padding-top: 7px; }
.ld-work__spec { font-size: 14px; }
/* Расписание (время приёма) в блоке места работы - раскладка как у «Должности» (метка | колонка). */
.ld-wt { align-items: start; }
.ld-wt__col { padding-top: 1px; }
.ld-wt__label { font-size: 13px; font-weight: 600; color: #64748B; margin-bottom: 8px; }
.ld-wt-row { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 8px; }
.ld-wt-sel { width: auto; min-width: 60px; height: 38px; padding: 0 26px 0 10px; font-size: 14px; }
.ld-wt-sep { color: #94A3B8; font-size: 13px; }
.ld-wt-note { flex: 1; min-width: 160px; height: 38px; }
.ld-wt-del { width: 34px; height: 38px; border: 0; background: transparent; color: #94A3B8; cursor: pointer; border-radius: 8px; display: grid; place-items: center; flex: 0 0 auto; }
.ld-wt-del:hover { background: #FEE2E2; color: #DC2626; }
.ld-wt-add { display: inline-block; margin-top: 2px; }
.ld-edit-notice__icon {
  flex-shrink: 0;
  width: 36px; height: 36px;
  background: #F5A623; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  margin-top: 1px;
}
.ld-edit-notice__icon svg { display: block; }
.ld-edit-notice__text strong {
  display: block; font-size: 14px; font-weight: 700; color: #7A4A00; margin-bottom: 3px;
}
.ld-edit-notice__text span { font-weight: 400; color: #92560A; font-size: 13px; }

/* ====== FAQ ====== */
/* Секция FAQ карточки клиники использует общий .ld-section .ld-section--bg
   (как все остальные секции) - отдельный .ld-faq для секции больше не нужен
   (раньше конфликтовал с .ld-faq аккордеона листинга и ломал верхний отступ). */
/* Заголовок FAQ использует общие классы .ld-section__head/kicker/title
   (см. секцию "Section title (H2)" выше). */
/* Карточка-аккордеон — white card с soft shadow (как cardSx(cardStyle, {padding:4})) */
.ld-faq__card {
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 1px 2px rgba(15,23,42,.04), 0 8px 28px rgba(15,23,42,.06);
  padding: 4px;
}
.ld-faq__item { }
.ld-faq__question {
  width: 100%; text-align: left; background: transparent; border: none; cursor: pointer;
  display: flex; align-items: center; justify-content: space-between;
  gap: 16px; padding: 20px;
  font-family: inherit; font-size: 16px; font-weight: 600; color: #0F172A; line-height: 1.4;
}
/* Круглая кнопка +/− */
.ld-faq__toggle {
  flex: 0 0 auto;
  width: 28px; height: 28px; border-radius: 50%;
  background: #F1F5F9; color: #0F172A;
  display: grid; place-items: center;
  transition: background .2s, color .2s;
}
.ld-faq__item--open .ld-faq__toggle {
  background: var(--ld-accent); color: #fff;
}
/* Иконки: plus видна когда закрыто, down — когда открыто */
.ld-faq__icon-down { display: none; }
.ld-faq__icon-plus { display: block; }
.ld-faq__item--open .ld-faq__icon-down { display: block; }
.ld-faq__item--open .ld-faq__icon-plus { display: none; }

.ld-faq__answer {
  display: none;
  padding: 0 56px 20px 20px;
  font-size: 15px; line-height: 1.6; color: #475569;
}
.ld-faq__item--open .ld-faq__answer { display: block; }
.ld-faq__answer a { color: var(--ld-accent); text-decoration: none; }
.ld-faq__answer a:hover { text-decoration: underline; }

@media (max-width: 768px) {
  .ld-faq__question { font-size: 15px; padding: 16px; }
  .ld-faq__answer { padding: 0 16px 16px; }
}

/* ── Мобильная адаптация ── */
@media (max-width: 768px) {
  .ld-edit-page { padding: 12px 0 40px; }
  .ld-edit-page__header { flex-direction: column; align-items: flex-start; gap: 8px; }
  .ld-edit-page__header h1 { font-size: 22px; }
  .ld-edit-card__head, .ld-edit-card__body { padding: 14px 16px; }
  .ld-form-row {
    grid-template-columns: 1fr; gap: 4px;
  }
  .ld-form-label { padding-top: 0; }
  .ld-edit-logo { flex-direction: column; align-items: flex-start; gap: 14px; }
  .ld-edit-logo__preview { width: 100%; height: 200px; }
  .ld-edit-worktime__row { gap: 6px; }
  .ld-edit-worktime__row select.ld-form-select { flex: 1 1 70px; }
}

/* save-button/save-spinner toggling — управляется JS из /js/add.js */
.ld-edit-form__actions .save-spinner { display: none; }
.ld-edit-form__actions.med-form-savebutton .save-button { display: inline-flex; }

/* ═══════════════════════════════════════════════════════════════════════════
   Страница цен клиники (/ceny) — новый дизайн
   ═══════════════════════════════════════════════════════════════════════════ */

.ld-ceny-page { padding: 32px 0 64px; }

/* Шапка */
.ld-ceny-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 24px;
}
.ld-ceny-header__h1 {
  font-size: 26px;
  font-weight: 800;
  color: #0F172A;
  margin: 4px 0 6px;
  line-height: 1.2;
  display: flex;
  align-items: center;
  gap: 10px;
}
.ld-ceny-header__delete {
  display: inline-flex;
  align-items: center;
  opacity: .5;
  transition: opacity .15s;
}
.ld-ceny-header__delete:hover { opacity: 1; }
.ld-ceny-header__meta {
  font-size: 13px;
  color: #64748B;
  margin-top: 4px;
}
.ld-ceny-header__changer {
  color: var(--ld-accent);
  text-decoration: none;
  font-weight: 600;
}
.ld-ceny-header__changer:hover { text-decoration: underline; }

/* Flash-алерты */
.ld-ceny-alert {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 18px;
  border-radius: 12px;
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 20px;
}
.ld-ceny-alert--success { background: #DCFCE7; color: #166534; }
.ld-ceny-alert--warn    { background: #FEF3C7; color: #92400E; }
.ld-ceny-alert a        { color: inherit; }

/* Описание страницы */
.ld-ceny-desc {
  background: #F8FAFC;
  border-radius: 12px;
  padding: 16px 20px;
  margin-bottom: 20px;
  font-size: 14px;
  color: #475569;
  line-height: 1.6;
}
.ld-ceny-desc__info {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-top: 10px;
  color: #64748B;
}
.ld-ceny-desc__info svg { flex-shrink: 0; margin-top: 2px; }

/* Способы оплаты */
.ld-ceny-payment-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.ld-ceny-payment-item {
  display: flex;
  cursor: pointer;
}
.ld-ceny-payment-cb { display: none; }
.ld-ceny-payment-label {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border-radius: 10px;
  border: 2px solid #E2E8F0;
  background: #F8FAFC;
  font-size: 14px;
  font-weight: 500;
  color: #475569;
  transition: all .15s;
  cursor: pointer;
}
.ld-ceny-payment-cb:checked + .ld-ceny-payment-label {
  border-color: var(--ld-accent);
  background: rgba(59,130,246,.08);
  color: var(--ld-accent);
}
.ld-ceny-payment-label svg { stroke: currentColor; }

/* Категория услуг — collapsible card */
.ld-ceny-category {
  background: #fff;
  border-radius: 16px;
  border: 1px solid #E2E8F0;
  box-shadow: 0 2px 8px rgba(15,23,42,.04);
  margin-bottom: 12px;
  overflow: hidden;
}
.ld-ceny-category__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 24px;
  cursor: pointer;
  user-select: none;
  list-style: none;
  background: #FAFBFC;
  border-bottom: 1px solid #F1F5F9;
  transition: background .12s;
}
.ld-ceny-category__head::-webkit-details-marker { display: none; }
.ld-ceny-category__head:hover { background: #F1F5F9; }
.ld-ceny-category__title {
  font-size: 16px;
  font-weight: 700;
  color: #0F172A;
  margin: 0;
}
.ld-ceny-category__chevron {
  stroke: #94A3B8;
  transition: transform .2s;
  flex-shrink: 0;
}
details[open] .ld-ceny-category__chevron { transform: rotate(180deg); }
.ld-ceny-category__body { padding: 0; }
/* Секция без врачей — слегка приглушена, чтобы выделялась среди нормальных */
.ld-ceny-category--nodoc { opacity: .72; }
.ld-ceny-category--nodoc .ld-ceny-category__title { color: #64748B; }

/* Строка услуги */
.ld-ceny-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 24px;
  border-bottom: 1px solid #F1F5F9;
  transition: background .1s;
  flex-wrap: wrap;
}
.ld-ceny-row:last-child { border-bottom: none; }
.ld-ceny-row:hover { background: #F8FAFC; }
.ld-ceny-row__name {
  flex: 1 1 200px;
  font-size: 14px;
  color: #1E293B;
  display: flex;
  flex-direction: column;
  gap: 5px;
  align-items: flex-start;
}
.ld-ceny-row__name-main {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
}
.ld-ceny-row__name a { color: #1E293B; text-decoration: none; }
.ld-ceny-row__name a:hover { color: var(--ld-accent); }
.ld-ceny-row__date {
  font-size: 11px;
  color: #CBD5E1;
  font-weight: 500;
  white-space: nowrap;
}

/* Описание услуги под названием */
.ld-ceny-row__desc {
  font-size: 12px;
  color: #94A3B8;
  line-height: 1.55;
  max-width: 560px;
}

/* Плашка «нет врача нужной специальности» */
.ld-ceny-row__no-doctor {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  font-weight: 500;
  color: #92400E;
  background: #FEF3C7;
  border: 1px solid #FDE68A;
  border-radius: 6px;
  padding: 3px 9px 3px 7px;
  line-height: 1.4;
}
.ld-ceny-row__no-doctor svg { flex-shrink: 0; stroke: #B45309; }
.ld-ceny-row__no-doctor-specs { color: #78350F; font-weight: 600; }

/* Цена (режим просмотра) */
.ld-ceny-price-val {
  font-size: 14px;
  font-weight: 600;
  color: #0F172A;
  white-space: nowrap;
  margin-left: auto;
}
.ld-ceny-old { color: #94A3B8; font-weight: 400; margin-right: 4px; }
.ld-ceny-action { color: var(--ld-accent); text-decoration: none; font-weight: 700; }
.ld-ceny-action:hover { text-decoration: underline; }

/* Инпуты цен (режим редактирования) */
.ld-ceny-price-inner {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-left: auto;
  flex-shrink: 0;
}
.ld-ceny-price-inner.disabled { opacity: .4; pointer-events: none; }
.ld-ceny-inp-wrap {
  display: flex;
  align-items: center;
  gap: 4px;
}
.ld-ceny-inp-label {
  font-size: 12px;
  color: #94A3B8;
  font-weight: 500;
  white-space: nowrap;
}
.ld-ceny-input {
  width: 80px;
  height: 34px;
  padding: 0 10px;
  border: 1.5px solid #E2E8F0;
  border-radius: 8px;
  font-size: 14px;
  font-family: inherit;
  color: #0F172A;
  background: #fff;
  transition: border-color .15s;
  text-align: right;
}
.ld-ceny-input:focus { outline: none; border-color: var(--ld-accent); }
.ld-ceny-input:disabled { background: #F8FAFC; color: #CBD5E1; }
.ld-ceny-input.mirrow-active-start { border-color: var(--ld-accent); background: rgba(59,130,246,.06); }
.ld-ceny-input.mirrow-active-end   { border-color: #BFDBFE; background: rgba(59,130,246,.04); }
.ld-ceny-inp-currency {
  font-size: 13px;
  color: #64748B;
  font-weight: 600;
}

/* Tooltip-подсказка (из ceny.js) */
.ceny-tooltip-span {
  display: none;
  position: absolute;
  bottom: calc(100% + 8px);
  right: 0;
  background: #1E293B;
  color: #fff;
  font-size: 12px;
  padding: 8px 12px;
  border-radius: 8px;
  max-width: 280px;
  white-space: normal;
  z-index: 100;
  box-shadow: 0 4px 12px rgba(0,0,0,.2);
  pointer-events: none;
}
.ld-ceny-row { position: relative; } /* для позиционирования tooltip */
.ceny-tooltip-span_open { display: block; }

/* Группа услуг (уровень 1 с потомками) */
.ld-ceny-group {
  border-bottom: 1px solid #F1F5F9;
}
.ld-ceny-group:last-child { border-bottom: none; }
.ld-ceny-group__title {
  padding: 10px 24px 8px;
  font-size: 13px;
  font-weight: 700;
  color: #64748B;
  text-transform: uppercase;
  letter-spacing: .05em;
  background: #F8FAFC;
}
.ld-ceny-group__title a { color: inherit; text-decoration: none; }
.ld-ceny-group__title a:hover { color: var(--ld-accent); }
.ld-ceny-group__rows {}
.ld-ceny-group__rows .ld-ceny-row:last-child { border-bottom: none; }

/* Вложенная подгруппа (уровень 2+) */
.ld-ceny-sub { border-bottom: 1px solid #F1F5F9; }
.ld-ceny-sub:last-child { border-bottom: none; }
.ld-ceny-sub__title {
  padding: 8px 24px 6px;
  font-size: 12px;
  font-weight: 700;
  color: #94A3B8;
  text-transform: uppercase;
  letter-spacing: .04em;
}
.ld-ceny-sub__title a { color: inherit; text-decoration: none; }
.ld-ceny-sub__title a:hover { color: var(--ld-accent); }
.ld-ceny-sub__rows .ld-ceny-row { padding-left: 36px; }

/* Звёздочка избранных цен */
.ld-ceny-star {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: none;
  background: transparent;
  border-radius: 8px;
  cursor: pointer;
  color: #CBD5E1;
  flex-shrink: 0;
  transition: color .15s, background .15s, transform .12s;
  padding: 0;
}
.ld-ceny-star:hover {
  color: #F59E0B;
  background: #FFFBEB;
  transform: scale(1.15);
}
.ld-ceny-star--active {
  color: #F59E0B;
}
.ld-ceny-star--active:hover {
  color: #D97706;
  background: #FEF3C7;
}
.ld-ceny-star--loading {
  opacity: .5;
  pointer-events: none;
}

/* Сердечко «промо-цена». Только одна услуга на клинику.
   Без фона - чистая иконка. В активном состоянии - ярко-красный (red-500). */
.ld-ceny-promo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: 0;
  background: none;
  cursor: pointer;
  color: #CBD5E1;       /* серый контур пока не активна */
  flex-shrink: 0;
  transition: color .15s ease, transform .12s ease;
  padding: 0;
}
.ld-ceny-promo:hover {
  color: #EF4444;       /* red-500 - подсветка при наведении */
  background: none;     /* фона нет даже на hover */
  transform: scale(1.18);
}
.ld-ceny-promo--active {
  color: #EF4444;       /* ярко-красный red-500 когда промо активно */
}
.ld-ceny-promo--active:hover {
  color: #DC2626;       /* red-600 - чуть темнее на hover */
  background: none;
}
.ld-ceny-promo--loading { opacity: .5; pointer-events: none; }
/* Placeholder для услуг без заполненной цены - чтобы колонки не «прыгали». */
.ld-ceny-promo--placeholder {
  background: none;
  cursor: default;
  pointer-events: none;
}

/* Мобильная адаптация цен */
@media (max-width: 768px) {
  .ld-ceny-header { flex-direction: column; align-items: flex-start; gap: 12px; }
  .ld-ceny-header__h1 { font-size: 20px; }
  .ld-ceny-category__head { padding: 14px 16px; }
  .ld-ceny-row { padding: 10px 16px; }
  .ld-ceny-group__title { padding: 8px 16px; }
  .ld-ceny-sub__rows .ld-ceny-row { padding-left: 24px; }
  .ld-ceny-price-inner { margin-left: 0; width: 100%; flex-wrap: wrap; }
  .ld-ceny-input { width: 68px; }
  .ld-ceny-payment-grid { gap: 8px; }
}

/* ============================================================
   Городская страница цен (views/redesign/city/ceny.php)
   ============================================================ */

.ld-city-ceny-page { padding: 32px 0 64px; }
/* Когда ниже идёт листинг клиник (.ld-listing-results) - убираем нижний паддинг,
   чтобы не было большого зазора между деревом/фильтром и серым баром листинга. */
.ld-city-ceny-page--with-listing { padding-bottom: 0; }

/* Шапка страницы */
.ld-city-ceny-header { margin-bottom: 28px; }
.ld-city-ceny-header__h1 {
  font-size: 28px;
  font-weight: 800;
  color: var(--ld-fg);
  margin: 8px 0 14px;
  line-height: 1.25;
}
.ld-city-ceny-header__desc {
  font-size: 15px;
  color: var(--ld-fg-muted);
  line-height: 1.6;
  margin: 0 0 10px;
  max-width: 720px;
}
.ld-city-ceny-header__info {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: 13px;
  color: var(--ld-fg-soft);
  line-height: 1.5;
  max-width: 680px;
}
.ld-city-ceny-header__info svg {
  flex-shrink: 0;
  margin-top: 1px;
  stroke: var(--ld-fg-faint);
}

/* Список категорий */
.ld-city-ceny-list {
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-top: 28px;
}

/* Категория (стоматология, урология, …) */
.ld-city-ceny-cat {
  border: 1px solid var(--ld-line);
  border-radius: var(--ld-radius);
  background: #fff;
  margin-bottom: 12px;
  overflow: hidden;
}

.ld-city-ceny-cat__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid var(--ld-line);
  background: var(--ld-slate-50);
}
.ld-city-ceny-cat__title {
  font-size: 17px;
  font-weight: 700;
  color: var(--ld-fg);
  margin: 0;
}
.ld-city-ceny-cat__title a {
  color: inherit;
  text-decoration: none;
}
.ld-city-ceny-cat__title a:hover { color: var(--ld-accent); }

.ld-city-ceny-cat__admin {
  display: flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
}

/* Тело категории — строки услуг */
.ld-city-ceny-cat__body { padding: 0; }

/* Строка услуги */
.ld-city-ceny-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 20px;
  border-bottom: 1px solid var(--ld-line);
  transition: background .15s;
}
.ld-city-ceny-item:last-child { border-bottom: none; }
.ld-city-ceny-item:hover { background: #F8FAFC; }

.ld-city-ceny-item__main {
  flex: 1 1 0;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  min-width: 0;
}
.ld-city-ceny-item__name {
  font-size: 14px;
  font-weight: 500;
  color: var(--ld-fg);
  text-decoration: none;
  flex-shrink: 0;
}
.ld-city-ceny-item__name:hover { color: var(--ld-accent); }

.ld-city-ceny-item__price {
  font-size: 13px;
  font-weight: 600;
  color: var(--ld-accent);
  white-space: nowrap;
  background: var(--ld-accent-soft);
  padding: 2px 8px;
  border-radius: 20px;
  flex-shrink: 0;
}

/* Мета-чипсы: клиники / отзывы / фото */
.ld-city-ceny-item__meta {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  flex-wrap: wrap;
}
.ld-city-ceny-item__chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  font-weight: 500;
  padding: 3px 8px;
  border-radius: 20px;
  white-space: nowrap;
  text-decoration: none;
}
.ld-city-ceny-item__chip--clinic {
  background: var(--ld-slate-100);
  color: var(--ld-fg-muted);
}
.ld-city-ceny-item__chip--reviews {
  background: #EFF6FF;
  color: #1D4ED8;
}
.ld-city-ceny-item__chip--reviews:hover { background: #DBEAFE; color: #1E40AF; }
.ld-city-ceny-item__chip--photos {
  background: #F0FDF4;
  color: #15803D;
}
.ld-city-ceny-item__chip--photos:hover { background: #DCFCE7; color: #14532D; }

/* Админские кнопки */
.ld-city-ceny-item__admin {
  display: flex;
  align-items: center;
  gap: 2px;
  flex-shrink: 0;
}

.ld-city-ceny-admin-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 6px;
  color: var(--ld-fg-soft);
  text-decoration: none;
  transition: background .15s, color .15s;
}
.ld-city-ceny-admin-btn:hover { background: var(--ld-slate-100); color: var(--ld-accent); }
.ld-city-ceny-admin-btn--hidden { color: #EF4444; }

/* Кнопка "Добавить услугу" */
.ld-city-ceny-admin-add {
  padding: 20px 0 4px;
  display: flex;
}

/* Цена в контексте города (subpage) */
.ld-city-ceny-price {
  font-size: 14px;
  font-weight: 700;
  color: var(--ld-accent);
  white-space: nowrap;
}
.ld-city-ceny-price--free {
  font-size: 14px;
  font-weight: 700;
  color: #16a34a;
  white-space: nowrap;
}

/* Вариант без карточек-оберток (subpage: уже есть details/ld-ceny-category) */
.ld-city-ceny-list--subpage { margin-top: 28px; }
.ld-city-ceny-list--subpage .ld-ceny-category { border-radius: 16px; }
.ld-city-ceny-list--subpage .ld-ceny-row { padding: 11px 24px; }

/* ── Страница услуги со списком клиник (redesign/ceny/subservice) ──────── */
/* Нижний паддинг убран: ниже идёт листинг клиник (.ld-listing-results)
   со своим внутренним отступом, поэтому большой зазор тут не нужен. */
.ld-ceny-subservice-page { padding: 0; }

/* Строка с ценой самой услуги (агрегат по городу) */
.ld-ceny-subservice-prices {
  background: #fff;
  border-radius: 16px;
  border: 1px solid var(--ld-slate-200);
  padding: 16px 24px;
  margin-top: 24px;
}
.ld-ceny-subservice-prices__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.ld-ceny-subservice-prices__label {
  font-size: 15px;
  font-weight: 600;
  color: var(--ld-fg);
}

/* Блок с картами клиник */
.ld-ceny-subservice-clinics { margin-top: 16px; }

/* Пустое состояние */
.ld-ceny-subservice-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding: 56px 24px;
  color: var(--ld-fg-muted);
  text-align: center;
  font-size: 15px;
}

/* Мобильная адаптация */
@media (max-width: 768px) {
  .ld-city-ceny-page { padding: 20px 0 48px; }
  .ld-city-ceny-page--with-listing { padding-bottom: 0; }
  .ld-ceny-subservice-page { padding: 0; }
  .ld-city-ceny-header__h1 { font-size: 22px; }
  .ld-city-ceny-cat__head { padding: 12px 16px; }
  .ld-city-ceny-cat__title { font-size: 15px; }
  .ld-city-ceny-item { padding: 10px 16px; flex-wrap: wrap; }
  .ld-city-ceny-item__meta { order: 3; width: 100%; }
  .ld-city-ceny-item__admin { order: 4; }
  .ld-city-ceny-list--subpage .ld-ceny-category__head { padding: 14px 16px; }
  .ld-city-ceny-list--subpage .ld-ceny-row { padding: 10px 16px; }
  .ld-ceny-subservice-prices { padding: 14px 16px; }
}

/* ─── Edit-clinic: чекбоксы языков приёма ─────────────────────────────── */
.ld-lang-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 8px 16px;
}
.ld-lang-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 8px;
    border-radius: 8px;
    cursor: pointer;
    transition: background .15s ease;
    font-size: 14px;
    color: #0F172A;
    user-select: none;
}
.ld-lang-item:hover {
    background: #F4F1EC;
}
.ld-lang-item input[type="checkbox"] {
    width: 16px;
    height: 16px;
    accent-color: var(--ld-accent, #3B82F6);
    margin: 0;
    cursor: pointer;
}
.ld-lang-item--locked {
    opacity: 0.85;
    cursor: default;
}
.ld-lang-item--locked:hover {
    background: transparent;
}
.ld-lang-item--locked input[type="checkbox"] {
    cursor: default;
}

/* ═══════════════════════════════════════════════════════════════════════════
   Админка — общие элементы
   ═══════════════════════════════════════════════════════════════════════════ */

.ld-admin-actions {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin: 0 0 20px 0;
}

/* Предупреждение (несортированные улицы и т.п.) */
.ld-admin-alert {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 16px 20px;
    background: #FEF2F0;
    border-left: 4px solid #E84E40;
    border-radius: var(--ld-card-radius, 14px);
    margin: 0 0 16px 0;
}
.ld-admin-alert svg { flex-shrink: 0; margin-top: 2px; }
.ld-admin-alert strong { display: block; font-size: 15px; color: #0F172A; margin-bottom: 4px; }
.ld-admin-alert p { margin: 0; color: #475569; font-size: 14px; line-height: 1.5; }
.ld-admin-alert a { color: #3B82F6; text-decoration: none; font-weight: 500; }
.ld-admin-alert a:hover { text-decoration: underline; }

/* Дерево районов */
.ld-admin-tree {
    padding: 16px 20px;
}
.ld-admin-tree__list {
    list-style: none;
    padding: 0;
    margin: 0;
}
.ld-admin-tree__list .ld-admin-tree__list {
    padding-left: 28px;
    margin-top: 4px;
    border-left: 1px dashed #E5E7EB;
    margin-left: 8px;
}
.ld-admin-tree__item {
    padding: 4px 0;
}
.ld-admin-tree__row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 8px;
    border-radius: 8px;
    transition: background .15s ease;
}
.ld-admin-tree__row:hover {
    background: #F4F1EC;
}
.ld-admin-tree__color-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
    border: 1px solid rgba(0,0,0,.1);
}
.ld-admin-tree__title {
    color: #0F172A;
    text-decoration: none;
    font-size: 15px;
    font-weight: 500;
    flex: 1;
}
.ld-admin-tree__title:hover {
    color: #3B82F6;
}
.ld-admin-tree__badge {
    font-size: 11px;
    padding: 2px 8px;
    border-radius: 6px;
    background: #F1F5F9;
    color: #64748B;
}
.ld-admin-tree__badge--hidden {
    background: #FEE2E2;
    color: #B91C1C;
}
.ld-admin-tree__action {
    color: #94A3B8;
    padding: 4px;
    border-radius: 6px;
    text-decoration: none;
    display: inline-flex;
    transition: all .15s ease;
}
.ld-admin-tree__action:hover {
    color: #3B82F6;
    background: #ECFEFF;
}
.ld-admin-tree__count {
    font-size: 12px; color: #64748B;
    background: #F1F5F9;
    padding: 1px 7px; border-radius: 10px;
    font-variant-numeric: tabular-nums;
}

/* ── Сворачиваемое дерево (через нативный <details>) ──
   Используется для глубокой иерархии (например, /admin/structure/list). */
.ld-admin-tree__details { padding: 0; margin: 0; }
.ld-admin-tree__summary {
    list-style: none;
    cursor: pointer;
    user-select: none;
}
.ld-admin-tree__summary::-webkit-details-marker { display: none; }
.ld-admin-tree__summary::marker { display: none; }
.ld-tree-chev {
    flex-shrink: 0;
    color: #94A3B8;
    transition: transform .15s ease;
}
.ld-tree-chev--ghost {
    /* Заглушка-spacer той же ширины, чтобы названия выравнивались
       у узлов без детей. */
    display: inline-block; width: 14px; height: 14px;
}
.ld-admin-tree__details[open] > .ld-admin-tree__summary .ld-tree-chev {
    transform: rotate(90deg);
}

/* Список метро района */
.ld-admin-tree__metros {
    list-style: none;
    padding: 0 0 0 28px;
    margin: 2px 0 0 0;
}
.ld-admin-tree__metros li {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 3px 8px;
    font-size: 13px;
    color: #64748B;
}
.ld-admin-tree__metro {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

/* Карточка редактирования: множественные метро */
.ld-metro-attach {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.ld-metro-attach__row {
    display: flex;
    gap: 8px;
    align-items: center;
}
.ld-metro-attach__row select {
    flex: 1;
}
.ld-metro-attach #moremetrolink {
    align-self: flex-start;
    margin-top: 4px;
}

/* Кнопки внизу формы редактирования */
.ld-edit-actions {
    display: flex;
    gap: 12px;
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid #E5E7EB;
}

/* ── Admin tree: бейджи типа транспорта (М / МЦК / МЦД) ─────────────────── */
.ld-admin-tree__count {
    display: inline-flex;
    gap: 4px;
}
.ld-admin-tree__type-badge {
    font-size: 10px;
    font-weight: 600;
    padding: 2px 6px;
    border-radius: 4px;
    line-height: 1.4;
    letter-spacing: 0.3px;
}
.ld-admin-tree__type-badge--metro {
    background: #DBEAFE;
    color: #1D4ED8;
}
.ld-admin-tree__type-badge--mck {
    background: #FCE7F3;
    color: #BE185D;
}
.ld-admin-tree__type-badge--mcd {
    background: #FEF3C7;
    color: #B45309;
}

/* Название линии метро рядом со станцией (тонкое) */
.ld-admin-tree__line {
    font-size: 12px;
    color: #94A3B8;
    margin-left: 4px;
    font-style: italic;
}

/* ── Старая запись из metro (без соответствия в metro_station) ─────────── */
.ld-admin-tree__metro-legacy {
    opacity: 0.55;
}
.ld-admin-tree__metro-legacy .ld-admin-tree__color-dot {
    opacity: 0.6;
}
.ld-admin-tree__metro-legacy .ld-admin-tree__metro {
    color: #94A3B8;
}
.ld-admin-tree__legacy-badge {
    font-size: 10px;
    font-weight: 500;
    padding: 1px 6px;
    border-radius: 4px;
    background: #F1F5F9;
    color: #64748B;
    border: 1px dashed #CBD5E1;
    margin-left: 4px;
    letter-spacing: 0.3px;
}


/* ═══════════════════════════════════════════════════════════════════
   EDITOR DASHBOARD  (.ld-ed-*)
   Страница /user/kliniki?ui=new — менеджер/владелец клиник
   ═══════════════════════════════════════════════════════════════════ */

/* ── Токены ── */
:root {
    --ed-bg:      #F8FAFC;
    --ed-card:    #fff;
    --ed-dark:    #0F172A;
    --ed-muted:   #475569;
    --ed-dim:     #64748B;
    --ed-border:  rgba(15,23,42,.08);
    --ed-accent:  #3B82F6;
    --ed-ok:      #15803D;
    --ed-warn:    #B45309;
    --ed-rail-w:  320px;
}

/* ── Внешняя обёртка страницы редактора ──
   Растягивается на весь viewport, держит общий серый фон --ed-bg
   (даже когда .ld-ed-layout центрирован в 1240px). */
.ld-ed-page {
    background: var(--ed-bg);
    min-height: calc(100vh - 65px);
}

/* ── Внутренняя обёртка (rail + main) ──
   По шаблону Главная страница редактора.html (editor-app.jsx, EditorApp):
   max-width: 1240, margin: 0 auto, width: 100% — вся раскладка центрируется,
   rail занимает фикс. 320px, main — flex:1 (остаток). */
.ld-ed-layout {
    display: flex;
    align-items: flex-start;
    max-width: 1240px;
    width: 100%;
    margin: 0 auto;
    background: var(--ed-bg);
    min-height: calc(100vh - 65px);
}

/* ═════════════════ ЛЕВАЯ ПАНЕЛЬ ═════════════════ */
.ld-ed-rail {
    width: var(--ed-rail-w);
    flex: 0 0 var(--ed-rail-w);
    background: var(--ed-card);
    border-right: 1px solid var(--ed-border);
    min-height: calc(100vh - 65px);
    display: flex;
    flex-direction: column;
    position: sticky;
    top: 65px;
    align-self: flex-start;
    max-height: calc(100vh - 65px);
    overflow: hidden;
}

/* Шапка профиля в рейле */
.ld-ed-rail__header {
    padding: 18px 18px 16px;
    border-bottom: 1px solid var(--ed-border);
    display: flex;
    gap: 12px;
    align-items: center;
    flex-shrink: 0;
}
.ld-ed-rail__header-info { min-width: 0; }
.ld-ed-rail__user-name {
    font-size: 14px;
    font-weight: 700;
    color: var(--ed-dark);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.ld-ed-rail__user-role {
    font-size: 14px;
    color: var(--ed-dim);
    margin-top: 2px;
}

/* Заголовок списка */
.ld-ed-rail__list-head {
    padding: 14px 18px 6px;
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    flex-shrink: 0;
}
.ld-ed-rail__list-label {
    font-size: 14px;
    font-weight: 800;
    color: var(--ed-dim);
    text-transform: uppercase;
    letter-spacing: .08em;
}
.ld-ed-rail__list-count {
    font-size: 14px;
    color: var(--ed-dim);
    font-variant-numeric: tabular-nums;
}

/* Скролл список */
.ld-ed-rail__scroll {
    flex: 1;
    overflow-y: auto;
    padding: 4px 10px 12px;
}

/* Элемент клиники в рейле */
.ld-ed-rail__item {
    width: 100%;
    display: flex;
    gap: 10px;
    align-items: flex-start;
    padding: 11px 10px;
    margin-bottom: 2px;
    border-radius: 10px;
    border: 1.5px solid transparent;
    background: transparent;
    cursor: pointer;
    text-align: left;
    font-family: inherit;
    transition: all .15s;
}
.ld-ed-rail__item:hover {
    background: rgba(255,255,255,.7);
    border-color: rgba(59,130,246,.25);
}
.ld-ed-rail__item--active {
    background: #fff;
    border-color: var(--ed-accent);
    box-shadow: 0 4px 12px rgba(15,23,42,.06);
}

/* Превью клиники в рейле */
.ld-ed-rail__thumb {
    width: 40px;
    height: 40px;
    border-radius: 9px;
    overflow: hidden;
    flex-shrink: 0;
    background: #F1F5F9;
}
.ld-ed-rail__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.ld-ed-rail__thumb-city {
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    background: #E0F2F4;
    color: #0E7B86;
    font-size: 14px;
    font-weight: 800;
}

/* Детали в рейле */
.ld-ed-rail__details { flex: 1; min-width: 0; }
.ld-ed-rail__clinic-name {
    font-size: 14px;
    font-weight: 700;
    color: var(--ed-dark);
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    letter-spacing: -.01em;
}
.ld-ed-rail__city {
    margin-top: 3px;
    font-size: 14px;
    color: var(--ed-dim);
    display: flex;
    align-items: center;
    gap: 4px;
}

/* Кнопка «Добавить клинику» */
.ld-ed-rail__add {
    width: 100%;
    margin-top: 10px;
    padding: 13px 12px;
    border-radius: 12px;
    background: transparent;
    cursor: pointer;
    border: 1.5px dashed var(--ed-border);
    font-family: inherit;
    color: var(--ed-muted);
    font-size: 14px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 8px;
    justify-content: center;
    transition: border-color .15s, color .15s;
}
.ld-ed-rail__add:hover {
    border-color: var(--ed-accent);
    color: var(--ed-accent);
}

/* ═════════════════ РАБОЧАЯ ОБЛАСТЬ ═════════════════
   По шаблону: flex: 1, padding 24px 32px 64px. Без собственного max-width —
   ширину задаёт обёртка .ld-ed-layout (1240px), rail (320px) — остаток main. */
.ld-ed-main {
    flex: 1;
    padding: 24px 32px 64px;
    min-width: 0;
}

/* Хлебные крошки */
.ld-ed-breadcrumbs {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 14px;
    color: var(--ed-dim);
    margin-bottom: 20px;
}
.ld-ed-breadcrumbs a {
    color: var(--ed-dim);
    text-decoration: none;
    transition: color .12s;
}
.ld-ed-breadcrumbs a:hover { color: var(--ed-accent); }
.ld-ed-breadcrumbs span { color: var(--ed-dark); font-weight: 600; }

/* Базовая карточка */
.ld-ed-card {
    background: var(--ed-card);
    border-radius: 20px;
    border: 1px solid var(--ed-border);
    box-shadow: 0 1px 0 rgba(15,23,42,.02), 0 4px 16px rgba(15,23,42,.04);
    margin-bottom: 16px;
}

/* Шапка карточки с заголовком + действием */
.ld-ed-card__header {
    padding: 18px 24px;
    border-bottom: 1px solid var(--ed-border);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* Лейблы */
.ld-ed-section-label {
    font-size: 14px;
    font-weight: 800;
    color: var(--ed-dim);
    text-transform: uppercase;
    letter-spacing: .08em;
    margin-bottom: 4px;
}
.ld-ed-section-title {
    font-size: 19px;
    font-weight: 700;
    color: var(--ed-dark);
    letter-spacing: -.01em;
}

/* ── HERO ── */
.ld-ed-hero {
    padding: 32px 24px 28px;
    text-align: center;
}
.ld-ed-hero__logo-wrap { margin-bottom: 18px; }
.ld-ed-hero__logo {
    display: inline-block;
    position: relative;
    width: 120px;
    height: 120px;
    border-radius: 50%;
    background: #fff;
    padding: 5px;
    box-shadow: 0 8px 24px rgba(15,23,42,.16);
    cursor: pointer;
    text-decoration: none;
    overflow: hidden;
}
.ld-ed-hero__logo img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    transition: filter .15s;
}
.ld-ed-hero__logo:hover img { filter: brightness(.55); }
.ld-ed-hero__logo-initials {
    display: grid;
    place-items: center;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--ed-accent), #1D4ED8);
    color: #fff;
    font-size: 28px;
    font-weight: 800;
}
.ld-ed-hero__logo-overlay {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: rgba(15,23,42,.5);
    opacity: 0;
    transition: opacity .15s;
    pointer-events: none;
}
.ld-ed-hero__logo:hover .ld-ed-hero__logo-overlay { opacity: 1; }

.ld-ed-hero__title {
    margin: 0 auto;
    font-size: 26px;
    font-weight: 700;
    color: var(--ed-dark);
    letter-spacing: -.025em;
    max-width: 600px;
    line-height: 1.2;
    text-wrap: balance;
}
.ld-ed-hero__meta {
    margin-top: 14px;
    display: flex;
    gap: 16px;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    color: var(--ed-muted);
}
.ld-ed-hero__meta-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.ld-ed-hero__metro-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #009A49;
}
.ld-ed-hero__actions {
    margin-top: 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}
.ld-ed-hero__view-link {
    font-size: 14px;
    font-weight: 600;
    color: var(--ed-accent);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    transition: opacity .15s ease;
}
.ld-ed-hero__view-link:hover { opacity: .7; color: var(--ed-accent); text-decoration: none; }

/* ── СТАТИСТИКА ── */
.ld-ed-stats {
    padding: 22px 24px;
    display: grid;
    grid-template-columns: auto 1px 1fr;
    gap: 24px;
    align-items: center;
}
.ld-ed-stats__divider {
    width: 1px;
    height: 80px;
    background: var(--ed-border);
}
.ld-ed-stats__counters {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 8px;
}
.ld-ed-stats__item { text-align: center; }
.ld-ed-stats__num {
    font-size: 22px;
    font-weight: 800;
    color: var(--ed-dark);
    font-variant-numeric: tabular-nums;
    line-height: 1;
    letter-spacing: -.02em;
}
.ld-ed-stats__lbl {
    margin-top: 6px;
    font-size: 11px;
    color: var(--ed-muted);
}

/* Donut */
.ld-ed-donut-wrap { display: flex; align-items: center; gap: 14px; }
.ld-ed-donut {
    position: relative;
    width: 88px;
    height: 88px;
    flex-shrink: 0;
}
.ld-ed-donut__value {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    font-weight: 800;
    color: var(--ed-dark);
    font-variant-numeric: tabular-nums;
    line-height: 1;
}
/* число + % — горизонтально, по baseline */
.ld-ed-donut__value-inner {
    display: inline-flex;
    align-items: baseline;
    gap: 1px;
    font-weight: 800;
    color: var(--ed-dark);
    line-height: 1;
    letter-spacing: -.02em;
    font-variant-numeric: tabular-nums;
}
.ld-ed-donut__num { font-size: 22px; }
.ld-ed-donut__pct { font-size: 12px; color: var(--ed-dim); font-weight: 700; }
.ld-ed-donut__title {
    font-size: 13px;
    font-weight: 700;
    color: var(--ed-dark);
}
.ld-ed-donut__hint {
    margin-top: 4px;
    font-size: 11px;
    color: var(--ed-dim);
    line-height: 1.4;
    max-width: 180px;
}

/* ── ЧЕК-ЛИСТ ── */
.ld-ed-checklist__header {
    padding: 18px 24px;
    border-bottom: 1px solid var(--ed-border);
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.ld-ed-checklist__item {
    padding: 15px 24px;
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 14px;
    align-items: center;
}
.ld-ed-checklist__item--sep { border-top: 1px solid var(--ed-border); }
.ld-ed-checklist__icon {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    display: grid;
    place-items: center;
    flex-shrink: 0;
}
.ld-ed-checklist__row {
    display: flex;
    gap: 8px;
    align-items: baseline;
}
.ld-ed-checklist__num {
    font-size: 22px;
    font-weight: 800;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}
.ld-ed-checklist__lbl {
    font-size: 14px;
    font-weight: 600;
    color: var(--ed-dark);
    letter-spacing: -.01em;
}
.ld-ed-checklist__sub {
    margin-top: 3px;
    font-size: 12px;
    color: var(--ed-dim);
}

/* Всё ок */
.ld-ed-tasks-ok {
    padding: 22px 24px;
    display: flex;
    align-items: center;
    gap: 16px;
}
.ld-ed-tasks-ok__icon {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: #DCFCE7;
    display: grid;
    place-items: center;
    flex-shrink: 0;
}
.ld-ed-tasks-ok__title {
    font-size: 17px;
    font-weight: 700;
    color: var(--ed-dark);
}
.ld-ed-tasks-ok__sub { margin-top: 3px; font-size: 13px; color: var(--ed-dim); }

/* ── ВРАЧИ ── */
.ld-ed-doctors__row {
    padding: 13px 24px;
    display: grid;
    grid-template-columns: 48px 1fr auto auto;
    gap: 14px;
    align-items: center;
}
.ld-ed-doctors__row--sep { border-top: 1px solid var(--ed-border); }

.ld-ed-doc-avatar {
    position: relative;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    overflow: hidden;
    background: linear-gradient(135deg, #3B82F6, #1D4ED8);
    display: grid;
    place-items: center;
    color: #fff;
    font-size: 15px;
    font-weight: 800;
    flex-shrink: 0;
    cursor: pointer;
}
.ld-ed-doc-avatar img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: filter .15s, transform .2s;
}
.ld-ed-doc-avatar:hover img {
    filter: brightness(.55);
    transform: scale(1.04);
}
.ld-ed-doc-avatar__overlay {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    background: rgba(15,23,42,.55);
    display: grid;
    place-items: center;
    opacity: 0;
    transition: opacity .15s;
    cursor: pointer;
    color: #fff;
    pointer-events: none;
}
.ld-ed-doc-avatar:hover .ld-ed-doc-avatar__overlay {
    opacity: 1;
    pointer-events: auto;
}
.ld-ed-doc-name {
    font-size: 14px;
    font-weight: 700;
    color: var(--ed-accent);
    text-decoration: none;
    letter-spacing: -.01em;
    transition: opacity .15s ease;
}
.ld-ed-doc-name:hover { opacity: .7; color: var(--ed-accent); text-decoration: none; }
.ld-ed-doc-meta { font-size: 14px; margin-top: 2px; }
.ld-ed-doc-flags { margin-top: 5px; display: flex; gap: 5px; flex-wrap: wrap; }
.ld-ed-flag {
    font-size: 14px;
    font-weight: 700;
    padding: 3px 7px;
    border-radius: 999px;
    letter-spacing: .02em;
    text-transform: uppercase;
}
.ld-ed-doc-rating { text-align: right; }
.ld-ed-doc-rating__val { font-size: 14px; font-weight: 700; color: var(--ed-dark); }
.ld-ed-doc-actions { display: flex; gap: 6px; }

/* ── ОТЗЫВЫ ── */
.ld-ed-review {
    padding: 16px 24px;
}
.ld-ed-review--sep { border-top: 1px solid var(--ed-border); }
.ld-ed-review--urgent { background: #FFF7F7; }
.ld-ed-review__top {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 8px;
}
.ld-ed-review__meta {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.ld-ed-review__text {
    margin: 0;
    font-size: 14px;
    line-height: 1.55;
    color: var(--ed-muted);
}
.ld-ed-review__actions { margin-top: 10px; }

/* ── АКЦИИ ── */
.ld-ed-promo {
    padding: 16px 24px;
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 16px;
    align-items: center;
}
.ld-ed-promo--sep { border-top: 1px solid rgba(15,23,42,.08); }
.ld-ed-promo__badges { margin-bottom: 6px; }
.ld-ed-promo__title {
    font-size: 15px;
    font-weight: 700;
    color: #0F172A;
    letter-spacing: -.01em;
}
.ld-ed-promo__actions { display: flex; gap: 6px; align-items: center; }

/* контейнер кнопки «Показать завершённые» — центрирует кнопку */
.ld-ed-promo-toggle {
    display: flex;
    justify-content: center;
    padding: 4px 24px 10px;
}
/* кнопка «Показать завершённые» */
.ld-ed-promo-toggle__btn {
    padding: 6px 12px;
    background: transparent;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    font-family: inherit;
    font-size: 15px;
    font-weight: 600;
    color: var(--ed-accent);
    display: inline-flex;
    align-items: center;
    gap: 6px;
    transition: background .15s;
}
.ld-ed-promo-toggle__btn:hover { background: rgba(59,130,246,.08); }
.ld-ed-promo-toggle__icon { transition: transform .2s; flex-shrink: 0; }
.ld-ed-promo-toggle__icon--open { transform: rotate(180deg); }

/* маленькая кнопка удалить (иконка без текста) */
.ld-btn--danger-sm {
    padding: 7px 8px;
    border-radius: 9px;
    border: 1px solid rgba(15,23,42,.08);
    background: #fff;
    color: #EF4444;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    transition: border-color .15s, background .15s;
}
.ld-btn--danger-sm:hover { border-color: #EF4444; background: #FFF5F5; }

/* ── ЦЕНЫ ── */
.ld-ed-prices { padding: 22px 24px; }
.ld-ed-prices__hint { margin-top: 14px; }
.ld-ed-prices__bar {
    height: 6px;
    border-radius: 3px;
    background: #E2E8F0;
    overflow: hidden;
    margin-bottom: 6px;
}
.ld-ed-prices__fill {
    height: 100%;
    background: var(--ed-accent);
    border-radius: 3px;
}
.ld-ed-prices__count { }

/* ── ПРАЙС ПО НАПРАВЛЕНИЯМ (сетка карточек) ── */
.ld-ed-price-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}
.ld-ed-price-cell {
    padding: 14px 16px;
    border-radius: 12px;
    background: #F8FAFC;
    border: 1px solid rgba(15,23,42,.08);
}
.ld-ed-price-cell__head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 8px;
    gap: 6px;
}
.ld-ed-price-cell__name {
    font-size: 14px;
    font-weight: 700;
    color: #0F172A;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.ld-ed-price-cell__count {
    font-size: 14px;
    font-weight: 700;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}
.ld-ed-price-cell__count--low { color: #B45309; }
.ld-ed-price-cell__count--ok  { color: #64748B; }
.ld-ed-price-cell__bar {
    height: 6px;
    border-radius: 3px;
    background: #E2E8F0;
    overflow: hidden;
}
.ld-ed-price-cell__fill {
    height: 100%;
    border-radius: 3px;
}
@media (max-width: 900px) {
    .ld-ed-price-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
    .ld-ed-price-grid { grid-template-columns: 1fr; }
}

/* ── ЗОНА ОПАСНОСТИ ── */
.ld-ed-danger {
    margin-top: 28px;
    padding: 22px 24px;
}
.ld-ed-danger__label {
    font-size: 14px;
    font-weight: 600;
    color: var(--ed-dark);
    margin-bottom: 8px;
}
.ld-ed-danger__text {
    margin: 0 0 14px;
    font-size: 13px;
    color: var(--ed-muted);
    line-height: 1.6;
    max-width: 540px;
}

/* ── Пустое состояние ── */
.ld-ed-empty {
    padding: 24px;
    text-align: center;
    color: var(--ed-dim);
    font-size: 14px;
}
.ld-ed-empty-state {
    text-align: center;
    padding: 64px 24px;
}
.ld-ed-empty-state__icon { font-size: 48px; margin-bottom: 16px; }
.ld-ed-empty-state h2 { margin: 0 0 8px; font-size: 22px; color: var(--ed-dark); }
.ld-ed-empty-state p { color: var(--ed-muted); margin-bottom: 24px; }

/* ── Общие утилиты ── */
.ld-ed-avatar {
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: #fff;
    font-weight: 800;
    font-size: 14px;
    flex-shrink: 0;
}
.ld-ed-avatar--44 { width: 44px; height: 44px; font-size: 14px; }
.ld-ed-muted { color: var(--ed-dim); }
.ld-ed-dark  { color: var(--ed-dark); }
.ld-ed-stars { display: inline-flex; align-items: center; gap: 1px; }

/* Бейджи */
.ld-ed-badge {
    display: inline-block;
    font-size: 14px;
    font-weight: 700;
    padding: 3px 9px;
    border-radius: 6px;
    letter-spacing: .04em;
    text-transform: uppercase;
    white-space: nowrap;
}
.ld-ed-badge--red    { background: #FEE2E2; color: #B91C1C; }
.ld-ed-badge--green  { background: #DCFCE7; color: #15803D; }
.ld-ed-badge--yellow { background: #FEF3C7; color: #92400E; }
.ld-ed-badge--blue   { background: #DBEAFE; color: #1D4ED8; }
.ld-ed-badge--gray   { background: #F1F5F9; color: #475569; }
/* Скидка: акцентный синий цвет (#3B82F6), как в editor-app.jsx */
.ld-ed-badge--accent { background: rgba(59,130,246,.14); color: var(--ed-accent); text-transform: none; letter-spacing: 0; }

/* Кнопки .ld-btn (расширение под редактор) — выровнены по design-system Button (ld-shared.jsx) */
/* danger — pink bg, red text, inset border */
.ld-btn--danger {
    height: 36px;
    padding: 0 14px;
    border-radius: 12px;
    background: #FFF7F7;
    color: #EF4444;
    border: none;
    box-shadow: inset 0 0 0 1px #FCA5A5;
    font-weight: 600;
    font-size: 14px;
    cursor: pointer;
    font-family: inherit;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    text-decoration: none;
    line-height: 1;
    transition: all .15s ease-out;
}
.ld-btn--danger:hover { background: #FEE2E2; color: #EF4444; box-shadow: inset 0 0 0 1.5px #EF4444; }
.ld-btn--danger:active { background: #FEE2E2; color: #B91C1C; box-shadow: inset 0 0 0 1.5px #EF4444; transform: translateY(1px); }

/* outline (accentSoft) — белый фон, синий border 1.5px, синий текст */
.ld-btn--outline {
    height: 36px;
    padding: 0 14px;
    border-radius: 12px;
    background: #fff;
    color: var(--ed-accent);
    border: none;
    box-shadow: inset 0 0 0 1.5px var(--ed-accent);
    font-weight: 600;
    font-size: 14px;
    cursor: pointer;
    font-family: inherit;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    text-decoration: none;
    line-height: 1;
    transition: all .15s ease-out;
}
.ld-btn--outline:hover { background: #DBEAFE; color: #1D4ED8; box-shadow: inset 0 0 0 1.5px #2563EB; }
.ld-btn--outline:active { background: #BFDBFE; color: #1E40AF; box-shadow: inset 0 0 0 1.5px #1D4ED8; transform: translateY(1px); }

/* ── Адаптив ── */
@media (max-width: 900px) {
    .ld-ed-layout { flex-direction: column; }
    .ld-ed-rail {
        position: static;
        width: 100%;
        max-height: none;
        min-height: auto;
        border-right: none;
        border-bottom: 1px solid var(--ed-border);
    }
    .ld-ed-rail__scroll { max-height: 240px; }
    .ld-ed-main { padding: 16px 16px 48px; }
    .ld-ed-stats { grid-template-columns: 1fr; }
    .ld-ed-stats__divider { display: none; }
    .ld-ed-stats__counters { grid-template-columns: repeat(3, 1fr); }
    .ld-ed-doctors__row { grid-template-columns: 40px 1fr; }
    .ld-ed-doc-rating, .ld-ed-doc-actions { display: none; }
}

@keyframes ld-spin { to { transform: rotate(360deg); } }

/* ── Блок изображения акции (edit-action) ── */
.ld-action-img-wrap {
    display: flex;
    align-items: flex-start;
    gap: 16px;
}
.ld-action-img-preview {
    position: relative;
    width: 120px; height: 120px;
    flex: 0 0 120px;     /* Safari: явный flex-basis, не даёт растягиваться */
    max-width: 120px;    /* дополнительный стоп */
    border-radius: 10px;
    overflow: hidden;
    background: #F1F5F9;
    border: 1.5px dashed rgba(15,23,42,.15);
    transform: translateZ(0); /* Safari: overflow+border-radius работает корректно */
    -webkit-transform: translateZ(0);
}
.ld-action-img-preview__img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
}
.ld-action-img-preview__img--empty { opacity: .3; }
.ld-action-img-preview__remove {
    position: absolute; top: 5px; right: 5px;
    width: 22px; height: 22px;
    border-radius: 50%; border: none;
    background: rgba(15,23,42,.65);
    color: #fff; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    padding: 0; transition: background .15s;
}
.ld-action-img-preview__remove:hover { background: #BE123C; }
.ld-action-img-btns {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px;
    align-items: stretch;
    padding-top: 4px;
}
.ld-action-img-btns .ld-action-img-btn {
    flex: 1;
    justify-content: center;
}
.ld-action-img-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    border-radius: 9px;
    border: 1px solid rgba(15,23,42,.15);
    background: #fff;
    font-size: 13px; font-weight: 600;
    color: #0F172A;
    font-family: inherit;
    cursor: pointer;
    white-space: nowrap;
    transition: border-color .15s, background .15s, color .15s;
    text-align: left;
    line-height: 1.3;
    text-decoration: none;
}
.ld-action-img-btn:hover {
    border-color: rgba(15,23,42,.3);
    background: #F8FAFC;
}
.ld-action-img-btn--primary {
    background: var(--ld-accent, #3B82F6);
    color: #fff;
    border-color: transparent;
}
.ld-action-img-btn--primary:hover {
    background: #2563EB;
    border-color: transparent;
    color: #fff;
}

/* ── jQuery UI диалог (обрезка фото) на страницах редизайна ── */
.ld-page .ui-dialog {
    border-radius: 14px !important;
    border: none !important;
    box-shadow: 0 24px 64px rgba(15,23,42,.18) !important;
    padding: 0 !important;
    overflow: hidden !important;
    font-family: var(--ld-font, 'Manrope', sans-serif) !important;
}
.ld-page .ui-dialog .ui-dialog-titlebar {
    background: #fff !important;
    border: none !important;
    border-bottom: 1px solid rgba(15,23,42,.08) !important;
    border-radius: 0 !important;
    padding: 14px 16px !important;
}
.ld-page .ui-dialog .ui-dialog-title {
    font-family: var(--ld-font, 'Manrope', sans-serif) !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    color: #0F172A !important;
    float: none !important;
}
.ld-page .ui-dialog .ui-dialog-content {
    background: #fff !important;
    padding: 16px !important;
}
.ld-page .ui-dialog .ui-dialog-titlebar-close {
    width: 30px !important;
    height: 30px !important;
    border-radius: 8px !important;
    background: #F1F5F9 !important;
    border: none !important;
    cursor: pointer !important;
    top: 50% !important;
    right: 10px !important;
    margin-top: 0 !important;
    transform: translateY(-50%) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: background .15s !important;
    padding: 0 !important;
    position: absolute !important;
}
.ld-page .ui-dialog .ui-dialog-titlebar-close:hover {
    background: #E2E8F0 !important;
}
.ld-page .ui-dialog .ui-dialog-titlebar-close span.ui-button-icon-primary::before {
    font-size: 14px !important;
    color: #64748B !important;
    line-height: 1 !important;
}
.ld-page .ui-dialog .ui-dialog-buttonpane {
    background: #F8FAFC !important;
    border-top: 1px solid rgba(15,23,42,.08) !important;
    padding: 10px 16px !important;
}

/* ============================================================
   ЛИСТИНГ КЛИНИК (views/redesign/listing/)
   ============================================================ */

/* Хлебные крошки */
.ld-listing-crumbs {
  padding: 20px 0 0;
}
.ld-listing-crumbs__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.ld-listing-crumbs__nav {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  font-size: 14px;
  color: #64748B;
}
.ld-listing-crumbs__link {
  color: #64748B;
  text-decoration: none;
}
.ld-listing-crumbs__link:hover { color: var(--ld-accent); }
.ld-listing-crumbs__current {
  color: #334155;
  font-weight: 600;
}
.ld-listing-crumbs__meta {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.ld-listing-crumbs__meta-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  color: #64748B;
}
@media (max-width: 768px) {
  .ld-listing-crumbs__meta { display: none; }
}

/* Hero */
.ld-listing-hero {
  padding: 24px 0 0;
}
.ld-listing-hero__h1 {
  margin: 0;
  font-size: clamp(26px, 4vw, 42px);
  line-height: 1.06;
  font-weight: 800;
  color: #0F172A;
  letter-spacing: -0.025em;
}
.ld-listing-hero__intro {
  margin: 14px 0 0;
  font-size: 16px;
  line-height: 1.6;
  color: #475569;
  max-width: 640px;
}
/* Описание специализации (text2) - под вводным текстом, чуть светлее (эталон: description в hero) */
.ld-listing-hero__desc {
  margin: 8px 0 0;
  font-size: 15px;
  line-height: 1.55;
  color: #64748B;
  max-width: 760px;
}
.ld-listing-hero__desc p { margin: 0 0 8px; }
.ld-listing-hero__desc p:last-child { margin-bottom: 0; }
@media (max-width: 768px) {
  .ld-listing-hero { padding: 16px 0 0; }
  .ld-listing-hero__intro { font-size: 15px; }
  .ld-listing-hero__desc { font-size: 14px; }
}

/* Фильтр-бар */
.ld-listing-filters {
  padding: 28px 0 0;
}
.ld-listing-filters__dropdowns {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin-bottom: 12px;
}
@media (max-width: 768px) {
  .ld-listing-filters { padding: 16px 0 0; }
  .ld-listing-filters__dropdowns {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
   Custom dropdown (JSX: FilterDropdown / MetroDistrictDropdown)
   - Кнопка 56px с иконкой слева, label сверху, value снизу, chevron справа.
   - Раскрывающаяся панель max-height 280px (или 360 для метро+район),
     ВНУТРИ скролл, не разрастается на всю страницу.
   - Открыта одна за раз (управляется JS), is-open даёт display:block и обводку.
   ============================================================ */
.ld-fdd { position: relative; }
.ld-fdd__btn {
  width: 100%;
  height: 56px;
  padding: 0 14px;
  border: 0;
  cursor: pointer;
  background: #fff;
  border-radius: 12px;
  box-shadow: inset 0 0 0 1.5px rgba(15,23,42,.10);
  font-family: inherit;
  display: flex;
  align-items: center;
  gap: 10px;
  text-align: left;
  transition: box-shadow .15s;
}
.ld-fdd__btn:hover,
.ld-fdd.is-open .ld-fdd__btn {
  box-shadow: inset 0 0 0 1.5px rgba(15,23,42,.32);
}
.ld-fdd__icon {
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #64748B;
}
.ld-fdd__icon svg { display: block; width: 100%; height: 100%; }
.ld-fdd__main {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1.15;
  gap: 2px;
}
.ld-fdd__label {
  font-size: 11px;
  color: #94A3B8;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.ld-fdd__value {
  font-size: 14px;
  font-weight: 600;
  color: #0F172A;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  width: 100%;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.ld-fdd__value--default { color: #94A3B8; }
.ld-fdd__value-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  flex: 0 0 auto;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.06);
}
.ld-fdd__chevron {
  flex: 0 0 auto;
  color: #64748B;
  transition: transform .15s;
}
.ld-fdd.is-open .ld-fdd__chevron { transform: rotate(180deg); }

/* Выпадающая панель */
.ld-fdd__panel {
  display: none;
  position: absolute;
  top: calc(100% + 6px);
  left: 0;
  right: 0;
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 18px 40px rgba(15,23,42,.16), 0 2px 6px rgba(15,23,42,.06);
  padding: 6px;
  max-height: 280px;
  overflow-y: auto;
  z-index: 25;
}
.ld-fdd__panel--lg { max-height: 360px; }
.ld-fdd.is-open .ld-fdd__panel { display: block; }

/* Опция (ссылка) */
.ld-fdd__option {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px 12px;
  border: 0;
  background: transparent;
  border-radius: 8px;
  font-family: inherit;
  font-size: 14px;
  font-weight: 500;
  color: #0F172A;
  text-decoration: none;
  cursor: pointer;
  line-height: 1.3;
}
.ld-fdd__option:hover { background: #F8FAFC; color: #0F172A; }
.ld-fdd__option.is-active {
  background: #F1F5F9;
  font-weight: 700;
}
.ld-fdd__option-dot {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  flex: 0 0 auto;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.08);
}
/* Имя занимает всё доступное пространство, счётчик прижат к правому краю, серый */
.ld-fdd__option-name { flex: 1; min-width: 0; }
.ld-fdd__option-count {
  flex: 0 0 auto;
  color: #94A3B8;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
}
/* Родительские районы (округа) - bold, как в старом дизайне.
   Дочерние районы - с отступом слева, чуть мельче и приглушённее. */
.ld-fdd__option--parent .ld-fdd__option-name { font-weight: 700; }
.ld-fdd__option--child { padding-left: 24px; }
.ld-fdd__option--child .ld-fdd__option-name { color: #475569; }

/* Поле поиска внутри панели (для длинных списков, напр. метро+район).
   Sticky наверху чтобы при скролле длинного списка оставалось видимым. */
.ld-fdd__search {
  position: sticky;
  top: -6px;
  margin: -6px -6px 6px;
  padding: 8px 10px;
  background: #fff;
  border-bottom: 1px solid rgba(15,23,42,.06);
  display: flex;
  align-items: center;
  gap: 8px;
  z-index: 2;
}
.ld-fdd__search svg {
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
  display: block;
}
.ld-fdd__search-input {
  flex: 1;
  min-width: 0;
  border: 0;
  outline: none;
  background: #F1F5F9;
  padding: 8px 12px;
  border-radius: 8px;
  font-family: inherit;
  font-size: 14px;
  color: #0F172A;
}
.ld-fdd__search-input::placeholder { color: #94A3B8; }

/* Пустой результат поиска */
.ld-fdd__empty {
  padding: 16px 12px;
  text-align: center;
  font-size: 14px;
  color: #94A3B8;
}

/* Заголовок группы внутри панели (Станции метро / Районы) */
.ld-fdd__group {
  padding: 10px 12px 4px;
  font-size: 11px;
  font-weight: 700;
  color: #94A3B8;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.ld-fdd__group + .ld-fdd__option { margin-top: 0; }
.ld-fdd__group:not(:first-child) {
  margin-top: 6px;
  border-top: 1px solid rgba(15,23,42,.06);
}

/* Старые ld-fld стили — оставляем для legacy/совместимости, но в листинге не используются */
.ld-fld {
  display: flex;
  flex-direction: column;
  gap: 0;
  position: relative;
}
.ld-fld__label {
  display: block;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: #94A3B8;
  position: absolute;
  top: 8px;
  left: 14px;
  pointer-events: none;
  z-index: 1;
}
.ld-fld__select {
  width: 100%;
  height: 52px;
  padding: 22px 36px 8px 14px;
  border: none;
  border-radius: 12px;
  background: #fff;
  box-shadow: inset 0 0 0 1.5px rgba(15,23,42,.10);
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  color: #0F172A;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  outline: none;
  transition: box-shadow .15s;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2364748B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
}
.ld-fld__select:focus {
  box-shadow: inset 0 0 0 1.5px rgba(15,23,42,.32);
}
.ld-fld__select option {
  font-weight: 500;
}

/* Чипсы-фильтры */
.ld-listing-filters__chips {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 4px;
}
.ld-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  border-radius: 999px;
  border: none;
  cursor: pointer;
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  background: #fff;
  color: #334155;
  box-shadow: inset 0 0 0 1px rgba(15,23,42,.10);
  text-decoration: none;
  transition: all .15s;
  white-space: nowrap;
}
.ld-chip:hover {
  color: var(--ld-accent);
  box-shadow: inset 0 0 0 1px var(--ld-accent);
}
.ld-chip--on {
  background: var(--ld-accent);
  color: #fff;
  box-shadow: 0 4px 12px rgba(59,130,246,.35);
}
.ld-chip--on:hover {
  color: #fff;
  opacity: .9;
}

/* Результаты - центрированная карточка 1240px с серым фоном и скруглением сверху */
.ld-listing-results {
  margin-top: 20px;
  /* Фон #F8FAFC растянут на всю ширину viewport (эталон: <section width:100%>),
     контент внутри центрируется через __inner с max-width. */
  background: #F8FAFC;
  width: 100%;
}
.ld-listing-results__inner {
  max-width: var(--ld-container);
  margin: 0 auto;
  padding: 16px var(--ld-pad-x) 64px;
}
@media (max-width: 768px) {
  .ld-listing-results__inner {
    padding: 16px 12px 32px;
  }
}
.ld-listing-results__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  padding-bottom: 16px;
}
.ld-listing-results__count {
  font-size: 16px;
  font-weight: 600;
  color: #0F172A;
}
.ld-listing-results__count-num {
  color: var(--ld-accent);
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}

/* Сортировка */
.ld-listing-sort {
  display: flex;
  align-items: center;
  gap: 8px;
}
.ld-listing-sort__label {
  font-size: 14px;
  color: #64748B;
  white-space: nowrap;
}
.ld-listing-sort__select {
  padding: 9px 32px 9px 12px;
  border-radius: 10px;
  border: none;
  box-shadow: inset 0 0 0 1.5px rgba(15,23,42,.12);
  background: #fff;
  font-family: inherit;
  font-size: 14px;
  font-weight: 600;
  color: #0F172A;
  appearance: none;
  -webkit-appearance: none;
  cursor: pointer;
  outline: none;
  transition: box-shadow .15s;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748B' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
}
.ld-listing-sort__select:focus {
  box-shadow: inset 0 0 0 1.5px var(--ld-accent);
}

/* Карточки листинга */
.ld-listing-cards {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}

/* ============================================================
   Карточка клиники в листинге.
   PIXEL-PERFECT перевод JSX из design/ld-listing-sections.jsx
   функций ListingCard (list-вариант), ListingCardPhoto,
   ListingCardBody, ListingCardAside.
   ============================================================ */

/* Внешняя обёртка (JSX был <a>, мы используем <article> с JS-onclick,
   потому что HTML5 запрещает вложенные интерактивные элементы внутри <a>,
   а у нас в карточке есть кнопка телефона и кнопка "Записаться".
   При <a> wrapping браузер auto-closes outer <a> и ломает структуру.) */
.ld-lcard {
  display: block;
  text-decoration: none;
  color: inherit;
  transition: opacity .15s ease;
}

/* <article> - grid 264 / 1fr / 264, alignItems: center, cardSx(soft) */
.ld-lcard__article {
  display: grid;
  grid-template-columns: 264px minmax(0, 1fr) 264px;
  align-items: center;
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 1px 2px rgba(15,23,42,.04), 0 8px 28px rgba(15,23,42,.06);
  overflow: hidden;
  padding: 0;
  transition: transform .15s, box-shadow .15s;
}
.ld-lcard:hover .ld-lcard__article {
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(15,23,42,.10), 0 1px 2px rgba(15,23,42,.04);
}

/* ----------- ФОТО + WRAPPER (JSX: ListingCardPhoto full=true desktop)
   width:200, height:200, margin:32px, borderRadius:14, position:relative
   В 264px колонке = 200 + 32*2 margin = 264px (точно).
   .ld-lcard__photo-wrap содержит <a> с картинкой + <button> сердечка избранного. */
.ld-lcard__photo-wrap {
  position: relative;
  width: 200px;
  height: 200px;
  flex-shrink: 0;
  margin: 32px;
}
.ld-lcard__photo {
  display: block;
  position: relative;
  width: 100%;
  height: 100%;
  border-radius: 14px;
  overflow: hidden;
  background: #F1F5F9;
  text-decoration: none;
}

/* Кнопка-сердечко "В избранное" - bottom-right фото, 36x36 круг.
   State в localStorage (ключ likedoctor:listing-fav:{id}). */
.ld-lcard__fav {
  position: absolute;
  bottom: 12px;
  right: 12px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 0;
  cursor: pointer;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 2px 8px rgba(15, 23, 42, .18);
  display: grid;
  place-items: center;
  color: #0F172A;
  transition: background .15s, box-shadow .15s, color .15s, transform .15s;
  z-index: 2;
}
.ld-lcard__fav:hover { transform: scale(1.06); }
.ld-lcard__fav svg { display: block; fill: none; }
/* Активное состояние - залитое сердце на цвете акцента.
   data-active="1" - используется одинаково на странице клиники и в листинге. */
.ld-lcard__fav[data-active="1"] {
  background: var(--ld-accent);
  color: #fff;
  box-shadow: 0 6px 16px rgba(59, 130, 246, .33);
}
.ld-lcard__fav[data-active="1"] svg {
  fill: currentColor;
}
.ld-lcard__photo-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* "Проверено" - position: absolute, bottom: 12, left: 12 */
.ld-lcard__verified {
  position: absolute;
  bottom: 12px;
  left: 12px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px 4px 6px;
  border-radius: 999px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 2px 8px rgba(15,23,42,.16);
  font-size: 14px;
  font-weight: 700;
  color: #0F172A;
  white-space: nowrap;
}
/* Маленький синий кружок с галочкой (как в JSX <span width:14 height:14 background:accent>) */
.ld-lcard__verified-dot {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--ld-accent);
  display: inline-grid;
  place-items: center;
  flex-shrink: 0;
  position: relative;
}
.ld-lcard__verified-dot::after {
  content: '';
  display: block;
  width: 6px;
  height: 4px;
  border-left: 2px solid #fff;
  border-bottom: 2px solid #fff;
  transform: rotate(-45deg) translate(0.5px, -1px);
}

/* Медаль "N место в рейтинге" - на топ-3 карточках, top-right фото */
.ld-lcard__medal {
  position: absolute;
  top: 12px;
  left: 50%;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  border-radius: 999px;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
  z-index: 2;
}
.ld-lcard__medal svg { flex: 0 0 auto; display: block; }

/* ----------- ТЕЛО (JSX: ListingCardBody)
   padding: 24px 0, flex column gap 10, minWidth 0
   align-self НЕ задаём - наследуем от parent align-items: center */
.ld-lcard__body {
  padding: 24px 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}
/* Название клиники - fontSize 21, fontWeight 800, color #0089E0
   Это <a>-ссылка, поэтому отключаем underline и default-стили. */
.ld-lcard__name {
  display: block;
  font-size: 21px;
  font-weight: 800;
  color: #0089E0;
  line-height: 1.2;
  letter-spacing: -0.01em;
  text-wrap: pretty;
  margin: 0;
  text-decoration: none;
}
.ld-lcard__name:hover { color: var(--ld-accent); text-decoration: none; }
/* Рейтинг + отзывы */
.ld-lcard__rating-row {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: #475569;
  flex-wrap: wrap;
}
.ld-lcard__rating-val {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: #16A34A;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}
.ld-lcard__rating-label {
  color: #0F172A;
  font-weight: 600;
}
.ld-lcard__rating-dot {
  color: #94A3B8;
  margin: 0 4px;
}
.ld-lcard__reviews { color: #64748B; }
.ld-lcard__reviews-anon { color: #94A3B8; }
/* ===== Адрес + Метро (JSX: общий контейнер с gap: 4)
   Главный фокус: иконки (pin / metro-dot) выровнены друг под другом,
   потому что обе обёрнуты в .ld-lcard__loc-icon шириной/высотой 14px.
   Цвет текста одинаков для адреса и метро (#64748B), метро-имя темнее. */
.ld-lcard__loc {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 14px;
  color: #64748B;
  line-height: 1.4;
}
.ld-lcard__loc-row {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  color: #64748B;
}
/* Иконка-обёртка 14x14: pin svg или 9x9 metro dot центрируется внутри */
.ld-lcard__loc-icon {
  width: 14px;
  height: 14px;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #64748B;
}
.ld-lcard__loc-icon svg { width: 14px; height: 14px; display: block; }
.ld-lcard__loc-text { line-height: 1.4; min-width: 0; }
/* Метро-точка - 9x9 круг внутри 14x14 обёртки */
.ld-lcard__metro-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.06);
  display: block;
}
.ld-lcard__metro-name { color: #0F172A; font-weight: 500; }
.ld-lcard__metro-mins { font-variant-numeric: tabular-nums; }
.ld-lcard__sep { color: #CBD5E1; margin: 0 6px; }

/* ----------- САЙД (JSX: ListingCardAside)
   padding: 24px 32px, flex column gap 14, border-left: 1px dashed
   align-self НЕ задаём - aside центрируется (natural height) как в JSX. */
.ld-lcard__aside {
  padding: 24px 32px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  border-left: 1px dashed rgba(15,23,42,.08);
  min-width: 0;
}

/* Верхняя группа: уровень цен + цена + название + промо */
.ld-lcard__aside-top {
  display: flex;
  flex-direction: column;
}
.ld-lcard__price-lv-label {
  font-size: 12px;
  color: #94A3B8;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.ld-lcard__price-val {
  font-size: 22px;
  font-weight: 800;
  color: #94A3B8;
  letter-spacing: -0.01em;
  font-variant-numeric: tabular-nums;
  margin-top: 8px;
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  flex-wrap: wrap;
}
.ld-lcard__price-name {
  font-size: 14px;
  color: #64748B;
  margin-top: 2px;
}

/* Промо-блок (акция) - margin-top: 14, padding: 10 12, bg #FEF3C7, border 1px dashed #F59E0B66 */
.ld-lcard__promo {
  margin-top: 14px;
  padding: 10px 12px;
  border-radius: 10px;
  background: #FEF3C7;
  border: 1px dashed rgba(245, 158, 11, .4);
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.ld-lcard__promo-label {
  font-size: 11px;
  color: #92400E;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
}
.ld-lcard__promo-title {
  font-size: 14px;
  font-weight: 700;
  color: #0F172A;
  line-height: 1.3;
}
.ld-lcard__promo-sub {
  font-size: 14px;
  color: #92400E;
}

/* CTA-блок (JSX: display: grid, gap: 8) - phone btn + hours/book */
.ld-lcard__aside-cta {
  display: grid;
  gap: 8px;
}
/* Часы работы под телефоном (как в карточках врачей .ld-dlcard__hours) */
.ld-lcard__hours { display: flex; align-items: center; justify-content: center; gap: 6px; font-size: 14px; font-weight: 600; color: #94A3B8; }
.ld-lcard__hours.is-open { color: #16A34A; }
.ld-lcard__hours-dot { width: 7px; height: 7px; border-radius: 50%; background: #CBD5E1; flex-shrink: 0; }
.ld-lcard__hours.is-open .ld-lcard__hours-dot { background: #22C55E; }
/* Кнопка телефона - padding 12 18, bg accent, color #fff,
   box-shadow: 0 4px 12px {accent}33 */
.ld-lcard__phone-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 12px 18px;
  border-radius: 10px;
  background: var(--ld-accent);
  color: #fff;
  font-family: inherit;
  font-size: 14px;
  font-weight: 700;
  text-align: center;
  text-decoration: none;
  font-variant-numeric: tabular-nums;
  box-shadow: 0 4px 12px rgba(59,130,246,.20);
  border: 0;
  cursor: pointer;
  transition: opacity .15s;
}
.ld-lcard__phone-btn:hover { opacity: .88; color: #fff; }

/* ----------- ПОСЛЕДНИЙ ПОЛОЖИТЕЛЬНЫЙ ОТЗЫВ (снипет в body)
   JSX: marginTop: 2, padding: '12px 14px', borderRadius: 10,
        background: '#F8FAFC',
        borderLeft: '3px solid {accent}55' (accent + 55hex alpha = ~33% opacity),
        fontSize: 14, lineHeight: 1.5, color: '#334155' */
.ld-lcard__review {
  margin-top: 2px;
  padding: 12px 14px;
  border-radius: 10px;
  background: #F8FAFC;
  border-left: 3px solid rgba(59, 130, 246, .33);
  font-size: 14px;
  line-height: 1.5;
  color: #334155;
  text-wrap: pretty;
}

/* ----------- МОБИЛЬНЫЙ COMPACT CTA (JSX compact mode)
   Внутри body, в самом низу: цена слева + "Позвонить" справа.
   Видим только на мобильной версии. На desktop скрыт. */
.ld-lcard__compact-cta { display: none; }

/* ============================================================
   МОБИЛЬНАЯ КАРТОЧКА (JSX: view='grid' или mobile=true)
   - Фото на всю ширину, aspect-ratio 16/9 (без margin, без radius)
   - Тело снизу с padding 16px, name 17px
   - Inline-блок цена + "Позвонить" внизу тела
   - Aside скрыт (всё перенесено в compact CTA)
   ============================================================ */
@media (max-width: 768px) {
  .ld-listing-cards { gap: 12px; }

  /* Article: flex column, photo сверху - body снизу */
  .ld-lcard__article {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    grid-template-columns: none;
    border-radius: 16px;
  }

  /* Photo wrap + photo: 16/9 на всю ширину */
  .ld-lcard__photo-wrap {
    width: 100%;
    height: auto;
    aspect-ratio: 16 / 9;
    margin: 0;
  }
  .ld-lcard__photo {
    width: 100%;
    height: 100%;
    border-radius: 0;
  }

  /* Body: 16px padding со всех сторон, name 17px */
  .ld-lcard__body {
    padding: 16px;
    gap: 10px;
  }
  .ld-lcard__name {
    font-size: 17px;
  }

  /* Aside (desktop-only) полностью скрыт */
  .ld-lcard__aside { display: none; }

  /* Compact CTA (mobile-only): цена слева + Позвонить справа */
  .ld-lcard__compact-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-top: 10px;
    padding-top: 14px;
    border-top: 1px solid rgba(15,23,42,.05);
  }
  .ld-lcard__compact-price-label {
    font-size: 11px;
    color: #94A3B8;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
  }
  .ld-lcard__compact-price-val {
    font-size: 15px;
    font-weight: 800;
    color: var(--ld-accent);
    font-variant-numeric: tabular-nums;
  }
  .ld-lcard__compact-btn {
    flex-shrink: 0;
    padding: 10px 16px;
    border-radius: 10px;
    background: var(--ld-accent);
    color: #fff;
    font-family: inherit;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    border: 0;
    cursor: pointer;
    transition: opacity .15s;
  }
  .ld-lcard__compact-btn:hover { opacity: .88; color: #fff; }

  /* Listing head: stack vertical on mobile */
  .ld-listing-results__count-num,
  .ld-listing-sort { font-size: 14px; }
  .ld-listing-results__head { flex-direction: column; align-items: flex-start; }
}

/* Пустой результат */
.ld-listing-empty {
  text-align: center;
  padding: 60px 24px;
  border-radius: 16px;
  background: #fff;
  border: 1px dashed rgba(15,23,42,.10);
}
.ld-listing-empty__icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: #F8FAFC;
  display: grid;
  place-items: center;
  margin: 0 auto 16px;
  box-shadow: inset 0 0 0 1.5px rgba(15,23,42,.08);
}
.ld-listing-empty__title {
  font-size: 18px;
  font-weight: 700;
  color: #0F172A;
}
.ld-listing-empty__sub {
  font-size: 14px;
  color: #64748B;
  margin-top: 4px;
}
.ld-listing-empty__reset {
  display: inline-block;
  margin-top: 20px;
  padding: 12px 22px;
  border-radius: 10px;
  background: var(--ld-accent);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  transition: opacity .15s;
}
.ld-listing-empty__reset:hover { opacity: .88; color: #fff; }

/* Дополнительные блоки */
.ld-listing-extra {
  padding: 32px 0 0;
}
.ld-listing-extra__title {
  font-size: 20px;
  font-weight: 700;
  margin: 0 0 16px;
}
.ld-listing-extra__title a {
  color: #0F172A;
  text-decoration: none;
}
.ld-listing-extra__title a:hover { color: var(--ld-accent); }

/* SEO-текст листинга */
.ld-listing-seo-text {
  padding: 48px 0;
  font-size: 15px;
  line-height: 1.75;
  color: #475569;
}

/* FAQ листинга */
.ld-listing-faq {
  padding: 56px 0;
  background: transparent;
}
@media (max-width: 768px) {
  .ld-listing-faq { padding: 28px 0; }
}
.ld-section__kicker {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .08em;
  margin-bottom: 6px;
}
.ld-section__h2 {
  font-size: clamp(22px, 3vw, 32px);
  font-weight: 800;
  color: #0F172A;
  letter-spacing: -0.02em;
  margin: 0 0 24px;
}
/* Заголовок FAQ строго по дизайн-системе (компонент H2 из ld-shared.jsx):
   kicker 13px/800/uppercase/.08em/accent/mb 8; H2 28px/700/#0F172A/-0.01em/lh 1.15. */
.ld-listing-faq .ld-section__kicker {
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .08em;
  margin-bottom: 8px;
}
.ld-listing-faq .ld-section__h2 {
  font-size: 28px;
  font-weight: 700;
  color: #0F172A;
  letter-spacing: -0.01em;
  line-height: 1.15;
  margin: 0 0 24px;
}
/* Карточка-аккордеон: эталон cardSx(soft, {padding:4}) */
.ld-faq {
  background: #fff;
  border-radius: 20px;
  box-shadow: 0 1px 2px rgba(15,23,42,.04), 0 8px 28px rgba(15,23,42,.06);
  padding: 4px;
}
.ld-faq__item {
  border-top: 1px solid rgba(15,23,42,.05);
}
.ld-faq__item:first-child { border-top: none; }
/* Вопрос (button): эталон fontSize 16, fontWeight 600, padding 20, gap 16 */
.ld-faq__q {
  width: 100%;
  text-align: left;
  padding: 20px;
  background: transparent;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  font-family: inherit;
}
.ld-faq__q-text {
  font-size: 16px;
  font-weight: 600;
  color: #0F172A;
  line-height: 1.35;
  text-wrap: pretty;
}
/* Иконка-переключатель: кружок 28px, plus когда закрыт / down (accent) когда открыт */
.ld-faq__toggle {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #F1F5F9;
  color: #0F172A;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  transition: all .2s;
}
.ld-faq__q[aria-expanded="true"] .ld-faq__toggle {
  background: var(--ld-accent);
  color: #fff;
}
/* Свёрнут: видна plus, скрыта down. Открыт: наоборот.
   Управляем display на самих иконках (НЕ через `.ld-faq__toggle svg`, иначе
   спецификация 0-1-1 перебивала бы скрытие 0-1-0 и обе иконки показывались). */
.ld-faq__ic-plus,
.ld-faq__ic-down { display: block; }
.ld-faq__ic-down { display: none; }
.ld-faq__q[aria-expanded="true"] .ld-faq__ic-plus { display: none; }
.ld-faq__q[aria-expanded="true"] .ld-faq__ic-down { display: block; }
/* Ответ: эталон padding '0 56px 20px 20px' (обычный) / '0 20px 22px' (с отзывами) */
.ld-faq__a {
  padding: 0 56px 20px 20px;
  font-size: 15px;
  line-height: 1.6;
  color: #475569;
  text-wrap: pretty;
}
.ld-faq__a--reviews {
  padding: 0 20px 22px;
}
/* Ссылка внутри ответа FAQ - голубой акцент (дизайн-система) */
.ld-faq__link {
  color: var(--ld-accent);
  text-decoration: none;
}
.ld-faq__link:hover { text-decoration: underline; }

/* ── Карточки последних отзывов внутри первого вопроса FAQ (эталон: kind=reviews) ── */
@keyframes ldFaqReviewIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.ld-faq-reviews {
  margin-top: 16px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.ld-faq-review {
  background: #F8FAFC;
  border-radius: 14px;
  padding: 16px 18px;
  border: 1px solid rgba(15,23,42,.06);
  display: flex;
  flex-direction: column;
  gap: 12px;
  animation: ldFaqReviewIn .4s ease both;
}
.ld-faq-review__head {
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.ld-faq-review__avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(59,130,246,.10);
  color: #fff;
  display: grid;
  place-items: center;
  font-size: 15px;
  font-weight: 800;
  flex: 0 0 auto;
  overflow: hidden;
}
.ld-faq-review__avatar--photo { object-fit: cover; }
.ld-faq-review__avatar--operator { object-fit: contain; background: #fff; }
.ld-faq-review__who { min-width: 0; flex: 1 1 auto; }
/* Верхняя строка: имя слева, дата справа (в одной строке) */
.ld-faq-review__top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
}
.ld-faq-review__author { font-size: 14px; font-weight: 700; color: #0F172A; }
/* Дата - справа от имени, серым, в одной строке */
.ld-faq-review__date {
  font-size: 13px;
  color: #94A3B8;
  flex: 0 0 auto;
  white-space: nowrap;
}
/* Подпись «оставил отзыв о {процедуре} у врача {доктор} с оценкой N★» (эталон meta) */
.ld-faq-review__meta {
  font-size: 13px;
  color: #94A3B8;
  margin-top: 2px;
  line-height: 1.45;
}
.ld-faq-review__doctor {
  color: var(--ld-accent);
  text-decoration: none;
  font-weight: 600;
}
.ld-faq-review__doctor:hover { text-decoration: underline; }
.ld-faq-review__rate-inline { white-space: nowrap; }
.ld-faq-review__rate-inline svg { margin-left: 2px; vertical-align: -1px; }
.ld-faq-review__stars {
  margin-left: auto;
  display: flex;
  gap: 2px;
  flex-shrink: 0;
}
.ld-faq-review__stars svg { display: block; }
.ld-faq-review__text {
  margin: 0;
  font-size: 14px;
  line-height: 1.55;
  color: #475569;
  text-wrap: pretty;
}
.ld-faq-review__clinic {
  font-size: 13px;
  font-weight: 600;
  color: var(--ld-accent);
  text-decoration: none;
  margin-top: auto;
  transition: opacity .15s;
}
.ld-faq-review__clinic:hover { opacity: .7; }
.ld-faq-reviews__more {
  margin-top: 16px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 500;
  color: var(--ld-accent);
  text-decoration: none;
  transition: opacity .15s;
}
.ld-faq-reviews__more:hover { opacity: .7; }
.ld-faq-reviews__more svg { flex: 0 0 auto; }
@media (max-width: 768px) {
  .ld-faq-reviews { grid-template-columns: 1fr; gap: 10px; }
}

/* ============================================================
   PROMOTED ROW - промо-клиники + "место свободно" (JSX: PromotedRow)
   Grid 4 колонки на desktop, 1 на mobile. Над органической выдачей.
   ============================================================ */
.ld-promo-row {
  margin-top: 20px;
  padding: 0;
}
.ld-promo-row__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
}
@media (max-width: 768px) {
  .ld-promo-row__grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}

/* ----- Промо-карточка (PromotedCard из JSX) -----
   Вертикальная: фото 1:1 сверху + контент снизу. Оранжевая обводка/тень. */
.ld-promo-lcard {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0; /* перебивает gap:24px из старого .ld-promo-lcard (line 2165) — иначе фото и тело разъезжаются на 24px */
  background: #fff;
  border-radius: 20px;
  overflow: hidden;
  box-shadow:
    0 1px 2px rgba(15,23,42,.04),
    0 8px 20px rgba(245,158,11,.08);
  transition: transform .15s, box-shadow .15s;
  cursor: pointer;
  height: 100%;
}
.ld-promo-lcard:hover {
  transform: translateY(-2px);
  box-shadow:
    0 12px 28px rgba(245,158,11,.18);
}
/* Обводка-кольцо поверх всей карточки (включая фото). Отдельный overlay -
   чтобы рамка читалась поверх фото (эталон: data-promo-ring). */
.ld-promo-lcard__ring {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  box-shadow: inset 0 0 0 1.5px rgba(245,158,11,.20);
  pointer-events: none;
  z-index: 4;
  transition: box-shadow .15s;
}
.ld-promo-lcard:hover .ld-promo-lcard__ring {
  box-shadow: inset 0 0 0 1.5px rgba(245,158,11,.40);
}
/* Обёртка фото (relative) - держит фото-ссылку + fav-кнопку (sibling, не внутри <a>) */
.ld-promo-lcard__photo-wrap {
  position: relative;
}
.ld-promo-lcard__photo {
  display: block;
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: #F1F5F9;
  text-decoration: none;
}
.ld-promo-lcard__photo-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.ld-promo-lcard__badge {
  position: absolute;
  top: 10px;
  left: 10px;
  display: inline-flex;
  align-items: center;
  padding: 4px 9px;
  border-radius: 6px;
  background: #F59E0B;
  color: #fff;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
  box-shadow: 0 2px 6px rgba(245,158,11,.40);
  z-index: 2;
}
/* Verified - pill «Проверено» снизу-слева на фото (эталон) */
.ld-promo-lcard__verified {
  position: absolute;
  bottom: 10px;
  left: 10px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px 4px 6px;
  border-radius: 999px;
  background: rgba(255,255,255,.96);
  box-shadow: 0 2px 8px rgba(15,23,42,.16);
  font-size: 14px;
  font-weight: 700;
  color: #0F172A;
  z-index: 2;
}
.ld-promo-lcard__verified-check {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--ld-accent);
  display: inline-grid;
  place-items: center;
  flex: 0 0 auto;
}
.ld-promo-lcard__verified-check svg { display: block; }
/* Кнопка "В избранное" (heart) - top-right, как в обычной карточке листинга */
.ld-promo-lcard__fav {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 0;
  cursor: pointer;
  background: rgba(255,255,255,.96);
  box-shadow: 0 2px 8px rgba(15,23,42,.18);
  display: grid;
  place-items: center;
  color: #0F172A;
  transition: background .15s, box-shadow .15s, color .15s, transform .15s;
  z-index: 5;
}
.ld-promo-lcard__fav:hover { transform: scale(1.06); }
.ld-promo-lcard__fav svg { display: block; fill: none; }
.ld-promo-lcard__fav[data-active="1"] {
  background: var(--ld-accent);
  color: #fff;
  box-shadow: 0 6px 16px rgba(59,130,246,.33);
}
.ld-promo-lcard__fav[data-active="1"] svg { fill: currentColor; }

/* Тело промо-карточки */
.ld-promo-lcard__body {
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  flex: 1;
}
/* Спецпредложение (акция клиники) */
.ld-promo-lcard__offer {
  padding: 8px 12px;
  border-radius: 10px;
  background: linear-gradient(95deg, #FEF3C7 0%, #FEF3C7 70%, #FDE68A 100%);
  border: 1px dashed rgba(245,158,11,.40);
}
.ld-promo-lcard__offer-label {
  font-size: 11px;
  color: #92400E;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-bottom: 2px;
}
.ld-promo-lcard__offer-title {
  font-size: 14px;
  font-weight: 800;
  color: #0F172A;
  line-height: 1.25;
  letter-spacing: -.005em;
}
.ld-promo-lcard__offer-sub {
  font-size: 14px;
  color: #92400E;
  margin-top: 2px;
  font-weight: 600;
}
.ld-promo-lcard__name {
  font-size: 16px;
  font-weight: 800;
  color: #0089E0;
  line-height: 1.2;
  letter-spacing: -.005em;
  text-decoration: none;
}
.ld-promo-lcard__name:hover { color: var(--ld-accent); }
.ld-promo-lcard__rating-row {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  color: #475569;
  flex-wrap: wrap;
}
.ld-promo-lcard__rating-val {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: #16A34A;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}
.ld-promo-lcard__rating-dot { color: #94A3B8; margin: 0 2px; }
.ld-promo-lcard__reviews { color: #64748B; }
.ld-promo-lcard__addr-row {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  font-size: 14px;
  color: #475569;
  line-height: 1.4;
}
.ld-promo-lcard__addr-row svg { flex: 0 0 auto; margin-top: 3px; }
.ld-promo-lcard__metro-row {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  color: #64748B;
}
.ld-promo-lcard__metro-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex: 0 0 auto;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.06);
  display: block;
}
.ld-promo-lcard__cta {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 14px;
  border-radius: 10px;
  background: var(--ld-accent);
  color: #fff;
  font-family: inherit;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  font-variant-numeric: tabular-nums;
}
.ld-promo-lcard__cta:hover { opacity: .88; color: #fff; }

/* ----- "Место свободно" pitch-карточка (PromotedSlotPitchCard из JSX) ----- */
.ld-promo-pitch {
  display: flex;
  flex-direction: column;
  border-radius: 20px;
  overflow: hidden;
  background:
    repeating-linear-gradient(135deg, #fff 0 14px, #FAFAF7 14px 28px);
  box-shadow: inset 0 0 0 1.5px #CBD5E1;
  height: 100%;
}
.ld-promo-pitch__photo {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: linear-gradient(180deg, #F1F5F9 0%, #E2E8F0 100%);
  display: grid;
  place-items: center;
}
.ld-promo-pitch__ghost { opacity: .35; }
.ld-promo-pitch__free {
  position: absolute;
  top: 10px;
  right: 10px;
  padding: 4px 9px;
  border-radius: 6px;
  background: #fff;
  color: #0F172A;
  font-size: 14px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  box-shadow: 0 1px 3px rgba(15,23,42,.10);
  z-index: 2;
}
.ld-promo-pitch__overlay {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  pointer-events: none;
}
.ld-promo-pitch__overlay-pill {
  padding: 6px 12px;
  border-radius: 999px;
  background: rgba(15,23,42,.78);
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .01em;
}

.ld-promo-pitch__body {
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex: 1;
}
.ld-promo-pitch__title {
  font-size: 16px;
  font-weight: 800;
  color: #0F172A;
  line-height: 1.25;
  letter-spacing: -0.005em;
}
.ld-promo-pitch__sub {
  font-size: 14px;
  color: #475569;
  margin-top: 4px;
  line-height: 1.4;
}
.ld-promo-pitch__stats {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding: 10px 12px;
  border-radius: 10px;
  background: #fff;
  box-shadow: inset 0 0 0 1px #E2E8F0;
}
.ld-promo-pitch__stat--divider {
  border-left: 1px solid #E2E8F0;
  padding-left: 8px;
}
.ld-promo-pitch__stat-val {
  font-size: 15px;
  font-weight: 800;
  color: #0F172A;
  font-variant-numeric: tabular-nums;
  letter-spacing: -.01em;
}
.ld-promo-pitch__stat-label {
  font-size: 14px;
  color: #64748B;
  margin-top: 1px;
}
.ld-promo-pitch__footnote {
  font-size: 14px;
  color: #475569;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.ld-promo-pitch__cta {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px 14px;
  border-radius: 10px;
  background: #0F172A;
  color: #fff;
  font-family: inherit;
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
}
.ld-promo-pitch__cta:hover { opacity: .9; color: #fff; }

/* ============================================================
   Пагинатор нового дизайна (custom, без Pager::widget)
   ============================================================ */
.ld-pager {
  margin-top: 28px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
}
/* Кнопка "Показать ещё N" */
.ld-pager__more {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 28px;
  border-radius: 12px;
  background: #fff;
  border: none;
  cursor: pointer;
  box-shadow: inset 0 0 0 1.5px rgba(15,23,42,.12);
  font-family: inherit;
  font-size: 15px;
  font-weight: 700;
  color: #0F172A;
  transition: box-shadow .15s, color .15s;
}
.ld-pager__more:hover {
  box-shadow: inset 0 0 0 1.5px var(--ld-accent);
}
.ld-pager__more-num {
  color: var(--ld-accent);
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}

/* Numbered pages */
.ld-pager__nav {
  display: flex;
  align-items: center;
  gap: 6px;
}
.ld-pager__btn {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  display: inline-grid;
  place-items: center;
  font-family: inherit;
  font-size: 14px;
  font-weight: 500;
  color: #0F172A;
  text-decoration: none;
  background: #fff;
  box-shadow: inset 0 0 0 1.5px rgba(15,23,42,.12);
  transition: all .15s;
  border: none;
  cursor: pointer;
}
.ld-pager__btn:hover {
  box-shadow: inset 0 0 0 1.5px var(--ld-accent);
  color: var(--ld-accent);
}
.ld-pager__btn--active {
  background: var(--ld-accent);
  color: #fff;
  font-weight: 700;
  box-shadow: 0 4px 12px rgba(59,130,246,.30);
}
.ld-pager__btn--active:hover {
  color: #fff;
  opacity: .9;
  box-shadow: 0 4px 12px rgba(59,130,246,.30);
}
.ld-pager__btn.is-disabled {
  opacity: .4;
  cursor: not-allowed;
}
.ld-pager__btn.is-disabled:hover {
  box-shadow: inset 0 0 0 1.5px rgba(15,23,42,.12);
  color: #0F172A;
}
.ld-pager__ellipsis {
  width: 40px;
  height: 40px;
  display: inline-grid;
  place-items: center;
  color: #94A3B8;
  font-size: 14px;
}


/* ============================================================
   РЕЙТИНГ КЛИНИК (страница /{city}/kliniki/{service}/top10?ui=new)
   Эталон: design Like Doctor/ld-ratings-sections.jsx
   Переиспользует .ld-container, .ld-listing-crumbs, .ld-listing-hero,
   .ld-listing-results, .ld-promo-row, .ld-fdd и карточку .ld-lcard.
   Здесь - только специфичная для рейтинга «обвязка»: зелёная пометка,
   плашки годов, колонка с местом, разделители Топ 1-10 / Топ 11-N.
   ============================================================ */

/* Зелёная пометка «Данные обновляются каждый месяц» */
.ld-rt-hero__note {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 14px;
  font-size: 14px;
  font-weight: 600;
  color: #16A34A;
}

/* Блок контролов hero: дропдаун направления + архив годов */
.ld-rt-hero__controls {
  margin-top: 22px;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.ld-rt-hero__direction {
  width: 280px;
  max-width: 100%;
}

/* Архив рейтинга по годам */
.ld-rt-years__label {
  font-size: 13px;
  font-weight: 800;
  color: #94A3B8;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 10px;
}
.ld-rt-years__pills {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  padding-bottom: 4px;
  -webkit-overflow-scrolling: touch;
}
.ld-rt-year {
  flex: 0 0 auto;
  padding: 10px 18px;
  border-radius: 999px;
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
  text-decoration: none;
  background: #F1F5F9;
  color: #334155;
  font-variant-numeric: tabular-nums;
  transition: background .15s, color .15s;
}
.ld-rt-year:hover { background: #E2E8F0; color: #0F172A; }
.ld-rt-year.is-active { background: #0F172A; color: #fff; }
.ld-rt-year.is-active:hover { background: #0F172A; color: #fff; }

/* Разделитель «Топ 1-10» / «Топ 11-N» */
.ld-rt-band {
  display: flex;
  align-items: baseline;
  gap: 12px;
  margin: 8px 0 4px;
  flex-wrap: wrap;
}
.ld-rt-band--second { margin-top: 24px; }
.ld-rt-band__label {
  margin: 0;
  font-size: 22px;
  font-weight: 800;
  color: #0F172A;
  letter-spacing: -0.01em;
}
.ld-rt-band__sub {
  font-size: 14px;
  font-weight: 500;
  color: #94A3B8;
}

/* Список строк рейтинга */
.ld-rt-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  /* Отступ вниз от заголовка раздела (Топ 1-10) до первой карточки. */
  margin-top: 28px;
}

/* Одна строка: колонка ранга + карточка */
.ld-rt-row {
  display: flex;
  align-items: center;
  gap: 16px;
}
.ld-rt-row__card {
  flex: 1;
  min-width: 0;
}

/* Колонка с местом в рейтинге (RankNumber из JSX) */
.ld-rt-rank {
  flex: 0 0 auto;
  width: 72px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ld-rt-rank__circle {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: transparent;
}
.ld-rt-rank__num {
  font-size: 30px;
  font-weight: 900;
  line-height: 1;
  color: #CBD5E1;
  font-variant-numeric: tabular-nums;
}
.ld-rt-rank--medal .ld-rt-rank__num { font-size: 26px; }

/* Подвал списка: счётчик + ссылка на каталог */
.ld-rt-footer {
  margin-top: 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}
.ld-rt-counter {
  font-size: 14px;
  font-weight: 600;
  color: #64748B;
  font-variant-numeric: tabular-nums;
}
.ld-rt-counter__num { color: #0F172A; font-weight: 800; }
.ld-rt-catalog,
.ld-rt-more {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 28px;
  border-radius: 12px;
  background: #fff;
  border: 0;
  cursor: pointer;
  text-decoration: none;
  box-shadow: inset 0 0 0 1.5px rgba(15,23,42,.12);
  font-family: inherit;
  font-size: 15px;
  font-weight: 700;
  color: #0F172A;
  transition: box-shadow .15s;
}
.ld-rt-catalog[hidden] { display: none; }
.ld-rt-catalog:hover,
.ld-rt-more:hover { box-shadow: inset 0 0 0 1.5px var(--ld-accent); color: #0F172A; }
.ld-rt-more__num {
  color: var(--ld-accent);
  font-weight: 800;
  font-variant-numeric: tabular-nums;
}

/* Скрытая строка рейтинга (раскрывается кнопкой «Показать ещё») */
.ld-rt-row--hidden { display: none; }

@media (max-width: 768px) {
  .ld-rt-hero__direction { width: 100%; }
  .ld-rt-band__label { font-size: 19px; }
  .ld-rt-row { gap: 10px; align-items: stretch; }
  .ld-rt-rank { width: auto; min-width: 30px; }
  .ld-rt-rank__circle {
    width: auto;
    height: auto;
    background: transparent !important;
    box-shadow: none !important;
  }
  .ld-rt-rank__num { font-size: 22px; }
  .ld-rt-rank--medal .ld-rt-rank__num { font-size: 22px; }
}

/* ============================================================
   СТРУКТУРА КЛИНИКИ (отделения + филиалы).
   Эталон: design Like Doctor/ld-structure-section.jsx
   Размещается после «О клинике». Карточки: cardSx(soft) radius 20 +
   inset-обводка 1.5px (hover - accent66).
   ============================================================ */
.ld-struct__head { margin-bottom: 18px; }
.ld-struct__title-row { display: flex; align-items: baseline; gap: 16px; flex-wrap: wrap; }
.ld-struct__count { font-size: 15px; color: #94A3B8; font-weight: 600; }
.ld-struct__sub { margin: 10px 0 0; font-size: 15px; color: #64748B; line-height: 1.5; max-width: 640px; }

/* Сегмент-вкладки */
.ld-struct__tabs {
  display: inline-flex; gap: 6px; padding: 5px;
  background: #F1F5F9; border-radius: 999px; margin-bottom: 18px;
}
.ld-struct__tab {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 9px 16px; border-radius: 999px; border: 0; cursor: pointer;
  font-family: inherit; font-size: 14px; font-weight: 700;
  background: transparent; color: #475569;
  transition: background .15s, color .15s;
}
.ld-struct__tab.is-active { background: #0F172A; color: #fff; }
.ld-struct__tab-count {
  font-size: 12px; font-weight: 800; font-variant-numeric: tabular-nums;
  padding: 1px 7px; border-radius: 999px; background: #E2E8F0; color: #64748B;
}
.ld-struct__tab.is-active .ld-struct__tab-count { background: rgba(255,255,255,.22); color: #fff; }

/* Сетки */
.ld-struct__grid { display: grid; gap: 14px; }
.ld-struct__grid--dept   { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.ld-struct__grid--branch { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); }
.ld-struct-extra.is-collapsed { display: none; }

/* Общие inline-элементы карточек */
.ld-struct__rating {
  display: inline-flex; align-items: center; gap: 4px;
  color: #16A34A; font-weight: 800; font-size: 14px; font-variant-numeric: tabular-nums;
}
.ld-struct__dot { color: #CBD5E1; }
.ld-struct__reviews { font-size: 14px; color: #64748B; font-variant-numeric: tabular-nums; }
.ld-struct__docs { font-size: 14px; color: #475569; font-weight: 600; font-variant-numeric: tabular-nums; }
.ld-struct__oms {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 3px 9px; border-radius: 999px;
  background: #F0FDF4; color: #15803D; font-size: 12px; font-weight: 700;
}

/* Карточка отделения */
.ld-struct-dept {
  text-decoration: none; cursor: pointer; border: 0; padding: 18px;
  display: flex; flex-direction: column; gap: 10px; font-family: inherit;
  background: #fff; border-radius: 20px;
  box-shadow: inset 0 0 0 1.5px rgba(15,23,42,.10);
  transition: box-shadow .15s;
}
.ld-struct-dept:hover { box-shadow: inset 0 0 0 1.5px rgba(59,130,246,.4); }
.ld-struct-dept__name {
  font-size: 16px; font-weight: 700; color: var(--ld-accent);
  line-height: 1.25; letter-spacing: -0.01em;
}
.ld-struct-dept__meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

/* Карточка филиала */
.ld-struct-branch {
  text-decoration: none; cursor: pointer; border: 0; padding: 0; overflow: hidden;
  display: flex; flex-direction: column; font-family: inherit;
  background: #fff; border-radius: 20px;
  box-shadow: inset 0 0 0 1.5px rgba(15,23,42,.10);
  transition: box-shadow .15s;
}
.ld-struct-branch:hover { box-shadow: inset 0 0 0 1.5px rgba(59,130,246,.4); }
.ld-struct-branch__photo { position: relative; height: 120px; background: #F1F5F9; }
.ld-struct-branch__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.ld-struct-branch__body { padding: 16px; display: flex; flex-direction: column; gap: 8px; }
.ld-struct-branch__name {
  font-size: 16px; font-weight: 700; color: var(--ld-accent);
  line-height: 1.25; letter-spacing: -0.01em;
}
.ld-struct-branch__addr { display: flex; align-items: center; gap: 6px; font-size: 13.5px; color: #64748B; }
.ld-struct-branch__metro { display: inline-flex; align-items: center; gap: 6px; font-size: 13.5px; color: #475569; }
.ld-struct-branch__metro-dot {
  width: 9px; height: 9px; border-radius: 50%; flex: 0 0 auto;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.06);
}
.ld-struct-branch__meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 2px; }
.ld-struct-branch__status { display: flex; align-items: center; gap: 6px; font-size: 13.5px; font-weight: 600; color: #94A3B8; margin-top: 2px; }
.ld-struct-branch__status--open { color: #16A34A; }
.ld-struct-branch__status-dot { width: 7px; height: 7px; border-radius: 50%; background: #CBD5E1; flex: 0 0 auto; }
.ld-struct-branch__status--open .ld-struct-branch__status-dot { background: #22C55E; }

/* Кнопка «Показать все / Свернуть» */
.ld-struct__expand { margin-top: 16px; display: flex; justify-content: center; }
.ld-struct__expand-btn {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 12px 24px; border-radius: 12px;
  background: #fff; border: 0; cursor: pointer;
  box-shadow: inset 0 0 0 1.5px rgba(15,23,42,.12);
  font-family: inherit; font-size: 14.5px; font-weight: 700; color: #0F172A;
  transition: box-shadow .15s;
}
.ld-struct__expand-btn:hover { box-shadow: inset 0 0 0 1.5px var(--ld-accent); }
.ld-struct__expand-num { color: var(--ld-accent); font-weight: 800; font-variant-numeric: tabular-nums; }
.ld-struct__expand-chev { transition: transform .15s; }
.ld-struct__expand-btn.is-expanded .ld-struct__expand-chev { transform: rotate(180deg); }

@media (max-width: 768px) {
  .ld-struct__grid--dept, .ld-struct__grid--branch { grid-template-columns: 1fr; gap: 10px; }
  .ld-struct-dept { padding: 16px; }
  .ld-struct-branch__body { padding: 14px; }
}

/* ============================================================
   СТАТИСТИКА КЛИНИКИ (страница /{city}/kliniki/{clinic}/stat?ui=new).
   Эталона в дизайн-системе нет - на токенах редизайна. Графики - Google Charts.
   ============================================================ */
/* Подробный расчёт рейтинга (сворачиваемый) */
.ld-stat-calc__toggle {
  display: inline-flex; align-items: center; gap: 8px;
  background: transparent; border: 0; cursor: pointer; padding: 0;
  font-family: inherit; font-size: 14px; font-weight: 700; color: var(--ld-accent);
}
.ld-stat-calc { margin-top: 14px; display: flex; flex-direction: column; gap: 8px; }
.ld-stat-calc__row {
  display: flex; align-items: baseline; justify-content: space-between; gap: 16px;
  font-size: 14px; color: #475569; padding: 8px 0; border-top: 1px solid rgba(15,23,42,.05);
}
.ld-stat-calc__row:first-child { border-top: 0; }
.ld-stat-calc__val { color: #0F172A; font-weight: 600; white-space: nowrap; font-variant-numeric: tabular-nums; }

/* Награды (места в рейтинге) */
.ld-stat-award {
  display: flex; align-items: center; gap: 14px;
  padding: 12px 16px; border-top: 1px solid rgba(15,23,42,.05);
}
.ld-stat-award:first-child { border-top: 0; }
.ld-stat-award__place {
  flex: 0 0 auto; width: 34px; height: 34px; border-radius: 10px;
  display: grid; place-items: center;
  background: #FEF3C7; color: #B45309; font-weight: 800; font-size: 15px;
  font-variant-numeric: tabular-nums;
}
.ld-stat-award__text { font-size: 15px; color: #334155; }
.ld-stat-award__text a { color: var(--ld-accent); }

/* Графики */
.ld-stat-charts { display: flex; flex-direction: column; gap: 16px; margin-top: 16px; }
.ld-stat-chart { padding: 20px; }
.ld-stat-chart__title { font-size: 16px; font-weight: 700; color: #0F172A; margin-bottom: 12px; }
.ld-stat-chart__canvas { width: 100%; height: 320px; }
.ld-stat-chart__legend { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.ld-stat-chart__legend li { font-size: 13px; color: #64748B; }
.ld-stat-chart__legend a { color: var(--ld-accent); }
.ld-stat-chart__empty { font-size: 14px; color: #94A3B8; padding: 24px 0; }

/* Рекомендации */
.ld-stat-tips { padding: 20px 24px; margin-top: 14px; }
.ld-stat-tips h3 { font-size: 16px; font-weight: 700; color: #0F172A; margin: 16px 0 6px; }
.ld-stat-tips h3:first-child { margin-top: 0; }
.ld-stat-tips p { font-size: 15px; line-height: 1.6; color: #475569; margin: 0 0 8px; }
.ld-stat-tips blockquote {
  margin: 8px 0 12px; padding: 12px 16px; border-radius: 12px;
  background: #F8FAFC; box-shadow: inset 0 0 0 1px rgba(15,23,42,.06);
  font-size: 14px; word-break: break-all;
}
.ld-stat-tips blockquote a { color: var(--ld-accent); }

@media (max-width: 768px) {
  .ld-stat-chart__canvas { height: 240px; }
}

/* Блок клиник из района метро (добор на странице метро, новый дизайн).
   Заголовок использует общие классы дизайн-системы: .ld-section__head--inline +
   .ld-section__kicker/__title/__more (см. секции «Отзывы»/«Сеть клиник»). */
.ld-listing-district { margin-top: 28px; }

/* Перелинковка (метро района / район метро) после SEO-текста.
   Простые синие ссылки (по дизайн-системе), без заголовков и «коробок» -
   аккуратно, чтобы не выделялись. */
.ld-listing-navlinks-section { padding: 12px 0 0; }
.ld-navlinks {
  display: flex; flex-wrap: wrap; gap: 6px 18px;
}
.ld-navlink {
  font-size: 14px; color: var(--ld-accent); text-decoration: none;
}
.ld-navlink:hover { text-decoration: underline; }
.ld-navlink__count {
  color: #94A3B8; font-size: 13px; font-variant-numeric: tabular-nums;
}

/* ============================================================
   ХАБ КАТАЛОГА КЛИНИК (/{city}/kliniki?ui=new).
   Макет: design Like Doctor/Клиники Москвы - редизайн.html (ld-rd-hub.jsx).
   Палитра RD: ink #0E1726, muted #5E6B82, faint #93A0B5,
   line rgba(14,23,38,.09), alt #F3F6FB, card #fff, accent #3B82F6.
   ============================================================ */
.ld-hub-hero { padding: 26px 0 2px; }
.ld-hub-hero__h1 {
  margin: 0; font-size: clamp(30px, 4vw, 46px); line-height: 1.04;
  font-weight: 800; color: #0E1726; letter-spacing: -0.03em;
}
.ld-hub-hero__intro {
  margin: 16px 0 0; font-size: 16.5px; line-height: 1.6; color: #5E6B82; max-width: 720px;
}

/* CTA-кнопка в hero (например, «Разместить вакансию») */
.ld-hub-cta {
  display: inline-flex; align-items: center; gap: 8px;
  margin-top: 18px; padding: 11px 18px; border-radius: 12px;
  background: var(--ld-accent); color: #fff;
  font-size: 14px; font-weight: 700; text-decoration: none;
  box-shadow: 0 6px 16px rgba(59,130,246,.25);
  transition: background .15s, box-shadow .15s, transform .05s;
}
.ld-hub-cta:hover { background: #2563EB; color: #fff; box-shadow: 0 8px 20px rgba(59,130,246,.32); }
.ld-hub-cta:active { transform: translateY(1px); }
.ld-hub-cta svg { flex: none; }

/* Счётчик результатов в hero (например, «Найдено N вакансий») */
.ld-hub-hero__count { margin: 14px 0 0; font-size: 15px; color: #5E6B82; }
.ld-hub-hero__count b { color: #0F172A; font-weight: 700; }

/* Ряд чипсов (дочерние специальности на subpage) */
.ld-chips { display: flex; flex-wrap: wrap; gap: 8px; }

/* Заголовок месяца в списке мероприятий */
.ld-month-head {
  margin: 22px 0 12px; font-size: 17px; font-weight: 700; color: #0F172A;
}
.ld-month-head:first-child { margin-top: 4px; }

/* Обёртка легаси-списка (мероприятия/вакансии) внутри redesign-страницы */
.ld-legacy-list { margin: 0; }

/* Фильтр */
.ld-hub-filters { padding: 26px 0 0; }
.ld-hub-filter-card {
  background: #fff; border: 1px solid rgba(14,23,38,.09); border-radius: 18px;
  padding: 18px; box-shadow: 0 1px 2px rgba(14,23,38,.04), 0 8px 24px rgba(14,23,38,.04);
}
.ld-hub-filter-grid {
  display: grid; grid-template-columns: 1.4fr 1fr 1fr auto; gap: 12px; align-items: stretch;
}
@media (max-width: 900px) { .ld-hub-filter-grid { grid-template-columns: 1fr; } }

.ld-hub-select { position: relative; }
.ld-hub-select.is-locked { opacity: .55; }
.ld-hub-select__btn {
  width: 100%; height: 58px; padding: 0 16px; cursor: pointer;
  background: #fff; border-radius: 13px; border: 1px solid rgba(14,23,38,.09);
  font-family: inherit; display: flex; align-items: center; gap: 12px; text-align: left;
  transition: border-color .15s, box-shadow .15s;
}
.ld-hub-select.is-locked .ld-hub-select__btn { background: #F3F6FB; cursor: not-allowed; }
.ld-hub-select.is-open .ld-hub-select__btn { border-color: var(--ld-accent); box-shadow: 0 0 0 3px rgba(59,130,246,.12); }
.ld-hub-select__icon { flex: 0 0 auto; display: grid; place-items: center; }
.ld-hub-select__main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.ld-hub-select__label {
  font-size: 11px; font-weight: 700; color: #93A0B5; text-transform: uppercase; letter-spacing: .06em;
}
.ld-hub-select__value {
  font-size: 14.5px; font-weight: 700; color: #0E1726;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ld-hub-select__value--empty { color: #5E6B82; }
.ld-hub-select.is-locked .ld-hub-select__value { color: #93A0B5; }
.ld-hub-select__chev { flex: 0 0 auto; transition: transform .15s; }
.ld-hub-select.is-open .ld-hub-select__chev { transform: rotate(180deg); }
.ld-hub-select__panel {
  display: none; position: absolute; top: calc(100% + 8px); left: 0; right: 0; z-index: 30;
  background: #fff; border-radius: 13px; padding: 6px; max-height: 340px; overflow-y: auto;
  border: 1px solid rgba(14,23,38,.09); box-shadow: 0 20px 44px rgba(14,23,38,.14);
}
.ld-hub-select.is-open .ld-hub-select__panel { display: block; }
.ld-hub-select__opt {
  display: block; width: 100%; text-align: left; padding: 11px 12px; border: 0; cursor: pointer;
  border-radius: 9px; background: transparent; font-family: inherit; font-size: 14.5px;
  font-weight: 500; color: #33405A;
}
.ld-hub-select__opt:hover { background: #F3F6FB; }

.ld-hub-filter-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  height: 58px; padding: 0 26px; border-radius: 13px; text-decoration: none;
  background: var(--ld-accent); color: #fff; font-size: 15px; font-weight: 700; white-space: nowrap;
  box-shadow: 0 6px 16px rgba(59,130,246,.28); transition: all .15s;
}
.ld-hub-filter-btn.is-locked {
  background: #F3F6FB; color: #93A0B5; box-shadow: none; pointer-events: none;
}
.ld-hub-filter-hint {
  margin-top: 12px; font-size: 13.5px; color: #5E6B82;
  display: inline-flex; align-items: center; gap: 7px;
}

/* Секции */
.ld-hub-section { padding: 44px 0 0; }
.ld-hub-section--last { padding-bottom: 8px; }
.ld-hub-head__title { margin: 0; font-size: clamp(22px, 3vw, 30px); font-weight: 800; color: #0E1726; letter-spacing: -0.025em; }
.ld-hub-head__sub { margin: 8px 0 0; font-size: 15.5px; color: #5E6B82; }

/* Популярные типы */
.ld-hub-popular { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 18px; }
@media (max-width: 900px) { .ld-hub-popular { grid-template-columns: 1fr; } }
.ld-hub-pop-card {
  display: flex; flex-direction: column; gap: 16px; text-decoration: none;
  background: #fff; border: 1px solid rgba(14,23,38,.09); border-radius: 18px; padding: 22px;
  box-shadow: 0 1px 2px rgba(14,23,38,.04), 0 8px 24px rgba(14,23,38,.05);
  transition: transform .18s, box-shadow .18s, border-color .18s;
}
.ld-hub-pop-card:hover {
  transform: translateY(-3px); box-shadow: 0 16px 40px rgba(14,23,38,.10);
  border-color: rgba(59,130,246,.5);
}
.ld-hub-pop-card__top { display: flex; align-items: center; justify-content: space-between; }
.ld-hub-pop-card__icon { width: 50px; height: 50px; border-radius: 14px; background: rgba(59,130,246,.10); display: grid; place-items: center; }
.ld-hub-pop-card__count { font-size: 30px; font-weight: 800; color: #0E1726; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.ld-hub-pop-card__name { font-size: 18px; font-weight: 800; color: #0E1726; letter-spacing: -0.01em; line-height: 1.25; }
.ld-hub-pop-card__more { margin-top: auto; display: inline-flex; align-items: center; gap: 7px; font-size: 14px; font-weight: 700; color: var(--ld-accent); }

/* Дерево типов (2 колонки masonry) */
.ld-hub-tree { margin-top: 20px; columns: 2 380px; column-gap: 16px; }
@media (max-width: 760px) { .ld-hub-tree { columns: 1; } }
.ld-hub-tree__card {
  break-inside: avoid; margin-bottom: 16px; display: inline-block; width: 100%;
  background: #fff; border: 1px solid rgba(14,23,38,.09); border-radius: 16px;
  padding: 18px 20px; box-shadow: 0 1px 2px rgba(14,23,38,.04);
}
.ld-hub-tree__group {
  display: flex; align-items: center; gap: 12px; text-decoration: none; padding-bottom: 12px;
}
.ld-hub-tree__group.has-children { margin-bottom: 6px; border-bottom: 1px solid rgba(14,23,38,.06); }
.ld-hub-tree__group-icon { width: 38px; height: 38px; border-radius: 11px; flex: 0 0 auto; background: rgba(59,130,246,.10); display: grid; place-items: center; }
.ld-hub-tree__group-name { flex: 1; font-size: 16.5px; font-weight: 800; color: var(--ld-accent); letter-spacing: -0.01em; }
.ld-hub-tree__group-count { font-size: 13px; font-weight: 800; color: var(--ld-accent); font-variant-numeric: tabular-nums; }
.ld-hub-tree__row {
  display: flex; align-items: baseline; gap: 10px; text-decoration: none; padding: 8px 0;
  transition: opacity .15s;
}
.ld-hub-tree__row:hover { opacity: .7; }
.ld-hub-tree__row--sub { padding: 6px 0 6px 18px; border-left: 1px solid rgba(14,23,38,.09); margin-left: 7px; }
.ld-hub-tree__row-name { flex: 1; font-size: 14.5px; font-weight: 600; color: var(--ld-accent); line-height: 1.35; }
.ld-hub-tree__row--sub .ld-hub-tree__row-name { font-size: 13.5px; font-weight: 500; }
.ld-hub-tree__row-count { flex: 0 0 auto; font-size: 12.5px; font-weight: 700; color: #93A0B5; font-variant-numeric: tabular-nums; background: #F3F6FB; padding: 2px 8px; border-radius: 999px; }

/* Направления */
.ld-hub-dirs { margin-top: 18px; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.ld-hub-dir {
  display: flex; align-items: center; gap: 10px; text-decoration: none; padding: 13px 16px;
  border-radius: 12px; background: #fff; border: 1px solid rgba(14,23,38,.09);
  font-size: 14.5px; font-weight: 600; color: var(--ld-accent); transition: border-color .14s, opacity .14s;
}
.ld-hub-dir:hover { border-color: var(--ld-accent); opacity: .75; }
.ld-hub-dir__name { flex: 1; }

/* Городская страница (/{city}?ui=new) - на компонентах хаба. */
.ld-city-note {
  display: inline-flex; align-items: flex-start; gap: 8px; margin-top: 14px;
  padding: 12px 16px; border-radius: 12px; background: #F3F6FB;
  font-size: 14.5px; line-height: 1.55; color: #33405A; max-width: 720px;
}
.ld-city-note svg { flex: 0 0 auto; margin-top: 2px; }
/* Сетка разделов: адаптивная, чтобы 5 карточек ложились аккуратно */
.ld-city-nav { grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); }

/* Админ-ссылки у заголовка города (редизайн) */
.ld-city-admin { display: inline-flex; align-items: center; gap: 12px; margin-left: 10px; vertical-align: middle; font-size: 18px; }
.ld-city-admin a { color: #B91C1C; }

/* Электронная регистратура (/{city}/elektronnaya-registratura?ui=new) */
.ld-ereg-cta {
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  flex-wrap: wrap; padding: 24px 26px;
}
.ld-ereg-cta__title { font-size: 19px; font-weight: 800; color: #0E1726; }
.ld-ereg-cta__sub { margin: 8px 0 0; font-size: 14.5px; line-height: 1.6; color: #5E6B82; max-width: 640px; }
.ld-ereg-link { color: var(--ld-accent); }
.ld-ereg-btn {
  flex: 0 0 auto; display: inline-flex; align-items: center; gap: 9px;
  height: 52px; padding: 0 24px; border-radius: 13px; text-decoration: none;
  background: var(--ld-accent); color: #fff; font-size: 15px; font-weight: 700; white-space: nowrap;
  box-shadow: 0 6px 16px rgba(59,130,246,.28); transition: box-shadow .15s, transform .15s;
}
.ld-ereg-btn:hover { color: #fff; transform: translateY(-1px); box-shadow: 0 10px 24px rgba(59,130,246,.34); }
.ld-ereg-districts { margin-top: 16px; display: flex; flex-wrap: wrap; gap: 8px; }
.ld-ereg-district {
  display: inline-flex; align-items: center; padding: 8px 14px; border-radius: 999px;
  background: #fff; box-shadow: inset 0 0 0 1px rgba(14,23,38,.09);
  font-size: 14px; font-weight: 600; color: #33405A;
}
.ld-ereg-reviews { margin-top: 18px; }

/* Главная (/?ui=new) - на компонентах редизайна */
.ld-home-cities { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px; }
.ld-home-city {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  text-decoration: none; padding: 14px 18px; border-radius: 12px;
  background: #fff; border: 1px solid rgba(14,23,38,.09);
  font-size: 15.5px; font-weight: 700; color: #0E1726; transition: border-color .14s, color .14s;
}
.ld-home-city:hover { border-color: var(--ld-accent); color: var(--ld-accent); }

.ld-home-geo { margin-top: 20px; columns: 3 320px; column-gap: 16px; }
@media (max-width: 700px) { .ld-home-geo { columns: 1; } }
.ld-home-geo__card {
  break-inside: avoid; margin-bottom: 16px; display: inline-block; width: 100%;
  background: #fff; border: 1px solid rgba(14,23,38,.09); border-radius: 16px; padding: 18px 20px;
  box-shadow: 0 1px 2px rgba(14,23,38,.04);
}
.ld-home-geo__country {
  font-size: 16.5px; font-weight: 800; color: #0E1726; letter-spacing: -0.01em;
  padding-bottom: 12px; margin-bottom: 10px; border-bottom: 1px solid rgba(14,23,38,.06);
}
.ld-home-geo__region { margin-bottom: 14px; }
.ld-home-geo__region:last-child { margin-bottom: 0; }
.ld-home-geo__region-name { font-size: 14.5px; font-weight: 700; color: #33405A; margin-bottom: 6px; }
.ld-home-geo__region-name a { color: #33405A; text-decoration: none; }
.ld-home-geo__region-name a:hover { color: var(--ld-accent); }
.ld-home-geo__cities { display: flex; flex-wrap: wrap; gap: 4px 14px; }
.ld-home-geo__city { font-size: 14px; white-space: nowrap; }
.ld-home-geo__city a { color: var(--ld-accent); text-decoration: none; }
.ld-home-geo__city a:hover { text-decoration: underline; }
.ld-home-geo__admin { margin-top: 16px; display: flex; gap: 16px; }
.ld-home-geo__admin a { font-size: 14px; }

/* Админ-форма (редизайн): /admin/city?id=N&ui=new и др. */
.ld-admin-flash { margin: 14px 0 0; padding: 12px 16px; border-radius: 12px; font-size: 14px; }
.ld-admin-flash--ok  { background: #F0FDF4; color: #15803D; }
.ld-admin-flash--err { background: #FEF2F2; color: #B91C1C; }
.ld-adminf { padding: 8px 24px 24px; margin-top: 16px; max-width: 720px; }
.ld-adminf__group {
  font-size: 12px; font-weight: 800; color: #93A0B5; text-transform: uppercase;
  letter-spacing: .06em; margin: 22px 0 10px; padding-top: 16px;
  border-top: 1px solid rgba(14,23,38,.06);
}
.ld-adminf__group:first-child { border-top: 0; padding-top: 0; margin-top: 6px; }
.ld-adminf__row { margin-bottom: 14px; }
.ld-adminf__label { display: block; font-size: 13px; font-weight: 700; color: #33405A; margin-bottom: 6px; }
.ld-adminf__input, .ld-adminf__select {
  width: 100%; height: 46px; padding: 0 14px; border-radius: 11px;
  border: 1px solid rgba(14,23,38,.12); background: #fff;
  font-family: inherit; font-size: 15px; color: #0E1726; outline: none;
  transition: border-color .15s, box-shadow .15s;
}
.ld-adminf__input:focus, .ld-adminf__select:focus {
  border-color: var(--ld-accent); box-shadow: 0 0 0 3px rgba(59,130,246,.14);
}
.ld-adminf__err { color: #B91C1C; font-size: 12.5px; margin-top: 5px; }
.ld-adminf__actions { margin-top: 24px; }
.ld-adminf__submit {
  display: inline-flex; align-items: center; height: 48px; padding: 0 28px;
  border: 0; border-radius: 12px; cursor: pointer; background: var(--ld-accent);
  color: #fff; font-family: inherit; font-size: 15px; font-weight: 700;
  box-shadow: 0 6px 16px rgba(59,130,246,.28);
}
.ld-adminf__submit:hover { box-shadow: 0 10px 24px rgba(59,130,246,.34); }
/* Select2 в редизайн-форме */
.ld-adminf .select2-container--default .select2-selection--single {
  height: 46px; border-radius: 11px; border: 1px solid rgba(14,23,38,.12);
}
.ld-adminf .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 44px; padding-left: 12px; }
.ld-adminf .select2-container--default .select2-selection--single .select2-selection__arrow { height: 44px; }

/* Админ-список (улицы и т.п.) - редизайн */
.ld-admin-list { padding: 6px 8px; margin-top: 16px; max-width: 720px; }
.ld-admin-list__row {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 12px 14px; border-top: 1px solid rgba(14,23,38,.06);
}
.ld-admin-list__row:first-child { border-top: 0; }
.ld-admin-list__name { font-size: 15px; font-weight: 600; color: #0E1726; }
.ld-admin-list__hidden { color: #B45309; margin-left: 8px; font-size: 13px; }
.ld-admin-list__edit { color: #B91C1C; flex: 0 0 auto; }
.ld-admin-list__empty { padding: 18px 14px; color: #93A0B5; font-size: 14px; }
/* Кнопка «Отмена» в админ-форме */
.ld-adminf__actions { display: flex; align-items: center; gap: 14px; }
.ld-adminf__cancel { font-size: 14px; font-weight: 600; color: #5E6B82; text-decoration: none; }
.ld-adminf__cancel:hover { color: var(--ld-accent); }

/* ============================================================
   Админ-лента (редизайн, ?ui=new) - 2 колонки: центр + правый фильтр.
   Эталона нет; стиль согласован с .ld-section / .ld-card токенами.
   Карточки модерации внутри .ld-adminlenta__main - легаси (main.css).
   ============================================================ */
.ld-adminlenta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 28px;
  align-items: start;
  padding-bottom: 48px;
}
.ld-adminlenta__main { min-width: 0; }
.ld-adminlenta__empty {
  padding: 40px 20px; text-align: center;
  color: #93A0B5; font-size: 15px;
  background: #fff; border: 1px solid var(--ld-line); border-radius: 14px;
}

/* Правый фильтр - sticky-карточка */
.ld-adminlenta__aside { position: sticky; top: 20px; }
.ld-alf {
  background: #fff;
  border: 1px solid var(--ld-line);
  border-radius: 16px;
  padding: 14px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, .04);
}
.ld-alf__title {
  font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase;
  color: #93A0B5; padding: 6px 10px 8px;
}
.ld-alf__nav { display: flex; flex-direction: column; gap: 2px; }
.ld-alf__link {
  display: flex; align-items: center; justify-content: space-between; gap: 10px;
  padding: 9px 10px; border-radius: 10px;
  font-size: 14px; font-weight: 600; color: #0F172A; text-decoration: none;
  transition: background .15s, color .15s;
}
.ld-alf__link:hover { background: #F3F6FB; color: var(--ld-accent); }
.ld-alf__link.is-active { background: rgba(59, 130, 246, .1); color: var(--ld-accent); }
.ld-alf__link--sub { padding-left: 24px; font-weight: 500; color: #5E6B82; font-size: 13px; }
.ld-alf__label { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ld-alf__count {
  flex: none; min-width: 22px; height: 20px; padding: 0 6px;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--ld-accent); color: #fff;
  font-size: 12px; font-weight: 700; border-radius: 999px;
  font-variant-numeric: tabular-nums;
}
.ld-alf__link.is-active .ld-alf__count { background: var(--ld-accent); }
.ld-alf__sep { height: 1px; background: var(--ld-line); margin: 10px 4px; }

/* Мобильный: правый блок уходит вниз под ленту */
@media (max-width: 900px) {
  .ld-adminlenta { grid-template-columns: 1fr; gap: 18px; }
  .ld-adminlenta__aside { position: static; order: 2; }
  .ld-adminlenta__main { order: 1; }
}

/* Под-страницы админ-ленты: спамеры / лог / интервью / комментарии */
.ld-alplain { padding: 6px; }
.ld-alrow {
  display: flex; align-items: center; gap: 12px;
  padding: 11px 12px; border-radius: 10px;
}
.ld-alrow:hover { background: #F3F6FB; }
.ld-allink { font-size: 14px; font-weight: 600; color: var(--ld-accent); text-decoration: none; }
.ld-allink:hover { text-decoration: underline; }
.ld-aldim { font-size: 13px; color: #93A0B5; }

/* Карточка спамера: легаси-html врача внутри + панель действий сверху */
.ld-alcard {
  position: relative;
  background: #fff; border: 1px solid var(--ld-line); border-radius: 14px;
  padding: 14px; margin-bottom: 14px;
}
.ld-alcard__actions {
  display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px;
  padding-bottom: 12px; border-bottom: 1px solid var(--ld-line);
}
.ld-albtn {
  display: inline-flex; align-items: center;
  padding: 6px 12px; border-radius: 8px;
  font-size: 13px; font-weight: 600; text-decoration: none;
  color: #0F172A; background: #F3F6FB; border: 1px solid var(--ld-line);
  transition: background .15s, color .15s, border-color .15s;
}
.ld-albtn:hover { background: #E8EEF7; color: var(--ld-accent); }
.ld-albtn--danger { color: #B91C1C; background: #FEF2F2; border-color: rgba(185,28,28,.18); }
.ld-albtn--danger:hover { background: #FEE2E2; color: #991B1B; }
.ld-albtn--warn { color: #B45309; background: #FFFBEB; border-color: rgba(180,83,9,.18); }
.ld-albtn--warn:hover { background: #FEF3C7; color: #92400E; }

/* Таблица лога модератора */
.ld-altable { width: 100%; border-collapse: collapse; font-size: 14px; }
.ld-altable thead th {
  text-align: left; padding: 12px 14px;
  font-size: 12px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase;
  color: #93A0B5; background: #F8FAFC; border-bottom: 1px solid var(--ld-line);
  position: sticky; top: 0; z-index: 1;
}
.ld-altable tbody td { padding: 11px 14px; border-bottom: 1px solid var(--ld-line); color: #0F172A; vertical-align: top; }
.ld-altable tbody tr:last-child td { border-bottom: 0; }
.ld-altable tbody tr:hover td { background: #F8FAFC; }
.ld-altable a { color: var(--ld-accent); text-decoration: none; }
.ld-altable a:hover { text-decoration: underline; }
.ld-altable__date { white-space: nowrap; color: #5E6B82; font-variant-numeric: tabular-nums; }
.ld-altable__empty { text-align: center; color: #93A0B5; padding: 28px 14px; }

/* Статья (страница /a<id>) - типографика контента + подзаголовки */
.ld-article-wrap { max-width: 860px; }
.ld-article-subhead {
  font-size: 13px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase;
  color: #93A0B5; margin: 0 0 14px;
}
.ld-article { font-size: 16px; line-height: 1.7; color: #1E293B; }
.ld-article #article_block_part > :first-child { margin-top: 0; }
.ld-article p { margin: 0 0 16px; }
.ld-article h2 { font-size: 22px; font-weight: 800; color: #0F172A; margin: 28px 0 12px; line-height: 1.25; }
.ld-article h3 { font-size: 18px; font-weight: 700; color: #0F172A; margin: 22px 0 10px; }
.ld-article img { max-width: 100%; height: auto; border-radius: 12px; }
.ld-article a { color: var(--ld-accent); }
.ld-article ul, .ld-article ol { margin: 0 0 16px; padding-left: 22px; }
.ld-article li { margin-bottom: 6px; }
.ld-article blockquote {
  margin: 18px 0; padding: 12px 18px; border-left: 3px solid var(--ld-accent);
  background: #F8FAFC; border-radius: 0 10px 10px 0; color: #475569;
}
.ld-article .nocopy { margin-top: 22px; font-size: 13px; color: #93A0B5; }

/* Страница акции (/s<id>) - бейдж типа + блок фактов */
.ld-action-badge {
  display: inline-flex; align-items: center;
  padding: 6px 14px; border-radius: 999px;
  background: rgba(59,130,246,.1); color: var(--ld-accent);
  font-size: 14px; font-weight: 700;
}
.ld-action-facts { display: flex; flex-direction: column; gap: 14px; }
.ld-action-fact { display: flex; align-items: flex-start; gap: 10px; font-size: 15px; color: #1E293B; line-height: 1.5; }
.ld-action-fact svg { flex: none; margin-top: 2px; }
.ld-action-fact b { font-weight: 700; color: #0F172A; }
.ld-action-fact s { color: #93A0B5; }

/* Картинка акции на странице /s<id> */
.ld-action-photo { margin-bottom: 20px; }
.ld-action-photo img {
  width: 100%; max-height: 420px; object-fit: cover;
  border-radius: 16px; display: block;
  border: 1px solid var(--ld-line);
}

/* Счётчик рядом с заголовком секции (например, число вузов) */
.ld-section__count {
  display: inline-block; margin-left: 6px;
  font-size: 16px; font-weight: 700; color: #93A0B5;
  font-variant-numeric: tabular-nums;
}

/* Поиск медучреждений (/<city>/list, редактор) */
.ld-list-search__grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px;
}
.ld-list-search__input {
  width: 100%; padding: 10px 12px; font-size: 14px; font-family: inherit;
  color: #0F172A; background: #fff;
  border: 1px solid var(--ld-line); border-radius: 10px;
  transition: border-color .15s, box-shadow .15s;
}
.ld-list-search__input:focus {
  outline: none; border-color: var(--ld-accent);
  box-shadow: 0 0 0 3px rgba(59,130,246,.12);
}

/* Кнопка вкл/выкл рекламной кампании (рекламный кабинет) */
.ld-ads-toggle {
  flex: none; display: inline-flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; border-radius: 8px;
  color: var(--ld-accent); background: #F3F6FB; text-decoration: none;
  transition: background .15s, color .15s;
}
.ld-ads-toggle:hover { background: #E8EEF7; color: #2563EB; }

/* Фильтр по городам в списке рекламных кампаний */
.ld-ads-filter { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.ld-ads-filter__label { font-size: 14px; font-weight: 600; color: #5E6B82; flex: none; }
.ld-ads-filter .ld-form-select { max-width: 280px; }

/* Строки настроек (admin settings / koeff) */
.ld-setrows { display: flex; flex-direction: column; gap: 14px; }
.ld-setrow {
  display: flex; align-items: center; gap: 16px;
  padding-bottom: 14px; border-bottom: 1px solid var(--ld-line);
}
.ld-setrow:last-child { border-bottom: 0; padding-bottom: 0; }
.ld-setrow__labelwrap { flex: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ld-setrow__label { font-size: 14px; font-weight: 600; color: #0F172A; flex: 1; }
.ld-setrow__hint { font-size: 12.5px; color: #93A0B5; line-height: 1.4; }
.ld-setrow__input {
  flex: none; width: 160px; padding: 9px 12px; font-size: 14px; font-family: inherit;
  color: #0F172A; background: #fff; border: 1px solid var(--ld-line); border-radius: 10px;
  transition: border-color .15s, box-shadow .15s;
}
.ld-setrow__input:focus { outline: none; border-color: var(--ld-accent); box-shadow: 0 0 0 3px rgba(59,130,246,.12); }
@media (max-width: 600px) {
  .ld-setrow { flex-direction: column; align-items: stretch; gap: 6px; }
  .ld-setrow__input { width: 100%; }
}

/* ============================================================
   Профиль пользователя (redesign, /id<id>?ui=new)
   ============================================================ */
.ld-tnum { font-variant-numeric: tabular-nums; }

.ld-uprofile {
  display: grid; grid-template-columns: 330px minmax(0, 1fr);
  gap: 28px; align-items: start; padding: 20px 0 40px;
}
.ld-uprofile__side { display: flex; flex-direction: column; gap: 16px; position: sticky; top: 84px; }
.ld-uprofile__main { min-width: 0; display: flex; flex-direction: column; gap: 28px; }
.ld-uprofile__head { margin-bottom: 16px; }
.ld-uprofile__h2 { margin: 0; font-size: 22px; font-weight: 800; color: #0F172A; letter-spacing: -0.02em; }
.ld-uprofile__count { font-size: 15px; font-weight: 700; color: #94A3B8; margin-left: 8px; }
.ld-uprofile__list { display: flex; flex-direction: column; gap: 14px; }
.ld-uprofile__empty { padding: 28px; text-align: center; color: #64748B; font-size: 15px; }

/* Иконки сайдбара */
.ld-up-ic { flex: 0 0 auto; }
.ld-up-ic--faint { color: #94A3B8; }
.ld-up-ic--muted { color: #475569; }
.ld-up-ic--accent { color: var(--ld-accent, #3B82F6); }
.ld-up-ic--bad { color: #DC2626; }

/* Карточка личности */
.ld-up-card { padding: 0; overflow: hidden; }
.ld-up-id { display: flex; gap: 13px; align-items: center; padding: 20px 18px 16px; }
.ld-up-id__avatar {
  width: 52px; height: 52px; border-radius: 50%; flex: 0 0 auto;
  background: linear-gradient(150deg, #3B82F6, #1D4ED8); color: #fff;
  display: grid; place-items: center; font-size: 18px; font-weight: 800; object-fit: cover;
}
.ld-up-id__avatar--photo { background: none; }
.ld-up-id__main { min-width: 0; }
.ld-up-id__name { font-size: 16px; font-weight: 800; color: #0F172A; letter-spacing: -0.01em; line-height: 1.25; }
.ld-up-id__role {
  display: inline-flex; align-items: center; font-size: 11.5px; font-weight: 800; color: #475569;
  background: #F1F5F9; padding: 3px 9px; border-radius: 999px; margin-top: 6px;
}
.ld-up-meta { padding: 0 18px 16px; display: flex; flex-direction: column; gap: 8px; }
.ld-up-meta__row { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; color: #475569; }
.ld-up-dot { width: 7px; height: 7px; border-radius: 50%; background: #15803D; flex: 0 0 auto; margin: 0 3px; }
.ld-up-meta__reg { font-size: 12.5px; color: #94A3B8; line-height: 1.55; }
.ld-up-chip {
  display: inline-flex; align-items: center; gap: 5px; color: #0F172A; background: #F1F5F9;
  padding: 2px 8px; border-radius: 8px; font-size: 12px; font-weight: 700; white-space: nowrap;
}
.ld-up-vk { color: var(--ld-accent, #3B82F6); text-decoration: none; }
.ld-up-vk:hover { text-decoration: underline; }

/* Меню-переключатель */
.ld-up-nav { border-top: 1px solid rgba(15,23,42,.06); padding: 8px; display: flex; flex-direction: column; gap: 2px; }
.ld-up-nav__btn {
  display: flex; align-items: center; gap: 11px; padding: 10px 12px; border-radius: 11px; border: 0;
  cursor: pointer; font-family: inherit; font-size: 14px; font-weight: 700; text-align: left;
  background: transparent; color: var(--ld-accent, #3B82F6); width: 100%; transition: background .12s;
}
.ld-up-nav__btn:hover { background: #F1F5F9; }
.ld-up-nav__btn.is-active { background: rgba(59,130,246,.10); }
.ld-up-nav__btn span { white-space: nowrap; }
.ld-up-nav__n { margin-left: auto; font-size: 12.5px; font-weight: 800; color: #94A3B8; font-variant-numeric: tabular-nums; }
/* Кнопка «Редактировать профиль» в сайдбаре */
.ld-up-edit-btn {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  margin: 12px 0 4px; padding: 10px 12px; border-radius: 11px;
  border: 1.5px solid var(--ld-accent, #3B82F6); background: transparent;
  color: var(--ld-accent, #3B82F6); font-size: 14px; font-weight: 700;
  text-decoration: none; transition: background .12s, color .12s;
}
.ld-up-edit-btn:hover { background: var(--ld-accent, #3B82F6); color: #fff; }

/* Блоки сайдбара (публикации/статистика/ссылки) */
.ld-up-block { padding: 8px 6px 10px; }
.ld-up-block__title { font-size: 11.5px; font-weight: 800; color: #94A3B8; letter-spacing: .06em; text-transform: uppercase; padding: 8px 12px 4px; }
.ld-up-block__list { display: flex; flex-direction: column; gap: 2px; }
.ld-up-block__item {
  display: flex; align-items: center; gap: 11px; padding: 10px 12px; border-radius: 11px;
  text-decoration: none; font-size: 14px; font-weight: 700; color: var(--ld-accent, #3B82F6); transition: background .12s;
}
.ld-up-block__item:hover { background: #F1F5F9; }
.ld-up-stats { display: flex; flex-direction: column; }
.ld-up-stats__row { display: flex; align-items: center; gap: 12px; padding: 11px 12px; border-top: 1px solid rgba(15,23,42,.06); }
.ld-up-stats__row:first-child { border-top: 0; }
.ld-up-stats__ic { width: 34px; height: 34px; border-radius: 10px; flex: 0 0 auto; background: #F1F5F9; display: grid; place-items: center; }
.ld-up-stats__l { font-size: 13.5px; color: #475569; flex: 1; min-width: 0; }
.ld-up-stats__n { font-size: 18px; font-weight: 800; color: #0F172A; font-variant-numeric: tabular-nums; letter-spacing: -0.01em; }

/* Бейджи доверия/спама */
.ld-up-badge { display: flex; gap: 12px; align-items: flex-start; border-radius: 18px; padding: 16px 18px; }
.ld-up-badge--ok  { background: rgba(59,130,246,.06); }
.ld-up-badge--bad { background: #FEF2F2; border: 1px solid rgba(220,38,38,.20); }
.ld-up-badge__ic { width: 38px; height: 38px; border-radius: 10px; background: #fff; flex: 0 0 auto; display: grid; place-items: center; box-shadow: 0 1px 3px rgba(14,23,38,.1); }
.ld-up-badge__title { font-size: 14px; font-weight: 800; color: #0F172A; }
.ld-up-badge--bad .ld-up-badge__title { color: #DC2626; }
.ld-up-badge__text { font-size: 13px; color: #475569; margin-top: 3px; line-height: 1.45; }

/* Доп. элементы карточки отзыва (фото/действия/клиника) для профиля */
.ld-review-card2__photos { margin-top: 14px; display: flex; gap: 10px; flex-wrap: wrap; }
.ld-review-card2__photo { width: 132px; height: 96px; object-fit: cover; border-radius: 12px; border: 1px solid rgba(15,23,42,.08); cursor: zoom-in; }
.ld-review-card2__clinic-link, .ld-review-card2__clinic { color: var(--ld-accent, #3B82F6); text-decoration: none; font-weight: 600; }
.ld-review-card2__clinic-link:hover { text-decoration: underline; }
.ld-review-card2__actions { margin-top: 16px; padding-top: 14px; border-top: 1px solid rgba(14,23,38,.06); display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.ld-review-card2__action { display: inline-flex; align-items: center; gap: 7px; font-size: 13.5px; font-weight: 600; color: #5E6B82; font-family: inherit; }
/* Без transition на color: при transition Chrome «залипал» на старом цвете и не
   доводил до красного/синего при навешивании .is-active (как с фоном кнопки «Отправить»). */
button.ld-review-card2__action { border: 0; background: transparent; padding: 4px 2px; cursor: pointer; }
button.ld-review-card2__action:hover { color: #33405A; }
.ld-rc-comment-btn.is-active { color: var(--ld-accent, #3B82F6); }
.ld-rc-like.is-active { color: #E11D48; }   /* лайк активен - ало-красный палец вверх */
.ld-rc-like .ld-rc-like__icon { transition: fill .12s; }
.ld-rc-like.is-active .ld-rc-like__icon { color: #E11D48; }
.ld-review-card2__action.is-loading { opacity: .55; pointer-events: none; }
.ld-review-card2__views { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: #93A0B5; }

/* Инлайн-форма комментария к отзыву */
.ld-rc-comment { margin-top: 14px; display: flex; gap: 12px; align-items: flex-start; animation: ldFaqReviewIn .16s ease; }
.ld-rc-comment[hidden] { display: none; }
.ld-rc-comment__avatar { width: 38px; height: 38px; border-radius: 50%; flex: 0 0 auto; display: grid; place-items: center; background: #F1F5F9; color: #475569; font-size: 13px; font-weight: 800; object-fit: cover; }
.ld-rc-comment__body { flex: 1; min-width: 0; }
.ld-rc-comment__textarea { width: 100%; box-sizing: border-box; resize: vertical; min-height: 76px; font-family: inherit; font-size: 14.5px; line-height: 1.5; color: #0E1726; background: #fff; border: 1px solid rgba(14,23,38,.09); border-radius: 12px; padding: 11px 13px; outline: none; transition: border-color .15s, box-shadow .15s; }
.ld-rc-comment__textarea:focus { border-color: var(--ld-accent, #3B82F6); box-shadow: 0 0 0 3px rgba(59,130,246,.14); }
.ld-rc-comment__error { margin-top: 8px; font-size: 13px; font-weight: 600; color: #DC2626; }
.ld-rc-comment__foot { margin-top: 10px; display: flex; align-items: center; gap: 10px; }
/* Цвет меняется мгновенно (transition только на opacity): при transition на
   background-color Chrome «залипал» на сером disabled-цвете и не доводил до синего
   при включении кнопки. Эталон фейдит фон, но залипание хуже отсутствия фейда. */
.ld-rc-comment__send { border: 0; border-radius: 10px; font-family: inherit; font-size: 14px; font-weight: 700; padding: 10px 18px; cursor: pointer; color: #fff; background-color: #3B82F6; transition: opacity .15s; }
.ld-rc-comment__send:disabled { background-color: #93A0B5; opacity: .6; cursor: not-allowed; }
.ld-rc-comment__cancel { border: 0; background: transparent; cursor: pointer; font-family: inherit; font-size: 14px; font-weight: 600; color: #5E6B82; padding: 10px 6px; }

/* Карточка вопроса */
.ld-qcard { padding: 24px; }
.ld-qcard__top { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.ld-qcard__topic { font-size: 12px; font-weight: 800; color: var(--ld-accent, #3B82F6); letter-spacing: .03em; text-transform: uppercase; background: rgba(59,130,246,.08); padding: 3px 9px; border-radius: 7px; }
.ld-qcard__date { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: #94A3B8; font-variant-numeric: tabular-nums; }
.ld-qcard__patient { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: #475569; padding: 3px 10px; border-radius: 7px; background: #F1F5F9; }
.ld-qcard__title { margin: 0; font-size: 18px; font-weight: 800; color: #0F172A; line-height: 1.4; letter-spacing: -0.01em; }
.ld-qcard__answers { margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(15,23,42,.06); display: flex; flex-direction: column; gap: 16px; }
.ld-qcard__answer { display: flex; gap: 12px; align-items: flex-start; }
.ld-qcard__avatar { width: 40px; height: 40px; border-radius: 50%; flex: 0 0 auto; display: grid; place-items: center; background: #F1F5F9; color: #475569; font-size: 14px; font-weight: 800; object-fit: cover; }
.ld-qcard__answer-body { flex: 1; min-width: 0; }
.ld-qcard__answer-head { display: flex; align-items: flex-start; gap: 10px; }
.ld-qcard__answer-who { flex: 1; min-width: 0; }
.ld-qcard__answer-name { font-size: 14.5px; font-weight: 800; color: #0F172A; line-height: 1.3; }
/* Ссылка на профиль ответившего врача - синяя, без подчёркивания, подсветка на hover */
.ld-qcard__answer-link { color: var(--ld-accent, #3B82F6); text-decoration: none; }
.ld-qcard__answer-link:hover { color: #2563EB; }

/* ── Раздел «Мои клиники» профиля редактора (эталон ld-rd-editor-app.jsx) ── */
/* Сводка */
.ld-ed-overview { padding: 20px; display: grid; grid-template-columns: repeat(auto-fit, minmax(150px,1fr)); gap: 14px; }
.ld-ed-overview__tile { padding: 16px 18px; border-radius: 16px; background: #F3F6FB; }
.ld-ed-overview__ic { width: 30px; height: 30px; border-radius: 9px; background: #fff; display: grid; place-items: center; color: var(--ld-accent, #3B82F6); margin-bottom: 10px; }
.ld-ed-overview__n { font-size: 26px; font-weight: 800; color: #0E1726; letter-spacing: -0.02em; font-variant-numeric: tabular-nums; }
.ld-ed-overview__l { font-size: 12.5px; color: #5E6B82; margin-top: 2px; }
/* Список клиник */
.ld-ed-clinics { margin-top: 16px; display: flex; flex-direction: column; gap: 10px; }
.ld-ed-clinic-row { display: flex; align-items: center; gap: 14px; width: 100%; padding: 14px 16px; border-radius: 14px; cursor: pointer; font-family: inherit; text-align: left; background: #fff; border: 1px solid rgba(14,23,38,.09); transition: box-shadow .15s, border-color .15s; }
.ld-ed-clinic-row:hover { border-color: rgba(59,130,246,.45); box-shadow: 0 4px 16px rgba(14,23,38,.07); }
.ld-ed-clinic-row__logo { width: 48px; height: 48px; border-radius: 12px; object-fit: cover; flex: 0 0 auto; background: #F1F5F9; }
.ld-ed-clinic-row__logo--ph { display: grid; place-items: center; color: #94A3B8; }
.ld-ed-clinic-row__body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.ld-ed-clinic-row__name { font-size: 15px; font-weight: 800; color: #0E1726; letter-spacing: -0.01em; line-height: 1.35; }
.ld-ed-clinic-row__pos { display: inline-flex; align-items: center; margin-left: 8px; vertical-align: middle; padding: 3px 10px; border-radius: 999px; background: rgba(59,130,246,.10); color: var(--ld-accent, #3B82F6); font-size: 12px; font-weight: 800; white-space: nowrap; }
.ld-ed-clinic-row__addr { font-size: 13px; color: #93A0B5; line-height: 1.4; }
.ld-ed-clinic-row__aside { display: flex; align-items: center; gap: 12px; flex: 0 0 auto; }
.ld-ed-clinic-row__rating { display: inline-flex; align-items: center; gap: 5px; font-size: 13.5px; font-weight: 800; color: #0E1726; white-space: nowrap; }
.ld-ed-clinic-row__pending { font-size: 12px; font-weight: 700; color: #9A6B12; background: #FBF4E4; padding: 4px 10px; border-radius: 999px; white-space: nowrap; }
.ld-ed-clinic-row__chev { display: inline-flex; color: #93A0B5; }
/* Отзывы «Обратная связь» в workspace - отдельные карточки через общий шаблон _review_card */
.ld-ed-reviews__list { display: flex; flex-direction: column; gap: 16px; margin-top: 16px; }
/* «Заявить о новой клинике» - визард */
.ld-claim__steps { display: flex; align-items: center; gap: 8px; margin: -4px 0 16px; }
.ld-claim__step { font-size: 12.5px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: #93A0B5; }
.ld-claim__step.is-active { color: var(--ld-accent, #3B82F6); }
.ld-claim__sep { color: #CBD5E1; }
.ld-claim__card { padding: 24px; }
.ld-claim__lead, .ld-claim__hint { margin: 0 0 16px; font-size: 14.5px; color: #5E6B82; line-height: 1.55; }
.ld-claim__note { margin: 2px 0 10px; font-size: 12.5px; color: #93A0B5; line-height: 1.45; }
.ld-claim__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.ld-claim__field { display: flex; flex-direction: column; gap: 7px; }
.ld-claim__field--full { grid-column: 1 / -1; }
.ld-claim__lbl { font-size: 13.5px; font-weight: 700; color: #33405A; }
.ld-claim__lbl i { color: #DC2626; font-style: normal; }
.ld-claim__foot { margin-top: 4px; display: flex; gap: 12px; align-items: center; justify-content: space-between; flex-wrap: wrap; }
.ld-claim__addr { display: flex; flex-direction: column; gap: 14px; }
.ld-claim__addr-row { display: grid; grid-template-columns: 1fr 140px; gap: 14px; }
.ld-claim__results { margin-top: 20px; padding-top: 20px; border-top: 1px solid rgba(14,23,38,.06); }
.ld-claim__found-title { font-size: 13.5px; font-weight: 800; color: #0E1726; }
.ld-claim__matches { display: flex; flex-direction: column; gap: 10px; margin-top: 12px; }
.ld-claim__found-foot { margin-top: 14px; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; font-size: 13.5px; color: #5E6B82; }
.ld-claim__match-logo { width: 46px; height: 46px; border-radius: 12px; object-fit: cover; flex: 0 0 auto; background: #F1F5F9; }
.ld-claim__match-logo--ph { display: inline-block; }
.ld-claim__match-star { font-weight: 800; color: #0E1726; white-space: nowrap; }
.ld-claim__match-starico { color: #F5A623; }
.ld-claim__empty { font-size: 14px; color: #5E6B82; }
.ld-claim__match { display: flex; align-items: center; gap: 14px; padding: 14px; border: 1px solid rgba(14,23,38,.09); border-radius: 14px; flex-wrap: wrap; }
.ld-claim__match-info { flex: 1; min-width: 0; }
.ld-claim__match-name { font-size: 15px; font-weight: 800; color: #0E1726; }
.ld-claim__match-addr { font-size: 13px; color: #93A0B5; margin-top: 3px; }
.ld-claim__other { margin-top: 4px; border: 0; background: transparent; cursor: pointer; font-family: inherit; font-size: 14px; font-weight: 700; color: var(--ld-accent, #3B82F6); padding: 8px 2px; text-align: left; }
.ld-claim__err { font-size: 13.5px; font-weight: 600; color: #DC2626; }

/* ── Шаг 2: стадии (плоский флекс-столбец, без внешней карточки) ── */
.ld-claim__stage { display: flex; flex-direction: column; gap: 16px; }
.ld-claim__stage[hidden], .ld-claim__doc-file[hidden] { display: none; }

/* Карточка выбранной клиники (эталон UCard pad=20) */
.ld-claim__picked { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; padding: 20px; }
.ld-claim__picked-info { flex: 1; min-width: 160px; }
.ld-claim__picked-name { font-size: 16px; font-weight: 800; color: #0E1726; letter-spacing: -.01em; }
.ld-claim__picked-meta { font-size: 13.5px; color: #93A0B5; margin-top: 2px; }
.ld-claim__changeaddr { border: 0; background: transparent; cursor: pointer; color: var(--ld-accent, #3B82F6); font-family: inherit; font-size: 13.5px; font-weight: 700; display: inline-flex; align-items: center; gap: 6px; padding: 0; }

/* Крупный блок загрузки документа (эталон EdcDocUpload) */
.ld-claim__doc { border-radius: 18px; overflow: hidden; border: 2px solid rgba(59,130,246,.45); box-shadow: 0 12px 34px rgba(59,130,246,.15); }
.ld-claim__doc-head { display: flex; gap: 14px; align-items: flex-start; padding: 20px 22px; background: rgba(59,130,246,.08); }
.ld-claim__doc-shield { width: 46px; height: 46px; border-radius: 14px; flex: 0 0 auto; background: #fff; display: grid; place-items: center; box-shadow: 0 2px 8px rgba(14,23,38,.1); }
.ld-claim__doc-headtext { min-width: 0; }
.ld-claim__doc-title { margin: 0; font-size: 19px; font-weight: 800; color: #0E1726; letter-spacing: -.02em; }
.ld-claim__doc-desc { margin: 8px 0 0; font-size: 14.5px; line-height: 1.6; color: #33405A; }
.ld-claim__doc-desc strong { font-weight: 800; }
.ld-claim__doc-sample { margin-top: 12px; display: inline-flex; align-items: center; gap: 8px; background: transparent; border: 0; cursor: pointer; color: var(--ld-accent, #3B82F6); font-weight: 800; font-size: 14px; font-family: inherit; padding: 0; }
.ld-claim__doc-body { padding: 20px; background: #fff; }
.ld-claim__dropzone { display: block; cursor: pointer; border-radius: 14px; padding: 28px 20px; text-align: center; border: 2px dashed rgba(14,23,38,.09); background: #F3F6FB; transition: border-color .15s, background .15s; }
.ld-claim__dropzone.is-drag { border-color: var(--ld-accent, #3B82F6); background: rgba(59,130,246,.05); }
.ld-claim__dropzone.is-error { border-color: #D6453B; background: #FCEEED; }
.ld-claim__drop-ic { width: 48px; height: 48px; border-radius: 50%; display: inline-grid; place-items: center; background: #fff; box-shadow: 0 2px 8px rgba(14,23,38,.08); margin-bottom: 10px; }
.ld-claim__drop-title { font-size: 14.5px; font-weight: 800; color: #0E1726; }
.ld-claim__drop-sub { font-size: 12.5px; color: #93A0B5; margin-top: 5px; }
.ld-claim__doc-file { display: flex; align-items: center; gap: 14px; padding: 12px; border-radius: 14px; border: 1px solid rgba(31,157,87,.4); background: rgba(31,157,87,.07); }
.ld-claim__doc-thumb { width: 56px; height: 56px; border-radius: 11px; object-fit: cover; flex: 0 0 auto; border: 1px solid rgba(14,23,38,.09); }
.ld-claim__doc-fileico { width: 56px; height: 56px; border-radius: 11px; flex: 0 0 auto; background: #fff; display: grid; place-items: center; box-shadow: inset 0 0 0 1px rgba(14,23,38,.09); }
.ld-claim__doc-fileinfo { flex: 1; min-width: 0; }
.ld-claim__doc-ok { display: inline-flex; align-items: center; gap: 7px; font-size: 12.5px; font-weight: 800; color: #1F9D57; }
.ld-claim__doc-fname { font-size: 14px; font-weight: 700; color: #0E1726; margin-top: 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ld-claim__doc-fsize { font-size: 12.5px; color: #93A0B5; margin-top: 1px; }
.ld-claim__doc-remove { border: 0; background: transparent; cursor: pointer; color: #5E6B82; padding: 8px; border-radius: 9px; display: inline-flex; flex: 0 0 auto; }

/* Поля внутри заявки = эталон edcField (15px, рамка .09, радиус 12, паддинг 12/14) */
.ld-claim .ld-form-input, .ld-claim .ld-form-textarea { font-size: 15px; color: #0E1726; border: 1px solid rgba(14,23,38,.09); border-radius: 12px; padding: 12px 14px; line-height: 1.4; }
.ld-claim .ld-form-input:focus, .ld-claim .ld-form-textarea:focus { border-color: var(--ld-accent, #3B82F6); box-shadow: 0 0 0 3px rgba(59,130,246,.14); }
.ld-claim__textarea { line-height: 1.6; min-height: 96px; resize: vertical; }
.ld-claim__hint-field { font-size: 12.5px; color: #93A0B5; line-height: 1.4; }

/* Карточка данных новой клиники */
.ld-claim__newcard { padding: 24px; }
.ld-claim__newhead { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; flex-wrap: wrap; }
.ld-claim__newtitle { margin: 0; font-size: 18px; font-weight: 800; color: #0E1726; letter-spacing: -.01em; }
.ld-claim__newaddr { font-size: 13px; color: #93A0B5; }
.ld-claim__fields { display: grid; grid-template-columns: 1fr; gap: 16px; }
.ld-claim__newdivider { margin-top: 18px; padding-top: 18px; border-top: 1px solid rgba(14,23,38,.06); }

/* Кнопки внутри заявки: ghost = синий акцент с тонкой рамкой (эталон UButton ghost) */
.ld-claim .ld-btn--ghost { background: transparent; color: var(--ld-accent, #3B82F6); border: 0; box-shadow: inset 0 0 0 1px rgba(59,130,246,.30); }
.ld-claim .ld-btn--ghost:hover { background: transparent; border: 0; color: var(--ld-accent, #3B82F6); opacity: .85; }
.ld-claim .ld-btn--lg { height: 48px; padding: 0 22px; }

/* Красивый кастомный селект (эталон EdcSelect) */
.ld-csel { position: relative; }
.ld-csel__trig { width: 100%; box-sizing: border-box; display: flex; align-items: center; justify-content: space-between; gap: 10px; text-align: left; font-family: inherit; font-size: 15px; font-weight: 500; color: #0E1726; background: #fff; border: 1px solid rgba(14,23,38,.09); border-radius: 12px; padding: 12px 14px; cursor: pointer; outline: none; transition: border-color .15s, box-shadow .15s; }
.ld-csel.is-open .ld-csel__trig { border-color: var(--ld-accent, #3B82F6); box-shadow: 0 0 0 3px rgba(59,130,246,.14); }
.ld-csel__val { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ld-csel__val.is-placeholder { color: #93A0B5; }
.ld-csel__chev { flex: 0 0 auto; display: inline-flex; color: #93A0B5; transition: transform .18s, color .15s; }
.ld-csel.is-open .ld-csel__chev { transform: rotate(180deg); color: var(--ld-accent, #3B82F6); }
.ld-csel__menu { position: absolute; z-index: 40; top: calc(100% + 6px); left: 0; right: 0; background: #fff; border: 1px solid rgba(14,23,38,.09); border-radius: 14px; box-shadow: 0 12px 32px rgba(14,23,38,.14), 0 2px 8px rgba(14,23,38,.06); padding: 6px; animation: ldCselIn .14s ease; }
.ld-csel__list { max-height: 240px; overflow-y: auto; }
.ld-csel__opt { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 10px 12px; border-radius: 9px; cursor: pointer; font-size: 14.5px; font-weight: 500; color: #33405A; transition: background .1s; }
.ld-csel__opt:hover { background: #F3F6FB; }
.ld-csel__opt.is-sel { font-weight: 700; color: var(--ld-accent, #3B82F6); background: rgba(59,130,246,.08); }
.ld-csel__opt > span { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ld-csel__check { flex: 0 0 auto; opacity: 0; color: var(--ld-accent, #3B82F6); }
.ld-csel__opt.is-sel .ld-csel__check { opacity: 1; }
.ld-csel__opt.is-active { background: #EEF4FF; }
.ld-csel__opt.is-active.is-sel { background: rgba(59,130,246,.16); }
.ld-csel__search { padding: 4px 4px 8px; border-bottom: 1px solid #F1F5F9; margin-bottom: 4px; }
.ld-csel__search-input { width: 100%; padding: 8px 10px; border: 1px solid #E2E8F0; border-radius: 8px; font-size: 14px; outline: none; color: #0F172A; background: #F8FAFC; transition: border-color .15s, background .15s; }
.ld-csel__search-input:focus { border-color: var(--ld-accent, #3B82F6); background: #fff; }
.ld-csel__empty { padding: 14px 12px; font-size: 13.5px; color: #93A0B5; text-align: center; }
@keyframes ldCselIn { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.ld-claim__done { text-align: center; padding: 40px 24px; }
.ld-claim__done-ic { width: 68px; height: 68px; border-radius: 50%; display: inline-grid; place-items: center; background: rgba(21,128,61,.12); margin-bottom: 16px; }
.ld-claim__done-title { margin: 0; font-size: 22px; font-weight: 800; color: #0E1726; letter-spacing: -.02em; }
.ld-claim__done-text { margin: 10px auto 22px; max-width: 460px; font-size: 15px; color: #5E6B82; line-height: 1.6; }
.ld-btn--ghost { background: transparent; color: #5E6B82; border: 1px solid rgba(14,23,38,.12); }
.ld-btn--ghost:hover { border-color: var(--ld-accent, #3B82F6); color: var(--ld-accent, #3B82F6); }
.ld-btn--sm { padding: 8px 14px; font-size: 13.5px; }
@media (max-width: 640px) { .ld-claim__grid, .ld-claim__addr-row { grid-template-columns: 1fr; } }
/* Кнопка «← Все мои клиники» над рабочей областью клиники в профиле */
.ld-ed-back-link { display: inline-flex; align-items: center; gap: 6px; margin-bottom: 14px; font-size: 14px; font-weight: 700; color: var(--ld-accent, #3B82F6); text-decoration: none; }
.ld-ed-back-link:hover { color: #2563EB; }

/* Подменю «Мои клиники → название клиники» в сайдбаре профиля редактора (эталон EdProfileCard) */
.ld-up-subnav { display: flex; flex-direction: column; gap: 2px; padding: 2px 4px 6px 8px; }
.ld-up-subnav[hidden] { display: none; }
.ld-up-subnav__head { display: flex; align-items: center; gap: 7px; padding: 4px 8px 4px; }
.ld-up-subnav__label { font-size: 11px; font-weight: 800; color: #93A0B5; letter-spacing: .04em; text-transform: uppercase; text-decoration: none; }
a.ld-up-subnav__label { cursor: pointer; color: #93A0B5; }
a.ld-up-subnav__label:hover { color: #5E6B82; }
.ld-up-subnav__createnet { margin-left: auto; font-size: 11.5px; font-weight: 700; color: var(--ld-accent, #3B82F6); text-decoration: none; white-space: nowrap; }
.ld-up-subnav__createnet:hover { color: #2563EB; }
.ld-up-subnav__clinic { display: flex; align-items: flex-start; gap: 9px; padding: 7px 9px; border-radius: 9px; font-size: 13px; font-weight: 600; color: var(--ld-accent, #3B82F6); text-decoration: none; line-height: 1.3; }
.ld-up-subnav__clinic:hover { background: #F3F6FB; }
.ld-up-subnav__clinic.is-active { background: rgba(59,130,246,.10); font-weight: 700; }
.ld-up-subnav__ic { flex: 0 0 auto; }
.ld-up-subnav__name { flex: 1; min-width: 0; white-space: normal; overflow-wrap: anywhere; word-break: break-word; }
.ld-up-subnav__pending { flex: 0 0 auto; font-size: 10px; font-weight: 700; color: #9A6B12; background: #FBF4E4; padding: 2px 7px; border-radius: 999px; white-space: nowrap; }
.ld-up-subnav__claim { margin-top: 4px; display: flex; align-items: center; justify-content: center; gap: 8px; padding: 9px 10px; border-radius: 10px; border: 1.5px dashed rgba(14,23,38,.12); background: transparent; cursor: pointer; font-family: inherit; font-size: 12.5px; font-weight: 700; color: #5E6B82; }
.ld-up-subnav__claim:hover { border-color: var(--ld-accent, #3B82F6); color: var(--ld-accent, #3B82F6); }
.ld-qcard__answer-role { font-size: 12.5px; color: #475569; margin-top: 3px; line-height: 1.4; }
.ld-qcard__sep { color: #94A3B8; }
.ld-qcard__best { flex: 0 0 auto; font-size: 11.5px; font-weight: 800; color: #15803D; background: rgba(21,128,61,.10); padding: 3px 9px; border-radius: 7px; white-space: nowrap; }
.ld-qcard__answer-text { margin: 9px 0 0; font-size: 14.5px; line-height: 1.58; color: #334155; }
.ld-qcard__noanswer { margin-top: 14px; font-size: 14px; color: #94A3B8; }
.ld-qcard__foot { margin-top: 16px; padding-top: 14px; border-top: 1px solid rgba(15,23,42,.06); display: flex; }
.ld-qcard__views { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: #94A3B8; }

/* Форма «Задать вопрос» */
.ld-qform { padding: 24px; }
.ld-qform__title { margin: 0 0 16px; font-size: 20px; font-weight: 800; color: #0F172A; letter-spacing: -0.02em; }
.ld-qform__fields { display: flex; flex-direction: column; gap: 12px; }
.ld-qform__warn { margin-top: 16px; display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border-radius: 12px; background: rgba(180,83,9,.08); border: 1px solid rgba(180,83,9,.22); color: #B45309; }
.ld-qform__warn span { font-size: 12.5px; line-height: 1.5; color: #475569; }
.ld-qform__warn svg { flex: 0 0 auto; margin-top: 1px; }
.ld-qform__upload { margin-top: 12px; display: inline-flex; align-items: center; gap: 9px; background: transparent; border: 0; cursor: pointer; color: var(--ld-accent, #3B82F6); font-weight: 700; font-size: 14.5px; font-family: inherit; padding: 4px 0; }
.ld-qform__upload:hover { opacity: .75; }
.ld-qform__divider { height: 1px; background: rgba(15,23,42,.06); margin: 18px 0; }
.ld-qform__rows { display: flex; flex-direction: column; gap: 14px; }
.ld-qform__row { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.ld-qform__label { width: 160px; flex: 0 0 auto; font-size: 13.5px; color: #475569; font-weight: 600; }
.ld-qform__row .ld-form-select, .ld-qform__row .ld-combo { flex: 1; min-width: 200px; }
.ld-qform__consent { margin-top: 22px; display: flex; gap: 11px; align-items: flex-start; cursor: pointer; }
.ld-qform__consent span { font-size: 12.5px; line-height: 1.55; color: #475569; }
.ld-qform__consent-cb { margin-top: 2px; width: 18px; height: 18px; flex: 0 0 auto; accent-color: var(--ld-accent, #3B82F6); }
.ld-qform__submit-row { display: flex; justify-content: flex-end; margin-top: 18px; }
.ld-qform__submit[disabled] { opacity: .55; cursor: not-allowed; }

/* Адаптив */
@media (max-width: 960px) {
  .ld-uprofile { grid-template-columns: 1fr; gap: 18px; }
  .ld-uprofile__side { position: static; }
  .ld-qform__label { width: 100%; }
}

/* Меню действий отзыва (троеточие) */
.ld-review-card2__header-right { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
.ld-rc-menu { position: relative; }
.ld-rc-menu__btn { border: 0; background: transparent; cursor: pointer; color: #94A3B8; padding: 6px; border-radius: 9px; display: inline-flex; transition: background .12s, color .12s; }
.ld-rc-menu__btn:hover, .ld-rc-menu.is-open .ld-rc-menu__btn { background: #F1F5F9; color: #475569; }
.ld-rc-menu__pop { position: absolute; z-index: 30; top: calc(100% + 6px); right: 0; min-width: 192px; background: #fff; border: 1px solid rgba(15,23,42,.1); border-radius: 13px; padding: 6px; box-shadow: 0 12px 32px rgba(14,23,38,.14), 0 2px 8px rgba(14,23,38,.06); }
/* Пункты меню и их иконки - синие (акцент сайта); иконки наследуют currentColor. */
.ld-rc-menu__item { display: flex; align-items: center; gap: 10px; width: 100%; box-sizing: border-box; border: 0; background: transparent; cursor: pointer; font-family: inherit; font-size: 14px; font-weight: 600; text-align: left; color: var(--ld-accent, #3B82F6); padding: 9px 11px; border-radius: 9px; text-decoration: none; transition: background .1s; }
.ld-rc-menu__item:hover { background: #F1F5F9; }
.ld-rc-menu__item.is-danger { color: #DC2626; }
.ld-rc-menu__item.is-danger:hover { background: rgba(220,38,38,.09); }

/* Результат отправки формы вопроса */
.ld-qform__result { margin-top: 16px; padding: 12px 14px; border-radius: 12px; font-size: 14px; font-weight: 600; }
.ld-qform__result.is-ok  { background: rgba(21,128,61,.08); color: #15803D; }
.ld-qform__result.is-err { background: rgba(220,38,38,.08); color: #DC2626; }

/* Профиль: карточка отзыва - имя автора инлайн (как в макете «Профиль пользователя 1») */
.ld-review-card2__sentence { font-size: 14.5px; line-height: 1.5; color: #33405A; }
.ld-review-card2__author-bold { font-weight: 800; color: #0E1726; }
/* Ссылки во фразе отзыва (имя автора / услуга / врач / клиника): синие,
   без подчёркивания, на hover подсветка более насыщенным синим. */
.ld-review-card2__sentence a { color: var(--ld-accent, #3B82F6); font-weight: 600; text-decoration: none; }
.ld-review-card2__sentence a:hover { color: #2563EB; text-decoration: none; }
/* Имя автора - ссылка: синяя, но жирная (800), перебиваем вес из .ld-review-card2__author-bold */
.ld-review-card2__sentence a.ld-review-card2__author-link { font-weight: 800; color: var(--ld-accent, #3B82F6); }
.ld-review-card2__sentence a.ld-review-card2__author-link:hover { color: #2563EB; }

/* Админский тултип «кто смотрел пост» на счётчике просмотров */
.ld-review-card2__views--admin { position: relative; cursor: default; }
.ld-rc-viewers__pop { position: absolute; z-index: 30; bottom: calc(100% + 8px); right: 0; min-width: 220px; max-width: 280px; background: #fff; border: 1px solid rgba(15,23,42,.1); border-radius: 12px; padding: 8px; box-shadow: 0 12px 32px rgba(14,23,38,.16); display: none; flex-direction: column; gap: 2px; }
.ld-review-card2__views--admin:hover .ld-rc-viewers__pop { display: flex; }
.ld-rc-viewers__title { font-size: 11.5px; font-weight: 800; color: #94A3B8; text-transform: uppercase; letter-spacing: .04em; padding: 4px 8px 6px; }
.ld-rc-viewers__item { font-size: 13.5px; color: var(--ld-accent, #3B82F6); text-decoration: none; padding: 6px 8px; border-radius: 8px; }
.ld-rc-viewers__item:hover { background: #F1F5F9; }
.ld-rc-viewers__more { font-size: 12.5px; color: #94A3B8; padding: 4px 8px; }

/* Инлайн-панель правки отзыва (под карточкой, без попапа) */
.ld-edit-panel { margin: 14px 0; padding: 0; overflow: hidden; }
.ld-edit-panel[hidden] { display: none; }   /* перебиваем возможный display у .ld-card */
.ld-edit-panel__head { display: flex; align-items: center; justify-content: space-between; padding: 16px 22px; border-bottom: 1px solid rgba(15,23,42,.08); font-size: 16px; font-weight: 800; color: #0F172A; }
.ld-edit-panel__close { border: 0; background: transparent; cursor: pointer; color: #94A3B8; padding: 4px; border-radius: 8px; display: inline-flex; }
.ld-edit-panel__close:hover { background: #F1F5F9; color: #475569; }
.ld-edit-panel__body { padding: 18px 22px; display: flex; flex-direction: column; gap: 16px; }
.ld-edit-panel__foot { display: flex; justify-content: flex-end; gap: 10px; padding: 16px 22px; border-top: 1px solid rgba(15,23,42,.08); }
.ld-edit-crits { display: flex; flex-direction: column; gap: 10px; }
.ld-edit-crit { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.ld-edit-crit__label { font-size: 14px; color: #475569; }
.ld-edit-stars { display: inline-flex; gap: 2px; flex: 0 0 auto; }
.ld-edit-star { border: 0; background: transparent; cursor: pointer; padding: 2px; line-height: 0; color: #E2E8F0; }
.ld-edit-star svg { fill: currentColor; }
.ld-edit-star.is-on { color: #F5A623; }
.ld-edit-field { display: flex; flex-direction: column; gap: 6px; }
.ld-edit-label { font-size: 13px; font-weight: 600; color: #475569; }
.ld-edit-error { padding: 10px 12px; border-radius: 10px; background: rgba(220,38,38,.08); color: #DC2626; font-size: 13.5px; font-weight: 600; }
@media (max-width: 560px) { .ld-edit-crit { flex-direction: column; align-items: flex-start; gap: 4px; } }

/* ═══════════════ Сети клиник в кабинете редактора (ld-net-*) ═══════════════ */
/* Форма создания/правки сети */
.ld-net-form__intro {
    display:flex; gap:14px; align-items:flex-start;
    margin-bottom:18px; padding:18px 20px;
    background:linear-gradient(135deg, rgba(59,130,246,.06) 0%, rgba(99,102,241,.06) 100%);
    border:1px solid rgba(59,130,246,.18); border-radius:14px;
}
.ld-net-form__intro-ic {
    flex:0 0 auto; width:38px; height:38px; border-radius:10px;
    background:#fff; display:grid; place-items:center;
    color:var(--ld-accent,#3B82F6); box-shadow:0 4px 12px rgba(59,130,246,.18);
}
.ld-net-form__intro-body { flex:1; min-width:0; }
.ld-net-form__intro-title {
    font-size:15px; font-weight:800; color:#0F172A; margin-bottom:6px;
}
.ld-net-form__intro-text {
    margin:0 0 10px; font-size:14px; line-height:1.55; color:#475569;
}
.ld-net-form__intro-text strong { color:#0F172A; font-weight:700; }
.ld-net-form__intro-list {
    margin:0 0 10px; padding:0 0 0 18px; font-size:13.5px; line-height:1.55; color:#475569;
}
.ld-net-form__intro-list li { margin-bottom:4px; }
.ld-net-form__intro-list strong { color:#0F172A; font-weight:700; }
.ld-net-form__intro-hint {
    margin:6px 0 0; font-size:13px; line-height:1.5; color:#94A3B8; font-style:italic;
}
.ld-net-form__card { display:flex; flex-direction:column; gap:16px; padding:24px; }
.ld-net-form__row { display:flex; flex-direction:column; gap:6px; }
.ld-net-form__grid2 { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:640px){ .ld-net-form__grid2 { grid-template-columns:1fr; } }
.ld-net-form__lbl { font-size:14px; font-weight:600; color:#475569; }
.ld-net-form__lbl i { color:#B91C1C; font-style:normal; }
.ld-net-form__logo { display:flex; align-items:center; gap:14px; }
.ld-net-form__logo-prev { width:56px; height:56px; border-radius:12px; object-fit:cover; border:1px solid rgba(14,23,38,.09); }
.ld-net-form__actions { display:flex; gap:10px; align-items:center; flex-wrap:wrap; padding-top:8px; border-top:1px solid rgba(14,23,38,.08); }
.ld-net-form__err { background:#FEE2E2; color:#B91C1C; padding:10px 14px; border-radius:10px; font-size:14px; }
.ld-net-pending-note { background:#FEF3C7; color:#92400E; padding:10px 14px; border-radius:10px; font-size:14px; margin-bottom:14px; font-weight:600; }
.ld-net-clinics { padding:20px; }
.ld-net-clinics__head { margin-bottom:12px; }
.ld-net-clinics__title { font-size:19px; font-weight:700; color:#0F172A; margin:0; }
.ld-net-clinics__search { position:relative; margin-bottom:12px; }
.ld-net-clinics__empty { padding:18px; text-align:center; color:#64748B; font-size:14px; }
.ld-net-clinic-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 14px; border:1px solid rgba(14,23,38,.09); border-radius:12px; margin-top:8px; background:#fff; }
.ld-net-clinic-row__name { font-weight:600; font-size:15px; color:#0F172A; }

/* Workspace сети */
.ld-net-ws { display:flex; flex-direction:column; gap:16px; }
.ld-net-hero { background:#fff; border:1px solid rgba(14,23,38,.09); border-radius:20px; padding:32px 24px 28px; text-align:center; box-shadow:0 8px 24px rgba(15,23,42,.05); }
.ld-net-hero__logo { width:120px; height:120px; border-radius:50%; margin:0 auto 18px; background:#fff; padding:6px; box-shadow:0 8px 24px rgba(15,23,42,.16); }
.ld-net-hero__logo img { width:100%; height:100%; border-radius:50%; object-fit:cover; }
.ld-net-hero__logo-ph { display:flex; width:100%; height:100%; border-radius:50%; align-items:center; justify-content:center; font-size:48px; font-weight:800; color:#fff; background:linear-gradient(135deg,#3B82F6,#2563EB); }
.ld-net-hero__label { font-size:14px; color:#64748B; font-weight:600; margin-bottom:6px; }
.ld-net-hero__pending { color:#92400E; font-weight:700; }
.ld-net-hero__title { margin:0; font-size:32px; font-weight:700; color:#1E293B; line-height:1.15; }
.ld-net-hero__meta { margin-top:14px; display:flex; gap:8px; flex-wrap:wrap; justify-content:center; font-size:14px; color:#64748B; }
.ld-net-hero__cta { margin-top:22px; display:flex; flex-direction:column; align-items:center; gap:12px; }
.ld-net-hero__view { font-size:14px; font-weight:600; color:#3B82F6; text-decoration:none; }
.ld-net-stats { background:#fff; border:1px solid rgba(14,23,38,.09); border-radius:20px; padding:4px; display:grid; grid-template-columns:repeat(6,1fr); }
@media (max-width:768px){ .ld-net-stats { grid-template-columns:repeat(3,1fr); } }
.ld-net-stats__cell { padding:20px 14px; text-align:center; border-right:1px solid rgba(14,23,38,.08); }
.ld-net-stats__cell:last-child { border-right:0; }
.ld-net-stats__v { font-size:26px; font-weight:800; color:#1E293B; line-height:1; }
.ld-net-stats__l { margin-top:6px; font-size:14px; color:#64748B; }
.ld-net-stats__sub { margin-top:2px; font-size:14px; color:#94A3B8; }
.ld-net-card { background:#fff; border:1px solid rgba(14,23,38,.09); border-radius:20px; padding:24px; }
.ld-net-card--flush { padding:0; overflow:hidden; }
.ld-net-card__head { padding:20px 24px; border-bottom:1px solid rgba(14,23,38,.08); }
.ld-net-card__kicker { font-size:14px; font-weight:800; color:#94A3B8; text-transform:uppercase; letter-spacing:.08em; margin-bottom:4px; }
.ld-net-card__title { font-size:19px; font-weight:700; color:#1E293B; }
.ld-net-card__note { margin:6px 0 0; font-size:14px; color:#94A3B8; }
.ld-net-desc { margin:0; font-size:15px; line-height:1.65; color:#475569; }
.ld-net-desc-empty { display:block; padding:20px; text-align:center; border:1.5px dashed rgba(14,23,38,.15); border-radius:12px; color:#64748B; text-decoration:none; }
.ld-net-clinics-grid { padding:20px; display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
@media (max-width:768px){ .ld-net-clinics-grid { grid-template-columns:1fr; } }
.ld-net-clinic { position:relative; }
.ld-net-clinic__open { display:grid; grid-template-columns:auto 1fr; gap:14px; align-items:center; padding:16px; border:1px solid rgba(14,23,38,.09); border-radius:14px; background:#F8FAFC; text-decoration:none; transition:border-color .15s,box-shadow .15s; }
.ld-net-clinic__open:hover { border-color:#3B82F6; box-shadow:0 8px 18px rgba(15,23,42,.06); }
.ld-net-clinic__logo { width:56px; height:56px; border-radius:10px; object-fit:cover; }
.ld-net-clinic__name { font-size:15px; font-weight:700; color:#1E293B; }
.ld-net-clinic__meta { margin-top:4px; font-size:14px; color:#94A3B8; }
.ld-net-clinic__stat { margin-top:6px; font-size:14px; color:#64748B; display:flex; gap:6px; flex-wrap:wrap; }
.ld-net-clinic__rating { font-weight:700; color:#1E293B; }
.ld-net-clinic__status { margin-top:8px; }
.ld-net-badge { font-size:13px; font-weight:700; padding:3px 8px; border-radius:999px; text-transform:uppercase; letter-spacing:.02em; }
.ld-net-badge--pending { background:#FEF3C7; color:#92400E; }
.ld-net-badge--ok { background:#DCFCE7; color:#15803D; }
.ld-net-clinic__remove { position:absolute; top:8px; right:8px; width:26px; height:26px; border-radius:7px; border:1px solid rgba(14,23,38,.12); background:#fff; cursor:pointer; color:#94A3B8; opacity:0; transition:opacity .15s; }
.ld-net-clinic:hover .ld-net-clinic__remove { opacity:1; }
.ld-net-clinic__remove:hover { border-color:#FCA5A5; color:#EF4444; }
.ld-net-clinic-add { display:flex; align-items:center; justify-content:center; padding:16px; border:1.5px dashed rgba(14,23,38,.15); border-radius:14px; min-height:88px; color:#64748B; text-decoration:none; font-weight:600; font-size:14px; transition:border-color .15s,color .15s; }
.ld-net-clinic-add:hover { border-color:#3B82F6; color:#3B82F6; }
.ld-net-brand__row { display:grid; grid-template-columns:220px 1fr; gap:16px; padding:14px 24px; border-top:1px solid rgba(14,23,38,.08); align-items:center; }
@media (max-width:640px){ .ld-net-brand__row { grid-template-columns:1fr; gap:4px; } }
.ld-net-brand__lbl { font-size:14px; color:#94A3B8; }
.ld-net-brand__val { font-size:14px; font-weight:600; color:#1E293B; }
.ld-net-brand__val.is-empty { color:#CBD5E1; font-weight:400; }
.ld-up-subnav__clinic--nested { padding-left:22px; }
.ld-up-subnav__clinic--network { font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; padding: 8px 9px 4px; }
/* Сети на модерации в ленте админа */
.ld-net-mod { background:#fff; border:1px solid rgba(14,23,38,.09); border-radius:16px; padding:16px; margin-bottom:16px; }
.ld-net-mod__head { font-size:15px; font-weight:700; color:#1E293B; margin-bottom:10px; }
.ld-net-mod__row { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding:12px; border:1px solid rgba(14,23,38,.08); border-radius:12px; margin-top:8px; }
.ld-net-mod__name { font-size:15px; font-weight:700; color:#0F172A; }
.ld-net-mod__tag { font-size:12px; font-weight:600; color:#1D4ED8; background:#DBEAFE; padding:2px 8px; border-radius:999px; margin-left:6px; }
.ld-net-mod__meta { font-size:13px; color:#64748B; margin-top:4px; }
.ld-net-mod__desc { font-size:14px; color:#475569; margin-top:6px; }
.ld-net-mod__actions { display:flex; gap:8px; flex-shrink:0; }
/* Логотип сети в форме редактора (загрузка с обрезкой) */
.ld-net-logo { padding:20px; }
.ld-net-logo__wrap { position:relative; width:120px; height:120px; border-radius:50%; overflow:hidden; background:#F1F5F9; box-shadow:0 8px 24px rgba(15,23,42,.12); }
.ld-net-logo__wrap img { width:100%; height:100%; object-fit:cover; }
.ld-net-logo__ph { display:flex; width:100%; height:100%; align-items:center; justify-content:center; font-size:44px; font-weight:800; color:#fff; background:linear-gradient(135deg,#3B82F6,#2563EB); }
.ld-net-logo__overlay { position:absolute; left:0; right:0; bottom:0; padding:6px 0; text-align:center; font-size:12px; font-weight:600; color:#fff; background:rgba(15,23,42,.55); opacity:0; transition:opacity .15s; }
.ld-net-logo__wrap:hover .ld-net-logo__overlay { opacity:1; }
.ld-net-logo__hint, .ld-net-form__hint { font-size:13px; color:#94A3B8; margin-top:10px; }

/* ============================================================================
   ЛИСТИНГ ВРАЧЕЙ ПО СПЕЦИАЛЬНОСТИ - новый дизайн (страница «Стоматологи №2»)
   Эталон: ld-doctor-listing-ds.jsx (ListingCard docStyle) + ld-doctor-listing-sections.jsx
   ============================================================================ */

/* ---------- HERO: чипы-подкатегории ---------- */
.ld-listing-hero__chips { margin-top: 22px; display: flex; gap: 8px; flex-wrap: wrap; }
.ld-hchip {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 16px; border-radius: 999px;
  background: #fff; color: #0F172A; text-decoration: none;
  box-shadow: inset 0 0 0 1px rgba(15,23,42,.10);
  font-size: 14px; font-weight: 600; transition: all .15s;
}
.ld-hchip:hover { box-shadow: inset 0 0 0 1px rgba(15,23,42,.22); color: #0F172A; }
.ld-hchip__count { font-size: 12px; font-weight: 700; color: #94A3B8; font-variant-numeric: tabular-nums; }
.ld-hchip.is-on { background: #0F172A; color: #fff; box-shadow: 0 6px 16px rgba(15,23,42,.18); }
.ld-hchip.is-on .ld-hchip__count { color: rgba(255,255,255,.7); }

/* ---------- СВОРАЧИВАЕМЫЙ ФИЛЬТР-БАР ---------- */
.ld-dfilters__toggle-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.ld-dfilters__toggle {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 12px 18px; border-radius: 12px; border: 0; cursor: pointer;
  background: #fff; color: #0F172A;
  box-shadow: inset 0 0 0 1.5px rgba(15,23,42,.10);
  font-family: inherit; font-size: 14px; font-weight: 700; transition: all .15s;
}
.ld-dfilters__toggle.is-open { background: #0F172A; color: #fff; box-shadow: 0 6px 16px rgba(15,23,42,.18); }
.ld-dfilters__badge {
  min-width: 22px; height: 22px; padding: 0 6px; border-radius: 999px;
  background: var(--ld-accent); color: #fff;
  font-size: 12px; font-weight: 800; font-variant-numeric: tabular-nums;
  display: inline-flex; align-items: center; justify-content: center;
}
.ld-dfilters__toggle.is-open .ld-dfilters__badge { background: #fff; color: #0F172A; }
.ld-dfilters__toggle-chevron { color: #64748B; transition: transform .15s; }
.ld-dfilters__toggle.is-open .ld-dfilters__toggle-chevron { color: #fff; transform: rotate(180deg); }
.ld-dfilters__reset {
  padding: 12px 16px; background: transparent; color: #64748B;
  font-size: 13px; font-weight: 600; text-decoration: underline;
  text-underline-offset: 3px; cursor: pointer;
}
.ld-dfilters__body { margin-top: 12px; }
.ld-dfilters__grid {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px; margin-bottom: 12px;
}

/* ---------- КАРТОЧКА ВРАЧА (docStyle, 3 колонки) ---------- */
.ld-dlcards { display: grid; grid-template-columns: 1fr; gap: 16px; }
.ld-dlcard {
  display: grid; grid-template-columns: 264px minmax(0, 1fr) 264px;
  align-items: center;
  background: #fff; border-radius: 20px;
  box-shadow: 0 1px 2px rgba(15,23,42,.04), 0 8px 28px rgba(15,23,42,.06);
  overflow: visible; /* чтобы выпадашка мест приёма не обрезалась */
  transition: transform .15s, box-shadow .15s;
}
.ld-dlcard:hover {
  transform: translateY(-2px);
  box-shadow: 0 2px 6px rgba(15,23,42,.05), 0 16px 40px rgba(15,23,42,.13), inset 0 0 0 1.5px var(--ld-accent);
}

/* Фото-колонка (264px): круглое фото 200, margin 32 */
.ld-dlcard__photo-col { display: flex; align-items: flex-start; justify-content: center; }
.ld-dlcard__photo-wrap { position: relative; width: 200px; height: 200px; margin: 32px; flex-shrink: 0; }
.ld-dlcard__photo { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 50%; background: #F1F5F9; box-shadow: inset 0 0 0 1px rgba(15,23,42,.06); }
.ld-dlcard__avatar {
  width: 100%; height: 100%; border-radius: 50%;
  display: grid; place-items: center; color: #fff;
  background: linear-gradient(135deg, #60A5FA, #3B82F6);
  font-size: 56px; font-weight: 800;
}
.ld-dlcard__fav {
  position: absolute; bottom: 8px; right: 8px;
  width: 36px; height: 36px; border-radius: 50%; border: 0; cursor: pointer;
  background: rgba(255,255,255,.96); box-shadow: 0 2px 8px rgba(15,23,42,.16);
  display: grid; place-items: center; color: #64748B; transition: all .15s; z-index: 2;
}
.ld-dlcard__fav:hover { transform: scale(1.06); }
.ld-dlcard__fav svg { display: block; fill: none; }
/* Активное избранное: красным заливается весь кружок, сердце внутри - белое. */
.ld-dlcard__fav[data-active="1"] { background: #EF4444; color: #fff; box-shadow: 0 6px 16px rgba(239,68,68,.35); }
.ld-dlcard__fav[data-active="1"] svg { fill: #fff; stroke: #fff; }
.ld-dlcard__verified {
  position: absolute; left: 8px; bottom: 8px;
  display: inline-flex; align-items: center; gap: 4px;
  padding: 4px 8px 4px 6px; border-radius: 999px;
  background: rgba(255,255,255,.96); box-shadow: 0 2px 8px rgba(15,23,42,.16);
  font-size: 14px; font-weight: 700; color: #0F172A; white-space: nowrap; pointer-events: none;
}
.ld-dlcard__verified-dot { width: 14px; height: 14px; border-radius: 50%; background: var(--ld-accent); display: inline-grid; place-items: center; flex-shrink: 0; }

/* Тело */
.ld-dlcard__body { padding: 24px 8px 24px 0; display: flex; flex-direction: column; gap: 10px; min-width: 0; }
/* Ссылка-имя врача по правилам дизайн-системы (LD.link): цвет = --ld-accent,
   без подчёркивания, hover = opacity .7 (цвет не меняется). */
.ld-dlcard__name { font-size: 24px; font-weight: 800; color: var(--ld-accent); line-height: 1.15; letter-spacing: -0.015em; text-decoration: none; display: inline-block; transition: opacity .15s ease; }
.ld-dlcard__name:hover { color: var(--ld-accent); opacity: .7; text-decoration: none; }
.ld-dlcard__specline { font-size: 14px; color: #64748B; line-height: 1.4; margin-top: -4px; }
.ld-dlcard__rating { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: #475569; flex-wrap: wrap; }
.ld-dlcard__rating-val { display: inline-flex; align-items: center; gap: 4px; color: #16A34A; font-weight: 800; font-variant-numeric: tabular-nums; }
.ld-dlcard__rating-label { color: #0F172A; font-weight: 600; }
.ld-dlcard__rating-dot { color: #94A3B8; }
.ld-dlcard__rating-reviews { color: #64748B; }
.ld-dlcard__rating-anon { color: #94A3B8; }
.ld-dlcard__badges { display: flex; flex-wrap: wrap; gap: 6px; }
.ld-dlcard__badge {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 4px 10px; border-radius: 8px;
  background: #F1F5F9; color: #334155; font-size: 13px; font-weight: 600;
}
.ld-dlcard__badge svg { flex: 0 0 auto; }
.ld-dlcard__portfolio { display: flex; align-items: flex-start; gap: 8px; font-size: 14px; color: #475569; }
.ld-dlcard__portfolio svg { flex: 0 0 auto; margin-top: 2px; }
.ld-dlcard__portfolio strong { color: #0F172A; font-weight: 700; }
.ld-dlcard__portfolio-soft { color: #64748B; }
.ld-dlcard__meta { display: flex; flex-wrap: wrap; gap: 6px 14px; font-size: 14px; color: #475569; }
.ld-dlcard__meta-item { display: inline-flex; align-items: center; gap: 6px; }
.ld-dlcard__meta-item strong { color: #0F172A; font-weight: 700; }
.ld-dlcard__meta-sep { color: #CBD5E1; }

/* Места приёма */
.ld-dlcard__wp { margin-top: 4px; padding: 12px 14px; border-radius: 10px; background: #F8FAFC; border-left: 3px solid rgba(59,130,246,.33); position: relative; }
.ld-dlcard__wp-current { all: unset; display: flex; align-items: center; gap: 8px; width: 100%; box-sizing: border-box; cursor: default; font-family: inherit; }
.ld-dlcard__wp-current[data-wp-toggle] { cursor: pointer; }
.ld-dlcard__wp-row { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.ld-dlcard__wp-name { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; font-size: 14px; font-weight: 600; color: #0F172A; line-height: 1.3; }
.ld-dlcard__wp-rating { display: inline-flex; align-items: center; gap: 3px; color: #16A34A; font-weight: 700; font-size: 14px; font-variant-numeric: tabular-nums; }
.ld-dlcard__wp-reviews { color: #94A3B8; font-size: 14px; font-weight: 500; }
.ld-dlcard__wp-dot { color: #CBD5E1; }
.ld-dlcard__wp-loc { display: inline-flex; align-items: center; column-gap: 6px; row-gap: 2px; font-size: 14px; color: #64748B; flex-wrap: wrap; line-height: 1.6; }
.ld-dlcard__wp-metro { display: inline-flex; align-items: center; gap: 4px; }
.ld-dlcard__wp-metro-dot { width: 8px; height: 8px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(0,0,0,.08); flex: 0 0 auto; display: inline-block; }
.ld-dlcard__wp-metro-name { color: #64748B; font-weight: 600; }
.ld-dlcard__wp-more { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 4px; padding: 4px 8px; border-radius: 6px; background: #fff; box-shadow: inset 0 0 0 1px rgba(15,23,42,.10); color: #475569; font-size: 15px; font-weight: 400; align-self: center; }
.ld-dlcard__wp-dropdown { position: absolute; top: calc(100% + 4px); left: 0; width: 100%; box-sizing: border-box; background: #fff; border-radius: 12px; box-shadow: 0 18px 40px rgba(15,23,42,.16), 0 2px 6px rgba(15,23,42,.06); padding: 4px; z-index: 30; max-height: 320px; overflow-y: auto; }
.ld-dlcard__wp-opt { all: unset; display: block; box-sizing: border-box; width: 100%; cursor: pointer; padding: 10px 12px; border-radius: 8px; font-family: inherit; }
.ld-dlcard__wp-opt:hover { background: #F8FAFC; }
/* Текущее (показанное) место приёма не дублируем в выпадашке - показываем только остальные. */
.ld-dlcard__wp-opt.is-active { display: none; }

/* Aside (264px колонка, контент 200 по центру) */
.ld-dlcard__aside { width: 200px; margin: 0 auto; padding: 24px 0; display: flex; flex-direction: column; gap: 14px; justify-content: space-between; align-self: stretch; min-width: 0; }
/* Если в aside только телефон+часы (нет цен/акции) - центрируем по вертикали. */
.ld-dlcard__aside:not(:has(.ld-dlcard__aside-top)) { justify-content: center; }
.ld-dlcard__aside-top { display: flex; flex-direction: column; }
.ld-dlcard__price-lv { font-size: 12px; color: #94A3B8; text-transform: uppercase; letter-spacing: .06em; font-weight: 900; }
.ld-dlcard__price-val { font-size: 22px; font-weight: 800; color: #94A3B8; letter-spacing: -0.01em; font-variant-numeric: tabular-nums; margin-top: 8px; }
.ld-dlcard__price-name { font-size: 14px; color: #64748B; margin-top: 2px; }
.ld-dlcard__promo { margin-top: 14px; padding: 10px 12px; border-radius: 10px; background: #FEF3C7; border: 1px dashed rgba(245,158,11,.4); display: flex; flex-direction: column; gap: 2px; }
.ld-dlcard__promo-label { font-size: 11px; color: #92400E; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.ld-dlcard__promo-title { font-size: 14px; font-weight: 700; color: #0F172A; line-height: 1.3; }
.ld-dlcard__promo-sub { font-size: 14px; color: #92400E; }
.ld-dlcard__aside-cta { display: grid; gap: 8px; }
.ld-dlcard__phone-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 100%; padding: 12px 18px; border-radius: 10px; background: var(--ld-accent); color: #fff; font-family: inherit; font-size: 14px; font-weight: 700; text-decoration: none; font-variant-numeric: tabular-nums; box-shadow: 0 4px 12px rgba(59,130,246,.20); border: 0; cursor: pointer; }
.ld-dlcard__phone-btn:hover { opacity: .88; color: #fff; }
.ld-dlcard__hours { display: flex; align-items: center; justify-content: center; gap: 6px; font-size: 14px; font-weight: 600; color: #94A3B8; }
.ld-dlcard__hours.is-open { color: #16A34A; }
.ld-dlcard__hours-dot { width: 7px; height: 7px; border-radius: 50%; background: #CBD5E1; flex-shrink: 0; }
.ld-dlcard__hours.is-open .ld-dlcard__hours-dot { background: #22C55E; }

/* ---------- ПРОМО-КАРТОЧКА ВРАЧА ---------- */
.ld-pdoc { display: flex; flex-direction: column; height: 100%; background: #fff; border-radius: 20px; overflow: hidden; box-shadow: inset 0 0 0 1.5px rgba(245,158,11,.2), 0 1px 2px rgba(15,23,42,.04), 0 8px 20px rgba(245,158,11,.08); transition: transform .15s, box-shadow .15s; }
.ld-pdoc:hover { transform: translateY(-2px); box-shadow: inset 0 0 0 1.5px rgba(245,158,11,.4), 0 12px 28px rgba(245,158,11,.18); }
.ld-pdoc__photo-wrap { display: grid; place-items: center; padding: 32px; }
.ld-pdoc__photo-circle { position: relative; width: 200px; max-width: 100%; height: 200px; border-radius: 50%; background: #F1F5F9; }
.ld-pdoc__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.ld-pdoc__avatar { width: 100%; height: 100%; border-radius: 50%; display: grid; place-items: center; color: #fff; background: linear-gradient(135deg, #60A5FA, #3B82F6); font-size: 56px; font-weight: 800; }
.ld-pdoc__verified { position: absolute; left: 12px; bottom: 12px; display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px 4px 6px; border-radius: 999px; background: rgba(255,255,255,.96); box-shadow: 0 2px 8px rgba(15,23,42,.16); font-size: 14px; font-weight: 700; color: #0F172A; pointer-events: none; }
.ld-pdoc__verified-dot { width: 14px; height: 14px; border-radius: 50%; background: var(--ld-accent); display: inline-grid; place-items: center; }
.ld-pdoc__fav { right: 12px; bottom: 12px; }
.ld-pdoc__body { padding: 16px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.ld-pdoc__name { font-size: 16px; font-weight: 800; color: var(--ld-accent); line-height: 1.2; text-decoration: none; transition: opacity .15s ease; }
.ld-pdoc__name:hover { color: var(--ld-accent); opacity: .7; text-decoration: none; }
.ld-pdoc__specs { font-size: 14px; color: #334155; line-height: 1.35; font-weight: 500; }
.ld-pdoc__meta { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: #475569; flex-wrap: wrap; }
.ld-pdoc__rating { display: inline-flex; align-items: center; gap: 4px; color: #16A34A; font-weight: 800; font-variant-numeric: tabular-nums; }
.ld-pdoc__sep { color: #CBD5E1; }
.ld-pdoc__meta strong { color: #0F172A; font-weight: 700; }
.ld-pdoc__offer { padding: 8px 12px; border-radius: 10px; background: linear-gradient(95deg, #FEF3C7 0%, #FEF3C7 70%, #FDE68A 100%); border: 1px dashed rgba(245,158,11,.4); }
.ld-pdoc__offer-label { font-size: 11px; color: #92400E; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; margin-bottom: 2px; }
.ld-pdoc__offer-title { font-size: 14px; font-weight: 800; color: #0F172A; line-height: 1.25; }
.ld-pdoc__offer-sub { font-size: 14px; color: #92400E; margin-top: 2px; font-weight: 600; }
.ld-pdoc__wp { display: flex; flex-direction: column; gap: 4px; font-size: 14px; color: #475569; line-height: 1.4; }
.ld-pdoc__wp-name { color: #0F172A; font-weight: 600; }
.ld-pdoc__wp-loc { display: block; color: #64748B; font-size: 14px; line-height: 1.4; }
.ld-pdoc__wp-loc .ld-dlcard__wp-metro-dot { margin-right: 4px; vertical-align: middle; }
.ld-pdoc__cta { margin-top: auto; padding: 10px 14px; border-radius: 10px; border: 0; cursor: pointer; background: var(--ld-accent); color: #fff; font-family: inherit; font-size: 14px; font-weight: 700; font-variant-numeric: tabular-nums; display: inline-flex; align-items: center; justify-content: center; gap: 8px; text-decoration: none; }
.ld-pdoc__cta:hover { opacity: .9; color: #fff; }

/* ---------- ПИТЧ-КАРТОЧКА (пустой промо-слот) ---------- */
.ld-ppitch { display: flex; flex-direction: column; height: 100%; border-radius: 20px; overflow: hidden; position: relative; background: repeating-linear-gradient(135deg, #fff 0 14px, #FAFAF7 14px 28px); box-shadow: inset 0 0 0 1.5px #CBD5E1; }
.ld-ppitch__top { position: relative; aspect-ratio: 1 / 1; overflow: hidden; background: linear-gradient(180deg, #F1F5F9 0%, #E2E8F0 100%); display: grid; place-items: center; }
.ld-ppitch__ghost { opacity: .35; }
.ld-ppitch__count { position: absolute; top: 10px; right: 10px; padding: 4px 9px; border-radius: 6px; background: #fff; color: #0F172A; font-size: 11px; font-weight: 700; font-variant-numeric: tabular-nums; box-shadow: 0 1px 3px rgba(15,23,42,.10); }
.ld-ppitch__overlay { position: absolute; inset: 0; display: grid; place-items: center; pointer-events: none; }
.ld-ppitch__overlay-pill { padding: 6px 12px; border-radius: 999px; background: rgba(15,23,42,.78); color: #fff; font-size: 12px; font-weight: 700; }
.ld-ppitch__body { padding: 16px; display: flex; flex-direction: column; gap: 12px; flex: 1; }
.ld-ppitch__title { font-size: 16px; font-weight: 800; color: #0F172A; line-height: 1.25; }
.ld-ppitch__subtitle { font-size: 13px; color: #475569; margin-top: 4px; line-height: 1.4; }
.ld-ppitch__stats { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 8px; padding: 10px 12px; border-radius: 10px; background: #fff; box-shadow: inset 0 0 0 1px #E2E8F0; }
.ld-ppitch__stat--bordered { border-left: 1px solid #E2E8F0; padding-left: 8px; }
.ld-ppitch__stat-val { font-size: 15px; font-weight: 800; color: #0F172A; font-variant-numeric: tabular-nums; letter-spacing: -0.01em; }
.ld-ppitch__stat-label { font-size: 11px; color: #64748B; margin-top: 1px; }
.ld-ppitch__scarcity { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 12px; color: #475569; }
.ld-ppitch__scarcity-left { display: inline-flex; align-items: center; gap: 6px; }
.ld-ppitch__scarcity-dot { width: 6px; height: 6px; border-radius: 50%; background: #DC2626; }
.ld-ppitch__price { color: #0F172A; font-weight: 700; font-variant-numeric: tabular-nums; }
.ld-ppitch__cta { margin-top: auto; padding: 10px 14px; border-radius: 10px; border: 0; cursor: pointer; background: #0F172A; color: #fff; font-family: inherit; font-size: 13px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; gap: 6px; }

/* ---------- МОБИЛЬНАЯ ВЕРСИЯ КАРТОЧКИ ВРАЧА ---------- */
@media (max-width: 768px) {
  .ld-dlcards { gap: 12px; }
  .ld-dlcard { display: flex; flex-direction: column; align-items: stretch; border-radius: 16px; }
  .ld-dlcard__photo-col { padding: 18px 18px 0; justify-content: flex-start; }
  .ld-dlcard__photo-wrap { width: 120px; height: 120px; margin: 0; }
  .ld-dlcard__body { padding: 16px; }
  .ld-dlcard__name { font-size: 19px; }
  .ld-dlcard__aside { width: 100%; margin: 0; padding: 14px 16px 18px; border-top: 1px dashed rgba(15,23,42,.08); }
  .ld-dfilters__grid { grid-template-columns: 1fr; }
}

/* Промо-ряд врачей: число колонок под фактическое число карточек (только desktop;
   на мобильном остаётся 1 колонка из базового правила). */
@media (min-width: 769px) {
  .ld-promo-row__grid--c2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ld-promo-row__grid--c3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
/* Сноска в питч-карточке («* по данным промо размещений») */
.ld-ppitch__footnote { font-size: 11px; color: #94A3B8; line-height: 1.4; margin-top: -2px; }
/* Подпись-призыв над кнопкой (карточка 3: «Забронируйте место в ТОП») */
.ld-ppitch__caption { font-size: 12px; font-weight: 700; color: var(--ld-accent); line-height: 1.35; }

/* ============================================================
   СТРАНИЦА ОШИБКИ (404 и др.) - новый дизайн
   Рендерится из SiteController::actionError при ?ui=new.
   Разметка: views/redesign/site/error.php
   ============================================================ */
.ld-error { padding: 64px 0 96px; }
.ld-error__inner { display: flex; flex-direction: column; align-items: center; text-align: center; }
.ld-error__code {
  font-size: 120px; font-weight: 800; line-height: 1; letter-spacing: -0.04em;
  color: var(--ld-accent); margin-bottom: 16px; font-variant-numeric: tabular-nums;
}
.ld-error__title { font-size: 28px; font-weight: 800; color: #0F172A; margin: 0 0 14px; letter-spacing: -0.01em; }
.ld-error__lead { font-size: 17px; color: #334155; margin: 0 0 12px; max-width: 560px; line-height: 1.5; }
.ld-error__sub { font-size: 14px; color: #64748B; margin: 0 0 28px; max-width: 560px; line-height: 1.55; }
.ld-error__link { color: var(--ld-accent); text-decoration: none; }
.ld-error__link:hover { text-decoration: underline; }
.ld-error__actions { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.ld-error__btn {
  display: inline-flex; align-items: center; gap: 8px; padding: 12px 22px;
  border-radius: 12px; border: 0; cursor: pointer; font-family: inherit;
  font-size: 15px; font-weight: 700; text-decoration: none;
  background: var(--ld-accent); color: #fff; transition: background .15s;
}
.ld-error__btn:hover { background: #2563EB; }
.ld-error__btn--ghost {
  background: #fff; color: #334155; border: 1px solid rgba(15, 23, 42, .12);
}
.ld-error__btn--ghost:hover { background: #F1F5F9; }

@media (max-width: 640px) {
  .ld-error { padding: 40px 0 64px; }
  .ld-error__code { font-size: 84px; }
  .ld-error__title { font-size: 22px; }
  .ld-error__lead { font-size: 15px; }
}

/* ─── Антибот ─── */
.ld-antibot__icon { margin-bottom: 20px; display: flex; align-items: center; justify-content: center; width: 88px; height: 88px; border-radius: 50%; background: #F8FAFC; border: 1px solid #E2E8F0; }
.ld-antibot__alert { background: #FEF2F2; border: 1px solid #FECACA; color: #B91C1C; font-size: 14px; padding: 12px 16px; border-radius: 10px; margin-bottom: 16px; width: 100%; max-width: 340px; text-align: center; }

/* ─── Промо-акция (страница /s<id>): hero + описание по эталону PromoHero/PromoIncludes ─── */
/* padding-bottom даёт белый зазор перед затонированным блоком клиник/врачей (как переход
   между секциями в остальном редизайне); сам блок ниже — .ld-section.ld-section--bg (40px). */
.ld-promo-hero { padding-top: 28px; padding-bottom: 40px; }
.ld-promo-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
  gap: 48px; align-items: center;
}
.ld-promo-body { max-width: 720px; font-size: 18px; line-height: 1.75; color: #334155; text-wrap: pretty; }
.ld-promo-body p { margin: 0 0 14px; }
.ld-promo-body p:last-child { margin-bottom: 0; }
.ld-promo-bignum { font-size: 56px; font-weight: 800; letter-spacing: -0.03em; line-height: 1; font-variant-numeric: tabular-nums; }
@media (max-width: 768px) {
  .ld-promo-hero { padding-top: 16px; padding-bottom: 28px; }
  .ld-promo-hero__grid { grid-template-columns: 1fr; gap: 22px; }
  .ld-promo-body { font-size: 16px; }
  .ld-promo-bignum { font-size: 44px; }
}

/* ─── Чекбоксы врачей на форме редактирования акции ─── */
.ld-action-doctors { display: grid; gap: 8px; }
.ld-action-doc {
  display: flex; align-items: center; gap: 11px;
  padding: 9px 12px; background: #F8FAFC;
  border: 1px solid rgba(15,23,42,.08); border-radius: 10px;
  cursor: pointer; font-size: 14px; transition: background .12s, border-color .12s;
}
.ld-action-doc:hover { background: #F1F5F9; }
.ld-action-doc input[type="checkbox"] { width: 18px; height: 18px; flex: 0 0 auto; accent-color: var(--ld-accent); cursor: pointer; margin: 0; }
.ld-action-doc__txt { display: flex; flex-direction: column; min-width: 0; }
.ld-action-doc__fio { font-weight: 600; color: var(--ld-fg); line-height: 1.25; }
.ld-action-doc__spec { font-size: 12px; color: #64748B; margin-top: 1px; }

/* ─── Форма редактирования события (redesign): /user/edit-event?ui=new ─── */
.ld-event-form__head { font-size: 19px; font-weight: 800; color: var(--ld-fg); letter-spacing: -0.01em; margin: 0 0 18px; }
.ld-event-form .ld-form-field { min-width: 0; }
.ld-event-form .ld-form-field .ld-form-input,
.ld-event-form .ld-form-field .ld-form-select { width: 100%; }
.ld-event-form .ld-form-field .select2-container { width: 100% !important; }
.ld-event-form .razdelitel { height: 1px; background: rgba(15,23,42,.08); margin: 18px 0; }

/* event-form: stacked-метки (label сверху), строка времени, чекбокс адреса */
.ld-event-form .ld-form-row--stack { margin-bottom: 16px; }
.ld-event-form .ld-form-row--stack > .ld-form-label { padding-top: 0; font-weight: 600; color: #475569; }
.ld-event-time { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.ld-event-time .med-event-date { max-width: 150px; }
.ld-event-time__hm { max-width: 76px; }
.ld-event-time__sep { color: #64748B; font-size: 14px; }
.ld-event-time__clear { color: #94A3B8; margin-left: 2px; display: inline-flex; align-items: center; }
.ld-event-time__clear:hover { color: #EF4444; }
.ld-event-check { display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--ld-fg); cursor: pointer; margin: 6px 0; }
.ld-event-check input[type="checkbox"] { width: 18px; height: 18px; flex: 0 0 auto; accent-color: var(--ld-accent); margin: 0; cursor: pointer; }

/* event-form: гарантированный зазор между рядами + выравнивание */
.ld-event-form .ld-form-row { margin-bottom: 18px; align-items: start; }
.ld-event-form .ld-form-input { height: 40px; }

/* ─── Нормализация легаси-виджетов (адрес/лекторы/специальности/автокомплиты) внутри формы события ─── */
.ld-event-form .editor-block-line { display: block; float: none; width: auto; margin: 0 0 12px; }
.ld-event-form .editor-block-line:after { content: ""; display: block; clear: both; }
.ld-event-form .editor-block-line-left { display: block; float: none; width: auto; padding: 0; margin: 0 0 6px; font-size: 14px; font-weight: 600; color: #475569; }
/* Текстовые поля и нативные селекты легаси-виджетов → вид .ld-form-input/.ld-form-select */
.ld-event-form .editor-block-line input[type="text"],
.ld-event-form .editor-block-line input:not([type]),
.ld-event-form input.addressselector_autocomplete,
.ld-event-form .ld-form-field .ui-autocomplete-input,
.ld-event-form .ld-form-field select,
.ld-event-form select.slct_comments {
  width: 100%; max-width: 100%; height: 40px; box-sizing: border-box;
  border: 1px solid #CBD5E1; border-radius: 8px; padding: 8px 12px;
  font: inherit; font-size: 14px; line-height: 1.4; background: #fff; color: var(--ld-fg);
}
/* Крестик-очистка рядом с автокомплитом — на той же строке, поле чуть короче */
.ld-event-form .editor-block-line .ui-autocomplete-input,
.ld-event-form .editor-block-line input.addressselector_autocomplete { width: calc(100% - 28px); display: inline-block; vertical-align: middle; }
.ld-event-form .editor-block-line > a { display: inline-flex; align-items: center; justify-content: center; width: 22px; color: #94A3B8; vertical-align: middle; }
.ld-event-form .editor-block-line > a:hover { color: #EF4444; }
/* Селекторы лекторов/специальностей — убираем легаси float-сдвиги */
.ld-event-form .vrachselector, .ld-event-form .multiselector { float: none; width: 100%; }

/* fix: метки виджетов слева; ссылки «Добавить…» не сжимать; крестик отдельно от add-ссылок */
.ld-event-form .editor-block-line-left { text-align: left; }
.ld-event-form .editor-block-line > a { width: auto; display: inline-flex; align-items: center; gap: 4px; color: var(--ld-accent); font-weight: 600; text-decoration: none; }
.ld-event-form .editor-block-line > a:has(.fa-close) { color: #94A3B8; font-weight: 400; }
.ld-event-form .editor-block-line > a:has(.fa-close):hover { color: #EF4444; }

/* Select2 (Тип, краткий режим) — приводим к виду .ld-form-input в форме события */
.ld-event-form .select2-container { width: 100% !important; }
.ld-event-form .select2-container--default .select2-selection--single {
  height: 40px; border: 1px solid #CBD5E1; border-radius: 8px; background: #fff;
}
.ld-event-form .select2-container--default .select2-selection--single .select2-selection__rendered {
  line-height: 38px; padding-left: 12px; color: var(--ld-fg); font-size: 14px;
}
.ld-event-form .select2-container--default .select2-selection--single .select2-selection__arrow {
  height: 38px; right: 8px; border: none; background: transparent;
}

/* Любой текстовый инпут в правой колонке (напр. «Дом» из AddressSelector с class='') — на всю ширину, вид .ld-form-input */
.ld-event-form .ld-form-field input[type="text"],
.ld-event-form .ld-form-field input:not([type]) {
  width: 100%; height: 40px; box-sizing: border-box;
  border: 1px solid #CBD5E1; border-radius: 8px; padding: 8px 12px;
  font: inherit; font-size: 14px; line-height: 1.4; background: #fff; color: var(--ld-fg);
}

/* Крестик-очистка города/улицы — на одной строке с полем (input чуть короче) */
#addevent_form .editor-block-line input.ui-autocomplete-input,
#addevent_form .editor-block-line input.addressselector_autocomplete { width: calc(100% - 32px); display: inline-block; vertical-align: middle; }
#addevent_form .editor-block-line input.ui-autocomplete-input + a,
#addevent_form .editor-block-line input.addressselector_autocomplete + a { vertical-align: middle; margin-left: 6px; }

/* Вложенные ряды ($form->field из AddressSelector, напр. «Дом») в правой колонке — в стек (метка сверху, поле на всю ширину), как Страна/Город/Улица */
.ld-event-form .ld-form-field .ld-form-row { display: block; margin-bottom: 12px; }
.ld-event-form .ld-form-field .ld-form-row:last-child { margin-bottom: 0; }
.ld-event-form .ld-form-field .ld-form-row > .ld-form-label { display: block; padding-top: 0; margin-bottom: 6px; }
.ld-event-form .ld-form-field .ld-form-row .ld-form-field { width: 100%; }

/* Крестик у селекта специализации — на одной строке с селектом */
#addevent_form .multiselector_element select.select2sl,
#addevent_form .multiselector_element select.slct_comments { width: calc(100% - 32px); display: inline-block; vertical-align: middle; }
#addevent_form .multiselector_element select.select2sl + a,
#addevent_form .multiselector_element select.slct_comments + a { vertical-align: middle; margin-left: 6px; display: inline-flex; }

/* Select2-контейнер специализации — короче на ширину крестика, чтобы крестик влез на строку */
#addevent_form .multiselector_element .editor-block-line > span.select2-container { width: calc(100% - 32px) !important; vertical-align: middle; }
#addevent_form .multiselector_element .editor-block-line > span.select2-container + a { vertical-align: middle; margin-left: 6px; }

/* ============================================================
   Логин-модалка редизайна (window.loginWindow в redesign.js).
   Рендерит партиал /site/login-form (VK + телефон). Классы партиала
   (.auth-bt-vk/.auth-bt-ph/.med-alert/.popup-legal-links) - из старого
   main.css, который в редизайне не подключён, поэтому стилизуем тут.
   ============================================================ */
.ld-modal-overlay {
  position: fixed; inset: 0; z-index: 10000;
  background: rgba(15, 23, 42, .55);
  display: flex; align-items: center; justify-content: center;
  padding: 20px; box-sizing: border-box;
}
.ld-modal {
  position: relative;
  width: 100%; max-width: 460px;
  background: #fff; border-radius: 20px;
  padding: 32px 30px 26px;
  box-shadow: 0 24px 60px rgba(15, 23, 42, .28);
  font-family: 'Manrope', sans-serif;
  max-height: calc(100vh - 40px); overflow-y: auto;
}
.ld-modal__close {
  position: absolute; top: 14px; right: 14px;
  width: 36px; height: 36px; padding: 0; border: 0; background: none;
  display: flex; align-items: center; justify-content: center;
  font-size: 26px; line-height: 1; color: #94A3B8;
  cursor: pointer; border-radius: 10px;
}
.ld-modal__close:hover { color: #0F172A; background: #F1F5F9; }
.ld-modal__title {
  font-size: 20px; font-weight: 800; color: #0F172A;
  margin: 0 40px 18px 0; letter-spacing: -.01em; line-height: 1.25;
}
.ld-modal__body { font-size: 15px; color: #334155; }
.ld-modal__body > p { margin: 0 0 14px; line-height: 1.5; color: #475569; font-size: 15px; }

/* Кнопки входа */
.ld-modal .auth-bt-vk,
.ld-modal .auth-bt-ph {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  width: 100%; box-sizing: border-box;
  padding: 14px 18px; margin-bottom: 12px;
  border-radius: 12px; font-size: 16px; font-weight: 700;
  color: #fff; cursor: pointer; line-height: 1.2;
  font-family: 'Manrope', sans-serif;
  transition: filter .15s;
}
.ld-modal .auth-bt-vk { background: #4C75A3; }
.ld-modal .auth-bt-ph { background: #16A34A; }
.ld-modal .auth-bt-vk:hover,
.ld-modal .auth-bt-ph:hover { filter: brightness(1.06); }
.ld-modal .auth-bt-vk i,
.ld-modal .auth-bt-ph i { font-size: 18px; }
.ld-modal a { text-decoration: none; }
.ld-modal .phone_login_phone { display: none; }

/* Инфо/ошибки телефонного входа */
.ld-modal .med-alert,
.ld-modal .phone_login_error {
  display: none; margin-top: 12px;
  padding: 12px 14px; border-radius: 10px;
  background: #FEF2F2; border: 1px solid rgba(220, 38, 38, .2);
  color: #DC2626; font-size: 14px; line-height: 1.45;
}
.ld-modal .med-success,
.ld-modal .phone_login_info {
  margin-top: 12px;
  padding: 12px 14px; border-radius: 10px;
  background: #F0FDF4; border: 1px solid rgba(22, 163, 74, .25);
  color: #166534; font-size: 14px; line-height: 1.45;
}
.ld-modal .med-success p { margin: 0 0 6px; }

/* Юр. ссылки под кнопками */
.ld-modal .popup-legal-links {
  display: block; margin-top: 14px;
  font-size: 14px; line-height: 1.5; color: #94A3B8;
}
.ld-modal .popup-legal-links a { color: var(--ld-accent); }
.ld-modal .popup-legal-links span { text-decoration: underline; cursor: pointer; }

/* Модалка входа на мобильных: прижата к верху, на всю ширину, удобный скролл */
@media (max-width: 520px) {
  .ld-modal-overlay { padding: 12px; align-items: flex-start; }
  .ld-modal {
    max-width: 100%;
    padding: 28px 18px 22px;
    margin-top: 16px;
    border-radius: 18px;
  }
  .ld-modal__title { font-size: 19px; margin-right: 38px; }
  .ld-modal__close { top: 12px; right: 12px; }
}

/* ====== jQuery UI Datepicker — стиль под редизайн ============================
   Календарь рендерится как ребёнок <body>, поэтому скоупим через body.ld-page,
   чтобы не задеть старый дизайн. Используем Manrope, мягкие тени и accent
   из системы. Сетка дней: 36px квадраты, акцент на «сегодня» и hover. */
body.ld-page .ui-datepicker {
  width: 282px; padding: 8px;
  font-family: Manrope, system-ui, sans-serif;
  font-size: 13px; color: var(--ld-fg, #0F172A);
  background: #fff;
  border: 1px solid rgba(15,23,42,.08);
  border-radius: 12px;
  box-shadow: 0 12px 32px rgba(15,23,42,.14);
}
body.ld-page .ui-datepicker .ui-datepicker-header {
  background: transparent; border: 0;
  padding: 4px 0 8px; position: relative;
}
body.ld-page .ui-datepicker .ui-datepicker-title {
  font-weight: 700; font-size: 14px; color: var(--ld-fg, #0F172A);
  text-align: center; line-height: 28px;
}
body.ld-page .ui-datepicker .ui-datepicker-prev,
body.ld-page .ui-datepicker .ui-datepicker-next {
  width: 28px; height: 28px; top: 4px;
  border-radius: 8px; background: transparent;
  cursor: pointer; border: 0;
  display: flex; align-items: center; justify-content: center;
}
body.ld-page .ui-datepicker .ui-datepicker-prev:hover,
body.ld-page .ui-datepicker .ui-datepicker-next:hover {
  background: rgba(15,23,42,.06);
}
body.ld-page .ui-datepicker .ui-datepicker-prev { left: 4px; }
body.ld-page .ui-datepicker .ui-datepicker-next { right: 4px; }
body.ld-page .ui-datepicker .ui-datepicker-prev span,
body.ld-page .ui-datepicker .ui-datepicker-next span {
  background: none !important; text-indent: 0;
  position: static; margin: 0;
  display: inline-block; width: auto; height: auto;
  font-size: 14px; color: var(--ld-fg-soft, #64748B);
}
body.ld-page .ui-datepicker table {
  width: 100%; border-collapse: collapse;
  margin: 0; font-size: 13px;
}
body.ld-page .ui-datepicker th {
  padding: 6px 0; text-align: center;
  font-weight: 700; font-size: 11px;
  color: var(--ld-fg-faint, #94A3B8);
  text-transform: uppercase; letter-spacing: .04em;
  border: 0;
}
body.ld-page .ui-datepicker td {
  padding: 2px; border: 0;
}
body.ld-page .ui-datepicker td a,
body.ld-page .ui-datepicker td span {
  display: flex; align-items: center; justify-content: center;
  width: 34px; height: 34px; padding: 0;
  border-radius: 8px;
  color: var(--ld-fg, #0F172A); font-weight: 500;
  text-decoration: none; text-align: center;
  background: transparent; border: 0;
  font-variant-numeric: tabular-nums;
  transition: background .12s, color .12s;
}
body.ld-page .ui-datepicker td a:hover {
  background: var(--ld-accent-soft, rgba(59,130,246,.12));
  color: var(--ld-accent, #3B82F6);
}
body.ld-page .ui-datepicker td .ui-state-active,
body.ld-page .ui-datepicker td a.ui-state-active {
  background: var(--ld-accent, #3B82F6); color: #fff;
  font-weight: 700;
}
body.ld-page .ui-datepicker td .ui-state-highlight,
body.ld-page .ui-datepicker td a.ui-state-highlight {
  background: rgba(59,130,246,.10); color: var(--ld-accent, #3B82F6);
  box-shadow: inset 0 0 0 1px rgba(59,130,246,.35); font-weight: 700;
}
body.ld-page .ui-datepicker td span {
  color: var(--ld-fg-faint, #CBD5E1); cursor: default;
}
body.ld-page .ui-datepicker .ui-datepicker-buttonpane {
  border: 0; padding: 6px 0 2px; margin: 6px 0 0;
}
body.ld-page .ui-datepicker .ui-datepicker-buttonpane button {
  font-family: inherit; font-size: 13px; font-weight: 600;
  padding: 6px 12px; border-radius: 8px; border: 0;
  background: var(--ld-accent-soft, rgba(59,130,246,.12));
  color: var(--ld-accent, #3B82F6); cursor: pointer;
}
body.ld-page .ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-close {
  background: rgba(15,23,42,.06); color: var(--ld-fg, #0F172A);
}
/* Метка-плашка занятой даты (delayed_dates в workform/videoform) */
body.ld-page .ui-datepicker td.datepicker-busy > a,
body.ld-page .ui-datepicker td.datepicker-busy > span {
  background: rgba(245,158,11,.18); color: #92400E;
}
