/* ── Шрифты: self-host, font-display: swap (04, «Шрифты: начертания и загрузка») ── */
@font-face{font-family:"Geologica";font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/geologica-cyrillic-wght-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Geologica";font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/geologica-latin-wght-normal.woff2) format("woff2");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:"Geologica";font-style:normal;font-weight:100 900;font-display:swap;src:url(../fonts/geologica-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Literata";font-style:normal;font-weight:200 900;font-display:swap;src:url(../fonts/literata-cyrillic-wght-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Literata";font-style:normal;font-weight:200 900;font-display:swap;src:url(../fonts/literata-latin-wght-normal.woff2) format("woff2");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:"Literata";font-style:normal;font-weight:200 900;font-display:swap;src:url(../fonts/literata-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/ibm-plex-mono-cyrillic-400-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2");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:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/ibm-plex-mono-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/ibm-plex-mono-symbols-400-normal.woff2) format("woff2");unicode-range:U+2248}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/ibm-plex-mono-cyrillic-500-normal.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2");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:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/ibm-plex-mono-latin-ext-500-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
/* Запасные начертания: вертикальные метрики из файлов веб-шрифтов, size-adjust по кириллице текстов сайта (04, «Шрифты»); действуют только до подмены */
@font-face{font-family:"Geologica Fallback";src:local(Arial),local(ArialMT),local("Liberation Sans"),local(Arimo);ascent-override:91.3349%;descent-override:25.7611%;line-gap-override:0%;size-adjust:106.75%}
@font-face{font-family:"Literata Fallback";src:local("Times New Roman"),local(TimesNewRomanPSMT),local("Liberation Serif"),local(Tinos);ascent-override:99.9575%;descent-override:26.1571%;line-gap-override:0%;size-adjust:117.75%}
@font-face{font-family:"IBM Plex Mono Fallback";src:local("Courier New"),local(CourierNewPSMT),local("Liberation Mono"),local(Cousine);ascent-override:102.5308%;descent-override:27.5083%;line-gap-override:0%;size-adjust:99.97%}

/* ── Токены 04 (дословно) ── */
:root {
  /* ── Цвет: регистр «кадр» ── */
  --color-shungite: #121614;               /* color.shungite — фон «кадра», шапка, подвал без кадра */
  --color-shungite-2: #1C221F;             /* color.shungite-2 — поверхность на тёмном: полоса фактов, меню, липкая полоса */
  --color-frost: #E6E9E3;                  /* color.frost — текст на тёмном и поверх медиа */
  --color-muted-dark: #9AA49D;             /* color.muted-dark — вторичный текст, только на сплошном тёмном */
  --color-rule-dark: #39423D;              /* линейки на тёмном (декор) */
  --color-rule-on-media: rgb(230 233 227 / 0.4); /* линейки поверх кадра (декор) */

  /* ── Цвет: регистр «паспорт» ── */
  --color-lichen: #DCDFD5;                 /* color.lichen — фон «паспорта»; фон поля ввода */
  --color-lichen-2: #CDD2C6;               /* color.lichen-2 — поверхность на светлом: форма, CTA-полоса, фасад карты */
  --color-ink: #141815;                    /* color.ink — текст на светлом и поверх тумана */
  --color-muted-light: #4E5751;            /* color.muted-light — вторичный текст; граница полей формы */
  --color-rule-light: #A9B0A6;             /* линейки строк таблиц и описей (декор) */

  /* ── Акцент ── */
  --color-brusnika: #A8232B;               /* color.brusnika — на светлом */
  --color-brusnika-hover: #8E1D24;
  --color-brusnika-active: #761820;
  --color-brusnika-lit: #E0505A;           /* color.brusnika-lit — на тёмном */
  --color-brusnika-lit-hover: #EA6F77;
  --color-brusnika-lit-active: #F28D93;

  /* ── Состояния (сообщения стоят только на светлых поверхностях) ── */
  --color-error: var(--color-brusnika);
  --color-success: #2F5E43;
  --color-warning: #5C5A1F;

  /* ── Затемнение под текстом поверх медиа: ровный слой на весь кадр ── */
  --color-scrim: rgb(18 22 20 / 0.44);     /* color.scrim */
  --color-scrim-dense: rgb(18 22 20 / 0.5);/* color.scrim-dense — только media.sig-spring в сцене и media.road */
  --color-scrim-deep: rgb(18 22 20 / 0.72);/* подвал с кадром */

  /* ── Шрифты ── */
  --font-display: "Geologica", "Geologica Fallback", Arial, sans-serif;           /* font.display */
  --font-text: "Literata", "Literata Fallback", "Times New Roman", serif;         /* font.text */
  --font-mono: "IBM Plex Mono", "IBM Plex Mono Fallback", "Courier New", monospace; /* font.mono */
  --fw-hair: 200;
  --fw-light: 300;
  --fw-regular: 400;
  --fw-medium: 500;

  /* ── Сетка ── */
  --norm-grid-cols: 4;
  --norm-page-margin: clamp(20px, 5vw, 80px);
  --norm-gutter: clamp(16px, 2vw, 32px);
  --norm-content-max: 1440px;
  --norm-measure: 62ch;
  --norm-header-h: 56px;
  --fold: calc(100svh - var(--norm-header-h));
  --norm-text-zone-m: calc(0.4 * var(--fold));
  --norm-text-zone-m-max: calc(0.6 * var(--fold));
  --norm-text-zone-m-max-nomera: calc(0.48 * var(--fold));
  --norm-band-h: calc(0.35 * var(--fold));
  --norm-band-ratio-min: 2.6;
  --norm-footer-max: calc(1.1 * var(--fold));
  --norm-sticky-reserve: calc(var(--border-hair) + 2 * var(--space-3) + var(--control-h) + env(safe-area-inset-bottom, 0px));
  --norm-sig-width: 100%;
  --norm-sig-height: var(--fold);
  --norm-fact-col: calc(0.6 * (min(100vw, var(--norm-content-max)) - 2 * var(--norm-page-margin)));
  --norm-fact-cell-min: 8em;
  --norm-hero-fit-h: calc(22.22svh - 7.4rem);
  --norm-seasons-strips-h: calc(var(--fold) - var(--space-7) - var(--fs-h1) * var(--lh-h1) - var(--space-3) - var(--fs-lead) * var(--lh-lead) - var(--space-6));

  /* ── Калибровочные ширины строк (em при своём начертании и трекинге) ── */
  --norm-hero-line-em: 9.12;   /* «у Онежского озера.» в --fs-display */
  --norm-hero-m-line-em: 7.425;/* «Шесть номеров» в --fs-display */
  --norm-h1-word-em: 6.83;     /* «персональных» в --fs-h1 — контрольное слово размера */
  --norm-sig-word-em: 2.9;     /* наибольшее из «Осень», «Весна» в --fs-sig */
  --norm-fact-em: 5.8;         /* «от 7 500 ₽» в --fs-fact: 10 знаков × (0.6 − 0.02) em */

  /* ── Шкала размеров (9 ступеней) ── */
  --fs-caption: clamp(0.75rem, 0.7292rem + 0.0926vw, 0.8125rem);
  --fs-small: clamp(0.875rem, 0.8542rem + 0.0926vw, 0.9375rem);
  --fs-body: clamp(1rem, 0.9583rem + 0.1852vw, 1.125rem);
  --fs-lead: clamp(1.1875rem, 1.0833rem + 0.463vw, 1.5rem);
  --fs-h2: clamp(1.75rem, 1.375rem + 1.6667vw, 2.875rem);
  --fs-fact: clamp(calc(2 * var(--fs-body)), calc(var(--norm-fact-col) / var(--norm-fact-em)), calc(3 * var(--fs-body)));
  --fs-h1: clamp(calc(2.2 * var(--fs-body)), calc(0.98 * (min(100vw, var(--norm-content-max)) - 2 * var(--norm-page-margin)) / var(--norm-h1-word-em)), calc(4 * var(--fs-body)));
  --fs-display: clamp(calc(2.6 * var(--fs-body)), min(calc(0.94 * 100cqi / var(--norm-hero-m-line-em)), 6.6svh), calc(5 * var(--fs-body)));
  --fs-sig: min(calc((100cqi + 0.5 * var(--norm-page-margin)) / var(--norm-sig-word-em)), calc(0.56 * var(--fold)));

  /* ── Высота строки ── */
  --lh-sig: 0.86;
  --lh-display: 1;
  --lh-h1: 1.02;
  --lh-fact: 1;
  --lh-h2: 1.08;
  --lh-h3: 1.25;
  --lh-lead: 1.4;
  --lh-body: 1.6;
  --lh-small: 1.45;
  --lh-caption: 1.45;

  /* ── Трекинг ── */
  --ls-sig: -0.03em;
  --ls-display: -0.025em;
  --ls-h1: -0.02em;
  --ls-fact: -0.02em;
  --ls-h2: -0.015em;
  --ls-h3: -0.01em;
  --ls-text: 0;
  --ls-ui: 0.01em;
  --ls-mono: 0.02em;
  --ls-scale: 0.04em;
  --ls-caption: 0.08em;

  /* ── Пространство (одна шкала) ── */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 24px;
  --space-6: 32px;
  --space-7: 48px;
  --space-8: 64px;
  --space-9: 96px;
  --space-10: 128px;
  --section-gap-min: 72px;
  --norm-section-gap: clamp(var(--section-gap-min), 10vw, 160px);
  --section-pad: calc(0.5 * var(--norm-section-gap));
  --section-pad-short: calc(0.5 * var(--section-gap-min));

  /* ── Элементы управления ── */
  --control-h: 52px;
  --control-h-s: 40px;
  --norm-hit-min: 44px;
  --check-size: 24px;

  /* ── Границы, радиусы, тени ── */
  --border-hair: 1px;
  --border-strong: 2px;
  --focus-width: 2px;
  --focus-offset: 3px;
  --underline-offset: 0.22em;
  --radius-none: 0;
  --radius-round: 50%;   /* только круг переключателя */
  /* Теней нет нигде — решение системы, токена тени нет. */

  /* ── Слои ── */
  --z-scene-text: 1;
  --z-sticky-cta: 40;
  --z-header: 50;
  --z-menu: 60;
  --z-skip: 70;
}

@media (min-width: 768px) {          /* norm.bp-tablet */
  :root { --norm-grid-cols: 6; --norm-footer-max: calc(0.9 * var(--fold)); }
}

