/* Med-Compas — public pages styles for global components.
   Page-specific styles (home/service-detail/etc.) — будут отдельно в Phase 4 (детали).
   Tokens используются только из var(--...). */

/* ───── Form validation states (phone + общая) ──────── */
.form-field { position: relative; }
.form-field input.is-invalid,
.form-field select.is-invalid,
.form-field textarea.is-invalid {
  border-color: var(--color-danger);
  box-shadow: 0 0 0 3px rgba(217, 48, 37, 0.12);
}
.form-field input.is-invalid:focus,
.form-field select.is-invalid:focus,
.form-field textarea.is-invalid:focus {
  outline: none;
  border-color: var(--color-danger);
  box-shadow: 0 0 0 3px rgba(217, 48, 37, 0.25);
}
.form-field__error {
  display: block;
  margin: 6px 0 0;
  font-size: var(--fs-sm);
  line-height: 1.4;
  color: var(--color-danger);
}
.form-field__error:empty { display: none; }
.form-field__hint {
  display: block;
  margin: 4px 0 0;
  font-size: var(--fs-xs);
  color: var(--color-text-muted);
}

/* ───── Header ────────────────────────────────────────── */
.site-header {
  position: sticky;
  top: 0;
  z-index: var(--z-header);
  background: var(--color-bg);
  border-bottom: 1px solid var(--color-border);
}
.site-header__inner {
  display: flex;
  align-items: center;
  gap: var(--space-lg);
  padding-block: var(--space-sm);
}
.site-header__logo { text-decoration: none; color: var(--color-primary); font-family: var(--font-heading); font-weight: 800; font-size: var(--fs-xl); display: inline-flex; align-items: center; }
.site-header__logo:hover { color: var(--color-primary-hover); text-decoration: none; }
.site-header__logo-img { height: 40px; width: auto; display: block; }
@media (max-width: 480px) {
  .site-header__logo-img { height: 32px; }
  .site-header__inner { gap: var(--space-sm); }
  .site-header__actions { gap: var(--space-sm); }
  .site-header__tel { font-size: 0.875rem; padding-inline: 0; }
  .site-header__tel i { width: 18px; height: 18px; }
}
@media (max-width: 380px) {
  .site-header__wa { display: none; }
}
.site-header__nav { display: none; }
.site-header__nav ul { display: flex; gap: var(--space-lg); list-style: none; padding: 0; margin: 0; }
.site-header__nav a { color: var(--color-text); text-decoration: none; font-weight: 500; padding-block: var(--space-xs); }
.site-header__nav a:hover, .site-header__nav a:focus-visible { color: var(--color-primary); }
.site-header__nav .has-dropdown { position: relative; }
.site-header__nav .dropdown {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 220px;
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-lg);
  padding: var(--space-sm);
  flex-direction: column;
  gap: var(--space-xs);
  z-index: var(--z-dropdown);
}
.site-header__nav .has-dropdown:hover .dropdown,
.site-header__nav .has-dropdown:focus-within .dropdown { display: flex; }
.site-header__nav .dropdown li a { padding: var(--space-xs) var(--space-sm); border-radius: var(--radius-sm); display: block; }
.site-header__nav .dropdown li a:hover { background: var(--color-bg-section); }
.site-header__actions { margin-left: auto; display: flex; align-items: center; gap: var(--space-md); }
.site-header__tel {
  color: var(--color-text);
  text-decoration: none;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
  min-height: 48px;
  padding-block: var(--space-sm);
  white-space: nowrap;
}
.site-header__tel:hover { color: var(--color-primary); }
.site-header__wa {
  display: inline-flex; align-items: center; justify-content: center;
  width: 48px; height: 48px;
  background: var(--color-primary-soft); color: var(--color-success);
  border-radius: var(--radius-full); text-decoration: none;
}
.site-header__wa:hover { background: var(--color-success); color: #fff; }
.site-header__cta { display: none; }
.site-header__hamburger {
  background: transparent;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  width: 48px; height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

/* Mobile: при .is-open раскрываем nav как absolute-overlay под header.
   На десктопе (≥1024px) этот блок перекрывается правилом ниже. */
.site-header__nav.is-open {
  display: block;
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: var(--color-bg);
  border-bottom: 1px solid var(--color-border);
  padding: var(--space-md) var(--space-lg);
  box-shadow: var(--shadow-lg);
  z-index: var(--z-dropdown);
}
.site-header__nav.is-open ul {
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-sm);
}
.site-header__nav.is-open .dropdown {
  position: static;
  display: flex;
  box-shadow: none;
  border: none;
  padding-left: var(--space-md);
  min-width: 0;
}

@media (min-width: 1024px) {
  .site-header__nav { display: block; }
  .site-header__cta { display: inline-flex; }
  .site-header__hamburger { display: none; }
}

/* ───── Footer ────────────────────────────────────────── */
.site-footer {
  background: var(--color-bg-section);
  border-top: 1px solid var(--color-border);
  padding-block: var(--space-2xl) var(--space-lg);
  font-size: var(--fs-sm);
}
.site-footer__cols { display: grid; grid-template-columns: 1fr; gap: var(--space-xl); }
.site-footer__col h4 {
  font-family: var(--font-heading);
  font-size: var(--fs-base);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-text-muted);
  margin: 0 0 var(--space-md);
}
.site-footer ul { list-style: none; padding: 0; margin: 0; }
.site-footer li { margin-bottom: var(--space-sm); }
.site-footer a { color: var(--color-text); text-decoration: none; display: inline-flex; align-items: center; gap: var(--space-xs); }
.site-footer a:hover { color: var(--color-primary); }
.site-footer__contacts a, .site-footer__contacts li { gap: var(--space-xs); }
.site-footer__socials { display: flex; gap: var(--space-sm); }
.site-footer__socials a {
  width: 40px; height: 40px;
  border-radius: var(--radius-full);
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  display: inline-flex; align-items: center; justify-content: center;
}
.site-footer__legal {
  margin-top: var(--space-xl);
  padding-top: var(--space-lg);
  border-top: 1px solid var(--color-border);
  text-align: center;
}
.site-footer__warning { color: var(--color-text-muted); font-size: var(--fs-xs); margin-top: var(--space-sm); }

@media (min-width: 768px) {
  .site-footer__cols { grid-template-columns: repeat(3, 1fr); }
}

/* ───── Breadcrumbs ───────────────────────────────────── */
.breadcrumbs { padding-block: var(--space-md); font-size: var(--fs-sm); color: var(--color-text-muted); }
.breadcrumbs ol { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: var(--space-xs); }
.breadcrumbs li { display: inline-flex; align-items: center; gap: var(--space-xs); }
.breadcrumbs a { color: var(--color-text-muted); text-decoration: none; }
.breadcrumbs a:hover { color: var(--color-primary); text-decoration: underline; }
.breadcrumbs [aria-current="page"] { color: var(--color-text); font-weight: 500; }
.breadcrumbs__sep { color: var(--color-border); user-select: none; }

