
    /* Involve font family — SIL OFL 1.1 */
    /* Source: https://github.com/StefanPeev/Involve */
    @font-face { font-family: 'Involve'; src: url('fonts/Involve-Thin.woff2') format('woff2'); font-weight: 100; font-style: normal; font-display: swap; }
    @font-face { font-family: 'Involve'; src: url('fonts/Involve-ExtraLight.woff2') format('woff2'); font-weight: 200; font-style: normal; font-display: swap; }
    @font-face { font-family: 'Involve'; src: url('fonts/Involve-Light.woff2') format('woff2'); font-weight: 300; font-style: normal; font-display: swap; }
    @font-face { font-family: 'Involve'; src: url('fonts/Involve-Regular.woff2') format('woff2'); font-weight: 400; font-style: normal; font-display: swap; }
    @font-face { font-family: 'Involve'; src: url('fonts/Involve-Medium.woff2') format('woff2'); font-weight: 500; font-style: normal; font-display: swap; }
    @font-face { font-family: 'Involve'; src: url('fonts/Involve-SemiBold.woff2') format('woff2'); font-weight: 600; font-style: normal; font-display: swap; }
    @font-face { font-family: 'Involve'; src: url('fonts/Involve-Bold.woff2') format('woff2'); font-weight: 700; font-style: normal; font-display: swap; }
    @font-face { font-family: 'Involve'; src: url('fonts/Involve-ExtraBold.woff2') format('woff2'); font-weight: 800; font-style: normal; font-display: swap; }
    @font-face { font-family: 'Involve'; src: url('fonts/Involve-Black.woff2') format('woff2'); font-weight: 900; font-style: normal; font-display: swap; }
  

/* ===== следующий style-блок ===== */


.rb-page { display:none; } .rb-page[style*="block"] { display:block !important; }
.rb-page:not(:first-of-type) .preloader { display:none !important; }
/* v4.1 FIX: .mnav removed from this list — it must stay accessible
   on every page for the burger menu to work. The JS delegation below
   finds the .mnav inside the currently-active .rb-page. */
.rb-page:not(:first-of-type) .mega,
.rb-page:not(:first-of-type) .mega-overlay,
.rb-page:not(:first-of-type) .fab-messenger,
.rb-page:not(:first-of-type) .sticky-cta { display: none !important; }


/* ─── Kontakty requisites block ─────────────────────────── */
.kontakty-requisites {
  max-width: 820px;
  margin: 0 auto;
  padding: 56px 64px;
  background: var(--c-surface);
  border-left: 2px solid var(--c-accent);
}
.kontakty-requisites__eyebrow {
  margin-bottom: 16px;
  color: var(--c-text-muted);
}
.kontakty-requisites__title {
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: 40px;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--c-text);
  margin: 0 0 40px;
}
.kontakty-requisites__title em {
  font-style: italic;
  color: var(--c-accent-deep);
}
.kontakty-requisites__list {
  margin: 0 0 32px;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}
.kontakty-requisites__row {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 24px;
  padding: 18px 0;
  border-bottom: 1px solid rgba(26, 26, 26, 0.08);
}
.kontakty-requisites__row:last-child { border-bottom: 0; }
.kontakty-requisites__row dt {
  font-family: var(--font-sans);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--c-text-muted);
  font-weight: 500;
  padding-top: 3px;
}
.kontakty-requisites__row dd {
  margin: 0;
  font-family: var(--font-sans);
  font-size: 15px;
  line-height: 1.5;
  color: var(--c-text);
}
.kontakty-requisites__row dd a {
  color: var(--c-accent-deep);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.kontakty-requisites__note {
  margin: 0;
  font-family: var(--font-sans);
  font-size: 13px;
  line-height: 1.55;
  color: var(--c-text-muted);
}
.kontakty-requisites__note a {
  color: var(--c-accent-deep);
  text-decoration: underline;
  text-underline-offset: 3px;
}
@media (max-width: 767px) {
  .kontakty-requisites {
    padding: 32px 24px;
  }
  .kontakty-requisites__title { font-size: 28px; margin-bottom: 28px; }
  .kontakty-requisites__row {
    grid-template-columns: 1fr;
    gap: 4px;
    padding: 14px 0;
  }
  .kontakty-requisites__row dt { padding-top: 0; }
}

/* ─── Policy page styles ─────────────────────────────────────── */
.policy {
  max-width: 820px;
  margin: 0 auto;
  font-family: var(--font-sans);
  color: var(--c-text);
  line-height: 1.65;
}
.policy__h2 {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: 28px;
  line-height: 1.2;
  letter-spacing: -0.01em;
  margin: 56px 0 20px;
  color: var(--c-text);
}
.policy__h2:first-of-type { margin-top: 0; }
.policy__p {
  font-size: 16px;
  color: var(--c-text-muted);
  margin: 0 0 14px;
}
.policy__p strong { color: var(--c-text); font-weight: 500; }
.policy__p a {
  color: var(--c-accent-deep);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.policy__list {
  margin: 0 0 20px;
  padding-left: 0;
  list-style: none;
}
.policy__list li {
  position: relative;
  padding: 8px 0 8px 26px;
  font-size: 16px;
  color: var(--c-text-muted);
  line-height: 1.55;
}
.policy__list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 16px;
  width: 14px;
  height: 1px;
  background: var(--c-accent-deep);
}
.policy__requisites {
  margin: 12px 0 20px;
  padding: 24px 28px;
  background: var(--c-surface);
  border-left: 2px solid var(--c-accent);
}
.policy__requisites .policy__p { margin: 0 0 10px; }
.policy__requisites .policy__p:last-child { margin-bottom: 0; }
.policy__requisites-note {
  font-size: 11px !important;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--c-text-subtle) !important;
  margin-bottom: 18px !important;
}
.policy__placeholder { color: var(--c-text-subtle); font-style: italic; }
.policy__p--muted {
  margin-top: 40px;
  font-size: 13px;
  color: var(--c-text-subtle);
  letter-spacing: 0.02em;
}
@media (max-width: 767px) {
  .policy__h2 { font-size: 22px; margin: 40px 0 14px; }
  .policy__p, .policy__list li { font-size: 15px; }
  .policy__requisites { padding: 18px 20px; }
}



/* ===== следующий style-блок ===== */

/* ======================================================================
   REALBEAUTY × Quantum-editorial · main.css
   Design tokens · Reset · Typography · Layout · Animations
   ====================================================================== */

/* ─── Design tokens ──────────────────────────────────────────────────── */
:root {
  /* Colors */
  --c-bg:           #F5F1EB;
  --c-bg-alt:       #F0EBE3;
  --c-surface:      #FBFAF7;
  --c-text:         #1A1A1A;
  --c-text-muted:   #6B6763;
  --c-text-subtle:  #ACA8A3;
  --c-border:       rgba(26,26,26,0.12);
  --c-border-sm:    rgba(26,26,26,0.20);
  --c-accent:       #D6C53C;             /* RealBeauty warm yellow (насыщеннее, чтобы не терялся на креме) */
  --c-accent-deep:  #9F8B1C;
  --c-dark:         #0F0F10;             /* footer */
  --c-placeholder:  #E4DFD7;
  --c-ornament:     #B8AE9F;             /* sacred geometry lines */

  /* Typography — все шрифты заменены на Involve */
  /* Typography
     · Все шрифты на сайте заменены на Involve (геометрический гротеск)
     · Involve поддерживает 9 весов от Thin (100) до Black (900)
     · Источник: https://github.com/StefanPeev/Involve (SIL OFL 1.1) */
  --font-display:  'Involve', -apple-system, 'Segoe UI', sans-serif;
  --font-body:     'Involve', -apple-system, 'Segoe UI', sans-serif;
  --font-accent:   'Involve', -apple-system, 'Segoe UI', sans-serif;

  /* Aliases — all headings in codebase use --font-serif, now point to Involve */
  --font-serif:    var(--font-display);
  --font-sans:     var(--font-body);

  /* Scale */
  --fs-hero:    120px;
  --fs-h1:      72px;
  --fs-h2:      56px;
  --fs-h3:      36px;
  --fs-h4:      24px;
  --fs-stat:    clamp(88px, 9vw, 128px);
  --fs-lg:      18px;
  --fs-base:    16px;
  --fs-sm:      14px;
  --fs-xs:      12px;
  --fs-micro:   11px;

  /* Spacing */
  --sp-section:     160px;
  --sp-section-lg:  200px;
  --sp-block:       120px;
  --sp-pad:         80px;

  /* Layout */
  --container:   1440px;
  --pad:         80px;
  --header-h:    88px;

  /* Transitions */
  --ease:        cubic-bezier(0.22, 0.61, 0.36, 1);
  --t-fast:      240ms;
  --t-med:       600ms;
  --t-slow:      800ms;

  /* Z-index */
  --z-header:    100;
  --z-overlay:   900;
  --z-popup:     950;
  --z-preloader: 1000;

  /* ─── Interior photos (12 base64 images) */
  --i-arbat-1: url("/images/img-001-e984537a84.jpg");
  --i-arbat-2: url("/images/img-002-3c6e0f449d.jpg");
  --i-arbat-3: url("/images/img-003-65102445fa.jpg");
  --i-arbat-4: url("/images/img-004-f12bb134e1.jpg");
  --i-tagan-1: url("/images/taganskaya-01.jpg");
  --i-tagan-2: url("/images/img-006-2391f3c5e7.jpg");
  --i-tagan-3: url("/images/img-007-cd62dd2c66.jpg");
  --i-tagan-4: url("/images/img-008-2765d1d1fd.jpg");
  --i-mayak-1: url("/images/mayakovskaya-01.jpg");
  --i-mayak-2: url("/images/img-010-ccfbbfc21d.jpg");
  --i-mayak-3: url("/images/img-011-314b6f6436.jpg");
  --i-mayak-4: url("/images/img-012-5674be7c65.jpg");
}

/* ─── Reset ──────────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body {
  font-family: var(--font-sans);
  font-size: var(--fs-base);
  line-height: 1.6;
  color: var(--c-text);
  background: var(--c-bg);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  overflow-x: hidden;
}
body.is-locked { overflow: hidden; }
h1, h2, h3, h4, h5, p, ul, ol, figure { margin: 0; }
ul, ol { list-style: none; }
a { color: inherit; text-decoration: none; transition: color var(--t-fast) var(--ease); }
img, svg, video { max-width: 100%; display: block; }
button, input, select, textarea { font: inherit; color: inherit; }
button { border: 0; background: none; padding: 0; cursor: pointer; color: inherit; }

em, .t-italic {
  font-family: var(--font-accent);
  font-style: italic;
  font-weight: 400;
  letter-spacing: -0.015em;
}

/* RB-USER-FIX: заголовки/выделения без курсива и акцентного шрифта —
   единый прямой шрифт, как на референсе «O Quantum Clinic» */
em, .t-italic,
.hero__title em, .about-title em, .form-block__title em,
.page-hero__title em, .hero-split__title em, .mission-block__title em,
.section-header__title em, .kontakty-requisites__title em,
.footer__newsletter-title em {
  font-family: inherit !important;
  font-style: normal !important;
  font-weight: inherit !important;
  letter-spacing: inherit !important;
}

/* RB-USER-FIX: жёлтый акцент на выделениях в заголовках — везде */
.hero__title em, .about-title em, .form-block__title em,
.page-hero__title em, .hero-split__title em, .mission-block__title em,
.section-header__title em, .kontakty-requisites__title em,
.footer__newsletter-title em, .t-h1 em, .t-h2 em, .t-display em {
  color: var(--c-accent) !important;
}

/* ─── Typography utilities ───────────────────────────────────────────── */
.t-display {
  font-family: var(--font-display);
  font-weight: 300;
  line-height: 0.98;
  letter-spacing: -0.035em;
}
.t-h1 { font-family: var(--font-display); font-weight: 300; font-size: var(--fs-h1); line-height: 1.02; letter-spacing: -0.03em; }
.t-h2 { font-family: var(--font-display); font-weight: 300; font-size: var(--fs-h2); line-height: 1.05; letter-spacing: -0.025em; }
.t-h3 { font-family: var(--font-display); font-weight: 400; font-size: var(--fs-h3); line-height: 1.12; letter-spacing: -0.02em; }
.t-h4 { font-family: var(--font-display); font-weight: 500; font-size: var(--fs-h4); line-height: 1.25; letter-spacing: -0.01em; }
.t-eyebrow {
  display: inline-block;
  font-family: var(--font-sans);
  font-size: var(--fs-micro);
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--c-text-muted);
}
.t-lead {
  font-size: var(--fs-lg);
  line-height: 1.55;
  color: var(--c-text-muted);
  max-width: 480px;
}
.t-muted { color: var(--c-text-muted); }
.text-accent { color: var(--c-accent-deep); }

/* ─── Layout ─────────────────────────────────────────────────────────── */
.container {
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding-left: var(--pad);
  padding-right: var(--pad);
}
.section { padding: var(--sp-section) 0; }
.section--lg { padding: var(--sp-section-lg) 0; }

.section-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 48px;
  margin-bottom: 96px;
}
.section-header__lead { max-width: 720px; }
.section-header__eyebrow { margin-bottom: 16px; }

/* ─── Reveal on scroll ───────────────────────────────────────────────── */
.js .reveal {
  opacity: 0;
  transform: translateY(28px) scale(.985);
  transition: opacity var(--t-slow) var(--ease),
              transform var(--t-slow) cubic-bezier(.22, 1.12, .36, 1);
}
.js .reveal.is-vis {
  opacity: 1;
  transform: translateY(0);
}
.js .reveal--d1 { transition-delay: 100ms; }
.js .reveal--d2 { transition-delay: 200ms; }
.js .reveal--d3 { transition-delay: 300ms; }
.js .reveal--d4 { transition-delay: 400ms; }

/* ═══ RB-USER-FIX: BENTO-динамика — единый слой интерактива по всему сайту ═══ */
@media (prefers-reduced-motion: no-preference) {
  /* карточка лишь мягко приподнимается (без фона — тень на ней смотрелась бы прямоугольником) */
  .service-card, .svc-card, .promo-card, .blog-card,
  .about-item, .location, .master-card, .interior-photo {
    transition: transform .5s cubic-bezier(.22, .61, .36, 1);
  }
  .service-card:hover, .svc-card:hover, .promo-card:hover, .blog-card:hover,
  .about-item:hover, .location:hover, .master-card:hover {
    transform: translateY(-6px) !important;
  }
  .interior-photo:hover { transform: translateY(-6px) scale(1.012) !important; }

  /* мягкая тень — только под самим фото, повторяет его форму */
  .service-card__media, .svc-card__media, .promo-card__media,
  .blog-card__media, .master-card__photo, .about-item__media, .location__media {
    transition: box-shadow .5s cubic-bezier(.22, .61, .36, 1);
  }
  .service-card:hover .service-card__media,
  .svc-card:hover .svc-card__media,
  .promo-card:hover .promo-card__media,
  .blog-card:hover .blog-card__media,
  .master-card:hover .master-card__photo,
  .about-item:hover .about-item__media,
  .location:hover .location__media {
    box-shadow: 0 18px 36px -22px rgba(26, 26, 26, .42);
  }

  .mega__cat, .pl-tab {
    transition: transform .35s cubic-bezier(.22, .61, .36, 1), background .35s ease, color .35s ease;
  }
  .mega__cat:hover, .pl-tab:hover { transform: translateX(5px); }
}

/* ─── Ornaments ──────────────────────────────────────────────────────── */
.ornament {
  color: var(--c-ornament);
  display: inline-block;
}
.ornament svg { display: block; overflow: visible; }

@keyframes ornament-spin {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}
.ornament--spin {
  animation: ornament-spin 40s linear infinite;
  transform-origin: center;
  transform-box: fill-box;
  display: inline-block;
}

.ornament-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 80px;
  width: 100%;
  max-width: 760px;
  margin: 0 auto;
  padding: 0 var(--pad);
}
.ornament-divider__line {
  flex: 1 1 auto;
  height: 1px;
  max-width: 200px;
  background: rgba(184, 174, 159, 0.6);
}
.ornament-divider__mark { color: var(--c-ornament); flex-shrink: 0; }

.section-break { padding: 80px 0; }

.eyebrow-with-ornament {
  display: inline-flex;
  align-items: center;
  gap: 14px;
}

/* ─── Reduced motion ─────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .ornament--spin { animation: none; }
}

/* ─── Utilities ──────────────────────────────────────────────────────── */
.visually-hidden {
  position: absolute; width: 1px; height: 1px;
  padding: 0; margin: -1px; overflow: hidden;
  clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* ─── Preloader ──────────────────────────────────────────────────────── */
.preloader {
  position: fixed;
  inset: 0;
  z-index: var(--z-preloader);
  display: grid;
  place-items: center;
  background: var(--c-bg);
  transition: opacity 400ms var(--ease), visibility 0s 400ms;
}
.preloader.is-done {
  opacity: 0;
  visibility: hidden;
}

/* === */
/* ======================================================================
   REALBEAUTY × Quantum-editorial · components.css
   Buttons · Forms · Popup · Cards · Breadcrumbs · FAQ
   ====================================================================== */

/* ─── Buttons / CTAs ─────────────────────────────────────────────────── */

/* Primary text-CTA (underline + arrow) */
.link-cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--c-text);
  padding-bottom: 6px;
  border-bottom: 1px solid var(--c-text);
  cursor: pointer;
  transition: color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);
  background: transparent;
}
.link-cta__arrow { display: inline-block; transition: transform var(--t-fast) var(--ease); }
.link-cta:hover { color: var(--c-accent-deep); border-bottom-color: var(--c-accent-deep); }
.link-cta:hover .link-cta__arrow { transform: translateX(6px); }

/* Inline link */
.link-inline {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: var(--fs-sm);
  color: var(--c-text);
  padding-bottom: 3px;
  border-bottom: 1px solid var(--c-border-sm);
  transition: border-color var(--t-fast) var(--ease);
}
.link-inline:hover { border-bottom-color: var(--c-text); }
.link-inline .arrow { transition: transform var(--t-fast) var(--ease); }
.link-inline:hover .arrow { transform: translateX(4px); }

/* Secondary rectangular dark CTA — for form submits */
.btn-dark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  position: relative;
  min-height: 56px;
  padding: 0 40px;
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--c-surface);
  background: var(--c-text);
  border-radius: 2px;
  border: 0;
  cursor: pointer;
  transition: background var(--t-fast) var(--ease);
}
.btn-dark:hover { background: var(--c-dark); }
.btn-dark--block { width: 100%; }

.btn-dark__loader {
  display: none;
  width: 16px; height: 16px;
  border: 2px solid currentColor;
  border-top-color: transparent;
  border-radius: 50%;
  animation: btn-spin 0.8s linear infinite;
}
.btn-dark.is-loading .btn-dark__label { opacity: 0.4; }
.btn-dark.is-loading .btn-dark__loader { display: inline-block; }
.btn-dark.is-loading { pointer-events: none; }
@keyframes btn-spin { to { transform: rotate(360deg); } }

.btn-dark:focus-visible {
  outline: 2px solid var(--c-accent);
  outline-offset: 2px;
}

/* ─── Forms with underline inputs ────────────────────────────────────── */
.form {
  display: grid;
  gap: 24px;
}
/* Form subject block — shown when form is opened with context (promo/tier) */
.form__subject {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 14px 18px;
  margin-bottom: 14px;
  background: rgba(26, 26, 26, 0.03);
  border-left: 2px solid var(--c-accent);
  font-family: var(--font-sans);
}
.form__subject[hidden] { display: none; }
.form__subject-label {
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--c-text-muted);
}
.form__subject-value {
  font-size: 14px;
  font-weight: 500;
  color: var(--c-text);
  line-height: 1.35;
}

.form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.field {
  position: relative;
  display: block;
}
.field__input {
  width: 100%;
  padding: 16px 0;
  font-family: var(--font-sans);
  font-size: var(--fs-base);
  color: var(--c-text);
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--c-border-sm);
  outline: none;
  transition: border-color var(--t-fast) var(--ease);
}
.field__input::placeholder { color: var(--c-text-subtle); }
.field__input:focus { border-bottom-color: var(--c-text); }
.field.has-error .field__input { border-bottom-color: #B8443E; }

.field__error {
  display: block;
  font-size: var(--fs-xs);
  color: #B8443E;
  min-height: 14px;
  margin-top: 4px;
}

.form__legal {
  font-size: var(--fs-xs);
  line-height: 1.5;
  color: var(--c-text-muted);
}
.form__legal a { text-decoration: underline; text-underline-offset: 2px; }

.form__status {
  font-size: var(--fs-sm);
  min-height: 20px;
}
.form__status.ok { color: #3A7F4F; }
.form__status.err { color: #B8443E; }

/* ─── Breadcrumbs ────────────────────────────────────────────────────── */
.breadcrumbs__list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.breadcrumbs__item {
  display: flex;
  align-items: center;
  color: var(--c-text-muted);
}
.breadcrumbs__item:not(:last-child)::after {
  content: '/';
  margin: 0 12px;
  color: var(--c-text-subtle);
}
.breadcrumbs__item.is-current { color: var(--c-text); }
.breadcrumbs__link { color: var(--c-text-muted); }
.breadcrumbs__link:hover { color: var(--c-text); }

/* ─── Popup ──────────────────────────────────────────────────────────── */
.popup {
  position: fixed;
  inset: 0;
  z-index: var(--z-popup);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 32px;
  visibility: hidden;
  opacity: 0;
  transition: opacity var(--t-fast) var(--ease), visibility 0s var(--t-fast);
}
.popup.is-open {
  visibility: visible;
  opacity: 1;
  transition: opacity var(--t-fast) var(--ease);
}
.popup__overlay {
  position: absolute;
  inset: 0;
  background: rgba(15, 15, 16, 0.7);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}
.popup__dialog {
  position: relative;
  width: 100%;
  max-width: 520px;
  background: var(--c-surface);
  padding: 56px 56px 40px;
  border-radius: 2px;
  transform: translateY(16px);
  transition: transform var(--t-med) var(--ease);
  max-height: calc(100vh - 64px);
  overflow-y: auto;
}
.popup.is-open .popup__dialog { transform: translateY(0); }

.popup__close {
  position: absolute;
  top: 20px; right: 20px;
  width: 36px; height: 36px;
  display: grid; place-items: center;
  color: var(--c-text-muted);
  transition: color var(--t-fast) var(--ease);
}
.popup__close:hover { color: var(--c-text); }

.popup__title {
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: 40px;
  line-height: 1;
  color: var(--c-text);
  margin-bottom: 40px;
}

/* RB-USER-FIX: компактный попап записи — помещается в один экран */
.popup__dialog { padding: 34px 44px 30px !important; }
.popup__title  { font-size: 30px !important; margin-bottom: 20px !important; }
.form--popup   { gap: 14px !important; }
.form--popup .field__input   { padding: 10px 0 !important; }
.form--popup .form__subject  { padding: 10px 14px !important; margin-bottom: 6px !important; }
.form--popup .form__legal    { font-size: 12px !important; line-height: 1.4 !important; }
.popup__close  { top: 14px !important; right: 14px !important; }

/* ─── Card primitives ────────────────────────────────────────────────── */
.card {
  display: flex;
  flex-direction: column;
  cursor: pointer;
}
.card__media {
  aspect-ratio: 4 / 5;
  background: var(--c-placeholder);
  overflow: hidden;
  margin-bottom: 24px;
}
.card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--t-slow) var(--ease);
}
.card:hover .card__media img { transform: scale(1.04); }

.card__eyebrow {
  font-family: var(--font-sans);
  font-size: var(--fs-micro);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--c-text-muted);
  margin-bottom: 10px;
}
.card__title {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: 28px;
  line-height: 1.15;
  color: var(--c-text);
  margin-bottom: 12px;
}
.card__text {
  font-size: var(--fs-sm);
  line-height: 1.55;
  color: var(--c-text-muted);
  margin-bottom: 20px;
  flex: 1;
}
.card__link {
  font-size: var(--fs-sm);
  color: var(--c-text);
  padding-bottom: 3px;
  border-bottom: 1px solid var(--c-border-sm);
  transition: border-color var(--t-fast) var(--ease);
  align-self: flex-start;
}
.card:hover .card__link { border-bottom-color: var(--c-text); }

/* ─── FAQ accordion ──────────────────────────────────────────────────── */
.accordion {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.accordion__item {
  border-bottom: 1px solid var(--c-border);
}
.accordion__trigger {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  padding: 24px 0;
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: 22px;
  text-align: left;
  color: var(--c-text);
  background: transparent;
  cursor: pointer;
}
.accordion__trigger-icon {
  display: grid; place-items: center;
  width: 24px; height: 24px;
  color: var(--c-text-muted);
  transition: transform var(--t-fast) var(--ease);
  flex-shrink: 0;
  margin-left: 24px;
}
.accordion__item.is-open .accordion__trigger-icon { transform: rotate(45deg); }
.accordion__content {
  max-height: 0;
  overflow: hidden;
  transition: max-height var(--t-med) var(--ease);
}
.accordion__item.is-open .accordion__content { max-height: 500px; }
.accordion__content-inner {
  padding: 0 0 24px;
  font-size: var(--fs-sm);
  line-height: 1.65;
  color: var(--c-text-muted);
  max-width: 680px;
}

/* ─── Tabs (minimal) ─────────────────────────────────────────────────── */
.tabs-line {
  display: flex;
  border-bottom: 1px solid var(--c-border);
  margin-bottom: 48px;
}
.tabs-line__btn {
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--c-text-muted);
  padding: 18px 32px;
  background: transparent;
  border-bottom: 1px solid transparent;
  margin-bottom: -1px;
  cursor: pointer;
  transition: color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);
}
.tabs-line__btn:hover { color: var(--c-text); }
.tabs-line__btn.is-active {
  color: var(--c-text);
  border-bottom-color: var(--c-text);
}

.tab-panel { display: none; }
.tab-panel.is-active { display: block; animation: fade-in var(--t-med) var(--ease); }
@keyframes fade-in {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* === */
/* ======================================================================
   REALBEAUTY × Quantum-editorial · header.css
   ====================================================================== */

.header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: var(--header-h);
  z-index: var(--z-header);
  background: rgba(250, 247, 242, 0.97);
  backdrop-filter: saturate(1.4) blur(20px);
  -webkit-backdrop-filter: saturate(1.4) blur(20px);
  border-bottom: 1px solid rgba(26, 26, 26, 0.06);
  box-shadow: 0 1px 24px -12px rgba(26, 26, 26, 0.08);
  transition: background var(--t-fast) var(--ease),
              backdrop-filter var(--t-fast) var(--ease),
              border-color var(--t-fast) var(--ease),
              box-shadow var(--t-fast) var(--ease);
}
/* On pages with the immersive hero, header starts fully transparent over the photo */
body:has(.hero) .header:not(.is-scrolled) {
  background: rgba(245, 241, 235, 0);
  border-bottom-color: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
/* No scrim band — the hero photo overlay already darkens everything; just rely on text-shadow for header items */
/* Light text while transparent (over the dark hero image) */
body:has(.hero) .header:not(.is-scrolled) .logo,
body:has(.hero) .header:not(.is-scrolled) .logo .logo__mark,
body:has(.hero) .header:not(.is-scrolled) .logo__name,
body:has(.hero) .header:not(.is-scrolled) .nav__link,
body:has(.hero) .header:not(.is-scrolled) .header__phone,
body:has(.hero) .header:not(.is-scrolled) .header__soc {
  color: #fff;
  text-shadow: 0 1px 14px rgba(0,0,0,0.55);
}
body:has(.hero) .header:not(.is-scrolled) .logo .logo__mark {
  filter: drop-shadow(0 1px 8px rgba(0,0,0,0.4));
  text-shadow: none;
}
body:has(.hero) .header:not(.is-scrolled) .logo__sub {
  color: rgba(255,255,255,0.85);
  text-shadow: 0 1px 8px rgba(0,0,0,0.5);
}
body:has(.hero) .header:not(.is-scrolled) .nav__link::after {
  background: #fff;
}
body:has(.hero) .header:not(.is-scrolled) .header__soc:hover {
  background: rgba(255,255,255,0.14);
}
body:has(.hero) .header:not(.is-scrolled) .header__phone:hover {
  color: rgba(255,255,255,0.78);
}
.header.is-scrolled {
  background: rgba(250, 247, 242, 0.97);
  backdrop-filter: saturate(1.4) blur(20px);
  -webkit-backdrop-filter: saturate(1.4) blur(20px);
  border-bottom-color: rgba(26, 26, 26, 0.06);
  box-shadow: 0 1px 24px -12px rgba(26, 26, 26, 0.08);
}
.header__inner {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 64px;
  height: 100%;
  position: relative;
  z-index: 1;
}

/* ─── Logo ───────────────────────────────────────────────────────────── */
.logo {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--c-text);
}
.logo__text { display: flex; flex-direction: column; }
.logo__name {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: 20px;
  letter-spacing: 0.18em;
  line-height: 1;
}
.logo__sub {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 12px;
  color: var(--c-text-muted);
  margin-top: 3px;
  letter-spacing: 0.02em;
}
/* ─── Brand mark (RB monogram in header, full lockup in footer) */
.logo .logo__mark {
  height: 58px;
  width: auto;
  display: block;
  color: var(--c-text);
  flex-shrink: 0;
  transition: opacity var(--t-fast) var(--ease);
}
.logo:hover .logo__mark { opacity: 0.78; }
.footer__brand .logo__svg {
  height: 80px;
  width: auto;
  display: block;
  color: rgba(255, 255, 255, 0.94);
  transition: opacity var(--t-fast) var(--ease);
}
.footer__brand:hover .logo__svg { opacity: 0.82; }

/* ─── Navigation ─────────────────────────────────────────────────────── */
.nav {
  display: flex;
  justify-content: center;
  gap: 48px;
}
.nav__link {
  font-family: var(--font-sans);
  font-size: var(--fs-xs);
  font-weight: 500;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--c-text);
  position: relative;
  padding: 4px 0;
  transition: color var(--t-fast) var(--ease);
}
.nav__link::after {
  content: '';
  position: absolute;
  left: 0; right: 0; bottom: -2px;
  height: 1px;
  background: var(--c-text);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--t-fast) var(--ease);
}
.nav__link:hover::after,
.nav__link.is-active::after { transform: scaleX(1); }

/* ─── Header right ───────────────────────────────────────────────────── */
.header__right {
  display: flex;
  align-items: center;
  gap: 32px;
}
.header__phone {
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  font-weight: 500;
  color: var(--c-text);
  letter-spacing: 0.03em;
}
.header__phone:hover { color: var(--c-accent-deep); }
.header__socials { display: flex; gap: 12px; }
/* Max messenger logo — PNG render inside socials (hover parity) */
.header__soc--max,
.footer__msg--max {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 0;
  transition: opacity 0.2s ease, transform 0.2s ease;
}
.header__soc--max img,
.footer__msg--max img {
  display: block;
  width: 16px;
  height: 16px;
  border-radius: 3px;
  object-fit: contain;
}
.header__soc--max:hover,
.footer__msg--max:hover {
  opacity: 0.8;
}

.mnav__msg--max img {
  display: block;
  width: 22px;
  height: 22px;
  border-radius: 5px;
  object-fit: contain;
}
.mnav__msg--max {
  transition: opacity 0.2s ease;
}
.mnav__msg--max:hover,
.mnav__msg--max:active {
  opacity: 0.82;
  background: var(--c-surface) !important;
  color: inherit !important;
  border-color: var(--c-border) !important;
}
.header__soc {
  width: 36px; height: 36px;
  display: grid; place-items: center;
  color: var(--c-text);
  border-radius: 50%;
  transition: background var(--t-fast) var(--ease);
}
.header__soc:hover { background: var(--c-border); }