@media (min-width: 1024px) {         /* norm.bp-desktop */
  :root {
    --norm-grid-cols: 12;
    --norm-header-h: 64px;
    --norm-footer-max: calc(0.5 * var(--fold));
    --norm-seasons-strips-h: min(calc(var(--fold) - var(--space-7) - var(--fs-h1) * var(--lh-h1) - var(--space-6)), 56.25vw);
    --fs-fact: calc(3 * var(--fs-body));
    --fs-h1: clamp(calc(3 * var(--fs-body)), calc(0.98 * ((min(100vw, var(--norm-content-max)) - 2 * var(--norm-page-margin) + var(--norm-gutter)) * 5 / 12 - var(--norm-gutter)) / var(--norm-h1-word-em)), calc(4 * var(--fs-body)));
    --fs-display: clamp(calc(3 * var(--fs-body)), min(calc(0.98 * 100cqi / var(--norm-hero-line-em)), var(--norm-hero-fit-h)), calc(5 * var(--fs-body)));
  }
}

/* широкая укладка полосы-кадра: от norm.bp-desktop и ниже него при вьюпорте шире norm.portrait-max */
@media (min-width: 1024px), not all and (max-aspect-ratio: 4/5) {
  :root { --norm-band-h: min(calc(0.55 * var(--fold)), calc(100vw / var(--norm-band-ratio-min))); }
}

/* ── Регистры: локальные роли цвета ── */
.r-frame {            /* «кадр»: сплошной шунгит (полоса фактов, опись под фолдом, подвал без кадра) */
  color-scheme: dark;
  --c-bg: var(--color-shungite);
  --c-text: var(--color-frost);
  --c-muted: var(--color-muted-dark);
  --c-rule: var(--color-rule-dark);
  --c-link: var(--color-brusnika-lit);
  --c-link-hover: var(--color-brusnika-lit-hover);
  --c-link-active: var(--color-brusnika-lit-active);
  --c-focus: var(--color-brusnika-lit);
  --c-primary-bg: var(--color-brusnika-lit);
  --c-primary-bg-hover: var(--color-brusnika-lit-hover);
  --c-primary-bg-active: var(--color-brusnika-lit-active);
  --c-primary-fg: var(--color-shungite);
}
.r-on-media {         /* текст поверх тёмного кадра с --color-scrim / --color-scrim-deep */
  color-scheme: dark;
  --c-text: var(--color-frost);
  --c-muted: var(--color-frost);
  --c-rule: var(--color-rule-on-media);
  --c-link: var(--color-frost);
  --c-link-hover: var(--color-frost);
  --c-link-active: var(--color-frost);
  --c-link-line-hover: var(--color-brusnika-lit);
  --c-focus: var(--color-frost);
  --c-primary-bg: var(--color-brusnika-lit);
  --c-primary-bg-hover: var(--color-brusnika-lit-hover);
  --c-primary-bg-active: var(--color-brusnika-lit-active);
  --c-primary-fg: var(--color-shungite);
}
.r-passport {         /* «паспорт»: лишайник и его поверхность */
  color-scheme: light;
  --c-bg: var(--color-lichen);
  --c-text: var(--color-ink);
  --c-muted: var(--color-muted-light);
  --c-rule: var(--color-rule-light);
  --c-link: var(--color-brusnika);
  --c-link-hover: var(--color-brusnika-hover);
  --c-link-active: var(--color-brusnika-active);
  --c-focus: var(--color-brusnika);
  --c-primary-bg: var(--color-brusnika);
  --c-primary-bg-hover: var(--color-brusnika-hover);
  --c-primary-bg-active: var(--color-brusnika-active);
  --c-primary-fg: var(--color-frost);
}
.r-fog {              /* текст поверх светлого кадра тумана, без затемнения */
  color-scheme: light;
  --c-text: var(--color-ink);
  --c-muted: var(--color-ink);
  --c-rule: var(--color-ink);
  --c-link: var(--color-ink);
  --c-link-hover: var(--color-ink);
  --c-link-active: var(--color-muted-light);
  --c-focus: var(--color-ink);
}

/* ── Токены движения 05 (дословно) ── */
:root {
  /* ── Длительности ── */
  --dur-micro: 140ms;     /* закрытие меню */
  --dur-short: 240ms;     /* открытие меню; уход липкой полосы */
  --dur-medium: 380ms;    /* приход липкой полосы */
  --dur-long: 640ms;      /* только проявление видео над постером, см. ниже */

  /* ── Кривые ── */
  --ease-out: cubic-bezier(0.22, 0.6, 0.36, 1);    /* появление, приход от кромки */
  --ease-in: cubic-bezier(0.5, 0, 0.85, 0.45);     /* уход, закрытие */
  --ease-in-out: cubic-bezier(0.65, 0, 0.35, 1);   /* проявление видео */

  /* ── Нормы движения (значения — только здесь) ── */
  --norm-season-crossfade: 0.35;   /* норма norm.season-crossfade: доля шага сцены */
  --norm-season-text-swap: 0.4;    /* норма norm.season-text-swap: доля растворения */
  --norm-parallax-max: 0.08;       /* норма norm.parallax-max: доля высоты кадра, полный размах */
  --norm-rm-fade: 80ms;            /* норма norm.rm-fade: смена opacity при reduced-motion */
  --norm-sig-track: calc(var(--fold) + (4 - var(--norm-season-crossfade)) * var(--norm-sig-height));
}

/* ═══ База ═══ */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:auto}
body{
  margin:0;background:var(--c-bg);color:var(--c-text);
  font:var(--fw-regular) var(--fs-body)/var(--lh-body) var(--font-text);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
  font-variant-numeric:lining-nums;
}
h1,h2,h3,h4,p,ul,ol,dl,dd,figure,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
img,picture,video{display:block;max-inline-size:100%}
img{block-size:auto}
button,input,select,textarea{font:inherit;color:inherit;letter-spacing:inherit}
button{cursor:pointer}
[hidden]{display:none!important}
.r-frame,.r-passport{background:var(--c-bg)}
.r-frame,.r-passport,.r-on-media,.r-fog{color:var(--c-text)}
body,.sec,.band__body{--c-focus-dflt:var(--c-focus)}

h1,.h1{font:var(--fw-light) var(--fs-h1)/var(--lh-h1) var(--font-display);letter-spacing:var(--ls-h1);text-wrap:balance;hyphens:manual}
h2,.h2{font:var(--fw-light) var(--fs-h2)/var(--lh-h2) var(--font-display);letter-spacing:var(--ls-h2);text-wrap:balance;hyphens:manual}
h3,.h3{font:var(--fw-regular) var(--fs-lead)/var(--lh-h3) var(--font-display);letter-spacing:var(--ls-h3)}
.lead{font:var(--fw-regular) var(--fs-lead)/var(--lh-lead) var(--font-text);letter-spacing:var(--ls-text)}
p,li,dd,td{text-wrap:pretty;hyphens:manual}
.small{font:var(--fw-regular) var(--fs-small)/var(--lh-small) var(--font-display)}
.tbd{color:var(--c-muted)}
.nb{white-space:nowrap}

a{color:var(--c-link);text-decoration-line:underline;text-decoration-thickness:var(--border-hair);text-underline-offset:var(--underline-offset)}
a:hover{color:var(--c-link-hover);text-decoration-thickness:var(--border-strong)}
.r-on-media a:hover{text-decoration-color:var(--c-link-line-hover)}
a:active{color:var(--c-link-active)}
:focus-visible{outline:var(--focus-width) solid var(--c-focus);outline-offset:var(--focus-offset)}
.link{font:var(--fw-medium) var(--fs-body)/var(--lh-h3) var(--font-display);letter-spacing:var(--ls-ui)}

