/* Дом в Сельцо. Концепция «Сумеречный лес»: тёмная, один свечной акцент, два шрифта с кириллицей (свои файлы). */
@font-face{font-family:"Cormorant Variable";font-style:normal;font-weight:300 700;font-display:swap;
  src:url("../fonts/cormorant-cyrillic-wght-normal.fcbb75438aab.woff2") format("woff2-variations");
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Cormorant Variable";font-style:normal;font-weight:300 700;font-display:swap;
  src:url("../fonts/cormorant-latin-wght-normal.356e67f02c89.woff2") format("woff2-variations");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Onest Variable";font-style:normal;font-weight:100 900;font-display:swap;
  src:url("../fonts/onest-cyrillic-wght-normal.fe2bd26ae82a.woff2") format("woff2-variations");
  unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Onest Variable";font-style:normal;font-weight:100 900;font-display:swap;
  src:url("../fonts/onest-latin-wght-normal.3db826ed1c5d.woff2") format("woff2-variations");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* ---------- tokens ---------- */
:root {
  /* ground: deep spruce ink, three steps */
  --c-floor: oklch(14.5% 0.018 175);   /* footer, treeline */
  --c-night: oklch(19% 0.022 175);     /* page */
  --c-spruce: oklch(23% 0.026 172);    /* raised panel */
  --c-moss: oklch(29% 0.03 170);       /* panel hover */
  --c-line: oklch(40% 0.03 168);       /* hairlines */
  /* text */
  --c-text: oklch(97% 0.01 165);
  --c-dim: oklch(84% 0.018 165);
  /* the only accent: candle brass in a lit window */
  --c-accent: oklch(79% 0.09 85);
  --c-accent-hi: oklch(85% 0.095 88);
  --c-accent-lo: oklch(70% 0.085 82);
  --c-on-accent: oklch(17% 0.03 85);

  --font-display: "Cormorant Variable", "Cormorant", Georgia, serif;
  --font-body: "Onest Variable", "Onest", system-ui, sans-serif;

  --space-2xs: 0.25rem;
  --space-xs: 0.5rem;
  --space-sm: 0.75rem;
  --space-md: 1.25rem;
  --space-lg: 2rem;
  --space-xl: 3rem;
  --space-2xl: 5rem;
  --space-3xl: 8rem;

  --text-sm: 0.875rem;
  --text-base: 1.0625rem;
  --text-lead: clamp(1.1875rem, 1.1rem + 0.4vw, 1.4375rem);
  --text-h3: clamp(1.75rem, 1.5rem + 1vw, 2.375rem);
  --text-h2: clamp(2.75rem, 1.8rem + 3.6vw, 5.25rem);
  --text-display: clamp(4rem, 2.4rem + 6vw, 8rem);

  --radius: 2px;
  --rail-w: 15rem;
  --gutter: clamp(1.25rem, 4vw, 4rem);

  --ease-out: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);
  --dur-fast: 160ms;
  --dur-base: 320ms;
  --dur-slow: 1100ms;
}

/* ---------- base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { overflow-x: clip; scroll-behavior: smooth; scroll-padding-top: var(--space-lg); -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  overflow-x: clip;
  background: var(--c-night);
  color: var(--c-text);
  font-family: var(--font-body);
  font-size: var(--text-base);
  font-weight: 430;
  line-height: 1.6;
  font-feature-settings: "kern", "liga";
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
img { display: block; max-width: 100%; height: auto; }
figure, dl, dd, ul, p, h1, h2, h3 { margin: 0; padding: 0; }
ul { list-style: none; }
a { color: inherit; }
::selection { background: var(--c-accent); color: var(--c-on-accent); }

.skip {
  position: absolute; left: var(--space-sm); top: -4rem; z-index: 100;
  background: var(--c-accent); color: var(--c-on-accent);
  padding: var(--space-xs) var(--space-md); border-radius: var(--radius); text-decoration: none; font-weight: 600;
}
.skip:focus { top: var(--space-sm); }

:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 3px; border-radius: var(--radius); }

/* ---------- type ---------- */
.h2, .h3, .hero-title, .finale-title, .forest-text, .statement-text, .foot-name, .rail-mark-name {
  font-family: var(--font-display);
  font-style: normal;
  font-weight: 500;
  font-variant-numeric: lining-nums;
  letter-spacing: -0.005em;
  overflow-wrap: anywhere;
  min-width: 0;
}
.h2 { font-size: var(--text-h2); line-height: 0.98; }
.h3 { font-size: var(--text-h3); line-height: 1.1; }
.lead { font-size: var(--text-lead); line-height: 1.55; color: var(--c-text); max-width: 34ch; text-wrap: pretty; }
.note { color: var(--c-dim); font-size: var(--text-base); max-width: 38ch; }
.num, .unit { display: block; }
.num { font-family: var(--font-display); font-weight: 600; font-variant-numeric: lining-nums; color: var(--c-accent); line-height: 1; letter-spacing: -0.02em; }
.unit { color: var(--c-dim); font-size: var(--text-base); margin-top: var(--space-xs); }

/* ---------- button: the only action ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 3.25rem; padding: 0 var(--space-lg);
  background: var(--c-accent); color: var(--c-on-accent);
  border: 1px solid var(--c-accent);
  border-radius: var(--radius);
  font: 600 1rem/1 var(--font-body);
  letter-spacing: 0.01em;
  text-decoration: none; white-space: nowrap; cursor: pointer;
  transition: background-color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out), transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-base) var(--ease-out);
}
.btn:hover { background: var(--c-accent-hi); border-color: var(--c-accent-hi); box-shadow: 0 0 0 4px color-mix(in oklch, var(--c-accent) 22%, transparent); }
.btn:active { background: var(--c-accent-lo); border-color: var(--c-accent-lo); transform: translateY(1px); box-shadow: none; }
.btn:focus-visible { outline: 2px solid var(--c-text); outline-offset: 3px; }
.btn[aria-disabled="true"], .btn:disabled { background: var(--c-spruce); color: var(--c-dim); border-color: var(--c-line); cursor: not-allowed; box-shadow: none; transform: none; }
.btn-lg { min-height: 4rem; padding: 0 var(--space-xl); font-size: 1.1875rem; }

/* ---------- shell + rail ---------- */
.shell { display: grid; grid-template-columns: var(--rail-w) minmax(0, 1fr); align-items: stretch; }