/* ───── Sticky bar mobile ─────────────────────────────── */
.sticky-bar-mobile {
  display: none;
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: var(--z-sticky-bar);
  background: var(--color-bg);
  border-top: 1px solid var(--color-border);
  box-shadow: var(--shadow-lg);
  padding: var(--space-sm);
  gap: var(--space-sm);
  padding-bottom: calc(var(--space-sm) + env(safe-area-inset-bottom, 0px));
}
.sticky-bar-mobile a, .sticky-bar-mobile button {
  flex: 1; display: inline-flex; align-items: center; justify-content: center;
  gap: var(--space-xs); min-height: 48px;
  border-radius: var(--radius-md); font-size: var(--fs-base); font-weight: 600;
  text-decoration: none; cursor: pointer; border: none;
}
.sticky-bar-mobile .sbb-call { background: var(--color-primary-soft); color: var(--color-primary); }
.sticky-bar-mobile .sbb-call:hover { background: var(--color-primary); color: #fff; }
.sticky-bar-mobile .sbb-book { background: var(--color-primary); color: #fff; }
.sticky-bar-mobile .sbb-book:hover { background: var(--color-primary-hover); }

@media (max-width: 767px) {
  .sticky-bar-mobile { display: flex; }
  body { padding-bottom: 72px; }
}

/* ───── Booking modal ─────────────────────────────────── */
.booking-modal {
  border: none;
  border-radius: var(--radius-xl);
  padding: var(--space-2xl);
  background: var(--color-bg);
  box-shadow: var(--shadow-xl);
  width: min(480px, 92vw);
}
.booking-modal::backdrop {
  background: rgba(15, 23, 42, 0.5);
  backdrop-filter: blur(4px);
}
.booking-modal h2 { font-size: var(--fs-2xl); margin: 0 0 var(--space-xs); }
.booking-modal__lede { color: var(--color-text-muted); margin: 0 0 var(--space-lg); }
.booking-modal__close {
  position: absolute; top: var(--space-md); right: var(--space-md);
  background: transparent; border: none; cursor: pointer; color: var(--color-text-muted);
}

@media (max-width: 767px) {
  .booking-modal {
    width: 100%; max-width: 100%;
    border-radius: var(--radius-xl) var(--radius-xl) 0 0;
    margin: auto 0 0;
  }
}

/* ───── Form callback ─────────────────────────────────── */
.form-callback {
  background: var(--color-primary-soft);
  border-radius: var(--radius-lg);
  padding: var(--space-xl);
}
.form-callback__title { font-family: var(--font-heading); font-size: var(--fs-2xl); margin: 0 0 var(--space-xs); }
/* on primary-soft background — use full text colour for AAA contrast (D6 пожилая аудитория) */
.form-callback__lede { color: var(--color-text); margin: 0 0 var(--space-lg); }
.form-callback .form-field-checkbox { color: var(--color-text); }
.form-callback__row {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
  margin-bottom: var(--space-md);
}
@media (min-width: 1024px) {
  .form-callback__row { grid-template-columns: 1fr 1fr auto; align-items: end; }
  .form-callback__row .btn { min-width: 180px; }
}
.form-callback__consent,
.booking-modal__consent {
  color: var(--color-text-muted);
  font-size: var(--fs-sm);
  margin: var(--space-sm) 0 0;
  line-height: 1.4;
}
.form-callback__consent a,
.booking-modal__consent a {
  color: var(--color-primary);
}
.form-callback__consent a:hover,
.booking-modal__consent a:hover {
  text-decoration: underline;
}
.booking-modal__consent { text-align: center; }

/* ───── Trust bar ─────────────────────────────────────── */
.trust-bar {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-lg);
  align-items: center;
  padding: var(--space-md) 0;
  border-top: 1px solid var(--color-border);
}
.trust-bar__item {
  display: inline-flex; align-items: center; gap: var(--space-xs);
  text-decoration: none; color: var(--color-text);
}
.trust-bar__item strong { color: var(--color-primary); font-weight: 700; }
.trust-bar__item.trust-bar__tel:hover { color: var(--color-primary); }
.trust-bar__item.trust-bar__wa { color: var(--color-success); }

@media (max-width: 640px) {
  .trust-bar { gap: var(--space-md); font-size: var(--fs-sm); }
}

/* ───── Hero (минимальная заглушка для home; полную верстку — Phase 4) ─ */
.hero { padding: var(--space-2xl) 0; }
.hero h1 { color: var(--color-text); }

/* ───── Generic service / doctor placeholders для текущих view ─ */
.services-grid h2, .doctors-grid h2 { margin-top: var(--space-2xl); }
.services-grid .grid, .doctors-grid .grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
}
@media (min-width: 768px) { .services-grid .grid, .doctors-grid .grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .services-grid .grid { grid-template-columns: repeat(3, 1fr); } .doctors-grid .grid { grid-template-columns: repeat(3, 1fr); } }
.service-card, .doctor-card {
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-lg);
  text-decoration: none;
  color: var(--color-text);
  display: block;
}
.service-card:hover, .doctor-card:hover { box-shadow: var(--shadow-lg); border-color: var(--color-primary-soft); }
.service-card .price { color: var(--color-primary); font-weight: 700; }
.link-more { display: inline-block; margin-top: var(--space-md); color: var(--color-primary); }

/* ───── Page sections ─────────────────────────────────── */
.section__title { font-size: var(--fs-3xl); margin: 0 0 var(--space-xl); }
.section__title-sm { font-size: var(--fs-xl); margin: 0 0 var(--space-md); }
.section__lede { font-size: var(--fs-lg); color: var(--color-text); max-width: var(--mw-prose); }
.section__more { margin-top: var(--space-lg); }
.section__more a { color: var(--color-primary); font-weight: 600; display: inline-flex; align-items: center; gap: var(--space-xs); }

/* ───── Hero home ─────────────────────────────────────── */
.hero-home {
  background: linear-gradient(135deg, var(--color-primary-soft) 0%, var(--color-bg) 70%);
  padding-block: var(--space-2xl);
}
.hero-home__inner { display: grid; grid-template-columns: 1fr; gap: var(--space-xl); align-items: center; }
.hero-home h1 { font-size: var(--fs-4xl); margin: 0 0 var(--space-md); }
.hero-home__lede { font-size: var(--fs-lg); color: var(--color-text); margin: 0 0 var(--space-lg); }
.hero-home__cta { display: flex; gap: var(--space-md); flex-wrap: wrap; margin-bottom: var(--space-lg); }
.hero-home__image img {
  width: 100%; height: auto; border-radius: var(--radius-xl); box-shadow: var(--shadow-lg);
  object-fit: cover; aspect-ratio: 4/3;
}

@media (min-width: 1024px) {
  .hero-home { padding-block: var(--space-3xl); }
  .hero-home__inner { grid-template-columns: 1.1fr 1fr; gap: var(--space-2xl); }
  .hero-home h1 { font-size: var(--fs-5xl); }
}
@media (max-width: 1023px) {
  .hero-home__image { order: -1; }
  .hero-home__cta .btn { flex: 1; }
}

/* ───── Hero detail ───────────────────────────────────── */
.hero-detail {
  background: var(--color-bg-section);
  padding-block: var(--space-xl);
  margin-bottom: var(--space-xl);
}
.hero-detail h1 { font-size: var(--fs-3xl); line-height: 1.2; margin: 0 0 var(--space-lg); }
.hero-detail__grid {
  display: grid;
  gap: var(--space-xl);
  grid-template-columns: 1fr;
  align-items: center;
}
@media (min-width: 1024px) {
  .hero-detail__grid {
    grid-template-columns: 1.2fr 1fr;
    gap: var(--space-2xl);
  }
}
.hero-detail__copy { display: flex; flex-direction: column; }
.hero-detail__visual { display: flex; justify-content: center; align-items: center; }
.hero-detail__visual img {
  max-width: 100%;
  height: auto;
  border-radius: var(--radius-lg);
}
@media (max-width: 767px) {
  .hero-detail__visual { order: -1; max-height: 240px; overflow: hidden; }
  .hero-detail__visual img { width: 100%; max-height: 240px; object-fit: cover; }
}
.hero-detail__meta {
  display: flex; flex-wrap: wrap; gap: var(--space-lg);
  list-style: none; padding: 0; margin: 0 0 var(--space-lg);
  font-size: var(--fs-base);
}
.hero-detail__meta li { display: inline-flex; align-items: center; gap: var(--space-xs); color: var(--color-text); }
.hero-detail__price { color: var(--color-primary); font-weight: 700; font-size: var(--fs-xl); }
.hero-detail__cta { display: flex; flex-wrap: wrap; gap: var(--space-md); align-items: center; }
.hero-detail__tel { color: var(--color-text); font-weight: 600; text-decoration: none; display: inline-flex; align-items: center; gap: var(--space-xs); padding-block: var(--space-sm); min-height: 48px; }
.hero-detail__tel:hover { color: var(--color-primary); }
.hero-detail__wa { color: var(--color-success); text-decoration: none; display: inline-flex; align-items: center; gap: var(--space-xs); padding-block: var(--space-sm); min-height: 48px; }

@media (min-width: 1024px) { .hero-detail h1 { font-size: var(--fs-4xl); } }
@media (max-width: 640px) { .hero-detail__cta .btn-primary { width: 100%; } }

/* ───── Cat grid + cat-card ───────────────────────────── */
.cat-grid { display: grid; gap: var(--space-lg); grid-template-columns: 1fr; }
@media (min-width: 768px)  { .cat-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .cat-grid { grid-template-columns: repeat(3, 1fr); } }

.cat-card {
  display: flex; flex-direction: column; gap: var(--space-sm);
  padding: var(--space-xl);
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  text-decoration: none;
  color: var(--color-text);
  transition: box-shadow var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);
}
.cat-card:hover, .cat-card:focus-visible {
  box-shadow: var(--shadow-lg);
  transform: translateY(-2px);
  border-color: var(--color-primary-soft);
}
.cat-card__icon {
  width: 48px; height: 48px;
  color: var(--color-primary);
  background: var(--color-primary-soft);
  border-radius: var(--radius-md);
  display: inline-flex; align-items: center; justify-content: center;
  margin-bottom: var(--space-sm);
}
.cat-card__icon [data-lucide] { width: 24px; height: 24px; }
.cat-card__title { font-size: var(--fs-2xl); margin: 0; }
.cat-card__count { color: var(--color-primary); font-weight: 600; margin: 0; }
.cat-card__desc { color: var(--color-text-muted); margin: 0; }
.cat-card__cta { margin-top: auto; color: var(--color-primary); font-weight: 600; display: inline-flex; align-items: center; gap: var(--space-xs); padding-top: var(--space-sm); }