.vh{position:absolute;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.skip{position:absolute;inset-inline-start:0;inset-block-start:0;z-index:var(--z-skip);inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;
  background:var(--color-frost);color:var(--color-shungite);font:var(--fw-medium) var(--fs-small)/var(--lh-small) var(--font-display);text-decoration:none}
.skip:focus{inline-size:auto;block-size:auto;overflow:visible;clip-path:none;padding:var(--space-3) var(--space-4);outline-color:var(--color-shungite)}

/* ═══ Раскладка ═══ */
.container{inline-size:100%;max-inline-size:var(--norm-content-max);margin-inline:auto;padding-inline:var(--norm-page-margin)}
.grid{display:grid;grid-template-columns:repeat(var(--norm-grid-cols),minmax(0,1fr));column-gap:var(--norm-gutter)}
.grid>*{grid-column:1/-1}
/* полноэкранная сетка: поля-колонки по краям, 12 колонок контейнера между ними (только от norm.bp-desktop) */
:root{--pad-x:max(var(--norm-page-margin),calc((100% - var(--norm-content-max)) / 2 + var(--norm-page-margin)))}
.sec{padding-block:var(--section-pad)}
.sec--short{padding-block:var(--section-pad-short)}
.sec__head{margin-block-end:var(--space-7)}
main{display:block;scroll-margin-top:var(--norm-header-h)}
main:focus{outline:none}
[id]{scroll-margin-top:calc(var(--norm-header-h) + var(--space-5))}

@media (min-width:1024px){
  .col-1-3{grid-column:1/span 3}.col-1-4{grid-column:1/span 4}.col-1-5{grid-column:1/span 5}.col-1-6{grid-column:1/span 6}
  .col-1-7{grid-column:1/span 7}.col-1-8{grid-column:1/span 8}.col-4-10{grid-column:4/span 7}
  .col-5-8{grid-column:5/span 4}.col-6-12{grid-column:6/span 7}.col-7-12{grid-column:7/span 6}
  .col-8-12{grid-column:8/span 5}.col-9-12{grid-column:9/span 4}.col-9-10{grid-column:9/span 2}.col-10-12{grid-column:10/span 3}.col-11-12{grid-column:11/span 2}
}

/* ═══ Подпись-паспорт ═══ */
.cap{font:var(--fw-medium) var(--fs-caption)/var(--lh-caption) var(--font-mono);letter-spacing:var(--ls-caption);text-transform:uppercase;color:var(--c-muted)}
.cap span{white-space:nowrap}
.r-on-media .cap,.r-on-media.cap{color:var(--color-frost)}
.r-fog .cap{color:var(--color-ink)}
.cap--light{color:var(--color-muted-light)}

/* ═══ Кнопки ═══ */
.btn{display:inline-flex;align-items:center;justify-content:center;min-block-size:var(--control-h);padding:0 var(--space-6);
  border:var(--border-hair) solid transparent;border-radius:var(--radius-none);
  font:var(--fw-medium) var(--fs-body)/var(--lh-h3) var(--font-display);letter-spacing:var(--ls-ui);white-space:nowrap;text-decoration:none;cursor:pointer;
  -webkit-appearance:none;appearance:none}
.btn--primary{background:var(--c-primary-bg);color:var(--c-primary-fg)}
.btn--primary:hover{background:var(--c-primary-bg-hover);color:var(--c-primary-fg);text-decoration:none}
.btn--primary:active{background:var(--c-primary-bg-active);color:var(--c-primary-fg)}
.btn--primary[aria-busy="true"]{cursor:progress}
.btn--outline{background:transparent;color:var(--c-text);border-color:var(--c-text)}
.btn--outline:hover{background:var(--c-text);color:var(--c-bg,var(--color-lichen));text-decoration:none}
.r-passport .btn--outline:hover{color:var(--color-lichen)}
.r-passport .btn--outline:active{background:var(--color-muted-light);color:var(--color-lichen)}
.r-frame .btn--outline:hover{color:var(--color-shungite)}
.r-frame .btn--outline:active{background:var(--color-muted-dark);color:var(--color-shungite)}
.r-on-media .btn--outline:hover{color:var(--color-shungite)}
.r-on-media .btn--outline:active{background:var(--color-muted-dark);color:var(--color-shungite)}
.btn--header{min-block-size:var(--control-h-s);padding:0 var(--space-4);border-color:var(--color-muted-dark);color:var(--color-frost);font-size:var(--fs-small);white-space:nowrap}
.btn--header:hover{background:var(--color-brusnika-lit);border-color:var(--color-brusnika-lit);color:var(--color-shungite);text-decoration:none}
.btn--header:active{background:var(--color-brusnika-lit-active);border-color:var(--color-brusnika-lit-active);color:var(--color-shungite)}
.btn--header[aria-current="page"]{border-color:transparent;text-decoration:underline;text-decoration-thickness:var(--border-strong);text-decoration-color:var(--color-brusnika-lit);text-underline-offset:var(--underline-offset)}
.btn--block{inline-size:100%}
@media (min-width:768px){.btn--block-s{inline-size:auto}}
@media (max-width:767px){.btn--block-s{inline-size:100%}}

/* ═══ Шапка ═══ */
.site-header{position:sticky;inset-block-start:0;z-index:var(--z-header);block-size:var(--norm-header-h);background:var(--color-shungite)}
.site-header__row{block-size:100%;display:flex;align-items:center;justify-content:space-between;column-gap:var(--space-4)}
.logo{font:var(--fw-medium) var(--fs-body)/1 var(--font-display);letter-spacing:var(--ls-ui);color:var(--color-frost);white-space:nowrap;text-decoration:none;inline-size:max-content;display:inline-block}
.logo:hover{color:var(--color-frost);text-decoration:none}
.site-nav,.site-header__cta{display:none}
.site-nav ul{display:flex;flex-wrap:nowrap;column-gap:var(--norm-gutter)}
.site-nav a{display:block;color:var(--color-frost);font:var(--fw-regular) var(--fs-small)/var(--lh-small) var(--font-display);letter-spacing:var(--ls-text);text-decoration:none;white-space:nowrap;padding-block:var(--space-2)}
.site-nav a:hover{color:var(--color-frost);text-decoration:underline;text-decoration-thickness:var(--border-hair);text-underline-offset:var(--underline-offset)}
.site-nav a:active{color:var(--color-muted-dark)}
.site-nav a[aria-current="page"]{text-decoration:underline;text-decoration-thickness:var(--border-strong);text-decoration-color:var(--color-brusnika-lit);text-underline-offset:var(--underline-offset)}
.menu{display:block}
.menu>summary{list-style:none;display:inline-flex;align-items:center;min-block-size:var(--norm-hit-min);padding-inline:var(--space-3);margin-inline-end:calc(-1 * var(--space-3));
  font:var(--fw-medium) var(--fs-small)/var(--lh-small) var(--font-display);letter-spacing:var(--ls-ui);color:var(--color-frost);cursor:pointer}
.menu>summary::-webkit-details-marker{display:none}
.menu>summary::marker{content:""}
.menu__panel{position:absolute;inset-inline:0;inset-block-start:100%;background:var(--color-shungite-2);padding:var(--space-2) var(--norm-page-margin) var(--space-5);max-block-size:calc(100svh - var(--norm-header-h));overflow:auto}
.menu__list a,.menu-overlay__list a{display:flex;align-items:center;min-block-size:var(--norm-hit-min);color:var(--color-frost);font:var(--fw-regular) var(--fs-lead)/var(--lh-h3) var(--font-display);text-decoration:none}
.menu__list li+li,.menu-overlay__list li+li{border-top:var(--border-hair) solid var(--color-rule-dark)}
.menu__list a[aria-current="page"],.menu-overlay__list a[aria-current="page"]{text-decoration:underline;text-decoration-thickness:var(--border-strong);text-decoration-color:var(--color-brusnika-lit);text-underline-offset:var(--underline-offset)}
.menu__list a:focus-visible,.menu-overlay__list a:focus-visible{outline-color:var(--color-brusnika-lit)}
.menu__panel .btn,.menu-overlay .btn{margin-block-start:var(--space-5)}
/* со скриптом */
.menu-btn{display:inline-flex;align-items:center;min-block-size:var(--norm-hit-min);padding:0 var(--space-3);margin-inline-end:calc(-1 * var(--space-3));border:0;background:none;
  font:var(--fw-medium) var(--fs-small)/var(--lh-small) var(--font-display);letter-spacing:var(--ls-ui);color:var(--color-frost)}
.menu-overlay{position:fixed;inset-inline:0;inset-block-start:var(--norm-header-h);inset-block-end:0;z-index:var(--z-menu);background:var(--color-shungite-2);padding:var(--space-2) var(--norm-page-margin) var(--space-5);overflow:auto;
  opacity:1;visibility:visible;transition:opacity var(--dur-short) var(--ease-out),visibility 0s linear 0s}
.menu-overlay.is-hidden{opacity:0;visibility:hidden;transition:opacity var(--dur-micro) var(--ease-in),visibility 0s linear var(--dur-micro)}
@media (min-width:1024px){
  .site-header__row{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--norm-gutter)}
  .logo{grid-column:1/span 3;font-size:var(--fs-lead)}
  .site-nav{display:block;grid-column:4/span 7}
  .site-header__cta{display:inline-flex;grid-column:11/span 2;justify-self:end}
  .menu,.menu-btn,.menu-overlay{display:none!important}
}

/* ═══ Липкая полоса заявки (создаёт скрипт) ═══ */
.sticky-cta{position:fixed;inset-inline:0;inset-block-end:0;z-index:var(--z-sticky-cta);background:var(--color-shungite-2);border-block-start:var(--border-hair) solid var(--color-rule-dark);
  padding:var(--space-3) var(--norm-page-margin) calc(var(--space-3) + env(safe-area-inset-bottom));
  transform:translateY(0);visibility:visible;transition:transform var(--dur-medium) var(--ease-out),visibility 0s linear 0s}
.sticky-cta.is-hidden{transform:translateY(100%);visibility:hidden;transition:transform var(--dur-short) var(--ease-in),visibility 0s linear var(--dur-short)}
.sticky-cta .btn{inline-size:100%;min-block-size:var(--control-h)}
/* резерв под полосу (04, norm.sticky-reserve): добавка к нижнему паддингу подвала, один раз при создании полосы, не переключается с её видимостью; у main резерва нет */
@media (max-width:1023px){.has-sticky .foot{padding-block-end:calc(var(--space-6) + var(--norm-sticky-reserve))}}
@media (min-width:1024px){.sticky-cta{display:none}}

/* ═══ Таблица-паспорт ═══ */
.tbl{inline-size:100%;border-collapse:collapse;border-block:var(--border-hair) solid var(--color-ink)}
.tbl caption{caption-side:top}
.tbl tbody tr+tr,.tbl thead+tbody tr:first-child{border-block-start:var(--border-hair) solid var(--color-rule-light)}
.tbl th,.tbl td{padding:var(--space-4) var(--space-4) var(--space-4) 0;text-align:start;vertical-align:baseline;font-weight:var(--fw-regular)}
.tbl tbody th{font:var(--fw-medium) var(--fs-body)/var(--lh-h3) var(--font-display);letter-spacing:var(--ls-text);color:var(--color-ink);inline-size:35%}
.tbl td{font:var(--fw-regular) var(--fs-body)/var(--lh-body) var(--font-text);color:var(--color-ink)}
.tbl thead th{font:var(--fw-medium) var(--fs-caption)/var(--lh-caption) var(--font-mono);letter-spacing:var(--ls-caption);text-transform:uppercase;color:var(--color-muted-light);padding-block:var(--space-3)}
.tbl .tbd{color:var(--color-muted-light)}
.price{font-family:var(--font-mono);font-weight:var(--fw-regular);white-space:nowrap;letter-spacing:var(--ls-mono)}
.tbl--3 tbody th{inline-size:30%}
.tbl--3 thead th:nth-child(1){inline-size:30%}
.tbl--3 td,.tbl--3 thead th:nth-child(n+2){inline-size:35%}
/* опись тем (04, «Таблица-паспорт»): таблица, где плейсхолдер стоит во всех значениях */
.inv{border-block:var(--border-hair) solid var(--color-ink)}
.inv li{padding:var(--space-4) var(--space-4) var(--space-4) 0;font:var(--fw-medium) var(--fs-body)/var(--lh-h3) var(--font-display);letter-spacing:var(--ls-text);color:var(--color-ink)}
.inv li+li{border-block-start:var(--border-hair) solid var(--color-rule-light)}
.inv__note{margin-block-start:var(--space-3);font:var(--fw-regular) var(--fs-body)/var(--lh-body) var(--font-text);color:var(--color-muted-light)}
/* ответ внутри строки описи вопросов: без линеек, строки через --space-2 */
.inv--plain{border:0}
.inv--plain li,.inv--plain li+li{padding:0;border:0}
.inv--plain li+li{margin-block-start:var(--space-2)}
@media (max-width:767px){
  .tbl,.tbl tbody,.tbl thead,.tbl tr,.tbl th,.tbl td{display:block;inline-size:auto}
  .tbl thead{display:none}
  .tbl tbody th{inline-size:auto;padding:var(--space-4) 0 var(--space-1)}
  .tbl td{padding:0 0 var(--space-4)}
  .tbl td[data-label]::before{content:attr(data-label);display:block;font:var(--fw-medium) var(--fs-caption)/var(--lh-caption) var(--font-mono);letter-spacing:var(--ls-caption);text-transform:uppercase;color:var(--color-muted-light);margin-block-end:var(--space-1)}
}

