/* ==========================================================================
   Luma Biohacking Resort — Designer B — "Редакция долголетия"
   Editorial restraint, dark. Typography carries the whole page.
   Palette: 7 brand swatches (RGB) — 6 in use, 60/30/10.
   Type: Onest (sans, prototype stand-in for TT Hoves Pro) +
         Cormorant Light (serif display, prototype stand-in for Roca One).
   ========================================================================== */

:root{
  /* ---- brand swatches, RGB triplets (7 total, 6 in use) ---- */
  --black:   10, 10, 10;      /* Base Black    */
  --jungle:  0, 75, 73;       /* Deep Jungle   */
  --jade:    115, 155, 152;   /* Soft Jade     */
  --nude:    209, 194, 175;   /* Nude          */
  --stone:   182, 182, 182;   /* Stone Grey    */
  --white:   255, 255, 255;   /* Medical White */
  /* Bio-Light 167,192,222 intentionally unused this direction (kept editorial
     to two accents: warm Nude + cool-neutral Jade — a third accent would
     compete with the type as hero) */

  /* ---- roles, 60 / 30 / 10 ---- */
  --bg:          rgb(var(--black));                 /* 60% */
  --surface:     rgb(var(--jungle));                /* 30% */
  --surface-2:   #06100f;                           /* jungle mixed toward black, section seams */
  --text:        rgba(var(--white), 0.92);
  --text-muted:  rgb(var(--stone));
  --accent:      rgb(var(--nude));                  /* 10% — warm, headline emphasis / CTA */
  --accent-2:    rgb(var(--jade));                  /* 10% — cool, rules / eyebrows / labels */
  --hairline:    rgba(var(--jade), 0.22);
  --hairline-soft: rgba(var(--white), 0.09);

  /* ---- type families ---- */
  --font-sans: 'Onest', -apple-system, 'Helvetica Neue', Arial, sans-serif;
  --font-serif: 'Cormorant', 'Times New Roman', serif;

  /* ---- type scale: base 17px, mixed 1.25 / 1.333 ratios ---- */
  --text-xs:  0.8125rem;   /* 13   */
  --text-sm:  0.9375rem;   /* 15   */
  --text-base: 1.0625rem;  /* 17   */
  --text-md:  1.3125rem;   /* 21   ×1.25  */
  --text-lg:  1.75rem;     /* 28   ×1.333 */
  --text-xl:  2.3125rem;   /* 37   ×1.333 */
  --text-2xl: 3.0625rem;   /* 49   ×1.333 */
  --text-3xl: 4.0625rem;   /* 65   ×1.333 */
  --text-display: clamp(2.8rem, 3rem + 4vw, 5.4375rem); /* 87 desktop */

  /* ---- 8pt grid ---- */
  --sp-1: 8px;  --sp-2: 16px; --sp-3: 24px; --sp-4: 32px;
  --sp-5: 40px; --sp-6: 48px; --sp-7: 64px; --sp-8: 80px;
  --sp-9: 96px; --sp-10: 128px;

  --measure: 62ch;
  --ease-print: cubic-bezier(0.16, 1, 0.3, 1);
}

/* ---------------------------------- reset --------------------------------- */
*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin: 0;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font-sans);
  font-size: var(--text-base);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img{ max-width: 100%; display: block; }
a{ color: inherit; }
button{ font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }
input, textarea{ font: inherit; color: inherit; }
h1,h2,h3,p,ul,ol,dl,figure{ margin: 0; }
ul, ol{ padding: 0; list-style: none; }
table{ border-collapse: collapse; width: 100%; }

.visually-hidden{
  position: absolute; width: 1px; height: 1px; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap;
}

.skip-link{
  position: absolute; left: var(--sp-2); top: -60px;
  background: var(--accent); color: var(--bg);
  padding: var(--sp-2) var(--sp-3); z-index: 999;
  font-weight: 600; transition: top .2s var(--ease-print);
  border-radius: 2px;
}
.skip-link:focus{ top: var(--sp-2); }

:focus-visible{
  outline: 2px solid rgb(var(--nude));
  outline-offset: 3px;
}

