/* v52-inner.css · внутренние страницы 5.2 — волна 1: /balkon-pod-klyuch/ · /osteklenie/ · /otdelka/ · /obekty/ · /kontakty/.
   §0–§8 — перенос стенда site/stands/v52-inner.css (craftsman-b716d8, 28.09, sha256 fad119fc…) без изменений, кроме §6:
   объявление @view-transition из файла снято — на странице его даёт v51-sections.css (X5), и второе объявление
   давало 2 правила против гео G52-vt-one «ровно одно». Здесь остаются правила прохода через косяк с :root — они
   сильнее X5 по специфичности и заменяют его кроссфейд на внутренних. §9 и дальше — сборка волны 1 (craftsman-c0dd5f,
   28.09.2026, T-S49 шаг 6): закон — _pipeline/specs/VSPEC-5.2-inner.md, вариант земли — Ф52-1 (б) «белые миры» (слово 20:32).
   Грузится блокирующим после v51-tokens / v51-home; v51-sections.css и v53-lead.css приходят позже асинхронно (в конце
   body) — правила, которые перекрывают v51-sections, держат специфичность выше (html[data-v51] …). */

/* ── 0 · ТОКЕНЫ 5.2 ─────────────────────────────────────────────────────── */
html[data-v51] {
  --jamb: calc(var(--m) / 2);                                   /* косяк — ½ модуля: 13 · 26 · 32 */
  --jamb-c: var(--fg);
  --entry-h: calc(100svh - var(--head-h) - var(--strip-h));
  --seq-step: 14px;
  --seq-run: calc(96 * var(--seq-step));                         /* 1344: X9, 14 px прокрутки на кадр */
  --dur-jamb: .4s;
  --act-h: 26px;
}

/* ── 0б · КРИТИЧЕСКИЙ ПУТЬ ВХОДА: v51-sections.css (77 КБ) на внутренних грузится без блокировки отрисовки — круг 2
   под Slow 4G + CPU × 4 блокирующие 183 КБ CSS держали LCP 2,26 с. Две группы правил, нужные первому экрану, повторены
   здесь байт в байт (v51-sections.css:30-34 — ссылка-действие, :64-71 — класс ВИЗУАЛИЗАЦИЯ); правка — в обоих местах. */
.v51-go { display: inline-flex; align-items: center; min-height: 44px; font-size: var(--t-2); color: var(--fg);
          text-decoration: underline; text-decoration-color: var(--acc); text-decoration-thickness: 2px; text-underline-offset: 5px; }
.v51-go:hover { text-decoration-color: var(--fg); }
span.v51-go { text-decoration: none; color: var(--fg3); }
.v51-vis { position: relative; clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--chamfer)), calc(100% - var(--chamfer)) 100%, 0 100%); }
.v51-vis::before, .v51-vis::after { content: ""; position: absolute; z-index: 3; top: 10px; width: 18px; height: 18px;
                                    border: 2px solid var(--acc-cold); pointer-events: none; }
.v51-vis::before { left: 10px; border-right: 0; border-bottom: 0; }
.v51-vis::after { right: 10px; border-left: 0; border-bottom: 0; }
.v51-vis img, .v51-vis video { filter: var(--grade-vis); }
html[data-v51] .sec { padding-block: calc(2 * var(--m)); }
html[data-v51] .sec::before { content: none; }

/* ── 1 · РАМА ВНУТРЕННИХ: шапка статичным блоком на земле (5.1 §Секция 0 «Внутренние») ──
   В 5.1 у .v51-head--page своих правил не было — шапка внутренних легла бы position: absolute поверх входа. */
.v51-head.v51-head--page { position: relative; inset: auto; background: var(--bg); border-bottom: 1px solid var(--line); }
.v51-head__nav a[aria-current="page"] { color: var(--fg); text-decoration: underline; text-decoration-color: var(--fg);
                                        text-decoration-thickness: 1px; text-underline-offset: 8px; }

/* крошки + штамп акта: одна строка на ≥ 48rem */
.v52-crumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: 0 10px; margin: 0; padding: 0; list-style: none; }
.v52-crumbs li { display: inline-flex; align-items: center; gap: 10px; color: var(--fg3); }
.v52-crumbs li + li::before { content: ""; width: 12px; height: 1px; background: var(--line2); }
.v52-crumbs a { display: inline-flex; align-items: center; min-height: 44px; color: var(--fg2); text-decoration: none; }
.v52-crumbs a:hover { color: var(--fg); }
.v52-crumbs [aria-current] { color: var(--fg); }

/* штамп акта (Р-5 а; грамматика штампа DESIGN-LAW §12.3, текущий — заливкой --fg: акцент экрана занят кнопкой, X4) */
.v52-act { display: inline-flex; gap: 4px; margin: 0; }
.v52-act__c { display: inline-flex; align-items: center; height: var(--act-h); padding: 0 9px; white-space: nowrap;
              border: 1px solid var(--line2); color: var(--fg3);
              clip-path: polygon(0 0, 100% 0, 100% calc(100% - 6px), calc(100% - 6px) 100%, 0 100%); }
.v52-act__c.is-done { border-color: var(--acc-cold); color: var(--fg2); }
.v52-act__c.is-now { background: var(--fg); border-color: var(--fg); color: var(--bg); }

/* косяк — белый профиль балконного блока слева от кадра входа и двери */
.v52-jamb { position: absolute; z-index: 4; inset: 0 auto 0 0; width: var(--jamb); background: var(--jamb-c); pointer-events: none; }

/* ── 2 · ВХОД ГЛАВЫ (блок 1, воздух) ──────────────────────────────────────
   1440: текст — колонки 1–6 (крошки со штампом сверху, H1 · обещание · действия снизу); кадр — колонки 7–12 + вынос
   1 модуль (660 × 680 при окне 900), косяк ½ модуля слева. Текста на кадре нет — скрима нет. */
.v52-entry { position: relative; background: var(--bg); color: var(--fg); }
.v52-entry__in { min-height: var(--entry-h); padding-block: var(--m); grid-template-rows: auto 1fr; align-items: start; row-gap: var(--m); }
.v52-entry__top { grid-column: 1 / span 6; grid-row: 1; display: flex; flex-wrap: wrap; align-items: center; gap: 0 26px; }
.v52-entry__text { grid-column: 1 / span 6; grid-row: 2; align-self: end; }
.v52-h1 { margin: 0; font-family: var(--font-display); font-weight: 700; font-size: var(--t-6); line-height: 1.1;
          letter-spacing: -.03em; text-transform: uppercase; text-wrap: balance; color: var(--fg); }
.v52-entry__sub { margin: 26px 0 0; max-width: 30em; font-size: var(--t-2); line-height: 1.5; color: var(--fg2); }
.v52-entry__act { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 32px; margin-top: var(--m); }
.v52-entry__f { grid-column: 7 / span 6; grid-row: 1 / span 2; align-self: stretch; position: relative; margin: 0 calc(-1 * var(--m)) 0 0;
                min-height: 360px; overflow: clip; background: var(--bg2); }
.v52-entry__f picture { display: contents; }
.v52-entry__f img { position: absolute; inset: 0 0 0 var(--jamb); width: calc(100% - var(--jamb)); height: 100%; object-fit: cover;
                    object-position: var(--pos, 50% 50%); filter: var(--grade-real); }
.v52-entry__f[data-class="visualization"] img { filter: var(--grade-vis); }
.v52-entry__f.v51-vis::before { left: calc(var(--jamb) + 10px); }
.v52-entry__plate { position: absolute; z-index: 3; left: var(--jamb); bottom: 0; }

/* ── 3 · ВОПРОСЫ, С КОТОРЫМИ ПРИХОДЯТ (блок 2, цех) ─────────────────────
   Три фразы спроса дословно столбцами 4 · 4 · 4 без карточек (terminal R-74); средний — перевязкой на 1 модуль вниз
   (излом №1 vkus). Под ними — мостик «Как делаем мы» строкой. На 390 — строки, чётная +26 вправо. */
.v52-ask__in { row-gap: var(--m); }
.v52-ask__h { grid-column: 1 / span 8; }
.v52-ask__list { grid-column: 1 / -1; margin: 0; padding: 0; list-style: none; display: grid;
                 grid-template-columns: repeat(3, minmax(0, 1fr)); column-gap: var(--col-gap); align-items: start; }
.v52-ask__i { padding-top: 16px; border-top: 1px solid var(--line2); display: grid; gap: 16px; }
.v52-ask__i:nth-child(2) { margin-top: var(--m); }
.v52-ask__q { margin: 0; font-size: var(--t-3); line-height: 1.25; color: var(--fg); text-wrap: balance; }
.v52-ask__a { margin: 0; font-size: var(--t-2); line-height: 1.5; color: var(--fg2); }
.v52-ask__bridge { grid-column: 1 / span 9; margin: 0; display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 16px;
                   align-items: baseline; padding-top: 16px; border-top: 1px solid var(--fg); font-size: var(--t-3); line-height: 1.3; color: var(--fg); }
.v52-ask__bridge .v51-lab { color: var(--fg3); white-space: nowrap; }