/* ═══ Блок мессенджеров ═══ */
.msgr__h{font:var(--fw-medium) var(--fs-body)/var(--lh-h3) var(--font-display);letter-spacing:var(--ls-text)}
.msgr__row{display:grid;grid-template-columns:repeat(3,1fr);column-gap:var(--space-4);margin-block-start:var(--space-3)}
.msgr__item{border-block-start:var(--border-hair) solid var(--c-rule);padding:var(--space-3) 0;font:var(--fw-medium) var(--fs-body)/var(--lh-h3) var(--font-display);letter-spacing:var(--ls-text);color:var(--c-text);white-space:nowrap}
.msgr__item a{display:flex;align-items:center;justify-content:center;min-block-size:var(--control-h);border:var(--border-hair) solid var(--c-text);color:var(--c-text);text-decoration:none;padding:0 var(--space-3)}
.msgr__note{margin-block-start:var(--space-2)}
.msgr--row .msgr__row{margin-block-start:0;display:flex;flex-wrap:nowrap;column-gap:var(--space-4)}
.msgr--row .msgr__item{font-size:var(--fs-small);border-block-start:0;padding:var(--space-2) 0}

/* ═══ Финальная CTA-полоса ═══ */
.cta{background:var(--color-lichen-2);padding-block:var(--section-pad)}
.cta--short{padding-block:var(--section-pad-short)}
.cta__phrase{font:var(--fw-light) var(--fs-h2)/var(--lh-h2) var(--font-display);letter-spacing:var(--ls-h2);color:var(--color-ink);text-wrap:balance}
.cta__act{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4) var(--space-5);margin-block-start:var(--space-6)}
.cta__act .btn{inline-size:100%}
@media (min-width:768px){.cta__act .btn{inline-size:auto}}
@media (min-width:1024px){
  .cta__inner{align-items:end}
  .cta__act{grid-column:9/span 4;margin-block-start:0;justify-content:flex-end;align-self:end}
  .cta__phrase{grid-column:1/span 8}
}

/* ═══ Подвал (04, «Подвал») ═══ */
.foot{position:relative;isolation:isolate;padding:var(--space-7) 0 var(--space-6);background:var(--color-shungite)}
.foot__bg{position:absolute;inset:0;z-index:-1;overflow:clip}
.foot__bg picture,.foot__bg img{inline-size:100%;block-size:100%}
.foot__bg img{object-fit:cover}
.foot__bg::after{content:"";position:absolute;inset:0;background:var(--color-scrim-deep)}
.foot--plain{border-block-start:var(--border-hair) solid var(--color-rule-dark);
  --c-link:var(--color-frost);--c-link-hover:var(--color-frost);--c-link-active:var(--color-frost);--c-link-line-hover:var(--color-brusnika-lit);--c-focus:var(--color-frost)}
.foot--plain a:hover{text-decoration-color:var(--c-link-line-hover)}
/* телефон: плотная укладка, группы друг под другом через --space-5 */
.foot__grid{row-gap:var(--space-5)}
.foot__brand{display:flex;justify-content:space-between;align-items:baseline;column-gap:var(--space-4)}
.foot__desc{margin-block-start:var(--space-3);font:var(--fw-regular) var(--fs-small)/var(--lh-small) var(--font-text)}
.foot__about .logo{font-size:var(--fs-lead)}
.foot__nav ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--norm-gutter)}
.foot a{color:var(--c-link)}
.foot__nav a,.foot__docs a{display:flex;align-items:center;min-block-size:var(--norm-hit-min);font:var(--fw-regular) var(--fs-small)/var(--lh-small) var(--font-display)}
.foot__contact .cap{margin-block-end:var(--space-2)}
.foot__contact>p:not(.cap){font:var(--fw-regular) var(--fs-small)/var(--lh-small) var(--font-display);margin-block-end:var(--space-3)}
.foot__bottom{margin-block-start:var(--space-5)}
.foot__cap--b{display:none}
.foot__cap--m{text-align:end;flex:none}
@media (min-width:768px){
  .foot{padding-block-start:var(--space-8)}
  .foot--plain{padding-block-start:var(--space-7)}
  .foot__grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:var(--space-6)}
  .foot__grid>*{grid-column:auto}
  .foot__cap--m{display:none}
  .foot__cap--b{display:block;text-align:end}
  /* нижний ряд: строка концепта слева (в своей половине ряда — в две строки), подпись кадра справа на общей базовой линии */
  .foot__bottom{margin-block-start:var(--space-7);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--norm-gutter);align-items:last baseline}
  .foot__cap--b{grid-column:2}
}
@media (min-width:1024px){
  .foot__grid{grid-template-columns:repeat(12,minmax(0,1fr));row-gap:0}
  .foot__about{grid-column:1/span 4}.foot__nav{grid-column:5/span 4}.foot__contact{grid-column:9/span 2}.foot__docs{grid-column:11/span 2}
  .foot__nav a,.foot__docs a{min-block-size:var(--space-6)}
  .foot__bottom{grid-template-columns:repeat(12,minmax(0,1fr))}
  .foot__concept{grid-column:1/span 8}
  .foot__cap--b{grid-column:9/span 4}
}

@media (min-width:1024px) and (max-width:1279px){.msgr--row .msgr__row{column-gap:var(--space-2)}}

/* ═══ Медиа-слои ═══ */
.media{position:absolute;inset:0;overflow:clip;isolation:isolate}
.media picture,.media img,.media video{position:absolute;inset:0;inline-size:100%;block-size:100%;max-inline-size:none}
.media img,.media video{object-fit:cover;object-position:50% 50%}
.media--scrim::after{content:"";position:absolute;inset:0;background:var(--color-scrim)}
.media--dense::after{content:"";position:absolute;inset:0;background:var(--color-scrim-dense)}
.pic{position:relative;overflow:clip}
.pic picture,.pic img{display:block;inline-size:100%;block-size:100%}
.pic img{object-fit:cover}
.pic--r32{aspect-ratio:3/2}
.pic--r43{aspect-ratio:4/3}
.pic--r45{aspect-ratio:4/5}
.pic--r11{aspect-ratio:1/1}

/* ═══ Первый экран главной (04, «Главная», секция 1) ═══ */
.hero{background:var(--color-shungite)}
.hero__zone{position:relative;isolation:isolate;overflow:clip;display:flex;flex-direction:column;justify-content:flex-end;
  block-size:var(--fold);padding:0 var(--norm-page-margin) var(--space-6)}
.hero__media{z-index:-1}
.hero__text{container-type:inline-size;margin-block-start:var(--space-4)}
.hero__h1{font:var(--fw-light) var(--fs-display)/var(--lh-display) var(--font-display);letter-spacing:var(--ls-display);color:var(--color-frost);text-wrap:wrap;margin:0}
.hero__h1 span{display:block}
.hero__actions{margin-block-start:var(--space-5);display:flex}
@media (max-width:767px){.hero__actions .btn{inline-size:100%}}
.hero__link-d{display:none}
.hero__aside{order:-1;display:flex;align-items:center;justify-content:space-between;column-gap:var(--space-5);min-block-size:var(--norm-hit-min)}
/* ниже norm.bp-desktop на главной: подпись кадра и управление видео — первой строкой под кадром на .r-frame (04); высота ряда зарезервирована под кнопку (CLS 0) */
.hero__aside--under{order:0;padding:var(--space-3) var(--norm-page-margin) 0;column-gap:var(--space-4)}
/* подпись переносится одинаково с кнопкой управления и без неё (резерв её ширины): ряд не растёт после playing, CLS 0 */
.hero__aside--under .cap{max-inline-size:calc(100% - 16 * (0.6em + var(--ls-caption)) - var(--space-4))}
.hero__ctl{background:none;border:0;padding:0;min-block-size:var(--norm-hit-min);color:var(--color-frost);font:var(--fw-medium) var(--fs-caption)/var(--lh-caption) var(--font-mono);letter-spacing:var(--ls-caption);text-transform:uppercase;text-decoration:underline;text-decoration-thickness:var(--border-hair);text-underline-offset:var(--underline-offset);white-space:nowrap}
.hero__ctl:hover{text-decoration-thickness:var(--border-strong);text-decoration-color:var(--color-brusnika-lit)}
.hero__sub{padding:var(--space-6) var(--norm-page-margin) 0;max-inline-size:calc(var(--norm-measure) + 2 * var(--norm-page-margin));color:var(--color-frost)}
.hero__more{padding:var(--space-4) var(--norm-page-margin) 0}
.hero__video{opacity:1;transition:opacity var(--dur-long) var(--ease-in-out)}
.hero__video.is-entering{opacity:0}
.hero__facts{padding:var(--space-7) 0 var(--section-pad);background:var(--color-shungite)}