/* === */
/* =====================================================================
   REALBEAUTY · mega-services.css
   Megamenu для «Услуги» в главном меню
   ===================================================================== */

/* ─── Trigger button chevron ─────────────────────────────────────── */
.nav__trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: transparent;
  border: 0;
  cursor: pointer;
  padding: 6px 0;
  font: inherit;
  color: inherit;
  position: relative;
}
.nav__chevron {
  transition: transform var(--t-fast) var(--ease);
  opacity: 0.7;
}
.nav__trigger[aria-expanded="true"] .nav__chevron {
  transform: rotate(180deg);
}

/* ─── Overlay ─────────────────────────────────────────────────────── */
.mega-overlay {
  position: fixed;
  inset: 0;
  background: rgba(26, 26, 26, 0.4);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--t-fast) var(--ease), visibility var(--t-fast);
  z-index: calc(var(--z-header) - 1);
}
.mega-overlay.is-visible {
  opacity: 1;
  visibility: visible;
}

/* ─── Mega panel ──────────────────────────────────────────────────── */
.mega {
  position: fixed;
  top: var(--header-h);
  left: 0;
  right: 0;
  z-index: calc(var(--z-header) + 1);
  background: var(--c-bg);
  border-top: 1px solid var(--c-border);
  border-bottom: 1px solid var(--c-border);
  box-shadow: 0 20px 48px rgba(0, 0, 0, 0.06);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-10px);
  transition: opacity var(--t-fast) var(--ease),
              transform var(--t-fast) var(--ease),
              visibility var(--t-fast);
  max-height: calc(100vh - var(--header-h));
  overflow-y: auto;
  overscroll-behavior: contain;
}
.mega.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.mega__inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: 28px var(--pad) 40px;
}

/* ─── Tabs + всех услуги ─────────────────────────────────────────── */
.mega__tabs {
  display: flex;
  align-items: center;
  gap: 40px;
  padding-bottom: 20px;
  margin-bottom: 32px;
  border-bottom: 1px solid var(--c-border);
}

.mega__tab {
  background: transparent;
  border: 0;
  cursor: pointer;
  padding: 8px 0;
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--c-text-muted);
  transition: color var(--t-fast) var(--ease);
  position: relative;
}
.mega__tab::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -21px;
  height: 1px;
  background: var(--c-text);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform var(--t-fast) var(--ease);
}
.mega__tab:hover { color: var(--c-text); }
.mega__tab.is-active {
  color: var(--c-text);
}
.mega__tab.is-active::after {
  transform: scaleX(1);
}

.mega__all-link {
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-display);
  font-size: 11px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--c-accent-deep);
  text-decoration: none;
  transition: color var(--t-fast) var(--ease);
}
.mega__all-link:hover { color: var(--c-text); }
.mega__all-link svg { transition: transform var(--t-fast) var(--ease); }
.mega__all-link:hover svg { transform: translateX(3px); }

/* ─── Panels ─────────────────────────────────────────────────────── */
.mega__panel {
  display: none;
  opacity: 0;
  transition: opacity var(--t-fast) var(--ease);
}
.mega__panel.is-active {
  display: grid;
  grid-template-columns: 320px 1fr;
  gap: 48px;
  opacity: 1;
}

.mega__back {
  display: none;  /* desktop hidden */
}

/* ─── Categories column (left) ───────────────────────────────────── */
.mega__cats {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.mega__cat {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  width: 100%;
  padding: 14px 16px;
  background: transparent;
  border: 0;
  cursor: pointer;
  text-align: left;
  font-family: var(--font-display);
  font-size: 15px;
  font-weight: 400;
  color: var(--c-text);
  border-radius: 2px;
  transition: background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}
.mega__cat:hover {
  background: var(--c-bg-alt);
}
.mega__cat.is-active {
  background: var(--c-text);
  color: var(--c-surface);
}
.mega__cat-title { flex: 1; }
.mega__cat-arrow {
  opacity: 0.5;
  transition: transform var(--t-fast) var(--ease), opacity var(--t-fast) var(--ease);
  flex-shrink: 0;
}
.mega__cat:hover .mega__cat-arrow { opacity: 1; transform: translateX(2px); }
.mega__cat.is-active .mega__cat-arrow { opacity: 1; transform: translateX(2px); }

/* ─── Content column (right) ─────────────────────────────────────── */
.mega__content {
  min-height: 360px;
}

.mega__cat-panel {
  display: none;
  opacity: 0;
  transition: opacity 200ms var(--ease);
}
.mega__cat-panel.is-active {
  display: block;
  opacity: 1;
}

.mega__cat-header {
  padding-bottom: 20px;
  margin-bottom: 24px;
  border-bottom: 1px solid var(--c-border);
}
.mega__cat-h3 {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 26px;
  line-height: 1.15;
  color: var(--c-text);
  letter-spacing: -0.02em;
  margin-bottom: 6px;
}
.mega__cat-desc {
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.5;
  color: var(--c-text-muted);
  max-width: 560px;
}

/* Items flat */
.mega__items {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2px 32px;
}
.mega__item {
  display: block;
  padding: 12px 0;
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--c-text);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease), padding-left var(--t-fast) var(--ease);
  position: relative;
}
.mega__item:hover {
  color: var(--c-accent-deep);
  padding-left: 6px;
}
.mega__item::before {
  content: '';
  position: absolute;
  left: -14px;
  top: 50%;
  transform: translateY(-50%);
  width: 6px;
  height: 1px;
  background: var(--c-accent);
  opacity: 0;
  transition: opacity var(--t-fast) var(--ease);
}
.mega__item:hover::before { opacity: 1; }

/* Subgroups */
.mega__subgroups {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 32px 40px;
}
.mega__subgroup-label {
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.2em;
  color: var(--c-accent-deep);
  margin-bottom: 8px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--c-border);
}
.mega__subgroup .mega__items {
  grid-template-columns: 1fr;
  gap: 0;
}

/* ─── Problems tab ───────────────────────────────────────────────── */
.mega__problems {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px;
  width: 100%;
}

.mega__problem-block { }

.mega__problem-cat {
  font-family: var(--font-display);
  font-size: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.22em;
  color: var(--c-accent-deep);
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--c-border);
}

.mega__problem-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.mega__problem {
  border: 0;
}
.mega__problem-name {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 0;
  font-family: var(--font-body);
  font-size: 15px;
  color: var(--c-text);
  cursor: pointer;
  list-style: none;
  transition: color var(--t-fast) var(--ease);
}
.mega__problem-name::-webkit-details-marker { display: none; }
.mega__problem-name svg {
  transition: transform var(--t-fast) var(--ease);
  opacity: 0.5;
  flex-shrink: 0;
}
.mega__problem[open] .mega__problem-name svg { transform: rotate(180deg); }
.mega__problem-name:hover { color: var(--c-accent-deep); }

.mega__rec-list {
  list-style: none;
  padding: 0 0 12px 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.mega__rec {
  display: inline-block;
  padding: 6px 0 6px 12px;
  font-family: var(--font-body);
  font-size: 13px;
  color: var(--c-text-muted);
  text-decoration: none;
  position: relative;
  transition: color var(--t-fast) var(--ease);
}
.mega__rec::before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 6px;
  height: 1px;
  background: var(--c-accent);
}
.mega__rec:hover { color: var(--c-text); }

/* ─── Body scroll lock when open ─────────────────────────────────── */
body.mega-open {
  overflow: hidden;
}

/* ─── Prevent text selection during animation ────────────────────── */
.mega-overlay,
.mega { user-select: none; }
.mega.is-open { user-select: auto; }

/* ─── Responsive: tablet (<1024px) ───────────────────────────────── */
@media (max-width: 1023px) {
  .mega__panel.is-active {
    grid-template-columns: 240px 1fr;
    gap: 32px;
  }
  .mega__problems { grid-template-columns: repeat(2, 1fr); }
}

/* ─── Responsive: mobile (<768px) — full-screen with accordion ─── */
@media (max-width: 767px) {
  .mega {
    top: var(--header-h-sm, 72px);
    max-height: calc(100vh - var(--header-h-sm, 72px));
  }
  .mega__inner { padding: 20px 24px 32px; }

  .mega__tabs { gap: 24px; padding-bottom: 16px; margin-bottom: 20px; }
  .mega__all-link { display: none; }

  .mega__panel.is-active {
    grid-template-columns: 1fr;
    gap: 0;
  }

  /* Mobile: show cats, hide content until category clicked */
  .mega__cats { display: flex; }
  .mega__content {
    position: fixed;
    inset: var(--header-h-sm, 72px) 0 0 0;
    background: var(--c-bg);
    padding: 20px 24px 32px;
    z-index: 2;
    overflow-y: auto;
    transform: translateX(100%);
    transition: transform 280ms var(--ease);
  }
  .mega__content.is-mobile-open {
    transform: translateX(0);
  }

  .mega__back {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: transparent;
    border: 0;
    padding: 8px 0;
    margin-bottom: 20px;
    font-family: var(--font-display);
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--c-text-muted);
    cursor: pointer;
  }

  .mega__items { grid-template-columns: 1fr; }
  .mega__problems { grid-template-columns: 1fr; gap: 28px; }

  .mega__cat {
    padding: 16px 14px;
    min-height: 52px;
  }
  .mega__item { padding: 14px 0; min-height: 44px; }
}

/* === */
/* =====================================================================
   REALBEAUTY · footer.css (SEO + ФЗ-168 compliant, production-ready)
   ===================================================================== */

.footer {
  background: #0A0A0B;
  color: rgba(255, 255, 255, 0.55);
  padding: 72px 0 32px;
  position: relative;
  overflow: hidden;
}

.footer a {
  color: rgba(255, 255, 255, 0.72);
  text-decoration: none;
  transition: color var(--t-fast) var(--ease);
}
.footer a:hover { color: #FFFFFF; }

/* ─── 1. HEAD ──────────────────────────────────────────────────────── */
.footer__head {
  display: grid;
  grid-template-columns: 1fr 1.2fr;
  gap: 80px;
  padding-bottom: 56px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.footer__head-left { display: flex; flex-direction: column; gap: 24px; }

.footer__brand {
  display: inline-flex;
  align-items: center;
  gap: 18px;
  color: #FFFFFF !important;
  width: fit-content;
}
.footer__brand-mark {
  color: rgba(184, 174, 159, 0.8);
  display: inline-flex;
  flex-shrink: 0;
}
.footer__brand-text { display: flex; flex-direction: column; line-height: 1; }
.footer__brand-name {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: 22px;
  letter-spacing: 0.22em;
  color: #FFFFFF;
}
.footer__brand-sub {
  font-family: var(--font-serif);
  font-style: italic;
  font-size: 13px;
  letter-spacing: 0.24em;
  color: rgba(255, 255, 255, 0.5);
  margin-top: 6px;
  text-transform: uppercase;
}

.footer__tagline {
  font-family: var(--font-sans);
  font-size: 14px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.55);
  max-width: 460px;
}

.footer__head-right { max-width: 620px; }

.footer__newsletter-title {
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: 40px;
  line-height: 1.1;
  color: #FFFFFF;
  margin-bottom: 24px;
  letter-spacing: -0.01em;
}
.footer__newsletter-title em { font-style: italic; color: var(--c-accent); }

.footer__newsletter {
  position: relative;
  display: flex;
  background: #1A1A1B;
  border-radius: 999px;
  padding: 8px 8px 8px 28px;
  margin-bottom: 20px;
}
.footer__newsletter-input {
  flex: 1;
  background: transparent;
  border: 0;
  color: #FFFFFF;
  font-family: var(--font-sans);
  font-size: 15px;
  padding: 14px 12px;
  outline: none;
  min-height: 44px;
}
.footer__newsletter-input::placeholder { color: rgba(255, 255, 255, 0.4); }
.footer__newsletter-btn {
  flex-shrink: 0;
  padding: 14px 36px;
  min-height: 44px;
  background: #B19578;
  color: #0A0A0B;
  border: 0;
  border-radius: 999px;
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background var(--t-fast) var(--ease);
}
.footer__newsletter-btn:hover { background: #C5A98A; }

.footer__newsletter-legal {
  font-family: var(--font-sans);
  font-size: 12px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.4);
}
.footer__newsletter-legal a {
  color: rgba(255, 255, 255, 0.65) !important;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* ─── 2. NAV — 6 cols ────────────────────────────────────────────── */
.footer__grid {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 40px;
  padding: 56px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

/* Nav-variant of footer grid: 3 menu columns (desktop), cascade to 1 on mobile via existing rules */
.footer__grid--nav {
  grid-template-columns: repeat(3, 1fr);
  gap: 32px 48px;
  padding: 48px 0;
}
@media (max-width: 1279px) {
  .footer__grid--nav {
    grid-template-columns: repeat(3, 1fr);
    gap: 32px;
    padding: 40px 0;
  }
}
@media (max-width: 767px) {
  .footer__grid--nav {
    padding: 0 !important;
  }
}

.footer__col { min-width: 0; }

.footer__col-title {
  display: block;
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: #FFFFFF !important;
  margin-bottom: 24px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
  transition: color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);
}
.footer__col-title:hover {
  color: var(--c-accent) !important;
  border-bottom-color: var(--c-accent);
}

.footer__menu {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.footer__menu a {
  font-family: var(--font-sans);
  font-size: 14px;
  line-height: 1.3;
  color: rgba(255, 255, 255, 0.65);
  display: inline-block;
  padding: 2px 0;
  min-height: 20px;
}
.footer__menu a:hover { color: var(--c-accent); }

/* Contacts column */
.footer__contact-block {
  font-style: normal;
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-bottom: 20px;
}
.footer__contact-label {
  font-family: var(--font-sans);
  font-size: 11px;
  color: rgba(255, 255, 255, 0.4);
  margin-bottom: 6px;
}
.footer__contact-phone {
  font-family: var(--font-sans);
  font-size: 17px;
  font-weight: 500;
  color: #FFFFFF !important;
  letter-spacing: 0.01em;
  min-height: 28px;
  padding: 2px 0;
}
.footer__contact-phone:hover { color: var(--c-accent) !important; }
.footer__contact-email {
  font-family: var(--font-sans);
  font-size: 13px;
  color: rgba(255, 255, 255, 0.55) !important;
  margin-top: 8px;
  padding: 2px 0;
  min-height: 20px;
}
.footer__contact-email:hover { color: #FFFFFF !important; }

.footer__messengers {
  display: flex;
  gap: 8px;
}
.footer__msg {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: #1A1A1B;
  color: rgba(255, 255, 255, 0.75) !important;
  transition: background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}
.footer__msg:hover {
  background: var(--c-accent);
  color: #0A0A0B !important;
}

/* ─── 2. Contacts block (replaces the old nav grid + NAP strip) ─────── */
.footer__contacts {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 64px;
  align-items: start;
  padding: 48px 0;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}
.footer__contacts-col { display: flex; flex-direction: column; }
.footer__contacts-col .footer__contact-label { margin-bottom: 16px; }
.footer__contacts-col .footer__messengers { margin-top: 20px; }
.footer__contact-value {
  font-family: var(--font-sans);
  font-size: 15px;
  color: rgba(255, 255, 255, 0.82);
  line-height: 1.5;
}

/* ─── 3. NAP strip — address + hours + geo ────────────────────────── */
.footer__nap {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 64px;
  align-items: start;
  padding: 48px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.footer__nap-info {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.footer__nap-row {
  display: grid;
  grid-template-columns: 130px 1fr;
  gap: 20px;
  align-items: baseline;
}
.footer__nap-label {
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: rgba(255, 255, 255, 0.4);
}
.footer__nap-value {
  font-family: var(--font-sans);
  font-size: 15px;
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.5;
}

.footer__nap-geo-title {
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: rgba(255, 255, 255, 0.4);
  margin-bottom: 16px;
}
.footer__nap-geo-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}
.footer__geo-link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 10px 16px;
  background: #1A1A1B;
  border-radius: 999px;
  font-family: var(--font-sans);
  font-size: 13px;
  color: rgba(255, 255, 255, 0.75) !important;
  min-height: 40px;
  transition: background var(--t-fast) var(--ease);
}
.footer__geo-link:hover {
  background: #26262A;
  color: #FFFFFF !important;
}
.footer__geo-icon {
  width: 22px;
  height: 22px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 700;
  color: #FFFFFF;
  flex-shrink: 0;
}
.footer__geo-icon--yandex { background: #FC3F1D; }
.footer__geo-icon--google { background: #4285F4; }
.footer__geo-icon--dgis   { background: #0E8F4C; }
.footer__geo-icon--zoon   { background: #00A7D4; }
.footer__geo-icon--yc     { background: #1A5FBF; font-size: 9px; }

/* ─── 4. Bottom — payments + rating + legal-row ────────────────────── */
.footer__bottom {
  display: grid;
  grid-template-columns: 1fr 1fr 1.3fr;
  gap: 48px;
  align-items: center;
  padding: 40px 0 32px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.footer__bottom-item {
  display: flex;
  align-items: center;
  gap: 20px;
}

.footer__bottom-label {
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: rgba(255, 255, 255, 0.35);
}

.footer__payments {
  display: flex;
  align-items: center;
  gap: 10px;
}
.footer__payment {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 16px;
  min-width: 54px;
  height: 34px;
  background: #FFFFFF;
  border-radius: 4px;
  color: #0A0A0B;
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 700;
}
.footer__payment--mc {
  padding: 0;
  position: relative;
  min-width: 56px;
  background: #FFFFFF;
}
.footer__pay-c1, .footer__pay-c2 {
  position: absolute;
  top: 50%;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  transform: translateY(-50%);
}
.footer__pay-c1 { left: 10px; background: #EB001B; }
.footer__pay-c2 { left: 22px; background: #F79E1B; mix-blend-mode: multiply; }
.footer__payment--visa {
  background: #1A1F71;
  color: #FFFFFF;
  font-style: italic;
  letter-spacing: 0.1em;
}
.footer__payment--mir {
  background: linear-gradient(90deg, #0F754E 0%, #0F754E 50%, #1A8850 50%, #1A8850 100%);
  color: #FFFFFF;
  font-size: 10px;
  letter-spacing: 0.15em;
}
.footer__payment--sbp {
  background: linear-gradient(135deg, #5B47DD 0%, #FF4D4D 100%);
  color: #FFFFFF;
  font-size: 11px;
  letter-spacing: 0.1em;
}

.footer__rating {
  padding: 12px 20px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.02);
  justify-self: start;
}
.footer__rating-value {
  font-family: var(--font-sans);
  font-size: 18px;
  font-weight: 600;
  color: #FFFFFF;
  line-height: 1.1;
  display: flex;
  align-items: center;
  gap: 8px;
}
.footer__stars {
  color: #FFD633;
  font-size: 12px;
  letter-spacing: 1px;
}
.footer__rating-label {
  font-size: 11px;
  color: rgba(255, 255, 255, 0.5);
  margin-top: 2px;
}

.footer__legal-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}
.footer__legal-link {
  font-family: var(--font-sans);
  font-size: 12px;
  color: rgba(255, 255, 255, 0.55) !important;
  padding: 8px 16px;
  min-height: 36px;
  display: inline-flex;
  align-items: center;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 999px;
  transition: all var(--t-fast) var(--ease);
}
.footer__legal-link:hover {
  color: #FFFFFF !important;
  border-color: rgba(255, 255, 255, 0.3);
}

/* ─── 5. Disclaimer ─────────────────────────────────────────────── */
.footer__disclaimer {
  padding: 28px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.footer__disclaimer-medical {
  font-family: var(--font-sans);
  font-size: 12px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.5);
  margin-bottom: 10px;
  max-width: 960px;
}
.footer__disclaimer-medical strong {
  color: rgba(255, 255, 255, 0.85);
  font-weight: 500;
}
.footer__disclaimer-meta {
  font-family: var(--font-sans);
  font-size: 11px;
  line-height: 1.5;
  color: rgba(255, 255, 255, 0.35);
  font-style: italic;
}

/* ─── 6. Requisites + copyright ────────────────────────────────── */
.footer__requisites {
  padding: 24px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.footer__requisites p {
  font-family: var(--font-sans);
  font-size: 11px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.4);
  margin: 0;
  letter-spacing: 0.01em;
}
.footer__requisites strong {
  color: rgba(255, 255, 255, 0.7);
  font-weight: 500;
}

.footer__copyright {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
  padding-top: 24px;
  font-family: var(--font-sans);
  font-size: 11px;
  color: rgba(255, 255, 255, 0.3);
  letter-spacing: 0.02em;
}
.footer__dev a {
  color: rgba(255, 255, 255, 0.5) !important;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.footer__dev a:hover { color: #FFFFFF !important; }

/* ─── Responsive: 4 cols tablet → 2 cols mobile ───────────────── */
@media (max-width: 1279px) {
  .footer__grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 48px 32px;
  }
}

@media (max-width: 767px) {
  .footer {
    padding: 48px 0 24px;
  }
  .footer__head {
    grid-template-columns: 1fr;
    gap: 48px;
    padding-bottom: 40px;
  }
  .footer__newsletter-title { font-size: 28px; }
  .footer__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 40px 24px;
    padding: 40px 0;
  }
  .footer__nap {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 32px 0;
  }
  .footer__contacts {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 32px 0;
  }
  .footer__nap-row { grid-template-columns: 1fr; gap: 4px; }
  .footer__bottom {
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 32px 0 24px;
  }
  .footer__legal-row { justify-content: flex-start; }
  .footer__copyright {
    flex-direction: column;
    gap: 8px;
  }
}

@media (max-width: 479px) {
  .footer__grid { grid-template-columns: 1fr; }
  .footer__newsletter { flex-direction: column; padding: 8px; border-radius: 12px; }
  .footer__newsletter-input { padding: 14px; }
  .footer__newsletter-btn { width: 100%; border-radius: 8px; }
}

/* === */
/* ======================================================================
   REALBEAUTY × Quantum-editorial · pages.css
   Hero · Segment · Services · Promos · About · Stats · Locations ·
   Blog · Form block · Page-hero (inner pages) · 404
   ====================================================================== */

/* ─── Hero ───────────────────────────────────────────────────────────── */
.hero {
  position: relative;
  min-height: 100vh;
  padding: calc(var(--header-h) + 80px) 0 100px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.hero__visual {
  position: absolute;
  inset: 0;
  z-index: 0;
  background: var(--c-placeholder);
  overflow: hidden;
  animation: ken-burns 14s var(--ease) infinite alternate;
}
.hero__visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero__visual::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 75% 55% at 50% 48%, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0) 100%),
    linear-gradient(180deg, rgba(0,0,0,0.62) 0%, rgba(0,0,0,0.62) 50%, rgba(0,0,0,0.74) 100%);
  z-index: 1;
}
@keyframes ken-burns {
  from { transform: scale(1); }
  to   { transform: scale(1.06); }
}
.hero__grid {
  position: relative;
  z-index: 2;
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: calc(100vh - var(--header-h) - 180px);
}
.hero__content {
  position: relative;
  z-index: 2;
  text-align: center;
  max-width: 880px;
  margin: 0 auto;
  padding: 0 var(--pad);
  color: #fff;
}
.hero__eyebrow {
  margin-bottom: 40px;
  color: rgba(255,255,255,0.92);
  text-shadow: 0 1px 8px rgba(0,0,0,0.4);
}
.hero__title {
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: clamp(36px, 5.5vw, 72px);
  line-height: 1.02;
  letter-spacing: -0.02em;
  color: #fff;
  margin-bottom: 32px;
  text-shadow: 0 2px 28px rgba(0,0,0,0.5);
}
.hero__title em {
  font-style: italic;
  font-weight: 300;
  color: var(--c-accent);
  opacity: 1;
}
.hero__sub {
  font-size: clamp(15px, 1.2vw, 18px);
  line-height: 1.55;
  color: #fff;
  max-width: 620px;
  margin: 0 auto 48px;
  text-shadow: 0 1px 16px rgba(0,0,0,0.55);
}
.hero__actions {
  display: flex;
  gap: 24px;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
}
.hero__cta {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
  min-width: 280px;
  padding: 8px 8px 8px 44px;
  background: rgba(20, 20, 20, 0.5);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border: 1px solid rgba(255, 255, 255, 0.28);
  border-radius: 999px;
  color: #fff;
  font-size: var(--fs-micro, 13px);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  font-weight: 500;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.3s var(--ease), border-color 0.3s var(--ease), transform 0.3s var(--ease);
}
.hero__cta:hover {
  background: rgba(20, 20, 20, 0.55);
  border-color: rgba(255, 255, 255, 0.4);
  transform: translateY(-2px);
}
.hero__cta .arrow {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--c-accent);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 18px;
  font-family: var(--font-sans);
  letter-spacing: 0;
  transition: transform 0.35s var(--ease), background 0.3s var(--ease);
  flex-shrink: 0;
}
.hero__cta:hover .arrow {
  transform: translateX(4px);
  background: var(--c-accent-deep);
}
.hero__meta {
  position: absolute;
  right: var(--pad);
  bottom: 40px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  z-index: 3;
}
.hero__meta-label {
  font-size: var(--fs-micro);
  color: rgba(255,255,255,0.7);
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.hero__meta-value {
  font-family: var(--font-serif);
  font-size: 20px;
  color: #fff;
}

/* ─── Segment ────────────────────────────────────────────────────────── */
.segment {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid var(--c-border);
  border-bottom: 1px solid var(--c-border);
}
.segment__item {
  position: relative;
  display: flex;
  align-items: center;
  gap: 32px;
  padding: 60px var(--pad);
  transition: background var(--t-med) var(--ease);
  cursor: pointer;
}
.segment__item + .segment__item { border-left: 1px solid var(--c-border); }
.segment__item:hover { background: var(--c-bg-alt); }
.segment__photo {
  width: 140px;
  aspect-ratio: 4 / 5;
  background: var(--c-placeholder);
  overflow: hidden;
  flex-shrink: 0;
}
.segment__photo img { width: 100%; height: 100%; object-fit: cover; }
.segment__body { flex: 1; }
.segment__title {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: 40px;
  line-height: 1.05;
  color: var(--c-text);
  margin-bottom: 8px;
}
.segment__desc { font-size: var(--fs-sm); color: var(--c-text-muted); }
.segment__arrow {
  font-size: 32px;
  color: var(--c-text-muted);
  transition: transform var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}
.segment__item:hover .segment__arrow {
  transform: translateX(8px);
  color: var(--c-accent-deep);
}

/* ─── Services grid 3×N ──────────────────────────────────────────────── */
.services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
.service-card { display: flex; flex-direction: column; cursor: pointer; }
.service-card__media {
  aspect-ratio: 4 / 5;
  background: var(--c-placeholder);
  overflow: hidden;
  margin-bottom: 24px;
}
.service-card__media img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform var(--t-slow) var(--ease);
}
.service-card:hover .service-card__media img { transform: scale(1.05); }

/* ─── Background-image variant for interior photos (dedup via CSS vars) */
.service-card__media-img,
.location__media-img {
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  transition: transform var(--t-slow) var(--ease);
}
.service-card:hover .service-card__media-img,
.location:hover .location__media-img { transform: scale(1.05); }

/* ─── Interior gallery section */
.interior-group + .interior-group { margin-top: 80px; }
.interior-group__header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 32px;
  padding-left: var(--pad);
  padding-right: var(--pad);
}
.interior-group__title {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: 40px;
  line-height: 1;
  color: var(--c-text);
}
.interior-group__meta {
  font-size: var(--fs-xs);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--c-text-muted);
}
.interior-strip {
  display: flex;
  gap: 20px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-padding-left: var(--pad);
  scroll-padding-right: var(--pad);
  scrollbar-width: none;
  padding: 0 var(--pad) 20px;
}
.interior-strip::-webkit-scrollbar { display: none; }
.interior-photo {
  flex: 0 0 340px;
  aspect-ratio: 4 / 5;
  scroll-snap-align: start;
  overflow: hidden;
  background-color: var(--c-placeholder);
  background-size: cover;
  background-position: center;
  transition: transform var(--t-slow) var(--ease);
  cursor: zoom-in;
}
.interior-photo:hover { transform: translateY(-4px); }
.interior-photo > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Hero hook-ups (reused in service-card AND home page location) */
.service-card__media-img--arbat,
.location__media-img--arbat { background-image: var(--i-arbat-1); }
.service-card__media-img--tagan,
.location__media-img--tagan { background-image: var(--i-tagan-1); }
.service-card__media-img--mayak,
.location__media-img--mayak { background-image: var(--i-mayak-1); }
.service-card__count {
  font-size: var(--fs-micro);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--c-text-muted);
  margin-bottom: 10px;
}
.service-card__title {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: 28px;
  line-height: 1.15;
  color: var(--c-text);
  margin-bottom: 12px;
}
.service-card__text {
  font-size: var(--fs-sm);
  line-height: 1.55;
  color: var(--c-text-muted);
  margin-bottom: 20px;
  flex: 1;
}
.service-card__link {
  font-size: var(--fs-sm);
  color: var(--c-text);
  padding-bottom: 3px;
  border-bottom: 1px solid var(--c-border-sm);
  transition: border-color var(--t-fast) var(--ease);
  align-self: flex-start;
}
.service-card:hover .service-card__link { border-bottom-color: var(--c-text); }

/* RB-USER-FIX: секция «Наши услуги» — карусель карточек (по референсу) */
.svc { display: grid; grid-template-columns: minmax(240px, 30%) 1fr; gap: 56px; align-items: start; }
.svc__intro { position: sticky; top: 110px; align-self: start; }
.svc__title { font-family: var(--font-display); font-weight: 300; font-size: clamp(28px, 3.2vw, 44px); line-height: 1.12; letter-spacing: -0.02em; color: var(--c-text); margin: 20px 0 28px; }
.svc__help { display: inline-block; font-size: 14px; color: var(--c-text); text-decoration: none; border-bottom: 1px solid var(--c-text); padding-bottom: 3px; transition: opacity .25s var(--ease); }
.svc__help:hover { opacity: .6; }
.svc__nav { display: flex; gap: 14px; margin-top: 52px; }
.svc__arrow { width: 56px; height: 56px; border-radius: 50%; border: 1px solid var(--c-border); background: transparent; color: var(--c-text); display: grid; place-items: center; cursor: pointer; transition: background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease); }
.svc__arrow:hover { background: var(--c-text); color: var(--c-surface); border-color: var(--c-text); }
.svc__arrow svg { width: 20px; height: 20px; }
.svc__track { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
.svc__track::-webkit-scrollbar { display: none; }
.svc-card { flex: 0 0 clamp(340px, 56vw, 720px); scroll-snap-align: start; display: flex; flex-direction: column; padding: 0 28px; border-left: 1px solid var(--c-border); text-decoration: none; }
.svc-card:first-child { border-left: 0; }
.svc-card__top { display: flex; justify-content: flex-end; padding: 16px 0 22px; border-top: 1px solid var(--c-border); }
.svc-card__count { font-size: 12px; letter-spacing: 0.04em; color: var(--c-text-muted); }
.svc-card__media { aspect-ratio: 16 / 9; border-radius: 18px; overflow: hidden; background: var(--c-placeholder); }
.svc-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--t-slow, .6s) var(--ease); }
.svc-card:hover .svc-card__media img { transform: scale(1.04); }
.svc-card__title { font-family: var(--font-display); font-weight: 400; font-size: 26px; line-height: 1.15; color: var(--c-text); margin: 26px 0 14px; }
.svc-card__text { font-size: 15px; line-height: 1.55; color: var(--c-text-muted); margin: 0; }
@media (max-width: 900px) {
  .svc { grid-template-columns: 1fr; gap: 28px; }
  .svc__intro { position: static; }
  .svc__nav { margin-top: 26px; }
  .svc__track { margin: 0 calc(-1 * var(--pad, 20px)); padding: 0 var(--pad, 20px); }
  .svc-card { flex-basis: 90vw; padding: 0 12px; }
  .svc-card__title { font-size: 22px; }
}

/* ─── Promos horizontal scroll ───────────────────────────────────────── */
.promos {
  display: flex;
  gap: 32px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-padding-left: var(--pad);     /* snap aligns to container padding, not viewport edge */
  scroll-padding-right: var(--pad);
  scrollbar-width: none;
  padding-bottom: 20px;
  margin: 0 calc(-1 * var(--pad));
  padding-left: var(--pad);
  padding-right: var(--pad);
}
.promos::-webkit-scrollbar { display: none; }
.promo {
  flex: 0 0 460px;
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
  cursor: pointer;
}
.promo__media {
  aspect-ratio: 4 / 5;
  background: var(--c-accent);
  overflow: hidden;
  margin-bottom: 24px;
}
.promo__media img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform var(--t-slow) var(--ease);
}
.promo:hover .promo__media img { transform: scale(1.04); }
.promo__date {
  font-size: var(--fs-micro);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--c-text-muted);
  margin-bottom: 8px;
}
.promo__title {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: 24px;
  line-height: 1.2;
  color: var(--c-text);
  margin-bottom: 8px;
}
.promo__price {
  font-size: var(--fs-sm);
  color: var(--c-text-muted);
  line-height: 1.6;
}

/* ─── About — asymmetric + ornament ──────────────────────────────────── */
.about-intro {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 48px;
  align-items: start;
  margin-bottom: 120px;
}
.about-circle {
  width: 88px;
  height: 88px;
  color: var(--c-ornament);
  flex-shrink: 0;
}
.about-circle svg { width: 100%; height: 100%; }
.about-title {
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: 80px;
  line-height: 0.95;
  letter-spacing: -0.02em;
  color: var(--c-text);
  max-width: 720px;
}
.about-title em {
  font-style: italic;
  color: var(--c-accent-deep);
}

.about-grid {
  display: grid;
  grid-template-columns: repeat(12, 1fr);
  gap: 32px;
}
.about-item { display: flex; flex-direction: column; gap: 20px; }
.about-item--1 { grid-column: 1 / span 6; margin-top: 0; }
.about-item--2 { grid-column: 7 / span 5; margin-top: 120px; }
.about-item--3 { grid-column: 2 / span 5; margin-top: 80px; }
.about-item--4 { grid-column: 8 / span 5; margin-top: 160px; }
.about-item__media {
  aspect-ratio: 4 / 5;
  background: var(--c-placeholder);
  overflow: hidden;
}
.about-item__media img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform var(--t-slow) var(--ease);
}
.about-item:hover .about-item__media img { transform: scale(1.03); }
.about-item__title {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: 32px;
  line-height: 1.1;
  color: var(--c-text);
}
.about-item__text {
  font-size: var(--fs-sm);
  line-height: 1.6;
  color: var(--c-text-muted);
  max-width: 380px;
}

/* ─── Stats ──────────────────────────────────────────────────────────── */
.stats {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
  padding: 80px 0;
  border-top: 1px solid var(--c-border);
  border-bottom: 1px solid var(--c-border);
}
.stat {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.stat__ornament {
  color: var(--c-ornament);
  margin-bottom: 4px;
}

/* RB-USER-FIX: анимация кружков-орнаментов в блоке статистики */
@media (prefers-reduced-motion: no-preference) {
  .stat__ornament svg { overflow: visible; }
  .stat__ornament svg circle { transform-box: fill-box; transform-origin: center; }
  .stat__ornament svg circle:first-of-type { animation: rb-ring-breath 3.6s ease-in-out infinite; }
  .stat__ornament svg circle:last-of-type  { animation: rb-dot-pulse 2.6s ease-in-out infinite; }
  .stat:nth-child(2) .stat__ornament svg circle { animation-delay: .25s; }
  .stat:nth-child(3) .stat__ornament svg circle { animation-delay: .5s; }
  .stat:nth-child(4) .stat__ornament svg circle { animation-delay: .75s; }
  .stat__ornament svg:hover circle:first-of-type { animation-duration: 1.6s; }
}
@keyframes rb-ring-breath {
  0%, 100% { transform: scale(1);    opacity: .5; }
  50%      { transform: scale(1.1);  opacity: 1; }
}
@keyframes rb-dot-pulse {
  0%, 100% { transform: scale(1);    opacity: 1; }
  50%      { transform: scale(2.4);  opacity: .35; }
}
.stat__num {
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: var(--fs-stat);
  line-height: 0.85;
  letter-spacing: -0.03em;
  color: var(--c-text);
  white-space: nowrap;
}
.stat__num sup {
  font-size: 0.4em;
  vertical-align: top;
  font-weight: 400;
  margin-left: 2px;
}
.stat__label {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: 20px;
  line-height: 1.25;
  color: var(--c-text);
  max-width: 240px;
}

/* ─── Locations ──────────────────────────────────────────────────────── */
.locations-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
.location { display: flex; flex-direction: column; cursor: pointer; }
.location__media {
  aspect-ratio: 4 / 3;
  background: var(--c-placeholder);
  overflow: hidden;
  margin-bottom: 24px;
}
.location__media img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform var(--t-slow) var(--ease);
}
.location:hover .location__media img { transform: scale(1.04); }
.location__name {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: 28px;
  line-height: 1.1;
  color: var(--c-text);
  margin-bottom: 10px;
}
.location__address {
  font-size: var(--fs-sm);
  line-height: 1.5;
  color: var(--c-text-muted);
  margin-bottom: 8px;
}
.location__metro {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: var(--fs-sm);
  color: var(--c-text);
}
.location__metro-mark { color: var(--c-ornament); display: inline-flex; }
.location__metro-mark svg { width: 16px; height: 16px; }

/* ─── Blog ───────────────────────────────────────────────────────────── */
.blog-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr;
  gap: 32px;
}
.blog-card { display: flex; flex-direction: column; cursor: pointer; }
.blog-card--feature .blog-card__media { aspect-ratio: 4 / 3; }
.blog-card__tag {
  font-size: var(--fs-micro);
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--c-text-muted);
  margin-bottom: 12px;
}
.blog-card__media {
  aspect-ratio: 1 / 1;
  background: var(--c-placeholder);
  overflow: hidden;
  margin-bottom: 20px;
}
.blog-card__media img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform var(--t-slow) var(--ease);
}
.blog-card:hover .blog-card__media img { transform: scale(1.04); }
.blog-card__title {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: 22px;
  line-height: 1.2;
  color: var(--c-text);
  margin-bottom: 8px;
}
.blog-card--feature .blog-card__title { font-size: 32px; }
.blog-card__date {
  font-size: var(--fs-xs);
  color: var(--c-text-subtle);
}