/* ───── Service card grid ─────────────────────────────── */
.svc-grid { display: grid; gap: var(--space-lg); grid-template-columns: 1fr; }
@media (min-width: 768px)  { .svc-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .svc-grid { grid-template-columns: repeat(3, 1fr); } }

.svc-card {
  display: flex; flex-direction: column;
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-lg);
  transition: box-shadow var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);
}
.svc-card:hover, .svc-card:focus-within {
  box-shadow: var(--shadow-lg); transform: translateY(-2px); border-color: var(--color-primary-soft);
}
.svc-card__link { display: contents; color: var(--color-text); text-decoration: none; }
.svc-card__icon {
  width: 40px; height: 40px;
  color: var(--color-primary);
  background: var(--color-primary-soft);
  border-radius: var(--radius-md);
  display: inline-flex; align-items: center; justify-content: center;
  margin-bottom: var(--space-sm);
}
.svc-card__title { font-size: var(--fs-xl); margin: 0 0 var(--space-sm); }
.svc-card__desc { color: var(--color-text-muted); margin: 0 0 var(--space-md); flex-grow: 1; }
.svc-card__meta { display: flex; gap: var(--space-md); list-style: none; padding: 0; margin: 0 0 var(--space-md); flex-wrap: wrap; font-size: var(--fs-sm); }
.svc-card__meta li { display: inline-flex; align-items: center; gap: var(--space-xs); }
.svc-card__price { color: var(--color-primary); font-weight: 700; font-size: var(--fs-base); }
.svc-card__actions { display: flex; gap: var(--space-sm); margin-top: auto; }
.svc-card__actions .btn { flex: 1; }
@media (max-width: 640px) {
  .svc-card__actions .btn-secondary { display: none; }
}

/* ───── Doctor cards ──────────────────────────────────── */
.doc-grid { display: grid; gap: var(--space-lg); grid-template-columns: 1fr; }
@media (min-width: 768px)  { .doc-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .doc-grid { grid-template-columns: repeat(3, 1fr); } }

.doc-card {
  display: flex; flex-direction: column;
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: var(--space-lg);
  transition: box-shadow var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out);
}
.doc-card:hover, .doc-card:focus-within { box-shadow: var(--shadow-lg); transform: translateY(-2px); }
.doc-card__photo {
  margin: 0 0 var(--space-md);
  border-radius: var(--radius-lg);
  overflow: hidden;
  aspect-ratio: 1/1;
  background: var(--color-bg-section);
  position: relative;
}
.doc-card__photo.is-placeholder::before {
  content: attr(data-initials);
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-heading);
  font-size: var(--fs-4xl);
  font-weight: 700;
  color: var(--color-primary);
  background: var(--color-primary-soft);
}
.doc-card__photo img { width: 100%; height: 100%; object-fit: cover; }
.doc-card__name { font-size: var(--fs-xl); margin: 0 0 var(--space-xs); }
.doc-card__name a { color: var(--color-text); text-decoration: none; }
.doc-card__name a:hover { color: var(--color-primary); }
.doc-card__role { color: var(--color-text-muted); font-size: var(--fs-sm); margin: 0 0 var(--space-md); }
.doc-card__degrees { color: var(--color-text); font-size: var(--fs-sm); margin: 0 0 var(--space-md); }
.doc-card .btn-block { margin-top: auto; }

/* ───── Doctor mini ───────────────────────────────────── */
.doc-mini-list { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--space-md); grid-template-columns: 1fr; }
@media (min-width: 768px) { .doc-mini-list { grid-template-columns: repeat(2, 1fr); } }
/* В сайдбаре service-detail (фиксированная ширина 320px на >=1024px) — всегда 1 колонка,
   потому что доступная ширина не вмещает 2-колоночную сетку с аватаром+именем+стрелкой. */
.service-detail__doctors .doc-mini-list { grid-template-columns: 1fr; }
.doc-mini {
  display: flex; align-items: center; gap: var(--space-md);
  padding: var(--space-md);
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  text-decoration: none;
  color: var(--color-text);
  transition: box-shadow var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);
}
.doc-mini:hover, .doc-mini:focus-visible { box-shadow: var(--shadow-md); border-color: var(--color-primary-soft); }
.doc-mini__photo { width: 64px; height: 64px; border-radius: var(--radius-full); overflow: hidden; flex-shrink: 0; margin: 0; background: var(--color-bg-section); }
.doc-mini__photo img { width: 100%; height: 100%; object-fit: cover; }
.doc-mini__info { flex: 1; display: flex; flex-direction: column; }
.doc-mini__name { font-size: var(--fs-base); font-weight: 600; }
.doc-mini__role { color: var(--color-text-muted); font-size: var(--fs-sm); }
.doc-mini__arrow { color: var(--color-text-muted); transition: transform var(--dur-base) var(--ease-out); }
.doc-mini:hover .doc-mini__arrow { transform: translateX(4px); color: var(--color-primary); }

/* ───── Reviews ───────────────────────────────────────── */
/* ───── Recruitment banner (home) ──────────────────────── */
.section--recruitment { padding-block: var(--space-2xl); }
.recruitment-banner {
  background: var(--color-primary-soft);
  border-radius: var(--radius-lg);
  padding: var(--space-xl) var(--space-2xl);
  display: grid;
  gap: var(--space-lg);
  grid-template-columns: 1fr;
  align-items: center;
  position: relative;
  overflow: hidden;
}
.recruitment-banner::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, var(--color-primary-soft) 0%, transparent 60%);
  pointer-events: none;
}
.recruitment-banner > * { position: relative; z-index: 1; }
.recruitment-banner__icon {
  width: 80px; height: 80px;
  border-radius: var(--radius-full);
  background: var(--color-bg);
  color: var(--color-primary);
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 12px rgba(30, 95, 143, 0.15);
}
.recruitment-banner__icon svg { width: 40px; height: 40px; }
.recruitment-banner__content { display: flex; flex-direction: column; gap: var(--space-xs); }
.recruitment-banner__title {
  font-size: var(--fs-2xl);
  color: var(--color-text);
  margin: 0;
  line-height: 1.2;
}
.recruitment-banner__lede {
  color: var(--color-text-muted);
  margin: 0;
  line-height: 1.5;
}
.recruitment-banner__action { justify-self: start; }
.recruitment-banner__action .btn { display: inline-flex; align-items: center; gap: var(--space-xs); }
@media (min-width: 768px) {
  .recruitment-banner {
    grid-template-columns: auto 1fr auto;
    gap: var(--space-xl);
  }
  .recruitment-banner__action { justify-self: end; }
}

.review-block { background: var(--color-bg-section); padding-block: var(--space-2xl); margin-block: var(--space-xl); }
.review-block__head { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-md); margin-bottom: var(--space-xl); }
.review-block__head h2 { flex: 1 0 100%; margin: 0; }
.review-block__summary { display: inline-flex; align-items: center; gap: var(--space-sm); color: var(--color-text); }
.review-block__summary .stars i { color: var(--color-border); width: 20px; height: 20px; }
.review-block__summary .stars i.is-filled { color: var(--color-warning); fill: currentColor; }
.review-block__summary strong { font-size: var(--fs-xl); color: var(--color-text); }
.review-block__more { margin-left: auto; color: var(--color-primary); font-weight: 600; text-decoration: none; display: inline-flex; align-items: center; gap: var(--space-xs); }
.review-block__grid { display: grid; gap: var(--space-lg); list-style: none; padding: 0; margin: 0; grid-template-columns: 1fr; }
@media (min-width: 768px)  { .review-block__grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .review-block__grid { grid-template-columns: repeat(3, 1fr); } }

.review-card { background: var(--color-bg); border: 1px solid var(--color-border); border-radius: var(--radius-lg); padding: var(--space-lg); }
.review-card__head { display: flex; flex-wrap: wrap; gap: var(--space-sm); align-items: center; margin-bottom: var(--space-md); }
.review-card__author { font-weight: 600; }
.review-card__rating .stars i { color: var(--color-border); width: 18px; height: 18px; }
.review-card__rating .stars i.is-filled { color: var(--color-warning); fill: currentColor; }
.review-card__date { color: var(--color-text-muted); font-size: var(--fs-sm); }
.review-card__verified { color: var(--color-success); font-size: var(--fs-xs); display: inline-flex; align-items: center; gap: var(--space-xs); }
.review-card__text { color: var(--color-text); font-style: italic; line-height: 1.6; margin: 0 0 var(--space-md); }
.review-card__service { color: var(--color-text-muted); font-size: var(--fs-sm); margin: 0; }
.review-card__service a { color: var(--color-primary); text-decoration: none; }