/* ------------------------------- typography -------------------------------- */
.eyebrow{
  font-family: var(--font-sans);
  font-size: var(--text-xs);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent-2);
  margin-bottom: var(--sp-2);
}
.h2{
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: var(--text-3xl);
  line-height: 1.12;
  letter-spacing: -0.01em;
  max-width: 18ch;
  margin-bottom: var(--sp-3);
}
.h3{
  font-family: var(--font-serif);
  font-weight: 400;
  font-size: var(--text-xl);
  line-height: 1.2;
  margin-bottom: var(--sp-2);
}
.lead{
  max-width: var(--measure);
  color: var(--text);
  font-size: var(--text-md);
  line-height: 1.6;
  margin-bottom: var(--sp-6);
}
.dropcap{
  max-width: var(--measure);
  font-family: var(--font-serif);
  font-size: var(--text-lg);
  font-weight: 300;
  line-height: 1.45;
  color: var(--text);
  margin-bottom: var(--sp-3);
}
.dropcap::first-letter{
  font-family: var(--font-serif);
  font-weight: 300;
  font-size: 4.2em;
  float: left;
  line-height: 0.78;
  padding-right: 0.09em;
  padding-top: 0.03em;
  color: var(--accent);
}
.dateline{
  font-size: var(--text-xs);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(var(--white), 0.7);
}
.text-link{
  display: inline-block;
  font-size: var(--text-sm);
  color: var(--accent);
  border-bottom: 1px solid rgba(var(--nude), 0.4);
  padding-bottom: 2px;
  margin-top: var(--sp-2);
}
.text-link:hover{ border-color: rgb(var(--nude)); }

.caption{
  font-size: var(--text-xs);
  color: var(--text-muted);
  margin-top: var(--sp-2);
}

/* --------------------------------- layout ---------------------------------- */
.wrap{
  max-width: 1180px;
  margin: 0 auto;
  padding: 0 var(--sp-4);
}
.wrap--narrow{ max-width: 860px; }

.section{
  padding: var(--sp-10) 0;
  background: var(--bg);
  position: relative;
}
.section--jungle{
  background: linear-gradient(180deg, var(--surface-2) 0%, var(--surface) 45%, var(--surface-2) 100%);
}

/* ------------------------------- reveal motion ------------------------------ */
.reveal{
  opacity: 0;
  transform: translateY(14px);
  transition: opacity .7s var(--ease-print), transform .7s var(--ease-print);
}
.reveal.is-visible{ opacity: 1; transform: translateY(0); }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior: auto; }
  .reveal{ opacity: 1 !important; transform: none !important; transition: none !important; }
  *{ animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
}

/* --------------------------------- folio ------------------------------------ */
.folio{
  position: fixed;
  left: var(--sp-3);
  bottom: var(--sp-3);
  z-index: 40;
  display: flex;
  align-items: baseline;
  gap: var(--sp-1);
  font-size: var(--text-xs);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(var(--white), 0.55);
  mix-blend-mode: difference;
  pointer-events: none;
}
.folio__no{ font-family: var(--font-serif); font-size: var(--text-sm); color: rgb(var(--nude)); }
@media (max-width: 720px){ .folio{ display:none; } }

/* -------------------------------- masthead ---------------------------------- */
.masthead{
  position: sticky; top: 0; z-index: 50;
  background: rgba(10,10,10,0.82);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--hairline-soft);
}
.masthead__row{
  max-width: 1180px; margin: 0 auto;
  padding: var(--sp-2) var(--sp-4);
  display: flex; align-items: center; gap: var(--sp-4);
}
.masthead__mark{
  display: flex; align-items: center; gap: var(--sp-2);
  text-decoration: none; margin-right: auto;
}
.masthead__glyph{ width: 16px; height: 16px; color: rgb(var(--nude)); flex-shrink: 0; }
.masthead__glyph svg{ width: 100%; height: 100%; }
.masthead__word{
  font-family: var(--font-sans); font-weight: 600;
  font-size: var(--text-sm); letter-spacing: 0.03em;
  color: var(--text);
}
.masthead__word em{ font-style: normal; color: var(--text-muted); font-weight: 400; }