.rail {
  align-self: stretch;
  border-right: 1px solid var(--c-line);
  z-index: 20;
}
.rail-inner {
  position: sticky; top: 0; height: min(100svh, 60rem);
  display: flex; flex-direction: column; justify-content: space-between;
  padding: var(--space-xl) var(--space-lg) var(--space-lg);
}
.rail-mark { text-decoration: none; display: block; }
.rail-mark-name { display: block; font-size: 1.875rem; line-height: 1; }
.rail-mark-sub { display: block; margin-top: var(--space-xs); color: var(--c-dim); font-size: var(--text-sm); }
.rail-nav { display: flex; flex-direction: column; gap: var(--space-2xs); }
.rail-nav a {
  position: relative; display: block; padding: var(--space-xs) 0 var(--space-xs) var(--space-md);
  color: var(--c-dim); text-decoration: none; font-size: 1rem; white-space: nowrap;
  transition: color var(--dur-fast) var(--ease-out), padding-left var(--dur-base) var(--ease-out);
}
.rail-nav a::before {
  content: ""; position: absolute; left: 0; top: 50%; width: 0.5rem; height: 1px; margin-top: -0.5px;
  background: var(--c-line); transition: width var(--dur-base) var(--ease-out), background-color var(--dur-fast) var(--ease-out);
}
.rail-nav a:hover { color: var(--c-text); }
.rail-nav a:hover::before { width: 0.875rem; background: var(--c-text); }
.rail-nav a[aria-current="true"] { color: var(--c-accent); padding-left: 1.5rem; }
.rail-nav a[aria-current="true"]::before { width: 1rem; background: var(--c-accent); }
.rail-nav a:active { color: var(--c-accent-lo); }
.rail-foot { display: grid; gap: var(--space-md); }
.rail-times { color: var(--c-dim); font-size: var(--text-sm); line-height: 1.5; }

.stage { min-width: 0; }

/* ---------- hero ---------- */
.hero {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 8fr);
  grid-template-areas: "copy photo" "copy meta";
  align-items: end;
  padding-top: var(--space-xl);
  overflow: hidden;
}
.hero-copy { grid-area: copy; padding: 0 var(--space-md) var(--space-xl) var(--gutter); position: relative; z-index: 2; }
.hero-title { font-size: clamp(3.5rem, 1.6rem + 5vw, 6.5rem); line-height: 0.92; font-weight: 500; margin-bottom: var(--space-lg); overflow-wrap: normal; }
.hero-lead { color: var(--c-dim); font-size: var(--text-lead); line-height: 1.55; max-width: 26ch; margin-bottom: var(--space-lg); text-wrap: pretty; }
.hero-meta { grid-area: meta; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-md) var(--space-lg); padding: var(--space-md) var(--gutter) var(--space-xl) var(--space-lg); color: var(--c-dim); font-size: var(--text-sm); line-height: 1.5; }
.hero-meta li { padding-top: var(--space-sm); border-top: 1px solid var(--c-line); }
.hero-act { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-md) var(--space-lg); }
.hero-price { color: var(--c-text); font-size: var(--text-base); white-space: nowrap; }

.hero-photo { grid-area: photo; position: relative; align-self: start; margin-top: calc(var(--space-xl) * -1); }
.hero-photo img {
  width: 100%;
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 16%), linear-gradient(to bottom, #000 82%, transparent 100%);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(to right, transparent 0, #000 16%), linear-gradient(to bottom, #000 82%, transparent 100%);
  mask-composite: intersect;
  filter: saturate(0.92);
}
.hero-photo figcaption { position: absolute; right: var(--gutter); bottom: var(--space-lg); color: var(--c-dim); font-size: var(--text-sm); text-shadow: 0 1px 8px var(--c-floor), 0 0 2px var(--c-floor); }

/* ---------- statement ---------- */
.statement { padding: var(--space-3xl) var(--gutter) var(--space-3xl) var(--gutter); }
.statement-text { font-size: clamp(2rem, 1.2rem + 3vw, 4rem); line-height: 1.1; max-width: 22ch; margin-left: clamp(0rem, 10vw, 9rem); text-wrap: balance; }
.statement-text b { font-weight: 600; color: var(--c-accent); white-space: nowrap; }

/* ---------- banya ---------- */
.banya {
  display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
  gap: var(--space-xl) clamp(2rem, 6vw, 6rem);
  align-items: end;
  padding: 0 var(--gutter) var(--space-3xl) 0;
}
.banya-photo { border: 1px solid var(--c-line); border-left: 0; border-radius: 0 var(--radius) var(--radius) 0; overflow: hidden; background: var(--c-spruce); }
.banya-photo img { width: 100%; filter: saturate(0.92); }
.banya-copy { display: grid; gap: var(--space-lg); justify-items: start; padding-bottom: var(--space-md); }
.banya-price .num { font-size: clamp(3.5rem, 2.5rem + 4vw, 6rem); }