/* ───── Service detail layout ─────────────────────────── */
.service-detail__layout { display: grid; gap: var(--space-2xl); grid-template-columns: 1fr; }
@media (min-width: 1024px) { .service-detail__layout { grid-template-columns: minmax(0, 1fr) 320px; } }
.service-detail__body { font-size: var(--fs-base); line-height: 1.7; }
.service-detail__body p { margin: 0 0 var(--space-md); }
.service-detail__doctors { background: var(--color-bg-section); padding: var(--space-lg); border-radius: var(--radius-lg); }

/* ───── Sister-list ───────────────────────────────────── */
.sister-list { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: var(--space-sm); }
.sister-list a {
  display: inline-flex; align-items: center;
  padding: var(--space-sm) var(--space-md);
  background: var(--color-primary-soft);
  color: var(--color-primary);
  border-radius: var(--radius-full);
  text-decoration: none;
  font-weight: 500;
}
.sister-list a:hover { background: var(--color-primary); color: #fff; }

/* ───── Specialist bio (profile page) ─────────────────── */
.specialist-bio { padding-block: var(--space-xl); }
.specialist-bio__layout { display: grid; gap: var(--space-2xl); grid-template-columns: 1fr; }
@media (min-width: 1024px) { .specialist-bio__layout { grid-template-columns: 320px 1fr; align-items: start; } }
.specialist-bio__photo {
  margin: 0;
  border-radius: var(--radius-xl);
  overflow: hidden;
  background: var(--color-bg-section);
  aspect-ratio: 1/1;
  position: relative;
  max-width: 320px;
}
.specialist-bio__photo.is-placeholder::before {
  content: attr(data-initials);
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-heading);
  font-size: 56px;
  font-weight: 700;
  color: var(--color-primary);
  background: var(--color-primary-soft);
}
.specialist-bio__photo img { width: 100%; height: 100%; object-fit: cover; }
.specialist-bio__name { font-size: var(--fs-3xl); margin: 0 0 var(--space-xs); }
@media (min-width: 1024px) { .specialist-bio__name { font-size: var(--fs-4xl); } }
.specialist-bio__role { color: var(--color-text-muted); font-size: var(--fs-lg); margin: 0 0 var(--space-lg); }
.specialist-bio__block { margin-bottom: var(--space-lg); }
.specialist-bio__block-title {
  font-size: var(--fs-sm);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--color-text-muted);
  margin: 0 0 var(--space-xs);
}
.specialist-bio__block p { margin: 0; color: var(--color-text); }
.specialist-bio__cta { display: flex; flex-wrap: wrap; gap: var(--space-md); align-items: center; margin-top: var(--space-xl); }
.specialist-bio__tel,
.specialist-bio__wa {
  display: inline-flex; align-items: center; gap: var(--space-xs);
  text-decoration: none; font-weight: 600;
  min-height: 48px; padding-block: var(--space-sm);
}
.specialist-bio__tel { color: var(--color-text); }
.specialist-bio__tel:hover { color: var(--color-primary); }
.specialist-bio__wa { color: var(--color-success); }

/* ───── FAQ accordion ─────────────────────────────────── */
.faq { padding-block: var(--space-2xl); max-width: var(--mw-prose); margin-inline: auto; }
.faq h2 { font-size: var(--fs-3xl); margin: 0 0 var(--space-xl); }
.faq__item { border-bottom: 1px solid var(--color-border); padding: var(--space-md) 0; }
.faq__item summary {
  display: flex; justify-content: space-between; align-items: center;
  gap: var(--space-md);
  cursor: pointer; list-style: none;
  font-size: var(--fs-lg); font-weight: 600; color: var(--color-text);
  padding: var(--space-sm) 0;
  min-height: 48px;
}
.faq__item summary::-webkit-details-marker { display: none; }
.faq__item summary i { color: var(--color-text-muted); flex-shrink: 0; transition: transform var(--dur-base) var(--ease-out); }
.faq__item[open] summary i { transform: rotate(180deg); color: var(--color-primary); }
.faq__item summary:hover { color: var(--color-primary); }
.faq__answer { padding-top: var(--space-md); color: var(--color-text); line-height: 1.6; }
.faq__answer p { margin: 0 0 var(--space-md); }
.faq__answer p:last-child { margin-bottom: 0; }

/* ───── Empty state ───────────────────────────────────── */
.empty-state {
  text-align: center;
  padding: var(--space-3xl) var(--space-lg);
  background: var(--color-bg-section);
  border-radius: var(--radius-lg);
}
.empty-state__icon {
  width: 64px; height: 64px;
  color: var(--color-text-muted);
  margin: 0 auto var(--space-lg);
  background: var(--color-bg);
  border-radius: var(--radius-full);
  padding: var(--space-md);
  display: inline-block;
}
.empty-state__title { font-size: var(--fs-2xl); margin: 0 0 var(--space-sm); }
.empty-state__desc { color: var(--color-text); max-width: 480px; margin: 0 auto var(--space-lg); }
.empty-state__actions { display: inline-flex; gap: var(--space-md); flex-wrap: wrap; justify-content: center; }

/* ───── service-geo refined layout ────────────────────── */
.service-geo { padding-block: var(--space-xl); }
.service-geo .hero { margin-block: var(--space-lg); }
.service-geo .hero h1 { font-size: var(--fs-3xl); margin: 0 0 var(--space-md); }
@media (min-width: 1024px) { .service-geo .hero h1 { font-size: var(--fs-4xl); } }
.service-geo .hero .meta { display: flex; gap: var(--space-lg); flex-wrap: wrap; margin: 0 0 var(--space-lg); color: var(--color-text); list-style: none; padding: 0; }
.service-geo .hero .meta span { display: inline-flex; align-items: center; gap: var(--space-xs); }
.service-geo .hero .meta .price { color: var(--color-primary); font-weight: 700; font-size: var(--fs-xl); }
.service-geo .intro,
.service-geo .body { margin-block: var(--space-xl); max-width: var(--mw-prose); }
.service-geo .who-leads { margin-block: var(--space-2xl); }
.service-geo .who-leads h2 { font-size: var(--fs-2xl); margin: 0 0 var(--space-lg); }
.service-geo .neighbors,
.service-geo .related { margin-block: var(--space-xl); padding: var(--space-lg); background: var(--color-bg-section); border-radius: var(--radius-lg); }
.service-geo .neighbors h2,
.service-geo .related h2 { font-size: var(--fs-xl); margin: 0 0 var(--space-md); }
.service-geo .neighbors ul,
.service-geo .related ul { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; gap: var(--space-sm); }
.service-geo .neighbors a,
.service-geo .related a {
  display: inline-flex; align-items: center;
  padding: var(--space-sm) var(--space-md);
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  color: var(--color-primary);
  text-decoration: none;
  font-weight: 500;
}
.service-geo .neighbors a:hover,
.service-geo .related a:hover { background: var(--color-primary-soft); }
.service-geo .back-to-base { margin-block: var(--space-xl); }
.service-geo .back-to-base a { color: var(--color-primary); font-weight: 500; }

/* ───── Article list ──────────────────────────────────── */
.article-list { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--space-md); }
.article-list a {
  display: block; padding: var(--space-md);
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  color: var(--color-text);
  text-decoration: none;
  transition: box-shadow var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);
}
.article-list a:hover { box-shadow: var(--shadow-md); border-color: var(--color-primary-soft); }
.article-list strong { color: var(--color-primary); }
.article-list p { color: var(--color-text); margin: var(--space-xs) 0 0; }

/* ───── Stat cards (about) ────────────────────────────── */
.stat-cards { display: grid; gap: var(--space-md); grid-template-columns: 1fr 1fr; }
@media (min-width: 768px)  { .stat-cards { grid-template-columns: repeat(4, 1fr); } }
.stat-card {
  text-align: center;
  padding: var(--space-lg);
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
}
.stat-card strong { display: block; font-family: var(--font-heading); font-size: var(--fs-3xl); color: var(--color-primary); }
.stat-card span { display: block; color: var(--color-text-muted); font-size: var(--fs-sm); margin-top: var(--space-xs); }

/* ───── How-it-works (about) ──────────────────────────── */
.how-it-works {
  list-style: none;
  counter-reset: step;
  display: grid;
  gap: var(--space-md);
  padding: 0;
  max-width: var(--mw-prose);
}
.how-it-works li {
  counter-increment: step;
  padding: var(--space-md) var(--space-md) var(--space-md) calc(var(--space-md) + 48px);
  background: var(--color-bg-section);
  border-radius: var(--radius-lg);
  position: relative;
}
.how-it-works li::before {
  content: counter(step);
  position: absolute;
  left: var(--space-md);
  top: var(--space-md);
  width: 32px; height: 32px;
  background: var(--color-primary);
  color: #fff;
  border-radius: var(--radius-full);
  display: inline-flex; align-items: center; justify-content: center;
  font-family: var(--font-heading); font-weight: 700;
}