/* полоса фактов (десктоп) / опись фактов (ниже norm.bp-desktop) */
.facts{display:block}
.fact{display:grid;grid-template-columns:minmax(0,var(--norm-fact-col)) minmax(min-content,1fr);column-gap:var(--norm-gutter);align-items:first baseline;border-block-start:var(--border-hair) solid var(--color-rule-dark);padding-block:var(--space-4);font-size:var(--fs-small)}
.fact__num{font:var(--fw-regular) var(--fs-fact)/var(--lh-fact) var(--font-mono);letter-spacing:var(--ls-fact);white-space:nowrap;color:var(--color-frost)}
.fact__cap{font:var(--fw-regular) var(--fs-small)/var(--lh-small) var(--font-display);color:var(--color-muted-dark)}
@media (min-width:1024px){
  .hero{display:grid;grid-template-columns:minmax(0,calc(var(--pad-x) - var(--norm-gutter))) repeat(12,minmax(0,1fr)) minmax(0,calc(var(--pad-x) - var(--norm-gutter)));column-gap:var(--norm-gutter);
    grid-template-rows:minmax(0,1fr) auto auto auto auto;block-size:var(--fold);overflow:clip}
  .hero__zone{display:contents}
  .hero__media{position:relative;grid-column:1/-1;grid-row:1/5;z-index:0}
  .hero__text{grid-column:2/span 7;grid-row:2;margin:0;position:relative;z-index:1}
  .hero__sub{grid-column:2/span 7;grid-row:3;padding:var(--space-5) 0 0;max-inline-size:none;position:relative;z-index:1}
  .hero__actions{grid-column:2/span 7;grid-row:4;margin:0;padding-block:var(--space-6);align-self:end;align-items:center;column-gap:var(--space-6);position:relative;z-index:1}
  .hero__link-d{display:inline}
  .hero__aside{grid-column:9/span 5;grid-row:4;align-self:end;justify-self:stretch;padding-block-end:var(--space-6);flex-direction:row-reverse;justify-content:flex-start;order:0;position:relative;z-index:1;
    min-block-size:calc(var(--control-h) + var(--space-6))}
  .hero__aside{align-items:center;padding-block:var(--space-6)}
  .hero__aside--under{padding-inline:0;column-gap:var(--space-5);background:transparent;--c-muted:var(--color-frost);--c-focus:var(--color-frost)}
  .hero__aside--under .cap{max-inline-size:none}
  .hero__more{display:none}
  .hero__facts{grid-column:1/-1;grid-row:5;padding:var(--space-5) 0;background:var(--color-shungite-2)}
  .facts{display:flex;justify-content:space-between;column-gap:var(--norm-gutter)}
  .fact{display:inline-grid;grid-template-columns:minmax(var(--norm-fact-cell-min),min-content);border:0;padding:0;align-items:start}
  .fact__cap{margin-block-start:var(--space-2)}
}
@media (max-width:1023px){.hero__sub{font-size:var(--fs-lead)}}

/* ═══ Номера: диптих ═══ */
.diptych{display:grid;row-gap:var(--space-8)}
.half__cap{margin-block-start:var(--space-3)}
.half__h{margin-block-start:var(--space-5)}
.half .tbl{margin-block-start:var(--space-4)}
.half__link{display:inline-block;margin-block-start:var(--space-5)}
.tbl td.price-cell{font-size:var(--fs-h2);line-height:var(--lh-fact)}
.tbl td.price-cell .price{font-size:var(--fs-h2);line-height:var(--lh-fact)}
.sec__row{display:flex;flex-direction:column;row-gap:var(--space-4)}
.sec__row .link{align-self:flex-start}
@media (min-width:1024px){
  .sec__row{flex-direction:row;justify-content:space-between;align-items:baseline;column-gap:var(--norm-gutter)}
  .sec__row .link{align-self:auto}
  .diptych{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--norm-gutter);row-gap:0}
}

/* ═══ Вода у дома ═══ */
.water{position:relative;isolation:isolate;overflow:clip;background:var(--color-shungite)}
.water__media{position:relative;aspect-ratio:4/5;overflow:clip}
.water__plx{position:absolute;inset:0;overflow:clip}
.parallax{inline-size:100%;block-size:100%}
.parallax__img{position:absolute;inset-inline:0;inset-block-start:0;display:block;inline-size:100%;block-size:100%}
.parallax__img img{inline-size:100%;block-size:100%;object-fit:cover;object-position:50% 50%}
.water__media::after{content:"";position:absolute;inset:0;background:var(--color-scrim);z-index:1}
.water__cap{position:absolute;inset-inline-start:var(--space-4);inset-block-end:var(--space-4);z-index:2;max-inline-size:calc(100% - 2 * var(--space-4))}
.water__inner{padding:var(--space-7) var(--norm-page-margin) var(--section-pad);max-inline-size:var(--norm-content-max);margin-inline:auto}
.water__lead{margin-block-start:var(--space-4)}
.water__row{margin-block-start:var(--space-6)}
.water__price{display:block;padding-block-end:var(--space-4)}
.water__price .fact__num{display:block}
.water__price-cap{display:block;margin-block-start:var(--space-2);font:var(--fw-regular) var(--fs-small)/var(--lh-small) var(--font-display);color:var(--color-muted-dark)}
.water__items li{border-block-start:var(--border-hair) solid var(--color-rule-dark);padding-block:var(--space-3)}
.water__items{border-block-end:var(--border-hair) solid var(--color-rule-dark)}
.water__items .cap{color:var(--color-frost)}
@media (min-width:1024px){
  .water{display:grid;grid-template-columns:minmax(0,calc(var(--pad-x) - var(--norm-gutter))) repeat(12,minmax(0,1fr)) minmax(0,calc(var(--pad-x) - var(--norm-gutter)));column-gap:var(--norm-gutter);
    grid-template-rows:minmax(0,1fr) auto auto auto;block-size:var(--fold);background:var(--color-shungite)}
  /* кадр — настоящий бокс во всю секцию (мотив сигнатуры, 04, «Нормы фолда»); подпись кадра — ячейка подсетки */
  .water__media{display:grid;grid-column:1/-1;grid-row:1/-1;grid-template-columns:subgrid;grid-template-rows:subgrid;aspect-ratio:auto;overflow:visible}
  .water__media::after{display:none}
  .water .water__plx{z-index:-1}
  .water .water__plx::after{content:"";position:absolute;inset:0;background:var(--color-scrim);z-index:1}
  .water__inner{display:contents}
  .water h2{grid-column:2/span 7;grid-row:2;position:relative;z-index:1}
  .water__lead{grid-column:2/span 7;grid-row:3;position:relative;z-index:1;margin-block-start:var(--space-4)}
  .water__cap{grid-column:11/span 3;grid-row:3;align-self:end;justify-self:end;position:relative;inset:auto;z-index:1;max-inline-size:none;text-align:end}
  .water__row{grid-column:2/span 12;grid-row:4;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--norm-gutter);border-block-start:var(--border-hair) solid var(--color-rule-on-media);padding-block-start:var(--space-4);margin-block:var(--space-8) var(--space-7);position:relative;z-index:1}
  .water__price{grid-column:1/span 3;padding:0}
  .water__items{grid-column:4/span 9;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:var(--norm-gutter);border:0}
  .water__items li{border:0;padding:0}
  .water__price-cap{color:var(--color-frost)}
}

/* ═══ Опись вопросов ═══ */
.qa{border-block-end:var(--border-hair) solid var(--color-ink)}
.qa__row{border-block-start:var(--border-hair) solid var(--color-ink);padding-block:var(--space-6)}
.qa__tag{display:block;font:var(--fw-hair) var(--fs-h2)/var(--lh-h2) var(--font-display);letter-spacing:var(--ls-h2);white-space:nowrap;color:var(--color-ink);margin-block-end:var(--space-3)}
.qa__q{font:var(--fw-regular) var(--fs-lead)/var(--lh-h3) var(--font-display);letter-spacing:var(--ls-h3);color:var(--color-ink)}
.qa__a{margin-block-start:var(--space-3);max-inline-size:var(--norm-measure);font:var(--fw-regular) var(--fs-body)/var(--lh-body) var(--font-text)}
.qa__a ul li{margin-block-start:var(--space-2)}
.qa__a ul li:first-child{margin-block-start:0}
.qa__a strong{font:var(--fw-medium) var(--fs-body)/var(--lh-h3) var(--font-display)}
.qa__more{margin-block-start:var(--space-6)}
@media (min-width:1024px){
  .qa__row{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--norm-gutter);align-items:first baseline}
  .qa__tag{grid-column:1/span 5;margin:0}
  .qa__body{grid-column:6/span 7}
  .qa__more{padding-inline-start:calc((100% + var(--norm-gutter)) * 5 / 12)}
}

/* ═══ Сигнатура ═══ */
.sig__intro{padding-block:var(--section-pad) var(--space-7)}
.sig__intro .lead{margin-block-start:var(--space-4)}
.sig__step{position:relative;display:grid;grid-template-rows:minmax(0,1fr) auto;block-size:var(--norm-sig-height);overflow-x:clip}
.sig__frame{grid-row:1;grid-column:1;position:relative;overflow:clip;isolation:isolate;min-block-size:0}
.sig__frame::after{content:"";position:absolute;inset:0;background:var(--color-scrim);z-index:1}
.sig__frame--dense::after{background:var(--color-scrim-dense)}
.sig__frame picture,.sig__frame img{position:absolute;inset:0;inline-size:100%;block-size:100%;max-inline-size:none}
.sig__frame img{object-fit:cover;object-position:92% 50%}
.sig__inner{grid-row:1;grid-column:1;align-self:end;position:relative;z-index:var(--z-scene-text);container-type:inline-size;
  inline-size:100%;max-inline-size:var(--norm-content-max);margin-inline:auto;padding:0 var(--norm-page-margin) var(--space-6)}
.sig__word{font:var(--fw-hair) var(--fs-sig)/var(--lh-sig) var(--font-display);letter-spacing:var(--ls-sig);white-space:nowrap;color:var(--color-frost);overflow:visible}
.sig__list{margin-block-start:var(--space-5);font:var(--fw-regular) var(--fs-body)/var(--lh-body) var(--font-mono);letter-spacing:var(--ls-mono);color:var(--color-frost)}
.sig__list span{white-space:nowrap}
.sig__cap{margin-block-start:var(--space-3)}
.sig__scale{grid-row:2;grid-column:1;background:var(--color-shungite);position:relative;z-index:2}
.sig__scale .container{padding-block:var(--space-4)}
.sig__months{display:grid;grid-template-columns:repeat(12,minmax(0,1fr))}
.sig__months li{border-block-start:var(--border-strong) solid transparent}
.sig__months li::before{content:"";display:block;block-size:var(--space-2);border-inline-start:var(--border-hair) solid var(--color-muted-dark)}
.sig__months span{display:block;margin-block-start:var(--space-2);font:var(--fw-medium) var(--fs-caption)/var(--lh-caption) var(--font-mono);letter-spacing:var(--ls-scale);text-transform:uppercase;color:var(--color-muted-dark)}
.sig__scale[data-active="leto"] li[data-s="leto"],.sig__scale[data-active="osen"] li[data-s="osen"],.sig__scale[data-active="zima"] li[data-s="zima"],.sig__scale[data-active="vesna"] li[data-s="vesna"]{border-block-start-color:var(--color-brusnika-lit)}
.sig__scale[data-active="leto"] li[data-s="leto"] span,.sig__scale[data-active="osen"] li[data-s="osen"] span,.sig__scale[data-active="zima"] li[data-s="zima"] span,.sig__scale[data-active="vesna"] li[data-s="vesna"] span{color:var(--color-frost)}
.sig__after{padding-block:var(--space-6) min(var(--section-pad),var(--space-7))}
@media (min-width:1024px){
  .sig__intro .lead{margin:0;align-self:end}
  .sig__list{max-inline-size:calc((100% + var(--norm-gutter)) * 8 / 12 - var(--norm-gutter))}
}
/* сцена (05): включает скрипт классом is-scene, только при no-preference */
@media (prefers-reduced-motion: no-preference) {
  .sig__track.is-scene { block-size: var(--norm-sig-track); }
  .sig__track.is-scene .sig__stage {
    position: sticky; inset-block-start: var(--norm-header-h);
    block-size: var(--fold); overflow: clip;
  }
  .sig__track.is-scene .sig__step { position: absolute; inset: 0; block-size: auto; }
  .sig__track.is-scene .sig__step:not(:first-child) :is(.sig__frame, .sig__inner) { opacity: 0; }
  .sig__track.is-scene .sig__step:not(:last-child) .sig__scale { visibility: hidden; }
  .sig__track.is-gated .sig__step:not(:first-child) .sig__frame { will-change: opacity; }
}