/* ─── Form block (on cream bg) ───────────────────────────────────────── */
.form-block {
  background: var(--c-bg-alt);
  padding: 120px 0;
}
.form-block__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}
.form-block__title {
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: 64px;
  line-height: 1;
  letter-spacing: -0.015em;
  color: var(--c-text);
  margin: 24px 0 24px;
}
.form-block__title em {
  font-style: italic;
  color: var(--c-accent-deep);
}
.form-block__text {
  font-size: var(--fs-base);
  line-height: 1.6;
  color: var(--c-text-muted);
  max-width: 460px;
}

/* ─── Page-hero (для внутренних страниц) ─────────────────────────────── */
.page-hero {
  position: relative;
  padding: calc(var(--header-h) + 120px) 0 120px;
}
.page-hero__eyebrow { margin-bottom: 16px; }
.page-hero__title {
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: 88px;
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--c-text);
  max-width: 900px;
}
.page-hero__title em {
  font-style: italic;
  color: var(--c-accent-deep);
}
.page-hero__lead {
  margin-top: 32px;
  font-size: var(--fs-lg);
  line-height: 1.55;
  color: var(--c-text-muted);
  max-width: 520px;
}

/* ─── 404 ────────────────────────────────────────────────────────────── */
.error-page {
  min-height: calc(100vh - var(--header-h));
  padding-top: var(--header-h);
  display: grid;
  place-items: center;
  text-align: center;
}
.error-page__inner {
  padding: 0 var(--pad);
  max-width: 560px;
}
.error-page__ornament {
  display: inline-block;
  margin-bottom: 48px;
  color: var(--c-ornament);
}
.error-page__code {
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: 144px;
  line-height: 1;
  color: var(--c-accent-deep);
  margin-bottom: 32px;
  letter-spacing: -0.03em;
}
.error-page__title {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: 40px;
  color: var(--c-text);
  margin-bottom: 20px;
}
.error-page__text {
  font-size: var(--fs-base);
  line-height: 1.6;
  color: var(--c-text-muted);
  margin-bottom: 40px;
}
.error-page__actions {
  display: flex;
  gap: 32px;
  justify-content: center;
  align-items: center;
}

/* ============================================================
   INNER PAGES v3 — extended components
   ============================================================ */

/* ─── Filter pills ─── */
.filter-pills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 80px;
}
.filter-pill {
  display: inline-flex;
  align-items: center;
  padding: 10px 24px;
  font-family: var(--font-sans);
  font-size: var(--fs-sm);
  font-weight: 500;
  color: var(--c-text-muted);
  background: transparent;
  border: 1px solid var(--c-border);
  border-radius: 2px;
  cursor: pointer;
  text-decoration: none;
  transition: all var(--t-fast) var(--ease);
}
.filter-pill:hover {
  color: var(--c-text);
  border-color: var(--c-text);
}
.filter-pill.is-active {
  background: var(--c-text);
  color: var(--c-surface);
  border-color: var(--c-text);
}

/* ─── Services grid on page ─── */
.services-page-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  margin-bottom: 120px;
}
.service-card--price {
  position: relative;
}
.service-card--price .service-card__price-badge {
  position: absolute;
  top: 16px;
  right: 16px;
  padding: 8px 14px;
  background: rgba(245, 241, 235, 0.9);
  backdrop-filter: blur(8px);
  font-family: var(--font-serif);
  font-size: 16px;
  color: var(--c-text);
  z-index: 2;
  letter-spacing: 0.02em;
}

/* ─── Process 4-step ─── */
.process {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px 80px;
  max-width: 1120px;
  margin: 0 auto;
}
.process__item {
  display: flex;
  gap: 32px;
  align-items: flex-start;
}
.process__num {
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: 72px;
  line-height: 1;
  color: var(--c-accent-deep);
  flex-shrink: 0;
}
.process__body {
  flex: 1;
}
.process__title {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: 28px;
  line-height: 1.15;
  color: var(--c-text);
  margin-bottom: 12px;
}
.process__text {
  font-size: var(--fs-sm);
  line-height: 1.6;
  color: var(--c-text-muted);
  max-width: 380px;
}

/* ─── FAQ accordion ─── */
.faq-list {
  max-width: 960px;
  margin: 0 auto;
}
.faq-item {
  border-bottom: 1px solid var(--c-border);
}
.faq-item:first-child {
  border-top: 1px solid var(--c-border);
}
.faq-trigger {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 32px;
  width: 100%;
  padding: 32px 0;
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: 24px;
  line-height: 1.3;
  color: var(--c-text);
  background: transparent;
  border: 0;
  text-align: left;
  cursor: pointer;
}
.faq-icon {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  position: relative;
}
.faq-icon::before, .faq-icon::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 18px;
  height: 1px;
  background: var(--c-text-muted);
  transform: translate(-50%, -50%);
  transition: transform var(--t-fast) var(--ease);
}
.faq-icon::after {
  transform: translate(-50%, -50%) rotate(90deg);
}
.faq-item.is-open .faq-icon::after {
  transform: translate(-50%, -50%) rotate(0);
}
.faq-content {
  max-height: 0;
  overflow: hidden;
  transition: max-height var(--t-med) var(--ease);
}
.faq-item.is-open .faq-content {
  max-height: 400px;
}
.faq-content-inner {
  padding: 0 0 32px;
  font-size: var(--fs-base);
  line-height: 1.65;
  color: var(--c-text-muted);
  max-width: 720px;
}

/* ─── Partners / brands row ─── */
.partners-row {
  display: flex;
  flex-wrap: wrap;
  gap: 48px 80px;
  justify-content: center;
  align-items: center;
  padding: 40px 0;
}
.partner-logo {
  font-family: var(--font-serif);
  font-size: 28px;
  font-weight: 400;
  letter-spacing: 0.08em;
  color: var(--c-text-subtle);
  opacity: 0.6;
  transition: opacity var(--t-fast) var(--ease);
}
.partner-logo:hover {
  opacity: 1;
  color: var(--c-text);
}

/* ─── Hero split 60/40 (service detail) ─── */
.hero-split {
  position: relative;
  padding: calc(var(--header-h) + 80px) 0 80px;
  overflow: hidden;
}
.hero-split__grid {
  display: grid;
  grid-template-columns: 6fr 5fr;
  gap: 80px;
  align-items: stretch;
  min-height: 620px;
}
.hero-split__content {
  z-index: 2;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding-right: 20px;
}
.hero-split__eyebrow {
  margin-bottom: 24px;
}
.hero-split__title {
  font-family: var(--font-display);
  font-weight: 300;
  font-size: clamp(56px, 6vw, 80px);
  line-height: 1.02;
  letter-spacing: -0.03em;
  color: var(--c-text);
  margin-bottom: 28px;
}
.hero-split__title em {
  font-style: italic;
  color: var(--c-accent-deep);
}
.hero-split__lead {
  font-size: 18px;
  line-height: 1.55;
  color: var(--c-text-muted);
  max-width: 480px;
  margin-bottom: 48px;
}
.hero-split__price {
  display: inline-block;
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 32px;
  line-height: 1;
  color: var(--c-accent-deep);
  margin-bottom: 40px;
}
.hero-split__price-label {
  font-family: var(--font-display);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--c-text-muted);
  margin-right: 14px;
  vertical-align: middle;
}
.hero-split__visual {
  aspect-ratio: 4 / 5;
  background: var(--c-placeholder);
  overflow: hidden;
  animation: ken-burns 12s var(--ease) infinite alternate;
}
.hero-split__visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ─── Quick meta tags ─── */
.quick-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 64px;
  padding: 40px 0;
  border-top: 1px solid var(--c-border);
  border-bottom: 1px solid var(--c-border);
}
.quick-meta__item {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.quick-meta__label {
  font-family: var(--font-sans);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--c-text-muted);
}
.quick-meta__value {
  font-family: var(--font-serif);
  font-size: 20px;
  color: var(--c-text);
}

/* ─── Price table ─── */
.price-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--font-sans);
}
.price-table th {
  padding: 20px 24px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--c-text-muted);
  text-align: left;
  border-bottom: 1px solid var(--c-border);
}
.price-table th:last-child, .price-table td:last-child {
  text-align: right;
}
.price-table td {
  padding: 24px;
  font-size: 16px;
  color: var(--c-text);
  border-bottom: 1px solid var(--c-border);
}
.price-table tr:nth-child(odd) td {
  background: rgba(214, 197, 60, 0.10);
}
.price-table__zone {
  font-family: var(--font-serif);
  font-size: 20px;
  font-weight: 400;
}
.price-table__price {
  font-family: var(--font-serif);
  font-size: 20px;
  font-weight: 400;
  color: var(--c-text);
}
.price-table__price--accent {
  color: var(--c-accent-deep);
}

/* ─── Process detail (5 steps, alternating) ─── */
.process-detail {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 24px;
}
.process-detail__step {
  display: flex;
  flex-direction: column;
  gap: 16px;
  align-items: stretch;
  padding: 24px;
  background: var(--c-surface, #fafaf8);
  border-radius: 8px;
  transition: transform .3s ease, box-shadow .3s ease;
}
.process-detail__step:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(0,0,0,0.06);
}
.process-detail__step:nth-child(even) .process-detail__visual {
  order: 0;
}
.process-detail__num {
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: 40px;
  line-height: 1;
  color: var(--c-accent-deep);
  margin-bottom: 8px;
}
.process-detail__title {
  font-family: var(--font-serif);
  font-weight: 500;
  font-size: 18px;
  line-height: 1.2;
  color: var(--c-text);
  margin-bottom: 8px;
}
.process-detail__text {
  font-size: 13px;
  line-height: 1.5;
  color: var(--c-text-muted);
  max-width: none;
}
.process-detail__visual {
  aspect-ratio: 1 / 1;
  background: var(--c-placeholder);
  overflow: hidden;
  border-radius: 4px;
  order: -1;
}
.process-detail__visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Tablet — 2 ряда по 3 / 2 карточки */
@media (max-width: 1024px) {
  .process-detail {
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
  }
}

/* ─── Indications / Contraindications split ─── */
.indications-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
}
.indications-col__title {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: 32px;
  margin-bottom: 32px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--c-border);
  display: flex;
  align-items: center;
  gap: 16px;
}
.indications-col__icon {
  width: 24px;
  height: 24px;
  color: var(--c-accent-deep);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
}
.indications-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.indications-list li {
  padding: 14px 0;
  border-bottom: 1px solid var(--c-border);
  color: var(--c-text-muted);
  font-size: 15px;
  line-height: 1.5;
}

/* ─── Prep / Recovery cards ─── */
.prep-recovery {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
}
.prep-card {
  padding: 48px;
  background: var(--c-bg-alt);
}
.prep-card__title {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: 28px;
  color: var(--c-text);
  margin-bottom: 24px;
}
.prep-card__list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.prep-card__list li {
  padding: 12px 0;
  color: var(--c-text-muted);
  font-size: 15px;
  line-height: 1.5;
  border-bottom: 1px solid rgba(26,26,26,0.08);
}
.prep-card__list li:last-child { border-bottom: 0; }

/* ─── Featured promo ─── */
.promo-featured {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 0;
  min-height: 480px;
}
.promo-featured__media {
  background: var(--c-placeholder);
  overflow: hidden;
}
.promo-featured__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.promo-featured__content {
  padding: 64px 80px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: var(--c-bg-alt);
}
.promo-featured__eyebrow {
  font-family: var(--font-sans);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--c-accent-deep);
  margin-bottom: 20px;
}
.promo-featured__title {
  font-family: var(--font-display);
  font-weight: 300;
  font-size: clamp(40px, 3.5vw, 52px);
  line-height: 1.05;
  color: var(--c-text);
  margin-bottom: 20px;
  letter-spacing: -0.025em;
}
.promo-featured__desc {
  font-size: 16px;
  line-height: 1.6;
  color: var(--c-text-muted);
  margin-bottom: 32px;
  max-width: 420px;
}
.promo-featured__prices {
  display: flex;
  align-items: baseline;
  gap: 20px;
  margin-bottom: 16px;
}
.promo-featured__price-new {
  font-family: var(--font-display);
  font-weight: 400;
  font-size: 44px;
  line-height: 1;
  color: var(--c-accent-deep);
}
.promo-featured__price-old {
  font-family: var(--font-display);
  font-size: 18px;
  color: var(--c-text-subtle);
  text-decoration: line-through;
}
.promo-featured__valid {
  font-size: 12px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--c-text-muted);
  margin-bottom: 32px;
}

/* ─── Promo grid card ─── */
.promo-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
.promo-card {
  display: flex;
  flex-direction: column;
  cursor: pointer;
  text-decoration: none;
  color: inherit;
}
.promo-card__media {
  position: relative;
  aspect-ratio: 16 / 9;           /* matches banner artwork 1920×1080 */
  background: var(--c-placeholder);
  overflow: hidden;
  margin-bottom: 24px;
}
.promo-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--t-slow) var(--ease);
}
.promo-card:hover .promo-card__media img {
  transform: scale(1.04);
}
.promo-card__discount {
  position: absolute;
  top: 16px;
  right: 16px;
  padding: 8px 14px;
  background: var(--c-accent);
  color: var(--c-surface);
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.04em;
}
.promo-card__tag {
  font-family: var(--font-sans);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--c-text-muted);
  margin-bottom: 10px;
}
.promo-card__title {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: 26px;
  line-height: 1.15;
  color: var(--c-text);
  margin-bottom: 10px;
}
.promo-card__desc {
  font-size: 14px;
  line-height: 1.5;
  color: var(--c-text-muted);
  margin-bottom: 14px;
}
.promo-card__valid {
  font-size: 11px;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  color: var(--c-text-subtle);
}
/* ─── Promo card: short teaser + CTA (added for «Выгодные предложения») ─── */
.promo-card__short {
  font-family: var(--font-accent);
  font-style: italic;
  font-size: 17px;
  line-height: 1.35;
  color: var(--c-accent-deep);
  margin-bottom: 12px;
}
.promo-card__btn {
  margin-top: auto;            /* pin CTA to card bottom — keeps buttons aligned across the grid */
  padding-top: 20px;
  align-self: flex-start;
}

/* ─── Featured promo card (1 per grid, spans full width) ──────────────── */
.promo-card__kicker {
  font-family: var(--font-sans);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--c-accent-deep);
  margin-bottom: 18px;
}
.promo-card--featured {
  grid-column: 1 / -1;                    /* span all columns of parent grid */
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 56px;
  align-items: center;
  margin-bottom: 16px;
}
.promo-card--featured .promo-card__media {
  aspect-ratio: 16 / 9;
  margin-bottom: 0;
}
.promo-card--featured .promo-card__body {
  display: flex;
  flex-direction: column;
  padding: 8px 0;
}
.promo-card--featured .promo-card__title {
  font-size: 44px;
  line-height: 1.08;
  letter-spacing: -0.02em;
  margin-bottom: 14px;
}
.promo-card--featured .promo-card__short {
  font-size: 22px;
  line-height: 1.3;
  margin-bottom: 18px;
}
.promo-card--featured .promo-card__desc {
  font-size: 16px;
  line-height: 1.6;
  max-width: 52ch;
  margin-bottom: 24px;
}
.promo-card--featured .promo-card__btn {
  margin-top: 0;                          /* featured has natural flow, no pin needed */
  padding-top: 0;
}

/* ─── Loyalty tiers ─── */
.tiers-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  align-items: stretch;
}

/* 4-tier variant (new loyalty program) */
.tiers-grid--4 {
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
@media (max-width: 1279px) {
  .tiers-grid--4 {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
  }
}
@media (max-width: 767px) {
  .tiers-grid--4 {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
}
/* 4-tier variant: scale down type/padding to fit */
.tiers-grid--4 .tier-card {
  padding: 44px 28px;
}
.tiers-grid--4 .tier-card__name {
  font-size: 32px;
}
.tiers-grid--4 .tier-card__discount {
  font-size: 64px;
  margin-bottom: 24px;
}
.tiers-grid--4 .tier-card__entry {
  font-size: 12px;
}
.tiers-grid--4 .tier-card--featured {
  padding-top: 60px;
  padding-bottom: 60px;
}
@media (max-width: 1279px) {
  .tiers-grid--4 .tier-card--featured {
    transform: translateY(0);
  }
}

/* Note below tiers grid */
.tiers-note {
  margin-top: 40px;
  padding: 20px 32px;
  background: var(--c-surface);
  border-left: 2px solid var(--c-accent);
  font-size: 14px;
  line-height: 1.55;
  color: var(--c-text-muted);
  max-width: 720px;
}
@media (max-width: 767px) {
  .tiers-note {
    margin-top: 24px;
    padding: 16px 20px;
    font-size: 13px;
  }
}
.tier-card {
  display: flex;
  flex-direction: column;
  padding: 56px 40px;
  background: var(--c-surface);
  border: 1px solid var(--c-border);
  transition: transform var(--t-fast) var(--ease);
}
.tier-card--featured {
  border-color: var(--c-accent);
  border-width: 2px;
  transform: translateY(-24px);
  padding-top: 72px;
  padding-bottom: 72px;
  position: relative;
}
.tier-card--featured::before {
  content: 'Популярный';
  position: absolute;
  top: 24px;
  left: 50%;
  transform: translateX(-50%);
  padding: 6px 16px;
  background: var(--c-accent);
  color: var(--c-surface);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  font-weight: 500;
}
.tier-card__name {
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: 40px;
  line-height: 1;
  color: var(--c-text);
  margin-bottom: 12px;
}
.tier-card__entry {
  font-size: 13px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--c-text-muted);
  margin-bottom: 24px;
}
.tier-card__discount {
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: 80px;
  line-height: 1;
  color: var(--c-accent-deep);
  margin-bottom: 32px;
}
.tier-card__benefits {
  list-style: none;
  padding: 0;
  margin: 0 0 40px;
  flex: 1;
}
.tier-card__benefits li {
  padding: 10px 0;
  font-size: 14px;
  line-height: 1.4;
  color: var(--c-text-muted);
  position: relative;
  padding-left: 24px;
  border-bottom: 1px solid rgba(26,26,26,0.06);
}
.tier-card__benefits li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 16px;
  width: 12px;
  height: 1px;
  background: var(--c-accent-deep);
}
.tier-card__cta {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  padding: 16px 32px;
  background: var(--c-text);
  color: var(--c-surface);
  font-family: var(--font-sans);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background var(--t-fast) var(--ease);
}
.tier-card__cta:hover {
  background: var(--c-accent-deep);
}
.tier-card--featured .tier-card__cta {
  background: var(--c-accent-deep);
}

/* ─── Benefits grid 4x2 ─── */
.benefits-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--c-border);
}
.benefit-card {
  padding: 48px 32px;
  background: var(--c-bg);
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.benefit-card__icon {
  color: var(--c-accent-deep);
}
.benefit-card__title {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: 22px;
  line-height: 1.2;
  color: var(--c-text);
}
.benefit-card__text {
  font-size: 14px;
  line-height: 1.55;
  color: var(--c-text-muted);
}

/* ─── Testimonials ─── */
.testimonials-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 48px;
}
.testimonial {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.testimonial__text {
  font-family: var(--font-serif);
  font-style: italic;
  font-weight: 300;
  font-size: 22px;
  line-height: 1.4;
  color: var(--c-text);
  padding-left: 20px;
  border-left: 2px solid var(--c-accent);
}
.testimonial__author {
  display: flex;
  align-items: center;
  gap: 16px;
}
.testimonial__photo {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--c-placeholder);
  overflow: hidden;
  flex-shrink: 0;
}
.testimonial__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.testimonial__name {
  font-family: var(--font-serif);
  font-size: 20px;
  color: var(--c-text);
}
.testimonial__tier {
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--c-accent-deep);
  margin-top: 4px;
}

/* ─── How it works 3-step ─── */
.how-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 64px;
}
.how-step {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.how-step__num {
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: 80px;
  line-height: 1;
  color: var(--c-accent-deep);
  border-bottom: 1px solid var(--c-border);
  padding-bottom: 24px;
}
.how-step__title {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: 28px;
  line-height: 1.15;
  color: var(--c-text);
}
.how-step__text {
  font-size: 15px;
  line-height: 1.6;
  color: var(--c-text-muted);
}

/* ─── Timeline (About page) ─── */
.timeline {
  position: relative;
  max-width: 880px;
  margin: 0 auto;
}
.timeline::before {
  content: '';
  position: absolute;
  left: 180px;
  top: 24px;
  bottom: 24px;
  width: 1px;
  background: var(--c-border);
}
.timeline__item {
  display: grid;
  grid-template-columns: 160px 1fr;
  gap: 64px;
  padding: 40px 0;
  position: relative;
}
.timeline__item::before {
  content: '';
  position: absolute;
  left: 176px;
  top: 48px;
  width: 9px;
  height: 9px;
  background: var(--c-accent);
  border-radius: 50%;
}
.timeline__year {
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: 48px;
  line-height: 1;
  color: var(--c-text);
  text-align: right;
}
.timeline__title {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: 28px;
  line-height: 1.2;
  color: var(--c-text);
  margin-bottom: 8px;
}
.timeline__text {
  font-size: 15px;
  line-height: 1.65;
  color: var(--c-text-muted);
  max-width: 480px;
}

/* ─── Values grid ─── */
.values-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
}
.value-item {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding-top: 32px;
  border-top: 1px solid var(--c-border);
}
.value-item__num {
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: 56px;
  line-height: 1;
  color: var(--c-accent-deep);
}
.value-item__title {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: 24px;
  line-height: 1.2;
  color: var(--c-text);
}
.value-item__text {
  font-size: 14px;
  line-height: 1.6;
  color: var(--c-text-muted);
}

/* ─── Masters grid (team page) ─── */
.masters-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
.master-card {
  display: flex;
  flex-direction: column;
  cursor: pointer;
  text-decoration: none;
  color: inherit;
  position: relative;
}
.master-card__photo {
  aspect-ratio: 4 / 5;
  background: var(--c-placeholder);
  overflow: hidden;
  margin-bottom: 24px;
  position: relative;
}
.master-card__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--t-slow) var(--ease);
}
.master-card:hover .master-card__photo img {
  transform: scale(1.03);
}
.master-card__exp {
  font-family: var(--font-sans);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--c-text-muted);
  margin-bottom: 8px;
}
.master-card__name {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: 26px;
  line-height: 1.15;
  color: var(--c-text);
  margin-bottom: 6px;
}
.master-card__role {
  font-size: 14px;
  color: var(--c-text-muted);
  margin-bottom: 16px;
}
.master-card__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.master-card__tag {
  padding: 4px 10px;
  font-size: 11px;
  letter-spacing: 0.08em;
  color: var(--c-text-muted);
  border: 1px solid var(--c-border);
}

/* ─── Contact info grid ─── */
.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  background: var(--c-border);
  margin-bottom: 120px;
}
.contact-block {
  padding: 64px;
  background: var(--c-bg);
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.contact-block__label {
  font-family: var(--font-sans);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--c-text-muted);
  margin-bottom: 8px;
}
.contact-block__value {
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: 48px;
  line-height: 1;
  color: var(--c-text);
  text-decoration: none;
}
.contact-block__value--sm {
  font-size: 24px;
}
.contact-block__sub {
  font-size: 13px;
  color: var(--c-text-muted);
  margin-top: 4px;
}
.contact-block__actions {
  display: flex;
  gap: 12px;
  margin-top: 16px;
}
.contact-btn {
  display: inline-flex;
  align-items: center;
  padding: 12px 24px;
  background: var(--c-text);
  color: var(--c-surface);
  font-family: var(--font-sans);
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background var(--t-fast) var(--ease);
}
.contact-btn:hover {
  background: var(--c-accent-deep);
}

/* RB-USER-FIX: мессенджеры на контактах — иконки-логотипы вместо текстовых кнопок */
.contact-msg {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  border: 1px solid var(--c-border);
  color: var(--c-text);
  text-decoration: none;
  transition: background var(--t-fast) var(--ease),
              color var(--t-fast) var(--ease),
              border-color var(--t-fast) var(--ease),
              transform var(--t-fast) var(--ease);
}
.contact-msg svg { width: 23px; height: 23px; display: block; }
.contact-msg:hover {
  background: var(--c-text);
  color: var(--c-surface);
  border-color: var(--c-text);
  transform: translateY(-2px);
}

/* ─── Map placeholder ─── */
.map-placeholder {
  height: 60vh;
  min-height: 480px;
  background: #1f1f20;
  display: flex;
  align-items: center;
  justify-content: center;
  color: rgba(255,255,255,0.3);
  font-family: var(--font-serif);
  font-size: 24px;
  font-style: italic;
  background-image: linear-gradient(rgba(0,0,0,0.3), rgba(0,0,0,0.3)),
                    repeating-linear-gradient(45deg, transparent, transparent 40px, rgba(255,255,255,0.02) 40px, rgba(255,255,255,0.02) 80px);
}