/* ───── Price table ───────────────────────────────────── */
.price-table { font-family: var(--font-body); }
.price-table__filters {
  display: flex; flex-wrap: wrap; gap: var(--space-sm);
  margin-bottom: var(--space-lg);
  position: sticky; top: 64px; z-index: var(--z-base);
  background: var(--color-bg);
  padding-block: var(--space-sm);
}
.filter-chip {
  background: var(--color-bg-section);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-full);
  padding: var(--space-sm) var(--space-md);
  font-size: var(--fs-sm); font-weight: 500;
  cursor: pointer; min-height: 40px;
  transition: all var(--dur-base) var(--ease-out);
}
.filter-chip:hover { border-color: var(--color-primary); color: var(--color-primary); }
.filter-chip.is-active { background: var(--color-primary); color: #fff; border-color: var(--color-primary); }
.price-table__grid { width: 100%; border-collapse: collapse; font-size: var(--fs-base); }
.price-table__grid thead th {
  text-align: left;
  padding: var(--space-md);
  border-bottom: 2px solid var(--color-border);
  color: var(--color-text-muted);
  font-size: var(--fs-sm);
  text-transform: uppercase; letter-spacing: 0.05em;
}
.price-row { transition: background var(--dur-base) var(--ease-out); }
.price-row:hover { background: var(--color-bg-section); }
.price-row__name { padding: var(--space-md); font-weight: 500; text-align: left; }
.price-row__name a { color: var(--color-text); text-decoration: none; }
.price-row__name a:hover { color: var(--color-primary); }
.price-row__cat { padding: var(--space-md); color: var(--color-text-muted); font-size: var(--fs-sm); }
.price-row__price { padding: var(--space-md); }
.price-row__price strong { color: var(--color-primary); font-weight: 700; }
.price-row__action { padding: var(--space-md); text-align: right; }
.price-row__action a { color: var(--color-text-muted); }
.price-row:hover .price-row__action a { color: var(--color-primary); }
@media (max-width: 768px) {
  .price-table__grid thead { display: none; }
  .price-table__grid, .price-table__grid tbody, .price-table__grid tr { display: block; }
  .price-row { padding: var(--space-md); border-bottom: 1px solid var(--color-border); }
  .price-row__name { display: block; padding: 0; }
  .price-row__cat, .price-row__price { display: inline; padding: 0; }
  .price-row__cat::after { content: ' · '; color: var(--color-border); }
  .price-row__action { display: none; }
}

/* ───── Generic content tables (WP-migrated body_html) ──
   Покрывает unstyled <table> в services/articles/pages bodies —
   они унаследованы из WP без классов и иначе рендерятся с дефолтным
   browser-стилем без borders/padding. */
.service-detail__body table {
  width: 100%;
  border-collapse: collapse;
  margin-block: var(--space-lg);
  font-size: var(--fs-base);
}
.service-detail__body th,
.service-detail__body td {
  padding: var(--space-sm) var(--space-md);
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid var(--color-border);
}
.service-detail__body thead th {
  background: var(--color-bg-section);
  font-weight: 600;
  color: var(--color-text);
  border-bottom: 2px solid var(--color-border);
  font-size: var(--fs-sm);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.service-detail__body tbody tr:hover { background: var(--color-bg-cool); }
.service-detail__body tbody tr:last-child td { border-bottom: none; }
@media (max-width: 767px) {
  /* На узких экранах — горизонтальный scroll без кропа контента */
  .service-detail__body { overflow-x: auto; }
  .service-detail__body table { min-width: 480px; }
}

/* ───── Geo coverage (service-detail / subcategory) ───── */
.section--geo-coverage { padding-block: var(--space-2xl); background: var(--color-bg-section); }
.geo-coverage-grid {
  list-style: none; padding: 0; margin: 0;
  display: grid;
  gap: var(--space-sm);
  grid-template-columns: 1fr;
}
@media (min-width: 768px)  { .geo-coverage-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .geo-coverage-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1200px) { .geo-coverage-grid { grid-template-columns: repeat(4, 1fr); } }
.geo-coverage-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--space-md) var(--space-lg);
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  color: var(--color-text);
  text-decoration: none;
  transition: border-color var(--dur-base) var(--ease-out),
              background var(--dur-base) var(--ease-out),
              transform var(--dur-base) var(--ease-out);
}
.geo-coverage-card:hover {
  border-color: var(--color-primary);
  background: var(--color-primary-soft);
  transform: translateY(-1px);
}
.geo-coverage-card__name { font-weight: 500; color: var(--color-text); }
.geo-coverage-card svg {
  color: var(--color-text-muted);
  transition: transform var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out);
}
.geo-coverage-card:hover svg { color: var(--color-primary); transform: translateX(2px); }
.geo-coverage-card--static { cursor: default; }
.geo-coverage-card--static:hover {
  border-color: var(--color-border);
  background: var(--color-bg);
  transform: none;
}

/* ───── Geografiya ────────────────────────────────────── */
.okrug-grid { display: grid; gap: var(--space-md); grid-template-columns: 1fr; }
@media (min-width: 768px)  { .okrug-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .okrug-grid { grid-template-columns: repeat(4, 1fr); } }
.okrug-card {
  padding: var(--space-md);
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
}
.okrug-card.is-remote { border-left: 4px solid var(--color-warning); }
.okrug-card h3 { font-size: var(--fs-xl); margin: 0 0 var(--space-xs); color: var(--color-primary); }
.okrug-card__name { color: var(--color-text-muted); font-size: var(--fs-sm); margin: 0 0 var(--space-sm); }
.okrug-card__districts { font-size: var(--fs-sm); margin: 0 0 var(--space-sm); }
.okrug-card__time { display: inline-flex; align-items: center; gap: var(--space-xs); font-size: var(--fs-sm); color: var(--color-text-muted); margin: 0 0 var(--space-xs); }
.okrug-card__count { font-size: var(--fs-sm); color: var(--color-success); margin: 0; font-weight: 500; }

/* ───── Yandex map embed ──────────────────────────────── */
.yandex-map {
  border-radius: var(--radius-lg);
  overflow: hidden;
  border: 1px solid var(--color-border);
  background: var(--color-bg-section);
}
.yandex-map iframe { display: block; width: 100%; border: 0; }
.map-caption { color: var(--color-text-muted); font-size: var(--fs-sm); margin-top: var(--space-sm); }

/* ───── Kontakty layout ───────────────────────────────── */
.kontakty-grid { display: grid; gap: var(--space-2xl); grid-template-columns: 1fr; }
@media (min-width: 1024px) { .kontakty-grid { grid-template-columns: 1fr 1fr; align-items: start; } }
.kontakty-list { list-style: none; padding: 0; margin: 0 0 var(--space-xl); display: grid; gap: var(--space-md); }
.kontakty-list li { display: grid; grid-template-columns: 24px 1fr; gap: var(--space-md); align-items: start; }
.kontakty-list__content { display: flex; flex-direction: column; gap: var(--space-xs); min-width: 0; }
.kontakty-list a { color: var(--color-primary); text-decoration: none; font-weight: 500; font-size: var(--fs-lg); }
.kontakty-list a:hover { text-decoration: underline; }
.kontakty-list__hint { color: var(--color-text-muted); font-size: var(--fs-sm); }
.kontakty-map__note { color: var(--color-text-muted); font-size: var(--fs-sm); margin-top: var(--space-sm); }

/* ───── Vakansii cards ───────────────────────────────── */
.vakansii-cards { display: grid; gap: var(--space-md); grid-template-columns: 1fr; }
@media (min-width: 768px) { .vakansii-cards { grid-template-columns: repeat(3, 1fr); } }
.vakansii-card { padding: var(--space-lg); background: var(--color-bg-section); border-radius: var(--radius-lg); }
.vakansii-card h3 { font-size: var(--fs-xl); margin: 0 0 var(--space-sm); color: var(--color-primary); }
.vakansii-card p { margin: 0; color: var(--color-text); }

/* ───── Article grid ──────────────────────────────────── */
.article-grid { display: grid; gap: var(--space-lg); grid-template-columns: 1fr; }
@media (min-width: 768px)  { .article-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .article-grid { grid-template-columns: repeat(3, 1fr); } }
.article-card {
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  overflow: hidden;
  transition: box-shadow var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out);
}
.article-card:hover { box-shadow: var(--shadow-lg); transform: translateY(-2px); border-color: var(--color-primary-soft); }
.article-card__link { display: block; padding: var(--space-lg); text-decoration: none; color: var(--color-text); }
.article-card__cover { margin: calc(-1 * var(--space-lg)) calc(-1 * var(--space-lg)) var(--space-md); aspect-ratio: 16/9; background: var(--color-bg-section); overflow: hidden; }
.article-card__cover img { width: 100%; height: 100%; object-fit: cover; }
.article-card__title { font-size: var(--fs-xl); margin: 0 0 var(--space-sm); color: var(--color-text); }
.article-card__excerpt { color: var(--color-text-muted); margin: 0 0 var(--space-md); }
.article-card__meta { color: var(--color-text-muted); font-size: var(--fs-sm); display: flex; gap: var(--space-xs); flex-wrap: wrap; margin: 0 0 var(--space-md); }
.article-card__cta { color: var(--color-primary); font-weight: 600; display: inline-flex; align-items: center; gap: var(--space-xs); }