/* ---------- gallery ---------- */
.gallery {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-lg) clamp(1rem, 2vw, 2rem);
  align-items: start;
  padding: var(--space-2xl) var(--gutter) var(--space-2xl);
  background: color-mix(in oklch, var(--c-night) 30%, transparent);
  border-block: 1px solid var(--c-line);
}
.g-col { display: grid; gap: var(--space-lg); min-width: 0; }
.g-b { margin-top: var(--space-2xl); }
.g-c { margin-top: 0; }
.g-head { display: grid; gap: var(--space-md); padding-bottom: var(--space-md); }
.shot { display: grid; gap: var(--space-xs); }
.shot button {
  display: block; width: 100%; padding: 0; margin: 0; border: 1px solid var(--c-line); border-radius: var(--radius);
  background: var(--c-night); cursor: zoom-in; overflow: hidden; line-height: 0;
  transition: border-color var(--dur-fast) var(--ease-out);
}
.shot img { width: 100%; filter: saturate(0.9) brightness(0.95); transition: filter var(--dur-base) var(--ease-out), transform var(--dur-slow) var(--ease-out); }
.shot button:hover { border-color: var(--c-accent); }
.shot button:hover img { filter: saturate(1) brightness(1.03); transform: scale(1.015); }
.shot button:active img { transform: scale(1); }
.shot figcaption { color: var(--c-dim); font-size: var(--text-sm); }

/* ---------- forest ---------- */
.forest {
  display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr);
  gap: var(--space-xl) clamp(2rem, 5vw, 5rem);
  align-items: end;
  padding: var(--space-3xl) var(--gutter) var(--space-3xl) var(--gutter);
}
.forest-photo { border: 1px solid var(--c-line); border-radius: var(--radius); overflow: hidden; }
.forest-photo img { width: 100%; filter: saturate(0.9) brightness(0.92); }
.forest-copy { display: grid; gap: var(--space-xs); padding-bottom: var(--space-md); }
.forest-text { font-size: clamp(2.25rem, 1.4rem + 2.4vw, 3.75rem); line-height: 1.02; text-wrap: balance; }
.forest-sub { color: var(--c-accent); font-family: var(--font-display); font-weight: 600; font-size: var(--text-h3); line-height: 1.1; }

/* ---------- amenities ---------- */
.amen { padding: var(--space-2xl) var(--gutter) var(--space-3xl); }
.amen .h2 { margin-bottom: var(--space-xl); }
.amen-rows { border-top: 1px solid var(--c-line); }
.amen-row {
  display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr);
  gap: var(--space-md) var(--space-xl);
  padding: var(--space-lg) 0;
  border-bottom: 1px solid var(--c-line);
}
.amen-list { columns: 2; column-gap: var(--space-xl); font-size: var(--text-lead); line-height: 1.4; }
.amen-list li { break-inside: avoid; padding: var(--space-2xs) 0 var(--space-xs); }
.amen-row:nth-child(3) .h3 { color: var(--c-accent); }

/* ---------- prices ---------- */
.prices {
  display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr);
  gap: var(--space-xl) clamp(2rem, 6vw, 6rem);
  align-items: start;
  padding: var(--space-2xl) var(--gutter);
  background: color-mix(in oklch, var(--c-night) 30%, transparent);
  border-block: 1px solid var(--c-line);
}
.prices-main { display: grid; gap: var(--space-lg); justify-items: start; }
.prices-big .num { font-size: clamp(4.5rem, 3rem + 6.5vw, 9rem); }
.ledger { align-self: end; border-top: 1px solid var(--c-line); }
.ledger-row {
  display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-md);
  padding: var(--space-md) 0; border-bottom: 1px solid var(--c-line);
}
.ledger-row dt { font-size: var(--text-lead); min-width: 0; }
.ledger-row dd { font-family: var(--font-display); font-weight: 600; font-size: clamp(1.75rem, 1.4rem + 1vw, 2.5rem); font-variant-numeric: lining-nums; color: var(--c-accent); white-space: nowrap; line-height: 1.1; }
.ledger-row dd small { font-family: var(--font-body); font-size: var(--text-sm); color: var(--c-dim); }
.ledger-note { display: block; margin-top: var(--space-2xs); color: var(--c-dim); font-size: var(--text-sm); line-height: 1.4; max-width: 34ch; }

/* ---------- rules ---------- */
.rules {
  display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 6fr);
  gap: var(--space-xl) clamp(2rem, 6vw, 6rem);
  padding: var(--space-3xl) var(--gutter);
  align-items: end;
}
.rules-title { color: var(--c-text); }
.rules-body { display: grid; gap: var(--space-lg); }
.rules-list { border-top: 1px solid var(--c-line); }
.rules-list li { padding: var(--space-sm) 0; border-bottom: 1px solid var(--c-line); font-size: var(--text-lead); }

/* ---------- way ---------- */
.way {
  display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: var(--space-xl) clamp(2rem, 6vw, 6rem);
  padding: var(--space-2xl) var(--gutter) var(--space-3xl);
  align-items: start;
}
.way-copy { display: grid; gap: var(--space-lg); justify-items: start; }
.way-cap { color: var(--c-dim); font-size: var(--text-sm); margin-bottom: var(--space-md); }
.way-list { display: grid; gap: var(--space-lg); }
.way-list li {
  --m: 10;
  position: relative;
  display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-md);
  padding-bottom: var(--space-sm);
  font-size: var(--text-lead);
}
.way-list li::before { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: var(--c-line); }
.way-list li::after { content: ""; position: absolute; left: 0; bottom: 0; height: 3px; width: calc(var(--m) / 40 * 100%); margin-bottom: -1px; background: var(--c-accent); border-radius: var(--radius); }
.way-min { font-family: var(--font-display); font-weight: 600; font-size: 1.75rem; color: var(--c-accent); white-space: nowrap; font-variant-numeric: lining-nums; }