.masthead__nav{ display: flex; gap: var(--sp-4); }
.masthead__nav a{
  font-size: var(--text-sm); text-decoration: none; color: var(--text-muted);
  transition: color .2s;
}
.masthead__nav a:hover{ color: var(--text); }

.masthead__tools{ display: flex; align-items: center; gap: var(--sp-3); }
.lang-switch{ display: flex; gap: var(--sp-1); font-size: var(--text-xs); letter-spacing: 0.06em; color: var(--text-muted); }
.lang-switch__btn.is-active{ color: rgb(var(--nude)); }
.masthead__tools .masthead__cta{ display: none; }
@media (min-width: 860px){ .masthead__tools .masthead__cta{ display: inline-flex; } }

.hamburger{
  display: flex; flex-direction: column; gap: 4px; padding: var(--sp-1);
}
.hamburger span{ width: 20px; height: 1px; background: var(--text); display: block; }
@media (min-width: 860px){ .hamburger{ display: none; } }
@media (max-width: 859px){ .masthead__nav{ display: none; } }

.mobile-nav[hidden]{ display: none; }
.mobile-nav{
  display: flex; flex-direction: column; gap: var(--sp-3);
  padding: var(--sp-3) var(--sp-4) var(--sp-5);
  border-top: 1px solid var(--hairline-soft);
}
.mobile-nav a{ text-decoration: none; font-size: var(--text-md); color: var(--text); }
.mobile-nav .btn{ margin-top: var(--sp-2); align-self: flex-start; }

/* ---------------------------------- buttons ---------------------------------- */
.btn{
  display: inline-flex; align-items: center; gap: var(--sp-1);
  padding: 12px 24px;
  font-size: var(--text-sm); font-weight: 600; letter-spacing: 0.02em;
  text-decoration: none; border-radius: 2px;
  transition: transform .15s var(--ease-print), background .2s, color .2s, border-color .2s;
  white-space: nowrap;
}
.btn:active{ transform: scale(0.98); }
.btn--solid{ background: rgb(var(--nude)); color: rgb(var(--black)); }
.btn--solid:hover{ background: rgba(var(--nude), 0.85); }
.btn--line{ border: 1px solid rgba(var(--white), 0.35); color: var(--text); }
.btn--line:hover{ border-color: rgb(var(--nude)); color: rgb(var(--nude)); }
.btn--ghost{ color: var(--accent-2); }
.btn--ghost:hover{ color: rgb(var(--nude)); }

/* ----------------------------------- hero ------------------------------------- */
.hero{
  position: relative;
  min-height: 100svh;
  display: flex; align-items: flex-end;
  background-image: var(--hero-img);
  background-size: cover;
  background-position: center 62%;
  padding-bottom: var(--sp-9);
}
.hero__scrim{
  position: absolute; inset: 0;
  background:
    linear-gradient(180deg, rgba(10,10,10,0.55) 0%, rgba(10,10,10,0.15) 30%, rgba(10,10,10,0.35) 55%, rgba(10,10,10,0.94) 100%);
}
.hero__inner{ position: relative; z-index: 1; max-width: 1180px; margin: 0 auto; padding: 0 var(--sp-4); width: 100%; }
.hero__headline{
  font-family: var(--font-serif); font-weight: 300;
  font-size: var(--text-display);
  line-height: 1.04; letter-spacing: -0.01em;
  color: var(--text);
  margin: var(--sp-3) 0 var(--sp-4);
}
.hero__headline .line{ display: block; }
.hero__headline em{ font-style: italic; color: rgb(var(--nude)); }
.hero__rule{
  width: 100%; max-width: 420px; height: 1px;
  background: rgba(var(--jade), 0.5);
  transform-origin: left;
  margin-bottom: var(--sp-4);
}
.hero__lede{
  max-width: var(--measure);
  font-size: var(--text-md);
  color: rgba(var(--white), 0.88);
  margin-bottom: var(--sp-5);
}
.hero__actions{ display: flex; flex-wrap: wrap; gap: var(--sp-3); align-items: center; }