/* ───── Articles slider (home) — горизонтальный scroll-snap ─────── */
.section--articles-slider { padding-block: var(--space-2xl); }
.articles-slider__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-md);
  margin-bottom: var(--space-lg);
}
.articles-slider__head .section__title { margin: 0; }
.articles-slider__controls { display: flex; gap: var(--space-sm); }
.articles-slider__nav {
  width: 44px; height: 44px;
  border-radius: var(--radius-full);
  border: 1px solid var(--color-border);
  background: var(--color-bg);
  color: var(--color-primary);
  cursor: pointer;
  display: inline-flex; align-items: center; justify-content: center;
  transition: background var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);
}
.articles-slider__nav:hover { background: var(--color-primary-soft); border-color: var(--color-primary); }
.articles-slider__nav:disabled { opacity: 0.4; cursor: not-allowed; }
.articles-slider__track {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: 85%;            /* mobile: ~1.2 cards visible */
  gap: var(--space-lg);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  padding-block: var(--space-sm);
  scrollbar-width: thin;
  -ms-overflow-style: none;
}
.articles-slider__track::-webkit-scrollbar { height: 4px; }
.articles-slider__track::-webkit-scrollbar-thumb { background: var(--color-border); border-radius: 2px; }
@media (min-width: 768px)  { .articles-slider__track { grid-auto-columns: 45%; } }   /* tablet ~2.2 */
@media (min-width: 1024px) { .articles-slider__track { grid-auto-columns: calc((100% - 2 * var(--space-lg)) / 3); } } /* desktop 3 */
.articles-slider__item { scroll-snap-align: start; }
.articles-slider__item .article-card { height: 100%; }
@media (max-width: 767px) {
  .articles-slider__controls { display: none; }
}

/* ───── Blog article ──────────────────────────────────── */
.blog-article { padding-block: var(--space-xl); }
.blog-article__head { margin-bottom: var(--space-xl); }
.blog-article__title { font-size: var(--fs-3xl); margin: 0 0 var(--space-md); }
@media (min-width: 1024px) { .blog-article__title { font-size: var(--fs-4xl); } }
.blog-article__meta { color: var(--color-text-muted); font-size: var(--fs-sm); display: flex; gap: var(--space-xs); flex-wrap: wrap; margin: 0; }
.blog-article__meta a { color: var(--color-primary); }
.blog-article__cover { margin: 0 0 var(--space-xl); border-radius: var(--radius-lg); overflow: hidden; }
.blog-article__body { font-family: var(--font-article); font-size: var(--fs-lg); line-height: 1.7; }
.blog-article__body h2 { font-family: var(--font-heading); font-size: var(--fs-2xl); margin-top: var(--space-2xl); }
.blog-article__body h3 { font-family: var(--font-heading); font-size: var(--fs-xl); margin-top: var(--space-xl); }
.blog-article__disclaimer,
.disclaimer-38fz,
.medical-disclaimer {
  display: block;
  margin: var(--space-xl) 0;
  padding: var(--space-md) var(--space-lg);
  background: var(--color-bg-section);
  border-left: 4px solid var(--color-warning);
  border-radius: var(--radius-md);
  font-size: var(--fs-sm);
  color: var(--color-text);
}
.blog-article__services,
.blog-article__neighbors { margin-block: var(--space-2xl); }
.blog-article__services h2,
.blog-article__neighbors h2 { font-family: var(--font-heading); font-size: var(--fs-2xl); margin-bottom: var(--space-lg); }

/* ───── Article TOC / figure / table / references ────── */
.article-toc {
  margin: var(--space-xl) 0;
  padding: var(--space-md) var(--space-lg);
  background: var(--color-bg-section);
  border-radius: var(--radius-md);
  font-size: var(--fs-base);
}
.article-toc h2 { font-size: var(--fs-lg); margin: 0 0 var(--space-sm); font-family: var(--font-heading); }
.article-toc ol { margin: 0; padding-left: var(--space-lg); }
.article-toc li { margin: var(--space-2xs) 0; }
.article-toc a { color: var(--color-primary); text-decoration: none; }
.article-toc a:hover { text-decoration: underline; }

.article-figure { margin: var(--space-xl) 0; text-align: center; }
.article-figure img { max-width: 100%; height: auto; border-radius: var(--radius-md); }
.article-figure figcaption { margin-top: var(--space-xs); font-size: var(--fs-sm); color: var(--color-text-muted); }

.article-table {
  width: 100%;
  border-collapse: collapse;
  margin: var(--space-lg) 0;
  font-size: var(--fs-base);
}
.article-table th,
.article-table td {
  padding: var(--space-sm) var(--space-md);
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid var(--color-border, #e2e8f0);
}
.article-table thead th {
  background: var(--color-bg-section);
  font-weight: 600;
  font-family: var(--font-heading);
}
.article-table tbody tr:hover { background: var(--color-bg-section); }

.article-references {
  margin: var(--space-lg) 0;
  padding-left: var(--space-lg);
  font-size: var(--fs-sm);
  color: var(--color-text-muted);
}
.article-references li { margin: var(--space-2xs) 0; line-height: 1.6; }

/* ───── Error 404 ─────────────────────────────────────── */
.error-404 {
  text-align: center;
  padding: var(--space-3xl) var(--space-lg);
  max-width: var(--mw-prose);
  margin: 0 auto;
}
.error-404__icon {
  width: 80px; height: 80px;
  color: var(--color-text-muted);
  background: var(--color-bg-section);
  border-radius: var(--radius-full);
  padding: var(--space-md);
  margin: 0 auto var(--space-lg);
  display: inline-block;
}
.error-404 h1 { font-size: var(--fs-3xl); margin: 0 0 var(--space-md); }
.error-404__lede { color: var(--color-text); margin: 0 0 var(--space-xl); }
.error-404__top { margin: 0 0 var(--space-xl); text-align: left; }
.error-404__list { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--space-sm); }
.error-404__list a { display: block; padding: var(--space-sm) var(--space-md); background: var(--color-bg); border: 1px solid var(--color-border); border-radius: var(--radius-md); color: var(--color-text); text-decoration: none; }
.error-404__list a:hover { background: var(--color-primary-soft); color: var(--color-primary); }
.error-404__actions { display: flex; gap: var(--space-md); flex-wrap: wrap; justify-content: center; margin: var(--space-xl) 0; }
.error-404__contact { display: flex; gap: var(--space-md); flex-wrap: wrap; justify-content: center; }
.error-404__contact a { color: var(--color-primary); display: inline-flex; align-items: center; gap: var(--space-xs); padding-block: var(--space-sm); min-height: 48px; }

/* ───── Service tariffs block (universal pricing) ───── */
.service-tariffs-block {
  display: block;
  margin: var(--space-xl) 0;
  padding: var(--space-lg) var(--space-xl);
  background: var(--color-accent-soft);
  border-radius: var(--radius-xl);
  border: 1px solid var(--color-accent);
}
.service-tariffs-block h2 {
  margin: 0 0 var(--space-md);
  font-size: var(--fs-2xl);
}
.service-tariffs-block__price {
  font-size: var(--fs-xl);
  margin: 0 0 var(--space-md);
  color: var(--color-text);
}
.service-tariffs-block__price strong {
  color: var(--color-primary);
  font-size: var(--fs-2xl);
  font-weight: 700;
}
.service-tariffs-block p {
  margin: 0 0 var(--space-sm);
}
.service-tariffs-block .btn {
  margin-top: var(--space-md);
}
.error-404__cats {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
  margin: 0 0 var(--space-xl);
  text-align: left;
}
.error-404__cat {
  display: block;
  padding: var(--space-md) var(--space-lg);
  background: var(--color-primary-soft);
  border-radius: var(--radius-md);
  color: var(--color-text);
  text-decoration: none;
  border: 1px solid transparent;
  transition: border-color var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out);
}
.error-404__cat:hover {
  border-color: var(--color-primary);
  transform: translateY(-2px);
}
.error-404__cat strong {
  display: block;
  color: var(--color-primary);
  font-size: var(--fs-lg);
  margin-bottom: var(--space-xs);
}
.error-404__cat-desc {
  display: block;
  color: var(--color-text-muted);
  font-size: var(--fs-sm);
}
.error-404__list a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-md);
}
.error-404__price {
  color: var(--color-primary);
  font-weight: 600;
  white-space: nowrap;
  flex-shrink: 0;
}
@media (min-width: 768px) {
  .error-404__cats { grid-template-columns: repeat(3, 1fr); }
}