/* ---------- finale ---------- */
.finale {
  position: relative;
  padding: var(--space-3xl) var(--gutter) 0;
  background: linear-gradient(to bottom, var(--c-night) 0%, var(--c-moss) 100%);
  border-top: 1px solid var(--c-line);
  overflow: hidden;
}
.finale-inner { position: relative; z-index: 2; display: grid; gap: var(--space-lg); justify-items: start; padding-bottom: calc(var(--space-3xl) + 4rem); }
.finale-title { font-size: var(--text-display); line-height: 0.92; }
.finale-sub { font-size: var(--text-lead); color: var(--c-text); max-width: 32ch; }
.treeline {
  position: absolute; left: 0; right: 0; bottom: -1px; height: clamp(8rem, 16vw, 14rem); z-index: 1;
  background: var(--c-floor);
  -webkit-mask: url("../img/treeline.b99b3dd70418.svg") center bottom / cover no-repeat;
  mask: url("../img/treeline.b99b3dd70418.svg") center bottom / cover no-repeat;
}

/* ---------- footer ---------- */
.foot { background: var(--c-floor); padding: var(--space-xl) var(--gutter) var(--space-2xl); display: grid; gap: var(--space-xs); }
.foot-name { font-size: 2rem; line-height: 1; }
.foot-line { color: var(--c-dim); font-size: var(--text-sm); max-width: 60ch; }

/* ---------- lightbox ---------- */
.lightbox { border: 0; padding: 0; background: transparent; color: var(--c-text); max-width: min(92vw, 1200px); max-height: 94svh; overflow: visible; }
.lightbox::backdrop { background: color-mix(in oklch, var(--c-floor) 94%, transparent); }
.lightbox img { max-width: 100%; max-height: 80svh; width: auto; height: auto; margin: 0 auto; border-radius: var(--radius); border: 1px solid var(--c-line); }
.lightbox p { margin-top: var(--space-sm); text-align: center; color: var(--c-dim); font-size: var(--text-sm); }
.lb-close {
  display: block; margin: var(--space-sm) auto 0; padding: var(--space-xs) var(--space-md); min-height: 2.75rem;
  background: transparent; color: var(--c-text); border: 1px solid var(--c-line); border-radius: var(--radius);
  font: 500 0.9375rem var(--font-body); cursor: pointer; white-space: nowrap;
  transition: border-color var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out);
}
.lb-close:hover { border-color: var(--c-accent); color: var(--c-accent); }
.lb-close:active { color: var(--c-accent-lo); }

/* ---------- entrance (only on load, nothing hidden behind scroll) ---------- */
@keyframes dusk { from { opacity: 0; filter: saturate(0.6) brightness(0.45); } to { opacity: 1; filter: saturate(0.92) brightness(1); } }
@keyframes rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.hero-photo img { animation: dusk var(--dur-slow) var(--ease-out) both; }
.hero-title { animation: rise 800ms var(--ease-out) 120ms both; }
.hero-lead { animation: rise 800ms var(--ease-out) 260ms both; }
.hero-act { animation: rise 800ms var(--ease-out) 400ms both; }

/* ---------- tablet ---------- */
@media (max-width: 80rem) {
  :root { --rail-w: 13rem; }
  .rail-inner { padding-inline: var(--space-md); }
  .amen-list { columns: 1; }
}

/* ---------- mobile + narrow: rail becomes a top bar ---------- */
@media (max-width: 64rem) {
  .shell { display: block; }
  .rail {
    position: sticky; top: 0; align-self: auto;
    border-right: 0; border-bottom: 1px solid var(--c-line);
    background: var(--c-night);
  }
  .rail-inner {
    position: static; height: auto; flex-direction: row; align-items: center; justify-content: space-between;
    gap: var(--space-md); padding: var(--space-sm) var(--gutter);
  }
  .rail-nav, .rail-times { display: none; }
  .rail-foot { display: block; }
  .rail-mark-name { font-size: 1.5rem; }
  .rail-mark-sub { display: none; }
  .rail .btn { min-height: 2.75rem; padding: 0 var(--space-md); font-size: 0.9375rem; }
  html { scroll-padding-top: 4.5rem; }

  .hero { grid-template-columns: minmax(0, 1fr); grid-template-areas: "photo" "copy" "meta"; padding-top: 0; }
  .hero-photo { margin-top: 0; }
  .hero-photo img { max-height: min(62svh, 34rem); object-fit: cover; object-position: 50% 45%; }
  .hero-meta { padding: 0 var(--gutter) var(--space-2xl); grid-template-columns: minmax(0, 1fr); gap: var(--space-sm); }
  .hero-meta li { padding-top: var(--space-xs); }
  .hero-photo img { -webkit-mask-image: linear-gradient(to bottom, #000 78%, transparent 100%); mask-image: linear-gradient(to bottom, #000 78%, transparent 100%); }
  .hero-photo figcaption { left: var(--gutter); right: auto; bottom: var(--space-xs); }
  .hero-copy { padding: var(--space-sm) var(--gutter) var(--space-xl); }
  .hero-lead { max-width: 40ch; }

  .statement { padding-block: var(--space-2xl); }
  .statement-text { margin-left: 0; max-width: 24ch; }

  .banya { grid-template-columns: minmax(0, 1fr); padding-right: 0; padding-bottom: var(--space-2xl); }
  .banya-photo { max-width: 28rem; margin-right: var(--gutter); }
  .banya-copy { padding-inline: var(--gutter); }

  .gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); padding-block: var(--space-xl) var(--space-2xl); }
  .g-c { grid-column: 1 / -1; grid-row: 1; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
  .g-c .g-head { grid-column: 1 / -1; }
  .g-b { margin-top: var(--space-xl); }

  .forest { grid-template-columns: minmax(0, 1fr); padding-block: var(--space-2xl); }
  .amen { padding-block: var(--space-xl) var(--space-2xl); }
  .amen-row { grid-template-columns: minmax(0, 1fr); }
  .amen-list { columns: 2; }
  .prices, .rules, .way { grid-template-columns: minmax(0, 1fr); }
  .rules { padding-block: var(--space-2xl); }
  .way { padding-block: var(--space-xl) var(--space-2xl); }
}

@media (max-width: 40rem) {
  :root { --text-base: 1rem; }
  .gallery { grid-template-columns: minmax(0, 1fr); }
  .g-c { grid-template-columns: minmax(0, 1fr); }
  .g-b { margin-top: 0; }
  .amen-list { columns: 1; }
  .ledger-row { align-items: baseline; }
  .ledger-row dd small { display: block; text-align: right; }
  .banya-photo { max-width: none; margin-right: var(--gutter); }
  .finale-inner { padding-bottom: calc(var(--space-2xl) + 4rem); }
  .btn-lg { width: 100%; padding: 0 var(--space-md); }
  .hero-act .btn { flex: 1 1 auto; }
  .statement-text b { white-space: normal; }
}

/* планшет: в верхней полосе остаётся навигация по разделам */
@media (min-width: 56rem) and (max-width: 64rem) {
  .rail-nav { display: flex; flex-direction: row; gap: var(--space-md); margin-inline: auto; }
  .rail-nav a, .rail-nav a[aria-current="true"] { padding: var(--space-xs) 0; font-size: 0.9375rem; }
  .rail-nav a::before { display: none; }
  .rail-nav a[aria-current="true"] { box-shadow: inset 0 -1px 0 var(--c-accent); }
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition-duration: 0.01ms !important; }
  .shot button:hover img { transform: none; }
}