/* load sequence — orchestrated moment, once */
[data-anim]{ opacity: 0; }
[data-anim="dateline"]{ transform: translateY(8px); }
[data-anim="headline"]{ opacity: 1; }
[data-anim="headline"] .line{
  display: block; overflow: hidden;
}
[data-anim="headline"] .line > * { display:inline-block; }
.js-ready [data-anim="dateline"]{
  animation: rise .8s var(--ease-print) .1s forwards;
}
.js-ready [data-anim="rule"]{
  transform: scaleX(0);
  animation: print-rule 1s var(--ease-print) .7s forwards;
}
.js-ready [data-anim="lede"]{
  animation: rise .8s var(--ease-print) 1.05s forwards;
}
.js-ready [data-anim="actions"]{
  animation: rise .8s var(--ease-print) 1.25s forwards;
}
@keyframes rise{ from{ opacity:0; transform: translateY(14px);} to{ opacity:1; transform: translateY(0);} }
@keyframes print-rule{ from{ transform: scaleX(0);} to{ transform: scaleX(1);} }

@media (prefers-reduced-motion: reduce){
  [data-anim]{ opacity: 1 !important; transform: none !important; animation: none !important; }
  .hero__rule{ transform: scaleX(1) !important; }
}

/* -------------------------------- mark divider -------------------------------- */
.mark-divider{ width: 120px; height: 40px; color: rgb(var(--jade)); margin: var(--sp-5) 0; opacity: 0.8; }
.mark-divider svg{ width: 100%; height: 100%; }

/* --------------------------------- facts line ---------------------------------- */
.facts-line{
  display: flex; flex-wrap: wrap;
  gap: var(--sp-2) var(--sp-4);
  padding-top: var(--sp-4);
  border-top: 1px solid var(--hairline);
  font-size: var(--text-sm);
  color: var(--text-muted);
}
.facts-line strong{ color: rgb(var(--nude)); font-family: var(--font-serif); font-size: 1.15em; font-weight: 500; }

/* ---------------------------------- booker ------------------------------------- */
.booker{ margin-top: var(--sp-6); }
.booker__steps{
  display: flex; gap: var(--sp-5);
  padding-bottom: var(--sp-3);
  margin-bottom: var(--sp-5);
  border-bottom: 1px solid var(--hairline);
  font-size: var(--text-xs); letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--text-muted); flex-wrap: wrap;
}
.booker__steps span{ font-family: var(--font-serif); color: rgb(var(--nude)); margin-right: 8px; font-size: var(--text-sm); }

.booker__grid{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--sp-5) var(--sp-4);
}
.booker__field{ display: flex; flex-direction: column; gap: var(--sp-1); position: relative; }
.booker__field label, .booker__label-static, .booker__field legend{
  font-size: var(--text-xs); letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--text-muted); padding: 0;
}
.booker__step-no{ display: none; }

.booker__field input[type="date"],
.booker__field input[type="text"],
.booker__field input[type="email"],
.booker__field input[type="tel"],
.booker__field textarea{
  background: transparent;
  border: none;
  border-bottom: 1px solid var(--hairline);
  padding: var(--sp-1) 0;
  color: var(--text);
  font-size: var(--text-md);
  font-family: var(--font-serif);
}
.booker__field textarea{ font-family: var(--font-sans); font-size: var(--text-base); resize: vertical; }
.booker__field input:focus, .booker__field textarea:focus{ border-color: rgb(var(--nude)); outline: none; }
.booker__field input::-webkit-calendar-picker-indicator{ filter: invert(1); opacity: 0.6; }

.booker__field--pkg{ grid-column: span 2; }
.chip-group{ display: flex; gap: var(--sp-2); flex-wrap: wrap; }
.chip{
  border: 1px solid var(--hairline); border-radius: 999px;
  padding: 8px 16px; font-size: var(--text-xs); color: var(--text-muted);
}
.chip em{ font-style: normal; color: rgb(var(--jade)); margin-left: 4px; }
.chip.is-active{ border-color: rgb(var(--nude)); color: rgb(var(--nude)); }