/* ─── Branches table ─── */
.branches-table {
  width: 100%;
  border-collapse: collapse;
  font-family: var(--font-sans);
}
.branches-table th {
  padding: 20px 24px;
  font-size: 11px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--c-text-muted);
  text-align: left;
  border-bottom: 1px solid var(--c-border);
}
.branches-table td {
  padding: 28px 24px;
  font-size: 14px;
  color: var(--c-text);
  border-bottom: 1px solid var(--c-border);
  vertical-align: middle;
}
.branches-table tr:hover td {
  background: rgba(214, 197, 60, 0.08);
}
.branches-table__name {
  font-family: var(--font-serif);
  font-size: 22px;
  color: var(--c-text);
}
.branches-table__cta {
  display: inline-flex;
  padding: 10px 20px;
  background: var(--c-text);
  color: var(--c-surface);
  font-size: 11px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background var(--t-fast) var(--ease);
}
.branches-table__cta:hover {
  background: var(--c-accent-deep);
}

/* ─── Requisites block ─── */
.requisites {
  padding: 32px 40px;
  background: var(--c-bg-alt);
  font-family: 'Courier New', monospace;
  font-size: 12px;
  line-height: 1.8;
  color: var(--c-text-muted);
  letter-spacing: 0.02em;
}
.requisites strong {
  color: var(--c-text);
  font-weight: 400;
}

/* ─── Search input ─── */
.journal-search {
  display: flex;
  gap: 40px;
  align-items: flex-end;
  margin-bottom: 80px;
}
.journal-search__field {
  flex: 1;
  max-width: 480px;
}
.journal-search__input {
  width: 100%;
  padding: 16px 0;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--c-border-sm);
  font-family: var(--font-sans);
  font-size: 20px;
  color: var(--c-text);
  outline: none;
  transition: border-color var(--t-fast) var(--ease);
}
.journal-search__input:focus {
  border-bottom-color: var(--c-text);
}
.journal-search__input::placeholder {
  color: var(--c-text-subtle);
}

/* ─── Article featured (journal page) ─── */
.article-featured {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 0;
  min-height: 520px;
  text-decoration: none;
  color: inherit;
  margin-bottom: 80px;
}

/* RB-USER-FIX: «Статья недели» в журнале — меньше в ~4 раза (высоту задаёт медиа, не min-height) */
.article-featured { min-height: 0 !important; margin-bottom: 36px !important; }
.article-featured__media   { aspect-ratio: auto !important; height: 200px !important; }
.article-featured__content { padding: 16px 22px !important; }
.article-featured__title   { font-size: 18px !important; line-height: 1.2 !important; margin-bottom: 8px !important; }
.article-featured__tag     { font-size: 10px !important; margin-bottom: 6px !important; }
.article-featured__excerpt { font-size: 13px !important; line-height: 1.5 !important; margin-bottom: 10px !important; }
.article-featured__meta    { font-size: 10px !important; gap: 14px !important; }
.article-featured__media {
  background: var(--c-placeholder);
  overflow: hidden;
}
.article-featured__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--t-slow) var(--ease);
}
.article-featured:hover .article-featured__media img {
  transform: scale(1.02);
}
.article-featured__content {
  padding: 64px 80px;
  background: var(--c-bg-alt);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.article-featured__tag {
  font-family: var(--font-sans);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--c-accent-deep);
  margin-bottom: 20px;
}
.article-featured__title {
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: 48px;
  line-height: 1.1;
  letter-spacing: -0.015em;
  color: var(--c-text);
  margin-bottom: 20px;
}
.article-featured__excerpt {
  font-size: 16px;
  line-height: 1.65;
  color: var(--c-text-muted);
  margin-bottom: 32px;
  max-width: 420px;
}
.article-featured__meta {
  display: flex;
  gap: 24px;
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--c-text-muted);
}

/* ─── Articles grid ─── */
.articles-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 40px 32px;
}
.article-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}
.article-card__media {
  aspect-ratio: 1 / 1;
  background: var(--c-placeholder);
  overflow: hidden;
  margin-bottom: 20px;
}
.article-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--t-slow) var(--ease);
}
.article-card:hover .article-card__media img {
  transform: scale(1.04);
}
.article-card__tag {
  font-family: var(--font-sans);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--c-text-muted);
  margin-bottom: 12px;
}
.article-card__title {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: 22px;
  line-height: 1.25;
  color: var(--c-text);
  margin-bottom: 12px;
}
.article-card__date {
  font-size: 12px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--c-text-subtle);
}

/* ─── Tag cloud ─── */
.tag-cloud {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.tag-cloud__tag {
  padding: 10px 20px;
  font-family: var(--font-sans);
  font-size: 13px;
  color: var(--c-text-muted);
  background: transparent;
  border: 1px solid var(--c-border);
  text-decoration: none;
  transition: all var(--t-fast) var(--ease);
}
.tag-cloud__tag:hover {
  color: var(--c-text);
  border-color: var(--c-text);
}

/* ─── Newsletter CTA ─── */
.newsletter-cta {
  padding: 80px 0;
  background: var(--c-bg-alt);
}
.newsletter-cta__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}
.newsletter-cta__title {
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: 48px;
  line-height: 1.05;
  color: var(--c-text);
}
.newsletter-cta__form {
  display: flex;
  gap: 0;
  border-bottom: 1px solid var(--c-text);
}
.newsletter-cta__input {
  flex: 1;
  padding: 16px 0;
  background: transparent;
  border: 0;
  font-size: 16px;
  color: var(--c-text);
  outline: none;
}
.newsletter-cta__btn {
  padding: 16px 24px;
  background: transparent;
  border: 0;
  color: var(--c-text);
  cursor: pointer;
  font-family: var(--font-sans);
  font-size: 13px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

/* ─── Article detail body ─── */
.article-detail-hero {
  max-width: 880px;
  margin: 0 auto;
  text-align: center;
  padding: 60px 0 40px;
}
.article-detail-meta {
  display: flex;
  gap: 16px;
  justify-content: center;
  font-family: var(--font-sans);
  font-size: 11px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--c-text-muted);
  margin-bottom: 32px;
}
.article-detail-title {
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: 64px;
  line-height: 1.05;
  letter-spacing: -0.015em;
  color: var(--c-text);
  margin-bottom: 32px;
}
.article-detail-lead {
  font-size: 18px;
  line-height: 1.55;
  color: var(--c-text-muted);
  max-width: 640px;
  margin: 0 auto 32px;
}
.article-cover {
  max-width: 1200px;
  margin: 0 auto 80px;
  aspect-ratio: 16 / 9;
  background: var(--c-placeholder);
  overflow: hidden;
}
.article-cover img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.article-body {
  max-width: 720px;
  margin: 0 auto;
  font-family: var(--font-sans);
  font-size: 17px;
  line-height: 1.75;
  color: var(--c-text);
}
.article-body p {
  margin-bottom: 24px;
}
.article-body h2 {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: 40px;
  line-height: 1.1;
  margin: 56px 0 24px;
}
.article-body h3 {
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: 28px;
  margin: 40px 0 20px;
}
.article-body blockquote {
  font-family: var(--font-serif);
  font-style: italic;
  font-weight: 300;
  font-size: 28px;
  line-height: 1.3;
  color: var(--c-text);
  padding-left: 32px;
  margin: 40px 0;
  border-left: 3px solid var(--c-accent);
}
.article-body ul, .article-body ol {
  margin: 0 0 24px 24px;
}
.article-body li {
  margin-bottom: 8px;
}
.article-author {
  display: flex;
  gap: 20px;
  align-items: center;
  padding: 40px 0;
  margin-top: 64px;
  border-top: 1px solid var(--c-border);
  border-bottom: 1px solid var(--c-border);
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}
.article-author__photo {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: var(--c-placeholder);
  overflow: hidden;
  flex-shrink: 0;
}
.article-author__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.article-author__name {
  font-family: var(--font-serif);
  font-size: 22px;
  color: var(--c-text);
}
.article-author__role {
  font-size: 13px;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--c-text-muted);
  margin-top: 4px;
}
.article-share {
  display: flex;
  gap: 12px;
  justify-content: center;
  margin-top: 40px;
}
.article-share__btn {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border: 1px solid var(--c-border);
  color: var(--c-text);
  text-decoration: none;
  transition: all var(--t-fast) var(--ease);
}
.article-share__btn:hover {
  background: var(--c-text);
  color: var(--c-surface);
  border-color: var(--c-text);
}

/* ─── Mission block (About) ─── */
.mission-block {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: center;
}
.mission-block__ornament {
  color: var(--c-accent-deep);
  margin-bottom: 32px;
}
.mission-block__title {
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: 72px;
  line-height: 1;
  letter-spacing: -0.015em;
  color: var(--c-text);
}
.mission-block__title em {
  font-style: italic;
  color: var(--c-accent-deep);
}
.mission-block__text {
  font-size: 16px;
  line-height: 1.75;
  color: var(--c-text-muted);
}
.mission-block__text p {
  margin-bottom: 20px;
}

/* ─── Gallery masonry (About) ─── */
.philosophy-gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-template-rows: 200px 200px 200px;
  gap: 16px;
}
.philosophy-gallery__item {
  background: var(--c-placeholder);
  overflow: hidden;
}
.philosophy-gallery__item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.philosophy-gallery__item:nth-child(1) { grid-column: span 2; grid-row: span 2; }
.philosophy-gallery__item:nth-child(2) { grid-column: span 2; }
.philosophy-gallery__item:nth-child(3) { grid-column: span 1; }
.philosophy-gallery__item:nth-child(4) { grid-column: span 1; grid-row: span 2; }
.philosophy-gallery__item:nth-child(5) { grid-column: span 2; }

/* ─── Press / awards row ─── */
.press-row {
  display: flex;
  flex-wrap: wrap;
  gap: 64px;
  justify-content: center;
  align-items: center;
  padding: 40px 0;
}
.press-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  color: var(--c-text-subtle);
  opacity: 0.7;
  transition: opacity var(--t-fast) var(--ease);
}
.press-item:hover { opacity: 1; }
.press-item__name {
  font-family: var(--font-serif);
  font-size: 28px;
  letter-spacing: 0.05em;
}
.press-item__year {
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--c-text-subtle);
}

/* ─── Page hero ─── */
.page-hero {
  position: relative;
  padding: calc(var(--header-h) + 120px) 0 100px;
}
.page-hero__eyebrow {
  margin-bottom: 24px;
}
.page-hero__title {
  font-family: var(--font-display);
  font-weight: 300;
  font-size: clamp(56px, 6.5vw, 88px);
  line-height: 1.02;
  letter-spacing: -0.03em;
  color: var(--c-text);
  max-width: 16ch;
  margin-bottom: 32px;
}
.page-hero__title em {
  font-style: italic;
  color: var(--c-accent-deep);
}
.page-hero__lead {
  font-size: 18px;
  line-height: 1.55;
  color: var(--c-text-muted);
  max-width: 560px;
}

/* ─── Section header ─── */
.section-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 64px;
  margin-bottom: 80px;
}
.section-header__lead { max-width: 640px; }
.section-header__eyebrow { margin-bottom: 16px; }
.section-header__title {
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: 56px;
  line-height: 1.05;
  letter-spacing: -0.01em;
  color: var(--c-text);
}
.section-header__title em {
  font-style: italic;
  color: var(--c-accent-deep);
}
.section-header__action a {
  font-family: var(--font-sans);
  font-size: 13px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--c-text);
  padding-bottom: 6px;
  border-bottom: 1px solid var(--c-text);
  text-decoration: none;
  transition: all var(--t-fast) var(--ease);
}
.section-header__action a:hover {
  color: var(--c-accent-deep);
  border-bottom-color: var(--c-accent-deep);
}

/* ─── Join team CTA ─── */
.join-team {
  padding: 80px;
  background: var(--c-dark);
  color: rgba(255,255,255,0.7);
  text-align: center;
}
.join-team__title {
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: 48px;
  line-height: 1;
  color: #fff;
  margin-bottom: 20px;
}
.join-team__text {
  font-size: 15px;
  line-height: 1.6;
  max-width: 520px;
  margin: 0 auto 32px;
}
.join-team__btn {
  display: inline-flex;
  padding: 16px 40px;
  background: transparent;
  color: #fff;
  border: 1px solid rgba(255,255,255,0.3);
  font-family: var(--font-sans);
  font-size: 13px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-decoration: none;
  transition: all var(--t-fast) var(--ease);
}
.join-team__btn:hover {
  background: #fff;
  color: var(--c-dark);
  border-color: #fff;
}


/* ============================================================
   ALIGNMENT UTILITIES — unified layout fixes
   ============================================================ */

/* Section header: center modifier */
.section-header--center {
  justify-content: center;
  text-align: center;
}
.section-header--center .section-header__lead {
  max-width: 720px;
  margin-left: auto;
  margin-right: auto;
}

/* Section header: no-action variant (lead takes full width cleanly) */
.section-header:not(:has(.section-header__action)) {
  display: block;
}
.section-header:not(:has(.section-header__action)) .section-header__lead {
  max-width: 880px;
}

/* Centered intro block */
.intro-centered {
  max-width: 720px;
  margin: 0 auto;
  text-align: center;
}
.intro-centered p {
  font-family: var(--font-accent);
  font-style: italic;
  font-size: 28px;
  line-height: 1.4;
  font-weight: 400;
  color: var(--c-text);
}

/* Centered empty state */
.empty-state {
  text-align: center;
  padding: 80px 0;
  color: var(--c-text-muted);
}

/* Load more button wrapper */
.load-more-wrap {
  display: flex;
  justify-content: center;
  margin-top: 80px;
}

/* ─── section-header rhythm fixes ─── */
.section-header {
  align-items: flex-end;
}
.section-header__lead {
  display: flex;
  flex-direction: column;
}
.section-header__eyebrow,
.section-header__lead .t-eyebrow {
  margin-bottom: 20px;
}
.section-header__title {
  letter-spacing: -0.025em;
}

/* ─── t-lead utility ─── */
.t-lead {
  font-family: var(--font-body);
  font-size: 17px;
  line-height: 1.6;
  color: var(--c-text-muted);
}

/* ─── Prep-recovery card list spacing ─── */
.prep-card__list li {
  padding: 12px 0 12px 18px;
  position: relative;
}
.prep-card__list li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 22px;
  width: 10px;
  height: 1px;
  background: var(--c-accent);
}

/* Indication list bullet alignment */
.indications-list li {
  padding: 14px 0 14px 20px;
  position: relative;
}
.indications-col__icon--check,
.indications-col__icon--cross {
  width: 20px;
  text-align: center;
}

/* Featured article title cap */
.article-featured__title {
  max-width: 16ch;
}


/* === */
/* =====================================================================
   REALBEAUTY · mobile.css
   Mobile-first overrides for <= 1023px (tablet + phone)
   Burger nav, sticky CTA, FAB, accordion footer, swipe carousels
   ===================================================================== */

/* ─── MOBILE COMPONENTS (hidden on desktop) ────────────────────── */

.burger,
.header__phone-mobile,
.mnav,
.mnav-overlay,
.fab-messenger,
.sticky-cta {
  display: none;
}

/* =====================================================================
   TABLET + PHONE: <= 1023px
   ===================================================================== */