/* ---------- общие переменные для страниц бронирования, документов и баннера ---------- */
:root {
  color-scheme: dark;
  --bg: var(--c-night); --bg2: var(--c-spruce); --ink: var(--c-text); --muted: var(--c-dim); --line: var(--c-line);
  --accent: var(--c-accent); --on-accent: var(--c-on-accent); --bad: oklch(74% 0.13 28);
  --r: var(--radius); --font: var(--font-body); --maxw: 1200px; --gut: var(--gutter);
  --ok-bg: oklch(34% 0.06 165); --ok-ink: oklch(90% 0.05 165);
  --wait-bg: oklch(36% 0.06 85); --wait-ink: oklch(90% 0.07 85);
  --no-bg: oklch(34% 0.07 25); --no-ink: oklch(90% 0.05 25);
  --tree: oklch(32% 0.055 165); --tree-alpha: .85;
}
.wrap { max-width: var(--maxw); margin: 0 auto; padding-inline: var(--gut); }
.block { padding-block: clamp(2.5rem, 6vw, 5rem); }
.muted { color: var(--muted); } .small { font-size: 0.875rem; } .nowrap { white-space: nowrap; }
.btn.small { min-height: 2.5rem; padding: 0 var(--space-md); font-size: 0.9375rem; }
.btn.wide { width: 100%; margin-top: 14px; }
/* заголовки на служебных страницах (бронь, статус, документы) */
.wrap h1, .wrap h2, .wrap h3 { font-family: var(--font-display); font-weight: 500; letter-spacing: -0.01em; line-height: 1.05; overflow-wrap: break-word; }
.wrap h1 { font-size: clamp(2.4rem, 1.6rem + 3vw, 4rem); margin-bottom: 0.5em; }
.wrap h2 { font-size: clamp(1.8rem, 1.4rem + 1.6vw, 2.6rem); margin-bottom: 0.6em; }
.wrap h3 { font-size: 1.5rem; }
.wrap p { max-width: 62ch; }
.foot-links, .foot-seller { display: flex; flex-wrap: wrap; gap: 6px 22px; }
.foot p { max-width: none; }
.foot a { color: var(--c-dim); }
.foot .contact a, .foot-links a:hover, .foot-seller a:hover { color: var(--c-text); }
.foot .contact { margin-top: var(--space-xs); }
.foot { gap: var(--space-xs); }