/* ═══ Схема маршрута ═══ */
.route{margin-block-start:var(--space-7)}
.route__leg{padding-block:var(--space-4)}
.route__leg .cap{color:var(--color-muted-light)}
.route__stop{position:relative;font:var(--fw-medium) var(--fs-lead)/var(--lh-h3) var(--font-mono);letter-spacing:var(--ls-mono);color:var(--color-ink);white-space:nowrap;padding-inline-start:calc(var(--space-4) + var(--space-3));padding-block:var(--space-1)}
.route__stop::before{content:"";position:absolute;inset-inline-start:0;inset-block-start:50%;inline-size:var(--space-4);border-block-start:var(--border-strong) solid var(--color-ink)}
.route{border-inline-start:var(--border-strong) solid var(--color-ink);max-inline-size:100%}
.route__leg{padding-inline-start:calc(var(--space-4) + var(--space-3))}
@media (min-width:768px){
  .route{border:0;display:grid;grid-template-columns:calc((100% + var(--norm-gutter)) / 2) minmax(0,1fr);grid-template-rows:auto auto}
  .route__leg{grid-row:1;padding:0 0 var(--space-3);border-block-end:var(--border-strong) solid var(--color-ink);display:flex;align-items:flex-end;justify-content:center;text-align:center}
  .route__leg--1{grid-column:1}.route__leg--2{grid-column:2}
  .route__stop{grid-row:2;padding:calc(var(--space-4) + var(--space-3)) 0 0}
  .route__stop::before{inset-block-start:0;inset-block-end:auto;inline-size:0;block-size:var(--space-4);border-block-start:0;border-inline-start:var(--border-strong) solid var(--color-ink)}
  .route__stop--1{grid-column:1;justify-self:start}
  .route__stop--2{grid-column:2;justify-self:start}
  .route__stop--3{grid-column:2;justify-self:end;text-align:end}
  .route__stop--3::before{inset-inline-start:auto;inset-inline-end:0}
}
.route-notes{margin-block-start:var(--space-6)}
.route-notes p+p{margin-block-start:var(--space-3)}
.route-more{margin-block-start:var(--space-6)}

/* ═══ Полоса-кадр (Заявка, Как добраться, Вопросы), страница после отправки: «голова на кадре + тело» ═══ */
.band{position:relative;isolation:isolate;background:var(--color-lichen)}
.band__head{background:var(--color-shungite);position:relative;isolation:isolate;overflow:clip;min-block-size:var(--norm-band-h);display:flex;flex-direction:column;justify-content:flex-end;
  padding:var(--space-5) var(--pad-x)}
.band--tight .band__head{padding-block:var(--space-4)}
.band__head .media{z-index:-1}
.band__cap{margin-block-end:var(--space-3)}
.band__title{margin:0}
.band__body{padding:var(--space-6) var(--pad-x) 0}
.band__lead{font:var(--fw-regular) var(--fs-body)/var(--lh-body) var(--font-text);max-inline-size:var(--norm-measure)}
.band__body .msgr{margin-block-start:var(--space-5)}
.band__fact{margin-block-start:var(--space-6)}
.band__fact .fact__num{display:block}
.band__fact .fact__cap{display:block;margin-block-start:var(--space-2);color:var(--color-frost)}
.band--stove .band__head,.band--stove .band__body{--x:1}
/* «Как добраться», мобильная укладка: подпись кадра — под полосой, на светлом, по левой кромке контейнера (04) */
.band--road>.band__cap{margin:0;padding:var(--space-3) var(--pad-x) 0}
@media (min-width:1024px), not all and (max-aspect-ratio:4/5){
  .band__title,.band__head>.band__lead{max-inline-size:calc((100% + var(--norm-gutter)) * 7 / 12 - var(--norm-gutter))}
  .band--road .band__fact{max-inline-size:calc((100% + var(--norm-gutter)) * 7 / 12 - var(--norm-gutter))}
  .band--road>.band__cap{padding:0;color:var(--color-frost)}
}
/* широкая укладка ниже norm.bp-desktop: подпись — над H1 на полосе */
@media (max-width:1023px) and (not (max-aspect-ratio:4/5)){
  .band--road{display:flex;flex-direction:column;justify-content:flex-end;position:relative;isolation:isolate;overflow:clip;min-block-size:var(--norm-band-h);background:var(--color-shungite);padding:var(--space-4) var(--pad-x)}
  .band--road .band__head{display:contents}
  .band--road .band__head .media{position:absolute;inset:0;z-index:-1}
  .band--road>.band__cap{order:-1;margin-block-end:var(--space-3)}
}
@media (min-width:1024px){
  .band{background:var(--color-shungite);display:grid;grid-template-columns:minmax(0,calc(var(--pad-x) - var(--norm-gutter))) repeat(12,minmax(0,1fr)) minmax(0,calc(var(--pad-x) - var(--norm-gutter)));column-gap:var(--norm-gutter);
    grid-template-rows:minmax(0,1fr) auto auto auto;min-block-size:var(--norm-band-h);padding-block:var(--space-6);overflow:clip}
  .band__head{display:contents}
  .band__head .media{position:absolute;inset:0}
  .band__title{grid-column:2/span 7;grid-row:2;max-inline-size:none}
  .band__body{display:contents;--c-text:var(--color-frost);--c-muted:var(--color-frost);--c-rule:var(--color-rule-on-media);--c-link:var(--color-frost);--c-link-hover:var(--color-frost);--c-link-active:var(--color-frost);--c-link-line-hover:var(--color-brusnika-lit);--c-focus:var(--color-frost)}
  .band__lead{grid-column:2/span 7;grid-row:3;margin-block-start:var(--space-4);color:var(--color-frost)}
  .band__body .msgr{grid-column:2/span 7;grid-row:4;margin-block-start:var(--space-6);color:var(--color-frost)}
  .band__cap{grid-column:11/span 3;grid-row:4;align-self:end;justify-self:end;margin:0;text-align:end}
  .band--road{padding-block:var(--space-6)}
  .band--road .band__title{grid-row:2}
  .band--road .band__fact{grid-column:2/span 7;grid-row:3}
  .band--road .band__cap,.band--fog .band__cap{grid-row:3}
  .band--fog .band__title{grid-row:2/4;align-self:end}
}
.band--fog{background:var(--color-lichen)}
.band--fog .band__head{background:var(--color-lichen)}
.band--fog .band__head{padding-block:var(--space-4)}

/* ═══ Форма заявки ═══ */
.form-sec{background:var(--color-lichen);padding-block:var(--space-6) var(--section-pad)}
.form{background:var(--color-lichen-2);padding:var(--space-5);color:var(--color-ink);color-scheme:light}
.form__err{border-block-start:var(--border-strong) solid var(--color-error);padding-block:var(--space-4);margin-block-end:var(--space-5);font:var(--fw-medium) var(--fs-body)/var(--lh-h3) var(--font-display);color:var(--color-ink)}
.form__err:empty{display:none}
.form__cols{display:grid;row-gap:var(--space-7)}
.form__col{display:block}
.form__foot{margin-block-start:var(--space-7)}
.form__consent{max-inline-size:var(--norm-measure)}
.fieldset{border:0;margin:0;padding:0;min-inline-size:0}
.fieldset>legend{padding:0;font:var(--fw-regular) var(--fs-lead)/var(--lh-h3) var(--font-display);letter-spacing:var(--ls-h3);color:var(--color-ink);margin-block-end:var(--space-5);float:left;inline-size:100%}
.fieldset>legend+*{clear:both}
.field+.field,.field+.fieldset,.fieldset+.field,.dates+.field{margin-block-start:var(--space-5)}
.field__label{display:block;font:var(--fw-medium) var(--fs-small)/var(--lh-h3) var(--font-display);color:var(--color-ink);margin-block-end:var(--space-2)}
.field__control{inline-size:100%;block-size:var(--control-h);padding:0 var(--space-4);background:var(--color-lichen);color:var(--color-ink);
  border:var(--border-hair) solid var(--color-muted-light);border-radius:var(--radius-none);font:var(--fw-regular) var(--fs-body)/var(--lh-h3) var(--font-display);
  -webkit-appearance:none;appearance:none;color-scheme:light}