@media (max-width: 1023px) {

  :root {
    --header-h: 64px;
    --pad: 20px;
  }

  /* ─── Container reset ─── */
  .container {
    max-width: 100%;
    padding: 0 var(--pad);
  }

  /* ─── Base typography shrink ─── */
  .t-hero,
  .t-display,
  .hero__title {
    font-size: clamp(40px, 9vw, 56px) !important;
    line-height: 1.04 !important;
    margin-bottom: 28px !important;
  }
  .hero__sub {
    font-size: 15px !important;
    max-width: 100% !important;
    margin-bottom: 32px !important;
  }
  .hero__actions {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 14px !important;
  }
  .hero__eyebrow {
    margin-bottom: 24px !important;
  }
  .t-h1 { font-size: clamp(32px, 7vw, 44px) !important; }
  .t-h2 { font-size: clamp(26px, 5.5vw, 36px) !important; }
  .t-h3 { font-size: clamp(20px, 4.5vw, 28px) !important; }
  .t-h4 { font-size: 20px !important; }

  /* ─── Section padding ─── */
  .section {
    padding-block: 56px;
  }
  .section--alt,
  [class*="sp-section-lg"] {
    padding-block: 72px;
  }

  /* ═══════════════════════════════════════════════════════════════
     HEADER — compact mobile
     ═══════════════════════════════════════════════════════════════ */
  .header {
    height: var(--header-h);
    background: rgba(245, 241, 235, 0.92);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border-bottom: 1px solid rgba(26, 26, 26, 0.06);
    transition: transform 280ms var(--ease);
  }
  .header.is-hidden {
    transform: translateY(-100%);
  }
  .header__inner {
    height: var(--header-h);
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
  }
  .logo {
    order: 2;
    flex: 1;
    display: flex;
    justify-content: center;
    min-width: 0;
  }
  /* Burger */
  .burger {
    display: flex !important;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 44px;
    height: 44px;
    padding: 11px 10px;
    background: transparent;
    border: 0;
    cursor: pointer;
    color: var(--c-text);
    flex-shrink: 0;
    order: 1;
  }
  .burger__line {
    width: 22px;
    height: 1.5px;
    background: currentColor;
    transition: transform 240ms var(--ease), opacity 240ms var(--ease);
    transform-origin: center;
  }
  .burger[aria-expanded="true"] .burger__line:nth-child(1) {
    transform: translateY(6.5px) rotate(45deg);
  }
  .burger[aria-expanded="true"] .burger__line:nth-child(2) {
    opacity: 0;
  }
  .burger[aria-expanded="true"] .burger__line:nth-child(3) {
    transform: translateY(-6.5px) rotate(-45deg);
  }

  /* Logo (centered, smaller) */
  .logo {
    justify-self: center;
  }
  .logo__name {
    font-size: 15px;
    letter-spacing: 0.2em;
  }
  .logo__sub {
    display: none;  /* hide sub on mobile */
  }
  .logo .logo__mark { height: 46px; }
  .interior-photo { flex: 0 0 260px; }
  .interior-group__title { font-size: 28px; }
  .interior-group__header { flex-direction: column; align-items: flex-start; gap: 8px; }
  .footer__brand .logo__svg { height: 76px; }

  /* Hide desktop nav + right panel */
  .nav,
  .header__right {
    display: none !important;
  }

  /* Phone icon (right slot) */
  .header__phone-mobile {
    display: grid !important;
    place-items: center;
    width: 44px;
    height: 44px;
    color: var(--c-text);
    text-decoration: none;
    flex-shrink: 0;
    order: 3;
    transition: color var(--t-fast) var(--ease);
  }
  .header__phone-mobile:hover,
  .header__phone-mobile:active {
    color: var(--c-accent-deep);
  }

  /* Hide mega-menu button on mobile (menu is in mnav instead) */
  .mega,
  .mega-overlay {
    display: none !important;
  }

  /* ═══════════════════════════════════════════════════════════════
     PREMIUM FULL-SCREEN MOBILE NAV
     · Background: ornament + brand-tinted gradient overlay
     · Items: cascade animation with numbered prefix
     · Aesthetic: editorial, premium, quiet
     ═══════════════════════════════════════════════════════════════ */

  .mnav {
    display: flex;
    flex-direction: column;
    position: fixed;
    inset: 0;
    z-index: 1001;
    overflow-y: auto;
    overscroll-behavior: contain;
    visibility: hidden;
    pointer-events: none;
    opacity: 0;
    transition: opacity 500ms cubic-bezier(0.5, 0, 0.75, 0),
                visibility 500ms;
  }
  .mnav.is-open {
    visibility: visible;
    pointer-events: auto;
    opacity: 1;
    transition: opacity 600ms cubic-bezier(0.65, 0, 0.35, 1),
                visibility 0ms;
  }

  /* Backdrop layers */
  .mnav__backdrop {
    position: fixed;
    inset: 0;
    z-index: -1;
    overflow: hidden;
    background: var(--c-bg);
  }
  .mnav__bg-image {
    position: absolute;
    inset: 0;
    background:
      radial-gradient(ellipse 120% 90% at 20% 10%,
        rgba(214, 197, 60, 0.32) 0%,
        transparent 55%),
      radial-gradient(ellipse 100% 70% at 90% 95%,
        rgba(184, 174, 159, 0.22) 0%,
        transparent 55%),
      linear-gradient(180deg, var(--c-bg) 0%, var(--c-bg-alt) 100%);
    transform: scale(1.05);
    transition: transform 2400ms cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  .mnav.is-open .mnav__bg-image {
    transform: scale(1);
  }
  .mnav__bg-gradient {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg,
      rgba(245, 241, 235, 0.45) 0%,
      rgba(240, 235, 227, 0.35) 50%,
      rgba(245, 241, 235, 0.55) 100%);
    backdrop-filter: blur(1px);
    -webkit-backdrop-filter: blur(1px);
  }
  .mnav__bg-ornament {
    position: absolute;
    right: -120px;
    bottom: -80px;
    opacity: 0;
    color: var(--c-ornament);
    transform: rotate(-12deg) scale(0.9);
    transition: opacity 1200ms 200ms cubic-bezier(0.22, 0.61, 0.36, 1),
                transform 1600ms 200ms cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  .mnav.is-open .mnav__bg-ornament {
    opacity: 0.18;
    transform: rotate(0deg) scale(1);
  }

  /* Top bar */
  .mnav__head {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    padding: 16px var(--pad);
    min-height: var(--header-h, 64px);
    position: sticky;
    top: 0;
    z-index: 2;
    opacity: 0;
    transform: translateY(-12px);
    transition: opacity 500ms 100ms cubic-bezier(0.22, 0.61, 0.36, 1),
                transform 500ms 100ms cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  .mnav.is-open .mnav__head {
    opacity: 1;
    transform: translateY(0);
  }
  .mnav__brand {
    display: none;
    flex-direction: column;
    line-height: 1;
  }
  .mnav__brand-name {
    font-family: var(--font-display);
    font-size: 15px;
    font-weight: 500;
    letter-spacing: 0.22em;
    color: var(--c-text);
  }
  .mnav__brand-sub {
    font-family: var(--font-accent);
    font-style: italic;
    font-size: 11px;
    letter-spacing: 0.18em;
    color: var(--c-text-muted);
    margin-top: 4px;
    text-transform: uppercase;
  }
  .mnav__close {
    position: relative;
    width: 44px;
    height: 44px;
    background: transparent;
    border: 0;
    cursor: pointer;
    color: var(--c-text);
    margin: 0;
  }
  .mnav__close-line {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 22px;
    height: 1.5px;
    background: currentColor;
    transform-origin: center;
    transition: transform 400ms cubic-bezier(0.5, 0, 0.75, 0);
  }
  .mnav__close-line:nth-child(1) {
    transform: translate(-50%, -50%) rotate(45deg);
  }
  .mnav__close-line:nth-child(2) {
    transform: translate(-50%, -50%) rotate(-45deg);
  }

  /* Main nav body */
  .mnav__body {
    flex: 1;
    padding: 16px 20px 32px;
    position: relative;
  }

  .mnav__list {
    list-style: none;
    padding: 0;
    margin: 0;
    counter-reset: nav;
  }

  .mnav__item {
    opacity: 0;
    transform: translateY(32px);
    transition: opacity 600ms cubic-bezier(0.22, 0.61, 0.36, 1),
                transform 600ms cubic-bezier(0.22, 0.61, 0.36, 1);
    transition-delay: calc(var(--i, 0) * 60ms + 200ms);
    border-bottom: 1px solid rgba(26, 26, 26, 0.08);
  }
  .mnav.is-open .mnav__item {
    opacity: 1;
    transform: translateY(0);
  }

  .mnav__link {
    display: flex;
    align-items: baseline;
    gap: 16px;
    padding: 20px 4px 20px 0;
    font-family: var(--font-display);
    font-size: 28px;
    font-weight: 300;
    letter-spacing: -0.01em;
    color: var(--c-text);
    text-decoration: none;
    min-height: 72px;
    cursor: pointer;
    position: relative;
    overflow: hidden;
  }
  .mnav__link--toggle {
    width: 100%;
    list-style: none;
    justify-content: flex-start;
  }
  .mnav__link--toggle::-webkit-details-marker { display: none; }

  .mnav__num {
    display: inline-block;
    font-family: var(--font-display);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.2em;
    color: var(--c-accent-deep);
    opacity: 0.7;
    transform: translateY(-10px);
    flex-shrink: 0;
    width: 24px;
    text-align: left;
    transition: opacity var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
  }

  .mnav__text {
    flex: 1;
    display: inline-block;
    transition: transform 320ms cubic-bezier(0.22, 0.61, 0.36, 1), color 240ms;
  }

  .mnav__arrow {
    margin-left: auto;
    color: var(--c-text-muted);
    transition: transform 400ms cubic-bezier(0.22, 0.61, 0.36, 1);
    align-self: center;
  }

  .mnav__link:hover .mnav__text,
  .mnav__link:active .mnav__text {
    transform: translateX(8px);
    color: var(--c-accent-deep);
  }
  .mnav__link:hover .mnav__num {
    opacity: 1;
  }

  .mnav__group[open] > .mnav__link .mnav__arrow {
    transform: rotate(180deg);
  }

  /* Sublist (accordion) */
  .mnav__sublist {
    list-style: none;
    padding: 0 0 16px 40px;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
    animation: mnav-sub-in 400ms cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  @keyframes mnav-sub-in {
    from { opacity: 0; transform: translateY(-8px); }
    to   { opacity: 1; transform: translateY(0); }
  }
  .mnav__sublist a {
    display: block;
    padding: 12px 0;
    font-family: var(--font-body);
    font-size: 15px;
    font-weight: 400;
    color: var(--c-text-muted);
    text-decoration: none;
    letter-spacing: 0;
    min-height: 44px;
    transition: color var(--t-fast) var(--ease), padding-left var(--t-fast) var(--ease);
  }
  .mnav__sublist a:hover,
  .mnav__sublist a:active {
    color: var(--c-accent-deep);
    padding-left: 6px;
  }
  .mnav__sublink--all {
    color: var(--c-accent-deep) !important;
    font-weight: 500 !important;
    padding-top: 16px !important;
    margin-top: 4px;
    border-top: 1px solid rgba(26, 26, 26, 0.06);
  }

  /* Footer of mnav */
  .mnav__foot {
    padding: 32px 20px calc(32px + env(safe-area-inset-bottom));
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 600ms 700ms cubic-bezier(0.22, 0.61, 0.36, 1),
                transform 600ms 700ms cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  .mnav.is-open .mnav__foot {
    opacity: 1;
    transform: translateY(0);
  }

  .mnav__foot-inner {
    display: flex;
    flex-direction: column;
    gap: 28px;
  }

  .mnav__foot-label {
    font-family: var(--font-display);
    font-size: 10px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.22em;
    color: var(--c-text-subtle);
    margin: 0 0 10px;
  }

  .mnav__phone {
    display: block;
    font-family: var(--font-display);
    font-weight: 300;
    font-size: 28px;
    color: var(--c-text);
    text-decoration: none;
    letter-spacing: -0.01em;
    margin: 0;
  }

  .mnav__cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    height: 56px;
    padding: 0 24px;
    background: var(--c-text);
    color: var(--c-surface);
    border: 0;
    font-family: var(--font-display);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    text-decoration: none;
    cursor: pointer;
    transition: background 320ms var(--ease), transform 320ms var(--ease);
  }
  .mnav__cta:hover,
  .mnav__cta:active {
    background: var(--c-accent-deep);
    transform: translateX(2px);
  }
  .mnav__cta svg {
    transition: transform 320ms var(--ease);
  }
  .mnav__cta:hover svg,
  .mnav__cta:active svg {
    transform: translateX(4px);
  }

  .mnav__messengers { }
  .mnav__msg-row {
    display: flex;
    gap: 10px;
  }
  .mnav__msg {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: var(--c-surface);
    color: var(--c-text);
    text-decoration: none;
    border: 1px solid var(--c-border);
    transition: background var(--t-fast) var(--ease),
                color var(--t-fast) var(--ease),
                border-color var(--t-fast) var(--ease);
  }
  .mnav__msg:hover,
  .mnav__msg:active {
    background: var(--c-accent);
    color: var(--c-surface);
    border-color: var(--c-accent);
  }

  .mnav__branches { }
  .mnav__branch-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
  }
  .mnav__branch-list li {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 6px 0;
  }
  .mnav__branch-name {
    font-family: var(--font-display);
    font-size: 15px;
    font-weight: 500;
    color: var(--c-text);
    letter-spacing: 0.01em;
  }
  .mnav__branch-metro {
    font-family: var(--font-body);
    font-size: 13px;
    color: var(--c-text-muted);
  }

  .mnav__socials {
    display: flex;
    gap: 24px;
    padding-top: 16px;
    border-top: 1px solid rgba(26, 26, 26, 0.08);
  }
  .mnav__soc {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-family: var(--font-display);
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.22em;
    text-transform: uppercase;
    color: var(--c-text-muted);
    text-decoration: none;
    transition: color var(--t-fast) var(--ease);
  }
  .mnav__soc-ic {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    transition: color var(--t-fast) var(--ease);
  }
  .mnav__soc:hover,
  .mnav__soc:active {
    color: var(--c-text);
  }

  /* Body scroll lock */
  body.mnav-open {
    overflow: hidden;
  }

  /* prefers-reduced-motion: disable cascade + parallax */
  @media (prefers-reduced-motion: reduce) {
    .mnav,
    .mnav__item,
    .mnav__head,
    .mnav__foot,
    .mnav__bg-image,
    .mnav__bg-ornament {
      transition-duration: 300ms !important;
      animation-duration: 300ms !important;
    }
    .mnav__item {
      transition-delay: 0ms !important;
      transform: none !important;
    }
    .mnav.is-open .mnav__item {
      transform: none !important;
    }
    .mnav__bg-image {
      transform: scale(1) !important;
    }
  }


  /* ═══════════════════════════════════════════════════════════════
     FLOATING ACTION BUTTON (WhatsApp messenger)
     ═══════════════════════════════════════════════════════════════ */
  .fab-messenger {
    display: grid;
    place-items: center;
    position: fixed;
    right: 16px;
    bottom: 88px;  /* above sticky CTA */
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: #25D366;
    color: #FFFFFF;
    text-decoration: none;
    box-shadow: 0 6px 20px rgba(37, 211, 102, 0.4);
    z-index: 950;
    transition: transform 240ms var(--ease);
  }
  .fab-messenger:hover,
  .fab-messenger:active {
    transform: scale(1.08);
  }

  /* ═══════════════════════════════════════════════════════════════
     STICKY CTA BAR (mobile only)
     ═══════════════════════════════════════════════════════════════ */
  .sticky-cta {
    display: flex;
    align-items: center;
    gap: 10px;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom));
    background: rgba(245, 241, 235, 0.96);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border-top: 1px solid var(--c-border);
    z-index: 940;
    transform: translateY(100%);
    transition: transform 280ms var(--ease);
  }
  .sticky-cta.is-visible {
    transform: translateY(0);
  }
  .sticky-cta__phone {
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    border-radius: 4px;
    background: var(--c-surface);
    border: 1px solid var(--c-border);
    color: var(--c-text);
    text-decoration: none;
    flex-shrink: 0;
  }
  .sticky-cta__btn {
    flex: 1;
    height: 52px;
    padding: 0 20px;
    background: var(--c-text);
    color: var(--c-surface);
    border: 0;
    font-family: var(--font-display);
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    cursor: pointer;
  }

  /* ═══════════════════════════════════════════════════════════════
     PAGE HERO OVERRIDES
     ═══════════════════════════════════════════════════════════════ */
  .page-hero {
    padding: calc(var(--header-h) + 48px) 0 48px;
  }
  .page-hero__title {
    font-size: clamp(34px, 8vw, 48px) !important;
    line-height: 1.06;
    max-width: 100%;
  }
  .page-hero__lead {
    font-size: 15px;
    max-width: 100%;
  }

  /* ═══════════════════════════════════════════════════════════════
     HERO SPLIT (service detail)
     ═══════════════════════════════════════════════════════════════ */
  .hero-split {
    padding: calc(var(--header-h) + 32px) 0 48px;
  }
  .hero-split__grid {
    grid-template-columns: 1fr;
    gap: 32px;
    min-height: auto;
  }
  .hero-split__content {
    padding-right: 0;
    order: 2;
  }
  .hero-split__visual {
    order: 1;
    aspect-ratio: 4 / 3;
    max-height: 50vh;
  }
  .hero-split__title {
    font-size: clamp(32px, 8vw, 44px) !important;
  }
  .hero-split__price {
    font-size: 26px;
  }

  /* Quick meta — stack */
  .quick-meta {
    flex-direction: column;
    gap: 20px;
    padding: 24px 0;
  }

  /* ═══════════════════════════════════════════════════════════════
     MAIN PAGE SECTIONS
     ═══════════════════════════════════════════════════════════════ */

  /* Hero on home */
  .hero {
    min-height: 80vh;
    padding: calc(var(--header-h) + 40px) 0 60px;
  }
  .hero__grid {
    min-height: calc(80vh - var(--header-h) - 100px);
  }
  .hero__sub {
    margin-bottom: 40px;
  }
  .hero__cta {
    padding: 6px 6px 6px 28px;
    gap: 18px;
    font-size: 11px;
  }
  .hero__cta .arrow {
    width: 44px;
    height: 44px;
    font-size: 16px;
  }
  .hero-grid {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }

  /* Services grid */
  .services-grid,
  .services-page-grid {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
    margin-bottom: 48px !important;
  }
  .service-card__media {
    aspect-ratio: 3 / 4;
  }
  .service-card__title {
    font-size: 22px;
  }

  /* Segment block */
  .segment__grid {
    grid-template-columns: 1fr !important;
    gap: 0 !important;
  }

  /* Section headers */
  .section-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 24px;
    margin-bottom: 40px;
  }
  .section-header__title {
    font-size: clamp(28px, 7vw, 40px) !important;
  }
  .section-header__action {
    margin-top: 4px;
  }

  /* Stats */
  .stats {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 32px 16px !important;
  }
  .stat__num {
    font-size: clamp(52px, 13vw, 72px) !important;
  }
  .stat__label {
    font-size: 13px;
  }

  /* Locations */
  .locations-grid {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }

  /* Blog grid */
  .blog-grid,
  .articles-grid {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }

  /* Masters */
  .masters-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 20px !important;
  }
  .master-card__name {
    font-size: 18px;
  }
  .master-card__role {
    font-size: 12px;
  }
  .master-card__tag {
    font-size: 10px;
    padding: 3px 8px;
  }

  /* Testimonials */
  .testimonials-grid {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
  .testimonial__text {
    font-size: 18px;
  }

  /* Tiers */
  .tiers-grid {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
  .tier-card {
    padding: 40px 28px;
  }
  .tier-card--featured {
    transform: translateY(0);
    padding-top: 56px;
    padding-bottom: 56px;
  }
  .tier-card__discount {
    font-size: 56px;
  }

  /* Benefits 4x2 → 2x4 */
  .benefits-grid {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  .benefit-card {
    padding: 32px 20px;
  }
  .benefit-card__title {
    font-size: 18px;
  }
  .benefit-card__text {
    font-size: 13px;
  }

  /* How steps */
  .how-steps {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
  .how-step__num {
    font-size: 56px !important;
  }

  /* Timeline */
  .timeline::before {
    left: 10px;
  }
  .timeline__item {
    grid-template-columns: 80px 1fr !important;
    gap: 24px !important;
    padding: 24px 0;
  }
  .timeline__item::before {
    left: 6px;
    top: 32px;
  }
  .timeline__year {
    font-size: 26px !important;
    text-align: left;
  }
  .timeline__title {
    font-size: 20px;
  }

  /* Values */
  .values-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 32px 20px !important;
  }
  .value-item__num {
    font-size: 40px;
  }
  .value-item__title {
    font-size: 18px;
  }

  /* Gallery masonry */
  .philosophy-gallery {
    grid-template-columns: 1fr 1fr !important;
    grid-template-rows: auto !important;
    gap: 12px !important;
  }
  .philosophy-gallery__item {
    grid-column: span 1 !important;
    grid-row: span 1 !important;
    aspect-ratio: 1 / 1;
    height: auto !important;
  }
  .philosophy-gallery__item:nth-child(1) {
    grid-column: span 2 !important;
    aspect-ratio: 16 / 10;
  }

  /* Mission block */
  .mission-block {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
  .mission-block__title {
    font-size: clamp(32px, 8vw, 44px) !important;
  }

  /* Contacts */
  .contact-grid {
    grid-template-columns: 1fr !important;
    margin-bottom: 48px !important;
  }
  .contact-block {
    padding: 32px 24px;
  }
  .contact-block__value {
    font-size: 28px;
    word-break: break-word;
  }
  .contact-block__value--sm {
    font-size: 18px;
  }

  /* Map */
  .map-placeholder {
    height: 300px !important;
    min-height: auto !important;
    font-size: 16px;
  }

  /* Branches table → cards */
  .branches-table thead {
    display: none;
  }
  .branches-table,
  .branches-table tbody,
  .branches-table tr {
    display: block;
  }
  .branches-table tr {
    border: 1px solid var(--c-border);
    border-radius: 4px;
    margin-bottom: 16px;
    padding: 20px 16px;
  }
  .branches-table tr:hover td {
    background: transparent;
  }
  .branches-table td {
    display: block;
    padding: 4px 0;
    border-bottom: 0;
    font-size: 13px;
  }
  .branches-table__name {
    font-size: 20px !important;
    margin-bottom: 8px;
  }
  .branches-table__cta {
    display: inline-flex !important;
    margin-top: 12px;
  }

  /* Filter pills — horizontal scroll */
  .filter-pills {
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 12px;
    margin-bottom: 40px;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
  }
  .filter-pills::-webkit-scrollbar { display: none; }
  .filter-pill {
    flex-shrink: 0;
    scroll-snap-align: start;
    min-height: 40px;
  }

  /* Journal search */
  .journal-search {
    flex-direction: column;
    gap: 24px;
    align-items: stretch;
    margin-bottom: 40px;
  }
  .journal-search__field {
    max-width: 100%;
  }

  /* Featured article */
  .article-featured {
    grid-template-columns: 1fr !important;
    min-height: auto !important;
  }
  .article-featured__media {
    aspect-ratio: 4 / 3;
  }
  .article-featured__content {
    padding: 28px 20px !important;
  }
  .article-featured__title {
    font-size: clamp(24px, 6vw, 32px) !important;
  }

  /* Promo featured */
  .promo-featured {
    grid-template-columns: 1fr !important;
    min-height: auto !important;
  }
  .promo-featured__media {
    aspect-ratio: 4 / 3;
  }
  .promo-featured__content {
    padding: 32px 20px !important;
  }
  .promo-featured__title {
    font-size: clamp(28px, 7vw, 36px) !important;
  }
  .promo-featured__price-new {
    font-size: 32px !important;
  }

  /* Promo grid */
  .promo-grid {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 24px !important;
  }
  /* Featured card: keep side-by-side on tablet, but tighter */
  .promo-card--featured {
    gap: 36px;
  }
  .promo-card--featured .promo-card__title { font-size: 34px; }
  .promo-card--featured .promo-card__short { font-size: 19px; }

  /* Process detail — compact 2-col grid on mobile */
  .process-detail {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 14px !important;
  }
  .process-detail__step {
    padding: 16px !important;
    gap: 12px !important;
  }
  .process-detail__step:nth-child(even) .process-detail__visual {
    order: -1 !important;
  }
  .process-detail__visual {
    aspect-ratio: 1 / 1;
  }
  .process-detail__num {
    font-size: 32px !important;
    margin-bottom: 4px !important;
  }
  .process-detail__title {
    font-size: 15px !important;
    margin-bottom: 4px !important;
  }
  .process-detail__text {
    font-size: 12px !important;
    line-height: 1.4 !important;
  }

  /* Indications split */
  .indications-split {
    grid-template-columns: 1fr !important;
    gap: 40px !important;
  }

  /* Prep recovery */
  .prep-recovery {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
  .prep-card {
    padding: 32px 20px;
  }

  /* Price table */
  .price-table {
    display: block;
  }
  .price-table thead {
    display: none;
  }
  .price-table tbody,
  .price-table tr {
    display: block;
  }
  .price-table tr {
    padding: 16px 0;
    border-bottom: 1px solid var(--c-border);
  }
  .price-table tr:nth-child(odd) td {
    background: transparent;
  }
  .price-table td {
    display: block;
    padding: 4px 0;
    border: 0;
    text-align: left !important;
  }
  .price-table__zone {
    font-size: 17px !important;
    margin-bottom: 8px;
  }
  .price-table__price {
    font-size: 16px !important;
    display: inline-block;
  }
  .price-table__price::before {
    content: attr(data-label);
    font-family: var(--font-display);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--c-text-muted);
    display: block;
    margin-bottom: 2px;
  }

  /* Process on services page */
  .process {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
  .process__num {
    font-size: 48px !important;
  }

  /* Partners row */
  .partners-row {
    gap: 24px 40px !important;
  }
  .partner-logo {
    font-size: 20px;
  }

  /* Press row */
  .press-row {
    gap: 28px 40px !important;
  }
  .press-item__name {
    font-size: 20px;
  }

  /* FAQ */
  .faq-trigger {
    font-size: 17px !important;
    padding: 20px 0 !important;
  }
  .faq-content-inner {
    font-size: 14px;
  }

  /* Article body */
  .article-detail-hero {
    padding: 40px 0 24px !important;
  }
  .article-detail-title {
    font-size: clamp(28px, 7vw, 40px) !important;
  }
  .article-detail-lead {
    font-size: 16px !important;
  }
  .article-cover {
    margin-bottom: 48px !important;
  }
  .article-body {
    font-size: 16px;
  }
  .article-body h2 {
    font-size: 26px !important;
    margin: 36px 0 16px !important;
  }
  .article-body h3 {
    font-size: 20px !important;
    margin: 28px 0 14px !important;
  }
  .article-body blockquote {
    font-size: 20px !important;
    padding-left: 20px !important;
    margin: 28px 0 !important;
  }
  .article-author {
    padding: 24px 0 !important;
  }

  /* Newsletter */
  .newsletter-cta__inner {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
  }
  .newsletter-cta__title {
    font-size: clamp(28px, 7vw, 36px) !important;
  }

  /* Requisites */
  .requisites {
    padding: 24px 20px !important;
    font-size: 11px !important;
  }

  /* Join team */
  .join-team {
    padding: 48px 24px !important;
  }
  .join-team__title {
    font-size: 32px !important;
  }

  /* Tag cloud */
  .tag-cloud__tag {
    font-size: 12px;
    padding: 8px 14px;
    min-height: 36px;
    display: inline-flex;
    align-items: center;
  }

  /* Link CTA & buttons */
  .link-cta,
  .btn {
    min-height: 48px;
    display: inline-flex;
    align-items: center;
  }

  /* Reveal — disable on mobile to avoid half-state screenshots */
  .reveal {
    transform: none !important;
    opacity: 1 !important;
  }

  /* Intro centered */
  .intro-centered p {
    font-size: 20px !important;
    line-height: 1.45;
  }

  /* Ornament divider — smaller */
  .ornament-divider {
    padding: 48px 0 !important;
  }

  /* Popup modal — full screen on mobile */
  .popup {
    max-width: 100% !important;
    width: 100% !important;
    height: 100dvh !important;
    max-height: 100vh !important;
    border-radius: 0 !important;
    inset: 0 !important;
    transform: none !important;
  }

  /* ═══════════════════════════════════════════════════════════════
     FOOTER — mobile accordion
     ═══════════════════════════════════════════════════════════════ */
  .footer {
    padding: 48px 0 calc(80px + env(safe-area-inset-bottom));  /* room for sticky CTA */
  }
  .footer__head {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
    padding-bottom: 32px !important;
  }
  .footer__newsletter-title {
    font-size: 28px !important;
  }
  .footer__newsletter {
    flex-direction: column;
    padding: 8px !important;
    border-radius: 12px !important;
  }
  .footer__newsletter-input {
    padding: 14px 16px !important;
  }
  .footer__newsletter-btn {
    width: 100% !important;
    border-radius: 8px !important;
  }

  /* Footer 6-col → accordion */
  .footer__grid {
    grid-template-columns: 1fr !important;
    gap: 0 !important;
    padding: 0 !important;
    border-bottom: 0 !important;
  }
  .footer__col {
    border-top: 1px solid rgba(255, 255, 255, 0.08);
  }
  .footer__col:last-child {
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  }
  .footer__col-title {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    margin: 0 !important;
    padding: 20px 0 !important;
    border-bottom: 0 !important;
    min-height: 56px;
  }
  .footer__col-title::after {
    content: '';
    width: 10px;
    height: 10px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg);
    margin-top: -4px;
  }
  .footer__menu {
    max-height: 0;
    overflow: hidden;
    gap: 0 !important;
    transition: max-height 300ms var(--ease);
  }
  .footer__col.is-open .footer__menu {
    max-height: 600px;
    padding-bottom: 16px;
  }
  .footer__menu li,
  .footer__menu a {
    padding: 10px 0;
    min-height: 40px;
    display: block;
  }

  /* Contacts col: always visible */
  .footer__col:last-child .footer__col-title {
    pointer-events: none;
  }
  .footer__col:last-child .footer__col-title::after {
    display: none;
  }
  .footer__col:last-child .footer__menu {
    max-height: none;
  }
  .footer__contact-block {
    display: flex !important;
  }
  .footer__messengers {
    display: flex !important;
  }

  /* NAP strip */
  .footer__nap {
    grid-template-columns: 1fr !important;
    gap: 24px !important;
    padding: 24px 0 !important;
  }
  .footer__nap-row {
    grid-template-columns: 1fr !important;
    gap: 2px !important;
  }

  /* Bottom strip */
  .footer__bottom {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
    padding: 24px 0 !important;
  }
  .footer__bottom-item {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }
  .footer__rating {
    width: 100%;
    align-self: stretch;
  }
  .footer__legal-row {
    flex-direction: column;
    align-items: stretch;
    width: 100%;
  }
  .footer__legal-link {
    justify-content: center;
  }

  /* Disclaimer */
  .footer__disclaimer {
    padding: 20px 0 !important;
  }
  .footer__disclaimer-medical {
    font-size: 11px !important;
  }

  /* Requisites */
  .footer__requisites p {
    font-size: 10px !important;
  }

  /* Copyright */
  .footer__copyright {
    flex-direction: column !important;
    align-items: flex-start !important;
    gap: 8px !important;
  }
}

/* =====================================================================
   PHONE ONLY: <= 767px
   ===================================================================== */
@media (max-width: 767px) {

  :root {
    --header-h: 60px;
    --pad: 16px;
  }

  .section {
    padding-block: 48px;
  }

  /* Promo grid — single column on phone (banners 16:9 render at full card width) */
  .promo-grid {
    grid-template-columns: 1fr !important;
  }
  .promo-card__title  { font-size: 22px; }
  .promo-card__short  { font-size: 16px; }
  /* Featured card: stack vertically on phone */
  .promo-card--featured {
    grid-template-columns: 1fr !important;
    gap: 20px;
  }
  .promo-card--featured .promo-card__title { font-size: 26px; }
  .promo-card--featured .promo-card__short { font-size: 17px; }
  .promo-card--featured .promo-card__desc  { font-size: 14px; }

  /* Hide fab when mnav open */
  body.mnav-open .fab-messenger,
  body.mnav-open .sticky-cta {
    display: none;
  }

  /* Adjust page-hero */
  .page-hero__title {
    font-size: clamp(30px, 8.5vw, 40px) !important;
  }

  /* Smaller container padding */
  .container {
    padding: 0 var(--pad);
  }

  /* Form block */
  .form-block {
    padding: 48px 0 !important;
  }
  .form-grid {
    grid-template-columns: 1fr !important;
    gap: 20px !important;
  }
  .field__input,
  .field__select,
  .field__textarea {
    font-size: 16px !important;  /* critical: prevents iOS zoom */
    min-height: 52px;
    padding: 14px 16px !important;
  }

  /* Contact actions stack */
  .contact-block__actions {
    flex-direction: column;
    gap: 8px !important;
  }
  .contact-btn {
    width: 100%;
    justify-content: center;
    min-height: 48px;
  }
}

/* =====================================================================
   SMALL PHONE: <= 374px (iPhone SE, Galaxy S)
   ===================================================================== */
@media (max-width: 374px) {
  :root {
    --pad: 14px;
  }
  .logo__name { font-size: 13px; letter-spacing: 0.18em; }
  .logo .logo__mark { height: 30px; }
  .footer__brand .logo__svg { height: 68px; }
  .page-hero__title { font-size: 28px !important; }
  .stats { grid-template-columns: 1fr !important; }
  .masters-grid,
  .benefits-grid,
  .values-grid {
    grid-template-columns: 1fr !important;
  }
}

/* === */
/* =====================================================================
   REALBEAUTY · fixes.css
   Targeted layout/typography fixes — revision pass
   Safe to remove this file to rollback all fixes.
   Approach: minimal, surgical, no sweeping rewrites.
   ===================================================================== */

/* ═════════════════════════════════════════════════════════════════
   FIX 1 · UNIFY HEADER NAV ITEMS
   Problem: trigger button "Услуги" inherited button font defaults
   (16px / weight 400) while other .nav__link items are 12px / 500.
   Fix: normalize .nav__trigger to match .nav__link exactly.
   ═════════════════════════════════════════════════════════════════ */

.nav__link,
.nav__trigger {
  font-family: var(--font-display);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.15em;      /* ≈ 1.8px — premium-range */
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--c-text);
  padding: 6px 0;
  background: transparent;
  border: 0;
  cursor: pointer;
}

/* Trigger-specific: flex for chevron alignment, keep same metrics */
.nav__trigger {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

/* Hover should not change size/weight (prevent layout shift) */
.nav__link:hover,
.nav__trigger:hover {
  color: var(--c-accent-deep);
}

/* Active state: use text-decoration underline instead of changing weight */
.nav__link.is-active,
.nav__trigger.is-active {
  color: var(--c-text);
  position: relative;
}
.nav__link.is-active::after,
.nav__trigger.is-active::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -2px;
  height: 1px;
  background: currentColor;
}

/* Chevron: slight opacity, no size change on hover */
.nav__chevron {
  opacity: 0.6;
  flex-shrink: 0;
  transition: transform var(--t-fast) var(--ease);
}
.nav__trigger:hover .nav__chevron {
  opacity: 1;
}

/* ═════════════════════════════════════════════════════════════════
   FIX 2 · TYPOGRAPHY HIERARCHY — rebalance H1 / H2 / H3
   Problem: H1 = 120px is too dominant (modular scale ratio 4.3× to H3).
   Fix: reduce to 88px on desktop, match brief's 48-64px on mobile.
   Scale becomes: 88 / 56 / 32 / 20 — ratio ~1.57 (golden-ish).
   ═════════════════════════════════════════════════════════════════ */

@media (min-width: 1024px) {
  .t-hero,
  .t-display {
    font-size: clamp(64px, 7vw, 88px);
    line-height: 1.04;
    letter-spacing: -0.035em;
  }
  .t-h1,
  .page-hero__title {
    font-size: clamp(48px, 5.5vw, 72px);
    line-height: 1.08;
    letter-spacing: -0.03em;
  }
  .t-h2,
  .section-header__title {
    font-size: clamp(32px, 3.8vw, 48px);
    line-height: 1.15;
    letter-spacing: -0.025em;
  }
  .t-h3 {
    font-size: 28px;
    line-height: 1.25;
    letter-spacing: -0.015em;
  }
  .t-h4 {
    font-size: 20px;
    line-height: 1.35;
  }
}

/* Body paragraphs: ensure readable measure (65-75ch) */
.section p:not([class]),
.t-lead {
  max-width: 65ch;
}

/* Lead paragraphs slightly larger for hierarchy */
.t-lead,
.hero__sub,
.page-hero__lead {
  font-size: 17px;
  line-height: 1.6;
  color: var(--c-text-muted);
}

/* RB-USER-FIX: hero lead lies over a dark photo — keep it light & legible */
.hero__sub {
  color: rgba(255, 255, 255, 0.94);
  text-shadow: 0 1px 18px rgba(0, 0, 0, 0.7), 0 2px 6px rgba(0, 0, 0, 0.45);
}

/* ═════════════════════════════════════════════════════════════════
   FIX 3 · SECTION SPACING — unify vertical rhythm
   Problem: inconsistent padding between sections (80 / 120 / 160).
   Fix: use modular scale 80 / 120 / 160 intentionally per role.
   ═════════════════════════════════════════════════════════════════ */

.section {
  padding-block: 120px;
}
.section--sm {
  padding-block: 80px;
}
.section--lg {
  padding-block: 160px;
}

/* Section-header bottom margin — consistent */
.section-header {
  margin-bottom: 64px;
}

/* ═════════════════════════════════════════════════════════════════
   FIX 4 · PREVENT TEXT OVERFLOW
   Problem: long URLs / emails / brand names break cards on mobile.
   Fix: enable word-break for long strings.
   ═════════════════════════════════════════════════════════════════ */

.contact-block__value,
.footer__contact-email,
.mnav__phone {
  overflow-wrap: break-word;
  word-break: break-word;
}

/* Don't break button/link text awkwardly */
.btn,
.link-cta,
.nav__link,
.nav__trigger {
  white-space: nowrap;
}

/* ═════════════════════════════════════════════════════════════════
   FIX 5 · PREVENT CLS (CUMULATIVE LAYOUT SHIFT)
   Problem: images without intrinsic size cause layout jumps.
   Fix: aspect-ratio hints for placeholder zones.
   ═════════════════════════════════════════════════════════════════ */

.service-card__media,
.article-featured__media,
.promo-featured__media,
.master-card__photo {
  aspect-ratio: 3 / 4;
  background: var(--c-placeholder);
  overflow: hidden;
}

.service-card__media img,
.article-featured__media img,
.promo-featured__media img,
.master-card__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ═════════════════════════════════════════════════════════════════
   FIX 6 · BUTTON HEIGHT CONSISTENCY
   Problem: different CTA buttons visually similar but different heights.
   Fix: explicit min-height 48px (desktop) / 52px (mobile).
   ═════════════════════════════════════════════════════════════════ */

.btn,
.link-cta,
.form__submit,
.tier-card__cta,
.contact-btn {
  min-height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

@media (max-width: 767px) {
  .btn,
  .link-cta,
  .form__submit,
  .tier-card__cta,
  .contact-btn {
    min-height: 52px;
  }
}

/* ═════════════════════════════════════════════════════════════════
   FIX 7 · NO HORIZONTAL SCROLL SAFETY NET
   Belt-and-suspenders: clamp body even if one element misbehaves.
   ═════════════════════════════════════════════════════════════════ */

html, body {
  overflow-x: clip;         /* modern */
}
@supports not (overflow-x: clip) {
  html, body {
    overflow-x: hidden;     /* fallback */
  }
}

/* ═════════════════════════════════════════════════════════════════
   FIX 8 · MOBILE BURGER MENU — font sizes per brief
   Brief requires: пункты бургер-меню 18–22px, spacing 16–24px.
   ═════════════════════════════════════════════════════════════════ */

@media (max-width: 1023px) {
  .mnav__link {
    font-size: 19px;            /* within 18-22 range */
    letter-spacing: 0.01em;
    font-weight: 400;
    padding: 18px 0;            /* 36px total between adjacent items */
    min-height: 56px;
  }
  .mnav__sublink {
    font-size: 15px;
    padding: 14px 0 14px 12px;
  }
  .mnav__leaf {
    font-size: 14px;
    padding: 12px 0;
  }
}

/* ═════════════════════════════════════════════════════════════════
   FIX 9 · HEADER SPACING ON DESKTOP
   Problem: nav items are too tight/loose depending on route.
   Fix: ensure consistent gap.
   ═════════════════════════════════════════════════════════════════ */

@media (min-width: 1024px) {
  .nav {
    gap: 40px;                   /* unified gap */
  }
}

/* ═════════════════════════════════════════════════════════════════
   FIX 10 · TIER CARD — prevent featured-card height mismatch
   Problem: featured card has extra badge + transform, siblings shorter.
   Fix: align-items: stretch at grid level, badge positioned absolute.
   ═════════════════════════════════════════════════════════════════ */

.tiers-grid {
  align-items: stretch;
}
.tier-card {
  display: flex;
  flex-direction: column;
}
.tier-card__cta {
  margin-top: auto;              /* push CTA to bottom */
}

/* === */
/* =====================================================================
   REALBEAUTY · mobile-fixes.css
   Audit fixes — safe to remove for rollback
   ===================================================================== */

@media (max-width: 1023px) {

  /* ═════════════════════════════════════════════════════════════
     FIX A · PREVENT HORIZONTAL OVERFLOW (P0)
     Audit found: .segment (825px), #about (658px), #form (649px)
     overflow viewport on 375-430 screens. Root cause: grid
     templates with fixed-width columns not collapsing.
     ═════════════════════════════════════════════════════════════ */

  section.segment {
    max-width: 100%;
    overflow-x: clip;
  }
  .segment__grid,
  .segment-grid {
    grid-template-columns: 1fr !important;
    gap: 0 !important;
    max-width: 100%;
  }
  .segment__item {
    max-width: 100%;
  }

  section#about,
  .about-grid,
  .about-intro {
    max-width: 100%;
    grid-template-columns: 1fr !important;
  }
  .about-item,
  .about-item--1,
  .about-item--2,
  .about-item--3,
  .about-item--4 {
    grid-column: 1 / -1 !important;
    margin-top: 0 !important;
    max-width: 100%;
  }
  .about-intro {
    gap: 24px !important;
  }
  .about-circle {
    width: 64px !important;
    height: 64px !important;
  }

  section#form,
  .form-block__inner {
    max-width: 100%;
    grid-template-columns: 1fr !important;
  }

  .footer__grid {
    max-width: 100%;
  }

  /* Belt-and-suspenders for any leftover horizontal scroll */
  html, body {
    overflow-x: clip;
  }
  @supports not (overflow-x: clip) {
    html, body { overflow-x: hidden; }
  }

  /* ═════════════════════════════════════════════════════════════
     FIX B · TOUCH OPTIMIZATION (P1)
     Prevent accidental double-tap zoom, sticky hovers.
     ═════════════════════════════════════════════════════════════ */

  a, button, summary, [role="button"] {
    touch-action: manipulation;
  }

  /* Disable sticky hovers on touch devices */
  @media (hover: none) {
    .nav__link:hover,
    .mnav__link:hover .mnav__text,
    .service-card:hover,
    .btn:hover,
    .link-cta:hover {
      color: inherit;
      transform: none;
      background: initial;
    }
  }

  /* ═════════════════════════════════════════════════════════════
     FIX C · TAP-TARGET SIZES (P1)
     Ensure all interactive elements ≥ 44×44px.
     ═════════════════════════════════════════════════════════════ */

  .header__soc,
  .footer__soc,
  .service-card__cta,
  .promo__cta,
  .filter-pill,
  .tag-cloud__tag {
    min-height: 44px;
    min-width: 44px;
  }

  /* Checkboxes (form consent) — enlarge tap-target */
  .field--checkbox label,
  .checkbox label {
    min-height: 44px;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 4px 0;
  }
  .field--checkbox input[type="checkbox"],
  .checkbox input[type="checkbox"] {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    margin-top: 2px;
  }

  /* ═════════════════════════════════════════════════════════════
     FIX D · FORMS — iOS auto-zoom prevention + labels (P1)
     ═════════════════════════════════════════════════════════════ */

  input:not([type="checkbox"]):not([type="radio"]),
  select,
  textarea {
    font-size: 16px !important;       /* critical: iOS anti-zoom */
    min-height: 48px;
    touch-action: manipulation;
  }
  textarea {
    min-height: 120px;
  }

  /* Label visibility — don't rely on placeholder alone */
  .field__label {
    display: block !important;
    font-size: 11px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--c-text-muted);
    margin-bottom: 6px;
  }

  /* Error state under field */
  .field__error {
    display: block;
    font-size: 13px;
    color: #B23A3A;
    margin-top: 6px;
  }

  /* ═════════════════════════════════════════════════════════════
     FIX E · IMAGES — aspect-ratio to prevent CLS (P1)
     ═════════════════════════════════════════════════════════════ */

  img {
    max-width: 100%;
    height: auto;
  }
  .master-card__photo,
  .service-card__media,
  .article-featured__media,
  .promo-featured__media,
  .promo__media {
    aspect-ratio: 3 / 4;
    background: var(--c-placeholder);
    overflow: hidden;
  }
  .master-card__photo img,
  .service-card__media img,
  .article-featured__media img,
  .promo-featured__media img,
  .promo__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
  }

  /* ═════════════════════════════════════════════════════════════
     FIX F · MODAL (popup) — full-screen on mobile (P1)
     ═════════════════════════════════════════════════════════════ */

  .popup {
    position: fixed !important;
    inset: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    height: 100dvh !important;
    max-height: 100vh !important;
    border-radius: 0 !important;
    transform: none !important;
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .popup__close {
    min-width: 44px;
    min-height: 44px;
  }

  /* ═════════════════════════════════════════════════════════════
     FIX G · 100vh → 100dvh — iOS Safari URL-bar fix (P2)
     ═════════════════════════════════════════════════════════════ */

  .hero-fullscreen,
  .page-hero--fullscreen {
    min-height: 100dvh !important;
  }

  /* ═════════════════════════════════════════════════════════════
     FIX H · FOCUS-VISIBLE (a11y P2)
     ═════════════════════════════════════════════════════════════ */

  a:focus-visible,
  button:focus-visible,
  input:focus-visible,
  select:focus-visible,
  textarea:focus-visible,
  summary:focus-visible {
    outline: 2px solid var(--c-accent-deep);
    outline-offset: 2px;
  }

  /* ═════════════════════════════════════════════════════════════
     FIX I · SWIPE CAROUSELS — ensure snap + scroll-padding (P2)
     ═════════════════════════════════════════════════════════════ */

  .promos,
  .masters-scroll,
  .testimonials-scroll,
  .articles-scroll {
    scroll-snap-type: x mandatory;
    scroll-padding: 0 16px;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior-x: contain;
  }
  .promo,
  .masters-scroll > *,
  .testimonials-scroll > *,
  .articles-scroll > * {
    scroll-snap-align: start;
    scroll-snap-stop: always;
  }

  /* Promos: reduce card width on mobile to fit snap */
  .promos .promo {
    flex: 0 0 82vw !important;
    max-width: 360px;
  }

  /* ═════════════════════════════════════════════════════════════
     FIX J · FIXED ELEMENTS + iOS KEYBOARD (P2)
     When keyboard appears, fixed elements get pushed up by iOS.
     ═════════════════════════════════════════════════════════════ */

  /* Ensure sticky CTA doesn't cover form submit */
  body.form-focused .sticky-cta {
    display: none;
  }

}

/* ═════════════════════════════════════════════════════════════
   FIX K · REDUCED MOTION (all breakpoints)
   ═════════════════════════════════════════════════════════════ */

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }

  /* Keep essential UX transitions snappy but present */
  .mnav {
    transition-duration: 200ms !important;
  }
  .mnav__item {
    opacity: 1 !important;
    transform: none !important;
    transition-delay: 0ms !important;
  }
}