.stepper{ display: flex; align-items: center; gap: var(--sp-2); }
.stepper__btn{
  width: 32px; height: 32px; border: 1px solid var(--hairline); border-radius: 999px;
  font-size: 1.1rem; color: var(--text);
}
.stepper input{
  width: 40px; text-align: center; background: transparent; border: none;
  font-family: var(--font-serif); font-size: var(--text-lg); color: var(--text);
}

.booker__field--unit{ grid-column: span 4; border: none; padding: 0; margin: 0; }
.booker__field--unit legend{ margin-bottom: var(--sp-2); }
.unit-option{
  display: flex; align-items: center; gap: var(--sp-3);
  padding: var(--sp-3) 0;
  border-bottom: 1px solid var(--hairline-soft);
  cursor: pointer;
}
.unit-option:last-of-type{ border-bottom: 1px solid var(--hairline); margin-bottom: var(--sp-1); }
.unit-option input{ accent-color: rgb(var(--nude)); width: 16px; height: 16px; }
.unit-option__body{ flex: 1; display: flex; flex-direction: column; }
.unit-option__name{ font-family: var(--font-serif); font-size: var(--text-lg); color: var(--text); }
.unit-option__meta{ font-size: var(--text-xs); color: var(--text-muted); margin-top: 2px; }
.unit-option__price{ font-family: var(--font-serif); font-size: var(--text-lg); color: rgb(var(--nude)); white-space: nowrap; }
.unit-option__price em{ font-style: normal; font-size: var(--text-xs); color: var(--text-muted); }
.booker__note{ font-size: var(--text-xs); color: rgb(var(--nude)); min-height: 1.4em; }

.booker__field--total{ grid-column: span 4; padding-top: var(--sp-3); border-top: 1px solid var(--hairline); }
.total-breakdown{ margin-top: var(--sp-2); }
.total-breakdown > div{
  display: flex; justify-content: space-between;
  padding: var(--sp-1) 0;
  font-size: var(--text-sm); color: var(--text-muted);
  border-bottom: 1px solid var(--hairline-soft);
}
.total-breakdown dt{ font-weight: 400; }
.total-breakdown dd{ margin: 0; }
.total-breakdown__sum{ border-bottom: none !important; padding-top: var(--sp-2) !important; }
.total-breakdown__sum dt, .total-breakdown__sum dd{
  font-family: var(--font-serif); font-size: var(--text-xl); color: rgb(var(--nude));
}
.booker__fineprint{ font-size: var(--text-xs); color: var(--text-muted); margin-top: var(--sp-2); max-width: 60ch; }

.booker__field--contact{ grid-column: span 2; }
.booker__field--comment{ grid-column: span 4; }

.booker__submit{
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap;
  gap: var(--sp-3);
  margin-top: var(--sp-6); padding-top: var(--sp-4); border-top: 1px solid var(--hairline);
}
.checkbox{ display: flex; align-items: flex-start; gap: var(--sp-2); font-size: var(--text-sm); color: var(--text-muted); }
.checkbox input{ margin-top: 4px; accent-color: rgb(var(--nude)); }
.checkbox a{ color: rgb(var(--jade)); }

.booker__result{
  margin-top: var(--sp-6); padding-top: var(--sp-5); border-top: 1px solid var(--hairline);
}
.booker__summary{ font-family: var(--font-serif); font-size: var(--text-lg); font-weight: 300; max-width: var(--measure); margin-bottom: var(--sp-4); }
.booker__result-actions{ display: flex; gap: var(--sp-3); flex-wrap: wrap; margin-bottom: var(--sp-2); }

@media (max-width: 860px){
  .booker__grid{ grid-template-columns: repeat(2, 1fr); }
  .booker__field--pkg, .booker__field--unit, .booker__field--total, .booker__field--comment{ grid-column: span 2; }
}
@media (max-width: 540px){
  .booker__grid{ grid-template-columns: 1fr; }
  .booker__field--pkg, .booker__field--unit, .booker__field--total, .booker__field--contact, .booker__field--comment{ grid-column: span 1; }
  .booker__steps{ display: none; }
}