textarea.field__control{block-size:auto;min-block-size:calc(4 * var(--fs-body) * var(--lh-body) + 2 * var(--space-3));padding:var(--space-3) var(--space-4);line-height:var(--lh-body);resize:vertical;font-family:var(--font-display)}
.field__control:hover{border-color:var(--color-ink)}
.field__control:focus-visible{border:var(--border-strong) solid var(--color-ink);padding-inline:calc(var(--space-4) - 1px);outline:var(--focus-width) solid var(--c-focus);outline-offset:var(--focus-offset)}
.field__control[aria-invalid="true"]{border:var(--border-strong) solid var(--color-error);padding-inline:calc(var(--space-4) - 1px)}
.field__select{position:relative}
.field__select::after{content:"";position:absolute;inset-inline-end:var(--space-4);inset-block-start:calc(50% - 6px);inline-size:8px;block-size:8px;border-inline-end:var(--border-hair) solid var(--color-ink);border-block-end:var(--border-hair) solid var(--color-ink);transform:rotate(45deg);pointer-events:none}
.field__select .field__control{padding-inline-end:calc(var(--space-4) + 24px)}
.field__hint{margin-block-start:var(--space-2);font:var(--fw-regular) var(--fs-small)/var(--lh-small) var(--font-display);color:var(--color-muted-light)}
.field__error{margin-block-start:var(--space-2);font:var(--fw-medium) var(--fs-small)/var(--lh-small) var(--font-display);color:var(--color-error)}
.field__error[hidden]{display:none!important}
.dates{display:grid;grid-template-columns:1fr 1fr;column-gap:var(--space-4)}
@media (max-width:1023px){.dates{grid-template-columns:1fr}.dates>.field+.field{margin-block-start:var(--space-5)}}
.dates>.field+.field{margin-block-start:0}
@media (max-width:1023px){.dates>.field+.field{margin-block-start:var(--space-5)}}
.radio-group{border:0;margin:0;padding:0;min-inline-size:0}
.radio-group>legend{padding:0}
.field--half{max-inline-size:50%}
@media (max-width:1023px){.field--half{max-inline-size:none}}
.radio{display:flex;align-items:center;column-gap:var(--space-3);min-block-size:var(--control-h);cursor:pointer;font:var(--fw-regular) var(--fs-body)/var(--lh-h3) var(--font-display);color:var(--color-ink)}
.radio input{-webkit-appearance:none;appearance:none;margin:0;flex:none;inline-size:var(--check-size);block-size:var(--check-size);border:var(--border-hair) solid var(--color-muted-light);border-radius:var(--radius-round);background:transparent;display:grid;place-items:center}
.radio input::after{content:"";inline-size:var(--space-3);block-size:var(--space-3);border-radius:var(--radius-round);background:var(--color-ink);transform:scale(0)}
.radio input:checked{border-color:var(--color-ink)}
.radio input:checked::after{transform:scale(1)}
.radio:hover input{border-color:var(--color-ink)}
.radio input:focus-visible{outline:var(--focus-width) solid var(--c-focus);outline-offset:var(--focus-offset)}
.check{display:flex;align-items:flex-start;column-gap:var(--space-3);min-block-size:var(--norm-hit-min);cursor:pointer;font:var(--fw-regular) var(--fs-small)/var(--lh-small) var(--font-display);color:var(--color-ink);padding-block:var(--space-2)}
.check input{-webkit-appearance:none;appearance:none;margin:0;flex:none;inline-size:var(--check-size);block-size:var(--check-size);border:var(--border-hair) solid var(--color-muted-light);border-radius:var(--radius-none);background:var(--color-lichen);position:relative}
.check input:checked{background:var(--color-ink);border-color:var(--color-ink)}
.check input:checked::after{content:"";position:absolute;inset-inline-start:7px;inset-block-start:2px;inline-size:7px;block-size:13px;border-inline-end:var(--border-strong) solid var(--color-lichen);border-block-end:var(--border-strong) solid var(--color-lichen);transform:rotate(45deg)}
.check input:hover{border-color:var(--color-ink)}
.check input[aria-invalid="true"]{border:var(--border-strong) solid var(--color-error)}
.check input:focus-visible{outline:var(--focus-width) solid var(--c-focus);outline-offset:var(--focus-offset)}
.check__text{padding-block-start:2px}
.check a{color:var(--color-brusnika)}
.form__submit{margin-block-start:var(--space-5)}
.form__demo{margin-block-start:var(--space-6);padding-block-start:var(--space-4);border-block-start:var(--border-hair) solid var(--color-rule-light);font:var(--fw-medium) var(--fs-small)/var(--lh-small) var(--font-display);color:var(--color-warning)}
@media (min-width:1024px){
  .form{padding:var(--space-7)}
  .form__cols{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--norm-gutter);row-gap:0;align-items:stretch}
  .form__col{display:flex;flex-direction:column}
  .field--grow{flex:1;display:flex;flex-direction:column}
  .field--grow>textarea{flex:1}
}

/* ═══ Сезоны: первый экран ═══ */
.sez-head{background:var(--color-shungite);padding:var(--space-7) 0 var(--space-6)}
.sez-head__line{margin-block-start:var(--space-3)}
.strips{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));block-size:var(--norm-seasons-strips-h);background:var(--color-shungite)}
.strips>li{display:grid;min-inline-size:0;min-block-size:0}
.strip{position:relative;isolation:isolate;overflow:clip;display:flex;min-block-size:0;flex-direction:column;justify-content:flex-end;padding:var(--space-4);color:var(--color-frost);text-decoration:none;min-inline-size:0}
.strip::before{content:"";position:absolute;inset:0;background:var(--color-scrim);z-index:1}
.strip:active::before{background:var(--color-scrim-deep)}
.strip__media{position:absolute;inset-block:0;inset-inline-start:0;inline-size:100%;z-index:0}
.strip__media picture,.strip__media img{position:absolute;inset:0;inline-size:100%;block-size:100%;max-inline-size:none}
.strip__media img{object-fit:cover;object-position:50% 47%}
.strip__text{position:relative;z-index:2}
.strip__word{display:inline-block;font:var(--fw-light) var(--fs-h2)/var(--lh-h2) var(--font-display);letter-spacing:var(--ls-h2);color:var(--color-frost)}
.strip:hover .strip__word{text-decoration:underline;text-decoration-thickness:var(--border-strong);text-underline-offset:var(--underline-offset);text-decoration-color:var(--color-frost)}
.strip .cap{display:block;margin-block-start:var(--space-2);color:var(--color-frost)}
.strip:focus-visible{outline:var(--focus-width) solid var(--color-frost);outline-offset:calc(-2 * var(--focus-offset))}
@media (max-width:1023px) and (max-aspect-ratio:4/5){
  .strips{grid-template-columns:1fr;grid-template-rows:repeat(4,minmax(0,1fr))}
}
@media (min-width:1024px), not all and (max-aspect-ratio:4/5){
  .strip{padding:var(--space-5)}
  .strip__media{inline-size:400%}
  .strip--1 .strip__media{inset-inline-start:0}
  .strip--2 .strip__media{inset-inline-start:-100%}
  .strip--3 .strip__media{inset-inline-start:-200%}
  .strip--4 .strip__media{inset-inline-start:-300%}
  .strip__media{container-type:inline-size}
}
@media (max-width:1023px) and (not (max-aspect-ratio:4/5)){ .strip{padding:var(--space-4)} }
.sez-head h1{max-inline-size:none}
@media (min-width:1024px){.sez-head__line{margin:0;align-self:baseline}.sez-head .grid{align-items:baseline}}

/* ═══ Двухчастная панель ═══ */
.panel{display:grid;row-gap:var(--space-3)}
.panel__media{position:relative;aspect-ratio:3/2;overflow:clip}
.panel__media picture,.panel__media img{position:absolute;inset:0;inline-size:100%;block-size:100%;max-inline-size:none}
.panel__media img{object-fit:cover}
.panel__body>.cap+*{margin-block-start:var(--space-4)}
.panel__body .tbl,.panel__body .inv{margin-block-start:var(--space-6)}
.panel__note{margin-block-start:var(--space-5)}
.panel__body .lead{margin-block-start:var(--space-4)}
@media (min-width:1024px){
  .panel{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--norm-gutter);row-gap:0}
  .panel__media{grid-column:1/span 5;aspect-ratio:auto;min-block-size:0}
  .panel__body{grid-column:6/span 7}
}
.sig-panel .panel__media img{object-position:92% 50%}

/* ═══ Документы (Согласие, Политика) ═══ */
.doc__narrow{margin-block-end:var(--space-6)}
.doc__narrow .lead{margin-block-start:var(--space-5)}
.doc__note{margin-block-start:var(--space-6)}
.doc__note+.link,.doc__link{display:inline-block;margin-block-start:var(--space-4)}
.doc__act{margin-block-start:var(--space-4)}
@media (min-width:1024px){
  .doc{align-items:start}
  .doc__narrow{margin:0;grid-column:1/span 5;position:sticky;inset-block-start:calc(var(--norm-header-h) + var(--space-7));align-self:start}
  .doc__wide{grid-column:6/span 7}
  .doc h1{max-inline-size:100%}
}
.doc h1{overflow-wrap:normal}

/* ═══ Фасад карты ═══ */
.map{margin-block-start:var(--space-7);background:var(--color-lichen-2);padding:var(--space-5)}
.map__row{display:grid;row-gap:var(--space-5)}
.map__text .cap{display:block;color:var(--color-muted-light)}
.map__text p:not(.cap){margin-block-start:var(--space-2)}
.map__act{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-4) var(--space-5)}
.map__act .btn{inline-size:100%}
.map__status{margin-block-start:var(--space-3);font:var(--fw-medium) var(--fs-small)/var(--lh-small) var(--font-display);color:var(--color-warning)}
.map__frame{display:block;inline-size:100%;aspect-ratio:1/1;border:0;background:var(--color-lichen)}
.map__link{margin-block-start:var(--space-3)}
@media (min-width:768px){.map__act .btn{inline-size:auto}}
@media (min-width:1024px){
  .map__row{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--norm-gutter);align-items:center}
  .map__text{grid-column:1/span 7}
  .map__act{grid-column:8/span 5;justify-content:flex-end}
  .map__frame{aspect-ratio:16/9}
}