/* ═════════════════════════════════════════════════════════════
   FIX L · SMALL PHONES (<360px — Galaxy Fold closed, etc.)
   ═════════════════════════════════════════════════════════════ */

@media (max-width: 359px) {
  :root { --pad: 12px; }
  .logo__name { font-size: 12px; letter-spacing: 0.16em; }
  .page-hero__title { font-size: 26px !important; }
  .hero__title { font-size: 32px !important; }
  .mnav__link { font-size: 16px !important; padding: 12px 0 !important; min-height: 48px !important; }
}


/* ═══════════════════════════════════════════════════════════════════
   PRICE LIST · tabs + grouped zones · added from real price data
   ═══════════════════════════════════════════════════════════════════ */

/* ─── Full Price List ─────────────────────────────────────────────── */
.pl-section { padding-top: 60px; }
.pl-note {
  font-size: var(--fs-sm);
  color: var(--c-text-muted);
  max-width: 520px;
  margin-top: 24px;
  line-height: 1.55;
}

.pl-tabs {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  margin: 60px 0 40px;
  border-top: 1px solid var(--c-border-sm);
  border-bottom: 1px solid var(--c-border-sm);
}
.pl-tab {
  appearance: none;
  background: transparent;
  border: none;
  border-left: 1px solid var(--c-border-sm);
  padding: 28px 24px;
  text-align: left;
  cursor: pointer;
  color: var(--c-text-muted);
  transition: background var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-family: inherit;
}
.pl-tab:first-child { border-left: none; }
.pl-tab:hover { background: var(--c-placeholder); color: var(--c-text); }
.pl-tab.is-active {
  background: var(--c-text);
  color: var(--c-bg, #fff);
}
.pl-tab__label {
  font-family: var(--font-serif, serif);
  font-size: 20px;
  line-height: 1.2;
  font-weight: 400;
}
.pl-tab__meta {
  font-size: var(--fs-micro);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  opacity: 0.7;
}

.pl-panel { display: none; }
.pl-panel.is-active { display: block; }

.pl-group { margin-bottom: 56px; }
.pl-group:last-child { margin-bottom: 0; }
.pl-group__title {
  font-family: var(--font-serif, serif);
  font-size: 28px;
  font-weight: 400;
  line-height: 1.15;
  color: var(--c-text);
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--c-border-sm);
}
.pl-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
}
.pl-row {
  display: flex;
  align-items: baseline;
  gap: 12px;
  padding: 14px 0;
  border-bottom: 1px solid var(--c-border-sm);
  font-size: 15px;
  line-height: 1.4;
  transition: background var(--t-fast) var(--ease);
}
.pl-row:hover { background: var(--c-placeholder); }
.pl-row__name {
  color: var(--c-text);
  flex: 0 1 auto;
  padding-left: 2px;
}
.pl-row__dots {
  flex: 1 1 auto;
  border-bottom: 1px dotted var(--c-border-sm);
  transform: translateY(-4px);
  min-width: 20px;
}
.pl-row__price {
  color: var(--c-text);
  font-variant-numeric: tabular-nums;
  font-weight: 500;
  white-space: nowrap;
  padding-right: 2px;
}

.pl-footer {
  margin-top: 64px;
  padding-top: 40px;
  border-top: 1px solid var(--c-border-sm);
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 32px;
  flex-wrap: wrap;
}
.pl-footer__text {
  font-size: var(--fs-sm);
  color: var(--c-text-muted);
  max-width: 560px;
  line-height: 1.5;
}

@media (max-width: 960px) {
  .pl-tabs { grid-template-columns: repeat(2, 1fr); }
  .pl-tab { border-top: 1px solid var(--c-border-sm); }
  .pl-tab:nth-child(-n+2) { border-top: none; }
  .pl-tab:nth-child(odd) { border-left: none; }
  .pl-tab__label { font-size: 17px; }
}
@media (max-width: 640px) {
  .pl-tabs { grid-template-columns: 1fr; margin: 40px 0 32px; }
  .pl-tab { border-left: none; border-top: 1px solid var(--c-border-sm); padding: 20px 16px; }
  .pl-tab:first-child { border-top: none; }
  .pl-group__title { font-size: 22px; margin-bottom: 16px; padding-bottom: 12px; }
  .pl-row { font-size: 14px; padding: 12px 0; flex-wrap: wrap; gap: 4px; }
  .pl-row__dots { display: none; }
  .pl-row__name { flex: 1 1 100%; padding-right: 80px; }
  .pl-row__price { margin-left: auto; font-size: 14px; }
  .pl-footer { flex-direction: column; gap: 16px; margin-top: 40px; padding-top: 24px; }
}


/* ╔═══════════════════════════════════════════════════════════════════╗
   ║  v4.1 · MOBILE AUDIT FIXES                                        ║
   ║  Applied on top of all previous fixes. Safe to remove this block  ║
   ║  to rollback only v4.1 changes.                                   ║
   ║                                                                   ║
   ║  P0 · Burger menu broken on 11/12 pages (CSS+JS)                  ║
   ║  P1 · Small text (<12px) in mnav footer                           ║
   ║  P1 · Tap-targets <44px for mnav social icons, breadcrumbs, links ║
   ║  P2 · Duplicate id="mobile-nav" — mitigated via JS selector       ║
   ╚═══════════════════════════════════════════════════════════════════╝ */

@media (max-width: 1023px) {

  /* ─── FIX v4.1-A · mnav typography (P1) ───────────────────────── */
  .mnav__foot-label {
    font-size: 12px;          /* was 10px — below minimum */
    letter-spacing: 0.16em;
  }
  .mnav__brand-sub {
    font-size: 12px;          /* was 11px */
  }
  .mnav__cta {
    font-size: 14px;          /* was 12px — too small for a button */
    min-height: 52px;         /* consistent with other CTAs */
    letter-spacing: 0.12em;
  }

  /* ─── FIX v4.1-B · mnav social icons tap-target (P1) ──────────── */
  .mnav__soc,
  .mnav__msg {
    min-width: 44px;
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }
  .mnav__msg-row {
    gap: 12px;
  }

  /* ─── FIX v4.1-C · breadcrumbs tap-target (P1) ────────────────── */
  .breadcrumbs__link,
  .breadcrumbs__item {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    padding: 10px 0;          /* pads inside the 44px box */
  }
  .breadcrumbs__item:not(:last-child) {
    padding-right: 4px;
  }

  /* ─── FIX v4.1-D · contact-block value tap-target (P1) ────────── */
  .contact-block__value {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    padding: 6px 0;
  }

  /* ─── FIX v4.1-E · burger aria-expanded feedback (P1) ─────────── */
  /* When burger has aria-expanded=true, the mnav MUST be visible.
     Belt-and-suspenders against any residual hide rule. */
  .rb-page .mnav.is-open,
  body .mnav.is-open {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
  }

  /* ─── FIX v4.1-F · ornament overflow safety (P2) ──────────────── */
  /* .mnav__bg-ornament is positioned right:-120px bottom:-80px
     with a 400x400 SVG. On iOS Safari, overflow-x:clip + fixed
     positioning can occasionally leak. Cap its container. */
  .mnav__backdrop {
    overflow: hidden;
  }

  /* ─── FIX v4.1-G · body scroll-lock on iOS (P1) ───────────────── */
  /* When mnav is open, iOS Safari can still scroll the body if
     overscroll-behavior isn't on html too. */
  body.mnav-open {
    overflow: hidden;
    touch-action: none;
  }
  body.mnav-open .mnav {
    touch-action: auto;       /* re-enable touch inside mnav */
  }
}

/* ─── FIX v4.1-H · respect reduced-motion for mnav ornament ─────── */
@media (prefers-reduced-motion: reduce) {
  .mnav__bg-image,
  .mnav__bg-ornament {
    transition: none !important;
    transform: none !important;
  }
}



/* ===== следующий style-блок ===== */


/* ─── RB-FIX: программа лояльности — выравнивание колонок ─── */
.tiers-grid { align-items: stretch !important; }
.tiers-grid .tier-card {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
}
.tiers-grid .tier-card__benefits { flex: 1 1 auto !important; }
.tiers-grid .tier-card__cta { margin-top: auto !important; }

/* ─── RB-FIX: cookie-уведомление ─── */
.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:9999;
  display:flex;gap:20px;align-items:center;justify-content:center;flex-wrap:wrap;
  padding:18px 24px;background:rgba(26,26,26,.96);color:#FBFAF7;
  font-family:var(--font-sans,inherit);font-size:14px;line-height:1.5;
  box-shadow:0 -8px 30px rgba(0,0,0,.25);transform:translateY(120%);
  transition:transform .45s cubic-bezier(.16,1,.3,1);}
.cookie-banner.is-visible{transform:translateY(0);}
.cookie-banner__text{max-width:640px;}
.cookie-banner__text a{color:var(--c-accent,#D6C53C);text-decoration:underline;}
.cookie-banner__actions{display:flex;gap:12px;flex-shrink:0;}
.cookie-banner__btn{cursor:pointer;border:1px solid rgba(251,250,247,.4);
  background:transparent;color:#FBFAF7;padding:10px 22px;border-radius:2px;
  font-size:13px;letter-spacing:.03em;transition:background .2s,color .2s;}
.cookie-banner__btn:hover{background:rgba(251,250,247,.12);}
.cookie-banner__btn--accept{background:var(--c-accent,#D6C53C);color:#1A1A1A;border-color:transparent;font-weight:600;}
.cookie-banner__btn--accept:hover{filter:brightness(.94);}
@media(max-width:640px){.cookie-banner{flex-direction:column;text-align:center;gap:14px;padding:18px;}}


/* ─────────────────────────────────────────────────────────────
   (1, 2) ХЕДЕР: стабильная белая подложка на всех страницах,
   нет прозрачности при наведении/обновлении, текст контрастный.
   ───────────────────────────────────────────────────────────── */
.header,
.header.is-scrolled,
body:has(.hero) .header,
body:has(.hero) .header:not(.is-scrolled) {
  background: rgba(250, 247, 242, 0.97) !important;
  backdrop-filter: saturate(1.4) blur(20px) !important;
  -webkit-backdrop-filter: saturate(1.4) blur(20px) !important;
  border-bottom: 1px solid rgba(26, 26, 26, 0.08) !important;
  box-shadow: 0 1px 24px -12px rgba(26, 26, 26, 0.10) !important;
}
/* Тёмный текст в хедере всегда (даже над hero-фоном) */
body:has(.hero) .header:not(.is-scrolled) .logo,
body:has(.hero) .header:not(.is-scrolled) .logo .logo__mark,
body:has(.hero) .header:not(.is-scrolled) .logo__name,
body:has(.hero) .header:not(.is-scrolled) .logo__sub,
body:has(.hero) .header:not(.is-scrolled) .nav__link,
body:has(.hero) .header:not(.is-scrolled) .header__phone,
body:has(.hero) .header:not(.is-scrolled) .header__soc {
  color: #1a1a1a !important;
  text-shadow: none !important;
}
body:has(.hero) .header:not(.is-scrolled) .logo .logo__mark {
  filter: none !important;
}
body:has(.hero) .header:not(.is-scrolled) .logo__sub {
  color: rgba(26, 26, 26, 0.65) !important;
  text-shadow: none !important;
}
body:has(.hero) .header:not(.is-scrolled) .nav__link::after {
  background: #1a1a1a !important;
}
body:has(.hero) .header:not(.is-scrolled) .header__soc:hover {
  background: rgba(26, 26, 26, 0.06) !important;
}
body:has(.hero) .header:not(.is-scrolled) .header__phone:hover {
  color: rgba(26, 26, 26, 0.65) !important;
}

/* ─────────────────────────────────────────────────────────────
   (3, 5) ВЫРАВНИВАНИЕ КНОПОК «Все услуги и цены», «Смотреть всё»
   и подобных в section-header — фиксируем низ + перенос.
   ───────────────────────────────────────────────────────────── */
.section-header {
  align-items: flex-end !important;
}
.section-header .link-cta {
  align-self: flex-end !important;
  white-space: nowrap;
  flex-shrink: 0;
  padding-bottom: 4px;
}
@media (max-width: 760px) {
  .section-header { align-items: flex-start !important; }
  .section-header .link-cta { align-self: flex-start !important; padding-bottom: 0; }
}

/* ─────────────────────────────────────────────────────────────
   (NEW) CTA-БЛОК ПОД СЕКЦИЯМИ — «Все услуги и цены», «Смотреть всё», 
   «Все адреса» и т.п. вынесены из шапки секций и оформлены отдельным
   блоком под списком карточек. Выравнивание справа, акцентная подчёркивающая
   линия для визуальной связи с блоком сверху.
   ───────────────────────────────────────────────────────────── */
.section-cta {
  display: flex;
  justify-content: flex-end;
  margin-top: clamp(28px, 3vw, 48px);
  padding-top: clamp(16px, 2vw, 24px);
  border-top: 1px solid rgba(26, 26, 26, 0.08);
}
.section-cta .link-cta {
  white-space: nowrap;
}
@media (max-width: 760px) {
  .section-cta {
    justify-content: flex-start;
    margin-top: 24px;
    padding-top: 16px;
  }
}

/* ─────────────────────────────────────────────────────────────
   (5) НА ГЛАВНОЙ показываем только 3 акции.
   Полный список акций уже есть на отдельной странице /akcii.
   ───────────────────────────────────────────────────────────── */
[data-rb-page="home"] #promos .promo-grid > .promo-card:nth-of-type(n+4) {
  display: none !important;
}

/* ─────────────────────────────────────────────────────────────
   (6) ГЛАВНАЯ компактнее: уменьшаем вертикальные отступы секций
   ровно в ~2 раза, кроме блока «Выгодные предложения».
   ───────────────────────────────────────────────────────────── */
[data-rb-page="home"] .section:not(#promos) {
  padding-top: clamp(40px, 6vw, 80px) !important;
  padding-bottom: clamp(40px, 6vw, 80px) !important;
}
[data-rb-page="home"] .section--lg:not(#promos) {
  padding-top: clamp(56px, 8vw, 100px) !important;
  padding-bottom: clamp(56px, 8vw, 100px) !important;
}
/* hero оставляем как есть (он не использует --sp-section) */

/* ─────────────────────────────────────────────────────────────
   (7) «ПРЕИМУЩЕСТВА» — новый формат:
   слева текст / справа фото; чередующиеся стороны;
   плавное появление по очереди при прокрутке.
   ───────────────────────────────────────────────────────────── */
/* ─────────────────────────────────────────────────────────────
   (7, RB-USER-FIX v36) ПРЕИМУЩЕСТВА — стиль quantum-clinic «О клинике»:
   • бежевый фон у текстовой половины
   • орнамент сверху по центру с линиями по бокам
   • заголовок и текст прижаты к низу блока
   • фото на всю свою половину, без зазора
   • анимация: плавный fade-up для текста, fade + лёгкий зум для фото
   ───────────────────────────────────────────────────────────── */
@media (min-width: 800px) {
  #about .about-grid {
    display: flex !important;
    flex-direction: column;
    gap: clamp(56px, 7vw, 112px);
  }
  #about .about-item {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    grid-template-rows: 1fr auto auto;
    gap: 0;
    min-height: clamp(440px, 60vh, 640px);
    max-width: none;
    margin-top: 0;
    background: #f5efe6;
    border-radius: 8px;
    overflow: hidden;
    position: relative;
  }
  /* === Размещение элементов в гриде ===
     Нечётные блоки (--1, --3): фото слева, текст справа
     Чётные блоки (--2, --4): фото справа, текст слева */
  #about .about-item__media {
    grid-row: 1 / -1;            /* фото на всю высоту */
    grid-column: 1;
    margin: 0;
    border-radius: 0;
    aspect-ratio: auto;
    overflow: hidden;
  }
  #about .about-item:nth-child(even) .about-item__media {
    grid-column: 2;
  }

  #about .about-item__title {
    grid-row: 2;
    grid-column: 2;              /* заголовок в правой колонке */
    align-self: end;
    margin: 0;
    padding: 0 clamp(40px, 5vw, 72px) 8px;
  }
  #about .about-item:nth-child(even) .about-item__title {
    grid-column: 1;              /* для чётных в левой */
  }

  #about .about-item__text {
    grid-row: 3;
    grid-column: 2;
    align-self: end;
    padding: 0 clamp(40px, 5vw, 72px) clamp(48px, 6vw, 80px);
  }
  #about .about-item:nth-child(even) .about-item__text {
    grid-column: 1;
  }

  /* Орнамент с горизонтальными линиями по бокам — в верхней части
     текстовой колонки. Реализован через ::before:
     слой 1 = SVG-цветок жизни в центре,
     слой 2 = две линии по бокам (через стороннюю CSS-композицию). */
  #about .about-item::before {
    content: '';
    grid-row: 1;
    grid-column: 2;
    align-self: start;
    justify-self: stretch;
    height: 100px;
    margin: clamp(48px, 6vw, 96px) clamp(20px, 2vw, 32px) 0;
    background-image:
      url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 320"><g transform="translate(160 160)" fill="none" stroke="%23a08e72" stroke-width="1.5" vector-effect="non-scaling-stroke"><line x1="22.00" y1="0.00" x2="86.00" y2="0.00"/><line x1="20.33" y1="8.42" x2="51.74" y2="21.43"/><line x1="15.56" y1="15.56" x2="60.81" y2="60.81"/><line x1="8.42" y1="20.33" x2="21.43" y2="51.74"/><line x1="0.00" y1="22.00" x2="0.00" y2="86.00"/><line x1="-8.42" y1="20.33" x2="-21.43" y2="51.74"/><line x1="-15.56" y1="15.56" x2="-60.81" y2="60.81"/><line x1="-20.33" y1="8.42" x2="-51.74" y2="21.43"/><line x1="-22.00" y1="0.00" x2="-86.00" y2="0.00"/><line x1="-20.33" y1="-8.42" x2="-51.74" y2="-21.43"/><line x1="-15.56" y1="-15.56" x2="-60.81" y2="-60.81"/><line x1="-8.42" y1="-20.33" x2="-21.43" y2="-51.74"/><line x1="-0.00" y1="-22.00" x2="-0.00" y2="-86.00"/><line x1="8.42" y1="-20.33" x2="21.43" y2="-51.74"/><line x1="15.56" y1="-15.56" x2="60.81" y2="-60.81"/><line x1="20.33" y1="-8.42" x2="51.74" y2="-21.43"/><circle r="34"/><circle r="94"/><circle r="2.4" fill="%23a08e72" stroke="none"/></g></svg>'),
      linear-gradient(to right, rgba(160,142,114,0.35), rgba(160,142,114,0.35));
    background-repeat: no-repeat, no-repeat;
    background-position: center, left center;
    background-size: 88px 88px, 100% 1px;
  }
  #about .about-item:nth-child(even)::before {
    grid-column: 1;
  }

  /* Фото — заполняет ячейку */
  #about .about-item__media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 1.6s cubic-bezier(.2,.7,.2,1);
  }
  #about .about-item:hover .about-item__media img {
    transform: scale(1.04);
  }
  #about .about-item__title {
    margin-top: 0;
  }

  /* === АНИМАЦИИ (как на quantum-clinic) ===
     • заголовок поднимается снизу с фейдом
     • описание следом с задержкой
     • фото медленно проявляется с лёгким зумом из 1.06 → 1.0
     • орнамент тихо появляется в начале */
  .js #about .about-item.reveal {
    opacity: 1;
    transform: none;
    transition: none;
    transition-delay: 0ms !important;
  }
  .js #about .about-item.reveal::before {
    opacity: 0;
    transition: opacity 1.2s cubic-bezier(.2,.7,.2,1) 0.05s;
  }
  .js #about .about-item.reveal .about-item__title {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 1s cubic-bezier(.2,.7,.2,1) 0.2s,
                transform 1s cubic-bezier(.2,.7,.2,1) 0.2s;
  }
  .js #about .about-item.reveal .about-item__text {
    opacity: 0;
    transform: translateY(40px);
    transition: opacity 1s cubic-bezier(.2,.7,.2,1) 0.35s,
                transform 1s cubic-bezier(.2,.7,.2,1) 0.35s;
  }
  .js #about .about-item.reveal .about-item__media img {
    opacity: 0;
    transform: scale(1.06);
    transition: opacity 1.4s cubic-bezier(.2,.7,.2,1),
                transform 1.8s cubic-bezier(.2,.7,.2,1);
  }
  .js #about .about-item.reveal.is-vis::before { opacity: 1; }
  .js #about .about-item.reveal.is-vis .about-item__title,
  .js #about .about-item.reveal.is-vis .about-item__text {
    opacity: 1;
    transform: translateY(0);
  }
  .js #about .about-item.reveal.is-vis .about-item__media img {
    opacity: 1;
    transform: scale(1);
  }
}

/* На мобильных оставляем вертикальный стек, но фото/текст просто
   друг под другом — это уже текущее поведение, ничего ломать не нужно */

/* RB-USER-FIX: убираем крупные заголовки секций (дублируют надзаголовок),
   оставляем только маленький eyebrow. Hero и попапы не затрагиваются. */
/* RB-USER-FIX: анимация появления шапки секции «Наши высокие стандарты» при скролле */
@media (min-width: 768px) and (prefers-reduced-motion: no-preference) {
  .js #about .about-intro.reveal { opacity: 1; transform: none; transition: none; }
  .js #about .about-intro.reveal .about-circle,
  .js #about .about-intro.reveal .t-eyebrow,
  .js #about .about-intro.reveal .about-title {
    opacity: 0;
    transform: translateY(36px);
    transition: opacity 1s cubic-bezier(.2, .7, .2, 1),
                transform 1s cubic-bezier(.2, .7, .2, 1);
  }
  .js #about .about-intro.reveal .about-circle { transition-delay: .05s; }
  .js #about .about-intro.reveal .t-eyebrow    { transition-delay: .18s; }
  .js #about .about-intro.reveal .about-title  { transition-delay: .32s; }
  .js #about .about-intro.reveal.is-vis .about-circle,
  .js #about .about-intro.reveal.is-vis .t-eyebrow,
  .js #about .about-intro.reveal.is-vis .about-title {
    opacity: 1;
    transform: translateY(0);
  }
}

.section-header .t-h1,
.section-header__lead .t-h1,
.section-header__title {
  display: none !important;
}

/* RB-USER-FIX: плавающий виджет связи (телефон / WhatsApp / Telegram) */
.contact-fab {
  position: fixed;
  right: 24px;
  bottom: 28px;
  z-index: 900;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
  transition: opacity .25s ease;
}
.contact-fab__menu {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 14px;
}
/* RB-USER-FIX: виджет связи всегда раскрыт — значки видны сразу, тоггл убран */
.contact-fab__item {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #fff;
  text-decoration: none;
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.18);
  transition: transform .25s cubic-bezier(.22,.61,.36,1), box-shadow .25s ease;
}
.contact-fab__item svg { width: 26px; height: 26px; display: block; }
.contact-fab__item--phone { background: #1a1a1a; }
.contact-fab__item--wa    { background: #25D366; }
.contact-fab__item--tg    { background: #29A9EB; }
.contact-fab__item:hover { transform: translateY(-2px) scale(1.07); box-shadow: 0 12px 28px rgba(0,0,0,0.26); }

/* тоггл-кнопка больше не нужна — виджет постоянно раскрыт */
.contact-fab__toggle { display: none !important; }

body.mnav-open .contact-fab { opacity: 0; pointer-events: none; }

@media (max-width: 1023px) {
  .contact-fab { right: 16px; bottom: 88px; }
}

/* RB-USER-FIX: «Наши направления» — список вместо карточек с фото */
.dir-list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid rgba(26, 26, 26, 0.12);
}
.dir-list li { margin: 0; }
.dir-list__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 22px 6px;
  border-bottom: 1px solid rgba(26, 26, 26, 0.12);
  text-decoration: none;
  color: var(--c-text);
  transition: color .25s var(--ease, ease), padding-left .25s var(--ease, ease);
}
.dir-list__title {
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: clamp(20px, 3.4vw, 30px);
  line-height: 1.1;
  letter-spacing: -0.01em;
}
.dir-list__chev {
  width: 24px;
  height: 24px;
  flex-shrink: 0;
  color: var(--c-text-muted);
  transition: transform .25s var(--ease, ease), color .25s var(--ease, ease);
}
.dir-list__row:hover {
  color: var(--c-accent-deep, #9F8B1C);
  padding-left: 14px;
}
.dir-list__row:hover .dir-list__chev {
  transform: translateX(5px);
  color: var(--c-accent-deep, #9F8B1C);
}

/* RB-USER-FIX: адаптив размеров шрифтов под мобильные (весь сайт) */
@media (max-width: 600px) {
  .about-title          { font-size: clamp(30px, 8.4vw, 44px) !important; line-height: 1.05 !important; }
  .form-block__title    { font-size: clamp(28px, 8vw, 40px) !important;  line-height: 1.08 !important; }
  .hero__title          { font-size: clamp(32px, 9.5vw, 50px) !important; line-height: 1.04 !important; }
  .page-hero__title     { font-size: clamp(26px, 7.8vw, 40px) !important; line-height: 1.06 !important; }
  .section-header__title { font-size: clamp(26px, 7.5vw, 38px) !important; line-height: 1.08 !important; }
  .section-header__title--lg { font-size: clamp(28px, 8vw, 42px) !important; }
  .t-h1                 { font-size: clamp(28px, 7.8vw, 40px) !important; line-height: 1.06 !important; }
  .t-h2                 { font-size: clamp(24px, 6.6vw, 34px) !important; line-height: 1.1 !important; }
  .t-display            { font-size: clamp(34px, 11vw, 56px) !important; line-height: 1.02 !important; }
  .hero__sub,
  .t-lead,
  .page-hero__lead      { font-size: clamp(14px, 4vw, 16px) !important; line-height: 1.55 !important; }
  .about-item__title    { font-size: clamp(19px, 5.2vw, 24px) !important; }
  .location__name       { font-size: clamp(20px, 5.4vw, 26px) !important; }
  .promo-card__title    { font-size: clamp(18px, 5vw, 22px) !important; line-height: 1.15 !important; }
  .promo-card--featured .promo-card__title { font-size: clamp(22px, 6.4vw, 30px) !important; }
  .stat__num            { font-size: clamp(38px, 13vw, 60px) !important; }
  .dir-list__title      { font-size: clamp(18px, 5.2vw, 23px) !important; }
  .mnav__link           { font-size: clamp(17px, 4.6vw, 19px) !important; }
}

/* RB-USER-FIX: компактный бургер-подвал на телефонах — минимальные размеры (под пункты меню) */
@media (max-width: 600px) {
  .mnav__head  { padding: 10px var(--pad) !important; min-height: 52px !important; }
  .mnav__close { width: 40px !important; height: 40px !important; }
  .mnav__close-line { width: 18px !important; }
  .mnav__body  { padding: 8px 20px 20px !important; }
  .mnav__link  { min-height: 50px !important; padding: 13px 0 !important; }
  .mnav__num   { font-size: 10px !important; }

  .mnav__sublist { padding-bottom: 10px !important; padding-left: 34px !important; }
  .mnav__sublist a, .mnav__sublink { font-size: 14px !important; padding: 10px 0 !important; min-height: 40px !important; }
  .mnav__leaf  { font-size: 13px !important; }

  .mnav__foot       { padding: 18px 20px calc(18px + env(safe-area-inset-bottom)) !important; }
  .mnav__foot-inner { gap: 18px !important; }
  .mnav__foot-label { font-size: 9px !important; letter-spacing: 0.18em !important; margin-bottom: 7px !important; }
  .mnav__phone      { font-size: 20px !important; }
  .mnav__cta        { height: 46px !important; min-height: 46px !important; font-size: 11px !important; padding: 0 18px !important; letter-spacing: 0.1em !important; }
  .mnav__cta svg    { width: 12px !important; height: 12px !important; }

  .mnav__msg-row { gap: 8px !important; }
  .mnav__msg     { width: 38px !important; height: 38px !important; min-width: 38px !important; min-height: 38px !important; }

  .mnav__branch-list    { gap: 7px !important; }
  .mnav__branch-list li { padding: 3px 0 !important; }
  .mnav__branch-name    { font-size: 13px !important; }
  .mnav__branch-metro   { font-size: 11px !important; }

  .mnav__socials { gap: 18px !important; padding-top: 12px !important; }
  .mnav__soc     { font-size: 10px !important; letter-spacing: 0.16em !important; min-width: 0 !important; min-height: 36px !important; }
  .mnav__soc-ic  { width: 15px !important; height: 15px !important; }
}

/* RB-USER-FIX: блоки преимуществ (about) на телефонах ~в 3 раза компактнее */
@media (max-width: 799px) {
  #about .about-item__media {
    aspect-ratio: auto !important;
    height: clamp(130px, 38vw, 210px) !important;
  }
  #about .about-item { gap: 10px !important; }
  #about .about-grid { gap: clamp(26px, 6vw, 44px) !important; }
  #about .about-item__title { font-size: clamp(18px, 5vw, 22px) !important; }
}

/* RB-USER-FIX: блоки преимуществ (about) на десктопе — рамки фото меньше */
@media (min-width: 800px) {
  #about .about-item {
    min-height: clamp(240px, 30vh, 320px) !important;
    grid-template-columns: 0.8fr 1.2fr !important;
  }
  #about .about-item__media {
    max-height: 320px !important;
    border-radius: 8px !important;
  }
  #about .about-grid { gap: clamp(36px, 4vw, 64px) !important; }
}

/* RB-USER-FIX v2: секция «Наши высокие стандарты» —
   возвращаем карточкам стандартный, не «огромный» размер (как на большинстве
   сайтов): фиксированная высота карточки + фото cover в своей половине. */
@media (min-width: 800px) {
  /* компактная стандартная высота карточки вместо clamp(440…640px) */
  #about .about-item {
    min-height: clamp(300px, 32vh, 360px) !important;
  }
  /* фото снова заполняет свою половину карточки и аккуратно кадрируется */
  #about .about-item__media {
    align-self: stretch !important;
    aspect-ratio: auto !important;
    height: 100% !important;
    max-height: none !important;
  }
  #about .about-item__media img {
    height: 100% !important;
    object-fit: cover !important;
  }
}
@media (max-width: 799px) {
  /* на мобильном — аккуратная карточка 4:5 вместо узкой полосы */
  #about .about-item__media {
    aspect-ratio: 4 / 5 !important;
    height: auto !important;
    max-height: 360px !important;
  }
  #about .about-item__media img {
    height: 100% !important;
    object-fit: cover !important;
  }
}

/* RB-USER-FIX v2: каскадное «выползание» карточек при скролле.
   Сама карточка едет снизу с фейдом; каждый следующий пункт — с задержкой,
   поэтому они появляются друг за другом. Класс .is-vis вешает уже
   существующий IntersectionObserver. */