.meta-muted { color: var(--color-text-muted); font-size: var(--fs-sm); }

/* ─── Phase 6g: content blocks (why-us, how, top-prices, mid-cta, related-prices) ─── */

.section--why-us .why-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: var(--space-lg);
}
.why-card {
  padding: var(--space-lg);
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
}
.why-card svg {
  color: var(--color-primary);
  width: var(--icon-lg);
  height: var(--icon-lg);
  margin-bottom: var(--space-md);
}
.why-card h3 {
  font-size: var(--fs-xl);
  margin: 0 0 var(--space-sm);
}
.why-card p {
  color: var(--color-text-muted);
  margin: 0;
}

.how-steps {
  list-style: none;
  padding: 0;
  margin: 0;
  counter-reset: step;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: var(--space-lg);
}
.how-steps li {
  padding: var(--space-lg);
  background: var(--color-primary-soft);
  border-radius: var(--radius-lg);
  position: relative;
}
.how-num {
  display: inline-flex;
  width: 36px;
  height: 36px;
  background: var(--color-primary);
  color: white;
  border-radius: 50%;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  margin-bottom: var(--space-sm);
}
.how-steps h3 {
  font-size: var(--fs-lg);
  margin: 0 0 var(--space-xs);
}
.how-steps p {
  color: var(--color-text-muted);
  margin: 0;
}

.top-prices-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: var(--space-md);
  margin-top: var(--space-lg);
}
.tp-card {
  display: block;
  padding: var(--space-lg);
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  text-decoration: none;
  color: var(--color-text);
  transition: box-shadow var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out);
}
.tp-card:hover,
.tp-card:focus-visible {
  box-shadow: var(--shadow-md);
  border-color: var(--color-primary);
}
.tp-card h3 {
  font-size: var(--fs-lg);
  margin: 0;
  color: var(--color-text);
}
.tp-card .tp-price {
  color: var(--color-primary);
  font-size: var(--fs-xl);
  font-weight: 700;
  margin: var(--space-sm) 0 var(--space-xs);
}
.tp-cta {
  color: var(--color-primary);
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: var(--space-xs);
}

.section--mid-cta { padding-block: var(--space-xl); }
.mid-cta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--space-lg);
  padding: var(--space-2xl);
  background: linear-gradient(135deg, var(--color-primary-soft), var(--color-bg));
  border-radius: var(--radius-xl);
}
.mid-cta__copy h2 {
  font-size: var(--fs-2xl);
  margin: 0 0 var(--space-sm);
}
.mid-cta__copy p {
  color: var(--color-text-muted);
  margin: 0;
  max-width: 56ch;
}
.mid-cta__actions {
  display: flex;
  gap: var(--space-md);
  flex-wrap: wrap;
}

.related-prices {
  margin: var(--space-2xl) 0;
  padding: var(--space-lg);
  background: var(--color-bg-section);
  border-radius: var(--radius-lg);
}
.related-prices h2 {
  font-size: var(--fs-lg);
  margin: 0 0 var(--space-md);
}
.rp-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.rp-list li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: var(--space-md);
  padding: var(--space-sm) 0;
  border-bottom: 1px solid var(--color-border);
}
.rp-list li:last-child { border-bottom: 0; }
.rp-list a {
  color: var(--color-text);
  text-decoration: none;
  flex: 1;
  min-width: 0;
}
.rp-list a:hover { color: var(--color-primary); }
.rp-list .rp-price {
  color: var(--color-primary);
  font-weight: 600;
  white-space: nowrap;
}
.related-prices__more {
  margin: var(--space-md) 0 0;
  font-size: var(--fs-sm);
}
.related-prices__more a {
  color: var(--color-primary);
  text-decoration: none;
  font-weight: 600;
}

.trust-bar__rating strong { color: var(--color-primary); }

@media (max-width: 768px) {
  .mid-cta { padding: var(--space-lg); }
  .mid-cta__actions { width: 100%; }
  .mid-cta__actions .btn { flex: 1; min-width: 0; }
  .top-prices-grid { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .mid-cta__actions { flex-direction: column; }
  .mid-cta__actions .btn { width: 100%; flex: none; white-space: nowrap; }
}

/* ─────────────────────────────────────────────────────────────────────
   Phase 9 rebrand: warm teal + peach. Buttons / hero / sections.
   tokens.css теперь определяет teal primary + amber accent + cream bg.
   Здесь — структурные правила, использующие новые токены.
   ───────────────────────────────────────────────────────────────────── */

/* Primary CTA — warm amber (был teal до 6i) */
.btn-primary {
  background: var(--color-accent);
  color: #FFFFFF;
  border-color: var(--color-accent);
}
.btn-primary:hover,
.btn-primary:focus-visible {
  background: var(--color-accent-hover);
  border-color: var(--color-accent-hover);
  color: #FFFFFF;
}
/* Secondary — outline teal */
.btn-secondary {
  background: transparent;
  color: var(--color-primary);
  border: 2px solid var(--color-primary);
}
.btn-secondary:hover,
.btn-secondary:focus-visible {
  background: var(--color-primary);
  color: #FFFFFF;
}

/* ─── HERO (новый markup .hero / .hero__*) ─── */
.hero {
  padding: var(--space-2xl) 0;
  background: linear-gradient(135deg, var(--color-bg) 0%, var(--color-primary-soft) 100%);
  border-bottom: 1px solid var(--color-border);
}
.hero__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-2xl);
  align-items: center;
}
.hero__pill {
  display: inline-flex;
  align-items: center;
  gap: var(--space-sm);
  padding: 8px 16px;
  background: var(--color-bg);
  border: 1px solid var(--color-primary-soft);
  border-radius: var(--radius-full);
  color: var(--color-primary);
  font-size: var(--fs-sm);
  font-weight: 500;
  margin: 0 0 var(--space-md);
}
.hero__pill-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--color-success);
  box-shadow: 0 0 0 4px rgba(29, 158, 117, 0.18);
  animation: pulse-dot 2.4s ease-out infinite;
}
@keyframes pulse-dot {
  0%, 100% { box-shadow: 0 0 0 4px rgba(29, 158, 117, 0.18); }
  50%      { box-shadow: 0 0 0 8px rgba(29, 158, 117, 0.05); }
}
.hero__title {
  font-family: var(--font-article);
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 700;
  line-height: 1.1;
  margin: 0 0 var(--space-md);
  color: var(--color-text);
  letter-spacing: -0.01em;
}
.hero__title em {
  color: var(--color-primary);
  font-style: normal;
}
.hero__lede {
  font-size: var(--fs-lg);
  color: var(--color-text-muted);
  margin: 0 0 var(--space-xl);
  line-height: 1.55;
  max-width: 50ch;
}
.hero__cta {
  display: flex;
  gap: var(--space-md);
  flex-wrap: wrap;
  margin-bottom: var(--space-md);
}
.hero__meta {
  font-size: var(--fs-sm);
  color: var(--color-text-muted);
  margin: 0;
}
.hero__visual {
  position: relative;
}
.hero__visual img {
  width: 100%;
  height: auto;
  border-radius: var(--radius-2xl);
  display: block;
}
@media (min-width: 1024px) {
  .hero { padding: var(--space-3xl) 0; }
  .hero__grid { grid-template-columns: 1.1fr 1fr; gap: var(--space-3xl); }
}
@media (max-width: 768px) {
  .hero__visual { order: -1; max-width: 480px; margin: 0 auto; }
}

/* ─── why-us — peach card-based ─── */
.section--why-us { padding-block: var(--space-3xl); }
.why-card {
  background: var(--color-accent-soft);
  border: 0;
  padding: var(--space-xl);
}
.why-card__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px; height: 48px;
  background: var(--color-bg);
  color: var(--color-accent);
  border-radius: var(--radius-full);
  margin-bottom: var(--space-md);
}
.why-card__icon svg { width: 24px; height: 24px; margin: 0; }
.why-card svg { color: var(--color-accent); }
.why-card h3 {
  font-family: var(--font-article);
  font-weight: 700;
  color: var(--color-text);
}

/* ─── how-it-works — mint card-based ─── */
.section--how { padding-block: var(--space-3xl); background: var(--color-bg-cool); }
.how-steps li {
  background: var(--color-bg);
  border: 1px solid var(--color-primary-soft);
}
.how-num {
  background: var(--color-primary);
  color: #FFFFFF;
}
.how-steps h3 { font-family: var(--font-article); font-weight: 700; }