/* ── 4 · СБОРКА ПРОКРУТКОЙ SEQ-A (блок 3, свет; X9 — слово владельца 19:29) ──
   runway: 96 кадров × 14 px + экран; сцена липнет на высоту экрана без полосы. Слева шкала конструкции (DESIGN-LAW
   §12.4): слой в своём окне — маркер и номер акцентом («сейчас»), пройденные — остывшим, впереди — контуром.
   Справа — сцена ЧЕРТЁЖ 4:3 (кадр 1440 × 900 обрезан по центру до 1200 × 900 — предмет в центре 4:3), колонки 5–12
   + вынос 1 модуль, волосяная рамка и штамп «Схема | размеры по замеру». Строка слоя — в общем слоте под списком:
   смена строки не двигает раскладку. Без p.js (reduced-motion, нет JS) — обычная секция, постер и все строки. */
.v52-seq { position: relative; }
html.p[data-v51] .sec.v52-seq { height: calc(var(--seq-run) + 100svh); padding-block: 0; }
.v52-seq__pin { display: grid; align-items: center; }
html.p .v52-seq__pin { position: sticky; top: 0; height: calc(100svh - var(--strip-h)); overflow: clip; }
.v52-seq__in { align-items: center; row-gap: 26px; }
.v52-seq__l { grid-column: 1 / span 4; display: grid; gap: var(--m); align-content: center; }
.v52-seq__stage { grid-column: 5 / span 8; position: relative; margin: 0 calc(-1 * var(--m)) 0 0; aspect-ratio: 4 / 3; max-height: calc(100svh - var(--strip-h) - 2 * var(--m));
                  background: #0E0F11; outline: 1px solid var(--line2); outline-offset: -1px; overflow: clip; }
.v52-seq__cv, .v52-seq__poster { position: absolute; inset: 0; width: 100%; height: 100%; }
.v52-seq__poster { object-fit: cover; object-position: 50% 50%; }
.v52-seq__cv { z-index: 1; opacity: 0; }
.v52-seq.is-live .v52-seq__cv { opacity: 1; }
.v52-seq__plate { position: absolute; z-index: 3; right: 0; bottom: 0; }
.v52-seq__plate[data-class="scheme"] { border-left-color: var(--n-300); }
.v52-seq__hint { grid-column: 5 / span 8; margin: 0; color: var(--fg3); }
html.p .v52-seq__hint { opacity: calc(1 - var(--p, 0) * 20); }
html:not(.p) .v52-seq__hint { display: none; }
html:not(.p) .v52-seq__in { align-items: start; }

.v52-rail { position: relative; margin: 0; padding: 0 0 calc(3 * 1.5em + 16px); list-style: none; display: grid; font-size: var(--t-2); }
.v52-rail__i { display: grid; grid-template-columns: 12px auto minmax(0, 1fr); column-gap: 14px; align-items: baseline;
               padding: 7px 0; border-top: 1px solid var(--line); }
.v52-rail__i:last-child { border-bottom: 1px solid var(--line); }
.v52-rail__i::before { content: ""; width: 10px; height: 10px; border: 1px solid var(--line2); transform: translateY(1px); }
.v52-rail__n { font-family: var(--font-display); font-weight: 700; font-size: var(--t-2); line-height: 1; color: var(--fg3); font-variant-numeric: tabular-nums; min-width: 1.6em; }
.v52-rail__h { font-family: var(--font-mono); font-weight: var(--w-mono); font-size: var(--t-3); line-height: 1.05; letter-spacing: .04em;
               text-transform: uppercase; color: var(--fg3); }
.v52-rail__p { margin: 0; font-size: var(--t-2); line-height: 1.5; color: var(--fg); }
/* живой режим: строка слоя — в общем слоте под списком, видна только текущая */
html.p .v52-rail__p { position: absolute; left: 0; right: 0; bottom: 0; min-height: calc(3 * 1.5em); opacity: 0; transition: opacity .2s ease; }
html.p .v52-rail__i[aria-current] .v52-rail__p { opacity: 1; }
.v52-rail__i.is-done::before { background: var(--acc-cold); border-color: var(--acc-cold); }
.v52-rail__i.is-done .v52-rail__h { color: var(--fg2); }
.v52-rail__i.is-done .v52-rail__n { color: var(--fg2); }
.v52-rail__i[aria-current]::before { background: var(--acc); border-color: var(--acc); }
.v52-rail__i[aria-current] .v52-rail__n { color: var(--acc); }
.v52-rail__i[aria-current] .v52-rail__h { color: var(--fg); }
/* без p.js — документ: все строки на месте, маркеры «сделано» */
html:not(.p) .v52-rail { padding-bottom: 0; }
html:not(.p) .v52-rail__p { grid-column: 3; margin-top: 4px; color: var(--fg2); }
html:not(.p) .v52-rail__i::before { background: var(--acc-cold); border-color: var(--acc-cold); }

/* ── 5 · ВЫХОД (блок 6, воздух): дверь «Дальше» + хендофф + карточка ─────
   Дверь повторяет вход следующей главы: текст 1–6 снизу, кадр 1:1 в 7–12 + вынос, косяк слева. Вся дверь — ссылка. */
html[data-v51] .sec.v52-exit { padding-bottom: calc(2 * var(--m)); }
.v52-door { position: relative; align-items: end; color: var(--fg); text-decoration: none; }
.v52-door__t { grid-column: 1 / span 6; grid-row: 1; display: grid; gap: 16px; align-content: end; padding-bottom: 8px; }
.v52-door__k { color: var(--fg3); display: flex; align-items: center; gap: 12px; }
.v52-door__k::after { content: ""; width: var(--m); height: 1px; background: var(--line2); }
.v52-door__h { font-family: var(--font-display); font-weight: 700; font-size: var(--t-5); line-height: 1.1; letter-spacing: -.02em;
               text-transform: uppercase; text-wrap: balance; text-decoration: underline; text-decoration-color: transparent;
               text-decoration-thickness: 2px; text-underline-offset: 8px; transition: text-decoration-color .2s ease; }
.v52-door__p { font-size: var(--t-2); line-height: 1.5; color: var(--fg2); max-width: 28em; }
/* круг 1 (кадр vp-04): квадрат 660 × 660 рядом с тремя строками подписи оставлял над ней пустую стену 450 px — дверь выше
   экрана над финалом. На ≥ 48rem кадр двери — 4:3 той же ширины и той же точки кадра, что вход следующей главы (660 × 495);
   на 390 — 1:1, как вход. */
.v52-door__f { display: block; grid-column: 7 / span 6; grid-row: 1; position: relative; margin: 0 calc(-1 * var(--m)) 0 0; aspect-ratio: 4 / 3; overflow: clip; background: var(--bg2);
               outline: 1px solid transparent; outline-offset: -1px; transition: outline-color .2s ease; }
.v52-door__f picture { display: contents; }
.v52-door__f img { position: absolute; inset: 0 0 0 var(--jamb); width: calc(100% - var(--jamb)); height: 100%; object-fit: cover; filter: var(--grade-real); }
.v52-door__f[data-class="visualization"] img { filter: var(--grade-vis); }
.v52-door__plate { position: absolute; z-index: 3; left: var(--jamb); bottom: 0; }
.v52-door:hover .v52-door__h { text-decoration-color: var(--fg); }
.v52-door:hover .v52-door__f { outline-color: var(--fg); }
.v52-door:hover .v52-jamb { background: #FFFFFF; }
.v52-door:focus-visible { outline: 2px solid var(--acc); outline-offset: 6px; }

.v52-hand { margin-top: calc(2 * var(--m)); align-items: center; row-gap: 26px; padding-top: 26px; border-top: 1px solid var(--line2); }
.v52-hand__l { grid-column: 1 / span 8; margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: 16px 32px; }
.v52-hand .v51-card { grid-column: 9 / span 4; justify-self: end; }

/* ── 6 · ПРОХОД ЧЕРЕЗ КОСЯК (Р-3 а) — заменяет кроссфейд X5 ──────────────────────────────────────────────
   Старый снимок уходит влево, новый открывается справа; зазор шириной косяка — белый фон пары снимков.
   Сборка волны 1: объявление «@view-transition { navigation: auto }» и его reduced-motion-вариант сюда не перенесены —
   на внутренних их даёт v51-sections.css:604-606 (одно правило на странице, гео G52-vt-one). Правила ниже с :root сильнее
   правила X5 (:605) по специфичности и заменяют его длительность и кривую; при reduced-motion переход снят там же (:606). */
:root::view-transition-image-pair(root) { background: var(--jamb-c, #F4F5F7); }
:root::view-transition-old(root), :root::view-transition-new(root) { mix-blend-mode: normal; animation-duration: var(--dur-jamb, .4s);
  animation-timing-function: cubic-bezier(.2, .7, .2, 1); animation-fill-mode: both; }
:root::view-transition-old(root) { animation-name: v52-jamb-old; }
:root::view-transition-new(root) { animation-name: v52-jamb-new; }
@keyframes v52-jamb-old { from { clip-path: inset(0 0 0 0); } to { clip-path: inset(0 calc(100% + var(--jamb, 26px)) 0 0); } }
@keyframes v52-jamb-new { from { clip-path: inset(0 0 0 calc(100% + var(--jamb, 26px))); } to { clip-path: inset(0 0 0 0); } }

/* ── 6б · ВАРИАНТ «БЕЛЫЕ МИРЫ» (развилка Ф52-1, слово владельца 19:41) ─────────────────────────────────
   Два мира вместо трёх полотен: белый (земля «свет» Г6, #F1F2F4) — «факт и разбор»: вопросы, как устроено, состав и риск,
   паспорт; тёмный (#0E0F11) — «образ и действие»: вход, правда, дверь и звонок. Графита цеха нет. Соседние блоки одного
   мира сливаются в одну главу без шва: правило соседей закона (DESIGN-LAW.md:254) действует между мирами, а не между
   секциями внутри мира — это поправка закона, её принимает владелец вместе с вариантом. */
html[data-worlds="white"][data-v51] .sec.v52-ask { padding-bottom: var(--m); }
html[data-worlds="white"] .v52-ask + .v52-seq .v52-seq__pin { border-top: 0; }
html[data-worlds="white"] .v52-ask__bridge { border-top-color: var(--fg); }

/* ── 7 · ДО 64rem ─────────────────────────────────────────────────────── */
@media (max-width: 63.99rem) {
  .v52-hand .v51-card { grid-column: 1 / -1; justify-self: start; }
  .v52-hand__l { grid-column: 1 / -1; }
}

/* ── 8 · 390 — мобила первая ──────────────────────────────────────────── */
@media (max-width: 47.99rem) {
  .v52-entry__in { min-height: 0; padding-block: 8px 26px; grid-template-rows: auto auto auto; row-gap: 16px; }
  .v52-entry__top, .v52-entry__text { grid-column: 1; }
  .v52-entry__top { flex-direction: column; align-items: flex-start; gap: 0; }
  .v52-entry__f { grid-column: 1; grid-row: 2; margin-right: calc(-1 * var(--gutter)); aspect-ratio: 1; min-height: 0; height: auto; }
  .v52-entry__f img { object-position: var(--pos-m, 50% 50%); }
  .v52-entry__text { grid-row: 3; }
  .v52-entry__sub { margin-top: 16px; }
  .v52-entry__act { flex-direction: column; align-items: stretch; margin-top: 26px; gap: 8px; }
  .v52-entry__act .v51-call { width: 100%; }
  .v52-entry__act .v51-go { justify-content: center; }
  .v52-act { margin-top: 4px; }
  .v52-act__c { padding: 0 7px; }

  /* ритм по весу перехода (принцип 7 роли, anti-slop I-08): тёмный вход → графит — слабая смена земли, 2 модуля;
     графит → свет и свет → тёмная дверь — сильная смена, её держит сама земля, хватает 1 модуля */
  html[data-v51] .sec.v52-ask { padding-block: calc(2 * var(--m)) var(--m); }
  html[data-v51] .sec.v52-exit { padding-top: var(--m); }
  .v52-ask__h, .v52-ask__bridge { grid-column: 1; }
  .v52-ask__list { grid-template-columns: minmax(0, 1fr); row-gap: 26px; }
  .v52-ask__i:nth-child(2) { margin: 0 0 0 var(--m); }
  .v52-ask__i { gap: 10px; }
  .v52-ask__bridge { grid-template-columns: minmax(0, 1fr); row-gap: 6px; font-size: var(--t-2); line-height: 1.5; }

  .v52-seq__in { grid-template-rows: auto auto; row-gap: 16px; align-content: center; }
  .v52-seq__l { display: contents; }
  .v52-seq__l > .v51-h2 { grid-column: 1; grid-row: 1; }
  .v52-seq__stage { grid-column: 1; grid-row: 2; margin-right: calc(-1 * var(--gutter)); aspect-ratio: 1; max-height: none; }
  .v52-rail { grid-column: 1; grid-row: 3; }
  .v52-seq__hint { grid-column: 1; grid-row: 4; }
  .v52-rail__i { padding: 4px 0; }
  .v52-rail__h { font-size: var(--t-2); letter-spacing: .03em; }
  html.p .v52-rail { padding-bottom: calc(2 * 1.5em + 10px); }
  html.p .v52-rail__p { min-height: calc(2 * 1.5em); }   /* ступень --t-2 (17): круг 2 стоял 15 px вне шкалы — датчик T3 на 390 */

  .v52-door__t, .v52-door__f { grid-column: 1; }
  .v52-door__t { grid-row: 1; padding-bottom: 16px; }
  .v52-door__f { grid-row: 2; margin-right: calc(-1 * var(--gutter)); aspect-ratio: 1; }
  .v52-hand { margin-top: var(--m); }
  .v52-hand__l { flex-direction: column; align-items: stretch; gap: 0; }
  .v52-hand__l .v51-call { width: 100%; margin-top: 8px; }
}

/* уменьшенное движение: переход без косяка, подписи без смены */
@media (prefers-reduced-motion: reduce) {
  .v52-rail__p { transition: none; }
  .v52-door__h, .v52-door__f { transition: none; }
}

/* ══════════════════════════════════════════════════════════════════════════════════════════════════════════
   СБОРКА ВОЛНЫ 1 (craftsman-c0dd5f) — компоненты, которых на стенде не было. Язык тот же: модуль-кирпич, 12 колонок,
   один акцент на экран, остывший — «сделано», срез угла, теней ноль. Изломы — только из vkus спеки §1.5:
   перевязка (чётный элемент списка ≥ 3 — на модуль) и вынос (кадр за линию контейнера на модуль).
   ══════════════════════════════════════════════════════════════════════════════════════════════════════════ */

/* ── 9 · ГЛАВА ИЗ НЕСКОЛЬКИХ СЕКЦИЙ ОДНОГО МИРА (поправка §12.1 закона 28.09): секция-продолжение главы не ставит второй
   отступ в 2 модуля — между секциями одной главы 1 модуль; граница мира остаётся за сменой земли. */
html[data-v51] .sec.v52-cont { padding-top: var(--m); }
html[data-v51] .sec.v52-cont-next { padding-bottom: var(--m); }

/* сборка SEQ-A: на подлёте (p = 0) — постер «лоджия в сборе», холст сменяет его с первым шагом прокрутки runway */
html.p .v52-seq__cv { transition: opacity .3s ease; }
@media (prefers-reduced-motion: reduce) { .v52-seq__cv { transition: none; } }

/* первая строка блока 2 у клонов Ф1 — обещание входа (H1 в 4 строки, правило первого окна: H1 + обещание ≤ 4 строк) */
.v52-ask__lead { grid-column: 1 / span 9; margin: 0; font-size: var(--t-3); line-height: 1.3; color: var(--fg); text-wrap: pretty; }

/* ── 10 · СОСТАВ И РИСК (блок 5, белый мир): компоненты Г7/Г8 5.1 (.v51-sets, .v51-terms, .v51-zam, .v51-faq) ──
   H2 — колонки 1–8; составы — раскладка конфигуратора 5.1 (высота постоянная); под ними строка подарка, ряд условий,
   ниже — раскрытие замерщика (1–7) и вопросы (1–8). На белой земле тело состава и открытое имя — на --bg3 (белее земли),
   кромка --fg. */
.v52-sost__hd { row-gap: 26px; }
.v52-sost__hd .v51-h2 { grid-column: 1 / span 8; }
html[data-v51] .sec--svet .v51-set[open] { background: var(--bg3); }
.v52-gift { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 16px; margin: var(--m) auto 0; padding-top: 16px; border-top: 1px solid var(--line2);
            font-size: var(--t-2); line-height: 1.45; color: var(--fg2); }
.v52-gift b { display: inline-flex; align-items: center; gap: 10px; font-weight: var(--w-mono); color: var(--fg); }   /* вес подписи — моно 900: «inherit» (400) тянул лишний файл Sofia 700, 66 КБ (приём 29.09) */
.v52-gift b::before { content: ""; flex: none; width: 7px; height: 7px; background: var(--acc); }
html[data-v51] .v52-sost .v51-terms { margin-top: var(--m); }
.v52-sost__more { margin-top: calc(2 * var(--m)); row-gap: var(--m); align-items: start; }
.v52-sost__more .v51-zam { grid-column: 1 / span 7; flex: none; padding-top: 16px; border-top: 1px solid var(--line2); }
.v52-sost__more .v51-faq { grid-column: 1 / span 8; }

/* ── 11 · ТУР ПО УЗЛАМ КЛИКОМ SEQ-C (/osteklenie/ блок 3; I-01, эталон apple-iphone-air inner-layers vdc-00) ──
   1440: колонки 1–4 — H2, список кнопок-строк (как шкала конструкции; узлы 2 и 4 — перевязкой на модуль вправо), общий слот
   строки узла; колонки 5–12 + вынос — сцена ЧЕРТЁЖ 4:3, рамка --line2, штамп «Схема | размеры по замеру». Первое состояние —
   постер «узел собран» (096), нажата «Весь узел». Без JS: у каждой строки видна её подпись и конечный кадр узла (lq-m). */
.v52-tour__in { align-items: center; row-gap: 26px; }
.v52-tour__l { grid-column: 1 / span 4; display: grid; gap: var(--m); align-content: center; }
.v52-tour__stage { grid-column: 5 / span 8; position: relative; margin: 0 calc(-1 * var(--m)) 0 0; aspect-ratio: 4 / 3;
                   background: #0E0F11; outline: 1px solid var(--line2); outline-offset: -1px; overflow: clip; }
.v52-tour__poster, .v52-tour__cv { position: absolute; inset: 0; width: 100%; height: 100%; }
.v52-tour__poster { object-fit: cover; object-position: 50% 50%; }
.v52-tour__cv { z-index: 1; opacity: 0; }
.v52-tour.is-live .v52-tour__cv { opacity: 1; }
.v52-tour__plate { position: absolute; z-index: 3; right: 0; bottom: 0; }
.v52-tour__plate[data-class="scheme"] { border-left-color: var(--n-300); }
.v52-nodes { margin: 0; padding: 0; list-style: none; display: grid; gap: 8px; }   /* F2: зазор между узлами ≥ 8 */
.v52-node { border-top: 1px solid var(--line); }
.v52-node:last-child { border-bottom: 1px solid var(--line); }
.v52-node:nth-child(3), .v52-node:nth-child(5) { margin-left: var(--m); }   /* узлы 2 и 4 — перевязка; правая кромка на месте: круг 1 — линии заходили на сцену */
.v52-node__b { appearance: none; width: 100%; display: grid; grid-template-columns: 12px minmax(0, 1fr); column-gap: 14px; align-items: center;
               min-height: 44px; margin: 0; padding: 7px 0; border: 0; background: none; cursor: pointer; text-align: left; color: var(--fg3);
               font-family: var(--font-mono); font-weight: var(--w-mono); font-size: var(--t-3); line-height: 1.05; letter-spacing: .04em; text-transform: uppercase;
               transition: color .2s ease; }
.v52-node__b::before { content: ""; width: 10px; height: 10px; border: 1px solid var(--line2); }
.v52-node__b:hover { color: var(--fg); }
.v52-node__b[aria-pressed="true"] { color: var(--fg); }
.v52-node__b[aria-pressed="true"]::before { background: var(--acc); border-color: var(--acc); }
.v52-node__b:focus-visible { outline: 2px solid var(--acc); outline-offset: 2px; }
.v52-node__p { margin: 4px 0 10px 26px; font-size: var(--t-2); line-height: 1.5; color: var(--fg2); }
.v52-node__end { display: block; width: calc(100% - 26px); height: auto; aspect-ratio: 1; margin: 0 0 12px 26px; background: #0E0F11; }
.v52-tour__line { margin: 0; min-height: calc(3 * 1.5em); font-size: var(--t-2); line-height: 1.5; color: var(--fg); }
html:not(.v52-js) .v52-tour__line { display: none; }
html.v52-js .v52-node__p, html.v52-js .v52-node__end { display: none; }
.v52-tour__hint { grid-column: 5 / span 8; margin: 0; color: var(--fg3); }
html:not(.v52-js) .v52-tour__hint { display: none; }

/* ── 12 · «СВЕТ ВКЛЮЧАЕТСЯ» ОДНОЙ КАМЕРОЙ (/otdelka/ блок 3; R-46, механика Г5 5.1) ──
   1440: H2 1–8; пара 16:10 в колонках 1–8 с выносом влево на модуль (кадр шире стены, как вход главы — зеркально); день ↔
   вечер кроссфейдом opacity за --dur-fade по наведению и фокусу; подпись «вечером, свет включён» — с задержкой --dur-cap.
   Справа 9–12 — строки этапов 05 и 06 и слот кадра процесса OTD-1. 390: пара 4:5 до правого края, свет — по видимости один раз. */
.v52-light__in { row-gap: var(--m); align-items: start; }
.v52-light__h { grid-column: 1 / span 8; }
.v52-light__f { grid-column: 1 / span 8; grid-row: 2; position: relative; margin: 0 0 0 calc(-1 * var(--m)); aspect-ratio: 16 / 10; overflow: clip;
                background: var(--bg2); outline: none; cursor: default; }
.v52-light__f picture { display: contents; }
.v52-light__f img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: var(--grade-vis); }
.v52-light__on { opacity: 0; transition: opacity var(--dur-fade) cubic-bezier(.4, 0, .2, 1); }
.v52-light__lb { position: absolute; z-index: 3; left: 0; bottom: 0; padding: 7px 10px 8px; background: rgba(14,15,17,.92); color: #F4F5F7; }
.v52-light__lb--on { opacity: 0; visibility: hidden; transition: opacity .3s ease var(--dur-cap), visibility 0s linear var(--dur-cap); }
.v52-light__lb--day { transition: opacity .2s ease; }
.v52-light__plate { position: absolute; z-index: 3; right: calc(var(--chamfer) + 10px); bottom: 0; }   /* круг 1: сверху наезжал на скобку класса */
.v52-light__f.is-lit .v52-light__on { opacity: 1; }
.v52-light__f.is-lit .v52-light__lb--on { opacity: 1; visibility: visible; }
.v52-light__f.is-lit .v52-light__lb--day { opacity: 0; }
@media (hover: hover) {
  .v52-light__f:hover .v52-light__on { opacity: 1; }
  .v52-light__f:hover .v52-light__lb--on { opacity: 1; visibility: visible; }
  .v52-light__f:hover .v52-light__lb--day { opacity: 0; }
}
.v52-light__f:focus-visible { outline: 2px solid var(--acc); outline-offset: 3px; }
.v52-light__f:focus-visible .v52-light__on { opacity: 1; }
.v52-light__f:focus-visible .v52-light__lb--on { opacity: 1; visibility: visible; }
.v52-light__f:focus-visible .v52-light__lb--day { opacity: 0; }
.v52-light__side { grid-column: 9 / span 4; grid-row: 2; display: grid; gap: var(--m); align-content: start; }
.v52-steps { margin: 0; padding: 0; list-style: none; display: grid; }
.v52-steps li { display: grid; grid-template-columns: auto minmax(0, 1fr); column-gap: 14px; row-gap: 6px; align-items: baseline;
                padding: 12px 0; border-top: 1px solid var(--line2); }
.v52-steps li:last-child { border-bottom: 1px solid var(--line2); }
.v52-steps li:nth-child(2) { margin-left: var(--m); }
.v52-steps .v52-rail__n { color: var(--fg2); }
.v52-steps .v52-rail__h { color: var(--fg); }
.v52-steps p { grid-column: 2; margin: 0; font-size: var(--t-2); line-height: 1.5; color: var(--fg2); }

/* честный слот (R-88): кадра ещё нет — видимая подпись класса и предмета, штриховка, та же пропорция, что у будущего кадра */
.v52-slot { position: relative; display: grid; place-items: center; margin: 0; aspect-ratio: 4 / 3; border: 1px dashed var(--line2);
            background: repeating-linear-gradient(135deg, var(--bg2) 0 12px, var(--bg) 12px 24px); }
.v52-slot__t { max-width: calc(100% - 32px); padding: 8px 12px; background: var(--bg); color: var(--fg2); border-left: 3px solid var(--fg3); }
.v52-slot[data-class="visualization"] .v52-slot__t { border-left-color: var(--acc-cold); }

/* ── 13 · ДВЕ КОЛОНКИ ПЕРЕВЯЗКОЙ (/obekty/ лента, /otdelka/ блок 4; R-32, Vipp vd-01 / vm-01) ──
   Кадры 3:4, правая колонка ниже на модуль (52 / 26) — чётная карточка смещена вниз, отрицательным полем снизу строка
   сетки не растёт: ритм обеих колонок один. Подпись лестницей Г3: шильдик «Фото объекта | год» → вид работы строкой.
   Карточка серии «+N фото» (R-30): обложка — общий план (R-37), остальные кадры серии — в просмотрщике, листание на месте.
   Появление — вскрытие clip-path из угла той же --p (R-35), без второго слушателя прокрутки. */
.v52-grid2 { margin: var(--m) 0 0; padding: 0 0 var(--m); list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
             column-gap: var(--col-gap); row-gap: var(--m); align-items: start; }
.v52-grid2 > :nth-child(even) { margin-top: var(--m); margin-bottom: calc(-1 * var(--m)); }
.v52-cell { margin: 0; display: grid; gap: 12px; align-content: start; min-width: 0; }
.v52-cell__open { appearance: none; position: relative; display: block; width: 100%; padding: 0; border: 0; background: var(--bg2); cursor: zoom-in; color: inherit; }
.v52-cell__open:focus-visible { outline: 2px solid var(--acc); outline-offset: 3px; }
.v52-cell__f { display: block; aspect-ratio: 3 / 4; overflow: clip; }
.v52-cell__f img { width: 100%; height: 100%; object-fit: cover; object-position: var(--pos, 50% 50%); filter: var(--grade-real); }
html.p .v52-cell[data-p="in"] .v52-cell__f { clip-path: inset(calc((1 - var(--p)) * 100%) calc((1 - var(--p)) * 100%) 0 0); }
.v52-cell__more { position: absolute; z-index: 2; right: 0; bottom: 0; padding: 8px 12px; background: rgba(14,15,17,.92); color: #F4F5F7; border-left: 3px solid #F4F5F7; }
.v52-cell__plate { justify-self: start; }
.v52-cell__name { margin: -2px 0 0; font-size: var(--t-2); line-height: 1.3; color: var(--fg); }
.v52-cell__name::first-letter { text-transform: uppercase; }
.v52-cell__rest { display: none; }
.v52-cell:hover .v52-cell__plate > span, .v52-cell:focus-within .v52-cell__plate > span { color: var(--fg); }

/* ── 14 · /obekty/: вход и лента (тёмный мир) ─────────────────────────────
   Нет кадра справа — LCP первая карточка левой колонки. H1 1–8, справа 9–12 строка «Здесь только объекты Михаила.»
   и счётчик «NN кадров»; вкладки — ряд таблеток, у активной линия --fg 2 px (без заливки акцентом, LATER-03). */
.v52-obk__in { row-gap: 26px; padding-block: var(--m) 0; align-items: end; }
.v52-obk__top { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 0 26px; }
.v52-obk__h1 { grid-column: 1 / span 8; }
.v52-obk__meta { grid-column: 9 / span 4; display: grid; gap: 8px; justify-items: end; text-align: right; }
.v52-obk__only { margin: 0; font-size: var(--t-2); line-height: 1.4; color: var(--fg2); }
.v52-obk__count { margin: 0; font-family: var(--font-mono); font-weight: var(--w-mono); font-size: var(--t-3); line-height: 1; letter-spacing: .04em;
                  text-transform: uppercase; color: var(--fg); font-variant-numeric: tabular-nums; }
.v52-tabs { grid-column: 1 / -1; display: flex; gap: 8px;   /* F2: зазор между вкладками ≥ 8 */ margin: var(--m) 0 0; padding: 0; border-bottom: 1px solid var(--line2);
            overflow-x: auto; scrollbar-width: none; scroll-snap-type: x mandatory; }
.v52-tabs::-webkit-scrollbar { display: none; }
.v52-tabs [role="tab"] { appearance: none; flex: none; min-height: 52px; margin: 0 0 -1px; padding: 0 26px 0 0; border: 0; background: none; cursor: pointer;
                         scroll-snap-align: start; font-family: var(--font-mono); font-weight: var(--w-mono); font-size: var(--t-3); line-height: 1;
                         letter-spacing: .04em; text-transform: uppercase; color: var(--fg3);
                         background-image: linear-gradient(transparent, transparent); background-repeat: no-repeat; background-position: 0 100%; background-size: calc(100% - 26px) 2px;
                         transition: color .2s ease; }
.v52-tabs [role="tab"] + [role="tab"] { padding-left: 26px; background-position: 26px 100%; background-size: calc(100% - 52px) 2px; border-left: 1px solid var(--line); }
.v52-tabs [role="tab"]:hover { color: var(--fg); }
.v52-tabs [role="tab"][aria-selected="true"] { color: var(--fg); background-image: linear-gradient(var(--fg), var(--fg)); }
.v52-tabs [role="tab"]:focus-visible { outline: 2px solid var(--acc); outline-offset: -4px; }
.v52-tabs__n { margin-left: 8px; font-family: var(--font-text); font-weight: 400; font-size: var(--t-1); letter-spacing: 0; color: var(--fg3); }
.v52-obk__panel { outline: none; }
.v52-obk__panel:focus-visible { outline: 2px solid var(--acc); outline-offset: 6px; }
.v52-obk__panel[hidden] { display: none; }
html[data-v51] .sec.v52-obk { padding-top: 0; }

/* кейсы (блок 2, белый мир): карточки-строки «район · что видно · +N кадров»; страниц кейсов ещё нет (волна 4) — строки
   не ссылки (<span>), без стрелки; строки 2 — перевязкой на модуль вправо */
.v52-cases { margin: 0; padding: 0; list-style: none; display: grid; border-top: 2px solid var(--fg); }
.v52-case { display: grid; grid-template-columns: calc(4 * var(--m) - var(--col-gap)) minmax(0, 1fr) auto; column-gap: calc(2 * var(--col-gap));
            align-items: center; padding: 16px 0; border-bottom: 1px solid var(--line2); }
.v52-case:nth-child(2) { margin-left: var(--m); margin-right: calc(-1 * var(--m)); }
.v52-case__f { position: relative; display: block; aspect-ratio: 4 / 3; overflow: clip; background: var(--bg2); }
.v52-case__f img { width: 100%; height: 100%; object-fit: cover; filter: var(--grade-real); }
.v52-case__t { display: grid; gap: 8px; }
.v52-case__place { color: var(--fg3); }
.v52-case__what { font-family: var(--font-mono); font-weight: var(--w-mono); font-size: var(--t-3); line-height: 1.05; letter-spacing: .04em;
                  text-transform: uppercase; color: var(--fg); }
.v52-case__n { color: var(--fg2); white-space: nowrap; }

/* ── 15 · /kontakty/: телефон — герой (Х-10), паспорт «подпись — значение» (R-89), что после звонка, форма замера ──
   Пик страницы — номер (--t-6, 68 / 31), H1 — ступенью ниже (--t-5). Паспорт: подпись 2 колонки, значение крупнее
   подписи (sminex contacts vd-00); чётные строки — перевязкой на модуль. Форма — второе действие, на белой земле. */
.v52-h1--s { font-size: var(--t-5); letter-spacing: -.02em; }
.v52-tel__num { display: inline-flex; align-items: center; min-height: 44px; margin-top: 26px; font-family: var(--font-display); font-weight: 700;
                font-size: var(--t-6); line-height: 1.05; letter-spacing: -.03em; color: var(--fg); text-decoration: none; white-space: nowrap; }
.v52-tel__num:hover { text-decoration: underline; text-decoration-color: var(--acc); text-decoration-thickness: 3px; text-underline-offset: 10px; }
.v52-tel__num:focus-visible { outline: 2px solid var(--acc); outline-offset: 4px; }
.v52-tel__write { display: flex; flex-wrap: wrap; align-items: center; gap: 0 26px; margin: 16px 0 0; }
.v52-tel__write > .v51-lab { color: var(--fg3); }
.v52-tel__write .v51-write__ext { display: inline-flex; align-items: center; min-height: 44px; gap: 8px; color: var(--fg); font-size: var(--t-2); }
.v52-tel__write .v51-write__ext i { font-style: normal; color: var(--fg3); }
.v52-knt__in { row-gap: var(--m); align-items: start; }
.v52-pass { grid-column: 1 / span 7; margin: 0; display: grid; border-top: 2px solid var(--fg); }
.v52-pass__r { display: grid; grid-template-columns: calc(2 * var(--m) - var(--col-gap)) minmax(0, 1fr); column-gap: var(--col-gap); align-items: baseline;
               padding: 14px 0; border-bottom: 1px solid var(--line2); }
.v52-pass__r:nth-child(even) { margin-left: var(--m); }
.v52-pass dt { color: var(--fg3); }
.v52-pass dd { margin: 0; font-size: var(--t-3); line-height: 1.3; color: var(--fg); }
.v52-pass dd a { color: var(--fg); text-decoration: underline; text-decoration-color: var(--acc); text-decoration-thickness: 2px; text-underline-offset: 5px; }
.v52-pass dd .v51-write__ext { display: inline-flex; gap: 6px; margin-right: 16px; }
.v52-pass dd .v51-write__ext i { font-style: normal; color: var(--fg3); }
.v52-after { grid-column: 9 / span 4; display: grid; gap: 16px; align-content: start; }
.v52-after__h { margin: 0; }
.v52-after ol { margin: 0; padding: 0; list-style: none; display: grid; border-top: 2px solid var(--fg); }
.v52-after li { padding: 14px 0; border-bottom: 1px solid var(--line2); font-size: var(--t-2); line-height: 1.45; color: var(--fg2); }
.v52-after li b { font-weight: inherit; color: var(--fg); }
.v52-form { grid-column: 1 / span 7; display: grid; gap: 16px; }
.v52-form__k { margin: 0; color: var(--fg3); }
html[data-v51] .sec--svet .v51-form { background: var(--bg3); border-color: var(--line2); }
html[data-v51] .sec--svet .v51-form__f input, html[data-v51] .sec--svet .v51-form__f textarea { background: var(--bg); color: var(--fg); }
html[data-v51] .sec--svet .v51-form__send:disabled { color: var(--fg3); border-color: var(--line2); }
/* выключенная отправка — и в блокирующем стиле: внутри закрытого <details> (ход «на сайте») Chrome не пересчитывает стиль
   пропущенного содержимого после прихода асинхронного v51-sections.css:529, и кнопка до раскрытия числилась оранжевой
   (contrast-audit, круг 2: 2,15:1). Раскрытая выглядела верно — ошибка была в состоянии, которого не видно глазом. */
html[data-v51] .v51-form__send:disabled { background: transparent; border: 1px solid var(--line2); cursor: not-allowed; filter: none; }
/* номер текущего слоя шкалы на белой земле: #FF4D12 на #F1F2F4 — 2,97:1 при норме 3:1 для крупного (contrast-audit, круг 2);
   «сейчас» держит маркер акцентом, номер — чернилами. На тёмной земле номер остаётся акцентом (≈ 6:1). */
html[data-v51] .sec--svet .v52-rail__i[aria-current] .v52-rail__n { color: var(--fg); }

/* ── 16 · /osteklenie/ «Холодное и алюминиевое — когда оно к месту» (id aluminiy, П9) ──
   Слева (1–7) — пара одной камеры S-PAIR-OST: до OST-2 — честный слот холодного контура рядом с принятым PL-00 (тёплый),
   шторки нет, пока нет пары (одна шторка на маршрут — у «Покажем ваш балкон»); справа (8–12) — три строки перевязкой. */
.v52-alu__in { row-gap: var(--m); align-items: start; }
.v52-alu__h { grid-column: 1 / span 8; }
.v52-alu__pair { grid-column: 1 / span 7; grid-row: 2; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: var(--jamb); }
.v52-alu__half { position: relative; margin: 0; aspect-ratio: 4 / 5; overflow: clip; background: var(--bg2); }
.v52-alu__half.v52-slot { aspect-ratio: 4 / 5; }
.v52-alu__half img { width: 100%; height: 100%; object-fit: cover; filter: var(--grade-vis); }
.v52-alu__lb { position: absolute; z-index: 3; left: 0; bottom: 0; padding: 7px 10px 8px; background: rgba(14,15,17,.92); color: #F4F5F7; }
.v52-alu__cap { grid-column: 1 / -1; margin-top: 12px; }
.v52-alu__rows { grid-column: 8 / span 5; grid-row: 2; margin: 0; padding: 0; list-style: none; display: grid; border-top: 2px solid var(--fg); }
.v52-alu__rows li { display: grid; gap: 8px; padding: 16px 0; border-bottom: 1px solid var(--line2); }
.v52-alu__rows li:nth-child(2) { margin-left: var(--m); margin-right: calc(-1 * var(--m)); }
.v52-alu__k { font-family: var(--font-mono); font-weight: var(--w-mono); font-size: var(--t-3); line-height: 1.05; letter-spacing: .04em; text-transform: uppercase; }
.v52-alu__k a { color: var(--fg); text-decoration: underline; text-decoration-color: var(--acc); text-decoration-thickness: 2px; text-underline-offset: 5px; }
.v52-alu__k span { color: var(--fg); }
.v52-alu__rows p { margin: 0; font-size: var(--t-2); line-height: 1.45; color: var(--fg2); }

/* ── 17 · «ПОКАЖЕМ ВАШ БАЛКОН» НА САЙТЕ — ход (а) развилки Ф-S53-1 (рекомендация, до слова Серга): тот же путь, что в боте —
   фото → два варианта сразу → номер на «Хочу такой». Поля загрузки нет («Выбрать фото» — не поле, спека: 0 type=file),
   форма выключена до подключения. Раскрытие по «На сайте» в строке каналов, свёрнуто по умолчанию. */
.v53-site { grid-column: 1 / -1; margin-top: var(--m); border-top: 1px solid var(--line2); }
.v53-site > summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 52px; cursor: pointer; list-style: none;
                      font-size: var(--t-2); color: var(--fg); }
.v53-site > summary::-webkit-details-marker { display: none; }
.v53-site > summary::after { content: "+"; font-family: var(--font-mono); font-weight: var(--w-mono); font-size: var(--t-3); color: var(--fg); }
.v53-site[open] > summary::after { content: "\2212"; }
.v53-site > summary:focus-visible { outline: 2px solid var(--acc); outline-offset: 2px; }
.v53-site__b { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); column-gap: var(--col-gap); row-gap: 16px; padding: 16px 0 var(--m); align-items: start; }
.v53-site__steps { grid-column: 1 / span 5; display: grid; gap: 16px; }
.v53-site__res { grid-column: 7 / span 6; }
.v53-site .v51-form { grid-column: 7 / span 6; }

/* кадр двери класса ВИЗУАЛИЗАЦИЯ (дверь ведёт на страницу, у которой вход — визуализация): левая скобка — за косяком */
.v52-door__f.v51-vis::before { left: calc(var(--jamb) + 10px); }
/* миниатюра кейса — шильдик ПРАВДЫ на всех ширинах (5.1 §1.6), мельче: кадр 4 колонки */
.v52-case__f .v51-plate { position: absolute; left: 0; bottom: 0; }
.v52-case__f .v51-plate > span { padding: 5px 8px; }

/* ── 17б · цели нажатия ≥ 44 × 44 (mobile-audit, круг 2) ──
   Радио выбора варианта лид-блока лежат поверх своей подписи во всю её площадь (как радио калькулятора главной,
   v51-sections.css:741-742): абсолютный элемент сетки с grid-column занимает клетку своей подписи.
   Флажок согласия: 44 × 44 — площадь нажатия, видимый квадрат 20 × 20 рисуется фоном по центру (раскладка строки та же:
   поле −12 px со всех сторон). Ссылки-строки: min-height 44. */
html[data-v51] .v53-var input { grid-row: 1; inset: 0; width: 100%; height: 100%; margin: 0; z-index: 1; cursor: pointer; }
html[data-v51] .v53-var #v53-v-warm { grid-column: 2; }
html[data-v51] .v53-var #v53-v-office { grid-column: 3; }
html[data-v51] .v53-var input:hover + label { color: var(--fg); }
html[data-v51] .v51-form__ok input { appearance: none; -webkit-appearance: none; width: 44px; height: 44px; margin: -12px; cursor: pointer;
  background: linear-gradient(var(--bg), var(--bg)) center / 18px 18px no-repeat, linear-gradient(var(--fg3), var(--fg3)) center / 20px 20px no-repeat; }
html[data-v51] .v51-form__ok input:checked { background:
  url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M5 10.5l3.2 3.2L15 7' fill='none' stroke='white' stroke-width='2'/%3E%3C/svg%3E") center / 20px 20px no-repeat,
  linear-gradient(var(--acc), var(--acc)) center / 20px 20px no-repeat; }
html[data-v51] .v51-form__ok input:focus-visible { outline: 2px solid var(--acc); outline-offset: -10px; }
html[data-v51] .v51-form__ok input:disabled { cursor: not-allowed; opacity: .6; }
.v52-alu__k a, .v52-pass dd a { display: inline-flex; align-items: center; min-height: 44px; }
.v52-alu__rows li { padding: 6px 0 16px; gap: 2px; }

/* ── 17в · ДОЧИТЫВАНИЕ ЗАГОЛОВКОВ НА ВНУТРЕННИХ — один проход по времени, не по прокрутке (приём волны 1, 29.09) ──
   X5 5.1 открывал H2 clip-path'ом, привязанным к --p прокрутки (с 29.09 01:38 и на главной — один раз, v51-sections.css): остановишь прокрутку — заголовок
   так и стоит разрезанным посреди слова (кадр r3/otdelka/mobile/s05.png: inset 23,3 % при --p 0,767, «СКЛАДЫВАЕТС»).
   Здесь та же шторка слева направо, но один раз и за 0,7 с — когда заголовок входит в экран (v52-inner.js, «дочитывание»).
   В покое заголовок всегда целый. Главная этим файлом не затронута. reduce и без JS — клипа нет вовсе (html без .p / .v52-js). */
html.p.v52-js .v51-h2[data-p="in"] { clip-path: inset(0 100% 0 0); transition: clip-path .7s cubic-bezier(.2, .7, .2, 1); }
html.p.v52-js .v51-h2[data-p="in"].is-read { clip-path: inset(0 0 0 0); }
/* самая длинная неразрывная связка заголовка — «АЛЮМИНИЕВОЕ&nbsp;—» (13,18 em с трекингом −.02em) — на 360 шире колонки 308 (прибор clip52: 336 > 308).
   Кегль — не больше --t-5 и не больше ширины колонки / 13,25 em: на 390 ровно 25,5 (шкала), на 360 — 23,2, на 1440 — 45 (шкала). */
html[data-v51] .v51-h2.v52-alu__h { font-size: min(var(--t-5), calc((100vw - 2 * var(--gutter)) / 13.25)); }   /* специфичность выше .v51-h2 из асинхронного v51-sections.css */

/* ── 18 · 390 для компонентов сборки ─────────────────────────────────── */
@media (max-width: 63.99rem) {
  .v52-light__side { grid-column: 1 / -1; grid-row: 3; grid-template-columns: 1fr 1fr; }
  .v52-light__f { grid-column: 1 / -1; margin-left: 0; }
  .v52-alu__pair { grid-column: 1 / -1; }
  .v52-alu__rows { grid-column: 1 / -1; grid-row: 3; }
  .v52-after, .v52-pass, .v52-form { grid-column: 1 / -1; }
  .v52-obk__h1, .v52-obk__meta { grid-column: 1 / -1; justify-items: start; text-align: left; }
}
@media (max-width: 47.99rem) {
  html[data-v51] .sec.v52-cont { padding-top: var(--m); }
  .v52-ask__lead { grid-column: 1; font-size: var(--t-2); line-height: 1.5; }
  .v52-sost__hd .v51-h2, .v52-sost__more .v51-zam, .v52-sost__more .v51-faq { grid-column: 1; }
  .v52-sost__more { margin-top: var(--m); }
  .v52-sost .v51-wrap:has(> .v51-terms) + .v52-sost__more { margin-top: 0; }
  .v52-sost .v51-wrap:has(> .v51-terms) + .v52-sost__more .v51-zam { border-top: 0; }   /* круг 1: две линии подряд (низ условий и верх замерщика) */

  .v52-tour__l { display: contents; }
  .v52-tour__l > .v51-h2 { grid-column: 1; grid-row: 1; }
  .v52-tour__stage { grid-column: 1; grid-row: 2; margin-right: calc(-1 * var(--gutter)); aspect-ratio: 1; }
  .v52-nodes { grid-column: 1; grid-row: 3; display: flex; gap: 8px; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
               margin-right: calc(-1 * var(--gutter)); padding-right: var(--gutter); overscroll-behavior-x: contain; }
  .v52-nodes::-webkit-scrollbar { display: none; }
  html:not(.v52-js) .v52-nodes { display: grid; margin-right: 0; padding-right: 0; }
  html.v52-js .v52-node { flex: none; border: 0; scroll-snap-align: start; margin: 0; }
  html.v52-js .v52-node:last-child { border: 0; }
  html.v52-js .v52-node__b { grid-template-columns: auto; min-height: 52px; padding: 0 14px; border: 1px solid var(--line2); font-size: var(--t-2); letter-spacing: .03em; }
  html.v52-js .v52-node__b::before { content: none; }
  html.v52-js .v52-node__b[aria-pressed="true"] { border-color: var(--fg); background: linear-gradient(var(--fg), var(--fg)) left bottom / 100% 2px no-repeat; }
  .v52-tour__line { grid-column: 1; grid-row: 4; min-height: calc(3 * 1.5em); }
  .v52-tour__hint { grid-column: 1; grid-row: 5; }
  .v52-node:nth-child(3), .v52-node:nth-child(5) { margin-right: 0; }

  .v52-light__h { grid-column: 1; }
  .v52-light__f { grid-column: 1; margin: 0 calc(-1 * var(--gutter)) 0 0; aspect-ratio: 4 / 5; }
  .v52-light__side { grid-column: 1; grid-template-columns: minmax(0, 1fr); }
  .v52-light__plate { top: auto; bottom: 0; right: auto; left: 0; }
  .v52-light__lb { bottom: auto; top: 38px; }   /* под скобкой класса (круг 1: подпись закрывала левую скобку) */

  .v52-grid2 { margin-top: var(--m); column-gap: 10px; row-gap: 16px; }
  .v52-cell { gap: 8px; }
  .v52-cell__more { padding: 5px 8px; }
  .v52-cell__plate > span { padding: 5px 7px; }   /* круг 1: год прятался — спека: шильдик с годом на всех ширинах */
  .v52-cell__name { font-size: 15px; line-height: 1.3; }

  .v52-obk__in { row-gap: 16px; padding-top: 8px; }
  .v52-obk__top { flex-direction: column; align-items: flex-start; gap: 0; }
  .v52-obk__meta { grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; justify-items: start; }
  .v52-tabs { margin: 16px calc(-1 * var(--gutter)) 0 0; padding-right: var(--gutter); }
  .v52-tabs [role="tab"] { font-size: var(--t-2); padding-right: 16px; background-size: calc(100% - 16px) 2px; }
  .v52-tabs [role="tab"] + [role="tab"] { padding-left: 16px; background-position: 16px 100%; background-size: calc(100% - 32px) 2px; }

  .v52-case { grid-template-columns: 52% minmax(0, 1fr); row-gap: 8px; column-gap: 14px; }
  .v52-case__f .v51-plate { white-space: nowrap; }   /* круг 1: при 40 % шильдик ломался в две строки и закрывал кадр */
  .v52-case:nth-child(2) { margin-right: 0; }
  .v52-case__n { grid-column: 2; }
  .v52-case__f { grid-row: 1 / span 2; }
  .v52-case__what { font-size: var(--t-2); }

  .v52-tel__num { margin-top: 16px; }
  /* /kontakty/ на 390: номер — герой первого окна, кадр вечернего окна — под текстом (ниже сгиба допустим, §Секция 11) */
  .v52-entry--tel .v52-entry__text { grid-row: 2; }
  .v52-entry--tel .v52-entry__f { grid-row: 3; margin-top: 10px; }
  .v52-pass__r { grid-template-columns: minmax(0, 1fr); row-gap: 4px; padding: 12px 0; }
  .v52-pass dd { font-size: var(--t-2); line-height: 1.45; }
  .v52-after, .v52-pass, .v52-form { grid-column: 1; }

  .v52-alu__h, .v52-alu__pair, .v52-alu__rows { grid-column: 1; }
  .v52-alu__pair { margin-right: calc(-1 * var(--gutter)); gap: var(--jamb); }
  .v52-alu__rows li:nth-child(2) { margin-right: 0; }

  html[data-v51] .v53-var #v53-v-warm { grid-column: 1; }
  html[data-v51] .v53-var #v53-v-office { grid-column: 2; }
  .v53-site__b { grid-template-columns: minmax(0, 1fr); }
  .v53-site__steps, .v53-site__res, .v53-site .v51-form { grid-column: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .v52-light__on, .v52-light__lb--on, .v52-light__lb--day, .v52-node__b, .v52-tabs [role="tab"] { transition: none; }
}

/* ══ F4-FIX 29.09 · первый экран внутренних на планшете и номер /kontakty/ ══════════════════════════════════════
   F4: 768–1023 портрет — колонка текста в 6 колонок шириной 316–330 px не вмещала H1 (последние буквы уходили под фото справа):
   на этих ширинах кадр входа — над текстом во всю ширину, как на 390. Ландшафт 768–1023 (телефон 844/932) — две колонки, кегль H1 по колонке.
   F3: номер на /kontakty/ — не шире колонки текста (9,3 em по замеру): 1024/1180/1280 режется фото, на 1440–1920 тоже. */
@media (min-width: 48rem) {
  .v52-tel__num { font-size: min(var(--t-6), calc((min(100vw - 2 * var(--gutter), var(--content)) / 2 - 8px) / 9.7)); }
}
@media (min-width: 48rem) and (max-width: 63.99rem) and (orientation: landscape) {
  .v52-h1:not(.v52-h1--s) { font-size: min(var(--t-6), calc((min(100vw - 2 * var(--gutter), var(--content)) / 2 - 8px) / 8.9)); }
  .v52-entry__in { min-height: 0; }
}
@media (min-width: 48rem) and (max-width: 63.99rem) and (orientation: portrait) {
  .v52-entry:not(.v52-entry--bare) .v52-entry__in { min-height: 0; padding-block: 16px 26px; grid-template-rows: auto auto auto; row-gap: 16px; }
  .v52-entry:not(.v52-entry--bare) .v52-entry__top, .v52-entry:not(.v52-entry--bare) .v52-entry__text { grid-column: 1 / -1; }
  .v52-entry:not(.v52-entry--bare) .v52-entry__f { grid-column: 1 / -1; grid-row: 2; margin-right: calc(-1 * var(--gutter)); aspect-ratio: 16 / 10; min-height: 0; height: auto; }
  .v52-entry:not(.v52-entry--bare) .v52-entry__text { grid-row: 3; }
  .v52-entry.v52-entry--tel .v52-entry__text { grid-row: 2; }
  .v52-entry.v52-entry--tel .v52-entry__f { grid-row: 3; margin-top: 10px; }
  .v52-tel__num { font-size: var(--t-6); }
}

/* ══ F4-FIX 29.09 · F7 · 3D-сцены (/balkon-pod-klyuch/, /kladka-i-svarka/ — закреплённая сборка; /osteklenie/ — тур по узлам) ══
   Дефекты: холст 634×634 при окне 375; последний пункт рейки и финальная подпись под нижней плашкой; на 768 заголовок и рельс под холстом
   (колонка l шире своих 4 колонок — слово «собирается»); на 1024 заголовок заходит на сцену. Правила:
   · ≥ 1024: кегль заголовка сцены — по ширине колонки (слово 9,2 em);
   · ≤ 1023: заголовок, сцена, рельс — друг под другом; высота сцены = окно − плашка − остальное (--seq-rest), не выше ширины;
   · окно ниже 500 px горизонтально (667×375, 844×390, 932×430): сцена слева квадратом по высоте окна, заголовок и рельс — справа. */
@media (min-width: 64rem) {
  html[data-v51] .v52-seq__l > .v51-h2, html[data-v51] .v52-tour__l > .v51-h2 {
    min-width: 0; font-size: min(var(--t-5), calc(((min(100vw - 2 * var(--gutter), var(--content)) - 176px) / 3 + 48px) / 9.2)); }
}
@media (max-width: 63.99rem) {
  html { --seq-rest: 450px; }   /* планшет: заголовок + рельс шириной в колонку + подсказка + промежутки */
  .v52-seq__in { grid-template-rows: auto auto; row-gap: 12px; align-content: center; }
  .v52-seq__l, .v52-tour__l { display: contents; }
  .v52-seq__l > .v51-h2, .v52-tour__l > .v51-h2 { grid-column: 1 / -1; grid-row: 1; min-width: 0; }
  .v52-seq__stage, .v52-tour__stage { grid-column: 1 / -1; grid-row: 2; margin: 0 calc(-1 * var(--gutter)) 0 0; aspect-ratio: auto; max-height: none;
    height: min(calc(100vw - var(--gutter)), max(150px, calc(100svh - var(--strip-h) - var(--seq-rest)))); }
  .v52-rail { grid-column: 1 / -1; grid-row: 3; }
  .v52-seq__hint { grid-column: 1 / -1; grid-row: 4; }
  .v52-rail__i { padding: 2px 0; }
  html.p .v52-rail { padding-bottom: calc(3 * 1.5em + 6px); }   /* круг 2 (Б1): подпись слоя до 3 строк на 320 и 768 — слот на три строки, не на две */
  html.p .v52-rail__p { min-height: calc(3 * 1.5em); }
  .v52-nodes { grid-column: 1 / -1; grid-row: 3; }
  .v52-tour__line { grid-column: 1 / -1; grid-row: 4; }
  .v52-tour__hint { grid-column: 1 / -1; grid-row: 5; }
}
@media (max-width: 47.99rem) { html { --seq-rest: 385px; } }
@media (max-width: 22.49rem) { html { --seq-rest: 430px; } }   /* 320: заголовок в 4 строки */
/* 320×454 (Safari SE-1): тур по узлам не закреплён — сцена квадратом по ширине */
@media (max-width: 47.99rem) and (max-height: 480px) and (orientation: portrait) {
  .v52-tour__stage { height: calc(100vw - var(--gutter)); }
}
/* 3D-агент craftsman-4afe45, 29.09 · повтор тестировщика retest2 X1 (320×454 блокер) и X2 (320×568): на низком окне телефона
   (портрет, ≤ 760 px) сборка остаётся закреплённой, а сцена берёт ОСТАТОК высоты липкого окна строкой сетки 1fr — не формулой
   --seq-rest (она не знает, в сколько строк лёг заголовок): заголовок, рейка и слот подписи всегда над плашкой, сцена —
   квадрат min(остаток, ширина до правого края). Прежнее «без закрепления на ≤ 480» снято: блок 702 px в окне 454 резался краем.
   Ниже 640 px — ужатый режим: заголовок ступенью --t-3, рейка --t-1 (≥ 12 px), подсказка снята; слот подписи — 3 строки --t-1. */
@media (max-width: 47.99rem) and (max-height: 760px) and (orientation: portrait) {
  html.p .v52-seq__pin { align-items: stretch; }
  html.p .v52-seq__in { height: 100%; box-sizing: border-box; grid-template-rows: auto minmax(0, 1fr) auto auto; align-content: stretch;
    row-gap: 10px; padding-block: 12px 8px; }
  html.p .v52-seq__stage { align-self: center; justify-self: end; width: auto; height: 100%; max-height: calc(100vw - var(--gutter));
    aspect-ratio: 1; min-height: 0; }
}
@media (max-width: 47.99rem) and (max-height: 640px) and (orientation: portrait) {
  html.p .v52-seq__in { row-gap: 8px; padding-block: 8px 6px; }
  html.p[data-v51] .v52-seq__l > .v51-h2 { font-size: var(--t-3); line-height: 1.05; }
  html.p .v52-seq__hint { display: none; }
  html.p .v52-seq .v52-rail { font-size: var(--t-1); padding-bottom: calc(3 * 1.3em + 4px); }
  html.p .v52-seq .v52-rail__i { padding: 1px 0; }
  html.p .v52-seq .v52-rail__h, html.p .v52-seq .v52-rail__n { font-size: var(--t-1); }
  html.p .v52-seq .v52-rail__p { font-size: var(--t-1); line-height: 1.3; min-height: calc(3 * 1.3em); }
}
/* ≤ 500 px: сцена ~140–160 px — штамп «Схема | размеры по замеру» закрывал бы треть кадра; он встаёт слева от сцены, по её низу */
@media (max-width: 47.99rem) and (max-height: 500px) and (orientation: portrait) {
  html.p .v52-seq__stage { overflow: visible; }
  html.p .v52-seq__plate { right: calc(100% + 8px); max-width: calc(100vw - var(--gutter) - 100% - 8px); }
  html.p .v52-seq__plate > span { padding: 6px 6px; }
}
@media (max-width: 63.99rem) and (max-height: 500px) and (orientation: landscape) {
  .v52-seq__in, .v52-tour__in { grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto 1fr auto; column-gap: 24px; row-gap: 6px; align-content: center; align-items: start; }
  .v52-seq__l > .v51-h2, .v52-tour__l > .v51-h2 { grid-column: 2; grid-row: 1; font-size: var(--t-3); }
  .v52-seq__stage, .v52-tour__stage { grid-column: 1; grid-row: 1 / span 4; margin: 0; width: calc(100svh - var(--strip-h) - 16px); height: calc(100svh - var(--strip-h) - 16px); align-self: center; }
  .v52-rail, .v52-nodes { grid-column: 2; grid-row: 2; }
  .v52-seq__hint, .v52-tour__hint { grid-column: 2; grid-row: 3; }
  .v52-tour__line { grid-column: 2; grid-row: 3; min-height: 0; }
  .v52-rail__h { font-size: var(--t-1); }
  .v52-rail__i { padding: 1px 0; }
  html.p .v52-rail { padding-bottom: calc(2 * 1.5em + 2px); }
  html.p .v52-rail__p { font-size: var(--t-1); line-height: 1.3; min-height: calc(2 * 1.3em); }
}

/* F4-FIX F13 (внутренние): секции ниже сгиба, где нет закреплённой сцены, не раскладываются, пока не подойдут к экрану (см. v51-sections.css, главная) */
html[data-v51] .sec.v52-exit, html[data-v51] #sostav, html[data-v51] #pokazhem { content-visibility: auto; contain-intrinsic-block-size: auto 1000px; }

/* ══ F4-FIX круг 2 (Б2) · H1 входа в две колонки (1024–1180 и ландшафт) — кегль по колонке текста, слово 8,9 em ══ */
@media (min-width: 48rem) {
  html[data-v51] .v52-entry:not(.v52-entry--bare) .v52-h1:not(.v52-h1--s) { font-size: min(var(--t-6), calc((min(100vw - 2 * var(--gutter), var(--content)) / 2 - 8px) / 8.9)); }
  html[data-v51] .v52-entry:not(.v52-entry--bare) .v52-h1.v52-h1--s { font-size: min(var(--t-5), calc((min(100vw - 2 * var(--gutter), var(--content)) / 2 - 8px) / 10.6)); }
}
@media (min-width: 48rem) and (max-width: 63.99rem) and (orientation: portrait) {
  html[data-v51] .v52-entry:not(.v52-entry--bare) .v52-h1:not(.v52-h1--s) { font-size: var(--t-6); }
  html[data-v51] .v52-entry:not(.v52-entry--bare) .v52-h1.v52-h1--s { font-size: var(--t-5); }
}

/* F4-FIX круг 2 · паспорт «подпись — значение» на 768–1279: колонка подписи 2 модуля = 39 px, «Автоматические» (106 px) ложилась на значение */
@media (min-width: 48rem) and (max-width: 79.99rem) {
  html[data-v51] .v52-pass__r, html[data-v51] .v52-doc .v52-pass__r { grid-template-columns: minmax(128px, 30%) minmax(0, 1fr); }
  .v52-pass dt { overflow-wrap: anywhere; }
}
/* F2 (круг 2) · «политике» в согласии формы — тап-зона 44 px по высоте без сдвига строки */
.v51-form__ok a { display: inline-block; padding-block: 12px; margin-block: -12px; }

/* ── IA-NAV п.2 (29.09.2026, TASK-IA-NAV): «Позвонить Михаилу» в первом окне внутренних на телефоне ──────────────
   Окно 320–430 × 553–739: фото-вход (квадрат, ~350 px) уносил H1 и кнопку под сгиб (замер до правки: 18 внутренних из 22
   «за краем» на 375×553 и 390×664). Теперь вход — колонка высотой не меньше окна за вычетом шапки и полосы, а фото — её
   гибкая часть: берёт остаток после крошек, H1 и кнопки, от 96 px до прежнего квадрата. Высокое окно (844+) — фото по-прежнему
   квадрат. /kontakty/ (--tel) и «голые» входы (--bare) — не трогаем. От 768 — прежний облик. */
@media (max-width: 47.99rem) {
  .v52-entry:not(.v52-entry--bare):not(.v52-entry--tel) .v52-entry__in {
    display: flex; flex-direction: column; row-gap: 16px; align-items: stretch;
    min-height: calc(100svh - var(--head-h) - var(--strip-h));
  }
  .v52-entry:not(.v52-entry--bare):not(.v52-entry--tel) .v52-entry__top { order: 0; flex: none; }
  .v52-entry:not(.v52-entry--bare):not(.v52-entry--tel) .v52-entry__f { order: 1; flex: 1 1 96px; min-height: 96px; max-height: calc(100vw - var(--gutter));
                                                                       aspect-ratio: auto; height: auto; align-self: stretch; }
  .v52-entry:not(.v52-entry--bare):not(.v52-entry--tel) .v52-entry__text { order: 2; flex: none; }
}
/* короткое окно (≤ 600 px высотой: 375 × 553 и подобные) — плотнее: фото от 64 px, зазоры уже, шкала «окно · балкон · комната» скрыта
   (крошки остаются); H1 и кнопка «Позвонить Михаилу» целиком над полосой */
@media (max-width: 47.99rem) and (max-height: 600px) {
  .v52-entry:not(.v52-entry--bare):not(.v52-entry--tel) .v52-entry__in { row-gap: 10px; padding-block: 4px 16px; }
  .v52-entry:not(.v52-entry--bare):not(.v52-entry--tel) .v52-entry__f { flex-basis: 64px; min-height: 64px; }
  .v52-entry:not(.v52-entry--bare):not(.v52-entry--tel) .v52-act { display: none; }
  .v52-entry:not(.v52-entry--bare):not(.v52-entry--tel) .v52-entry__sub { margin-top: 10px; }
  .v52-entry:not(.v52-entry--bare):not(.v52-entry--tel) .v52-entry__act { margin-top: 14px; gap: 4px; }
}
@media (max-width: 47.99rem) and (max-height: 600px) {
  .v52-entry--bare .v52-entry__in { row-gap: 10px; padding-block: 4px 16px; }
  .v52-entry--bare .v52-act { display: none; }
  .v52-entry--bare .v52-entry__sub { margin-top: 10px; }
  .v52-entry--bare .v52-entry__act { margin-top: 14px; }
}