@media (prefers-reduced-motion: no-preference) {
  .js #about .about-item.reveal {
    opacity: 0 !important;
    transform: translateY(56px) !important;
    transition: opacity .85s cubic-bezier(.2,.7,.2,1),
                transform .85s cubic-bezier(.2,.7,.2,1) !important;
    will-change: opacity, transform;
  }
  .js #about .about-item.reveal.is-vis {
    opacity: 1 !important;
    transform: translateY(0) !important;
  }
  /* каскад: каждый пункт за предыдущим */
  .js #about .about-item.reveal:nth-child(1) { transition-delay: 0ms   !important; }
  .js #about .about-item.reveal:nth-child(2) { transition-delay: .12s  !important; }
  .js #about .about-item.reveal:nth-child(3) { transition-delay: .24s  !important; }
  .js #about .about-item.reveal:nth-child(4) { transition-delay: .36s  !important; }
}


/* ===== RB-NODE: компактное мобильное меню (burger) ===== */
@media (max-width: 860px) {
  .mnav__body { padding: 6px 20px 16px !important; }
  .mnav__link { font-size: 15px !important; padding: 9px 0 !important; min-height: 40px !important; }
  .mnav__num  { font-size: 9px !important; }
  .mnav__item { --mnav-row: 40px; }
  .mnav__sublist a, .mnav__sublink { font-size: 13px !important; padding: 7px 0 !important; min-height: 32px !important; }
  .mnav__leaf { font-size: 12px !important; }
}

/* ===== RB-NODE: мобильная адаптация hero + меню «Услуги» списком ===== */
@media (max-width: 860px) {
  /* (2) Hero — прямоугольная рамка с прямыми углами (как в примере) */
  .hero {
    min-height: 64vh !important;
    margin: calc(var(--header-h) + 10px) 10px 10px !important;
    padding: 36px 0 40px !important;
    border-radius: 0 !important;
    overflow: hidden !important;
  }
  .hero__grid { min-height: auto !important; }

  /* (4) Заголовок и подзаголовок — меньше и без переполнения */
  .hero__title {
    font-size: clamp(24px, 7vw, 34px) !important;
    line-height: 1.1 !important;
    margin-bottom: 18px !important;
    overflow-wrap: break-word !important;
    hyphens: auto !important;
  }
  .hero__sub {
    font-size: 14px !important;
    line-height: 1.5 !important;
    margin-bottom: 26px !important;
  }
  .hero__content { padding: 0 16px !important; }

  /* (3) Кнопка «Записаться» — адаптивная, без фикс. min-width */
  .hero__actions { gap: 14px !important; }
  .hero__cta {
    min-width: 0 !important;
    width: min(100%, 300px) !important;
    padding: 6px 6px 6px 24px !important;
    gap: 12px !important;
    font-size: 11px !important;
    letter-spacing: 0.14em !important;
  }
  .hero__cta .arrow { width: 44px !important; height: 44px !important; font-size: 16px !important; }

  /* (5) Подменю «Услуги» — список с разделителями и шевроном › */
  .mnav__sublist { padding-left: 0 !important; }
  .mnav__sublist li { border-top: 1px solid rgba(0,0,0,0.08); }
  .mnav__sublist li:first-child { border-top: none; }
  .mnav__sublist li a {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 13px 2px !important;
    min-height: 46px !important;
    font-size: 15px !important;
  }
  .mnav__sublist li a:not(.mnav__sublink--all)::after {
    content: "›";
    font-size: 22px;
    line-height: 1;
    color: rgba(0,0,0,0.4);
    margin-left: 12px;
  }
  .mnav__sublink--all { color: var(--c-accent) !important; font-weight: 500 !important; }
}

/* ===== RB-NODE: мобильные секции home (преимущества/локации/блог) ===== */
@media (max-width: 768px) {
  /* (6) Преимущества — горизонтальный скролл карточек */
  .about-grid {
    display: flex !important;
    grid-template-columns: none !important;
    gap: 14px !important;
    overflow-x: auto !important;
    scroll-snap-type: x mandatory !important;
    -webkit-overflow-scrolling: touch;
    padding: 4px 16px 12px !important;
    margin: 0 -16px !important;
    scrollbar-width: none;
  }
  .about-grid::-webkit-scrollbar { display: none; }
  .about-item {
    flex: 0 0 80% !important;
    width: 80% !important;
    max-width: 320px !important;
    margin: 0 !important;
    scroll-snap-align: start !important;
  }
  .about-item__media { aspect-ratio: 4/3 !important; border-radius: 16px !important; overflow: hidden !important; }
  .about-item__media img { width: 100% !important; height: 100% !important; object-fit: cover !important; }

  /* (7) Локации — одной колонкой, крупные карточки */
  .locations-grid {
    display: flex !important;
    grid-template-columns: none !important;
    flex-direction: column !important;
    gap: 22px !important;
  }
  .location { width: 100% !important; }
  .location__media, .location__media img { border-radius: 18px !important; }
  .location__media { aspect-ratio: 4/3 !important; overflow: hidden !important; }
  .location__media img { width: 100% !important; height: 100% !important; object-fit: cover !important; }

  /* (8) Блог — одной колонкой, крупные карточки */
  .blog-grid {
    display: flex !important;
    grid-template-columns: none !important;
    flex-direction: column !important;
    gap: 22px !important;
  }
  .blog-card { width: 100% !important; }
  .blog-card__media, .blog-card__media img { border-radius: 18px !important; }
  .blog-card__media { aspect-ratio: 4/3 !important; overflow: hidden !important; }
  .blog-card__media img { width: 100% !important; height: 100% !important; object-fit: cover !important; }
}

/* ===== RB-NODE: hero CTA центр + размер, заголовок (до 1024px) ===== */
@media (max-width: 1024px) {
  .hero { min-height: 62vh !important; }
  .hero__content { padding: 0 18px !important; max-width: 760px !important; }
  .hero__title {
    font-size: clamp(24px, 4.8vw, 40px) !important;
    line-height: 1.08 !important;
    overflow-wrap: break-word !important;
    margin-bottom: 18px !important;
  }
  .hero__sub { font-size: clamp(13px, 1.9vw, 16px) !important; margin-bottom: 26px !important; }
  .hero__actions { justify-content: center !important; width: 100% !important; }
  .hero__cta {
    margin: 0 auto !important;
    min-width: 0 !important;
    width: auto !important;
    max-width: 300px !important;
    padding: 6px 6px 6px 26px !important;
    gap: 14px !important;
    font-size: 11px !important;
    letter-spacing: 0.16em !important;
  }
  .hero__cta .arrow { width: 44px !important; height: 44px !important; font-size: 16px !important; }
}

/* ===== RB-NODE: убрать «Филиалы» из бургер-меню ===== */
.mnav__branches { display: none !important; }

/* ===== RB-NODE: преимущества — иконки вместо фото, ровная сетка ===== */
.about-item__media { display: none !important; }
#about .about-grid, .about-grid {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  gap: 20px !important;
  overflow: visible !important;
  margin: 0 !important;
  padding: 0 !important;
}
.about-item, .about-item--1, .about-item--2, .about-item--3, .about-item--4 {
  grid-column: auto !important;
  margin-top: 0 !important;
  width: auto !important;
  max-width: none !important;
  flex: none !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 14px !important;
  padding: 28px 26px !important;
  background: rgba(255,255,255,0.55) !important;
  border: 1px solid rgba(0,0,0,0.08) !important;
  border-radius: 16px !important;
}
.about-item__icon {
  width: 54px;
  height: 54px;
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--c-accent, #b9a36b);
  border: 1px solid rgba(0,0,0,0.14);
  border-radius: 50%;
}
.about-item__icon svg { width: 26px; height: 26px; }
@media (max-width: 768px) {
  #about .about-grid, .about-grid { grid-template-columns: 1fr !important; gap: 14px !important; }
  .about-item, .about-item--1, .about-item--2, .about-item--3, .about-item--4 { padding: 22px 20px !important; scroll-snap-align: none !important; }
}