/* ─── stories block — peach with quote feel ─── */
.section--stories { padding-block: var(--space-3xl); background: var(--color-bg-section); }
.stories-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-lg);
  margin-top: var(--space-xl);
}
@media (min-width: 768px) { .stories-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .stories-grid { grid-template-columns: repeat(3, 1fr); } }
.story-card {
  background: var(--color-accent-soft);
  border-radius: var(--radius-xl);
  padding: var(--space-xl);
  display: flex;
  flex-direction: column;
  gap: var(--space-md);
}
.story-card__head {
  display: flex;
  align-items: center;
  gap: var(--space-md);
}
.story-card__avatar {
  width: 52px; height: 52px;
  border-radius: 50%;
  background: var(--color-primary);
  color: #FFFFFF;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-heading);
  font-weight: 700;
  font-size: var(--fs-base);
  flex: 0 0 auto;
}
.story-card__name { margin: 0; }
.story-card__relation {
  font-size: var(--fs-sm);
  color: var(--color-text-muted);
  margin: 2px 0 0;
}
.story-card__rating {
  color: var(--color-accent);
  letter-spacing: 2px;
  font-size: var(--fs-lg);
  margin: 0;
}
.story-card__quote {
  font-family: var(--font-article);
  font-size: var(--fs-base);
  line-height: 1.55;
  color: var(--color-text);
  margin: 0;
  padding: 0;
  border: 0;
  position: relative;
}
.story-card__meta {
  font-size: var(--fs-sm);
  color: var(--color-text-muted);
  margin: 0;
}

/* ─── service-card photo placeholder ─── */
.svc-card { padding: 0; overflow: hidden; }
.svc-card__photo {
  aspect-ratio: 4 / 3;
  display: flex;
  align-items: center;
  justify-content: center;
  border-bottom: 1px solid var(--color-border);
}
.svc-card__photo--has-image { padding: 0; }
.svc-card__photo--has-image img {
  width: 100%; height: 100%; object-fit: cover;
}
.svc-card__photo--medsestra-na-dom    { background: var(--color-primary-soft); color: var(--color-primary); }
.svc-card__photo--vrach-na-dom        { background: var(--color-accent-soft);  color: var(--color-accent-dark);  }
.svc-card__photo--diagnostika-na-domu { background: var(--color-bg-cool);      color: var(--color-primary); }
/* Lucide-иконка внутри photo-обёртки. Lucide рендерит inline <svg> 24×24
   из <i data-lucide="X"> — масштабируем до 56×56 для воспроизведения
   прежнего визуального веса. currentColor наследуется от .svc-card__photo--<cat>. */
.svc-card__photo svg { width: 56px; height: 56px; }
.svc-card__body {
  padding: var(--space-lg);
  display: flex;
  flex-direction: column;
  flex: 1;
}
.svc-card__title { font-size: var(--fs-lg); margin: 0 0 var(--space-xs); }
.svc-card__desc {
  color: var(--color-text-muted);
  font-size: var(--fs-sm);
  margin: 0 0 var(--space-md);
}
.svc-card__price {
  color: var(--color-accent);
  font-weight: 700;
  font-size: var(--fs-lg);
  margin: 0 0 var(--space-sm);
}
.svc-card__cta {
  color: var(--color-primary);
  font-weight: 600;
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

/* ─── rating-badges (review-block) ─── */
.rating-badges {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--space-xl);
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-md);
}
@media (min-width: 640px) { .rating-badges { grid-template-columns: repeat(3, 1fr); } }
.rating-badge {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: var(--space-md) var(--space-lg);
  background: var(--color-bg);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  text-decoration: none;
  color: var(--color-text);
  text-align: center;
  transition: border-color var(--dur-base) var(--ease-out), box-shadow var(--dur-base) var(--ease-out);
}
.rating-badge:hover { border-color: var(--color-primary); box-shadow: var(--shadow-sm); }
.rating-badge svg { width: 22px; height: 22px; color: var(--color-primary); }
.rating-badge__source {
  font-weight: 600;
  font-size: var(--fs-sm);
  color: var(--color-text-muted);
}
.rating-badge__score {
  font-size: var(--fs-2xl);
  color: var(--color-accent);
  font-weight: 700;
  line-height: 1;
}
.rating-badge__count { font-size: var(--fs-xs); color: var(--color-text-muted); }

/* ─── mid-cta переопределение под warm peach ─── */
.mid-cta {
  background: var(--color-accent-soft);
  border-radius: var(--radius-xl);
  padding: var(--space-2xl);
}
.mid-cta__copy h2 {
  font-family: var(--font-article);
  font-weight: 700;
}

/* ─── urgent-cta — soft mint, центрировано, large type ─── */
.urgent-cta {
  padding: var(--space-3xl) 0;
  background: linear-gradient(135deg, var(--color-bg-cool) 0%, var(--color-primary-soft) 100%);
  text-align: center;
}
.urgent-cta__inner { max-width: 640px; margin: 0 auto; padding-inline: var(--space-md); }
.urgent-cta h2 {
  font-family: var(--font-article);
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  font-weight: 700;
  margin: 0 0 var(--space-md);
  color: var(--color-text);
}
.urgent-cta__slots {
  font-size: var(--fs-xl);
  color: var(--color-primary);
  font-weight: 600;
  margin: 0 0 var(--space-lg);
  letter-spacing: 0.04em;
}
.urgent-cta__actions { display: flex; justify-content: center; margin-bottom: var(--space-md); }
.urgent-cta__note { font-size: var(--fs-sm); color: var(--color-text-muted); margin: 0; }
.urgent-cta__note a { color: var(--color-primary); font-weight: 600; text-decoration: none; }

/* ─── footer cream ─── */
.site-footer {
  background: var(--color-bg-section);
  border-top: 1px solid var(--color-border);
}

/* ─── reveal-on-scroll ОТКЛЮЧЕНО (контент виден сразу) ─── */
.reveal,
.reveal.is-visible {
  opacity: 1;
  transform: none;
  transition: none;
}

/* ─── hero-detail (service-detail / category / geo) — cream + serif ─── */
.hero-detail {
  background: var(--color-bg-section);
}
.hero-detail h1 {
  font-family: var(--font-article);
}

/* ─── Lighter trust-bar item rating in new palette ─── */
.trust-bar__rating strong { color: var(--color-accent); }

/* ─── Pricing packages (фикс Elementor-тарифов на /uslugi/medsestra-na-dom/) ─── */
.pricing-packages {
  display: grid;
  gap: var(--space-lg);
  grid-template-columns: 1fr;
  margin: var(--space-lg) 0;
}
@media (min-width: 768px) {
  .pricing-packages { grid-template-columns: repeat(3, 1fr); }
}
.pkg-card {
  display: flex;
  flex-direction: column;
  background: var(--color-bg-section);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: var(--space-lg);
}
.pkg-card__title {
  font-family: var(--font-article, var(--font-body));
  font-size: var(--fs-xl);
  margin: 0 0 var(--space-md);
  color: var(--color-text);
}
.pkg-card__includes {
  list-style: none;
  padding: 0;
  margin: 0 0 var(--space-md);
  flex: 1;
}
.pkg-card__includes li {
  position: relative;
  padding-left: var(--space-lg);
  margin-bottom: var(--space-xs);
  color: var(--color-text);
  font-size: var(--fs-base);
}
.pkg-card__includes li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: var(--color-accent);
  font-weight: 700;
}
.pkg-card__price {
  font-size: var(--fs-2xl);
  font-weight: 700;
  color: var(--color-primary);
  margin: 0;
  line-height: 1.1;
}
.pkg-card__note {
  color: var(--color-text-muted);
  font-size: var(--fs-sm);
  margin: var(--space-xs) 0 var(--space-md);
}
.pkg-card .btn {
  align-self: flex-start;
}

/* ─── WP-Elementor 2-column layout recovery ─────────────────────────
   После cleanup'а WP-Elementor разметки остались паттерны вида
   <section><h2>...</h2><section>...</section><section>...</section></section>,
   где два sibling-section представляют исходные Elementor-колонки. Без класса
   они рендерятся stacked, делая визуально «узкими» короткие H3+P пары
   (текст занимает ~50% ширины контейнера, ниже — пустое место справа).
   :has() детектирует паттерн и восстанавливает 2-column grid на desktop.
   ─────────────────────────────────────────────────────────────────── */
.category-body section:has(> section + section),
.service-detail__body section:has(> section + section),
.subcategory-body section:has(> section + section) {
  display: grid;
  gap: var(--space-md) var(--space-2xl);
  grid-template-columns: 1fr;
}
@media (min-width: 768px) {
  .category-body section:has(> section + section),
  .service-detail__body section:has(> section + section),
  .subcategory-body section:has(> section + section) {
    grid-template-columns: repeat(2, 1fr);
  }
}
.category-body section:has(> section + section) > h2,
.service-detail__body section:has(> section + section) > h2,
.subcategory-body section:has(> section + section) > h2 {
  grid-column: 1 / -1;
}