/* ------------------------------------ units ------------------------------------- */
.unit-spec{
  display: grid; grid-template-columns: 1.1fr 1fr; gap: var(--sp-6);
  align-items: center;
  padding: var(--sp-7) 0;
  border-bottom: 1px solid var(--hairline);
}
.unit-spec:first-of-type{ padding-top: var(--sp-3); }
.unit-spec--reverse{ direction: rtl; }
.unit-spec--reverse > *{ direction: ltr; }
.unit-spec__media img{ width: 100%; border-radius: 2px; }
.unit-spec__media--pair{ display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-2); }
.unit-spec__body p{ max-width: 46ch; margin-bottom: var(--sp-3); color: var(--text); }
.spec-list{ display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-1) var(--sp-4); margin-bottom: var(--sp-2); }
.spec-list > div{ display: flex; justify-content: space-between; border-bottom: 1px solid var(--hairline-soft); padding: 8px 0; font-size: var(--text-sm); }
.spec-list dt{ color: var(--text-muted); }
.spec-list dd{ color: var(--text); font-family: var(--font-serif); }

@media (max-width: 860px){
  .unit-spec, .unit-spec--reverse{ grid-template-columns: 1fr; direction: ltr; }
  .unit-spec__media--pair{ grid-template-columns: 1fr 1fr; }
}

/* --------------------------------- facility index --------------------------------- */
.facility-index{ border-top: 1px solid var(--hairline); }
.facility-index > li{
  display: grid;
  grid-template-columns: 32px 1fr;
  grid-template-areas: "no name" "no desc";
  column-gap: var(--sp-3);
  row-gap: var(--sp-1);
  align-items: start;
  padding: var(--sp-4) 0;
  border-bottom: 1px solid var(--hairline-soft);
}
.facility-index__no{ grid-area: no; font-family: var(--font-serif); font-size: var(--text-lg); color: rgb(var(--jade)); }
.facility-index__name{ grid-area: name; font-family: var(--font-serif); font-size: var(--text-lg); font-weight: 400; }
.facility-index__desc{ grid-area: desc; color: var(--text-muted); font-size: var(--text-sm); max-width: 52ch; }
.facility-index__thumb{ display: none; }
@media (min-width: 720px){
  .facility-index > li{ grid-template-columns: 48px 1fr; column-gap: var(--sp-4); }
  .facility-index__thumb{ display: block; grid-area: thumb; align-self: center; justify-self: end; width: 160px; height: 100px; object-fit: cover; border-radius: 2px; }
  .facility-index > li:has(.facility-index__thumb){
    grid-template-columns: 48px 1fr auto;
    grid-template-areas: "no name thumb" "no desc thumb";
  }
}

/* -------------------------------- feature callout ---------------------------------- */
.feature-callout{
  display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-6);
  align-items: center;
  margin-top: var(--sp-8);
  padding-top: var(--sp-7);
  border-top: 1px solid var(--hairline);
}
.feature-callout__media img{ border-radius: 2px; }
.feature-callout__body p{ max-width: 46ch; color: var(--text); }
@media (max-width: 860px){ .feature-callout{ grid-template-columns: 1fr; } }

/* ----------------------------------- clinic ------------------------------------------ */
.clinic-layout{ display: grid; grid-template-columns: 0.9fr 1.4fr; gap: var(--sp-6); align-items: start; min-width: 0; }
.clinic-layout > *{ min-width: 0; }
.clinic-layout__media img{ border-radius: 2px; }
.menu-table{ font-size: var(--text-sm); min-width: 0; }
.menu-table thead th{
  text-align: left; font-size: var(--text-xs); text-transform: uppercase; letter-spacing: 0.08em;
  color: var(--text-muted); padding-bottom: var(--sp-2); border-bottom: 1px solid var(--hairline);
}
.menu-table tbody th, .menu-table tbody td{
  padding: var(--sp-2) var(--sp-2) var(--sp-2) 0;
  border-bottom: 1px solid var(--hairline-soft);
  vertical-align: top; text-align: left; font-weight: 400;
}
.menu-table tbody th{ font-family: var(--font-serif); font-size: var(--text-md); color: var(--text); white-space: nowrap; }
.menu-table tbody td{ color: var(--text-muted); }
.tag{ display: inline-block; font-size: var(--text-xs); letter-spacing: 0.05em; text-transform: uppercase; padding: 4px 12px; border-radius: 999px; }
.tag--included{ color: rgb(var(--jade)); border: 1px solid rgba(var(--jade), 0.5); }
.tag--addon{ color: rgb(var(--nude)); border: 1px solid rgba(var(--nude), 0.4); }
.menu-table__hint{ display: none; }
@media (max-width: 860px){
  .clinic-layout{ grid-template-columns: 1fr; }
  .menu-table{ display: block; overflow-x: auto; }
  .menu-table__hint{ display: block; font-size: var(--text-xs); color: var(--text-muted); margin-bottom: var(--sp-2); }
}