/* страницы бронирования и статуса */
.bookgrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,5vw,64px);align-items:start}
.narrow{max-width:700px}
label{display:block;margin:12px 0;font-size:14px;color:var(--muted)}
input[type=text],input[type=tel],input[type=email],input[type=number],select,textarea{display:block;width:100%;margin-top:6px;padding:13px 14px;font:400 16px var(--font);border:1px solid var(--line);border-radius:var(--r);background:var(--bg);color:var(--ink)}
input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:0}
label.extra{display:flex;justify-content:space-between;gap:14px;align-items:center;color:var(--ink)}
label.extra input{width:76px;margin:0}
label.check{display:flex;gap:12px;align-items:flex-start;color:var(--ink)}label.check input{margin-top:5px;accent-color:var(--accent)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.alert{background:color-mix(in srgb,var(--bad) 12%,transparent);color:var(--bad);border-radius:var(--r);padding:12px 16px;margin-bottom:16px}
#cal-msg.bad{color:var(--bad)}
.notice{background:var(--bg2);padding:12px 16px;border-radius:var(--r);font-size:14px}
.quote{background:var(--bg2);border-radius:var(--r);padding:16px 18px}.quote.err{color:var(--bad)}
.quote .row{display:flex;justify-content:space-between;gap:12px;padding:3px 0;font-size:15px;font-variant-numeric:tabular-nums}
.quote .row.sum{border-top:1px solid var(--line);margin-top:8px;padding-top:10px}.quote .row.disc{color:var(--accent)}
.quote .row.total{border-top:1px solid var(--line);margin-top:8px;padding-top:10px;font-size:1.3rem;font-weight:650}.quote .row.err{color:var(--bad);font-size:14px}
.card{background:var(--bg2);border-radius:var(--r);padding:20px 22px}
.big{font-size:1.9rem;font-weight:650;letter-spacing:-.02em}
.status{display:inline-block;padding:4px 14px;border-radius:var(--r);background:var(--bg2);font-weight:600}
.s-confirmed{background:var(--ok-bg);color:var(--ok-ink)}.s-pending{background:var(--wait-bg);color:var(--wait-ink)}.s-cancelled,.s-expired{background:var(--no-bg);color:var(--no-ink)}

/* календарь Air Datepicker */
.air-datepicker{--adp-font-family:var(--font);--adp-width:100%;--adp-font-size:15px;--adp-cell-size:48px;--adp-day-cell-height:42px;--adp-day-name-color:var(--muted);--adp-background-color:var(--bg2);--adp-color:var(--ink);--adp-border-color:transparent;--adp-border-radius:var(--r);--adp-accent-color:var(--accent);--adp-background-color-hover:color-mix(in srgb,var(--accent) 16%,transparent);--adp-background-color-in-range:color-mix(in srgb,var(--accent) 18%,transparent);--adp-background-color-in-range-hover:color-mix(in srgb,var(--accent) 26%,transparent);--adp-cell-background-color-selected:var(--accent);--adp-cell-background-color-selected-hover:var(--accent);--adp-color-secondary:var(--muted);--adp-nav-arrow-color:var(--ink);--adp-nav-action-color:var(--ink);--adp-color-current-date:var(--accent);width:100%}
.air-datepicker-cell.-selected-{color:var(--on-accent)}
.air-datepicker-cell.-day-{flex-direction:column;line-height:1.1}.air-datepicker-cell .d{font-size:15px}.air-datepicker-cell small{font-size:12px;color:var(--muted)}
.air-datepicker-cell.-selected- small{color:var(--on-accent)}.air-datepicker-cell.-busy-{text-decoration:line-through;opacity:.5}

@media (max-width:760px){.bookgrid{grid-template-columns:1fr}}
.page-title{margin-bottom:.6em}
.bookgrid h3{margin:1.8em 0 .6em}.bookgrid .col>h2:first-child{margin-top:0}
.air-datepicker-nav--title i{color:var(--muted)}

/* связь с владельцем и шаги после заявки */
.contact{margin:0}.contact a{font-weight:600}
.foot .contact a{color:var(--ink)}
.next-steps{margin:1.4em 0 .4em;font-size:15px;color:var(--muted)}.next-steps p{max-width:none;margin:0 0 .8em}
.legend{margin:.1em 0 1.2em}
/* поля формы: крупные переключатели и одинаковая ширина числовых полей */
label.extra input[type=checkbox],label.check input[type=checkbox]{width:26px;height:26px;margin:0;flex:none;accent-color:var(--accent)}
label.check input[type=checkbox]{margin-top:2px}
label.extra input[type=number]{flex:none}
.switch{cursor:pointer}
/* нижняя панель с итогом на телефоне */
.sumbar{position:fixed;left:0;right:0;bottom:0;z-index:20;display:none;align-items:center;justify-content:space-between;gap:16px;padding:12px var(--gut) calc(12px + env(safe-area-inset-bottom));background:var(--bg2);border-top:1px solid var(--line)}
.sumbar b{display:block;font-size:1.2rem;font-weight:650;font-variant-numeric:tabular-nums}
.sumbar .muted{display:block;font-size:13px;max-width:34ch}
.sumbar .btn{flex:none;padding:12px 20px;font-size:15px}
@media (max-width:760px){.sumbar:not([hidden]){display:flex}body.has-sumbar{padding-bottom:84px}.air-datepicker{--adp-cell-size:46px;--adp-day-cell-height:46px}}

/* юридические страницы: чистая типографика документа */
.legal{max-width:760px}
.legal h1{font-size:clamp(1.5rem,3vw,2.2rem);margin-bottom:.6em}
.legal h2{font-size:1.15rem;font-family:var(--font);font-weight:600;letter-spacing:0;margin:1.4em 0 .5em}
.legal h3{font-size:1.05rem;margin:1.8em 0 .5em}
.legal p,.legal li{max-width:none}
.legal ul{padding-left:1.2em;margin:0 0 1em}.legal li{margin-bottom:.4em}
.legal-nav{margin-top:3em;padding-top:1.2em;border-top:1px solid var(--line)}

/* баннер cookie: один раз, выбор помнится год */
.cookie{position:fixed;left:var(--gut);right:var(--gut);bottom:16px;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:760px;margin:0 auto;padding:14px 18px;background:var(--bg2);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 8px 30px rgba(0,0,0,.18)}
.cookie[hidden]{display:none}
.cookie p{margin:0;font-size:14px;max-width:none}.cookie .btn{flex:none}
@media (max-width:560px){.cookie{flex-direction:column;align-items:stretch;bottom:12px}.cookie .btn{width:100%}}
.messengers{display:inline-flex;flex-wrap:wrap;gap:4px 18px;margin-left:6px}.messengers a{font-weight:600;white-space:nowrap}
/* фон: лес стволов от низа до верха экрана (сужаются кверху, с ветками). Один рисунок-маска, внизу плотнее, к верху растворяется; цвет и прозрачность из переменных темы */
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:var(--tree);opacity:var(--tree-alpha);
  -webkit-mask:url("../img/forest.e43a08616f8d.svg") 0 0/640px 100% repeat-x;mask:url("../img/forest.e43a08616f8d.svg") 0 0/640px 100% repeat-x}
@media print{body::before{display:none}}
@media (max-width:560px){body::before{-webkit-mask-size:420px 100%;mask-size:420px 100%}}

/* ---------- форма: флажок и переключатель в стиле сайта, одна стрелка списка, отметки обязательных полей ---------- */
label.check input[type=checkbox], label.extra input[type=checkbox] {
  -webkit-appearance: none; appearance: none; flex: none; margin: 0; cursor: pointer;
  border: 1px solid color-mix(in oklch, var(--c-text) 45%, transparent); background: var(--bg);
  transition: background-color .2s, border-color .2s, box-shadow .2s;
}
label.check input[type=checkbox] { width: 22px; height: 22px; margin-top: 3px; border-radius: 4px;
  background-repeat: no-repeat; background-position: center; background-size: 14px; }