/* ===== RB-NODE: преимущества — иконки в кругах (как на фото) ===== */
#about .about-grid.about-grid--stats {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 28px 24px !important;
  background: none !important;
  align-items: start !important;
}
.about-stat {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  text-align: center !important;
  gap: 16px !important;
  background: none !important;
  border: none !important;
  padding: 0 !important;
  margin: 0 !important;
}
.about-stat__circle {
  width: min(100%, 210px);
  aspect-ratio: 1 / 1;
  border-radius: 50%;
  border: 1px solid rgba(0,0,0,0.14);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--c-accent, #b9a36b);
}
.about-stat__circle svg { width: 46px; height: 46px; }
.about-stat__title { font-size: clamp(17px, 1.4vw, 20px); font-weight: 500; color: #1a1a1a; margin: 0; }
.about-stat__label { font-size: 14px; line-height: 1.45; color: #6b6b6b; margin: 0; max-width: 220px; }
@media (max-width: 860px) {
  #about .about-grid.about-grid--stats { grid-template-columns: repeat(2, 1fr) !important; gap: 26px 14px !important; }
  .about-stat__circle { width: min(100%, 150px); }
  .about-stat__circle svg { width: 38px; height: 38px; }
}

/* ===== RB-NODE: акции — 3 списком (фото слева, контент справа) ===== */
.promo-grid { display: flex !important; flex-direction: column !important; gap: 24px !important; }
.promo-grid > .promo-card:nth-child(n+4) { display: none !important; }
.promo-card, .promo-card.promo-card--featured {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}
.promo-card__media { border-radius: 16px !important; overflow: hidden !important; aspect-ratio: 4 / 3 !important; cursor: pointer; }
.promo-card__media img { width: 100% !important; height: 100% !important; object-fit: cover !important; }
@media (min-width: 861px) {
  .promo-card, .promo-card.promo-card--featured {
    display: grid !important;
    grid-template-columns: minmax(0, 360px) 1fr !important;
    gap: 40px !important;
    align-items: center !important;
  }
  .promo-card__media { grid-column: 1 !important; grid-row: 1 / 99 !important; align-self: stretch !important; aspect-ratio: auto !important; }
  .promo-card > *:not(.promo-card__media) { grid-column: 2 !important; }
  .promo-card__body { grid-column: 2 !important; display: flex !important; flex-direction: column !important; gap: 10px !important; }
}
@media (max-width: 860px) {
  .promo-card { width: 100% !important; }
}

/* ===== RB-NODE: убрать заголовок «Тихий ритм…» над преимуществами ===== */
#about .about-intro { display: none !important; }

/* ===== RB-NODE: премиальные круги преимуществ ===== */
.about-stat__circle {
  border: 1px solid rgba(185,163,107,0.45) !important;
  background: radial-gradient(circle at 50% 38%, rgba(185,163,107,0.08), rgba(255,255,255,0) 70%) !important;
  box-shadow: 0 18px 40px -24px rgba(120,100,60,0.45), inset 0 0 0 6px rgba(255,255,255,0.5) !important;
  color: #b9a36b !important;
  transition: transform .4s ease, box-shadow .4s ease;
}
.about-stat:hover .about-stat__circle {
  transform: translateY(-4px);
  box-shadow: 0 26px 50px -22px rgba(120,100,60,0.55), inset 0 0 0 6px rgba(255,255,255,0.5) !important;
}
.about-stat__circle svg { width: 44px !important; height: 44px !important; stroke-width: 1.1 !important; }
.about-stat__title { letter-spacing: -0.01em; }

/* ===== RB-NODE: акции — компактнее ===== */
.promo-grid { gap: 16px !important; }
.promo-card__title { font-size: clamp(18px, 1.5vw, 23px) !important; margin: 4px 0 6px !important; }
.promo-card__desc {
  font-size: 14px !important; line-height: 1.5 !important;
  display: -webkit-box !important; -webkit-line-clamp: 2 !important; -webkit-box-orient: vertical !important; overflow: hidden !important;
}
.promo-card__kicker, .promo-card__tag { font-size: 12px !important; margin: 0 !important; }
.promo-card__short { font-size: 14px !important; }
@media (min-width: 861px) {
  .promo-card, .promo-card.promo-card--featured {
    grid-template-columns: 240px 1fr !important;
    gap: 28px !important;
    align-items: center !important;
  }
  .promo-card__media {
    grid-row: 1 / 99 !important;
    align-self: center !important;
    height: 170px !important;
    aspect-ratio: auto !important;
  }
}
@media (max-width: 860px) {
  .promo-card__media { aspect-ratio: 16 / 10 !important; max-height: 220px !important; }
}

/* ===== RB-NODE: акции — фикс фантомной высоты (row-gap от grid-row span) ===== */
@media (min-width: 861px) {
  .promo-card, .promo-card.promo-card--featured { column-gap: 34px !important; row-gap: 0 !important; }
  .promo-card > .promo-card__tag { margin-top: 0 !important; }
  .promo-card > .promo-card__short { margin: 2px 0 8px !important; }
  .promo-card > .promo-card__btn { margin-top: 12px !important; }
}

/* ===== RB-NODE: подсветка целевой группы прайса при переходе по якорю ===== */
.pl-group { scroll-margin-top: 110px; transition: background .5s ease, box-shadow .5s ease; border-radius: 14px; }
.pl-group--target {
  background: rgba(185,163,107,0.10) !important;
  box-shadow: 0 0 0 2px rgba(185,163,107,0.45) !important;
}

/* ===== RB-NODE: акции — раскладка как в референсе (заголовок слева, карточки справа) ===== */
@media (min-width: 861px) {
  .section:has(.promo-grid) > .container {
    display: grid !important;
    grid-template-columns: 300px 1fr !important;
    gap: 36px 56px !important;
    align-items: start !important;
  }
  .section:has(.promo-grid) > .container > .section-header { position: sticky; top: 110px; }
  .section:has(.promo-grid) > .container > .section-cta { justify-content: flex-start !important; margin: 4px 0 0 !important; }
}
/* кнопка-пилюля «Записаться» */
.promo-card__btn.link-cta {
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  background: var(--c-accent, #b9a36b) !important;
  color: #fff !important;
  padding: 13px 30px !important;
  border-radius: 999px !important;
  font-size: 12px !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  border: none !important;
  width: fit-content !important;
  transition: filter .3s ease, transform .3s ease !important;
}
.promo-card__btn.link-cta:hover { filter: brightness(0.94); transform: translateY(-2px); }
.promo-card__btn .link-cta__arrow { display: none !important; }
/* разделители между карточками */
.promo-grid > .promo-card + .promo-card { border-top: 1px solid rgba(0,0,0,0.10) !important; padding-top: 26px !important; }

/* ===== RB-NODE: подсветка прайса — мягкая, без жёсткой рамки ===== */
.pl-group--target {
  box-shadow: none !important;
  background: linear-gradient(90deg, rgba(185,163,107,0.14), rgba(185,163,107,0.05)) !important;
  border-radius: 12px !important;
}

/* ===== RB-NODE: акции — точная раскладка по референсу ===== */
.promo-card__media { position: relative !important; border-radius: 18px !important; overflow: hidden !important; }
.promo-card__date {
  position: absolute; top: 16px; left: 16px; z-index: 2;
  background: #fff; color: #1a1a1a;
  font-size: 13px; letter-spacing: .03em;
  padding: 7px 15px; border-radius: 999px;
  box-shadow: 0 8px 20px -10px rgba(0,0,0,.4);
}
.promo-card__title { font-size: clamp(20px, 1.8vw, 28px) !important; margin: 0 0 16px !important; font-weight: 500 !important; }
.promo-card__list { list-style: none !important; margin: 0 0 22px !important; padding: 0 !important; display: flex; flex-direction: column; gap: 13px; }
.promo-card__list li { position: relative; padding-left: 26px; font-size: 16px; color: #2c2c2c; line-height: 1.45; }
.promo-card__list li::before { content: ""; position: absolute; left: 3px; top: .55em; width: 7px; height: 7px; border-radius: 50%; background: rgba(0,0,0,.28); }
.promo-card__btn {
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  background: #b09e84 !important; color: #fff !important; border: none !important; cursor: pointer;
  padding: 15px 40px !important; border-radius: 999px !important;
  font-size: 13px !important; letter-spacing: .14em !important; text-transform: uppercase !important;
  width: fit-content !important; transition: filter .3s ease, transform .3s ease !important;
}
.promo-card__btn:hover { filter: brightness(.95); transform: translateY(-2px); }
@media (min-width: 861px) {
  .promo-card, .promo-card.promo-card--featured {
    grid-template-columns: 400px 1fr !important;
    column-gap: 56px !important; row-gap: 0 !important;
    align-items: center !important;
  }
  .promo-card__media {
    grid-column: 1 !important; grid-row: 1 / 99 !important;
    align-self: start !important; height: auto !important; aspect-ratio: 1 / 1 !important;
  }
  .promo-card__body { grid-column: 2 !important; display: flex !important; flex-direction: column !important; }
}
@media (max-width: 860px) {
  .promo-card__media { aspect-ratio: 1 / 1 !important; max-height: none !important; }
}

/* ===== RB-NODE: акции — только 2 + «Смотреть все» кнопкой слева ===== */
.promo-grid > .promo-card:nth-child(n+3) { display: none !important; }
.section:has(.promo-grid) .section-cta { justify-content: flex-start !important; margin-top: 14px !important; }
.section:has(.promo-grid) .section-cta .link-cta {
  display: inline-flex !important; align-items: center !important; gap: 8px !important;
  border: 1px solid rgba(0,0,0,0.28) !important; border-radius: 999px !important;
  padding: 13px 30px !important; text-decoration: none !important;
  font-size: 13px !important; letter-spacing: .08em !important; text-transform: uppercase !important;
  color: #1a1a1a !important; background: transparent !important;
  transition: background .3s ease, color .3s ease, border-color .3s ease !important;
}
.section:has(.promo-grid) .section-cta .link-cta:hover { background: #b09e84 !important; border-color: #b09e84 !important; color: #fff !important; }
.section:has(.promo-grid) .section-cta .link-cta__arrow { display: inline !important; }

/* ===== RB-NODE: акции — фикс левой колонки (заголовок + кнопка под ним) ===== */
@media (min-width: 861px) {
  .section:has(.promo-grid) .section-header__lead { flex-direction: column !important; align-items: flex-start !important; gap: 14px !important; }
  .section:has(.promo-grid) .section-header h2 { width: 100% !important; }
  .section:has(.promo-grid) > .container { grid-template-rows: auto 1fr !important; }
  .section:has(.promo-grid) > .container > .section-header { grid-column: 1 !important; grid-row: 1 !important; }
  .section:has(.promo-grid) > .container > .section-cta   { grid-column: 1 !important; grid-row: 2 !important; align-self: start !important; }
  .section:has(.promo-grid) > .container > .promo-grid    { grid-column: 2 !important; grid-row: 1 / span 2 !important; }
}

/* ===== RB-NODE: акции — принудительно показать заголовок секции ===== */
.section:has(.promo-grid) .section-header h2,
.section:has(.promo-grid) .section-header .t-h1 { display: block !important; width: 100% !important; }

/* ===== RB-NODE: акции — больше места под текст, пункты в одну строку ===== */
@media (min-width: 861px) {
  .section:has(.promo-grid) > .container > .promo-card,
  .promo-card.promo-card--featured { grid-template-columns: 340px 1fr !important; column-gap: 48px !important; }
}
.promo-card__list li { font-size: 15px !important; white-space: normal; }

/* ===== RB-NODE: «Смотреть всё» в акциях — как «Помочь с выбором» (подчёркнутая ссылка) ===== */
.section:has(.promo-grid) .section-cta .link-cta {
  display: inline-block !important;
  border: none !important;
  border-bottom: 1px solid var(--c-text, #1a1a1a) !important;
  border-radius: 0 !important;
  background: transparent !important;
  padding: 0 0 3px !important;
  font-size: 14px !important;
  letter-spacing: normal !important;
  text-transform: none !important;
  color: var(--c-text, #1a1a1a) !important;
  transition: opacity .25s ease !important;
}
.section:has(.promo-grid) .section-cta .link-cta:hover { opacity: .6 !important; background: transparent !important; color: var(--c-text, #1a1a1a) !important; border-color: var(--c-text, #1a1a1a) !important; }
.section:has(.promo-grid) .section-cta .link-cta__arrow { display: none !important; }

/* ===== RB-NODE: убрать заголовок «Выгодные предложения» в акциях ===== */
.section:has(.promo-grid) .section-header h2,
.section:has(.promo-grid) .section-header .t-h1 { display: none !important; }

/* ===== RB-NODE: модалка записи — выбор филиала + фирменный жёлтый акцент ===== */
.field--select { position: relative; }
.field__select {
  width: 100%;
  -webkit-appearance: none; appearance: none;
  background: transparent;
  border: none; border-bottom: 1px solid rgba(0,0,0,0.22);
  border-radius: 0;
  padding: 10px 30px 12px 0;
  font: inherit; color: #1a1a1a; cursor: pointer;
}
.field__select:focus { outline: none; border-bottom-color: var(--c-accent, #d6c53c); }
.field__select:invalid { color: #9a9a9a; }
.field--select::after {
  content: ""; position: absolute; right: 6px; top: 42%;
  width: 9px; height: 9px;
  border-right: 1.6px solid #8a8a8a; border-bottom: 1.6px solid #8a8a8a;
  transform: translateY(-50%) rotate(45deg); pointer-events: none;
}
/* фирменный жёлтый акцент */
.popup__title { color: var(--c-accent, #d6c53c) !important; }
.popup__title em { color: var(--c-accent, #d6c53c) !important; font-style: normal !important; }
.form__subject { border-left: 3px solid var(--c-accent, #d6c53c) !important; }
.form__subject-label { color: var(--c-accent, #d6c53c) !important; }
.form--popup .form__legal a { color: var(--c-accent, #d6c53c) !important; }

/* ===== RB-NODE: страница клиники — адаптив ===== */
@media (max-width: 700px) {
  .branch-gallery { grid-template-columns: repeat(2, 1fr) !important; }
  .branch-gallery > div:first-child { grid-column: span 2 !important; grid-row: auto !important; aspect-ratio: 16/10 !important; }
}

/* ===== RB-NODE: значки преимуществ без окружности + возврат заголовков разделов ===== */
.about-stat__circle {
  border: none !important;
  background: none !important;
  box-shadow: none !important;
  width: auto !important;
  height: auto !important;
  aspect-ratio: auto !important;
}
.about-stat__circle svg { width: 50px !important; height: 50px !important; }
.about-stat:hover .about-stat__circle { transform: none !important; box-shadow: none !important; }

/* вернуть заголовки разделов (преимущества + акции) */
#about .about-intro { display: grid !important; }
.section:has(.promo-grid) .section-header h2,
.section:has(.promo-grid) .section-header .t-h1 { display: block !important; }

/* ===== RB-NODE: убрать нумерацию разделов в бургер-меню ===== */
.mnav__num { display: none !important; }

/* ===== RB-NODE: страница /aktsii/ — не применять «домашние» правки (показать все акции) ===== */
[data-rb-page="akcii"] .promo-grid > .promo-card,
[data-rb-page="akcii"] .promo-grid > .promo-card:nth-child(n+3) { display: grid !important; }
[data-rb-page="akcii"] .section:has(.promo-grid) > .container { display: block !important; }
[data-rb-page="akcii"] .section:has(.promo-grid) .section-header h2,
[data-rb-page="akcii"] .section:has(.promo-grid) .section-header .t-h1 { display: block !important; }
[data-rb-page="akcii"] .section:has(.promo-grid) .section-header__lead { flex-direction: column !important; align-items: flex-start !important; }
[data-rb-page="akcii"] .section:has(.promo-grid) .section-cta { justify-content: flex-start !important; }
@media (max-width: 860px) {
  [data-rb-page="akcii"] .promo-grid > .promo-card,
  [data-rb-page="akcii"] .promo-grid > .promo-card:nth-child(n+3) { display: flex !important; }
}

/* ===== RB-NODE: преимущества — только иконка + название (без описания) ===== */
.about-stat__label { display: none !important; }

/* ===== RB-NODE: карточки услуг — кнопки «Записаться» + «Подробнее» (по референсу) ===== */
.svc-card__media { aspect-ratio: 4 / 3 !important; }
.svc-card__actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 26px; }
.svc-card__btn {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 14px 30px; border-radius: 999px;
  font-size: 12px; letter-spacing: .12em; text-transform: uppercase;
  text-decoration: none; cursor: pointer; border: 1px solid transparent;
  transition: filter .3s ease, background .3s ease, color .3s ease, border-color .3s ease;
}
.svc-card__btn--book { background: #b09e84; color: #fff; }
.svc-card__btn--book:hover { filter: brightness(.94); transform: translateY(-1px); }
.svc-card__btn--more { background: transparent; border-color: rgba(0,0,0,.28); color: #1a1a1a; }
.svc-card__btn--more:hover { background: #1a1a1a; color: #fff; border-color: #1a1a1a; }

/* ===== RB-NODE: карточки услуг — уже, ~3 колонки (как на референсе) ===== */
@media (min-width: 861px) {
  .svc-card { flex: 0 0 clamp(300px, 30vw, 400px) !important; }
}

/* ===== RB-NODE: убрать заголовок «Тихий ритм…» над преимуществами (повторно) ===== */
#about .about-intro { display: none !important; }

/* ===== RB-NODE: зоны — аккуратный прайс-список вместо плиток ===== */
.zones-grid {
  display: grid !important;
  grid-template-columns: repeat(2, 1fr) !important;
  column-gap: 56px !important;
  row-gap: 0 !important;
}
.zone-card {
  border: none !important;
  border-bottom: 1px solid rgba(0,0,0,0.12) !important;
  border-radius: 0 !important;
  background: none !important;
  padding: 16px 2px !important;
  font-size: 16px !important;
}
.zone-card:hover { background: rgba(0,0,0,0.025) !important; }
.zone-card span:last-child { color: #8a8a8a !important; }
@media (max-width: 700px) {
  .zones-grid { grid-template-columns: 1fr !important; column-gap: 0 !important; }
}

/* ===== RB-NODE: премиальный прайс (как на референсе) ===== */
.pl-group {
  border: 1px solid rgba(0,0,0,0.12) !important;
  border-radius: 20px !important;
  padding: 6px 34px 18px !important;
  margin-bottom: 22px !important;
  background: rgba(255,255,255,0.35) !important;
  scroll-margin-top: 110px;
}
.pl-group__title {
  display: flex !important;
  align-items: center !important;
  gap: 16px !important;
  font-family: var(--font-display, 'Playfair Display', serif) !important;
  font-weight: 500 !important;
  font-size: clamp(22px, 2.2vw, 30px) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.02em !important;
  padding: 26px 0 6px !important;
  margin: 0 !important;
}
.pl-group__count {
  font-family: var(--font-sans, sans-serif) !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: #a8966c !important;
}
.pl-group__toggle {
  margin-left: auto !important;
  width: 46px; height: 46px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--c-accent, #b9a36b);
  color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  pointer-events: none;
  transition: transform .35s ease;
}
.pl-group.is-collapsed .pl-group__toggle { transform: rotate(180deg); }
.pl-group.is-collapsed .pl-list { display: none !important; }
.pl-list { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.pl-row {
  display: flex !important;
  align-items: center !important;
  gap: 18px !important;
  padding: 17px 0 !important;
  border-top: 1px solid rgba(0,0,0,0.08) !important;
}
.pl-row__name { flex: 1 1 auto !important; font-size: 16px !important; color: #1a1a1a !important; }
.pl-row__dots { display: none !important; }
.pl-row__price {
  white-space: nowrap !important;
  color: var(--c-accent, #b9a36b) !important;
  font-variant-numeric: tabular-nums;
  font-size: 16px !important;
}

/* ===== RB-NODE: прайс-таблица (/tseny/, лендинги) — в едином премиальном стиле ===== */
.price-group {
  border: 1px solid rgba(0,0,0,0.12) !important;
  border-radius: 20px !important;
  padding: 8px 34px 26px !important;
  margin-bottom: 22px !important;
  background: rgba(255,255,255,0.35) !important;
}
.price-group__title {
  font-family: var(--font-display, 'Playfair Display', serif) !important;
  font-weight: 500 !important;
  font-size: clamp(20px, 2vw, 28px) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.02em !important;
  padding: 24px 0 10px !important;
  margin: 0 !important;
}
.price-table { width: 100% !important; border-collapse: collapse !important; }
.price-table thead th { font-size: 12px !important; letter-spacing: .08em !important; text-transform: uppercase !important; color: #9a9a9a !important; font-weight: 500 !important; }
.price-table td, .price-table th { padding: 16px 8px !important; }
.price-table tbody tr { border-top: 1px solid rgba(0,0,0,0.08) !important; }
.price-table tbody td:last-child { color: var(--c-accent, #b9a36b) !important; font-variant-numeric: tabular-nums; white-space: nowrap; }

/* ===== RB-NODE: интерьер филиала — карусель ===== */
.branch-gallery__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 20px; }
.branch-gallery__nav { display: flex; gap: 10px; flex: 0 0 auto; }
.gal-arrow { width: 46px; height: 46px; border-radius: 50%; border: 1px solid rgba(0,0,0,.22); background: transparent; color: #1a1a1a; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: background .25s ease, color .25s ease, border-color .25s ease; }
.gal-arrow:hover { background: #1a1a1a; color: #fff; border-color: #1a1a1a; }
.branch-gallery--carousel {
  display: flex !important;
  gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 6px;
  scrollbar-width: none;
}
.branch-gallery--carousel::-webkit-scrollbar { display: none; }
.gal-slide {
  flex: 0 0 clamp(300px, 46%, 560px);
  aspect-ratio: 4 / 3;
  border-radius: 16px;
  overflow: hidden;
  scroll-snap-align: start;
}
.gal-slide img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 700px) { .gal-slide { flex-basis: 82%; } }

/* ===== RB-NODE: филиал — hero вставкой с рамкой (по примеру Quantum) ===== */
.branch-hero { margin-top: 8px; }
.branch-hero__media {
  position: relative;
  height: min(72vh, 640px);
  border-radius: 26px;
  overflow: hidden;
}
.branch-hero__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* Фон-заглушка для филиалов без загруженных фото — премиальный тёмный градиент */
.branch-hero__media--plain {
  background:
    radial-gradient(120% 100% at 50% 0%, rgba(214,197,60,.20), transparent 55%),
    linear-gradient(165deg, #24231f 0%, #131312 55%, #0d0d0c 100%);
}
.branch-hero__media--plain .branch-hero__overlay {
  background: linear-gradient(180deg, rgba(0,0,0,.12), rgba(0,0,0,.34));
}
.branch-hero__overlay {
  position: absolute; inset: 0;
  background:
    radial-gradient(120% 90% at 50% 50%, rgba(0,0,0,.5) 0%, rgba(0,0,0,.28) 55%, rgba(0,0,0,.32) 100%),
    linear-gradient(180deg, rgba(0,0,0,.34), rgba(0,0,0,.5));
}
.branch-hero__content {
  position: absolute; inset: 0;
  display: flex; flex-direction: column;
  align-items: center; justify-content: center;
  text-align: center; gap: 18px; padding: 24px;
  color: #fff;
}
.branch-hero__eyebrow { color: rgba(255,255,255,.85); margin: 0; }
.branch-hero__title { color: #fff; margin: 0; font-size: clamp(32px, 5vw, 60px); line-height: 1.08; }
.branch-hero__btn {
  margin-top: 6px;
  border: none; cursor: pointer;
  background: #c9b8a8; color: #2a2320;
  font-size: 15px; letter-spacing: .04em; text-transform: uppercase;
  padding: 16px 40px; border-radius: 999px;
  transition: background .25s ease, transform .25s ease;
}
.branch-hero__btn:hover { background: #bda895; transform: translateY(-1px); }
@media (max-width: 640px) {
  .branch-hero__media { height: min(64vh, 520px); border-radius: 18px; }
  .branch-hero__btn { padding: 14px 30px; font-size: 14px; }
}

/* ===== RB-NODE: филиал — описание по центру (по примеру) ===== */
.branch-about { padding: 56px 0 28px; }
.branch-about__eyebrow {
  display: flex; align-items: center; justify-content: center; gap: 9px;
  opacity: .6; margin: 0 0 22px;
}
.branch-about__dot { width: 6px; height: 6px; border-radius: 50%; background: #c9b8a8; }
.branch-about__text {
  max-width: 920px; margin: 0 auto; text-align: center;
  font-size: clamp(20px, 2vw, 28px); line-height: 1.5;
  font-weight: 300; color: #1a1a1a;
}
@media (max-width: 640px) {
  .branch-about { padding: 40px 0 20px; }
  .branch-about__text { font-size: 18px; }
}

/* ===== RB-NODE: филиал — специалисты (карусель, по примеру) ===== */
.spec-carousel {
  display: flex;
  gap: 20px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  padding-bottom: 6px;
  scrollbar-width: none;
}
.spec-carousel::-webkit-scrollbar { display: none; }
.spec-card {
  flex: 0 0 clamp(240px, 26%, 300px);
  scroll-snap-align: start;
  display: flex; flex-direction: column;
  text-align: left; gap: 4px;
  background: none; border: none; padding: 0; margin: 0;
  cursor: pointer; color: inherit; font: inherit;
}
.spec-card__photo {
  display: block; width: 100%; aspect-ratio: 3 / 4;
  border-radius: 18px; overflow: hidden; margin-bottom: 16px;
  background: #eee5d9;
}
.spec-card__photo img {
  width: 100%; height: 100%; object-fit: cover;
  transition: transform .5s ease;
}
.spec-card:hover .spec-card__photo img { transform: scale(1.04); }
.spec-card__exp { font-size: 13px; opacity: .55; margin-bottom: 2px; }
.spec-card__name { font-size: 19px; font-weight: 600; line-height: 1.25; }
.spec-card__role { font-size: 14px; opacity: .6; margin-top: 4px; }
@media (max-width: 700px) { .spec-card { flex-basis: 74%; } }

/* ===== RB-NODE: филиал — карта ===== */
.branch-map__frame { border-radius: 18px; overflow: hidden; line-height: 0; }
.branch-map__frame iframe { display: block; width: 100%; }

/* ===== RB-NODE: убрать блок «Преимущества» с главной полностью ===== */
#about { display: none !important; }

/* ===== RB-NODE: убрать большие отступы между секциями (divider) ===== */
.section-break { padding-top: 16px !important; padding-bottom: 16px !important; }
.ornament-divider { padding-top: 0 !important; padding-bottom: 0 !important; }

/* ===== RB-NODE: акции — заголовок в рамках левой колонки, аккуратное выравнивание ===== */
.section:has(.promo-grid) .section-header h2,
.section:has(.promo-grid) .section-header .t-h1 {
  font-size: clamp(26px, 2.4vw, 38px) !important;
  line-height: 1.1 !important;
  overflow-wrap: break-word !important;
  word-break: normal !important;
  margin: 0 !important;
}
.section:has(.promo-grid) .section-header__lead { gap: 16px !important; }
.section:has(.promo-grid) .section-header__note { margin-top: 0 !important; }

/* ===== RB-NODE: акции — убрать sticky левой колонки (текст не прыгает при скролле) ===== */
.section:has(.promo-grid) > .container > .section-header { position: static !important; top: auto !important; }

/* ===== RB-NODE: тарифы лояльности — выровнять колонки (равная высота, кнопки внизу) ===== */
.tiers-grid--4 { align-items: stretch !important; }
.tier-card { display: flex !important; flex-direction: column !important; height: 100% !important; }
.tier-card__benefits { margin-bottom: 24px !important; }
.tier-card__cta { margin-top: auto !important; }

/* ===== RB-NODE: тарифы лояльности — выровнять кнопку у featured (padding как у обычных) ===== */
.tier-card--featured { padding-top: 44px !important; padding-bottom: 44px !important; }

/* ===== RB-NODE: лояльность — убрать подъём featured-карточки (ровное выравнивание) ===== */
.tier-card--featured { transform: none !important; }

/* ===== RB-NODE: карточки акций — ссылка «Подробнее» рядом с кнопкой записи ===== */
.promo-card__more {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 12px;
  margin-left: 14px;
  font-size: 14px;
  text-decoration: none;
}
@media (max-width: 600px) {
  .promo-card__more { margin-left: 0; display: flex; }
}

/* ===== RB-NODE: лояльность — место под бейдж «Популярный» (кнопки остаются выровнены) ===== */
.tier-card--featured { padding-top: 58px !important; }
.tier-card--featured::before { top: 18px !important; }

/* ===== RB-NODE: филиалы на главной — крупнее и аккуратнее ===== */
@media (min-width: 861px) {
  .locations-grid { gap: 32px !important; }
  .location__media { aspect-ratio: 4 / 3 !important; border-radius: 18px !important; overflow: hidden !important; box-shadow: 0 24px 50px -30px rgba(60,50,30,.4); }
  .location__media img, .location__media-img { width: 100% !important; height: 100% !important; object-fit: cover !important; }
  .location__name { font-size: 30px !important; margin-top: 22px !important; }
  .location__address { font-size: 16px !important; }
  .location { transition: transform .4s ease; }
  .location:hover { transform: translateY(-6px); }
}

/* ===== RB-NODE: убрать разделитель перед скрытым блоком преимуществ (#about) ===== */
.section-break:has(+ #about) { display: none !important; }

/* ===== RB-NODE: мобильные фиксы — форма записи + аккордеон прайса ===== */
@media (max-width: 860px) {
  /* форма «Запишитесь на консультацию»: убрать большой gap, поля в одну колонку */
  .form-block__inner { gap: 24px !important; }
  .form__row { grid-template-columns: 1fr !important; gap: 14px !important; }

  /* прайс-аккордеон: шеврон внутри карточки, счётчик под заголовком */
  .pl-group { padding-left: 18px !important; padding-right: 18px !important; }
  .pl-group__title { position: relative !important; flex-wrap: wrap !important; padding-right: 50px !important; font-size: 22px !important; gap: 8px !important; }
  .pl-group__toggle { position: absolute !important; right: 0 !important; top: 16px !important; width: 40px !important; height: 40px !important; margin: 0 !important; }
  .pl-group__count { order: 3 !important; width: 100% !important; }
  .pl-row__name { font-size: 15px !important; }
}

/* ===== RB-NODE: страница акции — аккуратная раскладка (фото + контент) ===== */
.akcii-detail__grid { display: grid; grid-template-columns: 1fr; gap: 28px; align-items: center; }
@media (min-width: 861px) { .akcii-detail__grid { grid-template-columns: 0.85fr 1.15fr; gap: 48px; } }
.akcii-detail__media { position: relative; border-radius: 20px; overflow: hidden; aspect-ratio: 4 / 3; }
@media (min-width: 861px) { .akcii-detail__media { aspect-ratio: 4 / 5; } }
.akcii-detail__media img { width: 100%; height: 100%; object-fit: cover; object-position: center 28%; display: block; }
.akcii-detail__date { position: absolute; top: 16px; left: 16px; z-index: 2; background: #fff; color: #1a1a1a; padding: 7px 14px; border-radius: 999px; font-size: 13px; box-shadow: 0 8px 20px -10px rgba(0,0,0,.4); }
.akcii-detail__list { list-style: none; margin: 0 0 26px; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.akcii-detail__list li { position: relative; padding-left: 26px; font-size: 16px; line-height: 1.45; }
.akcii-detail__list li::before { content: ""; position: absolute; left: 3px; top: .55em; width: 7px; height: 7px; border-radius: 50%; background: var(--c-accent, #b9a36b); }

/* ===== RB-NODE: «Смотрите также / Читайте также» — сетка карточек ===== */
.related-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.related-card { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 20px 24px; border: 1px solid rgba(0,0,0,.14); border-radius: 14px; text-decoration: none; color: #1a1a1a; font-size: 16px; transition: background .25s ease, color .25s ease, border-color .25s ease, transform .25s ease; }
.related-card:hover { background: #1a1a1a; color: #fff; border-color: #1a1a1a; transform: translateY(-2px); }
.related-card__arrow { opacity: .55; }
.related-card:hover .related-card__arrow { opacity: 1; }
@media (max-width: 600px) { .related-grid { grid-template-columns: 1fr; } }

/* ===== RB-NODE: data-страницы — отступ под фикс-шапку (крошки первыми) ===== */
.breadcrumbs { padding-top: calc(var(--header-h, 88px) + 16px) !important; }
.branch-hero { margin-top: 8px; }

/* ===== RB-NODE: модалка записи — компактнее, влезает в один экран ===== */
.smart-captcha, #captcha-container { display: none !important; }
.popup__dialog { padding: 30px 40px 28px !important; max-height: 94vh !important; }
.popup__title { font-size: 24px !important; line-height: 1.15 !important; margin-bottom: 16px !important; }
.form--popup { gap: 12px !important; }
.form--popup .field__input, .form--popup .field__select { padding: 9px 0 !important; }
.form--popup .form__subject { padding: 9px 12px !important; margin-bottom: 4px !important; }
.form--popup .form__legal { margin: 4px 0 0 !important; }
.form--popup [type="submit"], .form--popup .btn-dark { margin-top: 10px !important; }
@media (max-width: 600px) { .popup__dialog { padding: 26px 22px 22px !important; } .popup__title { font-size: 22px !important; } }


/* ===== RB-NODE: шапка — телефон в одну строку, меню вмещается ===== */
.header__phone { white-space: nowrap !important; }
@media (min-width: 861px) and (max-width: 1340px) {
  .nav { gap: 22px !important; }
  .header__phone { font-size: 14px !important; }
  .header__inner { gap: 18px !important; }
}

/* RB-NODE: service page ============================================ */
.svc-why__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
}
.svc-why__card {
  padding: 26px 22px;
  border: 1px solid rgba(0,0,0,.12);
  border-radius: 14px;
  background: rgba(255,255,255,.45);
  transition: border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.svc-why__card:hover {
  border-color: var(--c-accent);
  transform: translateY(-2px);
  box-shadow: 0 10px 28px rgba(0,0,0,.06);
}
.svc-why__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(214,197,60,.16);
  color: var(--c-accent-deep);
  margin-bottom: 16px;
}
.svc-why__title {
  font-size: 17px;
  font-weight: 600;
  margin: 0 0 8px;
  line-height: 1.35;
}
.svc-why__text {
  margin: 0;
  font-size: 15px;
  line-height: 1.55;
  opacity: .8;
}
.svc-pricenote__box {
  padding: 20px 24px;
  border: 1px solid rgba(214,197,60,.45);
  border-left: 3px solid var(--c-accent);
  border-radius: 12px;
  background: rgba(214,197,60,.07);
}
@media (max-width: 860px) {
  .svc-why__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
  .svc-why__grid { grid-template-columns: 1fr; }
}

/* ===== RB-NODE: страница акции — описание во всю ширину, 2 колонки (премиально) ===== */
.akcii-blocks__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 30px 56px; }
.akcii-block { font-size: 16px; }
.akcii-block:first-child:nth-last-child(1) { grid-column: 1 / -1; max-width: 860px; }
@media (max-width: 760px) { .akcii-blocks__grid { grid-template-columns: 1fr; gap: 24px; } }

/* ═══════════════════════════════════════════════════════════════
   RB-NODE: премиальный шаблон страницы услуги (по usluga-shablon)
   Палитра RealBeauty (крем/тауп + тёмная карта записи).
   ═══════════════════════════════════════════════════════════════ */
.svc2-hero { padding: 24px 0 56px; }
.svc2-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 360px;
  gap: 64px;
  align-items: start;
}
.svc2-hero__content { min-width: 0; }
.svc2-eyebrow {
  font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .18em;
  color: var(--c-text-muted); display: inline-flex; align-items: center; gap: 12px; margin-bottom: 18px;
}
.svc2-eyebrow::before { content: ''; width: 30px; height: 1px; background: var(--c-accent-deep); }
.svc2-hero__title {
  font-size: clamp(32px, 4.4vw, 56px); line-height: 1.06; letter-spacing: -.02em;
  margin: 0 0 22px; color: var(--c-text);
}
.svc2-hero__lead {
  font-size: 18px; line-height: 1.62; color: var(--c-text-muted); max-width: 720px; margin: 0 0 32px;
}
.svc2-hero__actions { margin: 0; }

/* карточка записи (sticky, тёмная) */
.svc2-bookcard {
  position: sticky; top: calc(var(--header-h, 88px) + 20px);
  background: var(--c-dark); color: #fff;
  border-radius: 24px; padding: 34px 32px; overflow: hidden;
}
.svc2-bookcard__eyebrow {
  font-size: 11px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase;
  color: var(--c-accent); display: block; margin-bottom: 16px;
}
.svc2-bookcard__lead {
  font-size: 20px; line-height: 1.25; margin: 0 0 22px 0; padding-bottom: 20px;
  border-bottom: 1px solid rgba(255,255,255,.14);
}
.svc2-bookcard__pricelbl {
  font-size: 11px; letter-spacing: .16em; text-transform: uppercase; font-weight: 600;
  color: rgba(255,255,255,.5); margin-bottom: 6px;
}
.svc2-bookcard__price { font-size: 22px; margin-bottom: 22px; color: #fff; }
.svc2-bookcard__btn {
  width: 100%; border: none; cursor: pointer;
  background: #efe9df; color: #1a1a1a;
  padding: 16px 24px; border-radius: 100px;
  font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  transition: background .25s ease, transform .25s ease;
}
.svc2-bookcard__btn:hover { background: #fff; transform: translateY(-2px); }
.svc2-bookcard__btn svg { width: 16px; height: 16px; }
.svc2-bookcard__note { font-size: 12px; color: rgba(255,255,255,.55); line-height: 1.5; text-align: center; margin-top: 12px; }

/* контент-секции */
.svc2-body { padding: 16px 0; background: var(--c-surface); }
.svc2-body--why { background: transparent; }
.svc2-block { padding: 44px 0; border-top: 1px solid var(--c-border); max-width: 1000px; }
.svc2-body > .container > .svc2-block:first-child { border-top: none; padding-top: 8px; }
.svc2-body--why .svc2-block { border-top: none; }
.svc2-title {
  font-size: clamp(26px, 3vw, 40px); line-height: 1.1; letter-spacing: -.02em;
  margin: 0 0 20px; color: var(--c-text); max-width: 900px;
}
.svc2-title em { font-style: italic; color: var(--c-accent-deep); }
.svc2-text { font-size: 17px; line-height: 1.7; color: var(--c-text-muted); margin: 0 0 14px; max-width: 760px; }

/* стоимость */
.svc2-pricenote { padding: 8px 0 16px; }
.svc2-pricenote__box {
  max-width: 1000px; background: var(--c-bg-alt); border: 1px solid var(--c-border);
  border-radius: 16px; padding: 24px 28px;
}
.svc2-pricenote__title { margin: 0 0 6px; font-weight: 600; font-size: 17px; }
.svc2-pricenote__text { margin: 0; color: var(--c-text-muted); line-height: 1.6; }

/* карточки «почему» */
.svc2-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.svc2-card {
  background: var(--c-surface); border: 1px solid var(--c-border);
  border-radius: 18px; padding: 28px 26px; transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.svc2-card:hover { transform: translateY(-3px); box-shadow: 0 18px 40px -28px rgba(0,0,0,.4); }
.svc2-card__tag {
  font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
  color: var(--c-accent-deep); display: block; margin-bottom: 14px;
}
.svc2-card__title { font-size: 21px; line-height: 1.2; margin: 0 0 10px; }
.svc2-card__text { font-size: 15px; line-height: 1.6; color: var(--c-text-muted); margin: 0; }

/* сетка ссылок-карточек (процедуры направления) */
.svc2-linkgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.svc2-linkcard {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  padding: 18px 22px; border: 1px solid var(--c-border); border-radius: 14px;
  background: var(--c-surface); text-decoration: none; color: var(--c-text);
  font-size: 16px; transition: border-color .25s ease, transform .25s ease, background .25s ease;
}
.svc2-linkcard:hover { border-color: var(--c-text); transform: translateY(-2px); }
.svc2-linkcard__arrow { opacity: .5; transition: opacity .25s ease, transform .25s ease; }
.svc2-linkcard:hover .svc2-linkcard__arrow { opacity: 1; transform: translateX(3px); }

/* CTA-полоса */
.svc2-band { padding: 16px 0 56px; }
.svc2-band__in {
  background: var(--c-dark); color: #fff; border-radius: 26px;
  padding: clamp(36px, 5vw, 64px); text-align: center;
}
.svc2-band__title { font-size: clamp(28px, 3.4vw, 44px); line-height: 1.1; margin: 0 0 14px; color: #fff; }
.svc2-band__title em { font-style: italic; color: var(--c-accent); }
.svc2-band__text { font-size: 16px; line-height: 1.6; color: rgba(255,255,255,.7); max-width: 560px; margin: 0 auto 28px; }
.svc2-band__btn {
  border: none; cursor: pointer; background: #efe9df; color: #1a1a1a;
  padding: 17px 44px; border-radius: 100px;
  font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
  transition: background .25s ease, transform .25s ease;
}
.svc2-band__btn:hover { background: #fff; transform: translateY(-2px); }

@media (max-width: 900px) {
  .svc2-hero__grid { grid-template-columns: 1fr; gap: 36px; }
  .svc2-bookcard { position: static; }
  .svc2-cards { grid-template-columns: 1fr; }
}

/* ═══ RB-NODE: страница /uslugi/ — компактнее блок «Как проходит визит» ═══ */
.process { gap: 36px 56px; }
.process__item { gap: 22px; }
.process__num { font-size: 46px; }
.process__title { font-size: 22px; margin-bottom: 8px; }
.process__text { font-size: 15px; max-width: 420px; }
@media (max-width: 860px) {
  .process { gap: 26px !important; }
  .process__item { gap: 16px !important; }
  .process__num { font-size: 32px !important; }
  .process__title { font-size: 19px !important; }
  .process__text { font-size: 14px !important; }
}


/* ═══ RB-NODE: главная — услуги: десктоп карточками, мобильный списком ═══ */
@media (min-width: 861px) {
  .home-dirs--mobile { display: none !important; }
}
@media (max-width: 860px) {
  .svc--desktop { display: none !important; }
}

/* ═══ RB-NODE: главная — направления списком (вместо карточек) ═══ */
.home-dirs .section-header { margin-bottom: 36px; }
.home-dirs .section-header .t-h1 { display: block !important; margin-top: 10px; }
.home-dirs__list {
  border: 1px solid var(--c-border); border-radius: 18px; overflow: hidden;
  background: var(--c-surface);
}
.home-dirs__all {
  display: inline-flex; align-items: center; gap: 10px; margin-top: 28px;
  color: var(--c-text); font-weight: 500;
}
.home-dir {
  display: flex; align-items: center; justify-content: space-between; gap: 16px;
  padding: 22px 26px; text-decoration: none; color: var(--c-text);
  font-size: 20px; border-top: 1px solid var(--c-border);
  transition: background var(--t-fast) var(--ease), padding-left var(--t-fast) var(--ease);
}
.home-dir:first-child { border-top: none; }
.home-dir:hover { background: var(--c-bg-alt); padding-left: 32px; }
.home-dir__arrow { color: var(--c-text-muted); flex-shrink: 0; transition: transform var(--t-fast) var(--ease); }
.home-dir:hover .home-dir__arrow { transform: translateX(4px); color: var(--c-accent-deep); }
@media (max-width: 600px) {
  .home-dir { padding: 18px 18px; font-size: 17px; }
  .home-dir:hover { padding-left: 22px; }
}

/* ═══ RB-NODE: легаси-меню .mnav полностью выведено из игры — см. блок
   «НОВОЕ бургер-меню (выезд слева)» ниже. Старые .mnav-стили удалены. ═══ */

/* ═══ RB-NODE: якоря на мобильной — отступ под фикс-шапку ═══ */
.pl-panel, .pl-section, #form, #services, #promos, [id^="price-"] {
  scroll-margin-top: calc(var(--header-h, 88px) + 16px);
}
@media (max-width: 860px) {
  .pl-panel, .pl-section, #form, #services, #promos, [id^="price-"] {
    scroll-margin-top: calc(var(--header-h-sm, 72px) + 14px);
  }
}

/* ═══ RB-NODE: виджет связи — выше липкой нижней панели на мобильном ═══ */
@media (max-width: 1023px) {
  .contact-fab { bottom: calc(86px + env(safe-area-inset-bottom)); right: 16px; }
  .contact-fab__toggle { width: 54px; height: 54px; }
}

/* ═══════════════════════════════════════════════════════════════
   RB-NODE: бургер-меню в стиле drelmar.ru — выезжает СВЕРХУ (full-width),
   серифная типографика, золотой акцент, круглый крестик «×». .mnav скрыт.
   ═══════════════════════════════════════════════════════════════ */
@media (max-width: 1023px) {
  .mnav, .mnav__backdrop { display: none !important; }
}

/* затемнение под меню (клик закрывает) */
.mobile-menu-overlay{
  position:fixed; inset:0; background:rgba(26,21,15,.5);
  -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px);
  opacity:0; visibility:hidden; z-index:1099;
  transition:opacity .35s ease, visibility .35s ease;
}
.mobile-menu-overlay.active{ opacity:1; visibility:visible; }

/* панель: выезжает СВЕРХУ ВНИЗ из шапки, на всю ширину */
.mobile-menu{
  position:fixed; top:0; left:0; right:0; width:100%; max-width:100%;
  max-height:94vh; max-height:94dvh;
  background:#fff; color:var(--c-text); z-index:1100;
  transform:translateY(-100%);
  transition:transform .5s cubic-bezier(0.16,1,0.3,1);
  display:flex; flex-direction:column; overflow-y:auto; -webkit-overflow-scrolling:touch;
  border-radius:0 0 26px 26px;
  box-shadow:0 28px 70px -12px rgba(26,21,15,.28), 0 8px 24px rgba(26,21,15,.08);
  padding-bottom:calc(28px + env(safe-area-inset-bottom));
}
.mobile-menu.active{ transform:translateY(0); }
@media (prefers-reduced-motion:reduce){
  .mobile-menu, .mobile-menu-overlay{ transition:opacity .2s ease, visibility .2s ease; }
}

/* каскадное появление пунктов — сверху вниз вслед за панелью */
.mobile-menu-nav-list li,
.mobile-menu .mobile-menu-actions{
  opacity:0; transform:translateY(-14px);
  transition:opacity .45s cubic-bezier(0.16,1,0.3,1), transform .45s cubic-bezier(0.16,1,0.3,1);
}
.mobile-menu.active .mobile-menu-nav-list li,
.mobile-menu.active .mobile-menu-actions{ opacity:1; transform:translateY(0); }
.mobile-menu.active .mobile-menu-nav-list li:nth-child(1){transition-delay:.12s;}
.mobile-menu.active .mobile-menu-nav-list li:nth-child(2){transition-delay:.17s;}
.mobile-menu.active .mobile-menu-nav-list li:nth-child(3){transition-delay:.22s;}
.mobile-menu.active .mobile-menu-nav-list li:nth-child(4){transition-delay:.27s;}
.mobile-menu.active .mobile-menu-nav-list li:nth-child(5){transition-delay:.32s;}
.mobile-menu.active .mobile-menu-nav-list li:nth-child(6){transition-delay:.37s;}
.mobile-menu.active .mobile-menu-nav-list li:nth-child(7){transition-delay:.42s;}
.mobile-menu.active .mobile-menu-nav-list li:nth-child(8){transition-delay:.47s;}
.mobile-menu.active .mobile-menu-nav-list li:nth-child(n+9){transition-delay:.52s;}
.mobile-menu.active .mobile-menu-actions{transition-delay:.58s;}
@media (prefers-reduced-motion:reduce){
  .mobile-menu-nav-list li,.mobile-menu .mobile-menu-actions{opacity:1;transform:none;transition:none;}
}

/* шапка: крестик слева · логотип по центру · мессенджеры справа */
.mobile-menu-head{
  display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:16px;
  padding:16px 24px; padding-top:calc(16px + env(safe-area-inset-top));
  border-bottom:1px solid rgba(26,21,15,.07); min-height:70px; background:#fff;
  position:sticky; top:0; z-index:5;
}
.mobile-menu .mobile-menu-close{
  width:46px; height:46px; flex-shrink:0; padding:0; min-height:0; cursor:pointer;
  border:1px solid rgba(26,21,15,.2); border-radius:50%; background:var(--c-bg);
  display:inline-flex; align-items:center; justify-content:center; color:var(--c-text);
  box-shadow:0 2px 8px rgba(26,21,15,.08); -webkit-tap-highlight-color:transparent;
  transition:background .25s ease, border-color .25s ease, transform .2s ease;
}
.mobile-menu .mm-close-x{
  display:block; font-family:Arial,Helvetica,sans-serif; font-size:30px; font-weight:400;
  line-height:1; color:var(--c-text); margin-top:-2px;
}
.mobile-menu .mobile-menu-close:hover{ background:var(--c-text); border-color:var(--c-text); }
.mobile-menu .mobile-menu-close:hover .mm-close-x{ color:#fff; }
.mobile-menu .mobile-menu-close:active{ transform:scale(.94); }
.mobile-menu-logo{ display:flex; align-items:center; justify-content:center; height:34px; min-width:0; }
.mobile-menu-logo img, .mobile-menu-logo svg{ height:32px; width:auto; }
.mobile-menu-head-actions{ display:flex; align-items:center; gap:10px; justify-self:end; }
@media (max-width:400px){ .mobile-menu-head-actions{ display:none; } }

/* список ссылок — крупная серифная типографика, тонкие разделители */
.mobile-menu-nav-list{ flex:1; padding:14px 28px 8px; }
.mobile-menu ul{ display:flex; flex-direction:column; list-style:none; margin:0; padding:0; }
.mobile-menu li{ border-bottom:1px solid rgba(26,21,15,.08); }
.mobile-menu li:last-child{ border-bottom:none; }
.mobile-menu-nav-list > ul > li > a,
.mobile-menu-acc-toggle{
  font-family:Georgia,'Times New Roman',serif;
  font-size:clamp(23px,6vw,27px); font-weight:500; letter-spacing:0; line-height:1.1;
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  min-height:52px; padding:19px 0; color:var(--c-text); text-decoration:none;
  width:100%; background:none; border:none; cursor:pointer; text-align:left;
  -webkit-tap-highlight-color:transparent;
  transition:color .25s ease, padding-left .25s ease;
}
.mobile-menu-nav-list > ul > li > a:hover,
.mobile-menu-acc-toggle:hover,
.mobile-menu-acc-toggle[aria-expanded="true"]{ color:var(--c-accent-deep); }
.mobile-menu-nav-list > ul > li > a:hover{ padding-left:6px; }
@media (max-width:360px){
  .mobile-menu-nav-list > ul > li > a,
  .mobile-menu-acc-toggle{ font-size:21px; padding:16px 0; min-height:46px; }
}

/* аккордеон-подменю */
.mobile-menu-acc-toggle > span{ min-width:0; overflow-wrap:anywhere; }
.mobile-menu-acc-arrow{ width:24px; height:24px; flex:0 0 24px; color:var(--c-accent); stroke-width:1.8; transition:transform .4s cubic-bezier(0.16,1,0.3,1); }
.mobile-menu-acc-toggle[aria-expanded="true"] .mobile-menu-acc-arrow{ transform:rotate(180deg); }
.mobile-menu-acc-panel{ overflow:hidden; max-height:0; transition:max-height .42s cubic-bezier(0.16,1,0.3,1); }
.mobile-menu-acc.is-open .mobile-menu-acc-panel{ max-height:920px; }
.mobile-menu-acc-inner{ display:flex; flex-direction:column; }
.mobile-menu .mobile-menu-acc-inner a.mobile-menu-sublink{
  font-family:var(--font-body),sans-serif; font-size:16px; font-weight:400; line-height:1.35;
  display:flex; align-items:center; min-height:44px; padding:12px 0 12px 20px;
  color:var(--c-text-muted); text-decoration:none;
  border-left:1.5px solid rgba(214,197,60,.35); margin-left:4px;
  transition:color .25s ease, border-color .25s ease, padding-left .25s ease;
}
.mobile-menu .mobile-menu-acc-inner a.mobile-menu-sublink:first-child{ padding-top:8px; }
.mobile-menu .mobile-menu-acc-inner a.mobile-menu-sublink:last-child{ padding-bottom:18px; }
.mobile-menu .mobile-menu-acc-inner a.mobile-menu-sublink:hover{ color:var(--c-accent-deep); border-left-color:var(--c-accent); padding-left:24px; }

/* активный раздел — текущая страница */
.mobile-menu-nav-list > ul > li > a.is-current,
.mobile-menu-acc-toggle.is-current{ color:var(--c-accent-deep); }
.mobile-menu .mobile-menu-acc-inner a.mobile-menu-sublink.is-current{ color:var(--c-accent-deep); border-left-color:var(--c-accent); }

/* низ: телефон + мессенджеры (в ряд) + CTA */
.mobile-menu-actions{
  display:flex; flex-direction:column; margin-top:6px; gap:18px;
  padding:24px 28px; padding-bottom:calc(24px + env(safe-area-inset-bottom));
  border-top:1px solid rgba(26,21,15,.07);
}
.mobile-menu-phone-row{ display:flex; flex-wrap:nowrap; gap:14px; align-items:center; justify-content:space-between; }
.mobile-menu .mobile-menu-phone{
  font-family:var(--font-body); font-size:clamp(22px,6.2vw,27px); font-weight:700; letter-spacing:.01em;
  color:var(--c-text); text-decoration:none; flex:1 1 auto; white-space:nowrap; line-height:1.1; min-height:0; padding:0;
}
.mobile-menu .mobile-menu-phone:hover{ color:var(--c-accent-deep); }
.mobile-menu-messengers{ display:flex; align-items:center; gap:10px; flex-shrink:0; }
.mobile-menu .mobile-menu-msg{
  width:44px; height:44px; flex:0 0 44px; min-height:0; padding:0;
  border:1px solid rgba(26,21,15,.16); border-radius:50%; background:transparent;
  display:inline-flex; align-items:center; justify-content:center; color:var(--c-text);
  transition:background .25s ease, color .25s ease, border-color .25s ease, transform .2s ease;
}
.mobile-menu .mobile-menu-msg:hover{ background:var(--c-text); color:#fff; border-color:var(--c-text); transform:translateY(-1px); }
.mobile-menu .mobile-menu-msg svg{ width:19px; height:19px; }
.mobile-menu .mobile-menu-head-actions .mobile-menu-msg{ width:42px; height:42px; flex:0 0 42px; border-color:rgba(26,21,15,.12); background:var(--c-bg); }
.mobile-menu-cta{
  min-height:56px; padding:17px 26px; border:none; cursor:pointer;
  background:var(--c-dark, #0F0F10); color:#fff; text-decoration:none;
  font-family:var(--font-body); font-size:12.5px; font-weight:600; letter-spacing:.16em; text-transform:uppercase;
  border-radius:100px; white-space:nowrap; box-shadow:0 12px 30px -10px rgba(0,0,0,.4);
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  transition:background .25s ease, transform .2s ease;
}
.mobile-menu-cta:hover{ background:#000; transform:translateY(-1px); }

/* блокируем скролл под открытым меню */
body.mobile-menu-open{ overflow:hidden; }

/* показываем меню только на мобильном; на десктопе — обычное меню */
@media (min-width: 1024px){
  .mobile-menu, .mobile-menu-overlay{ display:none !important; }
}