/* ---------------------------------- location ------------------------------------------ */
.location-layout{ display: grid; grid-template-columns: 1.3fr 1fr; gap: var(--sp-6); align-items: center; margin-bottom: var(--sp-3); }
.location-layout__media img{ border-radius: 2px; }
.distance-list > div{ display: flex; justify-content: space-between; padding: var(--sp-2) 0; border-bottom: 1px solid var(--hairline-soft); font-size: var(--text-sm); }
.distance-list dt{ color: var(--text); }
.distance-list dd{ color: rgb(var(--nude)); font-family: var(--font-serif); }
@media (max-width: 860px){ .location-layout{ grid-template-columns: 1fr; } }

/* ----------------------------------- credits ------------------------------------------- */
.credits-list{ border-top: 1px solid var(--hairline); }
.credits-list > div{
  display: flex; justify-content: space-between; gap: var(--sp-3);
  padding: var(--sp-3) 0; border-bottom: 1px solid var(--hairline-soft);
  font-size: var(--text-md);
}
.credits-list dt{ color: var(--text-muted); font-size: var(--text-sm); }
.credits-list dd{ color: var(--text); font-family: var(--font-serif); text-align: right; }
.invest-line{ margin-top: var(--sp-4); font-size: var(--text-sm); color: var(--text-muted); }
.invest-line a{ color: rgb(var(--jade)); border-bottom: 1px solid rgba(var(--jade), 0.4); }

/* ----------------------------------- contact ------------------------------------------- */
.contact-actions{ display: flex; flex-wrap: wrap; gap: var(--sp-3); }

/* ----------------------------------- colophon (footer) ---------------------------------- */
.colophon{
  background: var(--surface-2);
  border-top: 1px solid var(--hairline);
  padding: var(--sp-7) 0 var(--sp-6);
}
.colophon__top{
  display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap;
  gap: var(--sp-3);
  padding-bottom: var(--sp-5); margin-bottom: var(--sp-5);
  border-bottom: 1px solid var(--hairline-soft);
}
.colophon__nav{ display: flex; gap: var(--sp-3); flex-wrap: wrap; }
.colophon__nav a{ text-decoration: none; font-size: var(--text-sm); color: var(--text-muted); }
.colophon__nav a:hover{ color: var(--text); }
.colophon__grid{ display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--sp-5); margin-bottom: var(--sp-6); }
.colophon__grid p{ color: var(--text-muted); font-size: var(--text-sm); max-width: 40ch; }
.colophon__line{ font-size: var(--text-xs); color: var(--text-muted); border-top: 1px solid var(--hairline-soft); padding-top: var(--sp-3); }
.ru-stub-banner{ margin-top: var(--sp-2); font-size: var(--text-xs); color: rgb(var(--nude)); }
@media (max-width: 720px){ .colophon__grid{ grid-template-columns: 1fr; } }

/* -------------------------------- mobile persistent bar --------------------------------- */
.mobile-bar{
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 60;
  display: none; gap: var(--sp-2);
  padding: var(--sp-2) var(--sp-3);
  background: rgba(10,10,10,0.92);
  backdrop-filter: blur(10px);
  border-top: 1px solid var(--hairline-soft);
}
.mobile-bar .btn{ flex: 1; justify-content: center; }
@media (max-width: 859px){ .mobile-bar{ display: flex; } body{ padding-bottom: 72px; } }