/* ═══ Страница после отправки ═══ */
.after{background:var(--color-shungite)}
.after__head{position:relative;isolation:isolate;overflow:clip;aspect-ratio:4/5;display:flex;flex-direction:column;justify-content:flex-end;padding:var(--space-5) var(--norm-page-margin)}
.after__head .media{z-index:-1}
.after__cap{margin-block-end:var(--space-3)}
.after__body{padding:var(--space-7) var(--norm-page-margin) var(--space-7)}
.after__body .lead{margin-block-end:var(--space-7);max-inline-size:var(--norm-measure)}
.after .msgr__h{font:var(--fw-medium) var(--fs-body)/var(--lh-h3) var(--font-display)}
.after__more{margin-block-start:var(--space-7)}
.after__more ul{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-5);margin-block-start:var(--space-2)}
.after__more a{display:inline-flex;align-items:center;min-block-size:var(--norm-hit-min)}
.after__back{margin-block-start:var(--space-5)}
@media (min-width:1024px){
  .after{display:grid;grid-template-columns:minmax(0,calc(var(--pad-x) - var(--norm-gutter))) repeat(12,minmax(0,1fr)) minmax(0,calc(var(--pad-x) - var(--norm-gutter)));column-gap:var(--norm-gutter);
    grid-template-rows:minmax(0,1fr) auto auto auto auto auto;min-block-size:var(--fold);padding-block:var(--space-7);isolation:isolate;overflow:clip;position:relative}
  .after__head,.after__body{display:contents}
  .after__head .media{position:absolute;inset:0}
  .after__title{grid-column:2/span 7;grid-row:2;position:relative;hyphens:none}   /* от norm.bp-desktop слово вмещается целиком: точка переноса действует только ниже (04, norm.h1-page) */
  .after__body>.lead,.after__body>p.lead{grid-column:2/span 7;grid-row:3;margin:var(--space-5) 0 0;color:var(--color-frost)}
  .after__body .msgr{grid-column:2/span 7;grid-row:4;margin-block-start:var(--space-7)}
  .after__more{grid-column:2/span 7;grid-row:5;margin-block-start:var(--space-7)}
  .after__back{grid-column:2/span 7;grid-row:6;margin-block-start:var(--space-5)}
  .after__cap{grid-column:11/span 3;grid-row:6;align-self:end;justify-self:end;margin:0;text-align:end}
  .after__body{--c-text:var(--color-frost);--c-muted:var(--color-frost);--c-rule:var(--color-rule-on-media);--c-link:var(--color-frost);--c-link-hover:var(--color-frost);--c-link-active:var(--color-frost);--c-link-line-hover:var(--color-brusnika-lit);--c-focus:var(--color-frost)}
}

/* ═══ 404 ═══ */
.nf{position:relative;isolation:isolate;overflow:clip;min-block-size:var(--fold);display:flex;flex-direction:column;justify-content:flex-end;padding:var(--space-5) var(--pad-x) var(--space-7)}
.nf .media{z-index:-1}
.nf__cap{margin-block-end:var(--space-3)}
.nf .lead{margin-block-start:var(--space-4)}
.nf__lbl{margin-block-start:var(--space-7)}
.nf__links{margin-block-start:var(--space-3);display:grid;grid-template-columns:1fr}
.nf__links a{display:flex;align-items:center;min-block-size:var(--norm-hit-min);font:var(--fw-medium) var(--fs-body)/var(--lh-h3) var(--font-display);color:var(--color-ink)}
@media (min-width:768px){.nf__links{grid-template-columns:repeat(2,max-content);column-gap:var(--space-8);grid-auto-flow:column;grid-template-rows:repeat(3,auto)}}
@media (min-width:1024px){
  .nf{padding-block-end:var(--space-7)}
  .nf__cap{position:absolute;inset-inline-end:var(--pad-x);inset-block-end:var(--space-7);margin:0}
}

/* ═══ Номера: первый экран и прочее ═══ */
.hero--page .hero__text{container-type:normal}
.hero--page .hero__h1{font:var(--fw-light) var(--fs-h1)/var(--lh-h1) var(--font-display);letter-spacing:var(--ls-h1)}
.hero--page .hero__sub{padding:0;margin-block-start:var(--space-4);max-inline-size:none}
.hero--page .hero__lead{margin-block-start:var(--space-4)}
.hero--page .hero__aside{justify-content:flex-start}
@media (min-width:1024px){
  .hero--page{grid-template-rows:minmax(0,1fr) auto auto}
  .hero--page .hero__media{grid-row:1/3}
  .hero--page .hero__text{grid-row:2;padding-block-end:var(--space-6)}
  .hero--page .hero__aside{grid-row:2;align-self:end;padding-block:0 var(--space-6);min-block-size:0}
  .hero--page .hero__facts{grid-row:3}
}
.half{container-type:inline-size}
.price-line{display:flex;flex-wrap:wrap;align-items:last baseline;column-gap:var(--space-6);row-gap:var(--space-3);margin-block-start:var(--space-4)}
.price-line .fact__num{color:var(--color-ink);display:block}
.price-line>p{flex:none}
@container (max-width:40em){.price-line{flex-direction:column;align-items:flex-start}}
.price-line__cap{display:block;margin-block-start:var(--space-2);font:var(--fw-regular) var(--fs-small)/var(--lh-small) var(--font-display);color:var(--color-muted-light)}
.room{margin-block-start:var(--space-5)}
.room+.half__h{margin-block-start:var(--space-6)}
.half .para{margin-block-start:var(--space-6);max-inline-size:var(--norm-measure)}
.half .tbl,.half .inv{margin-block-start:var(--space-6)}
.rooms{display:grid;row-gap:var(--space-8)}
@media (min-width:1024px){.rooms{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--norm-gutter);row-gap:0}}

/* ═══ Заявка: блок мессенджеров на светлом ═══ */
.band__body .msgr__item{color:var(--c-text)}
.pad-msgr{padding-block-end:var(--space-7)}
@media (min-width:1024px){.pad-msgr{padding:0}}

/* ═══ reduced-motion (05, дословно) ═══ */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }

  /* общий сброс; !important перебивает и inline-стили, которые мог поставить скрипт */
  *, *::before, *::after {
    animation: none !important;
    transition: none !important;
  }

  /* M1, M2: видео не существует, остаётся постер */
  .hero__video, .hero__video-ctl { display: none !important; }

  /* M3–M5: сцена — стопка кадров, содержание то же */
  .sig__track.is-scene { block-size: auto !important; }
  .sig__track.is-scene .sig__stage {
    position: static !important; block-size: auto !important; overflow: visible !important;
  }
  .sig__track.is-scene .sig__step {
    position: relative !important; inset: auto !important; block-size: var(--norm-sig-height);
  }
  .sig__track.is-scene .sig__frame,
  .sig__track.is-scene .sig__inner { opacity: 1 !important; }
  .sig__track.is-scene .sig__scale { visibility: visible !important; }

  /* M6: параллакса нет */
  .parallax__img {
    position: static !important; inset: auto !important;
    block-size: 100% !important; transform: none !important;
  }

  /* M7: полоса без перемещения, смена opacity за --norm-rm-fade */
  .sticky-cta, .sticky-cta.is-hidden { transform: none !important; }
  .sticky-cta { opacity: 1; transition: opacity var(--norm-rm-fade) linear, visibility 0s !important; }
  .sticky-cta.is-hidden {
    opacity: 0; visibility: hidden;
    transition: opacity var(--norm-rm-fade) linear, visibility 0s linear var(--norm-rm-fade) !important;
  }

  /* M8: оверлей — смена opacity за --norm-rm-fade */
  .menu-overlay { transition: opacity var(--norm-rm-fade) linear, visibility 0s !important; }
  .menu-overlay.is-hidden {
    transition: opacity var(--norm-rm-fade) linear, visibility 0s linear var(--norm-rm-fade) !important;
  }
}
@media (prefers-reduced-motion: no-preference) {
  @supports (animation-timeline: view()) {
    .parallax { overflow: clip; position: relative; }
    .parallax__img {
      --plx-k: calc(0.5 * var(--norm-parallax-max) / (1 + var(--norm-parallax-max)));
      position: absolute; inset-inline: 0;
      inset-block-start: calc(-50% * var(--norm-parallax-max));
      block-size: calc(100% * (1 + var(--norm-parallax-max)));
      animation: plx linear both;
      animation-timeline: view();
      animation-range: cover 0% cover 100%;
    }
    @keyframes plx {
      from { transform: translateY(calc(-100% * var(--plx-k))); }
      to   { transform: translateY(calc(100% * var(--plx-k))); }
    }
  }
}

/* ═══ Кадрирование источников по пропорции вьюпорта (06) ═══ */
/* Номера, первый экран: container-type: size у медиа-зоны (cqw, cqh) */
.hero--nomera .hero__media{container-type:size}
.hero--nomera .hero__media img{object-position:100% min(0px,calc(100cqh - 34.06cqw))}
@media (max-aspect-ratio:8/5){.hero--nomera .hero__media img{object-position:100% min(0px,calc(100cqh - 42.35cqw))}}
@media (max-aspect-ratio:4/5){.hero--nomera .hero__media img{object-position:100% 50%}}
@media (max-aspect-ratio:1/2){.hero--nomera .hero__media img{object-position:50% 50%}}
/* Сцена сигнатуры: 16:9 — 92% 50%; 9:16 — 50% 60% */
.sig__frame img{object-position:92% 50%}
@media (max-aspect-ratio:4/5){.sig__frame img{object-position:50% 60%}}
/* Подвал: 4:1 — 50% 21%; 2:3 — 50% 36% */
.foot__bg img{object-position:50% 21%}
@media (max-width:1023px) and (max-aspect-ratio:4/5){.foot__bg img{object-position:50% 36%}}
/* Подписи: части без переноса; длинная часть подписи воды переносится по словам (вмещение) */
.cap .cap__wrap{white-space:normal}
.panel__media--house img{object-position:50% 50%}
/* Дом снаружи («Правила»): ниже norm.bp-desktop источник 3:4 выше поля 3:2 — 50% 34%; от него источник 1:1, 50% 50% */
@media (max-width:1023px){.panel__media--house img{object-position:50% 34%}}
/* Полосы «Сезонов» (десктоп и альбом ниже norm.bp-desktop): вертикальный object-position длиной, не процентом (06, «Кропы и вес»):
   горизонт кадра y стоит на 0,309 высоты полосы h = norm.seasons-strips-h; ширина кадра полосы Wк = 100cqw (.strip__media, 400 % полосы).
   Смещение = 0,309 × h − y × 0,5625 × Wк, в пределах от h − 0,5625 × Wк до 0. Коэффициент при Wк: y × 0,5625 */
@media (min-width:1024px), not all and (max-aspect-ratio:4/5){
  .strip--1{--strip-k:0.17702}   /* лето, y 0,3147 */
  .strip--2{--strip-k:0.17218}   /* осень, y 0,3061 */
  .strip--3{--strip-k:0.17713}   /* зима, y 0,3149 */
  .strip--4{--strip-k:0.17646}   /* весна, y 0,3137 */
  .strip__media img{object-position:50% min(0px,max(calc(var(--norm-seasons-strips-h) - 0.5625 * 100cqw),calc(0.309 * var(--norm-seasons-strips-h) - var(--strip-k) * 100cqw)))}
}