label.check input[type=checkbox]:checked { background-color: var(--c-accent); border-color: var(--c-accent);
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 14'%3E%3Cpath d='M2.5 7.5l3 3 6-7' fill='none' stroke='%23161c17' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E"); }
label.extra input[type=checkbox] { position: relative; width: 46px; height: 26px; border-radius: 13px; }
label.extra input[type=checkbox]::after { content: ""; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%;
  background: var(--c-dim); transition: transform .2s, background-color .2s; }
label.extra input[type=checkbox]:checked { background-color: var(--c-accent); border-color: var(--c-accent); }
label.extra input[type=checkbox]:checked::after { transform: translateX(20px); background: var(--c-on-accent); }
label.check input[type=checkbox]:focus-visible, label.extra input[type=checkbox]:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { label.extra input[type=checkbox]::after, label.check input[type=checkbox], label.extra input[type=checkbox] { transition: none; } }
.select { position: relative; display: block; }
.select select { -webkit-appearance: none; appearance: none; padding-right: 44px; cursor: pointer; }
.select::after { content: ""; position: absolute; right: 12px; top: 50%; width: 12px; height: 12px; transform: translateY(-50%);
  background: var(--c-dim); pointer-events: none;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px 12px no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/12px 12px no-repeat; }
.star { color: var(--c-accent); font-weight: 600; }
.field-hint { display: block; margin-top: 2px; color: var(--c-dim); font-size: var(--text-sm); line-height: 1.4; font-weight: 400; }
.req-note { margin: -2px 0 8px; }
.consent-line { margin-top: 10px; max-width: 46ch; }

/* ---------- доводка: календарь, поля, стрелки, подвал ---------- */
/* поля формы: рамка контрастнее (>= 3:1 к фону) */
input[type=text],input[type=tel],input[type=email],input[type=number],select,textarea{border-color:oklch(52% 0.035 168)}
label{font-size:15px;line-height:1.4}
label .field-hint{font-size:var(--text-sm)}
label.extra>span>br{display:none}
label.extra>span>b,label.extra>span>.muted{display:block}
label.extra>span>b{font-weight:600;line-height:1.35}
label.extra>span>.muted{font-size:14px;line-height:1.4;margin-top:2px}
/* флажок: рамка в верхней строке текста */
label.check{line-height:22px;font-size:15px}
label.check input[type=checkbox]{margin-top:0}
.star{font-size:1.1em;line-height:1}
/* строки расчёта: табличные цифры только у сумм */
.quote .row{font-variant-numeric:normal}
.quote .row span:last-child{font-variant-numeric:tabular-nums;white-space:nowrap}
/* мессенджеры в блоке «Что будет после заявки»: без сдвига, в одну линию */
.next-steps .messengers{display:flex;margin:6px 0 0}
.messengers a{padding-block:4px}

/* календарь Air Datepicker в палитре сайта */
.air-datepicker{
  --adp-border-color:var(--line);--adp-border-color-inner:var(--line);--adp-border-color-inline:var(--line);
  --adp-background-color-active:color-mix(in srgb,var(--accent) 26%,transparent);
  --adp-cell-background-color-hover:color-mix(in srgb,var(--accent) 16%,transparent);
  --adp-cell-background-color-in-range:color-mix(in srgb,var(--accent) 26%,transparent);
  --adp-cell-background-color-in-range-hover:color-mix(in srgb,var(--accent) 36%,transparent);
  --adp-cell-border-color-in-range:transparent;
  --adp-color-disabled:oklch(56% 0.025 168);--adp-color-disabled-in-range:oklch(66% 0.03 168);
  --adp-color-other-month:oklch(62% 0.025 168);--adp-color-other-month-hover:var(--ink);
  --adp-nav-height:36px;--adp-nav-action-size:36px;--adp-nav-color-secondary:var(--muted);
  --adp-day-name-color:var(--muted);
  box-sizing:border-box;border-radius:var(--r);
}
.air-datepicker-nav{align-items:center}
.air-datepicker-nav--title{font-size:16px;font-weight:600;line-height:1;height:36px;padding:0 10px}
.air-datepicker-nav--title i{font-weight:400;margin-left:.35em}
.air-datepicker-nav--action{height:36px}
.air-datepicker-nav--action svg{width:36px;height:36px;display:block}
.air-datepicker-nav--action path{stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round}
.air-datepicker-days-names{margin-bottom:2px}
.air-datepicker-body--day-name{font-size:12px;font-weight:500;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.air-datepicker-cell{border-radius:var(--r)}
.air-datepicker-cell.-in-range-{border-radius:0}
.air-datepicker-cell.-range-from-{border-radius:var(--r) 0 0 var(--r)}
.air-datepicker-cell.-range-to-{border-radius:0 var(--r) var(--r) 0}
.air-datepicker-cell.-range-to-.-range-from-{border-radius:var(--r)}
.air-datepicker-cell.-selected-,.air-datepicker-cell.-selected-.-focus-{border:0}
.air-datepicker-cell small{color:var(--muted)}
.air-datepicker-cell.-selected- small,.air-datepicker-cell.-selected-.-focus- small{color:var(--on-accent)}
.air-datepicker-cell.-busy-{opacity:.55}
#cal-msg{margin:14px 0 4px;color:var(--ink);font-size:15px}
#cal-msg.bad{color:var(--bad)}
.legend{margin-top:0}

/* подвал: ритм и одинаковые ссылки */
.foot{gap:var(--space-sm);padding-block:var(--space-xl) var(--space-2xl)}
.foot-name{margin-bottom:var(--space-2xs)}
.foot-links,.foot-seller{gap:var(--space-2xs) var(--space-md);align-items:baseline}
.foot-seller a,.foot-links a{text-underline-offset:.2em}
.foot .contact{margin-top:var(--space-2xs)}
/* орфанные переносы в списках правил */
.rules-list li,.amen-list li,.lead,.note{text-wrap:pretty}

/* юридические страницы: заголовки разделов не мельче текста, абзацы разделены, колонка по левой линии сайта */
.legal{max-width:calc(46rem + var(--gut) * 2);margin-left:0}
.legal h1{font-size:clamp(1.9rem,1.4rem + 1.6vw,2.6rem);line-height:1.1;margin-bottom:.7em}
.legal h2{font-size:1.2rem}
.legal h3{font-family:var(--font-display);font-size:clamp(1.5rem,1.3rem + .6vw,1.75rem);font-weight:600;font-variant-numeric:lining-nums;line-height:1.15;margin:2em 0 .55em}
.legal p{margin:0 0 .75em;line-height:1.65}
.legal li{line-height:1.6}
.legal-nav{line-height:1.8}

/* cookie-баннер: компактнее на телефоне и выше нижней панели с итогом */
@media (max-width:560px){
  .cookie{left:12px;right:12px;bottom:12px;padding:12px 14px;gap:10px}
  .cookie p{font-size:13px;line-height:1.45}
  .cookie .btn{min-height:2.5rem}
}
@media (max-width:760px){body.has-sumbar .cookie{bottom:calc(84px + 8px)}}
.cookie p a{text-underline-offset:.2em}

/* блок связи: «Имя на связи:» и мессенджеры переносятся вместе, без сдвига влево */
.contact{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:.6rem}
.contact .messengers{display:flex;flex-wrap:wrap;margin:0;gap:2px 1.1rem}
.next-steps .messengers{margin:0}
.foot-links a,.foot-seller a{padding-block:.25rem}
.legal-nav{display:flex;flex-wrap:wrap;gap:.25rem 1.25rem}
.legal-nav a{padding-block:.25rem;text-underline-offset:.2em}

/* ---------- телефон: кнопка «Разделы» раскрывает навигацию под верхней полосой ---------- */
.rail-toggle { display: none; }
@media (max-width: 55.99rem) {
  .rail-inner { gap: var(--space-sm); }
  .rail-mark { margin-right: auto; min-width: 0; }
  .rail-toggle {
    display: inline-flex; align-items: center; gap: 0.625rem; min-height: 2.75rem; padding: 0 var(--space-xs);
    background: none; border: 0; color: var(--c-text); font: inherit; font-size: 0.9375rem; cursor: pointer;
  }
  .rail-toggle:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 2px; }
  .rail-toggle-bars { position: relative; display: block; width: 1.25rem; height: 0.75rem; }
  .rail-toggle-bars::before, .rail-toggle-bars::after {
    content: ""; position: absolute; left: 0; width: 100%; height: 1.5px; background: currentColor;
    transition: transform .2s ease-out, top .2s ease-out;
  }
  .rail-toggle-bars::before { top: 0.125rem; }
  .rail-toggle-bars::after { top: 0.5625rem; }
  .rail.menu-open .rail-toggle-bars::before { top: 0.34rem; transform: rotate(45deg); }
  .rail.menu-open .rail-toggle-bars::after { top: 0.34rem; transform: rotate(-45deg); }
  .rail-foot { flex: none; }
  .rail.menu-open .rail-nav {
    display: flex; position: absolute; top: 100%; left: 0; right: 0; flex-direction: column; gap: 0;
    padding: var(--space-2xs) var(--gutter) var(--space-sm); background: var(--c-night); border-bottom: 1px solid var(--c-line);
  }
  .rail.menu-open .rail-nav a, .rail.menu-open .rail-nav a[aria-current="true"] {
    display: flex; align-items: center; min-height: 3rem; padding: 0; font-size: 1.0625rem; border-bottom: 1px solid var(--c-line);
  }
  .rail.menu-open .rail-nav a:last-child { border-bottom: 0; }
  .rail-nav a::before { display: none; }
}
@media (max-width: 24rem) { .rail-toggle-text { display: none; } .rail-toggle { padding: 0 var(--space-2xs); } }
@media (prefers-reduced-motion: reduce) { .rail-toggle-bars::before, .rail-toggle-bars::after { transition: none; } }

/* ---------- страница бронирования: фото дома на фоне, затемнено, чтобы текст и поля читались ---------- */
.book-page::before { display: none; }
.book-page::after {
  content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background:
    linear-gradient(oklch(15% 0.02 170 / 0.62), oklch(15% 0.02 170 / 0.72)),
    url("../img/book-bg.bd79a44861e0.webp") center 40% / cover no-repeat;
}
.book-page .bookgrid { background: color-mix(in oklch, var(--c-night) 66%, transparent); padding: var(--space-md) var(--space-md) var(--space-lg); border-radius: var(--radius); }
@media (max-width: 760px) { .book-page .bookgrid { padding: var(--space-sm) var(--space-sm) var(--space-md); margin-inline: calc(var(--space-sm) * -1); } }
@media print { .book-page::after { display: none; } }
@media (min-width: 64.01rem) { .book-page .rail { background: color-mix(in oklch, var(--c-night) 72%, transparent); } }

/* текст поверх леса: тёмное свечение по контуру букв отделяет его от стволов (кнопки и поля не трогаем) */
main :is(h1, h2, h3, p, li, dt, dd, figcaption, small, label, span):not(.btn, .num, .unit) {
  text-shadow: 0 0 0.5rem color-mix(in oklch, var(--c-night) 92%, transparent), 0 0 1.25rem color-mix(in oklch, var(--c-night) 80%, transparent);
}
.rail-nav a, .rail-times, .foot-line, .foot-links a, .foot-seller {
  text-shadow: 0 0 0.5rem color-mix(in oklch, var(--c-night) 92%, transparent);
}
.book-page main :is(h1, h2, h3, p, li, dt, dd, figcaption, small, label, span) { text-shadow: none; }
