/* ==========================================================================
   AVAVA Real Estate — HTML Template
   1.  Tokens
   2.  Base
   3.  Layout & shared drawing vocabulary
   4.  Buttons
   5.  Top menu (utility bar, nav, dropdowns, drawer)
   6.  Hero
   7.  Sign in / Register modal
   8.  Featured properties
   9.  Search by city
   10. Off-market teaser
   11. How we work
   12. Meet your advisor
   13. Numbers & trust
   14. The journal
   15. In their words
   16. Enquiry form
   17. Footer
   18. Responsive
   19. Touch devices
   20. Interior pages — chrome and page header
   21. About — manifesto plate
   22. About — story
   23. About — principles, timeline, offices, advisors
   24. About — responsive
   25. About — card hovers
   26. Agents — featured desk, roster, cities, join
   27. Agents — responsive
   28. Our team — plates 01, 02, 03, 05, 06
   29. Our team — responsive
   30. Services — plates 01…08
   31. Services — responsive
   32. Pricing — plates 01…09
   33. Pricing — responsive
   34. Mortgage — six calculators
   35. Mortgage — responsive
   36. Loan process — eight plates, two markets
   37. Loan process — responsive
   38. Compare — seven plates, four homes
   39. Compare — responsive
   40. Career — eight plates
   41. Career — responsive
   42. Style guide — ten plates of specimens
   43. Style guide — responsive
   44. Free agent account — eight plates
   45. Free agent account — responsive
   46. FAQ — three plates
   47. FAQ — responsive
   48. 404 — four plates
   49. 404 — responsive
   50. Standard card type — one component, fourteen rows
   51. Standard card type — responsive
   ========================================================================== */

/* ==========================================================================
   1. Tokens
   ========================================================================== */

/* Светлые значения объявлены и на :root, и на [data-theme="light"]: второй
   селектор нужен образцам на странице стиля — в нём кусок разметки показывает
   светлую палитру, даже когда страница читается в тёмной теме. */
:root,
[data-theme="light"] {
  /* Palette — light */
  --bg: #fcf4e4;
  --ink: #2a2420;
  --muted: #6b5f52;
  --faint: #a89c8a;
  --accent: #a8321f;
  /* Тёмная вишня: наведение на залитую красную кнопку («Show the next twenty») */
  --accent-deep: #8a2818;
  --gold: #c9a96e;
  --green: #8aa36a;

  /* Fixed palette — surfaces that keep the same colour in both themes:
     the footer, the sealed plate, the hero scrim and the modal aside. */
  --c-paper: #fcf4e4;
  --c-paper-rgb: 252, 244, 228;
  --c-ink-fixed: #2a2420;
  --c-ink-fixed-rgb: 42, 36, 32;
  --c-cream: #f4ecdc;
  --c-cream-rgb: 244, 236, 220;
  --c-night: #1f1a16;
  --c-night-rgb: 31, 26, 22;
  --c-night-deep: #17120f;
  --c-deep-rgb: 20, 16, 13;
  --c-plate-rgb: 24, 19, 16;
  --c-red: #a8321f;
  --c-red-rgb: 168, 50, 31;
  /* Бумага карточек-листов на странице Our team */
  --sheet: #fbf1de;
  --band: #2a2420;             /* тёмная полоса с ценой на карточке */
  --sheet-strong: #f6e9d0;
  --c-clay: #6b5f52;
  /* Чернила полосы расходов на home-detail-v2 (8F) — полной плотности,
     чтобы кремовые подписи читались; вместе с --accent, --c-ink-fixed, --c-clay */
  --bill-3: #4a4038;
  --bill-5: #3a322c;
  --bill-6: #8a7d6c;
  --c-white: #ffffff;
  --c-gold-rgb: 201, 169, 110;
  --shadow-warm-rgb: 40, 25, 10;
  --shadow-brown-rgb: 60, 40, 20;
  --shadow-black-rgb: 0, 0, 0;
  --shadow-deep-rgb: 20, 14, 8;
  --brand-facebook: #1877f2;
  --brand-google-blue: #4285f4;
  --brand-google-green: #34a853;
  --brand-google-yellow: #fbbc05;
  --brand-google-red: #ea4335;

  /* Channel triplets, used for hairlines, veils and tints */
  --ink-rgb: 42, 36, 32;
  --bg-rgb: 252, 244, 228;
  --accent-rgb: 168, 50, 31;

  /* Text and rules that sit on top of a photograph */
  --on-photo: #f4ecdc;
  --on-photo-rgb: 244, 236, 220;
  --scrim-rgb: 31, 26, 22;

  /* Header, footer and modal chrome — inverted plates in both themes */
  --plate: #2a2420;
  --plate-raised: #332c26;
  --plate-ink: #f4ecdc;
  --plate-muted: #d8ccb6;
  --plate-faint: #a89c8a;
  --chrome-accent: var(--accent);
  --chrome-line: var(--ink);

  /* Modal surfaces */
  --modal-bg: #f6efe0;
  --modal-field: #fdfaf3;
  --modal-field-rgb: 253, 250, 243;
  --modal-image-bg: #2a2420;
  --modal-plate-bg: rgba(246, 239, 224, 0.92);
  --modal-hover-border: var(--ink);

  /* Logo */
  --logo-line: var(--ink);

  /* Type */
  --display: "Playfair Display", "Iowan Old Style", Georgia, serif;
  --text: "DM Sans", "Helvetica Neue", Arial, sans-serif;
  --mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;

  /* Space */
  --gutter: 60px;
  /* The handoff insets content by 60px on a 2560 canvas: full-bleed sections,
     a 60px gutter at every width, capped at the design's own content width. */
  --shell: 2440px;
  --section-y: 90px;

  /* Motion */
  --fast: 0.18s ease;
  --mid: 0.35s ease;
  --move: 0.45s cubic-bezier(0.2, 0.8, 0.2, 1);
  --slow: 0.7s cubic-bezier(0.2, 0.8, 0.2, 1);

  /* Radius */
  --r-pill: 999px;
  --r-card: 12px;
  --r-tile: 10px;
  --r-inner: 6px;
  --r-field: 8px;
  --r-small: 4px;

  color-scheme: light;
}

[data-theme="dark"] {
  /* Средний тон бархатной текстуры — элементы, закрашенные под фон,
     ложатся на неё незаметно. */
  --bg: #191612;
  --ink: #f4ecdc;
  --muted: #a89c8a;
  --faint: #6b5f52;
  --accent: #d24a33;
  --accent-deep: #b03a26;

  --ink-rgb: 244, 236, 220;
  --bg-rgb: 31, 26, 22;

  --plate: #332c26;
  --plate-raised: #3d352d;
  --chrome-accent: var(--gold);
  --chrome-line: rgba(244, 236, 220, 0.4);

  --modal-bg: #241f1a;
  --modal-field: #2f2823;
  --modal-field-rgb: 47, 40, 35;
  --modal-image-bg: #141110;
  --modal-plate-bg: rgba(31, 26, 22, 0.9);
  --modal-hover-border: var(--gold);

  --logo-line: var(--plate-ink);

  --sheet: #241f1a;
  --band: #151210;
  --sheet-strong: #2b2520;

  color-scheme: dark;
}

/* ==========================================================================
   2. Base
   ========================================================================== */

*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--ink);
  font-family: var(--text);
  font-size: 17px;
  font-weight: 300;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}

img,
svg { display: block; max-width: 100%; }

h1, h2, h3, h4 {
  margin: 0;
  font-family: var(--display);
  font-weight: 400;
  letter-spacing: -0.02em;
  text-wrap: balance;
}

p { margin: 0; text-wrap: pretty; }

a { color: inherit; text-decoration: none; }

em { font-style: italic; color: var(--accent); }

button,
input,
select,
textarea { font: inherit; color: inherit; }

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

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

/* Вкладки диалога и кнопка меню-шторки — это <label>, а сами переключатели
   спрятаны в конце разметки. Клик по ярлыку ставит фокус на переключатель, и
   браузер прокручивает страницу к нему. `fixed` держит их в поле зрения,
   поэтому прокручивать нечего. */
#nav-open,
#auth-mode-signin,
#auth-mode-register,
#path-seller,
#path-buyer,
#city-0, #city-1, #city-2, #city-3,
#who-private, #who-agency, #who-developer,
#cycle-month, #cycle-year,
#col-0, #col-1, #col-2, #col-3,
#pfaq-0, #pfaq-1, #pfaq-2, #pfaq-3,
#pfaq-4, #pfaq-5, #pfaq-6, #pfaq-7,
#market-europe, #market-us,
#ask-0-0, #ask-0-1, #ask-0-2, #ask-0-3, #ask-0-4, #ask-1-0, #ask-1-1, #ask-1-2, #ask-1-3, #ask-1-4, #ask-2-0, #ask-2-1, #ask-2-2, #ask-2-3, #ask-3-0, #ask-3-1, #ask-3-2, #ask-3-3, #ask-3-4, #ask-4-0, #ask-4-1, #ask-4-2, #ask-4-3, #ask-4-4, #ask-5-0, #ask-5-1, #ask-5-2, #ask-5-3 {
  position: fixed;
  top: 0;
  left: 0;
}

.skip-link {
  position: absolute;
  top: -100px;
  left: 12px;
  z-index: 200;
  padding: 12px 20px;
  background: var(--plate);
  color: var(--plate-ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  transition: top var(--fast);
}

.skip-link:focus { top: 12px; }

/* Тёмная тема лежит на бесшовной бархатной текстуре 512x512: она размножается
   по всей странице и даёт ткани зерно вместо плоской заливки. Светлой темы не
   касается. Подвал и герой со своими фонами перекрывают её сами. */
[data-theme="dark"] body {
  background-image: url("../img/velvet-dark.webp");
  background-repeat: repeat;
  background-size: 512px 512px;
  background-attachment: scroll;
}

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

/* ==========================================================================
   3. Layout & shared drawing vocabulary
   ========================================================================== */

.shell {
  width: min(100% - (var(--gutter) * 2), var(--shell));
  margin-inline: auto;
}

.section {
  position: relative;
  padding-block: var(--section-y);
  overflow: hidden;
}

/* Faint drafting grid behind a section */
.section::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(var(--ink-rgb), 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(var(--ink-rgb), 0.035) 1px, transparent 1px);
  background-size: 64px 64px;
  pointer-events: none;
}

.section--tall { padding-block: clamp(48px, 4.3vw, 110px); }

.section > .shell { position: relative; }

/* Section masthead: kicker + rule + sheet number, then the headline */
.masthead {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 48px;
}

.masthead--ruled {
  padding-bottom: 26px;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.2);
}

.masthead--heavy {
  padding-bottom: 22px;
  border-bottom: 2px solid var(--ink);
}

.kicker {
  display: flex;
  align-items: center;
  gap: 16px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--accent);
}

.kicker::after {
  content: "";
  width: 60px;
  height: 1px;
  background: currentColor;
}

.kicker__sheet {
  color: var(--muted);
  order: 3;
}

.masthead__title {
  margin-top: 22px;
  font-size: clamp(32px, 3.28vw, 84px);
  line-height: 0.97;
}

.masthead__title--76 { font-size: clamp(30px, 2.97vw, 76px); }
.masthead__title--72 { font-size: clamp(28px, 2.81vw, 72px); }

.masthead__aside {
  display: flex;
  align-items: flex-end;
  gap: 36px;
  text-align: right;
}

.masthead__note {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted);
}

.masthead__note span { display: block; }
.masthead__note span + span { margin-top: 6px; }

/* Big value with a monospace caption under it */
.figure {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.figure__value {
  font-family: var(--display);
  font-size: clamp(24px, 1.41vw, 36px);
  line-height: 1;
}

.figure__label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
}

/* Dotted key / value rows used inside cards */
.spec {
  display: flex;
  flex-direction: column;
}

.spec__row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px dotted rgba(var(--ink-rgb), 0.28);
}

.spec__key {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
}

.spec__value { font-size: 16px; }

/* Corner tick marks on a photo frame */
.ticks span {
  position: absolute;
  width: 13px;
  height: 13px;
  pointer-events: none;
}

.ticks span:nth-child(1) {
  top: 10px;
  left: 10px;
  border-left: 1px solid rgba(var(--on-photo-rgb), 0.55);
  border-top: 1px solid rgba(var(--on-photo-rgb), 0.55);
}

.ticks span:nth-child(2) {
  top: 10px;
  right: 10px;
  border-right: 1px solid rgba(var(--on-photo-rgb), 0.55);
  border-top: 1px solid rgba(var(--on-photo-rgb), 0.55);
}

.ticks span:nth-child(3) {
  bottom: 10px;
  left: 10px;
  border-left: 1px solid rgba(var(--on-photo-rgb), 0.35);
  border-bottom: 1px solid rgba(var(--on-photo-rgb), 0.35);
}

.ticks span:nth-child(4) {
  bottom: 10px;
  right: 10px;
  border-right: 1px solid rgba(var(--on-photo-rgb), 0.35);
  border-bottom: 1px solid rgba(var(--on-photo-rgb), 0.35);
}

/* Dimension annotation: |———— label ————| */
.dimension {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.dimension::before,
.dimension::after {
  content: "";
  flex: 1;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.25);
}

.dimension__cap {
  width: 1px;
  height: 9px;
  background: rgba(var(--ink-rgb), 0.4);
}

/* Register strip closing a section */
.register {
  display: grid;
  border: 1px solid var(--ink);
  border-top: 0;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.register > * {
  padding: 18px 26px;
  border-right: 1px solid rgba(var(--ink-rgb), 0.4);
  color: var(--muted);
}

.register > *:last-child {
  border-right: 0;
  color: var(--accent);
}

.register--advisors { grid-template-columns: 2fr 1fr 1fr 1fr; }
.register--journal { grid-template-columns: 2fr 1fr 1fr; }
.register--enquiry { grid-template-columns: minmax(0, 1fr) 1fr 1fr; }

/* Frame that holds a photograph */
.frame {
  position: relative;
  overflow: hidden;
  border-radius: var(--r-tile);
}

.frame__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--slow);
}

.frame__veil {
  position: absolute;
  inset: 0;
  background: var(--bg);
  opacity: 0.12;
  transition: opacity var(--mid);
  pointer-events: none;
}

.frame__bar {
  position: absolute;
  left: 0;
  bottom: 0;
  height: 3px;
  width: 0;
  background: var(--accent);
  transition: width 0.5s cubic-bezier(0.2, 0.8, 0.2, 1);
  pointer-events: none;
}

/* ==========================================================================
   4. Buttons
   ========================================================================== */

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  height: 58px;
  padding: 0 32px;
  border: 1px solid transparent;
  border-radius: var(--r-pill);
  background: transparent;
  cursor: pointer;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  white-space: nowrap;
  transition: background var(--mid), color var(--mid), border-color var(--mid), gap var(--mid);
}

.btn__rule {
  width: 28px;
  height: 1px;
  background: currentColor;
}

.btn:hover .btn__rule,
.btn:focus-visible .btn__rule { width: 38px; }

.btn--ink {
  background: var(--ink);
  color: var(--bg);
}

.btn--ink:hover,
.btn--ink:focus-visible {
  background: var(--accent);
  color: var(--bg);
}

.btn--accent {
  background: var(--accent);
  color: var(--bg);
}

.btn--accent:hover,
.btn--accent:focus-visible { background: var(--ink); }

.btn--outline {
  border-color: rgba(var(--ink-rgb), 0.35);
  color: var(--ink);
}

.btn--outline:hover,
.btn--outline:focus-visible {
  background: var(--ink);
  color: var(--bg);
  border-color: var(--ink);
}

.btn--gold {
  background: var(--gold);
  color: var(--c-ink-fixed);
}

.btn--gold:hover,
.btn--gold:focus-visible { background: var(--plate-ink); }

.btn--ghost {
  border-color: rgba(var(--on-photo-rgb), 0.45);
  color: var(--on-photo);
}

.btn--ghost:hover,
.btn--ghost:focus-visible { border-color: var(--on-photo); }

/* Text link with a rule that grows on hover */
.arrow-link {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent);
}

.arrow-link::after {
  content: "";
  width: 26px;
  height: 1px;
  background: currentColor;
  transition: width var(--mid);
}

.arrow-link:hover::after,
.arrow-link:focus-visible::after { width: 44px; }

/* ==========================================================================
   5. Top menu — utility bar, main nav, dropdowns, drawer
   ========================================================================== */

.topbar {
  position: relative;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  height: 48px;
  border-bottom: 1px solid rgba(var(--on-photo-rgb), 0.12);
  font-size: 13px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--plate-faint);
}

.topbar__group {
  display: flex;
  align-items: center;
  gap: 40px;
}

.topbar a { color: var(--ink); }
.topbar a:hover { color: var(--chrome-accent); }

.topbar__mail { text-transform: none; letter-spacing: 0.06em; }
.topbar__phone { letter-spacing: 0.06em; }

.topbar__langs {
  display: flex;
  gap: 16px;
}

.topbar__langs a[aria-current="true"] { color: var(--chrome-accent); }

/* --- main nav ------------------------------------------------------------ */

.nav {
  position: relative;
  z-index: 30;
  display: flex;
  align-items: center;
  gap: 24px;
  height: 84px;
  font-size: 15px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink);
}

.logo {
  display: flex;
  align-items: center;
  flex: 0 0 auto;
}

.logo img {
  width: 175px;
  height: 52px;
}

.nav__list {
  display: flex;
  align-items: center;
  gap: 38px;
  margin: 0 56px 0 auto;
  padding: 0;
  list-style: none;
}

.nav__item { position: relative; }

.nav__link {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 27px 0;
  cursor: pointer;
  color: inherit;
  transition: color var(--fast);
}

.nav__link:hover,
.nav__item:hover > .nav__link,
.nav__item:focus-within > .nav__link { color: var(--chrome-accent); }

.nav__link[aria-current="page"] { color: var(--chrome-accent); }
.nav__link--on { color: var(--chrome-accent); }

.nav__chevron { flex: 0 0 auto; }

/* --- dropdowns ----------------------------------------------------------- */

.menu {
  position: absolute;
  top: 100%;
  left: -24px;
  z-index: 40;
  min-width: 240px;
  margin: 0;
  padding: 14px 0;
  list-style: none;
  background: var(--plate);
  border-radius: 6px;
  box-shadow: 0 24px 60px rgba(var(--shadow-warm-rgb), 0.35);
  opacity: 0;
  visibility: hidden;

  /* Панель шире пункта, поэтому по дороге к ней курсор успевает выйти за пункт.
     Закрытие идёт с задержкой 0.22s — за это время панель ещё видна и ловит
     курсор, и наведение на неё отменяет закрытие. Открывается мгновенно. */
  transition: opacity var(--fast) 0.22s, visibility 0s linear 0.4s;
}

.menu--wide { min-width: 340px; }

.nav__item:hover > .menu,
.nav__item:focus-within > .menu,
.menu__item:hover > .menu,
.menu__item:focus-within > .menu {
  opacity: 1;
  visibility: visible;
  transition: opacity var(--fast), visibility 0s;
}

.menu__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 11px 24px;
  font-size: 13px;
  letter-spacing: 0.1em;
  color: var(--plate-muted);
  white-space: nowrap;
  transition: color var(--fast), background var(--fast);
}

.menu__link[aria-current="page"] { color: var(--gold); }

.menu__link:hover,
.menu__link:focus-visible,
.menu__item:hover > .menu__link,
.menu__item:focus-within > .menu__link {
  color: var(--gold);
  background: rgba(var(--c-cream-rgb), 0.06);
}

.menu__item { position: relative; }

.menu__item > .menu {
  top: -14px;
  left: 100%;
  background: var(--plate-raised);
}

/* --- выпадашка Listing (вариант 1B хендоффа) ------------------------------- */

/* Панель шире обычного меню, поэтому она сама себе выпадашка, а не ul: две
   колонки нумерованных строк и полоса со счётчиком внизу. Показ и задержка
   закрытия — те же, что у .menu. */
.lmenu {
  position: absolute;
  top: 100%;
  left: -24px;
  z-index: 40;
  display: flex;
  flex-direction: column;
  gap: 22px;
  padding: 28px 32px 24px;
  background: var(--plate);
  border-radius: 6px;
  box-shadow: 0 24px 60px rgba(var(--shadow-warm-rgb), 0.35);
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--fast) 0.22s, visibility 0s linear 0.4s;
}

.nav__item:hover > .lmenu,
.nav__item:focus-within > .lmenu {
  opacity: 1;
  visibility: visible;
  transition: opacity var(--fast), visibility 0s;
}

.lmenu__cols {
  display: grid;
  grid-template-columns: 300px 280px 260px;
  gap: 34px;
}

/* Две колонки по 300 — выпадашка Properties (хендофф home_detail_v1) */
.lmenu--two .lmenu__cols {
  grid-template-columns: 300px 300px;
  gap: 36px;
}

/* Одна колонка — Properties после снятия «By status» (владелец, 2026-09-15) */
.lmenu--one .lmenu__cols { grid-template-columns: 300px; }
/* Подвал в одну колонку не должен растягивать выпадашку: две строки, без черты */
.lmenu--one .lmenu__foot { flex-direction: column; align-items: flex-start; gap: 8px; white-space: normal; }
.lmenu--one .lmenu__rule { display: none; }

.lmenu__col {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.lmenu__title {
  padding-bottom: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--gold);
}

.lmenu__list {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.lmenu__row {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 11px 12px;
  border-left: 2px solid transparent;
  border-radius: 0 6px 6px 0;
  font-size: 14px;
  letter-spacing: 0.1em;
  /* Строки списка идут обычным регистром — верхний остаётся заголовкам колонок. */
  text-transform: none;
  color: var(--plate-muted);
  white-space: nowrap;
  transition: color var(--fast), background var(--fast), border-color var(--fast);
}

.lmenu__row:hover,
.lmenu__row:focus-visible {
  background: rgba(var(--c-cream-rgb), 0.06);
  border-left-color: rgba(var(--c-gold-rgb), 0.5);
  color: var(--gold);
}

/* Текущая страница: золотой маркер слева и подсвеченная земля. */
.lmenu__row--here {
  border-left-color: var(--gold);
  background: rgba(var(--c-cream-rgb), 0.07);
  color: var(--gold);
}

.lmenu__no {
  font-family: var(--mono);
  font-size: 12px;
  color: var(--plate-faint);
}

.lmenu__row--here .lmenu__no { color: var(--gold); }

.lmenu__label {
  overflow: hidden;
  text-overflow: ellipsis;
}

.lmenu__arrow {
  font-family: var(--text);
  font-size: 16px;
  letter-spacing: 0;
  color: rgba(var(--c-cream-rgb), 0.45);
}

.lmenu__row--here .lmenu__arrow { color: var(--gold); }

/* Семейство ещё не собрано — строка ведёт в никуда и говорит об этом. */
.lmenu__soon {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--plate-faint);
}

.lmenu__foot {
  display: flex;
  align-items: center;
  gap: 20px;
  padding-top: 18px;
  border-top: 1px solid rgba(var(--c-cream-rgb), 0.18);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--plate-faint);
  white-space: nowrap;
}

.lmenu__count { color: var(--gold); }

.lmenu__rule {
  width: 1px;
  height: 12px;
  background: rgba(var(--c-cream-rgb), 0.24);
}

.lmenu__note { flex: 1; }

.lmenu__all {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--plate-ink);
  letter-spacing: 0.16em;
  transition: color var(--fast);
}

.lmenu__all:hover,
.lmenu__all:focus-visible { color: var(--gold); }

.lmenu__all .lmenu__arrow { color: inherit; }

/* Панель не должна вылезать за правый край на ноутбуке. */
@media (max-width: 1240px) {
  .lmenu {
    left: auto;
    right: -24px;
  }

  .lmenu__cols { grid-template-columns: 260px 240px 220px; }
  .lmenu--two .lmenu__cols { grid-template-columns: 260px 260px; }
  .lmenu--one .lmenu__cols { grid-template-columns: 260px; }
}

/* --- drawer (mobile) ------------------------------------------------------ */

.drawer { display: none; }

.drawer__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding-bottom: 24px;
  border-bottom: 1px solid rgba(var(--on-photo-rgb), 0.16);
}

.drawer__head img { width: 148px; height: 44px; }

.drawer__list {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.drawer > .drawer__list { margin-top: 24px; }

.drawer__list .drawer__list {
  margin: 4px 0 12px 16px;
  padding-left: 14px;
  border-left: 1px solid rgba(var(--on-photo-rgb), 0.16);
}

.drawer__group,
.drawer__link {
  display: block;
  padding: 11px 0;
  font-size: 15px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.drawer__group { color: var(--gold); }
.drawer__link { color: var(--plate-muted); }
.drawer__link:hover,
.drawer__link:focus-visible { color: var(--plate-ink); }

.drawer__list .drawer__list .drawer__link {
  font-size: 14px;
  letter-spacing: 0.08em;
  text-transform: none;
}

.drawer__foot {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 28px;
  padding-top: 22px;
  border-top: 1px solid rgba(var(--on-photo-rgb), 0.16);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--plate-faint);
}

.drawer__foot a { color: var(--plate-ink); }

/* --- drawer toggle (mobile) ---------------------------------------------- */

.nav__toggle {
  display: none;
  width: 46px;
  height: 46px;
  border: 1px solid var(--chrome-line);
  border-radius: 50%;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
}

#nav-open { display: none; }

.nav__actions {
  display: flex;
  align-items: center;
  gap: 20px;
  flex: 0 0 auto;
}

.icon-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  border: 1px solid var(--chrome-line);
  border-radius: 50%;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  transition: background var(--fast), color var(--fast), border-color var(--fast);
}

.icon-btn:hover,
.icon-btn:focus-visible {
  background: var(--ink);
  color: var(--bg);
  border-color: var(--ink);
}

.icon-btn--theme:hover,
.icon-btn--theme:focus-visible {
  background: var(--ink);
  color: var(--gold);
  border-color: var(--ink);
}

[data-theme="dark"] .icon-btn--theme:hover,
[data-theme="dark"] .icon-btn--theme:focus-visible {
  background: var(--gold);
  color: var(--ink);
  border-color: var(--gold);
}

.theme-toggle__sun { display: none; }
[data-theme="dark"] .theme-toggle__sun { display: block; }
[data-theme="dark"] .theme-toggle__moon { display: none; }

.nav__signin {
  display: inline-flex;
  align-items: center;
  height: 44px;
  padding: 0 24px;
  border-radius: var(--r-pill);
  background: var(--ink);
  color: var(--c-cream);
  transition: background var(--fast), color var(--fast);
}

.nav__signin:hover,
.nav__signin:focus-visible {
  background: var(--accent);
  color: var(--c-cream);
}

[data-theme="dark"] .nav__signin {
  background: var(--gold);
  color: var(--c-night);
}

[data-theme="dark"] .nav__signin:hover,
[data-theme="dark"] .nav__signin:focus-visible {
  background: var(--c-cream);
  color: var(--c-night);
}

/* ==========================================================================
   6. Hero
   ========================================================================== */

.hero {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  overflow: hidden;
  color: var(--plate-ink);

  /* The photograph is a background layer, not an <img>: only the theme in use
     is downloaded. It is drawn whole — `100% 100%`, never `cover` — because the
     artwork is composed for the full screen; drawn exactly as the reference
     does it — `cover`, anchored right, so the building is never cut. */
  background: var(--plate) url("../img/hero-light.webp") right center / cover no-repeat;
}

[data-theme="dark"] .hero {
  background-image: url("../img/hero-dark.webp");
}

/* Home v2 — та же главная, другие снимки в шапке */
.hero--v2 { background-image: url("../img/hero-light-2.webp"); }
[data-theme="dark"] .hero--v2 { background-image: url("../img/hero-dark-2.webp"); }

.hero__scrim {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    90deg,
    rgba(var(--c-ink-fixed-rgb), 0.88) 0%,
    rgba(var(--c-ink-fixed-rgb), 0.78) 30%,
    rgba(var(--c-ink-fixed-rgb), 0.35) 48%,
    rgba(var(--c-ink-fixed-rgb), 0) 62%
  );
}

[data-theme="dark"] .hero__scrim {
  background: linear-gradient(
    90deg,
    rgba(var(--c-deep-rgb), 0.9) 0%,
    rgba(var(--c-deep-rgb), 0.7) 32%,
    rgba(var(--c-deep-rgb), 0.25) 50%,
    rgba(var(--c-deep-rgb), 0) 64%
  );
}

.hero > .shell { position: relative; z-index: 10; }

/* Шапка и блок с текстом героя — два соседних .shell с одинаковым слоем,
   и второй перекрывал выпадающие меню: курсор попадал в hero__body, а не в
   панель. Шапка поднимается выше. */
.hero > .hero__top { z-index: 20; }

.hero__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  /* The handoff pins the copy at top:210 and the form at bottom:80 of a
     1200-tall hero; 132px of that is the two-tier menu above. */
  justify-content: space-between;
  gap: clamp(28px, 4.4vh, 56px);
  padding-block: clamp(28px, 6.5vh, 78px) clamp(28px, 6.67vh, 80px);
}

.hero__copy {
  display: flex;
  flex-direction: column;
  /* 1300 / 2560 of the design canvas — the copy, the stats rule and the search
     form share this one left column, exactly as the handoff locks them. */
  gap: clamp(18px, 1.1vw, 28px);
  width: min(100%, max(420px, 50.8vw));
}

.hero__kicker {
  display: block;
  font-family: var(--text);
  font-size: clamp(12px, 0.55vw, 14px);
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--gold);
}

.hero__title {
  /* 116px on the 2560 canvas */
  font-size: clamp(34px, 4.53vw, 116px);
  line-height: 1;
}

.hero__title em { color: var(--gold); }

.hero__lead {
  max-width: min(100%, 940px);
  font-size: clamp(16px, 0.86vw, 22px);
  line-height: 1.6;
  color: var(--plate-muted);
}

.hero__buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  margin-top: 2px;
}

.hero__buttons .btn {
  height: clamp(54px, 2.5vw, 64px);
  padding: 0 clamp(30px, 1.56vw, 40px);
  font-family: var(--text);
  font-size: clamp(13px, 0.59vw, 15px);
  font-weight: 500;
  letter-spacing: 0.12em;
}

.hero__stats {
  display: flex;
  gap: 20px;
  width: min(100%, max(420px, 50.8vw));
  margin-top: 4px;
  padding-top: clamp(16px, 2.4vh, 26px);
  border-top: 1px solid rgba(var(--on-photo-rgb), 0.18);
}

.hero__stats .figure { flex: 1; }
.hero__stats .figure__value { font-size: clamp(20px, 1.56vw, 40px); }
.hero__stats .figure__label {
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.22em;
  color: var(--plate-faint);
}

/* --- search form --------------------------------------------------------- */

.searchbar {
  display: flex;
  flex-direction: column;
  gap: 2px;
  width: min(100%, max(420px, 50.8vw));
  padding: 8px;
  border-radius: var(--r-field);
  background: var(--plate);
  color: var(--plate-ink);
  box-shadow: 0 30px 80px rgba(var(--shadow-warm-rgb), 0.3);
}

[data-theme="dark"] .searchbar { border: 1px solid rgba(var(--c-cream-rgb), 0.12); }

.searchbar__row {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr auto;
  gap: 2px;
}

.field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: clamp(15px, 0.86vw, 22px) clamp(18px, 1.09vw, 28px);
  border-radius: var(--r-small);
  background: rgba(var(--c-cream-rgb), 0.05);
  transition: background var(--fast);
}

.field:hover,
.field:focus-within { background: rgba(var(--c-cream-rgb), 0.1); }

.field__label {
  font-family: var(--text);
  font-size: 12px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--plate-faint);
}

.field__input,
.field__select {
  padding: 0;
  border: 0;
  background: transparent;
  outline: none;
  font-family: var(--display);
  font-size: clamp(20px, 1.09vw, 28px);
  color: var(--plate-ink);
  appearance: none;
}

.field__select { font-size: clamp(19px, 0.94vw, 24px); }
.field__select option { color: var(--c-ink-fixed); }

.field__input::placeholder { color: rgba(var(--on-photo-rgb), 0.5); }

.searchbar__submit {
  border: 0;
  border-radius: var(--r-small);
  padding: 0 32px;
  background: var(--gold);
  color: var(--c-ink-fixed);
  cursor: pointer;
  font-family: var(--text);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  transition: background var(--fast);
}

.searchbar__submit:hover,
.searchbar__submit:focus-visible { background: var(--plate-ink); }

/* ==========================================================================
   7. Sign in / Register modal
   ========================================================================== */

.auth {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  background: rgba(var(--c-deep-rgb), 0.74);
  backdrop-filter: blur(12px);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.25s ease, visibility 0.25s ease;
}

.auth:target,
.auth.is-open {
  opacity: 1;
  visibility: visible;
}

/* With JavaScript the dialogue is driven by the class, so the close button can
   shut it: clearing :target from script is not possible in every engine.
   Without JavaScript :target alone still opens and closes it. */
.js .auth:target:not(.is-open) {
  opacity: 0;
  visibility: hidden;
}

.auth__backdrop {
  position: absolute;
  inset: 0;
}

.auth__panel {
  position: relative;
  display: grid;
  grid-template-columns: 340px minmax(0, 1fr);
  width: min(100%, 900px);
  height: 736px;
  max-height: calc(100vh - 48px);
  border-radius: var(--r-card);
  overflow: hidden;
  background: var(--modal-bg);
  color: var(--ink);
  box-shadow: 0 80px 160px rgba(var(--shadow-black-rgb), 0.55), 0 0 0 1px rgba(var(--c-gold-rgb), 0.25);
  transform: translateY(24px) scale(0.98);
  transition: transform var(--move), height var(--move);
}

.auth:target .auth__panel,
.auth.is-open .auth__panel { transform: translateY(0) scale(1); }

.js .auth:target:not(.is-open) .auth__panel { transform: translateY(24px) scale(0.98); }

.auth__aside {
  position: relative;
  background: var(--modal-image-bg);
  color: var(--plate-ink);
  overflow: hidden;
}

.auth__aside > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 60% center;
}

.auth__aside-scrim {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(var(--c-ink-fixed-rgb), 0) 0%, rgba(var(--c-ink-fixed-rgb), 0.1) 40%, rgba(var(--c-ink-fixed-rgb), 0.92) 100%);
}

.auth__aside-frame {
  position: absolute;
  inset: 18px;
  border: 1px solid rgba(var(--c-gold-rgb), 0.45);
  border-radius: 6px;
  pointer-events: none;
}

.auth__aside-inner {
  position: relative;
  height: 100%;
  padding: 32px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 24px;
}

.auth__aside-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.auth__logo-plate {
  padding: 10px 14px;
  border-radius: var(--r-small);
  background: var(--modal-plate-bg);
}

.auth__logo-plate img { width: 104px; height: 31px; }
.auth__logo--dark { display: block; }
.auth__logo--light { display: none; }
[data-theme="dark"] .auth__logo--dark { display: none; }
[data-theme="dark"] .auth__logo--light { display: block; }

.auth__est {
  padding: 9px 12px;
  border-radius: var(--r-small);
  background: rgba(var(--c-ink-fixed-rgb), 0.75);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold);
}

.auth__quote {
  font-family: var(--display);
  font-style: italic;
  font-size: 26px;
  line-height: 1.2;
  color: var(--plate-ink);
}

.auth__perks {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
  font-size: 14px;
  color: var(--plate-muted);
}

.auth__perks li {
  display: flex;
  align-items: center;
  gap: 14px;
}

.auth__perks li::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--gold);
  flex: 0 0 auto;
}

.auth__main {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 40px 48px 32px;
  overflow-y: auto;
  background:
    radial-gradient(120% 80% at 100% 0%, rgba(var(--c-gold-rgb), 0.14) 0%, rgba(var(--c-gold-rgb), 0) 55%),
    var(--modal-bg);
}

.auth__close {
  position: absolute;
  top: 20px;
  right: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(var(--ink-rgb), 0.22);
  border-radius: 50%;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  transition: background 0.2s, color 0.2s, transform 0.2s;
}

.auth__close:hover,
.auth__close:focus-visible {
  background: var(--ink);
  color: var(--bg);
  transform: rotate(90deg);
}

.auth__tabs {
  display: flex;
  width: fit-content;
  margin-bottom: 28px;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
}

.auth__tab {
  padding: 0 0 14px;
  margin-bottom: -1px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  cursor: pointer;
  font-family: var(--text);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
  transition: color 0.2s, border-color 0.2s;
}

.auth__tab + .auth__tab { margin-left: 36px; }

.auth__title {
  font-size: 40px;
  line-height: 1.02;
  letter-spacing: -0.015em;
}

.auth__title em { color: var(--chrome-accent); }

.auth__subtitle {
  margin: 10px 0 26px;
  font-size: 16px;
  color: var(--muted);
}

.auth__social {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.social-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  height: 54px;
  border: 1px solid rgba(var(--ink-rgb), 0.16);
  border-radius: var(--r-field);
  background: var(--modal-field);
  cursor: pointer;
  font-family: var(--text);
  font-size: 15px;
  font-weight: 500;
  color: var(--ink);
  transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s;
}

.social-btn:hover,
.social-btn:focus-visible {
  border-color: var(--modal-hover-border);
  box-shadow: 0 8px 24px rgba(var(--shadow-black-rgb), 0.12);
  transform: translateY(-1px);
}

.social-btn__google {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: conic-gradient(from -45deg, var(--brand-google-blue) 0 25%, var(--brand-google-green) 0 50%, var(--brand-google-yellow) 0 75%, var(--brand-google-red) 0);
}

.social-btn__google::after {
  content: "";
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: var(--modal-field);
}

.social-btn__facebook {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--brand-facebook);
  color: var(--c-white);
  font-family: Georgia, serif;
  font-weight: 700;
  font-size: 16px;
  line-height: 1;
}

.auth__divider {
  display: flex;
  align-items: center;
  gap: 16px;
  margin: 22px 0;
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--faint);
}

.auth__divider::before,
.auth__divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.14);
}

.auth__form {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.auth__names {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  transition: max-height var(--move), opacity var(--mid);
}

#auth-mode-register:checked ~ .auth .auth__panel { height: 784px; }

.js .auth:target:not(.is-open) .auth__names { transition: none; }

#auth-mode-register:checked ~ .auth .auth__names {
  max-height: 120px;
  opacity: 1;
}

/* Copy that swaps between the two tabs */
#auth-mode-register:checked ~ .auth .on-signin,
#auth-mode-signin:checked ~ .auth .on-register { display: none; }

#auth-mode-signin:checked ~ .auth .auth__tab--signin,
#auth-mode-register:checked ~ .auth .auth__tab--register {
  color: var(--ink);
  border-bottom-color: var(--chrome-accent);
}

#auth-mode-signin:focus-visible ~ .auth .auth__tab--signin,
#auth-mode-register:focus-visible ~ .auth .auth__tab--register {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

.auth-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 12px 16px;
  border: 1px solid rgba(var(--ink-rgb), 0.16);
  border-radius: var(--r-field);
  background: var(--modal-field);
  transition: border-color 0.2s;
}

.auth-field:hover,
.auth-field:focus-within { border-color: var(--modal-hover-border); }

.auth-field__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.auth-field__label {
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--muted);
}

.auth-field__link {
  font-size: 12px;
  letter-spacing: 0.04em;
  color: var(--chrome-accent);
}

.auth-field input {
  padding: 0;
  border: 0;
  background: transparent;
  outline: none;
  font-size: 17px;
  color: var(--ink);
}

.auth-field__pw {
  display: flex;
  align-items: center;
  gap: 12px;
}

.auth-field__pw input {
  flex: 1;
  letter-spacing: 0.12em;
}

.auth-field__reveal {
  border: 0;
  background: transparent;
  cursor: pointer;
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
  transition: color var(--fast);
}

.auth-field__reveal:hover,
.auth-field__reveal:focus-visible { color: var(--ink); }

.auth__check {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 2px;
  font-size: 14px;
  color: var(--muted);
  cursor: pointer;
}

.auth__check input {
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: var(--chrome-accent);
}

.auth__submit {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  height: 58px;
  margin-top: 8px;
  border: 0;
  border-radius: var(--r-pill);
  background: var(--ink);
  color: var(--bg);
  cursor: pointer;
  font-family: var(--text);
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  transition: background var(--mid), gap var(--mid);
}

.auth__submit:hover,
.auth__submit:focus-visible {
  background: var(--chrome-accent);
  gap: 28px;
}

[data-theme="dark"] .auth__submit {
  background: var(--gold);
  color: var(--c-night);
}

[data-theme="dark"] .auth__submit:hover,
[data-theme="dark"] .auth__submit:focus-visible { background: var(--plate-ink); }

.auth__foot {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-top: auto;
  padding-top: 20px;
  font-size: 14px;
  color: var(--muted);
}

.auth__foot a,
.auth__switch {
  color: var(--chrome-accent);
  border-bottom: 1px solid currentColor;
  cursor: pointer;
}
.auth__legal { font-size: 12px; color: var(--faint); }
.auth__legal a { color: var(--muted); border-bottom: 0; }
.auth__legal a:hover { color: var(--chrome-accent); }

/* ==========================================================================
   8. Featured properties
   ========================================================================== */

.featured__edge {
  position: absolute;
  top: 0;
  width: 1px;
  height: 100%;
  background: rgba(var(--ink-rgb), 0.12);
  pointer-events: none;
}

.featured__edge--left { left: var(--gutter); }
.featured__edge--right { right: var(--gutter); }

.scale {
  display: flex;
  justify-content: space-between;
  margin-top: 26px;
  padding: 0 2px;
}

.scale__tick {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.scale__tick::before {
  content: "";
  width: 1px;
  height: 14px;
  background: rgba(var(--ink-rgb), 0.3);
  transition: background var(--mid);
}

.scale__tick--short::before { height: 8px; }

.scale__tick--lit {
  color: var(--accent);
}

.scale__tick--lit::before { background: rgba(var(--accent-rgb), 0.65); }

.bento {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  grid-auto-rows: clamp(240px, 15.62vw, 400px);
  gap: clamp(18px, 1.02vw, 26px);
  margin-top: 26px;
}

.plate {
  position: relative;
  min-width: 0;
  overflow: hidden;
  border: 1px solid rgba(var(--ink-rgb), 0.2);
  border-radius: var(--r-tile);
  background: rgba(var(--ink-rgb), 0.06);
  color: var(--on-photo);
  transition: opacity var(--mid), transform var(--move), border-color var(--mid);
}

.plate--lead {
  grid-column: span 2;
  grid-row: span 2;
}

.bento:hover .plate { opacity: 0.55; }
.bento .plate:hover {
  opacity: 1;
  transform: translateY(-6px);
  border-color: rgba(var(--accent-rgb), 0.6);
}

.plate__photo {
  position: absolute;
  inset: 0;
}

.plate__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.plate:hover .plate__photo img { transform: scale(1.05); }

.plate__scrim {
  position: absolute;
  inset: 0;
  /* The handoff's ramp is 0.3 → 0 at 36% → 0.82 at the foot. On the short
     one-row cards the caption sits at about 70% of the height, where that
     ramp has only reached ~0.5 — not enough under a lit interior. The two
     end stops are kept; the middle is pulled down so the copy always lands
     on a dark ground. */
  background: linear-gradient(
    180deg,
    rgba(var(--c-night-rgb), 0.3) 0%,
    rgba(var(--c-night-rgb), 0) 32%,
    rgba(var(--c-night-rgb), 0.62) 58%,
    rgba(var(--c-night-rgb), 0.92) 100%
  );
  pointer-events: none;
}

.plate__bar {
  position: absolute;
  top: 0;
  left: 0;
  height: 3px;
  width: 0;
  background: var(--accent);
  border-radius: var(--r-tile) 0 0 0;
  transition: width var(--move);
  pointer-events: none;
}

.plate:hover .plate__bar { width: 100%; }

.plate__top {
  position: absolute;
  top: 22px;
  left: 22px;
  right: 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  pointer-events: none;
}

.plate__deal {
  padding: 7px 14px;
  border-radius: var(--r-pill);
  background: rgba(var(--c-night-rgb), 0.6);
  color: var(--c-paper);
  transition: background var(--mid);
}

.plate:hover .plate__deal { background: var(--accent); }

.plate__dim {
  display: flex;
  align-items: center;
  gap: 8px;
}

.plate__dim::before {
  content: "";
  width: 22px;
  height: 1px;
  background: rgba(var(--on-photo-rgb), 0.65);
  transition: width var(--mid);
}

.plate:hover .plate__dim::before { width: 48px; }

.plate__body {
  position: absolute;
  left: 24px;
  right: 24px;
  bottom: 22px;
  pointer-events: none;
}

.plate__kind {
  display: block;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold);
}

.plate__title {
  display: block;
  margin-top: 8px;
  font-family: var(--display);
  font-size: clamp(21px, 1.17vw, 30px);
  line-height: 1.08;
}

.plate--lead .plate__title { font-size: clamp(26px, 1.80vw, 46px); }

.plate__body > .plate__line {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(var(--on-photo-rgb), 0.3);
}

.plate__price {
  font-family: var(--display);
  font-size: clamp(19px, 0.98vw, 25px);
}

.plate__meta {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(var(--on-photo-rgb), 0.74);
}

.plate__detail {
  display: block;
  height: 0;
  opacity: 0;
  overflow: hidden;
  transition: height var(--move), opacity var(--mid);
}

.plate:hover .plate__detail {
  height: 32px;
  opacity: 1;
}

.plate__detail-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding-top: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(var(--on-photo-rgb), 0.72);
}

.plate__detail-row > span:first-child {
  display: flex;
  gap: 18px;
}

.plate__open {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--gold);
}

.plate__open::after {
  content: "";
  width: 26px;
  height: 1px;
  background: currentColor;
}

.index-tile {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 16px;
  min-width: 0;
  padding: 26px;
  border: 1px solid rgba(var(--ink-rgb), 0.22);
  border-radius: var(--r-tile);
  background: var(--accent);
  color: var(--c-paper);
}

.index-tile__eyebrow {
  display: block;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(var(--c-paper-rgb), 0.75);
}

.index-tile__value {
  display: block;
  font-family: var(--display);
  font-size: clamp(32px, 2.19vw, 56px);
  line-height: 0.98;
}

.index-tile__text {
  display: block;
  margin-top: 10px;
  font-size: 15px;
  line-height: 1.55;
  color: rgba(var(--c-paper-rgb), 0.88);
}

.index-tile__link {
  align-self: flex-start;
  padding-bottom: 3px;
  border-bottom: 1px solid rgba(var(--c-paper-rgb), 0.5);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.index-tile__link:hover { border-bottom-color: var(--c-paper); }

.footrule {
  display: flex;
  align-items: center;
  gap: 24px;
  margin-top: 26px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.footrule__span {
  display: flex;
  align-items: center;
  flex: 1;
}

.footrule__span::before,
.footrule__span::after {
  content: "";
  width: 1px;
  height: 12px;
  background: rgba(var(--ink-rgb), 0.4);
}

.footrule__span span {
  flex: 1;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.25);
}

.footrule__active { color: var(--accent); }

/* ==========================================================================
   9. Search by city
   ========================================================================== */

.railhead {
  display: flex;
  gap: 44px;
  text-align: right;
}

.rail {
  display: flex;
  margin-top: 44px;
  overflow-x: auto;
  overflow-y: hidden;
  scroll-snap-type: x mandatory;
  border-top: 1px solid rgba(var(--ink-rgb), 0.25);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.25);
}

.city {
  position: relative;
  flex: 0 0 clamp(280px, 23.44vw, 600px);
  width: clamp(280px, 23.44vw, 600px);
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
  gap: 22px;
  padding: clamp(26px, 1.72vw, 44px) clamp(20px, 1.41vw, 36px) clamp(24px, 1.56vw, 40px);
  border-right: 1px solid rgba(var(--ink-rgb), 0.16);
  color: var(--ink);
  transition: background var(--mid);
}

/* Paris carries the selection until the reader points at another desk; the
   rail hands it back the moment the pointer leaves. */
.city--active,
.city:hover,
.city:focus-visible { background: rgba(var(--accent-rgb), 0.05); }

.city::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 3px;
  width: 0;
  background: var(--accent);
  transition: width var(--move);
}

.city--active::before,
.city:hover::before,
.city:focus-visible::before { width: 100%; }

.city__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.city__num {
  color: var(--faint);
  transition: color var(--mid);
}

.city--active .city__num,
.city:hover .city__num,
.city:focus-visible .city__num { color: var(--accent); }

.city__clock {
  letter-spacing: 0.12em;
  color: var(--faint);
  font-variant-numeric: tabular-nums;
}

.city__name {
  font-family: var(--display);
  font-size: clamp(34px, 2.34vw, 60px);
  line-height: 0.94;
  transition: font-size var(--move);
}

.city--active .city__name,
.city:hover .city__name,
.city:focus-visible .city__name { font-size: clamp(38px, 2.81vw, 72px); }

/* The column is a flex box and the frame would otherwise shrink to fit the
   rows below it, so the drawn height is never reached. */
.city__frame {
  flex: 0 0 auto;
  height: clamp(190px, 11.72vw, 300px);
  transition: height var(--move);
}

.city--active .city__frame,
.city:hover .city__frame,
.city:focus-visible .city__frame { height: clamp(230px, 14.84vw, 380px); }

.city__frame .frame__veil { opacity: 0.35; }

.city--active .city__frame .frame__veil,
.city:hover .city__frame .frame__veil,
.city:focus-visible .city__frame .frame__veil { opacity: 0; }

/* The handoff sets the coordinates straight on the photograph. Real city
   photographs are bright at the foot, where cream text drops to 2.1:1, so the
   frame gets a short wash under that one line — nowhere else. */
.city__frame::after {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 42%;
  background: linear-gradient(to top, rgba(var(--c-night-rgb), 0.62), rgba(var(--c-night-rgb), 0) 100%);
  pointer-events: none;
}

.city__coords {
  position: absolute;
  left: 14px;
  bottom: 14px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.12em;
  color: rgba(var(--on-photo-rgb), 0.85);
  pointer-events: none;
}

.city__foot {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin-top: auto;
  padding-top: 8px;
}

.city__count {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.city__count b {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(30px, 2.03vw, 52px);
  line-height: 1;
}

.city__trend {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent);
}

.city__open {
  display: flex;
  align-items: center;
  gap: 14px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
  transition: color var(--mid);
}

.city__open::after {
  content: "";
  width: 24px;
  height: 1px;
  background: currentColor;
  transition: width var(--mid);
}

.city--active .city__open,
.city:hover .city__open,
.city:focus-visible .city__open { color: var(--accent); }

.city--active .city__open::after,
.city:hover .city__open::after,
.city:focus-visible .city__open::after { width: 50px; }

/* While another desk is being pointed at, the default one steps back and
   behaves like any other column. */
.rail:hover .city--active:not(:hover),
.rail:focus-within .city--active:not(:hover):not(:focus-visible) {
  background: transparent;
}

.rail:hover .city--active:not(:hover)::before,
.rail:focus-within .city--active:not(:hover):not(:focus-visible)::before { width: 0; }

.rail:hover .city--active:not(:hover) .city__num,
.rail:focus-within .city--active:not(:hover):not(:focus-visible) .city__num { color: var(--faint); }

.rail:hover .city--active:not(:hover) .city__name,
.rail:focus-within .city--active:not(:hover):not(:focus-visible) .city__name {
  font-size: clamp(34px, 2.34vw, 60px);
}

.rail:hover .city--active:not(:hover) .city__frame,
.rail:focus-within .city--active:not(:hover):not(:focus-visible) .city__frame {
  height: clamp(190px, 11.72vw, 300px);
}

.rail:hover .city--active:not(:hover) .city__frame .frame__veil,
.rail:focus-within .city--active:not(:hover):not(:focus-visible) .city__frame .frame__veil { opacity: 0.35; }

.rail:hover .city--active:not(:hover) .city__open,
.rail:focus-within .city--active:not(:hover):not(:focus-visible) .city__open { color: var(--faint); }

.rail:hover .city--active:not(:hover) .city__open::after,
.rail:focus-within .city--active:not(:hover):not(:focus-visible) .city__open::after { width: 24px; }

.deskbar {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto auto;
  align-items: center;
  gap: 32px;
  margin-top: 26px;
  padding-top: 24px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted);
}

.deskbar__status {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--accent);
}

.deskbar__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--green);
}

.deskbar__dot--closed { background: var(--faint); }

.deskbar__address {
  font-family: var(--text);
  font-size: clamp(16px, 0.74vw, 19px);
  letter-spacing: 0;
  text-transform: none;
  color: var(--ink);
}

/* ==========================================================================
   10. Off-market teaser
   ========================================================================== */

.sealed {
  position: relative;
  min-height: clamp(520px, 39.84vw, 1020px);
  border: 1px solid rgba(var(--ink-rgb), 0.25);
  border-radius: var(--r-card);
  overflow: hidden;
  color: var(--on-photo);
}

.sealed__photo {
  position: absolute;
  inset: 0;
  filter: blur(16px);
  transform: scale(1.08);
  transition: filter 0.8s ease;
}

.sealed:hover .sealed__photo { filter: blur(7px); }

.sealed__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sealed__scrim {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(var(--c-night-rgb), 0.55) 0%, rgba(var(--c-night-rgb), 0.3) 45%, rgba(var(--c-night-rgb), 0.9) 100%);
  pointer-events: none;
}

.sealed__grid {
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(var(--c-cream-rgb), 0.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(var(--c-cream-rgb), 0.05) 1px, transparent 1px);
  background-size: 100px 100px;
  pointer-events: none;
}

.sealed__scan {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(0deg, rgba(var(--c-night-rgb), 0.14) 0px, rgba(var(--c-night-rgb), 0.14) 2px, transparent 2px, transparent 7px);
  opacity: 0.9;
  transition: opacity 0.5s ease;
  pointer-events: none;
}

.sealed:hover .sealed__scan { opacity: 0.35; }

.sealed__ticks span {
  position: absolute;
  width: 20px;
  height: 20px;
  pointer-events: none;
}

.sealed__ticks span:nth-child(1) {
  top: 22px;
  left: 22px;
  border-left: 1px solid rgba(var(--c-cream-rgb), 0.55);
  border-top: 1px solid rgba(var(--c-cream-rgb), 0.55);
}

.sealed__ticks span:nth-child(2) {
  top: 22px;
  right: 22px;
  border-right: 1px solid rgba(var(--c-cream-rgb), 0.55);
  border-top: 1px solid rgba(var(--c-cream-rgb), 0.55);
}

.sealed__ticks span:nth-child(3) {
  bottom: 22px;
  left: 22px;
  border-left: 1px solid rgba(var(--c-cream-rgb), 0.4);
  border-bottom: 1px solid rgba(var(--c-cream-rgb), 0.4);
}

.sealed__ticks span:nth-child(4) {
  bottom: 22px;
  right: 22px;
  border-right: 1px solid rgba(var(--c-cream-rgb), 0.4);
  border-bottom: 1px solid rgba(var(--c-cream-rgb), 0.4);
}

.sealed__spine {
  position: absolute;
  left: 30px;
  top: 50%;
  transform: translateY(-50%) rotate(180deg);
  writing-mode: vertical-rl;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: rgba(var(--c-cream-rgb), 0.45);
  pointer-events: none;
}

.sealed__pills {
  position: absolute;
  top: 30px;
  left: 30px;
  right: 30px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.sealed__pill {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  padding: 9px 16px;
  border-radius: var(--r-pill);
  background: rgba(var(--c-night-rgb), 0.6);
}

.sealed__pill::before {
  content: "";
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--accent);
  flex: 0 0 auto;
}

.sealed__pill--plain::before { display: none; }
.sealed__pill--cipher { color: var(--gold); letter-spacing: 0.16em; }

.sealed__pill-group {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.sealed__body {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(340px, 28.12vw, 720px);
  gap: clamp(32px, 3.12vw, 80px);
  align-items: end;
  min-height: clamp(520px, 39.84vw, 1020px);
  padding: clamp(110px, 5.47vw, 140px) clamp(32px, 3.12vw, 80px) clamp(40px, 2.73vw, 70px) clamp(40px, 3.75vw, 96px);
}

.sealed__copy {
  display: flex;
  flex-direction: column;
  gap: 22px;
  min-width: 0;
}

.sealed__title {
  display: block;
  font-size: clamp(32px, 3.75vw, 96px);
  line-height: 0.94;
}

.sealed__title em { color: var(--gold); }

.sealed__lead {
  max-width: clamp(560px, 29.69vw, 760px);
  font-size: clamp(17px, 0.78vw, 20px);
  line-height: 1.6;
  color: rgba(var(--on-photo-rgb), 0.75);
}

.sealed__stats {
  display: flex;
  gap: 48px;
  flex-wrap: wrap;
  padding-top: 22px;
  border-top: 1px solid rgba(var(--on-photo-rgb), 0.28);
}

.sealed__stats .figure__value { font-size: clamp(24px, 1.56vw, 40px); }
.sealed__stats .figure__label { color: rgba(var(--on-photo-rgb), 0.6); }

.request {
  display: flex;
  flex-direction: column;
  gap: 16px;
  min-width: 0;
  padding: clamp(26px, 1.72vw, 44px) clamp(24px, 1.80vw, 46px) clamp(24px, 1.56vw, 40px);
  border-radius: var(--r-card);
  background: rgba(var(--c-paper-rgb), 0.95);
  color: var(--c-ink-fixed);
  box-shadow: 0 40px 100px rgba(var(--shadow-deep-rgb), 0.4);
}

.request__kicker {
  display: block;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--c-red);
}

.request__title {
  display: block;
  font-family: var(--display);
  font-size: clamp(23px, 1.33vw, 34px);
  line-height: 1.1;
}

.request__field {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 13px 18px;
  border: 1px solid rgba(var(--c-ink-fixed-rgb), 0.22);
  border-radius: var(--r-tile);
  background: var(--c-white);
  transition: border-color var(--fast);
}

.request__field:hover,
.request__field:focus-within { border-color: var(--c-ink-fixed); }

.request__label {
  display: block;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--c-clay);
}

.request__field input,
.request__field select {
  padding: 0;
  border: 0;
  background: transparent;
  outline: none;
  font-family: var(--text);
  font-size: 18px;
  color: var(--c-ink-fixed);
  appearance: none;
}

.request__submit {
  height: 58px;
  margin-top: 4px;
  border: 0;
  border-radius: var(--r-pill);
  background: var(--c-red);
  color: var(--c-paper);
  cursor: pointer;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 18px;
  transition: background var(--mid), gap var(--mid);
}

.request__submit:hover,
.request__submit:focus-visible {
  background: var(--c-ink-fixed);
  gap: 28px;
}

.request__perks {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 4px 0 0;
  padding: 0;
  list-style: none;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--c-clay);
}

.request__perks li {
  display: flex;
  align-items: center;
  gap: 12px;
}

.request__perks li::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--c-red);
  flex: 0 0 auto;
}

/* ==========================================================================
   11. How we work
   ========================================================================== */

.steps {
  position: relative;
  margin-top: 60px;
}

.steps__line {
  position: absolute;
  left: 0;
  right: 0;
  top: 56px;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.25);
}

.steps__grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 48px;
}

.step {
  display: flex;
  flex-direction: column;
  gap: 22px;
  min-width: 0;
}

.step__head {
  display: flex;
  align-items: center;
  gap: 20px;
  height: clamp(84px, 5.00vw, 128px);
}

.step__badge {
  position: relative;
  display: grid;
  place-items: center;
  width: clamp(84px, 5.00vw, 128px);
  height: clamp(84px, 5.00vw, 128px);
  flex: 0 0 auto;
}

.step__halo {
  position: absolute;
  inset: -10px;
  border: 1px solid rgba(var(--accent-rgb), 0.35);
  border-radius: 50%;
  opacity: 0;
  transform: scale(0.85);
  transition: opacity var(--mid), transform var(--move);
}

.step:hover .step__halo {
  opacity: 1;
  transform: scale(1);
}

.step__num {
  display: grid;
  place-items: center;
  width: clamp(84px, 5.00vw, 128px);
  height: clamp(84px, 5.00vw, 128px);
  border: 1px solid rgba(var(--ink-rgb), 0.3);
  border-radius: 50%;
  background: var(--bg);
  font-family: var(--display);
  font-size: clamp(32px, 2.03vw, 52px);
  transition: border-color var(--mid), background var(--mid), color var(--mid);
}

.step:hover .step__num {
  border-color: var(--accent);
  background: rgba(var(--accent-rgb), 0.07);
  color: var(--accent);
}

.step__tag {
  position: absolute;
  bottom: -8px;
  padding: 3px 8px;
  border-radius: var(--r-pill);
  background: var(--bg);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  transition: color var(--mid);
}

.step:hover .step__tag { color: var(--accent); }

.step__leader {
  flex: 1;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.22);
  transition: background var(--mid);
}

.step:hover .step__leader { background: rgba(var(--accent-rgb), 0.6); }

.step__duration {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
  white-space: nowrap;
}

.step__title {
  font-size: clamp(26px, 1.95vw, 50px);
  line-height: 1.04;
}

.step__text {
  font-size: clamp(16px, 0.74vw, 19px);
  line-height: 1.62;
  color: var(--muted);
}

.step__deliver {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 18px;
  border-radius: var(--r-tile);
  background: rgba(var(--ink-rgb), 0.045);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  transition: background var(--mid);
}

.step:hover .step__deliver { background: rgba(var(--accent-rgb), 0.08); }

.step__check {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border: 1px solid currentColor;
  border-radius: 50%;
  flex: 0 0 auto;
  transition: color var(--mid);
}

.step:hover .step__check { color: var(--accent); }

.steps__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  margin-top: 48px;
  padding-top: 26px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.2);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
}

/* ==========================================================================
   12. Meet your advisor
   ========================================================================== */

.rail--framed {
  margin-top: 34px;
  border: 1px solid var(--ink);
}

.advisor {
  position: relative;
  z-index: 1;
  flex: 0 0 clamp(280px, 23.44vw, 600px);
  width: clamp(280px, 23.44vw, 600px);
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
  border-right: 1px solid rgba(var(--ink-rgb), 0.4);
  background: transparent;
  transition: background var(--mid), transform var(--move), box-shadow var(--mid);
}

.rail--framed:hover .advisor:not(:hover) .frame__veil { opacity: 0.32; }

.advisor:hover {
  z-index: 2;
  background: rgba(var(--ink-rgb), 0.04);
  transform: translateY(-10px);
  box-shadow: 0 30px 70px rgba(var(--shadow-brown-rgb), 0.18);
}

.rail--framed .advisor:hover .frame__veil { opacity: 0; }
.advisor:hover .frame__img { transform: scale(1.07); }
.advisor:hover .frame__bar { width: 100%; }

.advisor__stamp {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 18px;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.4);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
  transition: color var(--mid);
}

.advisor:hover .advisor__stamp { color: var(--accent); }

.advisor__portrait { padding: 18px; }

.advisor__frame {
  height: clamp(210px, 13.28vw, 340px);
  border: 1px solid rgba(var(--ink-rgb), 0.3);
}

/* Портрет прижат к верхней кромке: если снимок окажется выше рамки, срежется
   низ, а голова останется в кадре. */
.advisor__frame .frame__img { object-position: center top; }

.advisor__dim { margin-top: 10px; }

.advisor__ident {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 0 18px 14px;
}

.advisor__name {
  font-family: var(--display);
  font-size: clamp(23px, 1.33vw, 34px);
  line-height: 1.04;
}

.advisor__role {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent);
}

.advisor__fields {
  display: flex;
  flex-direction: column;
  margin: 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.4);
}

.advisor__field {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 14px;
  align-items: baseline;
  padding: 9px 18px;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.16);
}

.advisor__field dt {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.advisor__field dd {
  margin: 0;
  font-size: 15px;
}

.advisor__foot {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: auto;
  padding: 16px 18px 18px;
}

.advisor__sign {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  padding-top: 12px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.3);
}

.advisor__signature {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.advisor__signature b {
  font-family: var(--display);
  font-style: italic;
  font-weight: 400;
  font-size: 24px;
  line-height: 1;
  color: var(--muted);
  transition: color var(--mid);
}

.advisor:hover .advisor__signature b { color: var(--accent); }

.advisor__signature span {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

/* Печать рисуется вектором, поэтому кольца и дуговой текст живут внутри SVG,
   а не на рамке span. Цвет наследуется — на наведении вся печать краснеет. */
.advisor__seal {
  display: block;
  width: 54px;
  height: 54px;
  color: var(--faint);
  flex: 0 0 auto;
  transition: color var(--mid);
}

.seal {
  width: 100%;
  height: 100%;
  font-family: var(--mono);
}

.advisor:hover .advisor__seal { color: var(--accent); }

.advisor__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 48px;
  border: 1px solid rgba(var(--ink-rgb), 0.3);
  border-radius: var(--r-pill);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  transition: background var(--mid), color var(--mid), border-color var(--mid);
}

.advisor:hover .advisor__cta {
  border-color: var(--accent);
  background: var(--accent);
  color: var(--bg);
}

/* ==========================================================================
   13. Numbers & trust
   ========================================================================== */

.record {
  position: relative;
  margin-top: 56px;
}

.record__line {
  position: absolute;
  left: 0;
  right: 0;
  top: 88px;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.28);
}

.record__grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 32px;
}

.mark {
  display: flex;
  flex-direction: column;
  gap: 20px;
  min-width: 0;
}

.mark__value {
  font-family: var(--display);
  font-size: clamp(38px, 3.28vw, 84px);
  line-height: 0.9;
  letter-spacing: -0.02em;
  transition: font-size var(--move), color var(--mid);
}

.mark:hover .mark__value {
  font-size: clamp(42px, 3.75vw, 96px);
  color: var(--accent);
}

.mark__axis {
  display: flex;
  align-items: center;
  gap: 14px;
  height: 24px;
}

.mark__dot {
  display: grid;
  place-items: center;
  width: 18px;
  height: 18px;
  border: 1px solid rgba(var(--ink-rgb), 0.4);
  border-radius: 50%;
  background: var(--bg);
  flex: 0 0 auto;
  transition: border-color var(--mid), background var(--mid);
}

.mark__dot::after {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(var(--ink-rgb), 0.4);
  transition: background var(--mid);
}

.mark:hover .mark__dot {
  border-color: var(--accent);
  background: rgba(var(--accent-rgb), 0.12);
}

.mark:hover .mark__dot::after { background: var(--accent); }

.mark__leader {
  flex: 1;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.2);
  transition: background var(--mid);
}

.mark:hover .mark__leader { background: rgba(var(--accent-rgb), 0.5); }

.mark__year,
.mark__label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(var(--ink-rgb), 0.55);
  white-space: nowrap;
  transition: color var(--mid);
}

.mark__label { color: var(--muted); }

.mark:hover .mark__year,
.mark:hover .mark__label { color: var(--accent); }

.mark__note {
  font-size: clamp(15px, 0.62vw, 16px);
  line-height: 1.55;
  color: var(--muted);
}

.record__readout {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  margin-top: 40px;
  padding-top: 24px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.2);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
}

.record__readout span:last-child { color: var(--accent); }

.badges {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-top: 32px;
  border: 1px solid var(--ink);
}

.badge {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-width: 0;
  padding: 28px 30px;
  border-right: 1px solid rgba(var(--ink-rgb), 0.35);
  transition: background var(--mid);
}

.badge:last-child { border-right: 0; }

.badge:hover { background: rgba(var(--accent-rgb), 0.05); }

.badge::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  height: 3px;
  width: 0;
  background: var(--accent);
  transition: width var(--move);
}

.badge:hover::before { width: 100%; }

.badge__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.badge__short {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent);
}

.badge__check {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border: 1px solid rgba(var(--ink-rgb), 0.35);
  border-radius: 50%;
  color: rgba(var(--ink-rgb), 0.55);
  transition: border-color var(--mid), color var(--mid);
}

.badge:hover .badge__check {
  border-color: var(--accent);
  color: var(--accent);
}

.badge__title {
  font-family: var(--display);
  font-size: clamp(21px, 1.09vw, 28px);
  line-height: 1.1;
}

.badge__meta {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
}

/* ==========================================================================
   14. The journal
   ========================================================================== */

.journal {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 40px;
  border: 1px solid var(--ink);
}

.article {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
  border-right: 1px solid rgba(var(--ink-rgb), 0.4);
  transition: background var(--mid), transform var(--move), box-shadow var(--mid);
}

.article:last-child { border-right: 0; }

.journal:hover .article:not(:hover) .frame__veil { opacity: 0.3; }

.article:hover {
  z-index: 2;
  background: rgba(var(--ink-rgb), 0.04);
  transform: translateY(-10px);
  box-shadow: 0 30px 70px rgba(var(--shadow-brown-rgb), 0.18);
}

.journal .article:hover .frame__veil { opacity: 0; }
.article:hover .frame__img { transform: scale(1.06); }
.article:hover .frame__bar { width: 100%; }

.article__stamp {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 13px 20px;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.4);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
  transition: color var(--mid);
}

.article:hover .article__stamp { color: var(--accent); }

.article__cover { display: block; padding: 20px 20px 0; color: inherit; text-decoration: none; }

.article__frame {
  height: clamp(220px, 15.62vw, 400px);
  border: 1px solid rgba(var(--ink-rgb), 0.3);
}

.article__dim { padding: 10px 20px 0; }

.article__body {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 16px 20px 18px;
}

.article__title {
  font-size: clamp(24px, 1.48vw, 38px);
  line-height: 1.08;
  text-wrap: pretty;
}

.article__excerpt {
  font-size: clamp(16px, 0.66vw, 17px);
  line-height: 1.6;
  color: var(--muted);
}

.article__pull {
  height: 0;
  opacity: 0;
  overflow: hidden;
  transition: height var(--move), opacity var(--mid);
}

.article:hover .article__pull {
  height: 72px;
  opacity: 1;
}

.article__pull p {
  margin: 0;
  padding: 0 20px 18px;
  font-family: var(--display);
  font-style: italic;
  font-size: clamp(18px, 0.86vw, 22px);
  line-height: 1.4;
  color: var(--accent);
}

.article__fields {
  display: flex;
  flex-direction: column;
  margin: auto 0 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.4);
}

.article__field {
  display: grid;
  grid-template-columns: 104px minmax(0, 1fr);
  gap: 14px;
  align-items: baseline;
  padding: 11px 20px;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
}

.article__field dt {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.article__field dd {
  margin: 0;
  font-size: 15px;
}

.article__read {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 0;
  padding: 18px 20px;
  text-decoration: none;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
  transition: color var(--mid);
}

.article__read::after {
  content: "";
  width: 22px;
  height: 1px;
  background: currentColor;
  transition: width var(--mid);
}

.article:hover .article__read { color: var(--accent); }
.article:hover .article__read::after { width: 48px; }

/* ==========================================================================
   15. In their words
   ========================================================================== */

.quotes__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 40px;
}

.quotes__controls {
  display: flex;
  align-items: center;
  gap: 16px;
}

.quotes__score {
  margin-right: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
}

.round-btn {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  border: 1px solid rgba(var(--ink-rgb), 0.35);
  border-radius: 50%;
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  transition: background var(--fast), color var(--fast), border-color var(--fast);
}

.round-btn:hover,
.round-btn:focus-visible {
  background: var(--ink);
  color: var(--bg);
  border-color: var(--ink);
}

.quotes__deck {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(36px, 3.12vw, 80px);
  margin-top: clamp(32px, 2.03vw, 52px);
  transition: opacity var(--mid), transform var(--move);
}

.quotes__deck.is-fading {
  opacity: 0;
  transform: translateY(12px);
}

.quote {
  display: flex;
  flex-direction: column;
  gap: 28px;
  min-width: 0;
  padding-top: 28px;
  border-top: 2px solid var(--ink);
  transition: border-color var(--mid);
}

.quote[hidden] { display: none; }
.quote:hover { border-top-color: var(--accent); }

.quote__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 24px;
}

.quote__mark {
  font-family: var(--display);
  font-style: italic;
  font-size: clamp(22px, 1.17vw, 30px);
  line-height: 1;
  color: rgba(var(--ink-rgb), 0.25);
  transition: color var(--mid);
}

.quote:hover .quote__mark { color: var(--accent); }

.quote__ref {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
  white-space: nowrap;
  transition: color var(--mid);
}

.quote:hover .quote__ref { color: var(--accent); }

.quote__text {
  font-family: var(--display);
  font-size: clamp(25px, 2.11vw, 54px);
  line-height: 1.18;
  letter-spacing: -0.01em;
}

.quote__foot {
  display: flex;
  align-items: center;
  gap: 22px;
  margin-top: auto;
  padding-top: 24px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.18);
}

.quote__portrait {
  width: clamp(64px, 3.44vw, 88px);
  height: clamp(64px, 3.44vw, 88px);
  border: 1px solid var(--ink);
  border-radius: 50%;
  overflow: hidden;
  flex: 0 0 auto;
  transition: border-color var(--mid);
}

.quote:hover .quote__portrait { border-color: var(--accent); }

.quote__portrait img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.quote__who {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}

.quote__name {
  font-family: var(--display);
  font-size: clamp(22px, 1.17vw, 30px);
  line-height: 1.1;
}

.quote__meta {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
}

.quote__weeks {
  margin-left: auto;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 7px;
  white-space: nowrap;
}

.quote__weeks b {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(20px, 1.02vw, 26px);
  line-height: 1;
}

.quote__weeks span {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.quotes__pager {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 40px;
}

.quotes__dot {
  flex: 1;
  height: 2px;
  padding: 0;
  border: 0;
  background: rgba(var(--ink-rgb), 0.22);
  cursor: pointer;
  transition: background var(--mid);
}

.quotes__dot[aria-current="true"] { background: var(--accent); }

.quotes__count {
  margin-left: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
  white-space: nowrap;
}

/* ==========================================================================
   16. Enquiry form
   ========================================================================== */

.enquiry {
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(560px, 48.44vw, 1240px);
  border: 1px solid var(--ink);
  border-top: 0;
}

.enquiry__aside {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: clamp(28px, 1.56vw, 40px);
  min-width: 0;
  padding: clamp(30px, 2.19vw, 56px) clamp(26px, 2.19vw, 56px) clamp(28px, 1.88vw, 48px);
  border-right: 1px solid rgba(var(--ink-rgb), 0.4);
}

.enquiry__title {
  font-size: clamp(30px, 3.44vw, 88px);
  line-height: 0.96;
}

.enquiry__lead {
  max-width: clamp(460px, 20.31vw, 520px);
  margin-top: 22px;
  font-size: clamp(16px, 0.74vw, 19px);
  line-height: 1.62;
  color: var(--muted);
}

.enquiry__heard {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 20px 22px;
  border: 1px solid rgba(var(--accent-rgb), 0.25);
  border-radius: var(--r-tile);
  background: rgba(var(--accent-rgb), 0.06);
}

.enquiry__heard-label {
  display: block;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
}

.enquiry__heard-value {
  display: block;
  font-family: var(--display);
  font-size: clamp(21px, 1.02vw, 26px);
  line-height: 1.25;
}

.enquiry__phone {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 18px;
}

.enquiry__phone a {
  font-family: var(--display);
  font-size: clamp(26px, 1.48vw, 38px);
  line-height: 1;
}

.enquiry__phone a:hover { color: var(--accent); }

.enquiry__phone span {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.enquiry__form {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.row {
  position: relative;
  display: grid;
  grid-template-columns: clamp(48px, 2.50vw, 64px) clamp(150px, 7.81vw, 200px) minmax(0, 1fr);
  align-items: center;
  gap: 20px;
  min-height: clamp(80px, 3.75vw, 96px);
  padding: 16px clamp(24px, 1.72vw, 44px);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.22);
  transition: background var(--mid);
}

.row:hover,
.row:focus-within { background: rgba(var(--accent-rgb), 0.04); }

.row::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 3px;
  height: 0;
  background: var(--accent);
  transition: height var(--move);
}

.row:hover::before,
.row:focus-within::before { height: 100%; }

.row__num {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  color: var(--faint);
  transition: color var(--mid);
}

.row:hover .row__num,
.row:focus-within .row__num { color: var(--accent); }

.row__label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
}

.row__input {
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  outline: none;
  font-family: var(--display);
  font-size: clamp(20px, 1.09vw, 28px);
  color: var(--ink);
}

.row__input::placeholder { color: rgba(var(--ink-rgb), 0.4); }

.row__chips {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.chip {
  padding: 11px 20px;
  border: 1px solid rgba(var(--ink-rgb), 0.3);
  border-radius: var(--r-pill);
  background: transparent;
  color: var(--ink);
  cursor: pointer;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  transition: background var(--fast), color var(--fast), border-color var(--fast);
}

.chip:hover { border-color: var(--accent); }

.chip[aria-pressed="true"] {
  background: var(--accent);
  border-color: var(--accent);
  color: var(--bg);
}

.enquiry__submitrow {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-top: auto;
  padding: 28px 36px;
}

.enquiry__summary {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

/* ==========================================================================
   17. Footer
   ========================================================================== */

.footer {
  position: relative;
  background: var(--c-night);
  color: var(--c-cream);
  overflow: hidden;
}

/* На светлой странице подвал сам себе граница — тёмный блок на кремовом фоне.
   В тёмной теме фон страницы того же тона, и подвал сливается с последней
   секцией, поэтому уходит на тон глубже и отбивается волосяной линией. */
[data-theme="dark"] .footer {
  background: var(--c-night-deep);
  border-top: 1px solid rgba(var(--c-cream-rgb), 0.14);
}

.footer::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(90deg, rgba(var(--c-cream-rgb), 0.035) 1px, transparent 1px),
    linear-gradient(0deg, rgba(var(--c-cream-rgb), 0.035) 1px, transparent 1px);
  background-size: 128px 128px;
  pointer-events: none;
}

.footer a { color: var(--plate-muted); }
.footer a:hover { color: var(--gold); }

.footer .shell { position: relative; }

.footer__strip {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  padding: 34px 0;
  border-bottom: 1px solid rgba(var(--c-cream-rgb), 0.16);
}

.footer__strip-copy {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 28px;
}

.footer__strip-kicker {
  display: block;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--gold);
}

.footer__strip-title {
  display: block;
  font-family: var(--display);
  font-size: clamp(24px, 1.48vw, 38px);
  line-height: 1.1;
}

.footer__strip-actions {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}

.footer__pill {
  padding: 17px 30px;
  border: 1px solid transparent;
  border-radius: var(--r-pill);
  font-family: var(--text);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  white-space: nowrap;
  transition: background var(--fast), color var(--fast), border-color var(--fast);
}

/* .footer a задаёт цвет всем ссылкам подвала и по весу перебивал цвета этих
   двух кнопок — золотая пилюля выходила со светлой подписью на золоте.
   Хендофф предупреждает об этом прямо: цвет подписи держим явным. */
.footer .footer__pill--gold {
  background: var(--gold);
  color: var(--c-night);
}

.footer .footer__pill--gold:hover {
  background: var(--c-cream);
  color: var(--c-night);
}

.footer .footer__pill--ghost {
  border-color: rgba(var(--c-cream-rgb), 0.35);
  color: var(--c-cream);
}

.footer .footer__pill--ghost:hover {
  border-color: var(--gold);
  color: var(--gold);
}

.footer__register {
  display: grid;
  grid-template-columns: 1.2fr repeat(4, 1fr);
  gap: clamp(32px, 2.19vw, 56px);
  padding: clamp(44px, 3.12vw, 80px) 0 clamp(36px, 2.19vw, 56px);
  border-bottom: 1px solid rgba(var(--c-cream-rgb), 0.16);
}

.footer__brand img { width: 182px; height: 54px; }

.footer__about {
  max-width: 340px;
  margin-top: 22px;
  font-size: 15px;
  line-height: 1.7;
  color: rgba(var(--c-cream-rgb), 0.62);
}

.footer__stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid rgba(var(--c-cream-rgb), 0.16);
}

.footer__stats .figure__value { font-size: clamp(22px, 1.09vw, 28px); }
.footer__stats .figure__label { color: rgba(var(--c-cream-rgb), 0.45); }

.footer__socials {
  display: flex;
  gap: 12px;
  margin-top: 26px;
}

.footer .footer__social {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(var(--c-cream-rgb), 0.25);
  font-family: var(--mono);
  font-size: 12px;
  color: rgba(var(--c-cream-rgb), 0.72);
  transition: border-color var(--fast), color var(--fast), background var(--fast);
}

.footer .footer__social:hover {
  border-color: var(--gold);
  color: var(--gold);
  background: rgba(var(--c-gold-rgb), 0.12);
}

.footer__col-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(var(--c-cream-rgb), 0.16);
}

.footer__col-title {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold);
}

.footer__col-num {
  font-family: var(--display);
  font-size: 17px;
  color: rgba(var(--c-cream-rgb), 0.3);
}

.footer__links {
  display: flex;
  flex-direction: column;
  gap: 13px;
  margin: 18px 0 0;
  padding: 0;
  list-style: none;
}

.footer__links a {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  font-size: 16px;
  color: rgba(var(--c-cream-rgb), 0.72);
  transition: color 0.22s ease, padding-left 0.22s ease;
}

/* Ссылок в колонках двадцать четыре — самая массовая цель в подвале.
   Раньше они лишь подтягивали прозрачность с 72% до 100%, весь сигнал держал
   сдвиг на 6px. Теперь отвечают золотом, как остальные ссылки подвала, и
   счётчик справа подтягивается вместе с ними. */
.footer__links a:hover {
  color: var(--gold);
  padding-left: 6px;
}

.footer__links a:hover span { color: var(--gold); }

.footer__links span {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.1em;
  color: rgba(var(--c-cream-rgb), 0.35);
}

.footer__deskline {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 24px;
  padding: 26px 0 14px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(var(--c-cream-rgb), 0.45);
}

.footer__deskline span:last-child { color: var(--gold); }

.offices {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid rgba(var(--c-cream-rgb), 0.2);
  border-bottom: 1px solid rgba(var(--c-cream-rgb), 0.16);
}

.office {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 26px 30px 26px 0;
  border-right: 1px solid rgba(var(--c-cream-rgb), 0.14);
  opacity: 0.72;
  transition: background 0.25s ease, opacity 0.25s ease;
}

.office:last-child { border-right: 0; }

.office:hover {
  background: rgba(var(--c-gold-rgb), 0.07);
  opacity: 1;
}

.office::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 2px;
  background: var(--gold);
  transition: width var(--move);
}

.office:hover::before { width: 100%; }

.office__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding-right: 26px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(var(--c-cream-rgb), 0.5);
}

.office__open { color: var(--green); }
.office__open--closed { color: rgba(var(--c-cream-rgb), 0.4); }

.office__time {
  display: flex;
  align-items: baseline;
  gap: 12px;
  font-family: var(--mono);
}

.office__clock {
  font-size: clamp(21px, 1.02vw, 26px);
  letter-spacing: 0.06em;
  color: var(--c-cream);
  font-variant-numeric: tabular-nums;
}

.office__local {
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(var(--c-cream-rgb), 0.4);
}

.office__address {
  font-family: var(--display);
  font-size: clamp(19px, 0.90vw, 23px);
  line-height: 1.24;
}

.office__phone {
  font-size: 15px;
  color: rgba(var(--c-cream-rgb), 0.6);
}

.office__hours {
  font-size: 14px;
  color: rgba(var(--c-cream-rgb), 0.45);
}

.office__licence {
  margin-top: 4px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gold);
}

.footer__subscribe {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 56px;
  align-items: end;
  padding: 38px 0;
  border-bottom: 1px solid rgba(var(--c-cream-rgb), 0.16);
}

.newsletter {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.newsletter__kicker {
  display: block;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--gold);
}

.newsletter__field {
  display: flex;
  align-items: center;
  gap: 20px;
  max-width: 720px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(var(--c-cream-rgb), 0.3);
  transition: border-color 0.25s ease;
}

.newsletter__field:hover,
.newsletter__field:focus-within { border-color: var(--gold); }

.newsletter__field input {
  flex: 1;
  padding: 0;
  border: 0;
  background: transparent;
  outline: none;
  font-family: var(--display);
  font-size: clamp(22px, 1.25vw, 32px);
  color: var(--c-cream);
}

.newsletter__field input::placeholder { color: rgba(var(--c-cream-rgb), 0.4); }

.newsletter__submit {
  display: flex;
  align-items: center;
  gap: 14px;
  border: 0;
  background: transparent;
  cursor: pointer;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold);
  transition: gap 0.25s ease, color 0.25s ease;
}

.newsletter__submit::after {
  content: "";
  width: 34px;
  height: 1px;
  background: currentColor;
}

.newsletter__submit:hover,
.newsletter__submit:focus-visible {
  gap: 24px;
  color: var(--c-cream);
}

.newsletter__note {
  display: block;
  font-size: 14px;
  color: rgba(var(--c-cream-rgb), 0.45);
}

.credentials {
  display: flex;
  flex-direction: column;
  gap: 14px;
  align-items: flex-end;
  text-align: right;
  margin: 0;
  padding: 0;
  list-style: none;
}

.credentials li {
  display: flex;
  align-items: baseline;
  gap: 14px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(var(--c-cream-rgb), 0.5);
}

.credentials b {
  font-weight: 400;
  color: var(--gold);
}

.footer__prefs {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 40px;
  padding: 24px 0 26px;
  border-bottom: 1px solid rgba(var(--c-cream-rgb), 0.16);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(var(--c-cream-rgb), 0.5);
}

.footer__legal {
  display: flex;
  gap: 28px;
  flex-wrap: wrap;
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer__legal a { color: inherit; }

.footer__switches {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}

.switchset {
  display: flex;
  gap: 8px;
}

.switchset button {
  padding: 8px 13px;
  border: 1px solid rgba(var(--c-cream-rgb), 0.22);
  background: transparent;
  color: rgba(var(--c-cream-rgb), 0.6);
  cursor: pointer;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  transition: background 0.22s ease, color 0.22s ease;
}

.switchset button[aria-pressed="true"] {
  background: rgba(var(--c-gold-rgb), 0.16);
  color: var(--gold);
}

.footer__baseline {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 30px;
  padding: 26px 0 0;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(var(--c-cream-rgb), 0.4);
}

.wordmark {
  position: relative;
  margin-top: 48px;
  padding: 0 var(--gutter) 36px;
}

.wordmark svg {
  width: 100%;
  height: auto;
  overflow: visible;
}

.wordmark path {
  fill: none;
  stroke: var(--c-cream);
  stroke-opacity: 0.3;
  stroke-width: 0.12;
  transition: stroke 0.45s ease, stroke-opacity 0.45s ease;
}

.wordmark:hover path {
  stroke: var(--gold);
  stroke-opacity: 1;
}

/* ==========================================================================
   18. Responsive
   ========================================================================== */

/* Полное меню требует около 1470px вместе с логотипом и правой группой:
   в полосе до 1440 поджимаем шаг и кегль, ниже 1240 уходим в шторку. */
@media (max-width: 1440px) {
  .nav__list { gap: 22px; margin-right: 28px; font-size: 14px; }
  .nav__actions { gap: 14px; }
}

@media (max-width: 1240px) {
  :root { --section-y: 76px; }

  .hero { min-height: 800px; }
  .hero__title { font-size: 60px; }
  .masthead__title { font-size: 46px; }
  .sealed__title { font-size: 48px; }
  .enquiry__title { font-size: 46px; }

  .bento { grid-auto-rows: 260px; }
  .enquiry { grid-template-columns: minmax(0, 1fr) 560px; }
  .sealed__body { grid-template-columns: minmax(0, 1fr) 380px; }
  .record__grid { gap: 24px; }
  .mark__value { font-size: 44px; }
  .mark:hover .mark__value { font-size: 48px; }
  .footer__register { grid-template-columns: 1fr 1fr 1fr; }
  .footer__brand { grid-column: 1 / -1; }

  .nav__list { display: none; }
  .nav__toggle { display: inline-flex; }
  .nav { gap: 16px; }
  .nav__actions { gap: 14px; margin-left: auto; }

  /* Drawer */
  .drawer {
    position: fixed;
    inset: 0;
    z-index: 90;
    display: flex;
    flex-direction: column;
    padding: 24px;
    overflow-y: auto;
    background: var(--plate);
    color: var(--plate-ink);
    transform: translateX(100%);
    visibility: hidden;
    transition: transform var(--move), visibility var(--move);
  }

  #nav-open:checked ~ .drawer {
    transform: translateX(0);
    visibility: visible;
  }
}

@media (max-width: 1120px) {
  .hero {
    background-image: url("../img/hero-light-1100.webp");
  }

  [data-theme="dark"] .hero {
    background-image: url("../img/hero-dark-1100.webp");
  }

  .hero--v2 { background-image: url("../img/hero-light-2-1100.webp"); }
  [data-theme="dark"] .hero--v2 { background-image: url("../img/hero-dark-2-1100.webp"); }

  .bento {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-auto-rows: 260px;
  }

  .plate--lead { grid-column: span 2; }

  .record__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .badges { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .badge:nth-child(2) { border-right: 0; }
  .badge:nth-child(1),
  .badge:nth-child(2) { border-bottom: 1px solid rgba(var(--ink-rgb), 0.35); }

  .steps__grid { gap: 32px; }
  .step__title { font-size: 28px; }

  .offices { grid-template-columns: repeat(2, 1fr); }
  .office:nth-child(2) { border-right: 0; }
  .office { padding-right: 24px; }
}

@media (max-width: 1024px) {
  :root { --gutter: 40px; --section-y: 64px; }

  .hero { min-height: 0; }
  .hero__body { gap: 40px; padding-block: 56px 48px; }
  .hero__title { font-size: 52px; }
  .hero__lead { font-size: 18px; }
  .hero__stats { flex-wrap: wrap; gap: 24px 32px; }
  .hero__stats .figure { flex: 0 0 calc(33.333% - 22px); }

  .searchbar__row { grid-template-columns: 1fr 1fr; }
  .searchbar__submit { grid-column: span 2; height: 58px; }

  .masthead {
    flex-direction: column;
    align-items: flex-start;
    gap: 28px;
  }

  .masthead__aside {
    width: 100%;
    justify-content: space-between;
    text-align: left;
  }

  .railhead { text-align: left; }

  .quotes__deck { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .quotes__head { flex-wrap: wrap; gap: 24px; }

  .journal { grid-template-columns: minmax(0, 1fr); }
  .article { border-right: 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.4); }
  .article:last-child { border-bottom: 0; }
  .article__frame { height: 300px; }

  .enquiry { grid-template-columns: minmax(0, 1fr); }
  .enquiry__aside {
    border-right: 0;
    border-bottom: 1px solid rgba(var(--ink-rgb), 0.4);
  }

  .sealed__body {
    grid-template-columns: minmax(0, 1fr);
    gap: 36px;
    padding: 120px 32px 40px;
  }

  .sealed__spine { display: none; }

  .steps__grid { grid-template-columns: minmax(0, 1fr); gap: 44px; }
  .steps__line { display: none; }

  .footer__subscribe { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .credentials { align-items: flex-start; text-align: left; }
}

@media (max-width: 860px) {
  :root { --gutter: 26px; --section-y: 56px; }

  .topbar {
    height: auto;
    padding-block: 10px;
    flex-wrap: wrap;
    gap: 8px 20px;
    font-size: 12px;
    letter-spacing: 0.1em;
  }

  .topbar__group { gap: 16px; flex-wrap: wrap; }
  .topbar__cities { display: none; }

  .hero__title { font-size: 42px; }
  .hero__stats .figure { flex: 0 0 calc(50% - 16px); }

  .masthead__title { font-size: 38px; }
  .sealed__title { font-size: 38px; }
  .enquiry__title { font-size: 38px; }

  .bento {
    grid-template-columns: minmax(0, 1fr);
    grid-auto-rows: 300px;
  }

  .plate--lead { grid-column: span 1; grid-row: span 1; }
  .plate--lead .plate__title { font-size: 26px; }

  .record__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .record__line { display: none; }

  .badges { grid-template-columns: minmax(0, 1fr); }
  .badge { border-right: 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.35); }
  .badge:last-child { border-bottom: 0; }

  .deskbar {
    grid-template-columns: minmax(0, 1fr);
    gap: 14px;
    text-align: left;
  }

  .row {
    grid-template-columns: 44px minmax(0, 1fr);
    align-items: start;
    padding: 18px 24px;
  }

  .row__label { grid-column: 2; }
  .row__input,
  .row__chips { grid-column: 2; }
  .row__input { font-size: 21px; }

  .enquiry__aside { padding: 32px 24px; }
  .enquiry__submitrow { padding: 24px; }

  .offices { grid-template-columns: minmax(0, 1fr); }
  .office {
    border-right: 0;
    border-bottom: 1px solid rgba(var(--c-cream-rgb), 0.14);
    padding: 22px 0;
  }
  .office:last-child { border-bottom: 0; }

  .footer__register { grid-template-columns: 1fr 1fr; gap: 32px; }
  .footer__strip { flex-direction: column; align-items: flex-start; gap: 24px; }
  .footer__strip-title { font-size: 26px; }
  .footer__prefs { flex-direction: column; align-items: flex-start; gap: 20px; }
  .footer__baseline { flex-direction: column; align-items: flex-start; gap: 12px; }

  .auth__panel { grid-template-columns: minmax(0, 1fr); }
  .auth__aside { display: none; }
  .auth__panel,
  #auth-mode-register:checked ~ .auth .auth__panel { height: auto; }
  .auth__main { padding: 36px 28px 28px; }
  .auth__title { font-size: 32px; }

  .sealed__pills { flex-direction: column; align-items: flex-start; gap: 12px; }
  .sealed__pill-group { justify-content: flex-start; }
  .sealed__body { padding-top: 190px; }
}

@media (max-width: 600px) {
  :root { --gutter: 18px; --section-y: 48px; }

  body { font-size: 16px; }

  .hero__title { font-size: 34px; }
  .hero__kicker { letter-spacing: 0.22em; }
  .hero__lead { font-size: 17px; }
  .hero__buttons .btn { width: 100%; }

  .hero__stats { gap: 20px; }
  .hero__stats .figure { flex: 0 0 calc(50% - 10px); }
  .hero__stats .figure__value { font-size: 24px; }

  .logo img,
  .drawer__head img { width: 120px; height: 36px; }
  .nav { height: 68px; }
  .nav__actions .nav__signin { display: none; }

  .newsletter__field { flex-wrap: wrap; }
  .newsletter__field input { flex: 1 0 100%; }
  .newsletter__submit { margin-top: 12px; }

  .searchbar__row { grid-template-columns: minmax(0, 1fr); }
  .searchbar__submit { grid-column: span 1; }
  .field { padding: 14px 18px; }
  .field__input { font-size: 20px; }

  .masthead__title { font-size: 32px; }
  .masthead__aside { flex-direction: column; align-items: flex-start; gap: 20px; }
  .kicker { flex-wrap: wrap; gap: 10px; }
  .kicker::after { display: none; }

  .scale { display: none; }

  .rail { margin-top: 28px; }
  .city,
  .advisor { flex-basis: 280px; width: 280px; }
  .city { padding: 26px 20px; }
  .city__name { font-size: 34px; }
  .city:hover .city__name { font-size: 38px; }

  .sealed { min-height: 0; }
  .sealed__body { min-height: 0; padding: 180px 22px 32px; }
  .sealed__title { font-size: 30px; }
  .sealed__stats { gap: 26px; }
  .request { padding: 24px 22px; }

  .step__head { height: 88px; }
  .step__badge,
  .step__num { width: 88px; height: 88px; }
  .step__num { font-size: 34px; }
  .step__title { font-size: 26px; }

  .record__grid { grid-template-columns: minmax(0, 1fr); }
  .mark__value { font-size: 40px; }
  .mark:hover .mark__value { font-size: 40px; }
  .record__readout { flex-direction: column; align-items: flex-start; gap: 12px; }

  .article__frame { height: 220px; }
  .article__title { font-size: 24px; }

  .quote__text { font-size: 25px; }
  .quote__foot { flex-wrap: wrap; gap: 16px; }
  .quote__weeks { margin-left: 0; align-items: flex-start; }

  .enquiry__title { font-size: 30px; }
  .enquiry__submitrow { flex-direction: column; align-items: stretch; }
  .enquiry__submitrow .btn { width: 100%; }

  .steps__foot { flex-direction: column; align-items: flex-start; gap: 20px; }

  .footer__register { grid-template-columns: minmax(0, 1fr); }
  .newsletter__field input { font-size: 22px; }

  .register { grid-template-columns: minmax(0, 1fr) !important; }
  .register > * { border-right: 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.4); }
  .register > *:last-child { border-bottom: 0; }

  .footrule { gap: 12px; }
  .footrule__span { display: none; }
}

@media (max-width: 380px) {
  :root { --gutter: 14px; }

  .hero__title { font-size: 28px; }
  /* На 320px строка логотипа шире экрана на два пикселя — сводим просветы. */
  .nav__actions { gap: 8px; }
  .icon-btn,
  .nav__toggle { width: 44px; height: 44px; }
  .city,
  .advisor { flex-basis: 250px; width: 250px; }
  .footer__pill { padding: 15px 22px; }
}

/* ==========================================================================
   19. Touch devices — everything hover reveals must be visible
   ========================================================================== */

@media (hover: none) {
  .principles__grid:hover .rule-card { opacity: 1; }

  .bento:hover .plate,
  .journal:hover .article:not(:hover) .frame__veil,
  .rail--framed:hover .advisor:not(:hover) .frame__veil { opacity: 0; }

  .plate__detail,
  .article__pull { height: auto; opacity: 1; }

  .frame__veil { opacity: 0 !important; }

  .nav__item:hover > .menu,
  .menu__item:hover > .menu {
    opacity: 0;
    visibility: hidden;
  }

  .nav__item:focus-within > .menu,
  .menu__item:focus-within > .menu {
    opacity: 1;
    visibility: visible;
  }

  .city__frame { height: 240px; }
  .advisor:hover { transform: none; box-shadow: none; }
  .article:hover { transform: none; box-shadow: none; }
}

/* ==========================================================================
   20. Interior pages — shared chrome and page header
   ========================================================================== */

/* Внутренние страницы: шапка стоит на цвете страницы, а не поверх фотографии,
   поэтому обе волосяные линии рисуются чернилами, а не кремом. */
.chrome {
  position: relative;
  z-index: 30;
  background: var(--bg);
  color: var(--ink);
}

.chrome .topbar { border-bottom-color: rgba(var(--ink-rgb), 0.12); }
.chrome .nav { border-bottom: 1px solid rgba(var(--ink-rgb), 0.1); }
.chrome .icon-btn,
.chrome .nav__toggle { border-color: rgba(var(--ink-rgb), 0.45); }

/* --- preloader ------------------------------------------------------------
   Знак заполняется снизу вверх, пока страница грузится: под бледным
   контуром поднимается полный. Скрипт снимает завесу по load; без скрипта
   завесы нет вовсе (html без .js), чтобы страница никогда не застряла. */
.preloader {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--bg);
  transition: opacity 420ms ease, visibility 0s linear 420ms;
}

html:not(.js) .preloader { display: none; }

.preloader--done {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.preloader__logo {
  position: relative;
  display: block;
  width: clamp(172px, 8.98vw, 230px);
  aspect-ratio: 172 / 51;
}

.preloader__ghost,
.preloader__fill {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.preloader__ghost { opacity: 0.18; }

.preloader__fill {
  clip-path: inset(100% 0 0 0);
  animation: preloader-fill 1400ms cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes preloader-fill {
  to { clip-path: inset(0 0 0 0); }
}

@media (prefers-reduced-motion: reduce) {
  .preloader__fill { animation-duration: 1ms; }
  .preloader { transition-duration: 1ms; }
}

/* Подложки под фотографии нарисованы в двух версиях — тема выбирает свою.
   Когда придут настоящие снимки, второй <img> из слота просто уходит. */
.ph--dark { display: none; }
[data-theme="dark"] .ph--light { display: none; }
[data-theme="dark"] .ph--dark { display: block; }

.logo__dark { display: none; }
[data-theme="dark"] .logo__light { display: none; }
[data-theme="dark"] .logo__dark { display: block; }

.page { padding-block: 5px clamp(56px, 3.52vw, 90px); }

/* Разделители держат вертикальный ритм: у самих секций отступов сверху и снизу нет. */
.rule {
  margin-block: clamp(48px, 3.12vw, 80px);
  height: 1px;
  background: rgba(var(--ink-rgb), 0.18);
}

/* --- шапка страницы ------------------------------------------------------- */

.pagehead {
  position: relative;
  padding-bottom: 30px;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
}

.crumbs {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  margin-bottom: clamp(30px, 1.95vw, 50px);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.crumbs__trail,
.crumbs__meta {
  display: flex;
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
}

.crumbs__trail { gap: 12px; }
.crumbs__trail a { color: var(--muted); }
.crumbs__trail a:hover { color: var(--accent); }
.crumbs__trail li[aria-current] { color: var(--ink); }

.crumbs__trail li + li::before {
  content: "/";
  margin-right: 12px;
  color: rgba(var(--ink-rgb), 0.28);
}

.crumbs__meta {
  gap: 20px;
  color: var(--muted);
}

.crumbs__meta li + li::before {
  content: "|";
  margin-right: 20px;
  color: rgba(var(--ink-rgb), 0.24);
}

.pagehead__dot { display: flex; align-items: center; gap: 10px; }

.pagehead__dot::after {
  content: "";
  order: -1;
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--gold);
}

/* Контурный знак за заголовком: обрезан сверху, чтобы не наезжать на линию меню. */
.pagehead__mark {
  position: absolute;
  top: 10px;
  right: 0;
  bottom: 0;
  left: 34%;
  overflow: hidden;
  pointer-events: none;
}

.pagehead__mark img {
  position: absolute;
  top: 0;
  right: 0;
  width: auto;
  height: clamp(90px, 7.30vw, 187px);
  opacity: 0.16;
}

.pagehead__mark-dark { display: none; }
[data-theme="dark"] .pagehead__mark-light { display: none; }
[data-theme="dark"] .pagehead__mark-dark { display: block; opacity: 0.1; }

.pagehead__row {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1580fr) minmax(0, 760fr);
  gap: clamp(40px, 3.91vw, 100px);
  align-items: end;
}

.pagehead__title {
  font-size: clamp(34px, 4.53vw, 116px);
  line-height: 0.98;
  letter-spacing: -0.025em;
}

.pagehead__lead {
  margin-bottom: -12px;
  text-align: right;
  font-size: clamp(16px, 0.82vw, 21px);
  line-height: 1.6;
  color: var(--muted);
}

/* --- общая шапка секции --------------------------------------------------- */

.kicker--plate {
  letter-spacing: 0.28em;
  font-size: 12px;
}

.kicker--plate::after { width: clamp(50px, 3.52vw, 90px); }

.section-head {
  display: grid;
  grid-template-columns: minmax(0, 1500fr) minmax(0, 820fr);
  gap: clamp(40px, 4.69vw, 120px);
  align-items: end;
}

.section-head__title {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(30px, 3.12vw, 80px);
  line-height: 1.03;
  letter-spacing: -0.024em;
}

.section-head__intro {
  margin-bottom: 10px;
  text-align: right;
  font-size: clamp(16px, 0.78vw, 20px);
  line-height: 1.7;
  color: var(--muted);
}

.section-head__aside {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 22px;
}

.scroll-hint {
  display: flex;
  align-items: center;
  gap: 16px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--faint);
}

.scroll-hint__rule {
  width: 70px;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.3);
}

.closing-row {
  display: flex;
  align-items: center;
  gap: 24px;
  padding-top: 26px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.22);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--faint);
}

.closing-row__lead { color: var(--ink); }

.closing-row__rule {
  flex: 1;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.14);
}

/* ==========================================================================
   21. About — manifesto plate (Plate 01)
   ========================================================================== */

/* Ширину задаём явно: с одним только min-height браузер выводил ширину из
   соотношения сторон и плита вылезала за колонку. */
.manifesto {
  position: relative;
  width: 100%;
  aspect-ratio: 2440 / 820;
  margin-top: clamp(40px, 2.34vw, 60px);
  border-radius: var(--r-card);
  overflow: hidden;
  background: var(--bg);
}

/* Тонкий кант по краю снимка. Рисуем тенью, а не рамкой: рамка увела бы
   размер плиты и в 1px пропадала бы при дробном масштабе браузера. */
.manifesto::after {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16);
  pointer-events: none;
}

[data-theme="dark"] .manifesto::after { box-shadow: inset 0 0 0 1px rgba(var(--c-cream-rgb), 0.12); }

.manifesto__photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Сплошная заливка поверх фото убрана: в эталоне она была 55%, но рисовалась
   при пустом слоте — с настоящим снимком фасад выцветал в молоко. Затемнение
   под текстом целиком держит направленный сход ниже. */
.manifesto__wash {
  position: absolute;
  inset: 0;
  background: rgba(var(--c-paper-rgb), 0.06);
}

.manifesto__veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    100deg,
    rgba(var(--c-paper-rgb), 0.97) 0%,
    rgba(var(--c-paper-rgb), 0.94) 34%,
    rgba(var(--c-paper-rgb), 0.62) 58%,
    rgba(var(--c-paper-rgb), 0.06) 84%,
    rgba(var(--c-paper-rgb), 0) 100%
  );
}

[data-theme="dark"] .manifesto__wash { background: rgba(var(--c-plate-rgb), 0.12); }

[data-theme="dark"] .manifesto__veil {
  background: linear-gradient(
    100deg,
    rgba(var(--c-plate-rgb), 0.96) 0%,
    rgba(var(--c-plate-rgb), 0.9) 34%,
    rgba(var(--c-plate-rgb), 0.56) 60%,
    rgba(var(--c-plate-rgb), 0.06) 86%,
    rgba(var(--c-plate-rgb), 0) 100%
  );
}

/* Рамка нарисована тенью, а не бордюром: бордюр в 1px пропадает при дробном
   масштабе браузера — об этом прямо сказано в хендоффе. */
.manifesto__frame {
  position: absolute;
  inset: clamp(16px, 1.17vw, 30px);
  border-radius: 6px;
  box-shadow: inset 0 0 0 1.5px rgba(var(--ink-rgb), 0.32);
  pointer-events: none;
}

[data-theme="dark"] .manifesto__frame { box-shadow: inset 0 0 0 1.5px rgba(var(--c-gold-rgb), 0.42); }

.manifesto__tick {
  position: absolute;
  width: 26px;
  height: 26px;
  pointer-events: none;
}

.manifesto__tick--tl {
  top: clamp(24px, 2.19vw, 56px);
  left: clamp(24px, 2.19vw, 56px);
  border-top: 1px solid rgba(var(--ink-rgb), 0.4);
  border-left: 1px solid rgba(var(--ink-rgb), 0.4);
}

.manifesto__tick--bl {
  bottom: clamp(24px, 2.19vw, 56px);
  left: clamp(24px, 2.19vw, 56px);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.4);
  border-left: 1px solid rgba(var(--ink-rgb), 0.4);
}

[data-theme="dark"] .manifesto__tick { border-color: rgba(var(--c-gold-rgb), 0.55); }

.manifesto__body {
  position: absolute;
  left: clamp(26px, 4.30vw, 110px);
  top: clamp(30px, 4.06vw, 104px);
  bottom: clamp(30px, 4.06vw, 104px);
  width: min(53%, 1300px);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 24px;
}

.manifesto__quote {
  display: flex;
  flex-direction: column;
  gap: clamp(18px, 1.17vw, 30px);
}

.manifesto__line {
  margin: 0;
  font-weight: 400;
  font-family: var(--display);
  font-style: italic;
  font-size: clamp(28px, 3.20vw, 82px);
  line-height: 1.08;
  letter-spacing: -0.025em;
  text-wrap: balance;
}

.manifesto__line span {
  font-style: normal;
  color: var(--accent);
}

[data-theme="dark"] .manifesto__line span { color: var(--gold); }

.manifesto__text {
  max-width: 900px;
  font-size: clamp(16px, 0.78vw, 20px);
  line-height: 1.65;
  color: var(--muted);
}

.manifesto__meta {
  display: flex;
  align-items: center;
  gap: 24px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
}

.manifesto__meta span + span::before {
  content: "|";
  margin-right: 24px;
  color: rgba(var(--ink-rgb), 0.28);
}

.manifesto__meta span:last-child { color: var(--faint); }

.manifesto__seal {
  position: absolute;
  right: clamp(24px, 2.19vw, 56px);
  top: clamp(24px, 2.19vw, 56px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: clamp(84px, 5.16vw, 132px);
  height: clamp(84px, 5.16vw, 132px);
  border: 1px solid rgba(var(--ink-rgb), 0.35);
  border-radius: 50%;
  background: rgba(var(--c-paper-rgb), 0.72);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--muted);
  text-align: center;
}

.manifesto__seal b {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(22px, 1.25vw, 32px);
  letter-spacing: 0.02em;
  color: var(--ink);
}

[data-theme="dark"] .manifesto__seal {
  border-color: rgba(var(--c-gold-rgb), 0.5);
  background: rgba(var(--c-plate-rgb), 0.6);
  color: var(--muted);
}

[data-theme="dark"] .manifesto__seal b { color: var(--gold); }

.manifesto__dim {
  position: absolute;
  right: clamp(24px, 2.19vw, 56px);
  bottom: clamp(24px, 2.19vw, 56px);
  display: flex;
  align-items: center;
  gap: 14px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--muted);
}

.manifesto__dim::before {
  content: "";
  width: 64px;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.35);
}

[data-theme="dark"] .manifesto__dim { color: var(--gold); }
[data-theme="dark"] .manifesto__dim::before { background: rgba(var(--c-gold-rgb), 0.5); }

/* ==========================================================================
   22. About — story (Plate 02)
   ========================================================================== */

.story {
  display: grid;
  grid-template-columns: clamp(120px, 7.81vw, 200px) minmax(0, 1fr);
  gap: clamp(32px, 2.73vw, 70px);
  align-items: start;
}

.story__margin {
  display: flex;
  flex-direction: column;
  gap: 40px;
  padding-top: 8px;
  padding-right: clamp(20px, 1.56vw, 40px);
  border-right: 1px solid rgba(var(--ink-rgb), 0.16);
}

.story__plate {
  display: flex;
  flex-direction: column;
  gap: 14px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
}

.story__plate-num { color: var(--accent); letter-spacing: 0.28em; }
.story__plate-label { color: var(--muted); }

.ledger { display: flex; flex-direction: column; }

.ledger__row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 18px 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.12);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
}

.ledger__row:first-child { border-top-color: rgba(var(--ink-rgb), 0.22); }
.ledger__row:last-child { border-bottom: 1px solid rgba(var(--ink-rgb), 0.22); }
.ledger__row span:first-child { color: var(--faint); }

.story__filed {
  display: flex;
  flex-direction: column;
  gap: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
}

.story__filed span:first-child { color: var(--faint); }

.story__filed b {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(32px, 2.03vw, 52px);
  line-height: 1;
  letter-spacing: 0;
  color: var(--ink);
}

.story__main {
  display: flex;
  flex-direction: column;
  gap: clamp(36px, 2.50vw, 64px);
}

.story__head {
  display: grid;
  grid-template-columns: minmax(0, 1370fr) minmax(0, 700fr);
  gap: clamp(36px, 3.91vw, 100px);
  align-items: end;
}

.story__title {
  font-size: clamp(32px, 3.59vw, 92px);
  line-height: 1;
  letter-spacing: -0.026em;
}

.story__intro {
  margin-bottom: 10px;
  font-size: clamp(16px, 0.78vw, 20px);
  line-height: 1.7;
  color: var(--muted);
}

/* --- пункт договора ------------------------------------------------------- */

.clause {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(150px, 10.16vw, 260px);
  gap: clamp(32px, 2.73vw, 70px);
  align-items: center;
  padding: clamp(34px, 3.05vw, 78px) clamp(26px, 3.52vw, 90px);
  border-radius: var(--r-card);
  box-shadow: inset 0 0 0 1.5px rgba(var(--ink-rgb), 0.26);
  background: linear-gradient(180deg, rgba(var(--c-gold-rgb), 0.13) 0%, rgba(var(--c-gold-rgb), 0) 62%);
}

/* Ярлык сидит верхом на рамке — фон страницы прорезает линию. */
.clause__notch {
  position: absolute;
  top: -11px;
  left: clamp(30px, 2.89vw, 74px);
  padding: 0 18px;
  background: var(--bg);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--accent);
}

.clause__tick {
  position: absolute;
  width: 24px;
  height: 24px;
}

.clause__tick--tl {
  top: 26px;
  left: 26px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.38);
  border-left: 1px solid rgba(var(--ink-rgb), 0.38);
}

.clause__tick--bl {
  bottom: 26px;
  left: 26px;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.38);
  border-left: 1px solid rgba(var(--ink-rgb), 0.38);
}

.clause__tick--br {
  bottom: 26px;
  right: 26px;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.38);
  border-right: 1px solid rgba(var(--ink-rgb), 0.38);
}

.clause__body {
  display: flex;
  flex-direction: column;
  gap: clamp(24px, 1.48vw, 38px);
}

.clause__quote {
  margin: 0;
  font-family: var(--display);
  font-style: italic;
  font-size: clamp(24px, 2.58vw, 66px);
  line-height: 1.14;
  letter-spacing: -0.018em;
  text-wrap: balance;
}

.clause__quote span {
  font-style: normal;
  color: var(--accent);
}

.clause__sign {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 22px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--muted);
}

.clause__sign b {
  font-family: var(--display);
  font-style: italic;
  font-weight: 400;
  font-size: clamp(20px, 1.09vw, 28px);
  letter-spacing: 0;
  text-transform: none;
  color: var(--ink);
}

.clause__sign-rule {
  width: 90px;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.26);
}

.clause__sep { color: rgba(var(--ink-rgb), 0.28); }
.clause__never { color: var(--faint); }

.clause__seal {
  justify-self: end;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  width: clamp(120px, 8.36vw, 214px);
  height: clamp(120px, 8.36vw, 214px);
  border-radius: 50%;
  box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.55), inset 0 0 0 8px rgba(var(--accent-rgb), 0.28);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  text-align: center;
  color: var(--accent);
}

.clause__seal b {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(26px, 1.56vw, 40px);
  line-height: 1;
  letter-spacing: 0.01em;
}

.clause__seal span:last-child { color: var(--muted); }

/* --- экспонаты ------------------------------------------------------------ */

.exhibits { display: flex; flex-direction: column; }

.exhibits__head {
  display: flex;
  align-items: center;
  gap: 20px;
  padding-bottom: 22px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--faint);
}

.exhibits__rule {
  flex: 1;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.16);
}

.exhibits__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid rgba(var(--ink-rgb), 0.22);
}

.exhibit {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: clamp(28px, 1.80vw, 46px) clamp(24px, 2.73vw, 70px) 0 0;
}

.exhibit + .exhibit {
  padding-left: clamp(24px, 2.73vw, 70px);
  border-left: 1px solid rgba(var(--ink-rgb), 0.16);
}

.exhibit:last-child { padding-right: 0; }

.exhibit__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}

.exhibit__figure {
  font-family: var(--display);
  font-size: clamp(36px, 3.36vw, 86px);
  line-height: 0.9;
}

.exhibit__chip {
  padding: 7px 12px;
  border-radius: 3px;
  box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.5);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
  white-space: nowrap;
}

.exhibit__rule {
  width: 56px;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.35);
}

.exhibit__text {
  font-size: clamp(16px, 0.74vw, 19px);
  line-height: 1.72;
  color: var(--muted);
}

/* ==========================================================================
   23. About — principles, timeline, offices, advisors
   ========================================================================== */

.principles,
.timeline,
.desks,
.people {
  display: flex;
  flex-direction: column;
  gap: clamp(32px, 2.19vw, 56px);
}

.principles { gap: clamp(40px, 2.73vw, 70px); }

.principles__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(36px, 3.91vw, 100px);
}

.rule-card {
  display: flex;
  flex-direction: column;
}

.rule-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 18px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.rule-card__num {
  letter-spacing: 0.26em;
  color: var(--accent);
}

/* --- наведение на правило ---------------------------------------------------
   Правило — это пункт в реестре, поэтому наведение читается как «его сейчас
   подписывают»: по верхней черте слева направо проходит красная линия, снизу
   так же протягивается черта под доказательством, цифра выходит вперёд, а
   соседние правила уходят в тень. */

.rule-card {
  transition: opacity var(--mid);
}

.principles__grid:hover .rule-card { opacity: 0.45; }
.principles__grid .rule-card:hover { opacity: 1; }

.rule-card__bar {
  position: relative;
  height: 2px;
  background: var(--ink);
}

.rule-card__bar--accent { background: var(--accent); }

.rule-card__bar::after {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 0;
  background: var(--accent);
  transition: width 0.55s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.rule-card:hover .rule-card__bar::after { width: 100%; }

/* У третьего правила черта красная уже в покое — ему остаётся утолщение. */
.rule-card__bar--accent::after { background: var(--ink); }
.rule-card:hover .rule-card__bar--accent::after { width: 0; }

.rule-card__bar--accent {
  transition: box-shadow var(--mid);
}

.rule-card:hover .rule-card__bar--accent {
  box-shadow: 0 1px 0 0 var(--accent);
}

.rule-card__num,
.rule-card__head span:last-child {
  transition: color var(--mid), letter-spacing var(--mid);
}

.rule-card:hover .rule-card__num { letter-spacing: 0.36em; }
.rule-card:hover .rule-card__head span:last-child { color: var(--accent); }

.rule-card__title { transition: color var(--mid); }

.rule-card__evidence {
  position: relative;
  transition: color var(--mid);
}

.rule-card__evidence::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 0;
  width: 0;
  height: 1px;
  background: var(--accent);
  transition: width 0.55s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.rule-card:hover .rule-card__evidence::before { width: 100%; }
.rule-card:hover .rule-card__evidence { color: var(--accent); }

.rule-card__evidence b {
  transition: color var(--mid), transform var(--move);
}

.rule-card:hover .rule-card__evidence b {
  color: var(--accent);
  transform: translateY(-3px);
}

.rule-card__title {
  margin-top: clamp(22px, 1.33vw, 34px);
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(24px, 2.19vw, 56px);
  line-height: 1.06;
  letter-spacing: -0.022em;
  text-wrap: balance;
}

.rule-card__text {
  margin: 26px 0 40px;
  font-size: clamp(16px, 0.78vw, 20px);
  line-height: 1.74;
  color: var(--muted);
}

/* Прижатая книзу строка доказательства держит три линии на одной высоте
   независимо от длины абзаца. */
.rule-card__evidence {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  margin-top: auto;
  padding-top: 22px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--muted);
}

.rule-card__evidence b {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(26px, 1.56vw, 40px);
  line-height: 1;
  letter-spacing: 0;
  color: var(--ink);
}

/* --- хроника -------------------------------------------------------------- */

.rail--entries,
.rail--desks {
  margin-top: 0;
  padding-bottom: 16px;
  border: 0;
}

.entry {
  flex: 0 0 clamp(300px, 23.44vw, 600px);
  width: clamp(300px, 23.44vw, 600px);
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
  padding-right: clamp(26px, 2.34vw, 60px);
  box-sizing: border-box;
}

/* Последняя запись без правого поля — ряд заканчивается ровно по линии сетки. */
.entry--last {
  flex-basis: clamp(274px, 21.09vw, 540px);
  width: clamp(274px, 21.09vw, 540px);
  padding-right: 0;
}

.entry__meta {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  padding-bottom: 20px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.entry--last .entry__meta span:first-child { color: var(--accent); }

.entry__axis {
  position: relative;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.28);
}

.entry__axis::before {
  content: "";
  position: absolute;
  left: 0;
  top: -4px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--ink);
}

.entry--last .entry__axis::before { background: var(--accent); }

.entry__axis::after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 1px;
  height: 22px;
  background: rgba(var(--ink-rgb), 0.28);
}

.entry__year {
  font-weight: 400;
  margin-top: clamp(24px, 1.56vw, 40px);
  font-family: var(--display);
  font-size: clamp(40px, 3.36vw, 86px);
  line-height: 0.9;
  letter-spacing: -0.02em;
}

.entry--last .entry__year { color: var(--accent); }

/* В эталоне снимок 480 при колонке 540 — не во всю ширину. */
.entry__frame {
  margin-top: 32px;
  width: 88.9%;
  aspect-ratio: 3 / 2;
}

.entry__text {
  max-width: 88.9%;
  margin-top: 28px;
  font-size: clamp(16px, 0.74vw, 19px);
  line-height: 1.7;
  color: var(--muted);
}

/* --- офисы ---------------------------------------------------------------- */

.desk {
  flex: 0 0 clamp(520px, 48.83vw, 1250px);
  width: clamp(520px, 48.83vw, 1250px);
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
  gap: 26px;
  padding-right: clamp(26px, 2.34vw, 60px);
  box-sizing: border-box;
}

.desk--last {
  flex-basis: clamp(494px, 46.48vw, 1190px);
  width: clamp(494px, 46.48vw, 1190px);
  padding-right: 0;
}

.desk__frame {
  width: 100%;
  aspect-ratio: 1190 / 620;
}

.desk__info {
  display: flex;
  flex-direction: column;
  gap: 22px;
  padding-top: 24px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.22);
}

.desk__info--first { border-top-color: var(--accent); }

.desk__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
}

.desk__city {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(30px, 2.03vw, 52px);
  line-height: 1;
  letter-spacing: -0.02em;
}

.desk__note {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--faint);
}

.desk__grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px clamp(24px, 2.34vw, 60px);
  font-family: var(--mono);
  font-size: 13px;
  letter-spacing: 0.1em;
  line-height: 1.6;
  color: var(--muted);
}

.desk__grid a,
.desk__advisor { color: var(--ink); }
.desk__grid a:hover { color: var(--accent); }

/* --- советники ------------------------------------------------------------ */

.people__grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: clamp(20px, 1.56vw, 40px);
}

.person {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.person__frame {
  width: 100%;
  aspect-ratio: 373 / 500;
}

.person__info {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-top: 20px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.22);
}

.person__name {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(20px, 1.33vw, 34px);
  line-height: 1.1;
}

.person__city,
.person__spec {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.person__city { color: var(--accent); letter-spacing: 0.22em; }
.person__spec { color: var(--muted); }

.people__cta {
  justify-self: end;
  margin-bottom: 10px;
  height: clamp(52px, 2.42vw, 62px);
  padding: 0 34px;
  font-size: 12px;
  letter-spacing: 0.2em;
}

/* ==========================================================================
   24. About — responsive
   25. About — card hovers
   ========================================================================== */

@media (max-width: 1240px) {
  .people__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1120px) {
  .principles__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .exhibits__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .exhibit:nth-child(3) {
    padding-left: 0;
    border-left: 0;
    border-top: 1px solid rgba(var(--ink-rgb), 0.16);
  }
}

@media (max-width: 1024px) {
  .pagehead__row,
  .section-head,
  .story__head {
    grid-template-columns: minmax(0, 1fr);
    gap: 26px;
  }

  .pagehead__lead,
  .section-head__intro { text-align: left; }

  .section-head__aside { align-items: flex-start; }

  .people__cta { justify-self: start; margin-bottom: 0; }

  /* Знак за заголовком мешает на узком экране — прячем. */
  .pagehead__mark { display: none; }

  .story {
    grid-template-columns: minmax(0, 1fr);
    gap: 40px;
  }

  .story__margin {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 32px 48px;
    padding-right: 0;
    padding-bottom: 32px;
    border-right: 0;
    border-bottom: 1px solid rgba(var(--ink-rgb), 0.16);
  }

  .ledger { flex: 1 1 260px; }

  .clause {
    grid-template-columns: minmax(0, 1fr);
    gap: 36px;
  }

  .clause__seal { justify-self: start; }
}

@media (max-width: 860px) {
  .crumbs { flex-direction: column; align-items: flex-start; gap: 14px; }

  .principles__grid,
  .exhibits__grid { grid-template-columns: minmax(0, 1fr); }

  .exhibit,
  .exhibit + .exhibit {
    padding: 32px 0 0;
    border-left: 0;
    border-top: 1px solid rgba(var(--ink-rgb), 0.16);
  }

  .exhibit:first-child { border-top: 0; padding-top: 0; }

  .people__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .manifesto {
    aspect-ratio: auto;
    min-height: 0;
  }

  .manifesto__body {
    position: static;
    width: auto;
    padding: 30px 24px;
    gap: 28px;
  }

  .manifesto__photo {
    position: absolute;
    inset: 0;
  }

  .manifesto__seal,
  .manifesto__dim { display: none; }

  .desk__grid { grid-template-columns: minmax(0, 1fr); gap: 8px; }
}

@media (max-width: 600px) {
  .manifesto__meta { flex-wrap: wrap; gap: 10px; }
  .manifesto__meta span + span::before { margin-right: 10px; }

  .clause { padding: 40px 22px; }
  .clause__tick { display: none; }
  .clause__sign { gap: 12px; }
  .clause__sign-rule { display: none; }

  .closing-row { flex-wrap: wrap; gap: 12px; }
  .closing-row__rule { display: none; }

  .crumbs__meta { flex-wrap: wrap; gap: 10px; }
  .crumbs__meta li + li::before { margin-right: 10px; }

  .people__grid { grid-template-columns: minmax(0, 1fr); }
  .person__frame { aspect-ratio: 3 / 2; }

  .scroll-hint__rule { display: none; }
}


/* ==========================================================================
   25. About — наведение на карточки
   ========================================================================== */

/* Один язык на всю страницу: снимок проясняется и чуть наезжает, под ним
   слева направо протягивается красная черта, соседние карточки уходят в тень.
   То же движение, что у карточек на главной. */

.entry,
.desk,
.person {
  transition: opacity var(--mid);
}

.rail--entries:hover .entry,
.rail--desks:hover .desk,
.people__grid:hover .person { opacity: 0.45; }

.rail--entries .entry:hover,
.rail--desks .desk:hover,
.people__grid .person:hover { opacity: 1; }

.entry .frame__veil,
.desk .frame__veil,
.person .frame__veil { opacity: 0.1; }

.entry:hover .frame__veil,
.desk:hover .frame__veil,
.person:hover .frame__veil { opacity: 0; }

.entry:hover .frame__img,
.desk:hover .frame__img,
.person:hover .frame__img { transform: scale(1.05); }

.entry:hover .frame__bar,
.desk:hover .frame__bar,
.person:hover .frame__bar { width: 100%; }

/* --- хроника: год выходит вперёд, точка на оси разрастается ---------------- */

.entry__meta span,
.entry__year { transition: color var(--mid), transform var(--move); }

.entry:hover .entry__meta span { color: var(--accent); }

.entry:hover .entry__year {
  color: var(--accent);
  transform: translateY(-4px);
}

.entry__axis::before { transition: transform var(--move), background var(--mid); }
.entry__axis::after { transition: height var(--move), background var(--mid); }

.entry:hover .entry__axis::before {
  transform: scale(1.5);
  background: var(--accent);
}

.entry:hover .entry__axis::after {
  height: 34px;
  background: var(--accent);
}

.entry__text { transition: color var(--mid); }
.entry:hover .entry__text { color: var(--ink); }

/* --- офисы: черта над подписью протягивается красным ----------------------- */

.desk__info { position: relative; }

.desk__info::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 0;
  width: 0;
  height: 1px;
  background: var(--accent);
  transition: width 0.55s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.desk:hover .desk__info::before { width: 100%; }

.desk__city,
.desk__note { transition: color var(--mid); }
.desk:hover .desk__note { color: var(--accent); }

.desk__advisor { transition: color var(--mid); }
.desk:hover .desk__advisor { color: var(--accent); }

/* --- советники: имя сдвигается, черта над подписью краснеет ---------------- */

.person__info { position: relative; }

.person__info::before {
  content: "";
  position: absolute;
  top: -1px;
  left: 0;
  width: 0;
  height: 1px;
  background: var(--accent);
  transition: width 0.55s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.person:hover .person__info::before { width: 100%; }

.person__name,
.person__spec { transition: color var(--mid), transform var(--move); }

.person:hover .person__name { transform: translateX(6px); }
.person:hover .person__spec { color: var(--ink); }

/* --- экспонаты в истории: чип заливается, цифра краснеет ------------------- */

.exhibit__figure,
.exhibit__chip,
.exhibit__rule { transition: color var(--mid), background var(--mid), width var(--move); }

.exhibit:hover .exhibit__figure { color: var(--accent); }

.exhibit:hover .exhibit__chip {
  background: var(--accent);
  color: var(--bg);
}

.exhibit:hover .exhibit__rule { width: 96px; }

/* --- строки описи в левой колонке ------------------------------------------ */

.ledger__row { transition: color var(--mid), padding-left var(--mid); }

.ledger__row:hover {
  color: var(--accent);
  padding-left: 6px;
}

@media (hover: none) {
  .rail--entries:hover .entry,
  .rail--desks:hover .desk,
  .people__grid:hover .person { opacity: 1; }

  .entry .frame__veil,
  .desk .frame__veil,
  .person .frame__veil { opacity: 0; }
}

/* ==========================================================================
   26. Agents — советник месяца, сетка советников, города, вакансии
   ========================================================================== */

/* Разделители держат ритм страницы: между секциями 120px с каждой стороны линии
   (40 из шага колонки + 80 из полей самого разделителя), как в эталоне. */
.agpage {
  display: flex;
  flex-direction: column;
  gap: clamp(20px, 1.56vw, 40px);
}

/* --- 1. Советник месяца --------------------------------------------------- */

.agfeat {
  margin-top: clamp(30px, 2.34vw, 60px);
  display: grid;
  grid-template-columns: minmax(0, 1080fr) minmax(0, 1260fr);
  gap: clamp(40px, 3.91vw, 100px);
  align-items: start;
}

/* Ширину задаёт колонка, высоту — пропорция плиты. Без width:100% браузер
   выводит ширину из высоты растянутой строки, и плита вылезает на текст. */
.agfeat__plate {
  position: relative;
  width: 100%;
  aspect-ratio: 1080 / 920;
}

.agfeat__photo {
  position: absolute;
  inset: 0;
  display: block;
}

/* Внутренняя рамка нарисована тенью, а не рамкой: на дробном зуме рамка пропадает. */
.agfeat__inner {
  position: absolute;
  inset: clamp(10px, 0.86vw, 22px);
  border-radius: var(--r-inner);
  box-shadow: inset 0 0 0 1.5px rgba(var(--ink-rgb), 0.26);
  pointer-events: none;
}

.agfeat__tick {
  position: absolute;
  width: clamp(12px, 0.86vw, 22px);
  height: clamp(12px, 0.86vw, 22px);
  pointer-events: none;
}

.agfeat__tick--tl {
  top: clamp(22px, 1.72vw, 44px);
  left: clamp(22px, 1.72vw, 44px);
  border-top: 1px solid rgba(var(--ink-rgb), 0.4);
  border-left: 1px solid rgba(var(--ink-rgb), 0.4);
}

.agfeat__tick--br {
  right: clamp(22px, 1.72vw, 44px);
  bottom: clamp(22px, 1.72vw, 44px);
  border-right: 1px solid rgba(var(--ink-rgb), 0.4);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.4);
}

/* Печать «советник месяца» */
.agseal {
  position: absolute;
  top: clamp(22px, 1.72vw, 44px);
  right: clamp(22px, 1.72vw, 44px);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: clamp(128px, 5.39vw, 138px);
  height: clamp(128px, 5.39vw, 138px);
  border-radius: 50%;
  background: rgba(var(--c-paper-rgb), 0.82);
  box-shadow:
    inset 0 0 0 1px rgba(var(--c-red-rgb), 0.55),
    inset 0 0 0 7px rgba(var(--c-red-rgb), 0.22);
  font-family: var(--mono);
  text-transform: uppercase;
  text-align: center;
}

.agseal__top,
.agseal__foot {
  font-size: 12px;
  letter-spacing: 0.03em;
  white-space: nowrap;
  color: var(--c-clay);
}

.agseal__top { letter-spacing: 0.24em; }

.agseal__month {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(22px, 1.17vw, 30px);
  line-height: 1;
  letter-spacing: 0.01em;
  color: var(--c-red);
}

/* Печать лежит на снимке и в тёмной теме, поэтому цвета в ней зафиксированы. */
[data-theme="dark"] .agseal { background: rgba(var(--c-paper-rgb), 0.86); }

.agfeat__dim {
  position: absolute;
  left: clamp(22px, 1.72vw, 44px);
  bottom: clamp(22px, 1.72vw, 44px);
  display: flex;
  align-items: center;
  gap: 14px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--muted);
}

.agfeat__dim::before {
  content: "";
  width: clamp(30px, 2.19vw, 56px);
  height: 1px;
  background: rgba(var(--ink-rgb), 0.4);
}

.agfeat__body {
  align-self: stretch;
  display: flex;
  flex-direction: column;
}

.agfeat__name {
  margin-top: clamp(16px, 1.02vw, 26px);
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(34px, 3.75vw, 96px);
  line-height: 1;
  letter-spacing: -0.03em;
  white-space: nowrap;
}

.agfeat__rule {
  margin-top: clamp(20px, 1.33vw, 34px);
  height: 2px;
  background: var(--ink);
}

.agfeat__quote {
  margin: 0;
  margin-top: clamp(20px, 1.33vw, 34px);
  max-width: 1000px;
  font-family: var(--display);
  font-style: italic;
  font-size: clamp(20px, 1.56vw, 40px);
  line-height: 1.24;
  letter-spacing: -0.012em;
}

.agfeat__text {
  margin-top: clamp(16px, 1.17vw, 30px);
  max-width: 1000px;
  font-size: clamp(16px, 0.78vw, 20px);
  font-weight: 300;
  line-height: 1.72;
  color: var(--muted);
}

.agfeat__foot {
  margin-top: auto;
  padding-top: clamp(28px, 2.03vw, 52px);
}

.agstat__row {
  display: grid;
  grid-template-columns: clamp(44px, 3.52vw, 90px) minmax(0, 1fr) clamp(120px, 10.16vw, 260px);
  gap: clamp(16px, 1.56vw, 40px);
  align-items: baseline;
  padding: clamp(14px, 0.86vw, 22px) 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.12);
}

.agstat__row:first-child { border-top: 1px solid rgba(var(--ink-rgb), 0.22); }
.agstat__row--last { border-bottom: 0; }

.agstat__no {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  color: var(--faint);
}

.agstat__row--last .agstat__no { color: var(--accent); }

.agstat__label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--muted);
}

.agstat__value {
  justify-self: end;
  font-family: var(--display);
  font-size: clamp(28px, 2.03vw, 52px);
  line-height: 1;
}

.agstat__value--mono {
  font-family: var(--mono);
  font-size: clamp(13px, 0.55vw, 14px);
  letter-spacing: 0.18em;
}

.agfeat__actions {
  margin-top: clamp(26px, 1.72vw, 44px);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 18px;
}

.agfeat__actions .btn { height: clamp(50px, 2.42vw, 62px); }

.agfeat__note {
  margin-left: auto;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

/* На чертёжной подложке разметка нарисована чернилами; на настоящем снимке она
   в них тонет, поэтому плита со снимком переходит на кремовые линии. */
.agfeat__plate--photo .agfeat__inner {
  box-shadow: inset 0 0 0 1.5px rgba(var(--on-photo-rgb), 0.35);
}

.agfeat__plate--photo .agfeat__tick { border-color: rgba(var(--on-photo-rgb), 0.55); }

.agfeat__plate--photo .agfeat__dim { color: rgba(var(--on-photo-rgb), 0.8); }

.agfeat__plate--photo .agfeat__dim::before { background: rgba(var(--on-photo-rgb), 0.55); }

.agcard__plate--photo .agcard__inner,
.agcity__plate--photo .agcity__inner {
  box-shadow: inset 0 0 0 1px rgba(var(--on-photo-rgb), 0.3);
}

.agcard__plate--photo .agcard__tick,
.agcity__plate--photo .agcity__tick { border-color: rgba(var(--on-photo-rgb), 0.5); }

/* --- 2. Сетка советников -------------------------------------------------- */

.roster,
.agcities {
  display: flex;
  flex-direction: column;
  gap: clamp(30px, 2.19vw, 56px);
}

.roster__grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(40px, 3.12vw, 80px) clamp(24px, 2.34vw, 60px);
}

.agcard {
  display: flex;
  flex-direction: column;
}

.agcard__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 14px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
}

.agcard__no { color: var(--accent); }

.agcard__city {
  color: var(--faint);
  transition: color var(--mid);
}

.agcard__rule {
  height: 1px;
  background: rgba(var(--ink-rgb), 0.3);
  transition: background var(--mid);
}

.agcard__plate {
  position: relative;
  margin-top: clamp(14px, 0.86vw, 22px);
  aspect-ratio: 565 / 720;
}

.agcard__photo,
.agcity__photo {
  position: absolute;
  inset: 0;
  display: block;
}

/* Вуаль и подпись под ней появляются вместе, поэтому у них одна переменная. */
.agcard__veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(var(--c-night-rgb), 0) 40%, rgba(var(--c-night-rgb), 0.82) 100%);
  opacity: 0;
  transition: opacity var(--mid);
  pointer-events: none;
}

.agcard__reveal {
  position: absolute;
  right: clamp(14px, 1.02vw, 26px);
  bottom: clamp(14px, 1.02vw, 26px);
  left: clamp(14px, 1.02vw, 26px);
  display: flex;
  flex-direction: column;
  gap: 12px;
  opacity: 0;
  transform: translateY(14px);
  transition: opacity var(--mid), transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.agcard__direct {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--gold);
}

.agcard__phone {
  font-family: var(--mono);
  font-size: clamp(14px, 0.66vw, 17px);
  letter-spacing: 0.12em;
  color: var(--c-cream);
}

.agcard__phone:hover,
.agcard__phone:focus-visible { color: var(--gold); }

.agcard__see {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--c-cream);
}

/* Карточка советника целиком ведёт на его лист; имя и «See the sheet» — ссылки */
.agcard[data-open] { cursor: pointer; }
.agcard__see { text-decoration: none; }
.agcard__see:hover { color: var(--gold); }
.agcard__link { color: inherit; text-decoration: none; transition: color var(--mid); }
.agcard__link:hover,
.agcard__link:focus-visible { color: var(--accent); }
.agcard__link em { color: var(--accent); }

.agcard__see-rule,
.agcity__see-rule {
  width: 26px;
  height: 1px;
  background: var(--gold);
  transition: width var(--mid);
}

.agcard__inner,
.agcity__inner {
  position: absolute;
  inset: clamp(8px, 0.55vw, 14px);
  border-radius: var(--r-inner);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22);
  transition: box-shadow var(--mid);
  pointer-events: none;
}

.agcard__tick,
.agcity__tick {
  position: absolute;
  width: clamp(10px, 0.63vw, 16px);
  height: clamp(10px, 0.63vw, 16px);
  pointer-events: none;
  transition: border-color var(--mid);
}

.agcard__tick--tl,
.agcity__tick {
  top: clamp(16px, 1.09vw, 28px);
  left: clamp(16px, 1.09vw, 28px);
  border-top: 1px solid rgba(var(--ink-rgb), 0.4);
  border-left: 1px solid rgba(var(--ink-rgb), 0.4);
}

.agcard__tick--br {
  right: clamp(16px, 1.09vw, 28px);
  bottom: clamp(16px, 1.09vw, 28px);
  border-right: 1px solid rgba(var(--ink-rgb), 0.4);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.4);
}

.agcard__name {
  margin-top: clamp(16px, 1.02vw, 26px);
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(24px, 1.48vw, 38px);
  line-height: 1.06;
  letter-spacing: -0.018em;
  transition: color var(--mid);
}

.agcard__reg { margin-top: clamp(12px, 0.78vw, 20px); }

.agcard__row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.12);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.agcard__row:first-child { border-top: 1px solid rgba(var(--ink-rgb), 0.22); }
.agcard__row--last { border-bottom: 1px solid rgba(var(--ink-rgb), 0.22); }
.agcard__row span:first-child { color: var(--faint); }

.agcard__row span + span {
  text-align: right;
  color: var(--ink);
}

/* Строка действия лежит свёрнутой и раскрывается при наведении. */
.agcard__act {
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  transition: max-height 0.35s cubic-bezier(0.2, 0.8, 0.2, 1), opacity var(--mid);
}

.agcard__act > * { margin-top: 18px; }

.agcard__cta {
  height: clamp(42px, 1.80vw, 46px);
  padding: 0 22px;
  gap: 0;
}

.agcard__file {
  margin-left: 16px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.agcard__act > .agcard__cta { display: inline-flex; }

/* Наведение на карточку советника */
.agcard:hover .frame__img,
.agcard:focus-within .frame__img { transform: scale(1.05); }

.agcard:hover .agcard__veil,
.agcard:focus-within .agcard__veil,
.agcard:hover .agcard__reveal,
.agcard:focus-within .agcard__reveal { opacity: 1; }

.agcard:hover .agcard__reveal,
.agcard:focus-within .agcard__reveal { transform: translateY(0); }

.agcard:hover .agcard__inner,
.agcard:focus-within .agcard__inner { box-shadow: inset 0 0 0 1px rgba(var(--c-gold-rgb), 0.75); }

.agcard:hover .agcard__tick,
.agcard:focus-within .agcard__tick { border-color: rgba(var(--c-gold-rgb), 0.9); }

.agcard:hover .agcard__rule,
.agcard:focus-within .agcard__rule { background: var(--accent); }

.agcard:hover .agcard__name,
.agcard:focus-within .agcard__name { color: var(--accent); }

.agcard:hover .agcard__city,
.agcard:focus-within .agcard__city { color: var(--muted); }

.agcard:hover .agcard__act,
.agcard:focus-within .agcard__act {
  max-height: 90px;
  opacity: 1;
}

.agcard:hover .agcard__see-rule,
.agcard:focus-within .agcard__see-rule { width: 40px; }

/* Пагинация: без сценариев видны все советники, поэтому кнопка скрыта. */
.roster__pager { display: none; }

.js .roster__pager {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 28px;
}

.roster__pager .btn { height: clamp(50px, 2.42vw, 62px); }

.roster__count {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.agcard.is-hidden { display: none; }

/* --- 3. По городам -------------------------------------------------------- */

.agrail {
  display: flex;
  overflow-x: auto;
  overflow-y: hidden;
  padding-bottom: 16px;
  scroll-snap-type: x mandatory;
}

.agcity {
  flex: 0 0 clamp(300px, 23.44vw, 600px);
  width: clamp(300px, 23.44vw, 600px);
  padding-right: clamp(24px, 2.34vw, 60px);
  box-sizing: border-box;
  scroll-snap-align: start;
  display: flex;
  flex-direction: column;
}

/* Последняя колонка без правого поля — ряд заканчивается ровно по сетке. */
.agcity--last {
  flex-basis: clamp(276px, 21.09vw, 540px);
  width: clamp(276px, 21.09vw, 540px);
  padding-right: 0;
}

.agcity__plate {
  position: relative;
  aspect-ratio: 540 / 460;
}

.agcity__veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(var(--c-night-rgb), 0.05) 0%, rgba(var(--c-night-rgb), 0.86) 100%);
  opacity: 0;
  transition: opacity var(--mid);
  pointer-events: none;
}

.agcity__reveal {
  position: absolute;
  right: clamp(14px, 1.02vw, 26px);
  bottom: clamp(14px, 1.02vw, 26px);
  left: clamp(14px, 1.02vw, 26px);
  display: flex;
  flex-direction: column;
  gap: 10px;
  opacity: 0;
  transform: translateY(14px);
  transition: opacity var(--mid), transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.agcity__direct {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--gold);
}

.agcity__names {
  font-family: var(--mono);
  font-size: 13px;
  letter-spacing: 0.1em;
  line-height: 1.8;
  color: var(--c-cream);
}

.agcity__see {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-top: 6px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--c-cream);
}

.agcity__rule {
  margin-top: clamp(14px, 0.94vw, 24px);
  height: 1px;
  background: rgba(var(--ink-rgb), 0.22);
  transition: background var(--mid);
}

.agcity:first-child .agcity__rule { background: rgba(var(--ink-rgb), 0.3); }

.agcity__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  padding-top: clamp(14px, 0.86vw, 22px);
}

.agcity__name {
  font-family: var(--display);
  font-size: clamp(28px, 1.80vw, 46px);
  line-height: 1;
  letter-spacing: -0.02em;
  transition: color var(--mid);
}

.agcity__count {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--faint);
  transition: color var(--mid);
}

.agcity__since {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  padding-top: 16px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.agcity__since span:first-child { color: var(--faint); }
.agcity__since span + span { color: var(--ink); }

/* Наведение на карточку города */
.agcity:hover .frame__img,
.agcity:focus-within .frame__img { transform: scale(1.05); }

.agcity:hover .agcity__veil,
.agcity:focus-within .agcity__veil,
.agcity:hover .agcity__reveal,
.agcity:focus-within .agcity__reveal { opacity: 1; }

.agcity:hover .agcity__reveal,
.agcity:focus-within .agcity__reveal { transform: translateY(0); }

.agcity:hover .agcity__inner,
.agcity:focus-within .agcity__inner { box-shadow: inset 0 0 0 1px rgba(var(--c-gold-rgb), 0.75); }

.agcity:hover .agcity__tick,
.agcity:focus-within .agcity__tick { border-color: rgba(var(--c-gold-rgb), 0.9); }

.agcity:hover .agcity__rule,
.agcity:focus-within .agcity__rule { background: var(--accent); }

.agcity:hover .agcity__name,
.agcity:focus-within .agcity__name { color: var(--accent); }

.agcity:hover .agcity__count,
.agcity:focus-within .agcity__count { color: var(--muted); }

.agcity:hover .agcity__see-rule,
.agcity:focus-within .agcity__see-rule { width: 40px; }

/* --- 4. Вакансии ---------------------------------------------------------- */

.agjoin {
  display: grid;
  grid-template-columns: minmax(0, 1500fr) minmax(0, 820fr);
  gap: clamp(40px, 4.69vw, 120px);
  align-items: end;
}

.agjoin__body {
  display: flex;
  flex-direction: column;
  gap: clamp(18px, 1.17vw, 30px);
}

.agjoin__text {
  font-size: clamp(16px, 0.82vw, 21px);
  font-weight: 300;
  line-height: 1.72;
  color: var(--muted);
  white-space: nowrap;
}

.agjoin__actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 18px;
}

.agjoin__actions .btn { height: clamp(50px, 2.42vw, 62px); }

/* ==========================================================================
   27. Agents — адаптив
   ========================================================================== */

@media (max-width: 1240px) {
  .roster__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1024px) {
  .agfeat {
    grid-template-columns: minmax(0, 1fr);
    gap: 40px;
  }

  .agfeat__plate { max-width: 720px; }

  .agjoin {
    grid-template-columns: minmax(0, 1fr);
    gap: 36px;
  }

  .agjoin__actions { align-items: flex-start; }

  .roster__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  /* Ниже этой ширины кегль упирается в нижнюю границу clamp и перестаёт
     сжиматься вместе с колонкой — строку приходится отпускать в перенос. */
  .agfeat__name { white-space: normal; }
}

@media (max-width: 860px) {
  .agjoin__text { white-space: normal; }

  .agfeat__note {
    margin-left: 0;
    flex-basis: 100%;
  }
}

@media (max-width: 600px) {
  .roster__grid { grid-template-columns: minmax(0, 1fr); }

  .agcard__plate { aspect-ratio: 3 / 4; }

  .agstat__row {
    grid-template-columns: auto minmax(0, 1fr);
    gap: 8px 16px;
  }

  .agstat__value { grid-column: 2; }

  .agfeat__actions .btn,
  .agjoin__actions .btn { width: 100%; }

  /* Печать и разметка плиты — украшение чертежа: на телефоне они закрывают
     сам снимок, поэтому уходят, как и печать манифеста на About. */
  .agfeat__tick,
  .agfeat__dim,
  .agseal { display: none; }
}

/* Сенсорный экран: наведения нет, поэтому подпись под снимком и строка
   действия видны сразу — иначе телефон советника не достать. */
@media (hover: none) {
  .agcard__act {
    max-height: none;
    opacity: 1;
  }

  .agcard__veil,
  .agcard__reveal,
  .agcity__veil,
  .agcity__reveal {
    opacity: 1;
    transform: none;
  }
}

/* ==========================================================================
   28. Our team — плиты 01, 02, 03, 05, 06
   ========================================================================== */

.teampage {
  display: flex;
  flex-direction: column;
  gap: clamp(20px, 1.56vw, 40px);
}

/* Плиты сами держат ритм: отступ сверху и волосяная линия на каждой,
   кроме первой — перед ней уже стоит линия шапки страницы. */
.tplate {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: clamp(24px, 1.88vw, 48px);
  margin-top: clamp(44px, 3.52vw, 90px);
  padding-top: clamp(44px, 3.52vw, 90px);
  border-top: 1px solid rgba(var(--ink-rgb), 0.14);
}

.tplate--first {
  margin-top: clamp(30px, 2.34vw, 60px);
  padding-top: 0;
  border-top: 0;
}

/* Подпись на полях листа, повёрнутая вдоль корешка */
.tplate__label {
  position: absolute;
  top: clamp(48px, 3.83vw, 98px);
  left: -46px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  color: var(--faint);
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  /* Без запрета переноса подпись на невысокой плите ломается на две колонки
     и наезжает на содержимое. */
  white-space: nowrap;
  pointer-events: none;
}

.tplate--first .tplate__label { top: 8px; }

/* Шапка плиты: номер — линейка — подпись — примечание справа */
.tkicker {
  display: flex;
  align-items: center;
  gap: 22px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--accent);
}

.tkicker__rule {
  width: clamp(48px, 3.52vw, 90px);
  height: 1px;
  background: rgba(var(--ink-rgb), 0.24);
}

.tkicker__label { color: var(--muted); }

.tkicker__note {
  margin-left: auto;
  color: var(--faint);
}

.tplate__head { margin-top: clamp(6px, 1.56vw, 20px); }

/* Строка-итог под плитой */
.tfoot {
  display: flex;
  align-items: center;
  gap: 24px;
  padding-top: 26px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.22);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--faint);
}

.tfoot__lead { color: var(--ink); }

.tfoot__rule {
  flex: 1;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.14);
}

/* Штамп чертежа: пять или четыре ячейки в рамке */
.titleblock {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  border: 1px solid rgba(var(--ink-rgb), 0.3);
  border-radius: var(--r-field);
  overflow: hidden;
}

.titleblock--open {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 0;
  border-top: 2px solid var(--ink);
  border-radius: 0;
}

.titleblock__cell {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 22px 26px;
  border-right: 1px solid rgba(var(--ink-rgb), 0.2);
}

.titleblock__cell:last-child { border-right: 0; }

.titleblock--open .titleblock__cell {
  gap: 12px;
  padding: 26px clamp(20px, 1.56vw, 40px) 0;
  border-right-color: rgba(var(--ink-rgb), 0.16);
}

.titleblock__key,
.titleblock__value {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.titleblock__key { color: var(--faint); }
.titleblock__value { color: var(--ink); }
.titleblock__value--accent { color: var(--accent); }

/* --- Плита 01: руководство ------------------------------------------------ */

/* Масштабная линейка над плитой */
.tscale { margin-top: -12px; }

.tscale__bar {
  position: relative;
  display: block;
  height: 2px;
  background: var(--ink);
}

.tscale__tick {
  position: absolute;
  top: 2px;
  width: 1px;
  background: rgba(var(--ink-rgb), 0.32);
}

.tscale__tick--0,
.tscale__tick--50,
.tscale__tick--100 {
  height: 13px;
  background: rgba(var(--ink-rgb), 0.5);
}

.tscale__tick--25,
.tscale__tick--75 { height: 8px; }

.tscale__tick--0 { left: 0; }
.tscale__tick--25 { left: 25%; }
.tscale__tick--50 { left: 50%; }
.tscale__tick--75 { left: 75%; }
.tscale__tick--100 { right: 0; }

.tscale__marks {
  display: flex;
  justify-content: space-between;
  padding-top: 8px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  color: var(--faint);
}

.leadgrid {
  display: grid;
  grid-template-columns: clamp(280px, 17.19vw, 440px) minmax(0, 1fr);
  gap: clamp(30px, 2.34vw, 60px);
  align-items: end;
  margin-top: clamp(20px, 1.09vw, 28px);
}

.leadintro {
  display: flex;
  flex-direction: column;
  gap: clamp(24px, 1.56vw, 40px);
  padding-right: clamp(24px, 2.34vw, 60px);
  border-right: 1px solid rgba(var(--ink-rgb), 0.18);
}

.leadintro__title {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(32px, 3.05vw, 78px);
  line-height: 0.98;
  letter-spacing: -0.028em;
}

.leadintro__body {
  font-size: clamp(16px, 0.78vw, 20px);
  font-weight: 300;
  line-height: 1.7;
  color: var(--muted);
}

/* Оговорка основателя */
.tclause {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 28px;
  padding: 40px 0 34px;
  border-top: 2px solid var(--ink);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.22);
}

.tclause__notch {
  position: absolute;
  top: -10px;
  left: 0;
  padding-right: 14px;
  background: var(--bg);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--accent);
}

/* На тёмной теме подложка страницы — бархат, поэтому вырез под подпись
   закрашивается сплошным фоном, иначе линия просвечивает сквозь буквы. */
[data-theme="dark"] .tclause__notch { background: var(--bg); }

.tclause__quote {
  margin: 0;
  font-family: var(--display);
  font-style: italic;
  font-size: clamp(22px, 1.64vw, 42px);
  line-height: 1.18;
  letter-spacing: -0.012em;
}

.tclause__foot {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
}

.tclause__sign {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.tclause__name {
  font-family: var(--display);
  font-style: italic;
  font-size: clamp(24px, 1.33vw, 34px);
  line-height: 1;
}

.tclause__line {
  width: clamp(110px, 6.64vw, 170px);
  height: 1px;
  background: rgba(var(--ink-rgb), 0.45);
}

.tclause__role {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--muted);
}

/* Печать «Est. 1998» */
.tseal {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  flex: 0 0 auto;
  width: clamp(112px, 4.38vw, 112px);
  height: clamp(112px, 4.38vw, 112px);
  border-radius: 50%;
  box-shadow:
    inset 0 0 0 1px rgba(var(--c-red-rgb), 0.55),
    inset 0 0 0 6px rgba(var(--c-red-rgb), 0.2);
  font-family: var(--mono);
  text-transform: uppercase;
  text-align: center;
  color: var(--accent);
}

.tseal__top,
.tseal__foot {
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--muted);
}

.tseal__year {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(24px, 1.09vw, 28px);
  line-height: 1;
  color: var(--accent);
}

/* Реестр подписей */
.tledger__row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 15px 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.12);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.tledger__row:first-child { border-top: 1px solid rgba(var(--ink-rgb), 0.22); }
.tledger__row--last { border-bottom: 1px solid rgba(var(--ink-rgb), 0.22); }

.tledger__value {
  font-family: var(--display);
  font-size: clamp(24px, 1.25vw, 32px);
  letter-spacing: 0;
  color: var(--ink);
}

.tledger__flag { color: var(--accent); }

/* Три портрета лесенкой */
.leads {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(20px, 1.56vw, 40px);
  align-items: end;
}

.lead {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}

/* Высоту рамки задаёт пропорция: 646 — ширина колонки в эталоне. */
.lead__plate {
  position: relative;
  width: 100%;
}

.lead__plate--01 { aspect-ratio: 646 / 1120; }
.lead__plate--02 { aspect-ratio: 646 / 1000; }
.lead__plate--03 { aspect-ratio: 646 / 900; }

.lead__photo {
  position: absolute;
  inset: 0;
  display: block;
}

.lead__veil {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(var(--c-night-rgb), 0) 42%, rgba(var(--c-night-rgb), 0.84) 100%);
  opacity: 0;
  transition: opacity var(--mid);
  pointer-events: none;
}

.lead__reveal {
  position: absolute;
  right: clamp(16px, 1.17vw, 30px);
  bottom: clamp(16px, 1.17vw, 30px);
  left: clamp(16px, 1.17vw, 30px);
  display: flex;
  flex-direction: column;
  gap: 12px;
  opacity: 0;
  transform: translateY(14px);
  transition: opacity var(--mid), transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1);
}

.lead__direct {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--gold);
}

.lead__mail {
  font-family: var(--mono);
  font-size: clamp(13px, 0.59vw, 15px);
  letter-spacing: 0.1em;
  color: var(--c-cream);
  word-break: break-all;
}

.lead__mail:hover,
.lead__mail:focus-visible { color: var(--gold); }

.lead__see {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--c-cream);
}

.lead__see-rule {
  width: 26px;
  height: 1px;
  background: var(--gold);
  transition: width var(--mid);
}

.lead__inner {
  position: absolute;
  inset: clamp(10px, 0.63vw, 16px);
  border-radius: var(--r-inner);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22);
  transition: box-shadow var(--mid);
  pointer-events: none;
}

.lead__tick {
  position: absolute;
  width: clamp(10px, 0.63vw, 16px);
  height: clamp(10px, 0.63vw, 16px);
  pointer-events: none;
  transition: border-color var(--mid);
}

.lead__tick--tl {
  top: clamp(18px, 1.17vw, 30px);
  left: clamp(18px, 1.17vw, 30px);
  border-top: 1px solid rgba(var(--ink-rgb), 0.4);
  border-left: 1px solid rgba(var(--ink-rgb), 0.4);
}

.lead__tick--br {
  right: clamp(18px, 1.17vw, 30px);
  bottom: clamp(18px, 1.17vw, 30px);
  border-right: 1px solid rgba(var(--ink-rgb), 0.4);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.4);
}

.lead__rank {
  position: absolute;
  top: clamp(18px, 1.17vw, 30px);
  left: clamp(34px, 2.19vw, 56px);
  padding: 9px 14px;
  border-radius: var(--r-small);
  background: rgba(var(--c-paper-rgb), 0.92);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--c-ink-fixed);
}

.lead__dim {
  position: absolute;
  right: clamp(34px, 2.19vw, 56px);
  bottom: clamp(18px, 1.17vw, 30px);
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
  transition: opacity var(--mid);
}

.lead__dim::before {
  content: "";
  width: 34px;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.45);
}

/* Выноска от рамки к подписи */
.lead__drop {
  width: 1px;
  height: 26px;
  margin-left: 34px;
  background: rgba(var(--ink-rgb), 0.35);
  transition: background var(--mid);
}

.lead__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 14px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
}

.lead__no { color: var(--accent); }

.lead__city {
  color: var(--faint);
  transition: color var(--mid);
}

.lead__rule {
  height: 1px;
  background: rgba(var(--ink-rgb), 0.3);
  transition: background var(--mid);
}

.lead:first-child .lead__rule { background: var(--accent); }

.lead__name {
  margin-top: clamp(16px, 0.94vw, 24px);
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(28px, 1.88vw, 48px);
  line-height: 1.02;
  letter-spacing: -0.022em;
  transition: color var(--mid);
}

.lead__role {
  margin-top: 16px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
}

.lead__signed {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin-top: 22px;
  padding: 13px 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.22);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.lead__signed-value {
  font-family: var(--display);
  font-size: clamp(22px, 1.17vw, 30px);
  letter-spacing: 0;
  color: var(--ink);
}

/* Наведение на портрет руководителя */
.lead:hover .frame__img,
.lead:focus-within .frame__img { transform: scale(1.05); }

.lead:hover .lead__veil,
.lead:focus-within .lead__veil,
.lead:hover .lead__reveal,
.lead:focus-within .lead__reveal { opacity: 1; }

.lead:hover .lead__reveal,
.lead:focus-within .lead__reveal { transform: translateY(0); }

.lead:hover .lead__dim,
.lead:focus-within .lead__dim { opacity: 0; }

.lead:hover .lead__inner,
.lead:focus-within .lead__inner { box-shadow: inset 0 0 0 1px rgba(var(--c-gold-rgb), 0.75); }

.lead:hover .lead__tick,
.lead:focus-within .lead__tick { border-color: rgba(var(--c-gold-rgb), 0.9); }

.lead:hover .lead__drop,
.lead:focus-within .lead__drop,
.lead:hover .lead__rule,
.lead:focus-within .lead__rule { background: var(--accent); }

.lead:hover .lead__name,
.lead:focus-within .lead__name { color: var(--accent); }

.lead:hover .lead__city,
.lead:focus-within .lead__city { color: var(--muted); }

.lead:hover .lead__see-rule,
.lead:focus-within .lead__see-rule { width: 40px; }

/* Настоящий снимок съедает чернильную разметку — переводим её на кремовую. */
.lead__plate--photo .lead__inner { box-shadow: inset 0 0 0 1px rgba(var(--on-photo-rgb), 0.3); }
.lead__plate--photo .lead__tick { border-color: rgba(var(--on-photo-rgb), 0.5); }
.lead__plate--photo .lead__dim { color: rgba(var(--on-photo-rgb), 0.8); }
.lead__plate--photo .lead__dim::before { background: rgba(var(--on-photo-rgb), 0.55); }

/* --- Плита 02: дисциплины ------------------------------------------------- */

.tspan {
  display: flex;
  flex-direction: column;
}

.tspan__overall {
  display: flex;
  align-items: center;
  gap: 16px;
  padding-bottom: 20px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--muted);
}

.tspan__cap {
  width: 1px;
  height: 16px;
  background: rgba(var(--ink-rgb), 0.5);
}

.tspan__hair {
  flex: 1;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.32);
}

.tspan__caption { color: var(--ink); }

/* Полоса фирмы: пять отрезков, ширина = доля от 75 человек */
.span {
  display: flex;
  height: clamp(84px, 5.16vw, 132px);
  border-radius: 3px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
  overflow: hidden;
}

.span__seg {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 0 clamp(12px, 1.02vw, 26px);
  border-right: 1px solid rgba(var(--ink-rgb), 0.34);
  transition: background 0.22s ease;
}

.span__seg:last-child { border-right: 0; }

/* Ширина отрезка — доля дисциплины от семидесяти пяти человек */
.span__seg--w01 { width: 54.666%; }
.span__seg--w02 { width: 16%; }
.span__seg--w03 { width: 12%; }
.span__seg--w04 { width: 9.334%; }
.span__seg--w05 { width: 8%; }

.span__seg--accent { background: rgba(var(--c-red-rgb), 0.18); }
.span__seg--accent:hover { background: rgba(var(--c-red-rgb), 0.3); }
.span__seg--ink { background: rgba(var(--ink-rgb), 0.13); }
.span__seg--ink:hover { background: rgba(var(--ink-rgb), 0.2); }
.span__seg--ink-soft { background: rgba(var(--ink-rgb), 0.1); }
.span__seg--ink-soft:hover { background: rgba(var(--ink-rgb), 0.17); }
.span__seg--gold { background: rgba(var(--c-gold-rgb), 0.3); }
.span__seg--gold:hover { background: rgba(var(--c-gold-rgb), 0.45); }
.span__seg--ink-faint { background: rgba(var(--ink-rgb), 0.06); }
.span__seg--ink-faint:hover { background: rgba(var(--ink-rgb), 0.13); }

/* Насечки: один штрих — один человек */
.span__ticks {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(90deg, rgba(var(--ink-rgb), 0.16) 0 1px, transparent 1px 32.5px);
  pointer-events: none;
}

.span__seg--accent .span__ticks {
  background: repeating-linear-gradient(90deg, rgba(var(--ink-rgb), 0.18) 0 1px, transparent 1px 32.5px);
}

.span__count {
  position: relative;
  font-family: var(--display);
  font-size: clamp(30px, 2.5vw, 64px);
  line-height: 1;
}

.span__label {
  position: relative;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--muted);
}

.span__seg--accent .span__label { color: var(--accent); }

.tspan__marks {
  display: flex;
  justify-content: space-between;
  padding-top: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  color: var(--faint);
}

.tspan__mark--last { color: var(--ink); }

/* Выноски от отрезков к колонкам */
.tspan__leaders {
  display: block;
  width: 100%;
  height: clamp(60px, 4.30vw, 110px);
  margin-top: 6px;
  color: rgba(var(--ink-rgb), 0.4);
}

.dcols {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(24px, 2.34vw, 60px);
}

.dcol {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.dcol__rule {
  height: 2px;
  background: var(--ink);
}

.dcol__rule--accent { background: var(--accent); }
.dcol__rule--gold { background: var(--gold); }

.dcol__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.dcol__no { color: var(--accent); }
.dcol__share { color: var(--faint); }

.dcol__name {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(24px, 1.72vw, 44px);
  line-height: 1.05;
  letter-spacing: -0.02em;
}

.dcol__body {
  margin-top: 6px;
  font-size: clamp(15px, 0.70vw, 18px);
  font-weight: 300;
  line-height: 1.7;
  color: var(--muted);
}

.dcol__foot {
  margin-top: auto;
  padding-top: 18px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

/* --- Плита 03: пять листов ------------------------------------------------ */

.sheets {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(16px, 1.33vw, 34px);
  align-items: start;
}

.sheet {
  display: flex;
  flex-direction: column;
  border-radius: var(--r-card);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  background: var(--sheet);
  overflow: hidden;
  transition: transform 0.24s ease, box-shadow 0.24s ease;
}

/* Лесенка: каждый следующий лист ниже предыдущего — 0/44/88/132/176 в эталоне. */
.sheet--step1 { margin-top: 0; }
.sheet--step2 { margin-top: clamp(20px, 1.72vw, 44px); }
.sheet--step3 { margin-top: clamp(40px, 3.44vw, 88px); }
.sheet--step4 { margin-top: clamp(60px, 5.16vw, 132px); }
.sheet--step5 { margin-top: clamp(80px, 6.88vw, 176px); }

.sheet:hover,
.sheet:focus-within {
  transform: translateY(-8px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.5);
}

.sheet--last {
  background: var(--sheet-strong);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.4);
}

.sheet--last:hover,
.sheet--last:focus-within { box-shadow: inset 0 0 0 1px rgba(var(--c-red-rgb), 0.6); }

.sheet__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 22px clamp(16px, 1.02vw, 26px);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.2);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.sheet__no { color: var(--accent); }

.sheet__plate {
  position: relative;
  aspect-ratio: 461 / 260;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.2);
  overflow: hidden;
}

.sheet__photo {
  position: absolute;
  inset: 0;
  display: block;
  border-radius: 0;
}

/* Призрачная цифра листа, наполовину уходящая за нижний край */
.sheet__ghost {
  position: absolute;
  left: 8px;
  bottom: clamp(-22px, -1.64vw, -42px);
  font-family: var(--display);
  font-size: clamp(110px, 7.81vw, 200px);
  line-height: 1;
  color: rgba(var(--ink-rgb), 0.14);
  pointer-events: none;
}

.sheet--last .sheet__ghost { color: rgba(var(--c-red-rgb), 0.2); }

/* На настоящем кадре чернильная цифра пропадает — переводим её на кремовую,
   иначе номер листа виден только у незакрытых слотов. */
.sheet__plate--photo .sheet__ghost { color: rgba(var(--on-photo-rgb), 0.45); }

/* Дырки от подшивки */
.sheet__punch {
  position: absolute;
  right: 22px;
  width: 14px;
  height: 14px;
  border-radius: var(--r-pill);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.32);
  background: var(--bg);
  pointer-events: none;
}

.sheet__punch--a { top: 22px; }
.sheet__punch--b { top: 54px; }
.sheet--last .sheet__punch { background: var(--sheet-strong); }

.sheet__stamp {
  position: absolute;
  right: -26px;
  bottom: 34px;
  display: inline-flex;
  align-items: center;
  padding: 12px 34px;
  border-radius: var(--r-small);
  box-shadow: inset 0 0 0 2px var(--accent);
  background: rgba(var(--c-paper-rgb), 0.7);
  font-family: var(--mono);
  font-size: clamp(14px, 0.78vw, 20px);
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--c-red);
  transform: rotate(-8deg);
  pointer-events: none;
}

.sheet__body {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 30px clamp(16px, 1.02vw, 26px) 34px;
}

.sheet__title {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(24px, 1.72vw, 44px);
  line-height: 1.05;
  letter-spacing: -0.02em;
}

.sheet__text {
  font-size: clamp(15px, 0.70vw, 18px);
  font-weight: 300;
  line-height: 1.7;
  color: var(--muted);
}

.sheet__micro {
  display: flex;
  flex-direction: column;
  gap: 9px;
  padding-top: 16px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.12);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.sheet__micro p {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.sheet__micro span + span {
  text-align: right;
  color: var(--ink);
}

.sheet__disc {
  display: flex;
  align-items: center;
  gap: 14px;
  padding-top: 16px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ink);
}

.sheet__dot {
  width: 8px;
  height: 8px;
  border-radius: var(--r-pill);
  background: var(--ink);
}

.sheet__dot--accent { background: var(--accent); }
.sheet__dot--gold { background: var(--gold); }

/* --- Плита 05: архивная комната ------------------------------------------- */

.archive__top,
.archive__row {
  display: grid;
  grid-template-columns: clamp(40px, 2.5vw, 64px) minmax(0, 1fr);
  gap: 26px;
}

.archive__top { align-items: end; }
.archive__row { align-items: stretch; }

.archive__ruler {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.archive__ruler .tspan__overall { padding-bottom: 0; }

.archive__teeth {
  height: 12px;
  background: repeating-linear-gradient(90deg, rgba(var(--ink-rgb), 0.42) 0 1px, transparent 1px 47px);
}

/* Вертикальный размер слева от снимка */
.archive__side {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(rgba(var(--ink-rgb), 0.32), rgba(var(--ink-rgb), 0.32)) center / 1px 100% no-repeat;
}

.archive__side::before,
.archive__side::after {
  content: "";
  position: absolute;
  left: 50%;
  width: 26px;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.5);
  transform: translateX(-50%);
}

.archive__side::before { top: 0; }
.archive__side::after { bottom: 0; }

.archive__side-text {
  position: relative;
  padding: 10px 0;
  background: var(--bg);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--muted);
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}

.archive__plate {
  position: relative;
  aspect-ratio: 2350 / 980;
  border-radius: var(--r-card);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
  overflow: hidden;
}

.archive__photo {
  position: absolute;
  inset: 0;
  display: block;
  border-radius: 0;
}

/* Сетка третей поверх кадра */
.archive__third {
  position: absolute;
  background: rgba(var(--ink-rgb), 0.16);
  pointer-events: none;
}

.archive__third--v1,
.archive__third--v2 {
  top: 0;
  bottom: 0;
  width: 1px;
}

.archive__third--v1 { left: 33.33%; }
.archive__third--v2 { left: 66.66%; }

.archive__third--h1,
.archive__third--h2 {
  left: 0;
  right: 0;
  height: 1px;
}

.archive__third--h1 { top: 33.33%; }
.archive__third--h2 { top: 66.66%; }

/* Врезка «Detail A» */
.archive__detail {
  position: absolute;
  left: clamp(24px, 3.13vw, 80px);
  bottom: clamp(24px, 3.13vw, 80px);
  display: flex;
  align-items: flex-end;
  width: clamp(190px, 16.41vw, 420px);
  height: clamp(136px, 11.72vw, 300px);
  padding: 16px;
  border-radius: var(--r-inner);
  box-shadow: inset 0 0 0 1px rgba(var(--c-red-rgb), 0.55);
  background: repeating-linear-gradient(45deg, rgba(var(--c-red-rgb), 0.1) 0 2px, transparent 2px 16px);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
  pointer-events: none;
}

.archive__camera {
  position: absolute;
  right: clamp(24px, 3.13vw, 80px);
  bottom: clamp(24px, 3.13vw, 80px);
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
  pointer-events: none;
}

.archive__camera-lead { color: var(--ink); }

.archive__tick {
  position: absolute;
  width: clamp(16px, 1.02vw, 26px);
  height: clamp(16px, 1.02vw, 26px);
  pointer-events: none;
}

.archive__tick--tl {
  top: 22px;
  left: 22px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.5);
  border-left: 1px solid rgba(var(--ink-rgb), 0.5);
}

.archive__tick--tr {
  top: 22px;
  right: 22px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.5);
  border-right: 1px solid rgba(var(--ink-rgb), 0.5);
}

.archive__tick--bl {
  bottom: 22px;
  left: 22px;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.5);
  border-left: 1px solid rgba(var(--ink-rgb), 0.5);
}

.archive__tick--br {
  bottom: 22px;
  right: 22px;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.5);
  border-right: 1px solid rgba(var(--ink-rgb), 0.5);
}

/* Настоящий кадр: разметка переходит на кремовую */
.archive__plate--photo .archive__third { background: rgba(var(--on-photo-rgb), 0.22); }
.archive__plate--photo .archive__tick { border-color: rgba(var(--on-photo-rgb), 0.55); }
.archive__plate--photo .archive__camera { color: rgba(var(--on-photo-rgb), 0.75); }
.archive__plate--photo .archive__camera-lead { color: var(--on-photo); }

/* Выноска Detail A нарисована красным по пустому слоту; на снимке она в нём
   тонет, поэтому рамка и подпись переходят на золото по кремовому. */
.archive__plate--photo .archive__detail {
  box-shadow: inset 0 0 0 1px rgba(var(--c-gold-rgb), 0.85);
  background: repeating-linear-gradient(45deg, rgba(var(--c-night-rgb), 0.28) 0 2px, transparent 2px 16px);
  color: var(--gold);
}

.archive__caption {
  display: grid;
  grid-template-columns: clamp(56px, 3.52vw, 90px) minmax(0, 900fr) minmax(0, 1310fr);
  gap: clamp(24px, 2.73vw, 70px);
  align-items: start;
  padding-top: 34px;
  border-top: 2px solid var(--ink);
}

.archive__num {
  font-family: var(--display);
  font-size: clamp(34px, 2.5vw, 64px);
  line-height: 0.9;
  color: var(--accent);
}

.archive__copy {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.archive__title {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(28px, 2.58vw, 66px);
  line-height: 1.05;
  letter-spacing: -0.024em;
}

.archive__body {
  font-size: clamp(16px, 0.82vw, 21px);
  font-weight: 300;
  line-height: 1.7;
  color: var(--muted);
}

.tfacts__row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.tfacts__row--last { border-bottom: 0; }

.tfacts__value { color: var(--ink); }
.tfacts__flag { color: var(--accent); }

.tfacts__big {
  font-family: var(--display);
  font-size: clamp(22px, 1.17vw, 30px);
  letter-spacing: 0;
  color: var(--ink);
}

/* --- Плита 06: объявление о наборе ---------------------------------------- */

.tplate--careers { gap: 0; }

.notice {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: clamp(24px, 1.88vw, 48px);
  padding: clamp(40px, 2.73vw, 70px) clamp(24px, 2.58vw, 66px);
  border: 1px solid rgba(var(--ink-rgb), 0.34);
  border-radius: 14px;
  background: var(--sheet);
}

/* Перфорация по верхнему краю и «кнопка», которой лист приколот */
.notice__perf {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 10px;
  border-radius: 14px 14px 0 0;
  background: repeating-linear-gradient(90deg, rgba(var(--ink-rgb), 0.34) 0 1px, transparent 1px 18px);
}

.notice__pin {
  position: absolute;
  top: -18px;
  left: 50%;
  width: 36px;
  height: 36px;
  border-radius: var(--r-pill);
  background: var(--bg);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
  transform: translateX(-50%);
}

.notice__stamp {
  position: absolute;
  top: clamp(70px, 4.69vw, 120px);
  left: 40%;
  display: inline-flex;
  align-items: center;
  padding: 14px 34px;
  border-radius: var(--r-small);
  box-shadow: inset 0 0 0 2px var(--accent);
  background: rgba(var(--c-paper-rgb), 0.7);
  font-family: var(--mono);
  font-size: clamp(14px, 0.78vw, 20px);
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--c-red);
  transform: rotate(-7deg);
  pointer-events: none;
}

.notice__grid {
  display: grid;
  grid-template-columns: minmax(0, 1240fr) minmax(0, 800fr);
  gap: clamp(36px, 4.30vw, 110px);
  align-items: start;
}

.notice__body {
  display: flex;
  flex-direction: column;
  gap: 26px;
}

.notice__title {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(32px, 3.20vw, 82px);
  line-height: 1.02;
  letter-spacing: -0.026em;
}

.notice__text {
  font-size: clamp(16px, 0.82vw, 21px);
  font-weight: 300;
  line-height: 1.7;
  color: var(--muted);
}

.notice__figures {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(30px, 2.73vw, 70px);
  padding-top: 6px;
}

.notice__figure .figure__value { font-size: clamp(32px, 2.03vw, 52px); }

.notice__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 22px;
  padding-top: 14px;
}

.notice__cta {
  height: clamp(62px, 3.59vw, 92px);
  padding: 0 clamp(26px, 1.72vw, 44px);
  font-size: clamp(13px, 0.63vw, 16px);
}

.vacancies {
  display: flex;
  flex-direction: column;
  border-top: 2px solid var(--ink);
}

.vacancies__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  padding: 16px 0 14px;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--faint);
}

.vacancy {
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(150px, 11.72vw, 300px);
  gap: 24px;
  align-items: baseline;
  padding: 22px clamp(8px, 0.63vw, 16px);
  margin-inline: clamp(-16px, -0.63vw, -8px);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
  transition: background 0.16s ease;
}

.vacancy:hover { background: rgba(var(--c-red-rgb), 0.08); }
.vacancy--last { border-bottom: 1px solid rgba(var(--ink-rgb), 0.22); }

.vacancy__role { font-size: clamp(17px, 0.86vw, 22px); }

.vacancy__where {
  text-align: right;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
}

.vacancies__foot {
  padding-top: 20px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

/* ==========================================================================
   29. Our team — адаптив
   ========================================================================== */

/* Счёт людей дублируется в колонке: на узком экране цифры в полосе не помещаются. */
.dcol__count { display: none; }

@media (max-width: 1440px) {
  /* Подписи на полях листа живут в отступе страницы — его тут уже нет. */
  .tplate__label { display: none; }
}

@media (max-width: 1240px) {
  .sheets,
  .dcols { grid-template-columns: repeat(3, minmax(0, 1fr)); }

  .sheet--step4,
  .sheet--step5 { margin-top: 0; }

  .titleblock { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .titleblock__cell:nth-child(3n) { border-right: 0; }
}

@media (max-width: 1024px) {
  .leadgrid {
    grid-template-columns: minmax(0, 1fr);
    gap: 44px;
  }

  .leadintro {
    padding-right: 0;
    padding-bottom: 44px;
    border-right: 0;
    border-bottom: 1px solid rgba(var(--ink-rgb), 0.18);
  }

  .archive__caption {
    grid-template-columns: minmax(0, 1fr);
    gap: 26px;
  }

  .notice__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 44px;
  }

  /* В одну колонку печать некуда положить поверх — ставим её в поток. */
  .notice__stamp {
    position: static;
    align-self: flex-start;
    margin-left: auto;
  }

  .span__label { display: none; }
  .span__count { font-size: clamp(20px, 2.5vw, 64px); }

  .titleblock--open { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .titleblock--open .titleblock__cell { padding-inline: 0 20px; }
  .titleblock--open .titleblock__cell:nth-child(2n) { border-right: 0; }
}

@media (max-width: 860px) {
  .sheets,
  .dcols { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .sheet--step2,
  .sheet--step3 { margin-top: 0; }

  .leads { gap: 16px; }

  /* Врезка и заметка оператора закрывают сам кадр на узком экране. */
  .archive__detail,
  .archive__camera { display: none; }

  .archive__top,
  .archive__row { grid-template-columns: minmax(0, 1fr); }

  .archive__side { display: none; }
  .archive__top > span:first-child { display: none; }

  .titleblock { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .titleblock__cell:nth-child(3n) { border-right: 1px solid rgba(var(--ink-rgb), 0.2); }
  .titleblock__cell:nth-child(2n) { border-right: 0; }
}

@media (max-width: 760px) {
  /* Шапка плиты не влезает в строку: примечание уходит вниз, линейка тянется. */
  .tkicker {
    flex-wrap: wrap;
    gap: 10px 16px;
  }

  .tkicker__rule { flex: 1; width: auto; }

  .tkicker__note {
    flex-basis: 100%;
    margin-left: 0;
  }

  /* Ниже этой ширины в отрезках остаётся место только у первого числа. */
  .span__seg:not(.span__seg--accent) .span__count { display: none; }

  .dcol__count {
    display: inline;
    font-family: var(--mono);
    font-size: 12px;
    letter-spacing: 0.22em;
    color: var(--ink);
  }

  .dcol__head { gap: 12px; }
}

@media (max-width: 600px) {
  .leads,
  .sheets,
  .dcols { grid-template-columns: minmax(0, 1fr); }

  .sheet { margin-top: 0; }

  /* Лесенка портретов на телефоне превращается в один столбец: разной высоты
     рамки в нём читаются как ошибка, поэтому даём всем одну пропорцию. */
  .lead__plate--01,
  .lead__plate--02,
  .lead__plate--03 { aspect-ratio: 3 / 4; }

  .lead__dim { display: none; }

  .titleblock,
  .titleblock--open { grid-template-columns: minmax(0, 1fr); }

  .titleblock__cell {
    border-right: 0;
    border-bottom: 1px solid rgba(var(--ink-rgb), 0.2);
  }

  .titleblock__cell:last-child { border-bottom: 0; }
  .titleblock--open .titleblock__cell { padding: 20px 0 0; }

  .notice__actions .btn { width: 100%; }

  .vacancy { grid-template-columns: minmax(0, 1fr) auto; }

  .tclause__foot { flex-wrap: wrap; }
}

/* Сенсорный экран: наведения нет — подпись под портретом видна сразу. */
@media (hover: none) {
  .lead__veil,
  .lead__reveal {
    opacity: 1;
    transform: none;
  }

  .lead__dim { opacity: 0; }
}

/* ==========================================================================
   30. Services — плиты 01…08
   ========================================================================== */

.tplate--first { padding-top: 0; }

/* Шапки секций с другой разбивкой колонок, чем на About */
.section-head--1400 { grid-template-columns: minmax(0, 1400fr) minmax(0, 920fr); }

.section-head--1240 {
  grid-template-columns: minmax(0, 1240fr) minmax(0, 1160fr);
  gap: clamp(24px, 1.56vw, 40px);
}

.section-head__title--72 { font-size: clamp(28px, 2.81vw, 72px); }

.section-head__intro--left {
  margin-bottom: 8px;
  text-align: left;
}

.tkicker--dark { color: var(--gold); }
.tkicker--dark .tkicker__rule { background: rgba(var(--c-cream-rgb), 0.3); }
.tkicker--dark .tkicker__label { color: rgba(var(--c-cream-rgb), 0.7); }
.tkicker--dark .tkicker__note { color: rgba(var(--c-cream-rgb), 0.5); }

.tfoot--bare {
  padding-top: 0;
  border-top: 0;
}

/* Список с длинным тире вместо маркера */
.svlist {
  display: flex;
  flex-direction: column;
  gap: 11px;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: clamp(15px, 0.70vw, 18px);
  font-weight: 300;
  color: var(--muted);
}

.svlist li {
  display: flex;
  gap: 14px;
}

.svlist li::before {
  content: "\2014";
  color: var(--accent);
}

/* Ярлыки-таблетки */
.pills {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.pills li {
  display: inline-flex;
  align-items: center;
  height: 40px;
  padding: 0 18px;
  border-radius: var(--r-pill);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
}

.pills__soft { color: var(--faint); }

/* Список отказов через крестик */
.crosses {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px clamp(24px, 2.34vw, 60px);
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: clamp(16px, 0.78vw, 20px);
  font-weight: 300;
  color: var(--muted);
}

.crosses--three { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.crosses li {
  display: flex;
  gap: 14px;
}

.crosses li::before {
  content: "\2715";
  color: var(--accent);
}

/* Обведённая полоса под плитой */
.band {
  position: relative;
  display: grid;
  grid-template-columns: clamp(240px, 20.31vw, 520px) minmax(0, 1fr);
  gap: clamp(24px, 2.73vw, 70px);
  align-items: center;
  padding: clamp(28px, 1.72vw, 44px);
  border-radius: 14px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
}

.band--tight {
  grid-template-columns: clamp(220px, 17.97vw, 460px) minmax(0, 1fr);
  padding: clamp(24px, 1.48vw, 38px) clamp(28px, 1.72vw, 44px);
}

.band--ask { grid-template-columns: minmax(0, 1fr) auto; }

.band__seal {
  position: absolute;
  top: -22px;
  right: clamp(24px, 1.72vw, 44px);
  display: inline-flex;
  align-items: center;
  padding: 11px 28px;
  border-radius: var(--r-small);
  background: var(--bg);
  box-shadow: inset 0 0 0 2px var(--accent);
  font-family: var(--mono);
  font-size: clamp(13px, 0.63vw, 16px);
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--accent);
  transform: rotate(-6deg);
}

.band__copy {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.band__kicker {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--accent);
}

.band__title {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(24px, 1.80vw, 46px);
  line-height: 1.05;
  letter-spacing: -0.022em;
}

.band__title--sm { font-size: clamp(22px, 1.48vw, 38px); }

.band__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  align-items: center;
}

.band__cta {
  height: clamp(58px, 3.28vw, 84px);
  padding: 0 clamp(24px, 1.48vw, 38px);
  font-size: clamp(13px, 0.59vw, 15px);
}

/* --- Плита 01: три пути --------------------------------------------------- */

.paths {
  display: grid;
  grid-template-columns: minmax(0, 1240fr) minmax(0, 1160fr);
  gap: clamp(24px, 1.56vw, 40px);
}

.paths__stack {
  display: grid;
  grid-template-rows: 1fr 1fr;
  gap: clamp(24px, 1.56vw, 40px);
}

.path {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 26px;
  padding: clamp(28px, 1.88vw, 48px) clamp(24px, 1.80vw, 46px);
  border-radius: 14px;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  color: var(--ink);
  transition: transform 0.22s ease, box-shadow 0.22s ease;
}

.path:hover,
.path:focus-visible {
  transform: translateY(-8px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.55);
  color: var(--ink);
}

.path__body {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.path__no {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
}

.path__title {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(30px, 2.58vw, 66px);
  line-height: 1;
  letter-spacing: -0.024em;
}

.path__text {
  font-size: clamp(16px, 0.82vw, 21px);
  font-weight: 300;
  line-height: 1.65;
  color: var(--muted);
}

.path__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding-top: 24px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.18);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.path__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: clamp(44px, 2.27vw, 58px);
  height: clamp(44px, 2.27vw, 58px);
  border-radius: var(--r-pill);
  background: var(--ink);
  color: var(--bg);
  font-family: var(--text);
  font-size: clamp(18px, 0.94vw, 24px);
  transition: background var(--mid);
}

.path:hover .path__arrow,
.path:focus-visible .path__arrow { background: var(--accent); }

/* Ведущая плита: снимок с тёмной табличкой поверх */
.path--lead {
  position: relative;
  justify-content: flex-end;
  padding: 0;
  /* Пропорция плиты держится минимальной высотой: если правая пара карточек
     окажется выше, плита дотянется до неё, а не оставит пустоту под собой. */
  min-height: clamp(400px, 33.59vw, 860px);
  overflow: hidden;
  background: none;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
}

.path--lead:hover,
.path--lead:focus-visible { transform: none; }

.path__photo {
  position: absolute;
  inset: 0;
  display: block;
  border-radius: 0;
}

.path__tick {
  position: absolute;
  bottom: 60.5%;
  left: clamp(20px, 1.33vw, 34px);
  width: clamp(16px, 1.02vw, 26px);
  height: clamp(16px, 1.02vw, 26px);
  border-top: 1px solid rgba(var(--ink-rgb), 0.4);
  border-left: 1px solid rgba(var(--ink-rgb), 0.4);
}

.path__pill {
  position: absolute;
  top: clamp(20px, 1.33vw, 34px);
  left: clamp(20px, 1.33vw, 34px);
  display: inline-flex;
  align-items: center;
  height: 46px;
  padding: 0 24px;
  border-radius: var(--r-pill);
  background: rgba(var(--c-paper-rgb), 0.9);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--c-red);
}

.path__note {
  position: absolute;
  top: clamp(24px, 1.33vw, 34px);
  right: clamp(20px, 1.33vw, 34px);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: rgba(var(--ink-rgb), 0.55);
}

/* На настоящем снимке чертёжные отметки переходят на кремовые, а приписка
   об адресе садится на бумажную плашку — как соседняя таблетка: кадр может
   оказаться и светлым, и тёмным, а подпись должна читаться на любом. */
.path--photo .path__tick { border-color: rgba(var(--on-photo-rgb), 0.55); }

.path--photo .path__note {
  padding: 10px 18px;
  border-radius: var(--r-pill);
  background: rgba(var(--c-paper-rgb), 0.9);
  color: var(--c-clay);
}

.path__plate {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin: clamp(16px, 1.33vw, 34px);
  padding: clamp(24px, 1.72vw, 44px) clamp(24px, 1.80vw, 46px);
  border-radius: var(--r-card);
  background: var(--c-night);
  color: var(--c-cream);
}

.path__lead-title {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(34px, 3.05vw, 78px);
  line-height: 0.98;
  letter-spacing: -0.026em;
}

.path__lead-text {
  max-width: 820px;
  font-size: clamp(16px, 0.86vw, 22px);
  font-weight: 300;
  line-height: 1.6;
  color: rgba(var(--c-cream-rgb), 0.84);
}

.path__figures {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(16px, 1.33vw, 34px);
  padding-top: 22px;
  border-top: 1px solid rgba(var(--c-cream-rgb), 0.24);
}

.path__figure .figure__value {
  font-size: clamp(24px, 1.72vw, 44px);
  color: var(--c-cream);
}

.path__figure .figure__label { color: rgba(var(--c-cream-rgb), 0.6); }

.path__foot--dark {
  border-top-color: rgba(var(--c-cream-rgb), 0.24);
  color: rgba(var(--c-cream-rgb), 0.62);
}

.path__arrow--gold {
  width: clamp(46px, 2.42vw, 62px);
  height: clamp(46px, 2.42vw, 62px);
  background: var(--gold);
  color: var(--c-night);
  font-size: clamp(19px, 1.02vw, 26px);
}

.path--lead:hover .path__arrow--gold,
.path--lead:focus-visible .path__arrow--gold { background: var(--c-cream); }

/* --- Плита 02: пять услуг ------------------------------------------------- */

.svcards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(18px, 1.41vw, 36px);
}

.svcards--pair { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.svcard {
  display: flex;
  flex-direction: column;
  border-radius: 14px;
  overflow: hidden;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  transition: transform 0.22s ease, box-shadow 0.22s ease;
}

.svcard:hover,
.svcard:focus-within {
  transform: translateY(-8px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.55);
}

.svcard__head {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 24px clamp(18px, 1.17vw, 30px);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.2);
  overflow: hidden;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.svcard__ghost {
  position: absolute;
  right: clamp(18px, 1.17vw, 30px);
  bottom: -30px;
  font-family: var(--display);
  font-size: clamp(70px, 4.69vw, 120px);
  line-height: 1;
  color: rgba(var(--ink-rgb), 0.09);
  pointer-events: none;
}

.svcard__no {
  position: relative;
  color: var(--accent);
}

.svcard__scope {
  position: relative;
  display: flex;
  align-items: center;
  gap: 16px;
  color: var(--muted);
}

.svcard__bar {
  width: 1px;
  height: 14px;
  background: rgba(var(--ink-rgb), 0.22);
}

.svcard__turn { color: var(--faint); }

.svcard__body,
.svcard__col {
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.svcard__body {
  flex: 1;
  padding: 36px clamp(18px, 1.17vw, 30px) 32px;
}

.svcard__split {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(20px, 1.56vw, 40px);
  flex: 1;
  padding: 38px clamp(20px, 1.33vw, 34px) 34px;
}

.svcard__col { gap: 20px; }

.svcard__title {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(26px, 1.95vw, 50px);
  line-height: 1.02;
  letter-spacing: -0.022em;
}

.svcard__text {
  font-size: clamp(16px, 0.74vw, 19px);
  font-weight: 300;
  line-height: 1.65;
  color: var(--muted);
}

.titleblock--pair {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border: 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.2);
  border-radius: 0;
}

.titleblock--pair .titleblock__cell {
  gap: 7px;
  padding: 20px clamp(18px, 1.33vw, 34px);
  border-right-color: rgba(var(--ink-rgb), 0.14);
}

/* --- Плита 03: как это работает ------------------------------------------- */

.how__head { align-items: end; }

.how__tabs {
  display: flex;
  justify-content: flex-end;
  gap: 14px;
  padding-bottom: 8px;
}

.how__tab {
  display: inline-flex;
  align-items: center;
  height: clamp(52px, 2.5vw, 64px);
  padding: 0 clamp(22px, 1.33vw, 34px);
  border-radius: var(--r-pill);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
  cursor: pointer;
  font-family: var(--mono);
  font-size: clamp(13px, 0.55vw, 14px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

/* Плавности здесь нет намеренно: цвет кнопки приходит из переменной, а анимация
   свойства, заданного через var(), в браузере залипает на старом значении. */

/* Переключатель на радиокнопках: работает и с выключенными сценариями.
   Правило целится в саму строку заголовка — прямого соседа радиокнопки, — а до
   кнопок цвет доходит наследованием переменных. Целиться селектором в потомка
   соседа нельзя: браузер не перерисовывает такие кнопки при переключении. */
.how__head {
  --sell-bg: var(--ink);
  --sell-fg: var(--bg);
  --sell-ring: none;
  --buy-bg: transparent;
  --buy-fg: var(--ink);
  --buy-ring: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
}

#path-buyer:checked ~ .how__head {
  --sell-bg: transparent;
  --sell-fg: var(--ink);
  --sell-ring: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
  --buy-bg: var(--ink);
  --buy-fg: var(--bg);
  --buy-ring: none;
}

.how__tab--sell {
  background: var(--sell-bg);
  color: var(--sell-fg);
  box-shadow: var(--sell-ring);
}

.how__tab--buy {
  background: var(--buy-bg);
  color: var(--buy-fg);
  box-shadow: var(--buy-ring);
}

#path-seller:checked ~ .how__set--buyer,
#path-buyer:checked ~ .how__set--seller { display: none; }

.tkicker { --on-sell: inline; --on-buy: none; }
#path-buyer:checked ~ .tkicker { --on-sell: none; --on-buy: inline; }
.on-sell { display: var(--on-sell, inline); }
.on-buy { display: var(--on-buy, none); }

.how__set {
  display: flex;
  flex-direction: column;
}

.how__row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(24px, 2.34vw, 60px);
}

.how__row--top { padding-bottom: 32px; }
.how__row--bottom { padding-top: 32px; }

.how__span { padding-bottom: 18px; }

.howstep__top {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.howstep__mark {
  display: flex;
  align-items: baseline;
  gap: 18px;
}

.howstep__big {
  font-family: var(--display);
  font-size: clamp(34px, 2.5vw, 64px);
  line-height: 0.9;
  color: rgba(var(--ink-rgb), 0.16);
}

.howstep__when {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--faint);
}

.howstep__title {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(26px, 1.88vw, 48px);
  line-height: 1.04;
  letter-spacing: -0.022em;
}

/* Рельс с узлами по этапам */
.how__rail {
  position: relative;
  height: 2px;
  background: var(--ink);
}

.how__node {
  position: absolute;
  top: -14px;
  width: 30px;
  height: 30px;
  margin-left: -15px;
  border-radius: var(--r-pill);
  background: var(--bg);
  box-shadow: inset 0 0 0 2px var(--ink);
}

.how__node--1 {
  left: 12.5%;
  box-shadow: inset 0 0 0 2px var(--accent);
}

.how__node--2 { left: 37.5%; }
.how__node--3 { left: 62.5%; }

.how__node--last {
  left: 87.5%;
  background: var(--gold);
}

.howstep {
  display: flex;
  flex-direction: column;
  gap: 18px;
  margin: -22px -22px 0;
  padding: 22px 22px 24px;
  border-radius: var(--r-tile);
  transition: background 0.2s ease;
}

.howstep:hover { background: rgba(var(--c-red-rgb), 0.06); }

.howstep__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.howstep__no { color: var(--accent); }
.howstep__desk { color: var(--faint); }

.howstep__text {
  font-size: clamp(16px, 0.74vw, 19px);
  font-weight: 300;
  line-height: 1.7;
  color: var(--muted);
}

.howstep__you {
  font-size: clamp(15px, 0.70vw, 18px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--ink);
}

.howstep__out {
  margin-top: auto;
  padding-top: 20px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.14);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ink);
}

.how__foot { margin-top: clamp(24px, 1.88vw, 48px); }

/* --- Плита 04: цены ------------------------------------------------------- */

.fees {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(24px, 1.56vw, 40px);
  align-items: stretch;
}

.fee {
  display: flex;
  flex-direction: column;
  border-radius: 14px;
  overflow: hidden;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.fee__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 26px clamp(20px, 1.33vw, 34px);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.2);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.fee__plan { color: var(--accent); }
.fee__aud { color: var(--faint); }

.fee__body {
  display: flex;
  flex-direction: column;
  gap: 24px;
  flex: 1;
  padding: 40px clamp(20px, 1.33vw, 34px) 34px;
}

.fee__title {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(28px, 2.03vw, 52px);
  line-height: 1.02;
  letter-spacing: -0.022em;
}

.fee__price {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 16px;
}

.fee__num {
  font-family: var(--display);
  font-size: clamp(46px, 3.75vw, 96px);
  line-height: 0.9;
}

.fee__sign {
  font-family: var(--display);
  font-size: clamp(28px, 2.03vw, 52px);
  line-height: 1;
  color: var(--accent);
}

.fee__unit {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.fee__text {
  font-size: clamp(16px, 0.74vw, 19px);
  font-weight: 300;
  line-height: 1.65;
  color: var(--muted);
}

.fee__example {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 6px;
  padding: 20px 22px;
  border-radius: var(--r-tile);
  background: rgba(var(--c-red-rgb), 0.07);
}

.fee__example-key {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
}

.fee__example-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  font-size: clamp(15px, 0.70vw, 18px);
  font-weight: 300;
  color: var(--muted);
}

.fee__example-sum {
  font-family: var(--display);
  font-size: clamp(24px, 1.33vw, 34px);
  line-height: 1;
  color: var(--ink);
}

/* Средняя плита тёмная — цвета в ней зафиксированы, тема их не трогает. */
.fee--dark {
  position: relative;
  background: var(--c-night);
  color: var(--c-cream);
  box-shadow: inset 0 0 0 1px rgba(var(--c-ink-fixed-rgb), 0.4);
}

.fee--dark::before {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(45deg, rgba(var(--c-cream-rgb), 0.045) 0 2px, transparent 2px 18px);
  pointer-events: none;
}

.fee--dark > * { position: relative; }
.fee--dark .fee__head { border-bottom-color: rgba(var(--c-cream-rgb), 0.24); }
.fee--dark .fee__plan { color: var(--gold); }
.fee--dark .fee__aud { color: rgba(var(--c-cream-rgb), 0.6); }
.fee--dark .fee__title { color: var(--c-cream); }
.fee--dark .fee__num { color: var(--c-cream); }
.fee--dark .fee__sign { color: var(--gold); }
.fee--dark .fee__unit { color: rgba(var(--c-cream-rgb), 0.6); }
.fee--dark .fee__text { color: rgba(var(--c-cream-rgb), 0.82); }
.fee--dark .svlist { color: rgba(var(--c-cream-rgb), 0.82); }
.fee--dark .svlist li::before { color: var(--gold); }
.fee--dark .fee__example { background: rgba(var(--c-gold-rgb), 0.14); }
.fee--dark .fee__example-key { color: var(--gold); }
.fee--dark .fee__example-row { color: rgba(var(--c-cream-rgb), 0.82); }
.fee--dark .fee__example-sum { color: var(--c-cream); }
.fee--dark .titleblock--pair { border-top-color: rgba(var(--c-cream-rgb), 0.24); }
.fee--dark .titleblock__cell { border-right-color: rgba(var(--c-cream-rgb), 0.14); }
.fee--dark .titleblock__key { color: rgba(var(--c-cream-rgb), 0.6); }
.fee--dark .titleblock__value { color: var(--c-cream); }
.fee--dark .titleblock__value--accent { color: var(--gold); }

/* --- Плита 05: агентствам ------------------------------------------------- */

.trade {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: clamp(28px, 2.03vw, 52px);
  padding: clamp(40px, 3.13vw, 80px) clamp(24px, 2.73vw, 70px);
  border-radius: 14px;
  overflow: hidden;
  background: var(--c-night);
  color: var(--c-cream);
}

.trade::before {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(45deg, rgba(var(--c-cream-rgb), 0.045) 0 2px, transparent 2px 20px);
  pointer-events: none;
}

.trade > * { position: relative; }

.trade__tick {
  position: absolute;
  width: clamp(16px, 1.02vw, 26px);
  height: clamp(16px, 1.02vw, 26px);
  pointer-events: none;
}

.trade__tick--tl {
  top: 30px;
  left: 30px;
  border-top: 1px solid rgba(var(--c-cream-rgb), 0.34);
  border-left: 1px solid rgba(var(--c-cream-rgb), 0.34);
}

.trade__tick--tr {
  top: 30px;
  right: 30px;
  border-top: 1px solid rgba(var(--c-cream-rgb), 0.34);
  border-right: 1px solid rgba(var(--c-cream-rgb), 0.34);
}

.trade__tick--bl {
  bottom: 30px;
  left: 30px;
  border-bottom: 1px solid rgba(var(--c-cream-rgb), 0.34);
  border-left: 1px solid rgba(var(--c-cream-rgb), 0.34);
}

.trade__tick--br {
  bottom: 30px;
  right: 30px;
  border-bottom: 1px solid rgba(var(--c-cream-rgb), 0.34);
  border-right: 1px solid rgba(var(--c-cream-rgb), 0.34);
}

.trade__head {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1300fr) minmax(0, 1030fr);
  gap: clamp(30px, 4.30vw, 110px);
  align-items: end;
}

.trade__mark {
  position: absolute;
  right: 0;
  bottom: -14px;
  width: auto;
  height: clamp(70px, 5.86vw, 150px);
  opacity: 0.14;
  pointer-events: none;
}

.trade__title {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(32px, 3.20vw, 82px);
  line-height: 1;
  letter-spacing: -0.026em;
  color: var(--c-cream);
}

.trade__title em { color: var(--gold); }

.trade__intro {
  position: relative;
  margin-bottom: 10px;
  font-size: clamp(16px, 0.82vw, 21px);
  font-weight: 300;
  line-height: 1.7;
  color: rgba(var(--c-cream-rgb), 0.82);
}

.tradecards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(18px, 1.33vw, 34px);
}

.tradecard {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding: clamp(26px, 1.56vw, 40px) clamp(20px, 1.33vw, 34px);
  border-radius: var(--r-card);
  overflow: hidden;
  background: rgba(var(--c-cream-rgb), 0.06);
  box-shadow: inset 0 0 0 1px rgba(var(--c-cream-rgb), 0.16);
  transition: background 0.22s ease;
}

.tradecard:hover { background: rgba(var(--c-cream-rgb), 0.12); }

.tradecard--gold {
  background: rgba(var(--c-gold-rgb), 0.14);
  box-shadow: inset 0 0 0 1px rgba(var(--c-gold-rgb), 0.4);
}

.tradecard--gold:hover { background: rgba(var(--c-gold-rgb), 0.2); }

.tradecard__ghost {
  position: absolute;
  top: -16px;
  right: 24px;
  font-family: var(--display);
  font-size: clamp(70px, 4.69vw, 120px);
  line-height: 1;
  color: rgba(var(--c-cream-rgb), 0.07);
  pointer-events: none;
}

.tradecard__kicker {
  position: relative;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold);
}

.tradecard__title {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(24px, 1.72vw, 44px);
  line-height: 1.04;
  letter-spacing: -0.02em;
  color: var(--c-cream);
}

.tradecard__text {
  font-size: clamp(15px, 0.70vw, 18px);
  font-weight: 300;
  line-height: 1.65;
  color: rgba(var(--c-cream-rgb), 0.72);
}

.tradecard__foot {
  margin-top: auto;
  padding-top: 20px;
  border-top: 1px solid rgba(var(--c-cream-rgb), 0.18);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(var(--c-cream-rgb), 0.55);
}

.tradecard--gold .tradecard__foot { color: var(--gold); }

.trade__strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
  gap: clamp(24px, 1.95vw, 50px);
  align-items: end;
  padding-top: 40px;
  border-top: 1px solid rgba(var(--c-cream-rgb), 0.24);
}

.trade__figure .figure__value {
  font-size: clamp(30px, 2.03vw, 52px);
  color: var(--c-cream);
}

.trade__figure .figure__label { color: rgba(var(--c-cream-rgb), 0.55); }

.trade__actions {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 12px;
}

.trade__cta {
  height: clamp(62px, 3.59vw, 92px);
  padding: 0 clamp(26px, 1.72vw, 44px);
  font-size: clamp(13px, 0.63vw, 16px);
}

.btn--gold.trade__cta:hover,
.btn--gold.trade__cta:focus-visible {
  background: var(--c-cream);
  color: var(--c-night);
}

.trade__link {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(var(--c-cream-rgb), 0.6);
}

.trade__link:hover,
.trade__link:focus-visible { color: var(--gold); }

/* --- Плита 06: отказы ----------------------------------------------------- */

.refusals {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(24px, 1.56vw, 40px);
}

.refusal {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: clamp(32px, 2.19vw, 56px) clamp(24px, 1.80vw, 46px) clamp(28px, 1.80vw, 46px);
  border-radius: 14px;
  overflow: hidden;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  transition: transform 0.22s ease, box-shadow 0.22s ease;
}

.refusal:hover {
  transform: translateY(-8px);
  box-shadow: inset 0 0 0 1px rgba(var(--c-red-rgb), 0.5);
}

.refusal > * { position: relative; }

.refusal__stamp {
  position: absolute;
  top: clamp(20px, 1.41vw, 36px);
  right: -16px;
  display: inline-flex;
  align-items: center;
  padding: 12px 30px;
  border-radius: var(--r-small);
  background: rgba(var(--c-paper-rgb), 0.7);
  box-shadow: inset 0 0 0 2px var(--accent);
  font-family: var(--mono);
  font-size: clamp(13px, 0.66vw, 17px);
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--c-red);
  transform: rotate(-8deg);
  pointer-events: none;
}

.refusal__ghost {
  position: absolute;
  bottom: -46px;
  left: 36px;
  font-family: var(--display);
  font-size: clamp(120px, 8.98vw, 230px);
  line-height: 1;
  color: rgba(var(--ink-rgb), 0.06);
  pointer-events: none;
}

.refusal__no {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
}

.refusal__title {
  /* Доля ширины карточки, а не жёсткие 520px: иначе на узкой колонке строка
     заезжает под печать REFUSED. */
  max-width: 66%;
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(28px, 2.11vw, 54px);
  line-height: 1.03;
  letter-spacing: -0.024em;
}

.refusal__text {
  font-size: clamp(16px, 0.78vw, 20px);
  font-weight: 300;
  line-height: 1.65;
  color: var(--muted);
}

.refusal__foot {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  margin-top: auto;
  padding-top: 26px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.18);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.refusal__value { color: var(--ink); }

/* --- Плита 07: вопросы ---------------------------------------------------- */

.faq {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(24px, 1.56vw, 40px);
}

.faqcard {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 26px;
  padding: clamp(28px, 1.80vw, 46px) clamp(24px, 1.64vw, 42px);
  border-radius: 14px;
  overflow: hidden;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  transition: transform 0.22s ease, box-shadow 0.22s ease;
}

.faqcard:hover,
.faqcard:focus-within {
  transform: translateY(-6px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.55);
}

.faqcard > * { position: relative; }

.faqcard__ghost {
  position: absolute;
  top: -38px;
  right: 34px;
  font-family: var(--display);
  font-size: clamp(110px, 7.81vw, 200px);
  line-height: 1;
  color: rgba(var(--ink-rgb), 0.06);
  pointer-events: none;
}

.faqcard__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.faqcard__no { color: var(--accent); }
.faqcard__count { color: var(--faint); }

.faqcard__subject {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.faqcard__title {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(28px, 2.03vw, 52px);
  line-height: 1.02;
  letter-spacing: -0.022em;
}

.faqcard__facts {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.faqcard__list {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding-top: 8px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.18);
}

.faqcard__qa {
  display: flex;
  flex-direction: column;
  gap: 9px;
}

.faqcard__qa + .faqcard__qa {
  padding-top: 20px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.1);
}

.faqcard__q { font-size: clamp(18px, 0.94vw, 24px); }

.faqcard__a {
  font-size: clamp(16px, 0.74vw, 19px);
  font-weight: 300;
  line-height: 1.65;
  color: var(--muted);
}

/* --- Плита 08: бланк поручения -------------------------------------------- */

.slip {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: clamp(28px, 1.80vw, 46px);
  padding: clamp(40px, 2.73vw, 70px) clamp(24px, 2.58vw, 66px);
  border: 1px solid rgba(var(--ink-rgb), 0.34);
  border-radius: 14px;
  background: var(--sheet);
}

.slip__perf {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 10px;
  border-radius: 14px 14px 0 0;
  background: repeating-linear-gradient(90deg, rgba(var(--ink-rgb), 0.34) 0 1px, transparent 1px 18px);
}

.slip__pin {
  position: absolute;
  top: -18px;
  left: 50%;
  width: 36px;
  height: 36px;
  border-radius: var(--r-pill);
  background: var(--bg);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
  transform: translateX(-50%);
}

.slip__mark {
  position: absolute;
  right: 60px;
  bottom: 44px;
  width: auto;
  height: clamp(70px, 5.16vw, 132px);
  opacity: 0.12;
  pointer-events: none;
}

[data-theme="dark"] .slip__mark { opacity: 0.16; }

.slip__stamp {
  position: absolute;
  top: clamp(66px, 4.30vw, 110px);
  right: clamp(24px, 2.58vw, 66px);
  display: inline-flex;
  align-items: center;
  padding: 14px 34px;
  border-radius: var(--r-small);
  background: rgba(var(--c-paper-rgb), 0.7);
  box-shadow: inset 0 0 0 2px var(--accent);
  font-family: var(--mono);
  font-size: clamp(14px, 0.78vw, 20px);
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--c-red);
  transform: rotate(-7deg);
  pointer-events: none;
}

.slip__grid {
  display: grid;
  grid-template-columns: minmax(0, 1240fr) minmax(0, 1090fr);
  gap: clamp(30px, 4.30vw, 110px);
  align-items: start;
}

.slip__body {
  display: flex;
  flex-direction: column;
  gap: 26px;
}

.slip__title {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(32px, 3.20vw, 82px);
  line-height: 1.02;
  letter-spacing: -0.026em;
}

.slip__text {
  font-size: clamp(16px, 0.82vw, 21px);
  font-weight: 300;
  line-height: 1.7;
  color: var(--muted);
}

.slip__form {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  align-items: center;
  padding-top: 12px;
}

/* Красная риска перед полем нарисована левой границей, а не отдельным блоком. */
.slip__field {
  flex: 1 1 260px;
  height: clamp(66px, 3.75vw, 96px);
  padding: 0 clamp(22px, 1.33vw, 34px);
  border: 0;
  border-left: 1px solid var(--accent);
  border-radius: var(--r-pill);
  background: var(--bg);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
  font-family: var(--mono);
  font-size: clamp(13px, 0.59vw, 15px);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink);
}

.slip__field::placeholder { color: var(--faint); }

.slip__field:focus-visible {
  outline: none;
  box-shadow: inset 0 0 0 1px var(--ink);
}

.slip__cta,
.slip__talk {
  height: clamp(66px, 3.75vw, 96px);
  padding: 0 clamp(26px, 1.72vw, 44px);
  font-size: clamp(13px, 0.63vw, 16px);
}

.slip__talk {
  height: clamp(58px, 2.97vw, 76px);
  font-size: clamp(12px, 0.55vw, 14px);
}

.slip__or {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 24px;
  padding-top: 8px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.slip__or-rule {
  width: 60px;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.2);
}

.slip__next {
  display: flex;
  flex-direction: column;
  border-top: 2px solid var(--ink);
}

.slip__next-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  padding: 14px 0 16px;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--faint);
}

.slip__step {
  display: grid;
  grid-template-columns: clamp(38px, 2.27vw, 58px) minmax(0, 1fr) auto;
  gap: 22px;
  align-items: baseline;
  padding: 22px 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.12);
}

.slip__step:last-of-type { border-bottom: 2px solid rgba(var(--ink-rgb), 0.22); }

.slip__step-no {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  color: var(--accent);
}

.slip__step-name { font-size: clamp(17px, 0.86vw, 22px); }

.slip__step-when {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
}

.slip__fee {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  padding: 20px 0;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.slip__fee-value { color: var(--accent); }

.slip__contact {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

/* ==========================================================================
   31. Services — адаптив
   ========================================================================== */

@media (max-width: 1240px) {
  .svcards,
  .fees,
  .refusals { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .tradecards { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .trade__strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 30px;
  }

  .trade__actions {
    grid-column: 1 / -1;
    align-items: flex-start;
  }

  /* Четыре шага в ряд перестают читаться — рельс уходит, шаги идут списком. */
  .how__row,
  .how__row--top,
  .how__row--bottom { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .how__rail,
  .how__span { display: none; }

  .how__row--top { padding-bottom: 0; }
}

@media (max-width: 1024px) {
  .paths,
  .section-head--1240 {
    grid-template-columns: minmax(0, 1fr);
    gap: 30px;
  }

  .path--lead { min-height: 0; }
  .path__plate { margin: 20px; }

  .trade__head,
  .slip__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 34px;
  }

  .trade__mark { display: none; }

  .band,
  .band--tight,
  .band--ask {
    grid-template-columns: minmax(0, 1fr);
    gap: 26px;
  }

  .band__seal {
    top: auto;
    right: clamp(20px, 1.72vw, 44px);
    bottom: -18px;
  }

  .faq { grid-template-columns: minmax(0, 1fr); }

  .svcard__split { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 860px) {
  .svcards,
  .svcards--pair,
  .fees,
  .refusals,
  .tradecards { grid-template-columns: minmax(0, 1fr); }

  .how__row,
  .how__row--top,
  .how__row--bottom { grid-template-columns: minmax(0, 1fr); }

  .how__row--bottom { gap: 34px; }

  .howstep {
    margin: 0;
    padding: 0 0 24px;
    border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
  }

  .how__set .how__row--top .howstep__top { padding-top: 8px; }

  .crosses,
  .crosses--three { grid-template-columns: minmax(0, 1fr); }

  .refusal__title { max-width: 100%; }

  .slip__stamp {
    top: auto;
    bottom: clamp(20px, 2.58vw, 66px);
  }

  .slip__mark { display: none; }
}

@media (max-width: 600px) {
  .how__tabs { justify-content: flex-start; }

  .trade__strip { grid-template-columns: minmax(0, 1fr); }

  .path__figures { grid-template-columns: minmax(0, 1fr); }

  .titleblock--pair { grid-template-columns: minmax(0, 1fr); }

  .titleblock--pair .titleblock__cell {
    border-right: 0;
    border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
  }

  .titleblock--pair .titleblock__cell:last-child { border-bottom: 0; }

  .slip__form .btn,
  .band__actions .btn,
  .trade__actions .btn { width: 100%; }

  .slip__step { grid-template-columns: auto minmax(0, 1fr); }
  .slip__step-when { grid-column: 2; }

  /* Печати и адресная приписка на узком экране перекрывают текст. */
  .refusal__stamp,
  .slip__stamp,
  .path__note { display: none; }
}

/* ==========================================================================
   32. Pricing — плиты 01…09
   ========================================================================== */

/* Помесячно / за год — одно состояние на три плиты, поэтому радиокнопки стоят
   в начале страницы, а секции читают режим наследуемыми переменными. */
.teampage .tplate { --on-month: inline; --on-year: none; }
#cycle-year:checked ~ .tplate { --on-month: none; --on-year: inline; }

.on-month { display: var(--on-month, inline); }
.on-year { display: var(--on-year, none); }

.section-head__control {
  display: flex;
  justify-content: flex-end;
  padding-bottom: 8px;
}

.cycle {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px;
  border-radius: var(--r-pill);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.28);
}

.cycle__tab {
  display: inline-flex;
  align-items: center;
  height: clamp(48px, 2.34vw, 60px);
  padding: 0 clamp(18px, 1.09vw, 28px);
  border-radius: var(--r-pill);
  cursor: pointer;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
  white-space: nowrap;
}

#cycle-month:checked ~ .tplate .cycle__tab--month,
#cycle-year:checked ~ .tplate .cycle__tab--year {
  background: var(--ink);
  color: var(--bg);
}

/* --- Плита 01: кто размещает ---------------------------------------------- */

.segments {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(24px, 1.56vw, 40px);
}

.segment {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: clamp(28px, 1.88vw, 48px) clamp(24px, 1.72vw, 44px) clamp(26px, 1.64vw, 42px);
  border-radius: 14px;
  overflow: hidden;
  cursor: pointer;
  background: var(--sheet);
  color: var(--ink);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.segment:hover { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.5); }

.segment__ghost {
  position: absolute;
  top: -40px;
  right: 30px;
  font-family: var(--display);
  font-size: clamp(110px, 7.81vw, 200px);
  line-height: 1;
  color: rgba(var(--ink-rgb), 0.07);
  pointer-events: none;
}

.segment__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.segment__no { color: var(--accent); }
.segment__range { color: var(--faint); }

.segment__title {
  position: relative;
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(30px, 2.34vw, 60px);
  line-height: 1;
  letter-spacing: -0.024em;
}

.segment__text {
  font-size: clamp(16px, 0.78vw, 20px);
  font-weight: 300;
  line-height: 1.65;
}

.segment__foot {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  margin-top: auto;
  padding-top: 26px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.18);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.segment__price {
  font-family: var(--display);
  font-size: clamp(26px, 1.72vw, 44px);
  line-height: 1;
  letter-spacing: 0;
}

/* Выбранная карточка. Плавности здесь нет намеренно: состояние приходит от
   радиокнопки, а анимировать его вместе с наведением на ту же карточку значит
   ловить залипание. */
#who-private:checked ~ .segments .segment--private,
#who-agency:checked ~ .segments .segment--agency,
#who-developer:checked ~ .segments .segment--developer {
  background: var(--c-night);
  color: var(--c-cream);
  box-shadow: inset 0 0 0 1px rgba(var(--c-gold-rgb), 0.5);
  transform: translateY(-8px);
}

#who-private:checked ~ .segments .segment--private .segment__ghost,
#who-agency:checked ~ .segments .segment--agency .segment__ghost,
#who-developer:checked ~ .segments .segment--developer .segment__ghost {
  color: rgba(var(--c-gold-rgb), 0.16);
}

#who-private:checked ~ .segments .segment--private .segment__no,
#who-agency:checked ~ .segments .segment--agency .segment__no,
#who-developer:checked ~ .segments .segment--developer .segment__no { color: var(--gold); }

#who-private:checked ~ .segments .segment--private .segment__range,
#who-agency:checked ~ .segments .segment--agency .segment__range,
#who-developer:checked ~ .segments .segment--developer .segment__range,
#who-private:checked ~ .segments .segment--private .segment__foot,
#who-agency:checked ~ .segments .segment--agency .segment__foot,
#who-developer:checked ~ .segments .segment--developer .segment__foot {
  color: rgba(var(--c-cream-rgb), 0.7);
  border-top-color: rgba(var(--c-cream-rgb), 0.24);
}

#who-private:checked ~ .segments .segment--private .segment__price,
#who-agency:checked ~ .segments .segment--agency .segment__price,
#who-developer:checked ~ .segments .segment--developer .segment__price {
  color: var(--c-cream);
}

/* Подпись под плитой следует за выбором */
.tfoot { --on-private: inline; --on-agency: none; --on-developer: none; }
#who-agency:checked ~ .tfoot { --on-private: none; --on-agency: inline; --on-developer: none; }
#who-developer:checked ~ .tfoot { --on-private: none; --on-agency: none; --on-developer: inline; }

.on-private { display: var(--on-private, inline); }
.on-agency { display: var(--on-agency, none); }
.on-developer { display: var(--on-developer, none); }

.tfoot--cta { flex-wrap: wrap; }

.tfoot__cta {
  height: clamp(58px, 2.97vw, 76px);
  padding: 0 clamp(24px, 1.33vw, 34px);
  font-size: clamp(12px, 0.55vw, 14px);
}

/* --- Плита 02: четыре плана ----------------------------------------------- */

.plans {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(16px, 1.33vw, 34px);
  align-items: start;
}

.plans--lives { padding-top: 22px; }

.plan {
  display: flex;
  flex-direction: column;
  border-radius: 14px;
  overflow: hidden;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

/* Лесенка планов — 0 / 34 / 68 / 102 в эталоне */
.plan--step1 { margin-top: 0; }
.plan--step2 { margin-top: clamp(16px, 1.33vw, 34px); }
.plan--step3 { margin-top: clamp(32px, 2.66vw, 68px); }
.plan--step4 { margin-top: clamp(48px, 3.98vw, 102px); }

.plan--dark {
  background: var(--c-night);
  color: var(--c-cream);
  box-shadow: inset 0 0 0 1px rgba(var(--c-gold-rgb), 0.45);
}

.plan__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 22px clamp(18px, 1.17vw, 30px);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.18);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.plan--dark .plan__head { border-bottom-color: rgba(var(--c-cream-rgb), 0.22); }

.plan__tag { color: var(--accent); }
.plan--dark .plan__tag { color: var(--gold); }
.plan__audience { color: var(--faint); }
.plan--dark .plan__audience { color: rgba(var(--c-cream-rgb), 0.6); }

.plan__body {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 20px;
  flex: 1;
  padding: 34px clamp(18px, 1.17vw, 30px) 26px;
}

.plan__ghost {
  position: absolute;
  top: -30px;
  right: 22px;
  font-family: var(--display);
  font-size: clamp(90px, 6.64vw, 170px);
  line-height: 1;
  color: rgba(var(--ink-rgb), 0.07);
  pointer-events: none;
}

.plan--dark .plan__ghost { color: rgba(var(--c-gold-rgb), 0.14); }

.plan__name,
.plan__price,
.plan__save,
.plan__track,
.plan__cap,
.plan__blurb,
.plan__list { position: relative; }

.plan__name {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(26px, 1.80vw, 46px);
  line-height: 1.02;
  letter-spacing: -0.022em;
}

.plan__price {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 12px;
}

.plan__figure {
  font-family: var(--display);
  font-size: clamp(34px, 2.58vw, 66px);
  line-height: 0.92;
  white-space: nowrap;
}

.plan__unit {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.plan--dark .plan__unit { color: rgba(var(--c-cream-rgb), 0.6); }

.plan__save {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

#cycle-year:checked ~ .tplate .plan__save { color: var(--accent); }
.plan--dark .plan__save,
#cycle-year:checked ~ .tplate .plan--dark .plan__save { color: var(--gold); }

/* Полоса ёмкости плана */
.plan__track {
  height: 10px;
  border-radius: var(--r-pill);
  background: rgba(var(--ink-rgb), 0.12);
  overflow: hidden;
}

.plan--dark .plan__track { background: rgba(var(--c-cream-rgb), 0.16); }

.plan__fill {
  display: block;
  height: 100%;
  border-radius: var(--r-pill);
  background: var(--ink);
}

.plan--dark .plan__fill { background: var(--gold); }

.plan__fill--w12 { width: 12%; }
.plan__fill--w30 { width: 30%; }
.plan__fill--w62 { width: 62%; }
.plan__fill--w100 { width: 100%; }

.plan__cap {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.plan--dark .plan__cap { color: rgba(var(--c-cream-rgb), 0.6); }

.plan__blurb {
  font-size: clamp(15px, 0.70vw, 18px);
  font-weight: 300;
  line-height: 1.65;
  color: var(--muted);
}

.plan--dark .plan__blurb { color: rgba(var(--c-cream-rgb), 0.82); }

.plan__list { gap: 10px; }
.plan--dark .plan__list { color: rgba(var(--c-cream-rgb), 0.82); }
.plan--dark .plan__list li::before { color: var(--gold); }

.plan__foot { padding: 0 clamp(18px, 1.17vw, 30px) 28px; }

.plan__cta {
  width: 100%;
  height: clamp(56px, 2.66vw, 68px);
  padding: 0 20px;
  font-size: clamp(12px, 0.51vw, 13px);
}

.plan--dark .plan__cta {
  background: var(--gold);
  color: var(--c-night);
}

.plan--dark .plan__cta:hover,
.plan--dark .plan__cta:focus-visible {
  background: var(--c-cream);
  color: var(--c-night);
}

.plan__live {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding-top: 16px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.plan__live-value { color: var(--ink); }

/* --- Плита 03: что входит ------------------------------------------------- */

.cmp { --on-col0: none; --on-col1: none; --on-col2: inline; --on-col3: none; }
#col-0:checked ~ .cmp__head, #col-0:checked ~ .cmpsum, #col-0:checked ~ .cmprows, #col-0:checked ~ .tkicker, #col-0:checked ~ .tfoot { --on-col0: inline; --on-col1: none; --on-col2: none; --on-col3: none; }
#col-1:checked ~ .cmp__head, #col-1:checked ~ .cmpsum, #col-1:checked ~ .cmprows, #col-1:checked ~ .tkicker, #col-1:checked ~ .tfoot { --on-col0: none; --on-col1: inline; --on-col2: none; --on-col3: none; }
#col-2:checked ~ .cmp__head, #col-2:checked ~ .cmpsum, #col-2:checked ~ .cmprows, #col-2:checked ~ .tkicker, #col-2:checked ~ .tfoot { --on-col0: none; --on-col1: none; --on-col2: inline; --on-col3: none; }
#col-3:checked ~ .cmp__head, #col-3:checked ~ .cmpsum, #col-3:checked ~ .cmprows, #col-3:checked ~ .tkicker, #col-3:checked ~ .tfoot { --on-col0: none; --on-col1: none; --on-col2: none; --on-col3: inline; }

.on-col0 { display: var(--on-col0, none); }
.on-col1 { display: var(--on-col1, none); }
.on-col2 { display: var(--on-col2, none); }
.on-col3 { display: var(--on-col3, none); }

.cmp__tabs {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
  padding-bottom: 8px;
}

.cmp__tab {
  display: inline-flex;
  align-items: center;
  height: clamp(52px, 2.5vw, 64px);
  padding: 0 clamp(20px, 1.25vw, 32px);
  border-radius: var(--r-pill);
  cursor: pointer;
  font-family: var(--mono);
  font-size: clamp(12px, 0.55vw, 14px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
}

#col-0:checked ~ .cmp__head .cmp__tab--0,
#col-1:checked ~ .cmp__head .cmp__tab--1,
#col-2:checked ~ .cmp__head .cmp__tab--2,
#col-3:checked ~ .cmp__head .cmp__tab--3 {
  background: var(--ink);
  color: var(--bg);
}

.cmpsum {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
  gap: clamp(24px, 1.95vw, 50px);
  align-items: end;
  padding: clamp(22px, 1.33vw, 34px);
  border-radius: 14px;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.cmpsum__figure .figure__value { font-size: clamp(28px, 2.03vw, 52px); }
.cmpsum__count { color: var(--accent); }

.cmpsum__cta {
  height: clamp(62px, 3.28vw, 84px);
  padding: 0 clamp(24px, 1.41vw, 36px);
  font-size: clamp(12px, 0.55vw, 14px);
}

.cmprows {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(30px, 4.30vw, 110px);
  border-top: 2px solid var(--ink);
}

.cmprow {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) auto;
  gap: 22px;
  align-items: baseline;
  padding: 22px 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.12);
}

.cmprow__mark {
  font-size: clamp(15px, 0.70vw, 18px);
  color: var(--accent);
}

.cmprow__body {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.cmprow__group {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.cmprow__item { font-size: clamp(17px, 0.86vw, 22px); }

.cmprow__hint {
  font-size: clamp(15px, 0.66vw, 17px);
  font-weight: 300;
  line-height: 1.5;
  color: var(--muted);
}

.cmprow__value {
  font-family: var(--mono);
  font-size: clamp(13px, 0.59vw, 15px);
  letter-spacing: 0.1em;
  text-align: right;
  color: var(--ink);
}

/* Строка, которой на выбранном плане нет */
#col-0:checked ~ .cmprows .cmprow--off0,
#col-1:checked ~ .cmprows .cmprow--off1,
#col-2:checked ~ .cmprows .cmprow--off2,
#col-3:checked ~ .cmprows .cmprow--off3 { opacity: 0.5; }

#col-0:checked ~ .cmprows .cmprow--off0 .cmprow__item,
#col-1:checked ~ .cmprows .cmprow--off1 .cmprow__item,
#col-2:checked ~ .cmprows .cmprow--off2 .cmprow__item,
#col-3:checked ~ .cmprows .cmprow--off3 .cmprow__item { text-decoration: line-through; }

#col-0:checked ~ .cmprows .cmprow--off0 .cmprow__mark,
#col-1:checked ~ .cmprows .cmprow--off1 .cmprow__mark,
#col-2:checked ~ .cmprows .cmprow--off2 .cmprow__mark,
#col-3:checked ~ .cmprows .cmprow--off3 .cmprow__mark { color: var(--faint); }

/* --- Плита 04: подбор плана ----------------------------------------------- */

.calc { --on-city0: inline; --on-city1: none; --on-city2: none; --on-city3: none; }
#city-1:checked ~ .tkicker, #city-1:checked ~ .calc__verdict { --on-city0: none; --on-city1: inline; --on-city2: none; --on-city3: none; }
#city-2:checked ~ .tkicker, #city-2:checked ~ .calc__verdict { --on-city0: none; --on-city1: none; --on-city2: inline; --on-city3: none; }
#city-3:checked ~ .tkicker, #city-3:checked ~ .calc__verdict { --on-city0: none; --on-city1: none; --on-city2: none; --on-city3: inline; }

.on-city0 { display: var(--on-city0, inline); }
.on-city1 { display: var(--on-city1, none); }
.on-city2 { display: var(--on-city2, none); }
.on-city3 { display: var(--on-city3, none); }

.calc__controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  padding-bottom: 8px;
}

.calc__cities {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.calc__city {
  display: inline-flex;
  align-items: center;
  height: clamp(48px, 2.34vw, 60px);
  padding: 0 clamp(18px, 1.09vw, 28px);
  border-radius: var(--r-pill);
  cursor: pointer;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
}

#city-0:checked ~ .calc__head .calc__city:nth-of-type(1),
#city-1:checked ~ .calc__head .calc__city:nth-of-type(2),
#city-2:checked ~ .calc__head .calc__city:nth-of-type(3),
#city-3:checked ~ .calc__head .calc__city:nth-of-type(4) {
  background: var(--ink);
  color: var(--bg);
  box-shadow: none;
}

.calc__divider {
  width: 1px;
  height: 38px;
  margin: 0 8px;
  background: rgba(var(--ink-rgb), 0.2);
}

/* Ползунок появляется только со сценариями: без них он ничего не считает. */
.calc__slider { display: none; }
.js .calc__slider { display: block; }

.calc__count {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  padding-bottom: 20px;
}

.calc__count-label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.calc__count-value {
  font-family: var(--display);
  font-size: clamp(34px, 2.5vw, 64px);
  line-height: 1;
}

.calc__range {
  width: 100%;
  height: 44px;
  margin: 0;
  background: transparent;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}

.calc__range::-webkit-slider-runnable-track {
  height: 12px;
  border-radius: var(--r-pill);
  background: rgba(var(--ink-rgb), 0.12);
}

.calc__range::-moz-range-track {
  height: 12px;
  border-radius: var(--r-pill);
  background: rgba(var(--ink-rgb), 0.12);
}

.calc__range::-webkit-slider-thumb {
  width: 44px;
  height: 44px;
  margin-top: -16px;
  border: 0;
  border-radius: var(--r-pill);
  background: var(--accent);
  box-shadow: 0 0 0 6px rgba(var(--c-paper-rgb), 0.9);
  -webkit-appearance: none;
  appearance: none;
}

.calc__range::-moz-range-thumb {
  width: 44px;
  height: 44px;
  border: 0;
  border-radius: var(--r-pill);
  background: var(--accent);
  box-shadow: 0 0 0 6px rgba(var(--c-paper-rgb), 0.9);
}

.calc__range:focus-visible { outline-offset: 6px; }

.calc__ticks {
  position: relative;
  height: 34px;
  margin-top: 6px;
}

.calc__tick {
  position: absolute;
  top: 0;
  bottom: 14px;
  width: 1px;
  background: rgba(var(--ink-rgb), 0.4);
}

.calc__tick--accent { background: var(--accent); }
.calc__tick--0 { left: 0; }
.calc__tick--34 { left: 3.4%; }
.calc__tick--407 { left: 40.7%; }
.calc__tick--1000 { right: 0; }

.calc__tick-label {
  position: absolute;
  bottom: 0;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  color: var(--faint);
}

.calc__tick-label--0 { left: 0; }
/* Подпись отодвинута от засечки: на узком экране она наезжала на первую. */
.calc__tick-label--1 { left: 9%; }
.calc__tick-label--2 { left: 42%; }

.calc__tick-label--3 {
  right: 0;
  color: var(--ink);
}

.tiers {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(16px, 1.33vw, 34px);
  padding-top: 44px;
}

.tier {
  display: flex;
  flex-direction: column;
  border-radius: 14px;
  overflow: hidden;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  opacity: 0.72;
}

.tier--fits {
  background: var(--c-night);
  color: var(--c-cream);
  box-shadow: inset 0 0 0 1px rgba(var(--c-gold-rgb), 0.5);
  opacity: 1;
  transform: translateY(-8px);
}

.tier__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 22px clamp(18px, 1.17vw, 30px);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.18);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.tier--fits .tier__head { border-bottom-color: rgba(var(--c-cream-rgb), 0.24); }

.tier__tag { color: var(--accent); }
.tier--fits .tier__tag { color: var(--gold); }
.tier__range { color: var(--faint); }
.tier--fits .tier__range { color: rgba(var(--c-cream-rgb), 0.6); }

.tier__body {
  display: flex;
  flex-direction: column;
  gap: 18px;
  flex: 1;
  padding: 34px clamp(18px, 1.17vw, 30px) 30px;
}

.tier__name {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(26px, 1.80vw, 46px);
  line-height: 1.02;
  letter-spacing: -0.022em;
}

.tier__price {
  display: flex;
  align-items: baseline;
  flex-wrap: wrap;
  gap: 12px;
}

.tier__figure {
  font-family: var(--display);
  font-size: clamp(32px, 2.34vw, 60px);
  line-height: 0.92;
  white-space: nowrap;
}

.tier__unit,
.tier__row {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.tier--fits .tier__unit,
.tier--fits .tier__row { color: rgba(var(--c-cream-rgb), 0.6); }

.tier__row {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.18);
}

.tier--fits .tier__row { border-top-color: rgba(var(--c-cream-rgb), 0.22); }

.tier__value { color: var(--ink); }
.tier--fits .tier__value { color: var(--c-cream); }

.tier__state {
  margin-top: auto;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.tier--fits .tier__state { color: var(--gold); }

.calc__note {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

/* --- Плита 05: докупается отдельно ---------------------------------------- */

.tickets {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(18px, 1.41vw, 36px);
}

.ticket {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 22px;
  padding: clamp(30px, 1.72vw, 44px) clamp(24px, 1.56vw, 40px) clamp(26px, 1.48vw, 38px);
  border-radius: 4px 4px 14px 14px;
  overflow: hidden;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  transition: transform 0.22s ease, box-shadow 0.22s ease;
}

.ticket:hover,
.ticket:focus-within {
  transform: translateY(-8px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.55);
}

.ticket > * { position: relative; }

.ticket__perf {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 8px;
  background: repeating-linear-gradient(90deg, rgba(var(--ink-rgb), 0.3) 0 1px, transparent 1px 14px);
}

.ticket__ghost {
  position: absolute;
  right: 30px;
  bottom: -34px;
  font-family: var(--display);
  font-size: clamp(100px, 7.03vw, 180px);
  line-height: 1;
  color: rgba(var(--ink-rgb), 0.06);
  pointer-events: none;
}

/* Дырки от билетного компостера по бокам */
.ticket__punch {
  position: absolute;
  top: 96px;
  width: 28px;
  height: 28px;
  border-radius: var(--r-pill);
  background: var(--bg);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.ticket__punch--l { left: -14px; }
.ticket__punch--r { right: -14px; }

.ticket__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.ticket__no { color: var(--accent); }
.ticket__when { color: var(--faint); }

.ticket__name {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(26px, 1.80vw, 46px);
  line-height: 1.04;
  letter-spacing: -0.022em;
}

.ticket__text {
  font-size: clamp(16px, 0.74vw, 19px);
  font-weight: 300;
  line-height: 1.65;
  color: var(--muted);
}

.ticket__turn {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 14px 0;
  border-top: 1px dashed rgba(var(--ink-rgb), 0.26);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.ticket__turn-value { color: var(--ink); }

.ticket__price {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  margin-top: auto;
  padding-top: 22px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.18);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.ticket__sum {
  font-family: var(--display);
  font-size: clamp(30px, 2.03vw, 52px);
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
  color: var(--ink);
}

.ticket__cta {
  justify-content: space-between;
  height: clamp(58px, 2.73vw, 70px);
  padding: 0 clamp(20px, 1.09vw, 28px);
  font-size: 12px;
}

/* --- Плита 06: никогда не берём ------------------------------------------- */

.nevers {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(18px, 1.41vw, 36px);
}

.never {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 22px;
  padding: clamp(32px, 1.95vw, 50px) clamp(24px, 1.64vw, 42px) clamp(28px, 1.56vw, 40px);
  border-radius: 14px;
  overflow: hidden;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  transition: transform 0.22s ease, box-shadow 0.22s ease;
}

.never:hover {
  transform: translateY(-8px);
  box-shadow: inset 0 0 0 1px rgba(var(--c-red-rgb), 0.5);
}

.never > * { position: relative; }

.never__stamp {
  position: absolute;
  top: 32px;
  right: -14px;
  display: inline-flex;
  align-items: center;
  padding: 11px 26px;
  border-radius: var(--r-small);
  background: rgba(var(--c-paper-rgb), 0.7);
  box-shadow: inset 0 0 0 2px var(--accent);
  font-family: var(--mono);
  font-size: clamp(13px, 0.59vw, 15px);
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--c-red);
  transform: rotate(-8deg);
  pointer-events: none;
}

.never__ghost {
  position: absolute;
  bottom: -44px;
  left: 34px;
  font-family: var(--display);
  font-size: clamp(110px, 7.81vw, 200px);
  line-height: 1;
  color: rgba(var(--ink-rgb), 0.06);
  pointer-events: none;
}

.never__no {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
}

.never__name {
  max-width: 66%;
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(26px, 1.88vw, 48px);
  line-height: 1.04;
  letter-spacing: -0.022em;
  text-decoration: line-through;
  text-decoration-color: rgba(var(--c-red-rgb), 0.5);
  text-decoration-thickness: 3px;
}

.never__aka {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.never__text {
  font-size: clamp(16px, 0.74vw, 19px);
  font-weight: 300;
  line-height: 1.65;
  color: var(--muted);
}

.never__foot {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  margin-top: auto;
  padding-top: 24px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.18);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.never__zero {
  font-family: var(--display);
  font-size: clamp(24px, 1.33vw, 34px);
  letter-spacing: 0;
  color: var(--accent);
}

.never__total {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
}

.never__total-value {
  font-family: var(--display);
  font-size: clamp(38px, 2.81vw, 72px);
  line-height: 1;
}

.never__total-label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

/* --- Плита 07: оплата за год ---------------------------------------------- */

.invoices {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(24px, 1.56vw, 40px);
  align-items: stretch;
}

.invoice {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 26px;
  padding: clamp(34px, 2.11vw, 54px) clamp(26px, 1.88vw, 48px) clamp(30px, 1.72vw, 44px);
  border-radius: 4px 4px 14px 14px;
  overflow: hidden;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.invoice--dark {
  background: var(--c-night);
  color: var(--c-cream);
  box-shadow: inset 0 0 0 1px rgba(var(--c-gold-rgb), 0.45);
}

.invoice__perf {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 8px;
  background: repeating-linear-gradient(90deg, rgba(var(--ink-rgb), 0.3) 0 1px, transparent 1px 14px);
}

.invoice--dark .invoice__perf {
  background: repeating-linear-gradient(90deg, rgba(var(--c-cream-rgb), 0.34) 0 1px, transparent 1px 14px);
}

.invoice__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.invoice__option {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  color: var(--accent);
}

.invoice--dark .invoice__option { color: var(--gold); }
.invoice__count { color: var(--faint); }
.invoice--dark .invoice__count { color: rgba(var(--c-cream-rgb), 0.6); }

/* Ярлык «−2 месяца» стоит в потоке, а не печатью поверх строк: печатью он
   наезжал на каждую строку по очереди. */
.invoice__pill {
  display: inline-flex;
  align-items: center;
  padding: 8px 18px;
  border-radius: var(--r-pill);
  box-shadow: inset 0 0 0 1px var(--gold);
  font-size: 12px;
  letter-spacing: 0.26em;
  color: var(--gold);
}

.invoice__name {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(30px, 2.34vw, 60px);
  line-height: 1;
  letter-spacing: -0.024em;
}

.invoice__row {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 16px 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.14);
  font-family: var(--mono);
  font-size: clamp(13px, 0.55vw, 14px);
  color: var(--muted);
}

.invoice__rows .invoice__row:first-child { border-top-color: rgba(var(--ink-rgb), 0.18); }
.invoice--dark .invoice__row {
  border-top-color: rgba(var(--c-cream-rgb), 0.14);
  color: rgba(var(--c-cream-rgb), 0.7);
}

.invoice--dark .invoice__rows .invoice__row:first-child { border-top-color: rgba(var(--c-cream-rgb), 0.24); }

.invoice__value { color: var(--ink); }
.invoice--dark .invoice__value { color: var(--c-cream); }
.invoice__value--accent { color: var(--faint); }
.invoice--dark .invoice__value--accent { color: var(--gold); }

.invoice__bar {
  display: flex;
  gap: 7px;
}

.invoice__seg {
  flex: 1;
  height: 16px;
  border-radius: 3px;
  background: rgba(var(--ink-rgb), 0.34);
}

.invoice--dark .invoice__seg { background: var(--gold); }

.invoice__seg--empty,
.invoice--dark .invoice__seg--empty {
  background: transparent;
  box-shadow: inset 0 0 0 1px rgba(var(--c-cream-rgb), 0.4);
}

.invoice__note {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.invoice--dark .invoice__note { color: var(--gold); }

.invoice__total {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  margin-top: auto;
  padding-top: 24px;
  border-top: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.invoice--dark .invoice__total {
  border-top-color: rgba(var(--c-cream-rgb), 0.5);
  color: var(--gold);
}

.invoice__sum {
  font-family: var(--display);
  font-size: clamp(34px, 2.58vw, 66px);
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
  color: var(--ink);
}

.invoice--dark .invoice__sum { color: var(--c-cream); }

.billing__band {
  grid-template-columns: clamp(220px, 16.41vw, 420px) repeat(3, minmax(0, 1fr)) auto;
  align-items: end;
}

.billing__figure .figure__value { font-size: clamp(28px, 1.95vw, 50px); }

/* --- Плита 08: вопросы про деньги ----------------------------------------- */

/* --- Плита 08: вопросы про деньги ----------------------------------------- */

/* Счётчик в шапке плиты показывает открытый вопрос */
.tkicker span[class^="on-q"] { display: none; }
#pfaq-0:checked ~ .tkicker .on-q0,
#pfaq-1:checked ~ .tkicker .on-q1,
#pfaq-2:checked ~ .tkicker .on-q2,
#pfaq-3:checked ~ .tkicker .on-q3,
#pfaq-4:checked ~ .tkicker .on-q4,
#pfaq-5:checked ~ .tkicker .on-q5,
#pfaq-6:checked ~ .tkicker .on-q6,
#pfaq-7:checked ~ .tkicker .on-q7 { display: inline; }

.pfaq__grid {
  display: grid;
  grid-template-columns: minmax(0, 640fr) minmax(0, 1690fr);
  gap: clamp(30px, 4.30vw, 110px);
  align-items: start;
}

.pfaq__aside {
  position: sticky;
  top: 40px;
  display: flex;
  flex-direction: column;
  gap: clamp(20px, 1.33vw, 34px);
}

.pfaq__title {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(30px, 2.81vw, 72px);
  line-height: 1;
  letter-spacing: -0.026em;
}

.pfaq__intro {
  font-size: clamp(16px, 0.78vw, 20px);
  font-weight: 300;
  line-height: 1.7;
  color: var(--muted);
}

.pfaq__facts { border-top: 2px solid var(--ink); }
.pfaq__facts .tfacts__row { padding: 16px 0; }

.pfaq__tags li {
  height: 38px;
  padding: 0 16px;
  font-size: 12px;
}

.pfaq__cta {
  justify-content: space-between;
  height: clamp(66px, 3.44vw, 88px);
  padding: 0 clamp(24px, 1.48vw, 38px);
  font-size: clamp(13px, 0.59vw, 15px);
}

.pfaq__signed {
  display: flex;
  align-items: center;
  gap: 16px;
  padding-top: 22px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.14);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.pfaq__pen {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 34px;
  height: 34px;
  border-radius: var(--r-pill);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
  font-size: 13px;
  color: var(--accent);
}

.clauses {
  display: flex;
  flex-direction: column;
  border-top: 2px solid var(--ink);
}

/* Красная метка идёт по всей высоте открытой записи — от вопроса до конца
   ответа, — поэтому она живёт на строке, а не на её шапке. */
.clauserow {
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
  border-left: 3px solid transparent;
}

.clauserow__head {
  display: grid;
  grid-template-columns: 90px minmax(0, 1fr) auto 56px;
  gap: 22px;
  align-items: center;
  padding: clamp(22px, 1.33vw, 34px) 22px;
  margin-right: -22px;
  cursor: pointer;
  transition: background 0.2s ease;
}

.clauserow__head:hover { background: rgba(var(--c-red-rgb), 0.06); }

.clauserow__no {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
}

.clauserow__q {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.clauserow__question {
  font-family: var(--display);
  font-size: clamp(22px, 1.64vw, 42px);
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.clauserow__tag,
.clauserow__verdict {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.clauserow__verdict {
  text-align: right;
  color: var(--muted);
}

/* Диск ± справа: плюс — две палочки, минус — одна. */
.clauserow__sign {
  position: relative;
  justify-self: end;
  width: 56px;
  height: 56px;
  border-radius: var(--r-pill);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
}

.clauserow__sign::before,
.clauserow__sign::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  background: var(--ink);
  transform: translate(-50%, -50%);
}

.clauserow__sign::before {
  width: 16px;
  height: 1px;
}

.clauserow__sign::after {
  width: 1px;
  height: 16px;
}

.clauserow__body {
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.3s ease;
}

.clauserow__answer {
  max-width: 1500px;
  padding: 0 22px 40px 128px;
  font-size: clamp(16px, 0.82vw, 21px);
  font-weight: 300;
  line-height: 1.7;
  color: var(--muted);
}

/* Открытая строка */
#pfaq-0:checked ~ .pfaq__grid .clauserow--0 .clauserow__body,
#pfaq-1:checked ~ .pfaq__grid .clauserow--1 .clauserow__body,
#pfaq-2:checked ~ .pfaq__grid .clauserow--2 .clauserow__body,
#pfaq-3:checked ~ .pfaq__grid .clauserow--3 .clauserow__body,
#pfaq-4:checked ~ .pfaq__grid .clauserow--4 .clauserow__body,
#pfaq-5:checked ~ .pfaq__grid .clauserow--5 .clauserow__body,
#pfaq-6:checked ~ .pfaq__grid .clauserow--6 .clauserow__body,
#pfaq-7:checked ~ .pfaq__grid .clauserow--7 .clauserow__body { max-height: 420px; }

#pfaq-0:checked ~ .pfaq__grid .clauserow--0,
#pfaq-1:checked ~ .pfaq__grid .clauserow--1,
#pfaq-2:checked ~ .pfaq__grid .clauserow--2,
#pfaq-3:checked ~ .pfaq__grid .clauserow--3,
#pfaq-4:checked ~ .pfaq__grid .clauserow--4,
#pfaq-5:checked ~ .pfaq__grid .clauserow--5,
#pfaq-6:checked ~ .pfaq__grid .clauserow--6,
#pfaq-7:checked ~ .pfaq__grid .clauserow--7 { border-left-color: var(--accent); }

#pfaq-0:checked ~ .pfaq__grid .clauserow--0 .clauserow__head,
#pfaq-1:checked ~ .pfaq__grid .clauserow--1 .clauserow__head,
#pfaq-2:checked ~ .pfaq__grid .clauserow--2 .clauserow__head,
#pfaq-3:checked ~ .pfaq__grid .clauserow--3 .clauserow__head,
#pfaq-4:checked ~ .pfaq__grid .clauserow--4 .clauserow__head,
#pfaq-5:checked ~ .pfaq__grid .clauserow--5 .clauserow__head,
#pfaq-6:checked ~ .pfaq__grid .clauserow--6 .clauserow__head,
#pfaq-7:checked ~ .pfaq__grid .clauserow--7 .clauserow__head {
  background: rgba(var(--c-red-rgb), 0.09);
}

#pfaq-0:checked ~ .pfaq__grid .clauserow--0 .clauserow__sign::after,
#pfaq-1:checked ~ .pfaq__grid .clauserow--1 .clauserow__sign::after,
#pfaq-2:checked ~ .pfaq__grid .clauserow--2 .clauserow__sign::after,
#pfaq-3:checked ~ .pfaq__grid .clauserow--3 .clauserow__sign::after,
#pfaq-4:checked ~ .pfaq__grid .clauserow--4 .clauserow__sign::after,
#pfaq-5:checked ~ .pfaq__grid .clauserow--5 .clauserow__sign::after,
#pfaq-6:checked ~ .pfaq__grid .clauserow--6 .clauserow__sign::after,
#pfaq-7:checked ~ .pfaq__grid .clauserow--7 .clauserow__sign::after { display: none; }

/* --- Плита 09: бланк открытия --------------------------------------------- */

.slip__free {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 20px;
}

.slip__seal {
  display: inline-flex;
  align-items: center;
  padding: 12px 28px;
  border-radius: var(--r-small);
  box-shadow: inset 0 0 0 2px var(--accent);
  font-family: var(--mono);
  font-size: clamp(13px, 0.63vw, 16px);
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--accent);
}

.slip__seal-note {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.slip__figures {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
  margin-bottom: 34px;
  padding: 28px 30px;
  border-radius: var(--r-card);
  background: rgba(var(--c-red-rgb), 0.07);
}

.slip__figure .figure__value { font-size: clamp(26px, 1.72vw, 44px); }

/* ==========================================================================
   33. Pricing — адаптив
   ========================================================================== */

@media (max-width: 1440px) {
  .cmprows { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 1240px) {
  .plans,
  .plans--lives,
  .tiers { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .plan--step3 { margin-top: 0; }
  .plan--step4 { margin-top: clamp(16px, 1.33vw, 34px); }

  .segments,
  .tickets,
  .nevers { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .cmpsum {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 26px;
  }

  .cmpsum__cta { grid-column: 1 / -1; }

  .billing__band { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .billing__band .band__copy { grid-column: 1 / -1; }
  .billing__band .band__cta { grid-column: 1 / -1; }

  .pfaq__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 44px;
  }

  .pfaq__aside { position: static; }
}

@media (max-width: 1024px) {
  /* Модификаторы разбивки объявлены ниже общего правила адаптива, поэтому их
     нужно сбрасывать здесь же — иначе шапка секции остаётся в две колонки. */
  .section-head--1400,
  .section-head--1240 {
    grid-template-columns: minmax(0, 1fr);
    gap: 26px;
  }

  .invoices { grid-template-columns: minmax(0, 1fr); }

  .calc__controls { justify-content: flex-start; }

  .clauserow__head { grid-template-columns: 70px minmax(0, 1fr) 56px; }
  .clauserow__verdict { grid-column: 2; text-align: left; }
  .clauserow__answer { padding-left: 92px; }

  .segments { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 860px) {
  .plans,
  .plans--lives,
  .tiers,
  .tickets,
  .nevers { grid-template-columns: minmax(0, 1fr); }

  .plan--step2,
  .plan--step4 { margin-top: 0; }

  .cycle,
  .cmp__tabs,
  .calc__cities { justify-content: flex-start; }

  .calc__divider { display: none; }

  .never__name { max-width: 100%; }

  /* Засечки на шкале сходятся вплотную — оставляем крайние подписи. */
  .calc__tick-label--1,
  .calc__tick-label--2 { display: none; }

  .billing__band { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .slip__figures { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 600px) {
  .cmpsum,
  .billing__band { grid-template-columns: minmax(0, 1fr); }

  .cmprow { grid-template-columns: 26px minmax(0, 1fr); }
  .cmprow__value { grid-column: 2; text-align: left; }

  .clauserow__head {
    grid-template-columns: minmax(0, 1fr) 44px;
    gap: 14px;
    /* На телефоне вылет под подсветку строки некуда девать — убираем. */
    margin-right: 0;
  }

  /* Подпись «Yearly — 2 months free» в строку уже не входит: переключатель
     «месяц / год» встаёт столбиком во всю ширину. */
  .cycle {
    width: 100%;
    flex-direction: column;
    align-items: stretch;
    border-radius: var(--r-card);
  }

  .cycle__tab {
    justify-content: center;
    height: 48px;
    padding: 0 10px;
    letter-spacing: 0.12em;
  }

  /* Вопрос, ярлык и вердикт идут столбиком слева, знак — справа во всю высоту:
     иначе вопрос попадает в колонку знака шириной 44px и вылезает за экран. */
  .clauserow__no,
  .clauserow__q,
  .clauserow__verdict { grid-column: 1; }

  .clauserow__sign {
    grid-column: 2;
    grid-row: 1 / -1;
    align-self: center;
    width: 44px;
    height: 44px;
  }
  .clauserow__answer { padding-left: 0; }

  /* «Option 01 · 12 invoices» в одну строку на телефоне не входит и режется
     карточкой — пускаем в две. */
  .invoice__head {
    flex-wrap: wrap;
    gap: 6px 16px;
  }

  .never__stamp,
  .slip__seal { display: none; }

  .segment__ghost,
  .plan__ghost,
  .ticket__ghost,
  .never__ghost { display: none; }

  .cmpsum__cta,
  .band__actions .btn,
  .tfoot__cta { width: 100%; }
}

/* ==========================================================================
   34. Mortgage — шесть калькуляторов
   ========================================================================== */

.section-head__title--76 { font-size: clamp(30px, 2.97vw, 76px); }

/* Полоса «тело кредита / проценты» — общая для всех плит */
.mbar {
  display: flex;
  height: 22px;
  border-radius: var(--r-pill);
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.28);
  background: rgba(var(--ink-rgb), 0.14);
}

.mbar--thin { height: 14px; }

.mbar--flat {
  height: 16px;
  border-radius: var(--r-pill);
  box-shadow: none;
  background: rgba(var(--ink-rgb), 0.12);
}

.mbar__capital {
  display: block;
  height: 100%;
  background: var(--accent);
}

.mbar__legend {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
}

.mbar__capital-key { color: var(--accent); }

/* Ползунок: один вид на всю страницу */
.mrange {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.mrange__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
}

.mrange__label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.mrange__value {
  font-family: var(--display);
  font-size: clamp(24px, 1.48vw, 38px);
  line-height: 1;
  white-space: nowrap;
}

.mrange__input,
.mcell .mrange__input {
  width: 100%;
  height: 30px;
  margin: 0;
  background: transparent;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}

.mrange__input::-webkit-slider-runnable-track {
  height: 8px;
  border-radius: var(--r-pill);
  background: rgba(var(--ink-rgb), 0.14);
}

.mrange__input::-moz-range-track {
  height: 8px;
  border-radius: var(--r-pill);
  background: rgba(var(--ink-rgb), 0.14);
}

.mrange__input::-webkit-slider-thumb {
  width: 30px;
  height: 30px;
  margin-top: -11px;
  border: 0;
  border-radius: var(--r-pill);
  background: var(--accent);
  box-shadow: 0 0 0 5px rgba(var(--c-paper-rgb), 0.9);
  -webkit-appearance: none;
  appearance: none;
}

.mrange__input::-moz-range-thumb {
  width: 30px;
  height: 30px;
  border: 0;
  border-radius: var(--r-pill);
  background: var(--accent);
  box-shadow: 0 0 0 5px rgba(var(--c-paper-rgb), 0.9);
}

.mrange__input:focus-visible { outline-offset: 6px; }

.mcontrols {
  display: grid;
  gap: clamp(24px, 2.34vw, 60px);
}

.mcontrols--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(24px, 2.73vw, 70px);
  padding-top: 44px;
  border-top: 2px solid var(--ink);
}

.mcontrols--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.mownership .mcontrols--4 {
  padding-top: 44px;
  border-top: 2px solid var(--ink);
}

/* --- Плита 01: платёж ------------------------------------------------------ */

.mslip {
  padding: clamp(36px, 2.5vw, 64px) clamp(24px, 2.34vw, 60px);
  gap: clamp(28px, 1.80vw, 46px);
}

.mslip__mark {
  right: clamp(24px, 2.19vw, 56px);
  bottom: clamp(20px, 1.56vw, 40px);
  height: clamp(64px, 4.69vw, 120px);
  opacity: 0.1;
}

.mfields {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(20px, 1.56vw, 40px);
}

.mfield {
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-width: 0;
}

.mfield__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.mfield__no { color: var(--accent); }

/* min-width:0 обязателен: иначе поле не сжимается ниже своей ширины и
   последняя колонка вылезает за бланк. */
.mfield__input {
  width: 100%;
  min-width: 0;
  height: clamp(72px, 4.30vw, 110px);
  padding: 0 clamp(16px, 1.09vw, 28px);
  border: 0;
  border-bottom: 2px solid var(--accent);
  background: var(--bg);
  font-family: var(--display);
  font-size: clamp(26px, 1.88vw, 48px);
  color: var(--ink);
}

.mfield__input:focus-visible {
  outline: none;
  box-shadow: inset 0 0 0 1px var(--ink);
}

.mfield__unit {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.mresult {
  display: grid;
  grid-template-columns: minmax(0, 640fr) repeat(3, minmax(0, 540fr));
  gap: clamp(24px, 2.34vw, 60px);
  align-items: end;
  padding-top: 44px;
  border-top: 2px solid var(--ink);
}

.mresult__main {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.mresult__key {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
}

.mresult__value {
  font-family: var(--display);
  font-size: clamp(46px, 4.30vw, 110px);
  line-height: 0.9;
  white-space: nowrap;
}

.mresult__figure .figure__value {
  font-size: clamp(26px, 1.88vw, 48px);
  white-space: nowrap;
}

.mresult__accent { color: var(--accent); }

.msplit {
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(220px, 16.41vw, 420px);
  gap: clamp(24px, 2.34vw, 60px);
  align-items: center;
}

.msplit__bar {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.mslip__cta {
  justify-content: space-between;
  height: clamp(62px, 3.28vw, 84px);
  padding: 0 clamp(24px, 1.41vw, 36px);
  font-size: clamp(12px, 0.55vw, 14px);
}

/* --- Плита 02: виджет ------------------------------------------------------ */

.mwidget-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(320px, 24.22vw, 620px);
  gap: clamp(24px, 2.34vw, 60px);
  align-items: start;
}

.mwidget__frame {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: clamp(320px, 32.03vw, 820px);
  border-radius: 14px;
  background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.1) 0 2px, transparent 2px 16px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  font-family: var(--mono);
  font-size: clamp(13px, 0.59vw, 15px);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--muted);
  text-align: center;
}

/* Пришёл настоящий кадр страницы объявления: штриховка, подпись и минимальная
   высота больше не нужны — рамку задаёт сам снимок, поля вокруг него не остаются. */
.mwidget__frame--photo {
  display: block;
  min-height: 0;
  padding: 0;
  overflow: hidden;
  background: none;
}

.mwidget__shot {
  display: block;
  width: 100%;
  height: auto;
  border-radius: inherit;
}

.mwidget {
  display: flex;
  flex-direction: column;
}

.mwidget__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 16px;
  border-bottom: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
}

.mwidget__ref { color: var(--faint); }

.mwidget__home {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  padding-top: 18px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.mwidget__price { color: var(--ink); }

.mwidget__pay {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  padding: 14px 0 22px;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
}

.mwidget__figure {
  font-family: var(--display);
  font-size: clamp(38px, 2.97vw, 76px);
  line-height: 0.92;
  white-space: nowrap;
}

.mwidget__unit {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.mwidget__split {
  display: flex;
  flex-direction: column;
  gap: 9px;
  padding: 18px 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
}

.mwidget__controls .mrange {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px 20px;
  align-items: center;
  padding: 22px 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.12);
}

.mwidget__controls .mrange:last-child { border-bottom: 2px solid var(--ink); }

.mwidget__controls .mrange__head {
  grid-column: 1;
  grid-row: 1;
}

.mwidget__controls .mrange__value {
  font-family: var(--mono);
  font-size: clamp(13px, 0.59vw, 15px);
  color: var(--ink);
}

.mwidget__controls .mrange__input {
  grid-column: 2;
  grid-row: 1;
  width: clamp(150px, 10.16vw, 260px);
  height: 32px;
}

.mwidget__totals {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 22px 0;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.mwidget__totals p {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  color: var(--faint);
}

.mwidget__totals p span + span { color: var(--ink); }
.mwidget__accent { color: var(--accent); }

.mwidget__cta {
  justify-content: space-between;
  height: clamp(58px, 3.05vw, 78px);
  padding: 0 clamp(20px, 1.17vw, 30px);
  font-size: 12px;
}

.mwidget__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-top: 16px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.mwidget__foot a { color: var(--accent); }

/* --- Плита 03: полоса ------------------------------------------------------ */

.mstrip {
  display: flex;
  flex-direction: column;
  gap: clamp(20px, 1.56vw, 40px);
}

.mstrip__index {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 420fr)) minmax(0, 760fr);
  align-items: end;
  padding-bottom: 14px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
}

.mstrip__index span + span { padding-left: clamp(20px, 1.56vw, 40px); }

.mstrip__ltv {
  text-align: right;
  color: var(--faint);
}

.mstrip__row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 420fr)) minmax(0, 760fr);
  align-items: stretch;
  border-top: 2px solid var(--ink);
  border-bottom: 2px solid var(--ink);
}

/* Одна сетка на все пять ячеек — подпись, значение, ползунок, засечки. Без неё
   ячейки центруются каждая по себе и ничего не выравнивается. */
.mcell {
  display: grid;
  grid-template-rows: 18px 1fr 30px 14px;
  gap: 16px;
  align-items: end;
  padding: clamp(24px, 1.48vw, 38px) clamp(16px, 1.56vw, 40px);
  border-left: 1px solid rgba(var(--ink-rgb), 0.18);
}

.mcell:first-child {
  padding-left: 0;
  border-left: 0;
}

.mcell__label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.mcell__label--accent { color: var(--accent); }

.mcell__value {
  display: flex;
  align-items: baseline;
  gap: 14px;
  font-family: var(--display);
  font-size: clamp(26px, 1.88vw, 48px);
  line-height: 1;
  white-space: nowrap;
}

.mcell__aside {
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  color: var(--faint);
  white-space: nowrap;
}

.mcell__ticks {
  display: flex;
  justify-content: space-between;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  color: var(--faint);
}

.mcell--result {
  grid-template-columns: minmax(0, 1fr) clamp(60px, 3.44vw, 88px);
  column-gap: clamp(18px, 1.33vw, 34px);
  padding-inline: clamp(20px, 1.88vw, 48px);
  border-left: 2px solid var(--ink);
  background: rgba(var(--c-red-rgb), 0.05);
}

.mcell__arrow {
  grid-row: 1 / span 2;
  grid-column: 2;
  align-self: end;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(60px, 3.44vw, 88px);
  height: clamp(60px, 3.44vw, 88px);
  border-radius: var(--r-pill);
  background: var(--ink);
  color: var(--bg);
  font-size: clamp(20px, 1.17vw, 30px);
  transition: background var(--mid);
}

.mcell__arrow:hover,
.mcell__arrow:focus-visible {
  background: var(--accent);
  color: var(--bg);
}

.mcell__figure {
  grid-column: 1;
  font-family: var(--display);
  font-size: clamp(32px, 3.20vw, 82px);
  line-height: 0.92;
  white-space: nowrap;
}

.mcell__bar,
.mcell__legend { grid-column: 1 / -1; }

.mcell__bar {
  display: flex;
  align-items: center;
  height: 30px;
}

.mcell__bar .mbar { width: 100%; }

.mcell__legend {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.mstrip__foot {
  flex-wrap: wrap;
  gap: 16px 24px;
}

.mstrip__divider {
  width: 1px;
  height: 14px;
  background: rgba(var(--ink-rgb), 0.24);
}

/* --- Плита 04: график погашения -------------------------------------------- */

.mschedule { gap: clamp(28px, 2.03vw, 52px); }

.mchart__legend {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 24px;
  padding-bottom: 18px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.mchart__keys {
  display: flex;
  align-items: center;
  gap: 22px;
}

.mchart__key {
  display: flex;
  align-items: center;
  gap: 10px;
}

.mchart__key::before {
  content: "";
  width: 16px;
  height: 16px;
  border-radius: 3px;
  background: rgba(var(--ink-rgb), 0.3);
}

.mchart__key--capital::before { background: var(--accent); }
.mchart__cross { color: var(--ink); }

.mchart__grid {
  display: grid;
  grid-template-columns: clamp(70px, 4.69vw, 120px) minmax(0, 1fr);
  gap: 26px;
}

.mchart__axis {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  height: clamp(280px, 16.41vw, 420px);
  text-align: right;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  color: var(--faint);
}

.mchart__plot {
  position: relative;
  display: flex;
  align-items: flex-end;
  gap: 6px;
  height: clamp(280px, 16.41vw, 420px);
  border-bottom: 2px solid var(--ink);
}

.mchart__plot::before,
.mchart__plot::after {
  content: "";
  position: absolute;
  right: 0;
  left: 0;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.14);
  pointer-events: none;
}

.mchart__plot::before { top: 0; }
.mchart__plot::after { top: 50%; }

.mchart__bar {
  position: relative;
  display: flex;
  align-items: flex-end;
  flex: 1;
  border-radius: 3px 3px 0 0;
  background: rgba(var(--ink-rgb), 0.3);
}

.mchart__capital {
  display: block;
  width: 100%;
  border-radius: 0 0 3px 3px;
  background: var(--accent);
}

/* Метка перелома: полосатая заливка читается и на бледной, и на красной части
   столбца, поэтому она нарисована повторяющимся градиентом, а не сплошным. */
.mchart__mark {
  position: absolute;
  top: 0;
  bottom: 0;
  left: -2px;
  width: 2px;
  background: repeating-linear-gradient(180deg, var(--c-red) 0 8px, rgba(var(--c-paper-rgb), 0.9) 8px 16px);
  pointer-events: none;
}

.mchart__mark-label {
  position: absolute;
  bottom: 12px;
  left: 8px;
  max-height: calc(100% - 24px);
  padding: 10px 6px;
  border-radius: 3px;
  background: rgba(var(--c-paper-rgb), 0.92);
  box-shadow: inset 0 0 0 1px rgba(var(--c-red-rgb), 0.55);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--c-red);
  white-space: nowrap;
  writing-mode: vertical-rl;
}

.mchart__scale {
  display: flex;
  justify-content: space-between;
  padding-top: 14px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  color: var(--faint);
}

.mchart__scale-last { color: var(--ink); }

.mmilestones {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 2px solid var(--ink);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.18);
}

.mmilestone {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 26px clamp(18px, 1.33vw, 34px);
  border-left: 1px solid rgba(var(--ink-rgb), 0.14);
}

.mmilestone:first-child {
  padding-left: 0;
  border-left: 0;
}

.mmilestone__value {
  font-family: var(--display);
  font-size: clamp(26px, 1.72vw, 44px);
  line-height: 1;
  white-space: nowrap;
}

.mmilestone__value--accent { color: var(--accent); }

.mmilestone__label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.mschedule__grid {
  display: grid;
  grid-template-columns: minmax(0, 1610fr) minmax(0, 760fr);
  gap: clamp(30px, 2.73vw, 70px);
  align-items: start;
}

.mtable {
  display: flex;
  flex-direction: column;
}

.mtable__caption {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  padding-bottom: 16px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.mtable__fact { color: var(--ink); }

.mtable__body {
  display: flex;
  flex-direction: column;
  border-top: 2px solid var(--ink);
}

.mtable__row {
  display: grid;
  grid-template-columns: clamp(70px, 5.47vw, 140px) repeat(4, minmax(0, 1fr));
  gap: clamp(14px, 1.33vw, 34px);
  align-items: center;
  padding: 16px clamp(12px, 0.86vw, 22px);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.1);
  font-family: var(--mono);
  font-size: clamp(13px, 0.63vw, 16px);
  text-align: right;
  color: var(--ink);
}

.mtable__row--zebra { background: rgba(var(--ink-rgb), 0.03); }

.mtable__row--head {
  padding: 18px clamp(12px, 0.86vw, 22px);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.2);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.mtable__row--total {
  padding: 22px clamp(12px, 0.86vw, 22px);
  border-top: 2px solid var(--ink);
  border-bottom: 0;
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.mtable__row--total span:not(.mtable__no):not(.mtable__int) { color: var(--ink); }

.mtable__no {
  text-align: left;
  letter-spacing: 0.14em;
  color: var(--faint);
}

.mtable__row--head span:first-child,
.mtable__row--total .mtable__no { text-align: left; }

.mtable__row--total .mtable__no { color: var(--ink); }
.mtable__cap { color: var(--accent); }
.mtable__int { color: var(--muted); }

.mtable__row:hover { background: rgba(var(--c-red-rgb), 0.05); }
.mtable__row--head:hover { background: none; }

.mpanel {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 26px;
  padding: clamp(30px, 1.88vw, 48px) clamp(24px, 1.72vw, 44px);
  border-radius: 14px;
  overflow: hidden;
  background: var(--c-night);
  color: var(--c-cream);
}

.mpanel::before {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(45deg, rgba(var(--c-cream-rgb), 0.045) 0 2px, transparent 2px 18px);
  pointer-events: none;
}

.mpanel > * { position: relative; }

.mpanel__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold);
}

.mpanel__years { color: rgba(var(--c-cream-rgb), 0.6); }

.mpanel__figure {
  font-family: var(--display);
  font-size: clamp(46px, 4.30vw, 110px);
  line-height: 0.9;
  white-space: nowrap;
}

.mpanel__text {
  font-size: clamp(16px, 0.74vw, 19px);
  font-weight: 300;
  line-height: 1.7;
  color: rgba(var(--c-cream-rgb), 0.82);
}

.mpanel__rows {
  display: flex;
  flex-direction: column;
  margin-top: auto;
}

.mpanel__rows p {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 16px 0;
  border-top: 1px solid rgba(var(--c-cream-rgb), 0.14);
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(var(--c-cream-rgb), 0.6);
}

.mpanel__rows p:first-child { border-top-color: rgba(var(--c-cream-rgb), 0.22); }
.mpanel__rows p span + span { color: var(--c-cream); }
.mpanel__gold { color: var(--gold); }

.mpanel__over {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 24px 26px;
  border-radius: var(--r-tile);
  background: rgba(var(--c-gold-rgb), 0.14);
}

.mpanel__over-key {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold);
}

.mpanel__over-text {
  font-size: clamp(16px, 0.74vw, 19px);
  font-weight: 300;
  line-height: 1.6;
  color: rgba(var(--c-cream-rgb), 0.9);
}

/* --- Плита 05: сравнение сроков -------------------------------------------- */

.mterms {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(24px, 1.56vw, 40px);
}

.mterm {
  display: flex;
  flex-direction: column;
  border-radius: 14px;
  overflow: hidden;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.mterm--dark {
  background: var(--c-night);
  color: var(--c-cream);
  box-shadow: inset 0 0 0 1px rgba(var(--c-gold-rgb), 0.45);
}

.mterm__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 22px clamp(20px, 1.48vw, 38px);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.16);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.mterm--dark .mterm__head { border-bottom-color: rgba(var(--c-cream-rgb), 0.22); }

.mterm__tag { color: var(--accent); }
.mterm--dark .mterm__tag { color: var(--gold); }
.mterm__note { color: var(--faint); }
.mterm--dark .mterm__note { color: rgba(var(--c-cream-rgb), 0.6); }

.mterm__body {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 24px;
  flex: 1;
  padding: clamp(28px, 1.64vw, 42px) clamp(22px, 1.48vw, 38px) clamp(24px, 1.33vw, 34px);
  overflow: hidden;
}

.mterm__ghost {
  position: absolute;
  top: -34px;
  right: 24px;
  font-family: var(--display);
  font-size: clamp(110px, 7.42vw, 190px);
  line-height: 1;
  color: rgba(var(--ink-rgb), 0.06);
  pointer-events: none;
}

.mterm--dark .mterm__ghost { color: rgba(var(--c-gold-rgb), 0.14); }

.mterm__body > *:not(.mterm__ghost) { position: relative; }

.mterm__name {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(28px, 2.03vw, 52px);
  line-height: 1.02;
  letter-spacing: -0.022em;
}

.mterm__pay {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.mterm__figure {
  font-family: var(--display);
  font-size: clamp(38px, 3.20vw, 82px);
  line-height: 0.92;
  white-space: nowrap;
}

.mterm__unit,
.mterm__share {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.mterm--dark .mterm__unit,
.mterm--dark .mterm__share { color: rgba(var(--c-cream-rgb), 0.6); }

.mterm__split {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.mterm--dark .mbar--flat { background: rgba(var(--c-cream-rgb), 0.16); }
.mterm--dark .mbar__capital { background: var(--gold); }

.mterm__rows {
  display: flex;
  flex-direction: column;
}

.mterm__rows p {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 15px 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--faint);
}

.mterm--dark .mterm__rows p { border-top-color: rgba(var(--c-cream-rgb), 0.22); }
.mterm__rows p span + span { color: var(--ink); }
.mterm--dark .mterm__rows p span + span { color: var(--c-cream); }

.mterm__delta--up { color: var(--accent); }
.mterm--dark .mterm__delta--up { color: var(--gold); }
.mterm__delta--muted { color: var(--faint); }

.mcompare__verdict { align-items: center; }

.mcompare__note {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
  text-align: right;
}

/* --- Плита 06: стоимость содержания ---------------------------------------- */

.mown__head {
  display: grid;
  grid-template-columns: minmax(0, 1430fr) minmax(0, 900fr);
  gap: clamp(30px, 4.30vw, 110px);
  align-items: end;
}

.mown__total {
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 22px;
}

.mown__figure {
  font-family: var(--display);
  font-size: clamp(46px, 4.69vw, 120px);
  line-height: 0.9;
  white-space: nowrap;
  color: var(--accent);
}

.mown__label {
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.mstack {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.mstack__bar {
  display: flex;
  height: 26px;
  border-radius: var(--r-pill);
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
}

.mstack__seg { display: block; }

/* Последняя доля забирает остаток: округление до процента не должно оставлять
   щель в конце полосы. */
.mstack__seg--5 { flex: 1; }

.mstack__seg--1 { background: var(--accent); }
.mstack__seg--2 { background: rgba(var(--ink-rgb), 0.55); }
.mstack__seg--3 { background: rgba(var(--ink-rgb), 0.34); }
.mstack__seg--4 { background: var(--gold); }
.mstack__seg--5 { background: rgba(var(--ink-rgb), 0.16); }

.mstack__legend {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.mlines {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(18px, 1.33vw, 34px);
}

.mline {
  display: flex;
  flex-direction: column;
  border-radius: 14px;
  overflow: hidden;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.mline--dark {
  background: var(--c-night);
  color: var(--c-cream);
  box-shadow: inset 0 0 0 1px rgba(var(--c-gold-rgb), 0.45);
}

.mline__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 20px clamp(18px, 1.17vw, 30px);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.16);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.mline--dark .mline__head { border-bottom-color: rgba(var(--c-cream-rgb), 0.22); }

.mline__tag { color: var(--accent); }
.mline--dark .mline__tag { color: var(--gold); }
.mline__share { color: var(--faint); }
.mline--dark .mline__share { color: rgba(var(--c-cream-rgb), 0.6); }

.mline__body {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 18px;
  flex: 1;
  padding: 34px clamp(18px, 1.17vw, 30px) 30px;
  overflow: hidden;
}

.mline__ghost {
  position: absolute;
  top: -30px;
  right: 22px;
  font-family: var(--display);
  font-size: clamp(90px, 5.86vw, 150px);
  line-height: 1;
  color: rgba(var(--ink-rgb), 0.06);
  pointer-events: none;
}

.mline--dark .mline__ghost { color: rgba(var(--c-gold-rgb), 0.14); }

.mline__body > *:not(.mline__ghost) { position: relative; }

.mline__name {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(24px, 1.56vw, 40px);
  line-height: 1.05;
  letter-spacing: -0.02em;
}

.mline__figures {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.mline__amount {
  font-family: var(--display);
  font-size: clamp(30px, 2.19vw, 56px);
  line-height: 0.95;
  white-space: nowrap;
}

.mline__yearly,
.mline__basis {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.mline--dark .mline__yearly,
.mline--dark .mline__basis { color: rgba(var(--c-cream-rgb), 0.6); }

.mline__note {
  font-size: clamp(15px, 0.66vw, 17px);
  font-weight: 300;
  line-height: 1.65;
  color: var(--muted);
}

.mline--dark .mline__note { color: rgba(var(--c-cream-rgb), 0.82); }

.mline__basis { margin-top: auto; }

/* Доли, выраженные классами: ширина полосы и высота столбца приходят из
   расчёта, а инлайновые стили в шаблоне запрещены. Живой пересчёт делает
   скрипт, здесь — значения по умолчанию, видимые и без сценариев. */
.mw-0 { width: 0%; }
.mw-1 { width: 1%; }
.mw-2 { width: 2%; }
.mw-3 { width: 3%; }
.mw-4 { width: 4%; }
.mw-5 { width: 5%; }
.mw-6 { width: 6%; }
.mw-7 { width: 7%; }
.mw-8 { width: 8%; }
.mw-9 { width: 9%; }
.mw-10 { width: 10%; }
.mw-11 { width: 11%; }
.mw-12 { width: 12%; }
.mw-13 { width: 13%; }
.mw-14 { width: 14%; }
.mw-15 { width: 15%; }
.mw-16 { width: 16%; }
.mw-17 { width: 17%; }
.mw-18 { width: 18%; }
.mw-19 { width: 19%; }
.mw-20 { width: 20%; }
.mw-21 { width: 21%; }
.mw-22 { width: 22%; }
.mw-23 { width: 23%; }
.mw-24 { width: 24%; }
.mw-25 { width: 25%; }
.mw-26 { width: 26%; }
.mw-27 { width: 27%; }
.mw-28 { width: 28%; }
.mw-29 { width: 29%; }
.mw-30 { width: 30%; }
.mw-31 { width: 31%; }
.mw-32 { width: 32%; }
.mw-33 { width: 33%; }
.mw-34 { width: 34%; }
.mw-35 { width: 35%; }
.mw-36 { width: 36%; }
.mw-37 { width: 37%; }
.mw-38 { width: 38%; }
.mw-39 { width: 39%; }
.mw-40 { width: 40%; }
.mw-41 { width: 41%; }
.mw-42 { width: 42%; }
.mw-43 { width: 43%; }
.mw-44 { width: 44%; }
.mw-45 { width: 45%; }
.mw-46 { width: 46%; }
.mw-47 { width: 47%; }
.mw-48 { width: 48%; }
.mw-49 { width: 49%; }
.mw-50 { width: 50%; }
.mw-51 { width: 51%; }
.mw-52 { width: 52%; }
.mw-53 { width: 53%; }
.mw-54 { width: 54%; }
.mw-55 { width: 55%; }
.mw-56 { width: 56%; }
.mw-57 { width: 57%; }
.mw-58 { width: 58%; }
.mw-59 { width: 59%; }
.mw-60 { width: 60%; }
.mw-61 { width: 61%; }
.mw-62 { width: 62%; }
.mw-63 { width: 63%; }
.mw-64 { width: 64%; }
.mw-65 { width: 65%; }
.mw-66 { width: 66%; }
.mw-67 { width: 67%; }
.mw-68 { width: 68%; }
.mw-69 { width: 69%; }
.mw-70 { width: 70%; }
.mw-71 { width: 71%; }
.mw-72 { width: 72%; }
.mw-73 { width: 73%; }
.mw-74 { width: 74%; }
.mw-75 { width: 75%; }
.mw-76 { width: 76%; }
.mw-77 { width: 77%; }
.mw-78 { width: 78%; }
.mw-79 { width: 79%; }
.mw-80 { width: 80%; }
.mw-81 { width: 81%; }
.mw-82 { width: 82%; }
.mw-83 { width: 83%; }
.mw-84 { width: 84%; }
.mw-85 { width: 85%; }
.mw-86 { width: 86%; }
.mw-87 { width: 87%; }
.mw-88 { width: 88%; }
.mw-89 { width: 89%; }
.mw-90 { width: 90%; }
.mw-91 { width: 91%; }
.mw-92 { width: 92%; }
.mw-93 { width: 93%; }
.mw-94 { width: 94%; }
.mw-95 { width: 95%; }
.mw-96 { width: 96%; }
.mw-97 { width: 97%; }
.mw-98 { width: 98%; }
.mw-99 { width: 99%; }
.mw-100 { width: 100%; }
.mh-0 { height: 0%; }
.mh-1 { height: 1%; }
.mh-2 { height: 2%; }
.mh-3 { height: 3%; }
.mh-4 { height: 4%; }
.mh-5 { height: 5%; }
.mh-6 { height: 6%; }
.mh-7 { height: 7%; }
.mh-8 { height: 8%; }
.mh-9 { height: 9%; }
.mh-10 { height: 10%; }
.mh-11 { height: 11%; }
.mh-12 { height: 12%; }
.mh-13 { height: 13%; }
.mh-14 { height: 14%; }
.mh-15 { height: 15%; }
.mh-16 { height: 16%; }
.mh-17 { height: 17%; }
.mh-18 { height: 18%; }
.mh-19 { height: 19%; }
.mh-20 { height: 20%; }
.mh-21 { height: 21%; }
.mh-22 { height: 22%; }
.mh-23 { height: 23%; }
.mh-24 { height: 24%; }
.mh-25 { height: 25%; }
.mh-26 { height: 26%; }
.mh-27 { height: 27%; }
.mh-28 { height: 28%; }
.mh-29 { height: 29%; }
.mh-30 { height: 30%; }
.mh-31 { height: 31%; }
.mh-32 { height: 32%; }
.mh-33 { height: 33%; }
.mh-34 { height: 34%; }
.mh-35 { height: 35%; }
.mh-36 { height: 36%; }
.mh-37 { height: 37%; }
.mh-38 { height: 38%; }
.mh-39 { height: 39%; }
.mh-40 { height: 40%; }
.mh-41 { height: 41%; }
.mh-42 { height: 42%; }
.mh-43 { height: 43%; }
.mh-44 { height: 44%; }
.mh-45 { height: 45%; }
.mh-46 { height: 46%; }
.mh-47 { height: 47%; }
.mh-48 { height: 48%; }
.mh-49 { height: 49%; }
.mh-50 { height: 50%; }
.mh-51 { height: 51%; }
.mh-52 { height: 52%; }
.mh-53 { height: 53%; }
.mh-54 { height: 54%; }
.mh-55 { height: 55%; }
.mh-56 { height: 56%; }
.mh-57 { height: 57%; }
.mh-58 { height: 58%; }
.mh-59 { height: 59%; }
.mh-60 { height: 60%; }
.mh-61 { height: 61%; }
.mh-62 { height: 62%; }
.mh-63 { height: 63%; }
.mh-64 { height: 64%; }
.mh-65 { height: 65%; }
.mh-66 { height: 66%; }
.mh-67 { height: 67%; }
.mh-68 { height: 68%; }
.mh-69 { height: 69%; }
.mh-70 { height: 70%; }
.mh-71 { height: 71%; }
.mh-72 { height: 72%; }
.mh-73 { height: 73%; }
.mh-74 { height: 74%; }
.mh-75 { height: 75%; }
.mh-76 { height: 76%; }
.mh-77 { height: 77%; }
.mh-78 { height: 78%; }
.mh-79 { height: 79%; }
.mh-80 { height: 80%; }
.mh-81 { height: 81%; }
.mh-82 { height: 82%; }
.mh-83 { height: 83%; }
.mh-84 { height: 84%; }
.mh-85 { height: 85%; }
.mh-86 { height: 86%; }
.mh-87 { height: 87%; }
.mh-88 { height: 88%; }
.mh-89 { height: 89%; }
.mh-90 { height: 90%; }
.mh-91 { height: 91%; }
.mh-92 { height: 92%; }
.mh-93 { height: 93%; }
.mh-94 { height: 94%; }
.mh-95 { height: 95%; }
.mh-96 { height: 96%; }
.mh-97 { height: 97%; }
.mh-98 { height: 98%; }
.mh-99 { height: 99%; }
.mh-100 { height: 100%; }

/* ==========================================================================
   35. Mortgage — адаптив
   ========================================================================== */

@media (max-width: 1240px) {
  .mfields,
  .mcontrols--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .mresult {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 30px;
  }

  .mresult__main { grid-column: 1 / -1; }

  .mlines { grid-template-columns: repeat(3, minmax(0, 1fr)); }

  .mschedule__grid,
  .mwidget-row,
  .mown__head {
    grid-template-columns: minmax(0, 1fr);
    gap: 40px;
  }

  .mown__total { justify-content: flex-start; }

  /* Полоса из пяти ячеек в ряд перестаёт читаться — ломаем её на две строки. */
  .mstrip__index { display: none; }

  .mstrip__row { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .mcell {
    border-left: 0;
    border-top: 1px solid rgba(var(--ink-rgb), 0.18);
    padding-inline: 0 clamp(16px, 1.56vw, 40px);
  }

  .mcell:nth-child(2n) { padding-inline: clamp(16px, 1.56vw, 40px) 0; }
  .mcell--result {
    grid-column: 1 / -1;
    border-left: 0;
    border-top: 2px solid var(--ink);
    padding-inline: clamp(16px, 1.56vw, 40px);
  }
}

@media (max-width: 1024px) {
  .mterms { grid-template-columns: minmax(0, 1fr); }
  .mcontrols--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mmilestones { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .mmilestone:nth-child(2n + 1) {
    padding-left: 0;
    border-left: 0;
  }

  .mlines { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mcompare__note { text-align: left; }

  /* Таблица платежей уезжает в собственную прокрутку, а не ломает страницу. */
  .mtable__body {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }

  .mtable__row { min-width: 560px; }
}

@media (max-width: 860px) {
  .mfields,
  .mcontrols--3,
  .mcontrols--4,
  .mresult,
  .mlines,
  .mstrip__row { grid-template-columns: minmax(0, 1fr); }

  .mcell,
  .mcell:nth-child(2n) { padding-inline: 0; }

  .mcell--result { padding-inline: clamp(16px, 1.56vw, 40px); }

  .msplit {
    grid-template-columns: minmax(0, 1fr);
    gap: 26px;
  }

  .mslip__cta,
  .mwidget__cta { width: 100%; }

  .mchart__grid { grid-template-columns: clamp(56px, 4.69vw, 120px) minmax(0, 1fr); }
  .mchart__plot { gap: 2px; }

  /* На узком экране подпись перелома закрывает половину столбцов. */
  .mchart__mark-label { display: none; }

  .mwidget__controls .mrange {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
  }

  .mwidget__controls .mrange__input {
    grid-column: 1;
    grid-row: 2;
    width: 100%;
  }

  .mstrip__foot { gap: 12px 18px; }
  .mstrip__divider { display: none; }
}

@media (max-width: 600px) {
  .mmilestones { grid-template-columns: minmax(0, 1fr); }

  .mmilestone {
    padding: 20px 0;
    border-left: 0;
    border-top: 1px solid rgba(var(--ink-rgb), 0.14);
  }

  .mmilestone:first-child { border-top: 0; }

  .mterm__ghost,
  .mline__ghost { display: none; }

  /* Легенда графика на 320px в строку не входит — ключи и подпись в два ряда. */
  .mchart__legend {
    flex-wrap: wrap;
    gap: 8px 18px;
  }
}

/* ==========================================================================
   36. Loan process — восемь плит, два рынка
   ========================================================================== */

/* Разметка несёт обе версии страницы, показывается выбранная. Скрываем только
   лишнее: собственный display элементов при этом не трогаем. */
#market-europe:checked ~ .tplate .only-us,
#market-europe:checked ~ .pagehead .only-us,
#market-us:checked ~ .tplate .only-europe,
#market-us:checked ~ .pagehead .only-europe { display: none; }

.lpswitch {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px;
  width: fit-content;
  border-radius: var(--r-pill);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.28);
}

.lpswitch__tab {
  display: inline-flex;
  align-items: center;
  height: clamp(52px, 2.73vw, 70px);
  padding: 0 clamp(20px, 1.17vw, 30px);
  border-radius: var(--r-pill);
  cursor: pointer;
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
  white-space: nowrap;
}

#market-europe:checked ~ .tplate .lpswitch__tab--europe,
#market-us:checked ~ .tplate .lpswitch__tab--us {
  background: var(--ink);
  color: var(--bg);
}

/* --- Плита 01: рынок ------------------------------------------------------ */

.lpmarkets {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(24px, 1.56vw, 40px);
}

.lpmarket {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 24px;
  padding: clamp(28px, 1.88vw, 48px) clamp(24px, 1.72vw, 44px) clamp(26px, 1.64vw, 42px);
  border-radius: 14px;
  overflow: hidden;
  cursor: pointer;
  background: var(--sheet);
  color: var(--ink);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.lpmarket:hover { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.5); }

.lpmarket__ghost {
  position: absolute;
  top: -24px;
  right: 34px;
  font-family: var(--display);
  font-size: clamp(100px, 7.03vw, 180px);
  line-height: 1;
  color: rgba(var(--ink-rgb), 0.07);
  pointer-events: none;
}

.lpmarket__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.lpmarket__tag { color: var(--accent); }
.lpmarket__kind { color: var(--faint); }

.lpmarket__name {
  position: relative;
  font-family: var(--display);
  font-size: clamp(32px, 2.58vw, 66px);
  line-height: 1;
  letter-spacing: -0.024em;
}

/* Обе подписи держат одну высоту, чтобы внутренности карточек шли по общей
   линии: одна из них в две строки, другая в одну. */
.lpmarket__blurb {
  position: relative;
  min-height: clamp(48px, 2.58vw, 66px);
  font-size: clamp(16px, 0.78vw, 20px);
  font-weight: 300;
  line-height: 1.65;
}

.lpmarket__chips {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.lpchip {
  display: inline-flex;
  align-items: center;
  height: 40px;
  padding: 0 18px;
  border-radius: var(--r-pill);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
}

.lpmarket__rows {
  display: flex;
  flex-direction: column;
  margin-top: auto;
}

.lpmarket__row {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 13px 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.lpmarket__value { color: var(--ink); }

/* Выбранный рынок */
#market-europe:checked ~ .tplate .lpmarket--europe,
#market-us:checked ~ .tplate .lpmarket--us {
  background: var(--c-night);
  color: var(--c-cream);
  box-shadow: inset 0 0 0 1px rgba(var(--c-gold-rgb), 0.5);
  transform: translateY(-8px);
}

#market-europe:checked ~ .tplate .lpmarket--europe .lpmarket__ghost,
#market-us:checked ~ .tplate .lpmarket--us .lpmarket__ghost { color: rgba(var(--c-gold-rgb), 0.16); }

#market-europe:checked ~ .tplate .lpmarket--europe .lpmarket__tag,
#market-us:checked ~ .tplate .lpmarket--us .lpmarket__tag { color: var(--gold); }

#market-europe:checked ~ .tplate .lpmarket--europe .lpmarket__kind,
#market-us:checked ~ .tplate .lpmarket--us .lpmarket__kind,
#market-europe:checked ~ .tplate .lpmarket--europe .lpmarket__row,
#market-us:checked ~ .tplate .lpmarket--us .lpmarket__row {
  color: rgba(var(--c-cream-rgb), 0.6);
  border-top-color: rgba(var(--c-cream-rgb), 0.24);
}

#market-europe:checked ~ .tplate .lpmarket--europe .lpmarket__value,
#market-us:checked ~ .tplate .lpmarket--us .lpmarket__value { color: var(--c-cream); }

#market-europe:checked ~ .tplate .lpmarket--europe .lpchip,
#market-us:checked ~ .tplate .lpmarket--us .lpchip {
  box-shadow: inset 0 0 0 1px rgba(var(--c-cream-rgb), 0.3);
  color: rgba(var(--c-cream-rgb), 0.8);
}

.lpstats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)) auto;
  gap: clamp(24px, 2.34vw, 60px);
  align-items: end;
  padding-top: 44px;
  border-top: 2px solid var(--ink);
}

.lpstat .figure__value {
  font-size: clamp(28px, 1.95vw, 50px);
  white-space: nowrap;
}

.lpstat__value--accent { color: var(--accent); }

.lpstats__cta {
  height: clamp(62px, 3.28vw, 84px);
  padding: 0 clamp(24px, 1.41vw, 36px);
  font-size: clamp(12px, 0.55vw, 14px);
}

/* --- Плита 02: семь шагов -------------------------------------------------- */

.lpsteps__grid {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  grid-template-rows: auto auto auto auto 1fr;
  column-gap: clamp(12px, 1.02vw, 26px);
  row-gap: 0;
}

/* Шаг занимает всю колонку и берёт строки у родителя: день, заголовок, рельс,
   полоса и карточка выстраиваются по одной линии у всех семи шагов. */
.lpstep {
  display: grid;
  grid-row: 1 / -1;
  grid-template-rows: subgrid;
  row-gap: 0;
  position: relative;
}

.lpstep__days {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.lpstep__title {
  margin-top: 10px;
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(20px, 1.41vw, 36px);
  line-height: 1.08;
  letter-spacing: -0.018em;
}

/* Рельс собран из отрезков: каждый заходит на половину промежутка, и все семь
   сливаются в одну линию. Крайние подрезаны по краю плиты. */
.lpstep__rail {
  position: relative;
  display: block;
  height: 2px;
  margin: 26px calc(clamp(12px, 1.02vw, 26px) / -2) 0;
  background: var(--ink);
}

.lpstep:first-child .lpstep__rail { margin-left: 0; }
.lpstep:last-child .lpstep__rail { margin-right: 0; }

.lpstep__node {
  position: absolute;
  top: -14px;
  left: 50%;
  width: 30px;
  height: 30px;
  margin-left: -15px;
  border-radius: var(--r-pill);
  background: var(--bg);
  box-shadow: inset 0 0 0 2px var(--ink);
}

.lpstep__node--first { box-shadow: inset 0 0 0 2px var(--accent); }
.lpstep__node--last { background: var(--gold); }

/* Отрезок шага окрашен по тому, кто в это время работает */
.lpstep__bar {
  display: block;
  margin-top: 22px;
  height: 10px;
  border-radius: 3px;
}

.lpstep__bar--you { background: var(--accent); }
.lpstep__bar--lender { background: rgba(var(--ink-rgb), 0.5); }
.lpstep__bar--third { background: rgba(var(--ink-rgb), 0.24); }

.lpsteps__legend {
  display: flex;
  align-items: center;
  gap: 28px;
  padding-top: 16px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.lpsteps__key {
  display: flex;
  align-items: center;
  gap: 10px;
}

.lpsteps__key::before {
  content: "";
  width: 16px;
  height: 8px;
  border-radius: 3px;
  background: rgba(var(--ink-rgb), 0.24);
}

.lpsteps__key--you::before { background: var(--accent); }
.lpsteps__key--lender::before { background: rgba(var(--ink-rgb), 0.5); }
.lpsteps__wait { color: var(--ink); }

.lpstep__card {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-top: 30px;
  padding: clamp(18px, 1.17vw, 30px) clamp(14px, 0.94vw, 24px);
  border-radius: var(--r-card);
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22);
}

.lpstep--last .lpstep__card {
  background: var(--c-night);
  color: var(--c-cream);
  box-shadow: inset 0 0 0 1px rgba(var(--c-gold-rgb), 0.45);
}

.lpstep__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.lpstep__no { color: var(--accent); }
.lpstep--last .lpstep__no { color: var(--gold); }
.lpstep__owner { color: var(--faint); }
.lpstep--last .lpstep__owner { color: rgba(var(--c-cream-rgb), 0.6); }

.lpstep__body {
  font-size: clamp(14px, 0.66vw, 17px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--muted);
}

.lpstep--last .lpstep__body { color: rgba(var(--c-cream-rgb), 0.82); }

.lpstep__paper {
  margin-top: auto;
  padding-top: 14px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink);
}

.lpstep--last .lpstep__paper {
  border-top-color: rgba(var(--c-cream-rgb), 0.22);
  color: var(--gold);
}

/* --- Плита 03 и 07: бланк с реестром --------------------------------------- */

.lpslip {
  padding: clamp(36px, 2.58vw, 66px) clamp(24px, 2.42vw, 62px);
  gap: clamp(26px, 1.72vw, 44px);
}

.lpslip__stamp {
  position: absolute;
  top: clamp(66px, 4.06vw, 104px);
  right: clamp(24px, 2.42vw, 62px);
  display: inline-flex;
  align-items: center;
  padding: 12px 30px;
  border-radius: var(--r-small);
  background: rgba(var(--c-paper-rgb), 0.7);
  box-shadow: inset 0 0 0 2px var(--accent);
  font-family: var(--mono);
  font-size: clamp(13px, 0.66vw, 17px);
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--c-red);
  transform: rotate(-7deg);
  pointer-events: none;
}

.lpdocs {
  display: grid;
  grid-template-columns: minmax(0, 1240fr) minmax(0, 1000fr);
  gap: clamp(30px, 3.91vw, 100px);
  align-items: start;
}

.lpdocs__table {
  display: flex;
  flex-direction: column;
}

.lpdoc {
  display: grid;
  grid-template-columns: clamp(44px, 3.13vw, 80px) minmax(0, 1fr) clamp(120px, 11.72vw, 300px) clamp(110px, 10.94vw, 280px);
  gap: clamp(14px, 1.17vw, 30px);
  align-items: baseline;
  padding: 22px 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.12);
}

.lpdoc--head {
  padding: 0 0 16px;
  border-bottom: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.lpdoc--later { opacity: 0.78; }

.lpdoc__no {
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.12em;
  color: var(--faint);
}

.lpdoc__name {
  display: flex;
  flex-direction: column;
  gap: 7px;
  font-size: clamp(17px, 0.94vw, 24px);
}

.lpdoc__hint {
  font-size: clamp(15px, 0.66vw, 17px);
  font-weight: 300;
  line-height: 1.5;
  color: var(--muted);
}

.lpdoc__when {
  justify-self: start;
  display: inline-flex;
  align-items: center;
  height: 38px;
  padding: 0 18px;
  border-radius: var(--r-pill);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
}

.lpdoc__when--now {
  background: rgba(var(--c-red-rgb), 0.1);
  box-shadow: none;
  color: var(--accent);
}

.lpdoc__step {
  text-align: right;
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
}

.lpdoc--total {
  padding: 24px 0;
  border-top: 2px solid var(--ink);
  border-bottom: 0;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ink);
}

.lpdoc__flag { color: var(--accent); }

.lpband {
  display: flex;
  align-items: baseline;
  gap: 20px;
  padding: 30px 0 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
}

.lpband span:last-child { color: var(--faint); }

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

.lpdocs__advice,
.lpcosts__advice {
  font-size: clamp(16px, 0.82vw, 21px);
  font-weight: 300;
  line-height: 1.7;
  color: var(--muted);
}

.lpticks,
.lpcosts__cross {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 24px 26px;
  border-radius: var(--r-card);
  background: rgba(var(--c-red-rgb), 0.07);
}

.lpticks__key,
.lpcosts__cross-key {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
}

.lpticks__row {
  display: flex;
  gap: 6px;
}

.lpticks__on,
.lpticks__off {
  flex: 1;
  height: 10px;
  border-radius: 3px;
}

.lpticks__on { background: var(--accent); }
.lpticks__off { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3); }

.lpticks__note,
.lpcosts__footnote {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.lpcosts__cross-text {
  font-size: clamp(16px, 0.74vw, 19px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--ink);
}

.lpdocs__facts { border-top: 2px solid var(--ink); }
.lpdocs__facts .tfacts__row { padding: 18px 0; }

.lpdocs__cta {
  justify-content: space-between;
  height: clamp(64px, 3.36vw, 86px);
  padding: 0 clamp(22px, 1.33vw, 34px);
  font-size: clamp(12px, 0.55vw, 14px);
}

/* --- Плита 04: участники --------------------------------------------------- */

.lppeople {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(18px, 1.33vw, 34px);
}

.lpperson {
  display: flex;
  flex-direction: column;
  border-radius: 14px;
  overflow: hidden;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.lpperson--mine {
  background: var(--c-night);
  color: var(--c-cream);
  box-shadow: inset 0 0 0 1px rgba(var(--c-gold-rgb), 0.45);
}

.lpperson__photo {
  display: block;
  aspect-ratio: 461 / 300;
  border-radius: 0;
}

.lpperson__body {
  display: flex;
  flex-direction: column;
  gap: 16px;
  flex: 1;
  padding: 32px clamp(18px, 1.09vw, 28px) 28px;
}

.lpperson__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.lpperson__tag { color: var(--accent); }
.lpperson--mine .lpperson__tag { color: var(--gold); }
.lpperson__paid { color: var(--faint); }
.lpperson--mine .lpperson__paid { color: rgba(var(--c-cream-rgb), 0.6); }

.lpperson__role {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(22px, 1.48vw, 38px);
  line-height: 1.08;
  letter-spacing: -0.018em;
}

.lpperson__text {
  font-size: clamp(14px, 0.66vw, 17px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--muted);
}

.lpperson--mine .lpperson__text { color: rgba(var(--c-cream-rgb), 0.82); }

.lpperson__rows {
  display: flex;
  flex-direction: column;
  gap: 9px;
  margin-top: auto;
  padding-top: 18px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.lpperson--mine .lpperson__rows { border-top-color: rgba(var(--c-cream-rgb), 0.22); }

.lpperson__rows p {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: var(--faint);
}

.lpperson--mine .lpperson__rows p { color: rgba(var(--c-cream-rgb), 0.6); }
.lpperson__rows p span + span { color: var(--ink); }
.lpperson--mine .lpperson__rows p span + span { color: var(--c-cream); }

/* --- Плита 05: три прогона -------------------------------------------------- */

.lpruns__head,
.lprun {
  display: grid;
  grid-template-columns: clamp(160px, 13.28vw, 340px) minmax(0, 1fr) clamp(140px, 8.59vw, 220px);
  gap: clamp(18px, 1.56vw, 40px);
  align-items: center;
}

.lpruns__head {
  align-items: end;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.18);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.lpruns__scale {
  display: flex;
  justify-content: space-between;
  letter-spacing: 0.2em;
}

.lpruns__scale-last { color: var(--ink); }
.lpruns__what { text-align: right; }

.lpruns {
  display: flex;
  flex-direction: column;
  gap: clamp(24px, 1.56vw, 40px);
  padding-top: clamp(24px, 1.56vw, 40px);
}

.lprun__name {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.lprun__tag {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
}

.lprun__total {
  font-family: var(--display);
  font-size: clamp(30px, 2.19vw, 56px);
  line-height: 1;
  white-space: nowrap;
}

.lprun__bar {
  display: flex;
  height: 44px;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2);
}

.lpseg { display: block; }
.lpseg--1 { background: var(--accent); }
.lpseg--2 { background: rgba(var(--c-red-rgb), 0.7); }
.lpseg--3 { background: rgba(var(--ink-rgb), 0.55); }
.lpseg--4 { background: rgba(var(--ink-rgb), 0.4); }
.lpseg--5 { background: var(--gold); }
.lpseg--6 { background: rgba(var(--ink-rgb), 0.28); }
.lpseg--7 { background: var(--ink); }

.lprun__aside {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
  text-align: right;
}

.lprun__delta {
  font-family: var(--mono);
  font-size: clamp(12px, 0.55vw, 14px);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent);
}

.lprun__delta--down { color: var(--ink); }
.lprun__delta--muted { color: var(--faint); }

.lprun__note {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.lplegend {
  display: flex;
  flex-wrap: wrap;
  gap: 22px;
  padding-top: clamp(20px, 1.56vw, 40px);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.lplegend__item {
  display: flex;
  align-items: center;
  gap: 9px;
}

.lplegend__item::before {
  content: "";
  width: 14px;
  height: 14px;
  border-radius: 3px;
  background: var(--ink);
}

.lplegend__item--1::before { background: var(--accent); }
.lplegend__item--2::before { background: rgba(var(--c-red-rgb), 0.7); }
.lplegend__item--3::before { background: rgba(var(--ink-rgb), 0.55); }
.lplegend__item--4::before { background: rgba(var(--ink-rgb), 0.4); }
.lplegend__item--5::before { background: var(--gold); }
.lplegend__item--6::before { background: rgba(var(--ink-rgb), 0.28); }

.lpruns__verdict {
  margin-top: clamp(24px, 1.56vw, 40px);
  align-items: center;
}

.lpruns__spread {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
  text-align: right;
}

/* --- Плита 06: риски ------------------------------------------------------- */

.lpshare {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.lpshare__bar {
  display: flex;
  height: 24px;
  border-radius: var(--r-pill);
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
}

.lpshare__seg { display: block; }
.lpshare__seg--1 { background: var(--accent); }
.lpshare__seg--2 { background: rgba(var(--c-red-rgb), 0.7); }
.lpshare__seg--3 { background: rgba(var(--ink-rgb), 0.5); }
.lpshare__seg--4 { background: rgba(var(--ink-rgb), 0.32); }
.lpshare__seg--5 { background: var(--gold); }

.lpshare__legend {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.lpshare__lead { color: var(--accent); }

.lprisks {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(18px, 1.33vw, 34px);
  padding-top: clamp(24px, 2.03vw, 52px);
}

.lprisk {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: clamp(28px, 1.72vw, 44px) clamp(20px, 1.17vw, 30px) clamp(24px, 1.17vw, 30px);
  border-radius: 14px;
  overflow: hidden;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  transition: transform 0.22s ease, box-shadow 0.22s ease;
}

.lprisk:hover {
  transform: translateY(-8px);
  box-shadow: inset 0 0 0 1px rgba(var(--c-red-rgb), 0.5);
}

.lprisk--top {
  background: var(--c-night);
  color: var(--c-cream);
  box-shadow: inset 0 0 0 1px rgba(var(--c-gold-rgb), 0.45);
}

.lprisk--top:hover { box-shadow: inset 0 0 0 1px rgba(var(--c-gold-rgb), 0.7); }

.lprisk > * { position: relative; }

.lprisk__stamp {
  position: absolute;
  top: 26px;
  right: -14px;
  display: inline-flex;
  align-items: center;
  padding: 10px 22px;
  border-radius: var(--r-small);
  background: rgba(var(--c-paper-rgb), 0.7);
  box-shadow: inset 0 0 0 2px var(--accent);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--c-red);
  transform: rotate(-8deg);
  pointer-events: none;
}

.lprisk__ghost {
  position: absolute;
  bottom: -40px;
  left: 30px;
  font-family: var(--display);
  font-size: clamp(110px, 7.42vw, 190px);
  line-height: 1;
  color: rgba(var(--ink-rgb), 0.06);
  pointer-events: none;
}

.lprisk--top .lprisk__ghost { color: rgba(var(--c-gold-rgb), 0.14); }

.lprisk__no {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
}

.lprisk--top .lprisk__no { color: var(--gold); }

.lprisk__title {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(22px, 1.48vw, 38px);
  line-height: 1.08;
  letter-spacing: -0.018em;
}

.lprisk__meta {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.lprisk--top .lprisk__meta { color: rgba(var(--c-cream-rgb), 0.6); }
.lprisk__cost { color: var(--accent); }
.lprisk--top .lprisk__cost { color: var(--gold); }

.lprisk__body {
  font-size: clamp(14px, 0.66vw, 17px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--muted);
}

.lprisk--top .lprisk__body { color: rgba(var(--c-cream-rgb), 0.82); }

.lprisk__advice {
  display: flex;
  flex-direction: column;
  gap: 9px;
  margin-top: auto;
  padding-top: 18px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
}

.lprisk--top .lprisk__advice { border-top-color: rgba(var(--c-cream-rgb), 0.22); }

.lprisk__advice-key {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent);
}

.lprisk--top .lprisk__advice-key { color: var(--gold); }

.lprisk__advice-text {
  font-size: clamp(14px, 0.63vw, 16px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--ink);
}

.lprisk--top .lprisk__advice-text { color: var(--c-cream); }

/* --- Плита 07: расходы ----------------------------------------------------- */

.lpcost {
  display: grid;
  grid-template-columns: clamp(44px, 3.13vw, 80px) minmax(0, 1fr) clamp(120px, 10.16vw, 260px) clamp(110px, 10.16vw, 260px);
  gap: clamp(14px, 1.17vw, 30px);
  align-items: baseline;
  padding: 22px 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.12);
}

.lpcost--head {
  padding: 0 0 16px;
  border-bottom: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.lpcost__no {
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.12em;
  color: var(--faint);
}

.lpcost__item {
  display: flex;
  align-items: baseline;
  gap: 16px;
}

.lpcost__swatch {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  border-radius: var(--r-small);
  background: var(--ink);
}

.lpcost__swatch--1 { background: var(--accent); }
.lpcost__swatch--2 { background: rgba(var(--ink-rgb), 0.55); }
.lpcost__swatch--3 { background: rgba(var(--ink-rgb), 0.34); }
.lpcost__swatch--4 { background: var(--gold); }
.lpcost__swatch--5 { background: rgba(var(--ink-rgb), 0.2); }

.lpcost__name {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: clamp(17px, 0.94vw, 24px);
}

.lpcost__basis {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.lpcost__share {
  display: flex;
  flex-direction: column;
  gap: 8px;
  align-items: flex-end;
  text-align: right;
  font-family: var(--mono);
  font-size: clamp(12px, 0.55vw, 14px);
  letter-spacing: 0.1em;
  color: var(--muted);
}

.lpcost__bar {
  width: 100%;
  height: 8px;
}

.lpcost__amount {
  text-align: right;
  font-family: var(--mono);
  font-size: clamp(14px, 0.70vw, 18px);
  color: var(--ink);
  white-space: nowrap;
}

.lpcost--total,
.lpcost--cash {
  padding: 24px 0;
  border-top: 2px solid var(--ink);
  border-bottom: 0;
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink);
}

.lpcost--sub {
  padding: 22px 0;
  border-bottom: 0;
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink);
}

.lpcost__sum {
  font-family: var(--display);
  font-size: clamp(26px, 1.72vw, 44px);
  line-height: 1;
  letter-spacing: 0;
  color: var(--accent);
}

.lpcost__cash {
  font-family: var(--display);
  font-size: clamp(30px, 2.19vw, 56px);
  line-height: 1;
  letter-spacing: 0;
  color: var(--ink);
}

.lpcosts__controls {
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.mrange__value--mono {
  font-family: var(--mono);
  font-size: clamp(13px, 0.59vw, 15px);
}

/* --- Плита 08: бланк заявки ------------------------------------------------ */

.lpcta__figures {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(30px, 2.73vw, 70px);
  padding-top: 14px;
}

.lpcta__figure .figure__value { font-size: clamp(28px, 1.88vw, 48px); }

/* ==========================================================================
   37. Loan process — адаптив
   ========================================================================== */

@media (max-width: 1440px) {
  /* Семь колонок шагов перестают читаться — идём в четыре, шаг остаётся целым. */
  .lpsteps__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    row-gap: 46px;
  }

  .lpstep {
    grid-row: auto;
    grid-template-rows: none;
  }
}

@media (max-width: 1240px) {
  .lppeople,
  .lprisks { grid-template-columns: repeat(3, minmax(0, 1fr)); }

  .lpstats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 30px;
  }

  .lpstats__cta { grid-column: 1 / -1; }

  .lpdocs {
    grid-template-columns: minmax(0, 1fr);
    gap: 44px;
  }

  .lpruns__head,
  .lprun {
    grid-template-columns: clamp(140px, 13.28vw, 340px) minmax(0, 1fr);
    row-gap: 16px;
  }

  .lpruns__what { display: none; }

  .lprun__aside {
    grid-column: 1 / -1;
    flex-direction: row;
    align-items: baseline;
    justify-content: space-between;
    text-align: left;
  }
}

@media (max-width: 1024px) {
  .lpmarkets { grid-template-columns: minmax(0, 1fr); }

  .lpsteps__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  /* Рельс встаёт вертикально: узел с осью уходит влево, шаг читается сверху вниз. */
  .lpstep {
    position: relative;
    padding-left: 46px;
  }

  .lpstep__rail {
    position: absolute;
    top: 6px;
    bottom: 0;
    left: 14px;
    width: 2px;
    height: auto;
    margin: 0;
  }

  .lpstep__node {
    top: 0;
    left: 1px;
    margin-left: -15px;
  }

  .lpstep__bar { margin-top: 18px; }
  .lpstep__card { margin-top: 18px; }

  .lppeople,
  .lprisks { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .lpsteps__legend {
    flex-wrap: wrap;
    gap: 12px 20px;
  }

  .lpsteps__legend .tfoot__rule { display: none; }

  .lpdoc,
  .lpcost {
    grid-template-columns: clamp(36px, 3.13vw, 80px) minmax(0, 1fr) auto;
    row-gap: 12px;
  }

  .lpdoc__step,
  .lpcost__amount { grid-column: 3; }

  .lpdoc__when { grid-column: 2; }

  .lpcost__share {
    grid-column: 2 / -1;
    align-items: flex-start;
    text-align: left;
  }

  .lpdoc--head span:nth-child(3),
  .lpcost--head span:nth-child(3) { display: none; }
}

@media (max-width: 860px) {
  .lpsteps__grid,
  .lppeople,
  .lprisks { grid-template-columns: minmax(0, 1fr); }

  .lpstats { grid-template-columns: minmax(0, 1fr); }

  .lpruns__head,
  .lprun { grid-template-columns: minmax(0, 1fr); }

  .lpruns__scale { display: none; }

  .lpswitch { width: 100%; }
  .lpswitch__tab { flex: 1; justify-content: center; }

  .section-head__control { justify-content: flex-start; }

  .lprisk__stamp { right: -10px; }
}

@media (max-width: 600px) {
  /* «Europe / United States» в строку не помещается — вкладки встают столбиком. */
  .lpswitch {
    flex-direction: column;
    align-items: stretch;
    border-radius: var(--r-card);
  }

  .lpswitch__tab {
    height: 48px;
    justify-content: center;
  }

  .lpmarket__ghost,
  .lprisk__ghost { display: none; }

  .lprisk__stamp { display: none; }

  .lpdoc,
  .lpcost { grid-template-columns: auto minmax(0, 1fr); }

  .lpdoc__step,
  .lpcost__amount {
    grid-column: 2;
    text-align: left;
  }

  /* Итоговые строки регистров держат сетку колонок только на широком экране:
     на телефоне пускаем их простым переносом, пустые ячейки убираем. */
  .lpdoc--total,
  .lpcost--total {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 14px;
  }

  .lpdoc--total span:empty,
  .lpcost--total span:empty { display: none; }

  .lpstats__cta,
  .lpdocs__cta { width: 100%; }

  /* Длинная надпись на кнопке перестаёт держать строку и переносится. */
  .slip__talk {
    height: auto;
    padding: 16px 22px;
    white-space: normal;
    text-align: center;
    line-height: 1.4;
  }
}

/* ==========================================================================
   38. Compare — семь плит, четыре дома на скамье
   ========================================================================== */

/* Общая полоса: доля закрашивается классом шага .mw-*, дорожка своя у тёмных карточек. */
.cpbar {
  display: block;
  height: 10px;
  border-radius: var(--r-pill);
  background: rgba(var(--ink-rgb), 0.1);
  overflow: hidden;
}

.cpbar__fill {
  display: block;
  height: 100%;
  background: var(--accent);
}

.cpbar--thin { height: 6px; }
.cpbar--hair { height: 6px; width: 100%; }

.cpbar--tick {
  position: relative;
  height: clamp(12px, 0.78vw, 20px);
  border-radius: 4px;
  background: rgba(var(--ink-rgb), 0.08);
}

/* Отметка «50» — та самая линия, о которой говорит подпись шкалы. */
.cpbar--tick::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 0;
  bottom: 0;
  width: 1px;
  background: rgba(var(--ink-rgb), 0.45);
}

/* --- Плита 01: полка ------------------------------------------------------- */

.cpslots {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(16px, 1.33vw, 34px);
}

.cpslot {
  display: flex;
  flex-direction: column;
  border-radius: var(--r-card);
  overflow: hidden;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
}

.cpslot--dark {
  background: var(--c-night);
  color: var(--c-cream);
  box-shadow: inset 0 0 0 1px rgba(var(--c-gold-rgb), 0.45);
}

.cpslot__photo {
  position: relative;
  display: block;
  aspect-ratio: 580 / 400;
}

.cpslot__col {
  position: absolute;
  left: clamp(12px, 0.86vw, 22px);
  top: clamp(12px, 0.86vw, 22px);
  display: inline-flex;
  align-items: center;
  height: clamp(30px, 1.56vw, 40px);
  padding: 0 clamp(12px, 0.63vw, 16px);
  border-radius: var(--r-pill);
  background: var(--ink);
  color: var(--bg);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
}

.cpslot--dark .cpslot__col {
  background: var(--gold);
  color: var(--c-night);
}

.cpslot__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 14px;
  padding: clamp(20px, 1.09vw, 28px) clamp(18px, 1.02vw, 26px) clamp(18px, 1.02vw, 26px);
}

.cpslot__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.cpslot__ref { color: var(--accent); }
.cpslot--dark .cpslot__ref { color: var(--gold); }
.cpslot__city { color: var(--faint); }
.cpslot--dark .cpslot__city { color: rgba(var(--c-cream-rgb), 0.6); }

.cpslot__address {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(21px, 1.33vw, 34px);
  line-height: 1.1;
  letter-spacing: -0.018em;
}

.cpslot__price {
  font-family: var(--display);
  font-size: clamp(28px, 1.88vw, 48px);
  line-height: 1;
  white-space: nowrap;
}

.cpslot .cpbar {
  margin-top: auto;
}

.cpslot--dark .cpbar { background: rgba(var(--c-cream-rgb), 0.16); }
.cpslot--dark .cpbar__fill { background: var(--gold); }

.cpslot__sizes {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.cpslot--dark .cpslot__sizes { color: rgba(var(--c-cream-rgb), 0.6); }

.cpslot__flag {
  min-height: 14px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent);
}

.cpslot--dark .cpslot__flag { color: var(--gold); }

/* --- Плита 02: карточки счёта и реестр ------------------------------------ */

.cptoggle {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  height: clamp(52px, 2.73vw, 70px);
  padding: 0 clamp(20px, 1.17vw, 30px);
  border-radius: var(--r-pill);
  cursor: pointer;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.28);
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
  transition: background 0.2s ease, box-shadow 0.2s ease, color 0.2s ease;
}

.cptoggle__box {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 6px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
  font-size: 15px;
  color: transparent;
}

#diff-only:checked ~ .tplate .cptoggle {
  background: rgba(var(--c-red-rgb), 0.1);
  box-shadow: inset 0 0 0 1px rgba(var(--c-red-rgb), 0.4);
  color: var(--ink);
}

#diff-only:checked ~ .tplate .cptoggle__box {
  background: var(--accent);
  box-shadow: none;
  color: var(--c-paper);
}

/* Фильтр «только различия» прячет строки, где все дома совпали, и переписывает
   приписку в шапке плиты. */
#diff-only:checked ~ .tplate .cprow--same { display: none; }

.cpshown--diff { display: none; }
#diff-only:checked ~ .tplate .cpshown--all { display: none; }
#diff-only:checked ~ .tplate .cpshown--diff { display: inline; }

.cpscores {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(16px, 1.33vw, 34px);
  align-items: start;
}

.cpscores__lead {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  gap: 10px;
  padding-bottom: 8px;
}

.cpscores__label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
}

.cpscores__note {
  font-size: clamp(14px, 0.74vw, 19px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--muted);
}

.cpscore {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: clamp(20px, 1.25vw, 32px) clamp(18px, 1.17vw, 30px);
  border-radius: var(--r-card);
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
}

.cpscore--lead {
  background: var(--c-night);
  color: var(--c-cream);
  box-shadow: inset 0 0 0 1px rgba(var(--c-gold-rgb), 0.45);
}

.cpscore--lead .cpbar { background: rgba(var(--c-cream-rgb), 0.16); }
.cpscore--lead .cpbar__fill { background: var(--gold); }

.cpscore__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.cpscore__col { color: var(--accent); }
.cpscore--lead .cpscore__col { color: var(--gold); }
.cpscore__city { color: var(--faint); }
.cpscore--lead .cpscore__city { color: rgba(var(--c-cream-rgb), 0.6); }

.cpscore__address {
  font-family: var(--display);
  font-size: clamp(21px, 1.33vw, 34px);
  line-height: 1.1;
}

.cpscore__figure {
  display: flex;
  align-items: baseline;
  gap: 14px;
}

.cpscore__wins {
  font-family: var(--display);
  font-size: clamp(40px, 2.97vw, 76px);
  line-height: 0.9;
}

.cpscore__unit,
.cpscore__best {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.cpscore--lead .cpscore__unit,
.cpscore--lead .cpscore__best { color: rgba(var(--c-cream-rgb), 0.6); }

.cpscore__groups {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.cpscore__group {
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(56px, 3.52vw, 90px) clamp(38px, 1.72vw, 44px);
  gap: 12px;
  align-items: center;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.cpscore__gscore { text-align: right; }

.cpreg {
  display: flex;
  flex-direction: column;
}

.cpgroup {
  display: flex;
  flex-direction: column;
}

/* Ярлык строки живёт в своей колонке, значения делят остаток поровну. */
.cprow {
  display: grid;
  grid-template-columns: clamp(180px, 25vw, 640px) repeat(4, minmax(0, 1fr));
  gap: clamp(14px, 1.33vw, 34px);
  align-items: baseline;
  padding: 14px 22px;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.09);
}

.cprow--same { opacity: 0.6; }

.cprow--head {
  padding: clamp(20px, 1.17vw, 30px) 22px 12px;
  border-bottom: 0;
  border-top: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.cprow__label {
  font-family: var(--mono);
  font-size: clamp(13px, 0.66vw, 17px);
  color: var(--muted);
}

.cprow--head .cprow__label { color: var(--accent); }

.cprow__cell {
  display: flex;
  align-items: baseline;
  gap: 10px;
  font-family: var(--mono);
  font-size: clamp(13px, 0.66vw, 17px);
  color: var(--muted);
}

.cprow--head .cprow__cell { color: var(--ink); }
.cprow__cell--faint { color: var(--faint); }
.cprow--same .cprow__cell { color: var(--faint); }

.cprow__cell--win {
  color: var(--ink);
}

.cprow__mark {
  font-size: 12px;
  color: var(--accent);
}

/* --- Плита 03: деньги ------------------------------------------------------ */

.cpmoneys,
.cpverdicts {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(18px, 1.56vw, 40px);
  align-items: stretch;
}

.cpmoney,
.cpverdict {
  display: flex;
  flex-direction: column;
  border-radius: var(--r-card);
  overflow: hidden;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
}

.cpmoney--base,
.cpverdict--dark {
  background: var(--c-night);
  color: var(--c-cream);
  box-shadow: inset 0 0 0 1px rgba(var(--c-gold-rgb), 0.45);
}

.cpmoney__head,
.cpverdict__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: clamp(14px, 0.78vw, 20px) clamp(20px, 1.41vw, 36px);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.16);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.cpmoney--base .cpmoney__head,
.cpverdict--dark .cpverdict__head { border-bottom-color: rgba(var(--c-cream-rgb), 0.22); }

.cpmoney__col,
.cpverdict__col { color: var(--accent); }
.cpmoney--base .cpmoney__col,
.cpverdict--dark .cpverdict__col { color: var(--gold); }

.cpmoney__tag,
.cpverdict__city { color: var(--faint); }
.cpmoney--base .cpmoney__tag,
.cpverdict--dark .cpverdict__city { color: rgba(var(--c-cream-rgb), 0.6); }

.cpmoney__body {
  position: relative;
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: 18px;
  padding: clamp(22px, 1.56vw, 40px) clamp(20px, 1.41vw, 36px) clamp(20px, 1.33vw, 34px);
}

.cpmoney__address {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(24px, 1.72vw, 44px);
  line-height: 1.04;
  letter-spacing: -0.022em;
}

.cpmoney__figure {
  font-family: var(--display);
  font-size: clamp(34px, 2.97vw, 76px);
  line-height: 0.92;
  white-space: nowrap;
}

.cpmoney__unit {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.cpmoney--base .cpmoney__unit { color: rgba(var(--c-cream-rgb), 0.6); }
.cpmoney--base .cpbar { background: rgba(var(--c-cream-rgb), 0.16); }
.cpmoney--base .cpbar__fill { background: var(--gold); }

.cpmoney__rows {
  display: flex;
  flex-direction: column;
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
}

.cpmoney--base .cpmoney__rows { border-top-color: rgba(var(--c-cream-rgb), 0.22); }

.cpmoney__row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.09);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.cpmoney--base .cpmoney__row { border-bottom-color: rgba(var(--c-cream-rgb), 0.14); }

/* Прибавка к базе красная, экономия — чернильная; на тёмной карточке всё кремовое. */
.cpmoney__value { color: var(--accent); }
.cpmoney__value--down { color: var(--ink); }
.cpmoney--base .cpmoney__value { color: var(--c-cream); }

/* Печать «Cheapest» на карточке-основании — внутри своей карточки, чужих колонок
   не задевает. */
.cpmoney__seal {
  display: none;
  position: absolute;
  right: clamp(-14px, -0.55vw, -8px);
  top: clamp(14px, 0.86vw, 22px);
  display: inline-flex;
  align-items: center;
  padding: 9px clamp(14px, 0.86vw, 22px);
  border-radius: 4px;
  transform: rotate(-8deg);
  box-shadow: inset 0 0 0 2px var(--gold);
  background: rgba(var(--c-night-rgb), 0.7);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--gold);
}

.cpmoney__five {
  margin-top: auto;
  font-family: var(--display);
  font-size: clamp(28px, 1.88vw, 48px);
  line-height: 1;
  white-space: nowrap;
}

.cpmoney__buys {
  font-size: clamp(14px, 0.66vw, 17px);
  font-weight: 300;
  line-height: 1.55;
  color: var(--muted);
}

.cpmoney--base .cpmoney__buys { color: rgba(var(--c-cream-rgb), 0.72); }

.cpcontrols {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr)) auto;
  gap: clamp(24px, 2.73vw, 70px);
  align-items: end;
  padding-top: clamp(26px, 1.72vw, 44px);
  border-top: 2px solid var(--ink);
}

/* --- Плита 04: обследование ------------------------------------------------ */

/* Лист с перфорацией: печать «Published» стоит в строке шапки, а не поверх сетки. */
.cpsurveyplate {
  position: relative;
  border: 1px solid rgba(var(--ink-rgb), 0.34);
  border-radius: var(--r-card);
  padding: clamp(28px, 2.58vw, 66px) clamp(22px, 2.42vw, 62px);
  background: var(--sheet);
}

/* Полукруглая насечка сверху — лист выглядит вырванным из подшивки. */
.cpsurveyplate::after {
  content: "";
  position: absolute;
  left: 50%;
  top: -18px;
  width: 36px;
  height: 36px;
  margin-left: -18px;
  border-radius: var(--r-pill);
  background: var(--bg);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
}

.cpsurvey__mark {
  position: absolute;
  right: clamp(20px, 2.19vw, 56px);
  bottom: clamp(16px, 1.56vw, 40px);
  height: clamp(56px, 4.69vw, 120px);
  width: auto;
  opacity: 0.1;
  pointer-events: none;
}

.cpsurveyplate::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 10px;
  border-radius: var(--r-card) var(--r-card) 0 0;
  background: repeating-linear-gradient(90deg, rgba(var(--ink-rgb), 0.34) 0 1px, transparent 1px 18px);
}

.cpseal {
  display: inline-flex;
  align-items: center;
  padding: 9px clamp(14px, 0.86vw, 22px);
  border-radius: 4px;
  box-shadow: inset 0 0 0 2px var(--accent);
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--accent);
}

.cptabs {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.cptab {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  height: clamp(50px, 2.58vw, 66px);
  padding: 0 clamp(18px, 1.17vw, 30px);
  border-radius: var(--r-pill);
  cursor: pointer;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.28);
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted);
  transition: background 0.2s ease, color 0.2s ease;
}

.cptab__count {
  font-size: 12px;
  color: var(--faint);
}

#survey-0:checked ~ .tplate .cptab:nth-of-type(1),
#survey-1:checked ~ .tplate .cptab:nth-of-type(2),
#survey-2:checked ~ .tplate .cptab:nth-of-type(3),
#survey-3:checked ~ .tplate .cptab:nth-of-type(4) {
  background: var(--ink);
  box-shadow: none;
  color: var(--bg);
}

#survey-0:checked ~ .tplate .cptab:nth-of-type(1) .cptab__count,
#survey-1:checked ~ .tplate .cptab:nth-of-type(2) .cptab__count,
#survey-2:checked ~ .tplate .cptab:nth-of-type(3) .cptab__count,
#survey-3:checked ~ .tplate .cptab:nth-of-type(4) .cptab__count { color: rgba(var(--bg-rgb), 0.6); }

/* Показан лист выбранной вкладки; остальные и их номера в шапке скрыты. */
.cpsurvey,
.cpsurveyplate .only-survey-0,
.cpsurveyplate .only-survey-1,
.cpsurveyplate .only-survey-2,
.cpsurveyplate .only-survey-3 { display: none; }

#survey-0:checked ~ .tplate #survey-sheet-0,
#survey-1:checked ~ .tplate #survey-sheet-1,
#survey-2:checked ~ .tplate #survey-sheet-2,
#survey-3:checked ~ .tplate #survey-sheet-3 {
  display: grid;
  grid-template-columns: minmax(0, 1240fr) minmax(0, 1000fr);
  gap: clamp(28px, 3.91vw, 100px);
  align-items: start;
}

#survey-0:checked ~ .tplate .only-survey-0,
#survey-1:checked ~ .tplate .only-survey-1,
#survey-2:checked ~ .tplate .only-survey-2,
#survey-3:checked ~ .tplate .only-survey-3 { display: inline; }

.cpsurvey__register {
  display: flex;
  flex-direction: column;
}

.cpfault {
  display: grid;
  grid-template-columns: clamp(40px, 2.73vw, 70px) 16px minmax(0, 1fr) clamp(90px, 9.38vw, 240px) clamp(90px, 7.81vw, 200px);
  gap: clamp(14px, 1.17vw, 30px);
  align-items: center;
  padding: clamp(14px, 0.94vw, 24px) 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.12);
}

.cpfault--head {
  align-items: baseline;
  padding: 0 0 16px;
  border-bottom: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.cpfault--head span:nth-child(4),
.cpfault--head span:nth-child(5) { text-align: right; }

.cpfault--total {
  align-items: baseline;
  padding: clamp(16px, 1.02vw, 26px) 0;
  border-top: 2px solid var(--ink);
  border-bottom: 0;
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.cpfault--total span:nth-child(4) {
  text-align: right;
  letter-spacing: 0.1em;
  text-transform: none;
  color: var(--faint);
}

.cpfault--total span:nth-child(5) {
  text-align: right;
  font-family: var(--display);
  font-size: clamp(28px, 1.88vw, 48px);
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
  color: var(--accent);
}

.cpfault__no {
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.12em;
  color: var(--faint);
}

/* Красный на этой плите значит «срочно», поэтому остальное — золото. */
.cpfault__dot {
  display: block;
  width: 16px;
  height: 16px;
  border-radius: var(--r-pill);
  background: var(--gold);
}

.cpfault--urgent .cpfault__dot { background: var(--accent); }

.cpfault__name {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: clamp(16px, 0.94vw, 24px);
}

.cpfault__detail {
  font-size: clamp(14px, 0.66vw, 17px);
  font-weight: 300;
  line-height: 1.5;
  color: var(--muted);
}

.cpfault__when {
  text-align: right;
  font-family: var(--mono);
  font-size: clamp(12px, 0.55vw, 14px);
  color: var(--muted);
}

.cpfault--urgent .cpfault__when { color: var(--accent); }

.cpfault__cost {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 7px;
  font-family: var(--mono);
  font-size: clamp(14px, 0.7vw, 18px);
}

.cpfault__cost .cpbar { width: 100%; }
.cpfault--urgent .cpbar__fill { background: var(--accent); }
.cpfault .cpbar__fill { background: var(--gold); }

.cpsurvey__aside {
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 1.02vw, 26px);
}

.cpsurvey__label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.cpgrade {
  font-family: var(--display);
  font-size: clamp(64px, 4.69vw, 120px);
  line-height: 0.9;
}

.cpsurvey__note {
  font-size: clamp(15px, 0.74vw, 19px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--muted);
}

.cpsplit {
  display: flex;
  height: 16px;
  border-radius: var(--r-pill);
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
}

.cpsplit__urgent { background: var(--accent); }
.cpsplit__later { background: var(--gold); }

.cpsplit__keys {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.cpsplit__key--urgent { color: var(--accent); }
.cpsplit__key--later { color: var(--muted); }

.cpstats {
  display: flex;
  flex-direction: column;
  border-top: 2px solid var(--ink);
}

.cpstat {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: clamp(12px, 0.7vw, 18px) 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.cpstat__value { color: var(--ink); }
.cpstat:nth-child(2) .cpstat__value { color: var(--accent); }
.cpsurvey__foot {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

/* --- Плита 05: окружение --------------------------------------------------- */

.cploc__head,
.cptheme,
.cpoverall {
  display: grid;
  grid-template-columns: clamp(150px, 20.31vw, 520px) repeat(4, minmax(0, 1fr));
  gap: clamp(18px, 1.72vw, 44px);
  align-items: baseline;
}

.cploc__head {
  padding-bottom: clamp(16px, 1.02vw, 26px);
  border-bottom: 2px solid var(--ink);
}

.cploc__scale {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.cploc__label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.cploc__note {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.cploc__home {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.cploc__wins {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
}

.cploc__address {
  font-family: var(--display);
  font-size: clamp(19px, 1.25vw, 32px);
  line-height: 1.1;
}

.cpthemes {
  display: flex;
  flex-direction: column;
}

.cptheme {
  align-items: start;
  padding: clamp(20px, 1.33vw, 34px) 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.12);
}

.cptheme__title {
  font-family: var(--display);
  font-size: clamp(24px, 1.64vw, 42px);
  line-height: 1.05;
  letter-spacing: -0.02em;
}

.cptheme__basis {
  padding-top: 7px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.cpcell {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* Балл и сырые цифры стоят на одной базовой линии, как в макете. */
.cpcell__line {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
}

.cpcell__score {
  font-family: var(--display);
  font-size: clamp(28px, 2.03vw, 52px);
  line-height: 1;
  color: var(--muted);
}

.cpcell--lead .cpcell__score { color: var(--ink); }
.cpcell--lead .cpbar__fill { background: var(--accent); }
.cpcell .cpbar__fill { background: rgba(var(--ink-rgb), 0.28); }

.cpcell__raw {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--faint);
}

.cpoverall {
  padding-top: clamp(20px, 1.33vw, 34px);
}

.cpoverall__label {
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.cpoverall__cell {
  display: flex;
  align-items: baseline;
  gap: 16px;
}

.cpoverall__score {
  font-family: var(--display);
  font-size: clamp(34px, 2.5vw, 64px);
  line-height: 1;
}

.cpoverall__cell--lead .cpoverall__score { color: var(--accent); }

.cpoverall__text {
  display: flex;
  flex-direction: column;
  gap: 5px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.cpoverall__note { color: var(--faint); }

/* --- Плита 06: вердикт ----------------------------------------------------- */

.cpverdict__body {
  position: relative;
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: clamp(14px, 0.94vw, 24px);
  padding: clamp(24px, 1.64vw, 42px) clamp(20px, 1.41vw, 36px) clamp(20px, 1.33vw, 34px);
  overflow: hidden;
}

.cpverdict__ghost {
  position: absolute;
  right: clamp(-16px, -0.63vw, -10px);
  top: clamp(40px, 3.13vw, 80px);
  font-family: var(--display);
  font-size: clamp(120px, 10.94vw, 280px);
  line-height: 0.8;
  color: rgba(var(--ink-rgb), 0.06);
  pointer-events: none;
}

.cpverdict--dark .cpverdict__ghost { color: rgba(var(--c-gold-rgb), 0.14); }

.cpverdict__stamp {
  position: relative;
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  padding: 9px 20px;
  border-radius: 4px;
  transform: rotate(-8deg);
  box-shadow: inset 0 0 0 2px var(--accent);
  background: rgba(var(--bg-rgb), 0.75);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
}

.cpverdict--dark .cpverdict__stamp {
  box-shadow: inset 0 0 0 2px var(--gold);
  background: rgba(var(--c-night-rgb), 0.75);
  color: var(--gold);
}

.cpverdict__label {
  position: relative;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.cpverdict--dark .cpverdict__label { color: rgba(var(--c-cream-rgb), 0.6); }

.cpverdict__claim {
  position: relative;
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(28px, 2.19vw, 56px);
  line-height: 1.02;
  letter-spacing: -0.024em;
}

.cpverdict__figure {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 16px;
  white-space: nowrap;
  font-family: var(--display);
  font-size: clamp(22px, 1.48vw, 38px);
  line-height: 1.1;
  color: var(--accent);
}

.cpverdict--dark .cpverdict__figure { color: var(--gold); }

.cpverdict__unit {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.cpverdict--dark .cpverdict__unit { color: rgba(var(--c-cream-rgb), 0.6); }

.cpverdict__reason {
  position: relative;
  font-size: clamp(15px, 0.74vw, 19px);
  font-weight: 300;
  line-height: 1.65;
  color: var(--muted);
}

.cpverdict--dark .cpverdict__reason { color: rgba(var(--c-cream-rgb), 0.82); }

.cpverdict__rows {
  position: relative;
  display: flex;
  flex-direction: column;
  margin-top: auto;
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
}

.cpverdict--dark .cpverdict__rows { border-top-color: rgba(var(--c-cream-rgb), 0.22); }

.cpverdict__row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.09);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.cpverdict--dark .cpverdict__row { border-bottom-color: rgba(var(--c-cream-rgb), 0.14); }

.cpverdict__value { color: var(--ink); }
.cpverdict--dark .cpverdict__value { color: var(--c-cream); }
.cpverdict__row--win .cpverdict__value { color: var(--accent); }
.cpverdict--dark .cpverdict__row--win .cpverdict__value { color: var(--gold); }

.cpverdict__foot {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-top: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.cpverdict__against { color: var(--faint); }
.cpverdict--dark .cpverdict__against { color: rgba(var(--c-cream-rgb), 0.6); }

.cpverdict__cta { position: relative; }

/* --- Плита 07: билеты ------------------------------------------------------ */

.cptickets {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(18px, 1.41vw, 36px);
}

.cpticket {
  position: relative;
  display: flex;
  flex-direction: column;
  border-radius: 4px 4px var(--r-card) var(--r-card);
  overflow: hidden;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  transition: transform 0.22s ease;
}

.cpticket::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 8px;
  background: repeating-linear-gradient(90deg, rgba(var(--ink-rgb), 0.34) 0 1px, transparent 1px 14px);
}

.cpticket:hover { transform: translateY(-8px); }

.cpticket__punch {
  position: absolute;
  top: clamp(96px, 5.86vw, 150px);
  width: 28px;
  height: 28px;
  border-radius: var(--r-pill);
  background: var(--bg);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.cpticket__punch--l { left: -14px; }
.cpticket__punch--r { right: -14px; }

.cpticket__head {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: clamp(24px, 1.56vw, 40px) clamp(20px, 1.33vw, 34px) clamp(18px, 1.02vw, 26px);
}

.cpticket__no {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
}

.cpticket__time { color: var(--faint); }

.cpticket__address {
  font-family: var(--display);
  font-size: clamp(24px, 1.64vw, 42px);
  line-height: 1.06;
  letter-spacing: -0.02em;
}

.cpticket__meta,
.cpticket__row {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.cpticket__stub {
  display: flex;
  flex-direction: column;
  gap: 18px;
  margin-top: auto;
  padding: clamp(18px, 1.02vw, 26px) clamp(20px, 1.33vw, 34px) clamp(22px, 1.25vw, 32px);
  border-top: 1px dashed rgba(var(--ink-rgb), 0.34);
}

.cpticket__row {
  display: flex;
  justify-content: space-between;
  gap: 14px;
}

.cpticket__value { color: var(--ink); }

.cpband {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: clamp(18px, 1.56vw, 40px);
  align-items: center;
  padding: clamp(24px, 1.56vw, 40px) clamp(24px, 1.8vw, 46px);
  border-radius: var(--r-card);
  background: var(--c-night);
  color: var(--c-cream);
}

.cpband__text {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.cpband__label {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold);
}

.cpband__lead {
  font-family: var(--display);
  font-size: clamp(24px, 1.8vw, 46px);
  line-height: 1.08;
  letter-spacing: -0.02em;
}

/* ==========================================================================
   39. Compare — адаптив
   ========================================================================== */

@media (max-width: 1440px) {
  .cpscores { grid-template-columns: repeat(4, minmax(0, 1fr)); }

  .cpscores__lead {
    grid-column: 1 / -1;
    padding-bottom: 0;
  }

  .cpmoneys,
  .cpverdicts,
  .cptickets { gap: 22px; }
}

@media (max-width: 1240px) {
  .cpslots,
  .cpmoneys,
  .cpverdicts,
  .cptickets,
  .cpscores { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  /* Реестр из 62 строк в две колонки не складывается: ярлык остаётся на месте,
     значения уезжают вбок вместе со скроллом. */
  .cpreg {
    overflow-x: auto;
    overscroll-behavior-x: contain;
  }

  .cpgroup { min-width: 900px; }

  .cprow__label {
    position: sticky;
    left: 0;
    z-index: 1;
    background: var(--bg);
  }

  .cploc__head,
  .cptheme,
  .cpoverall { grid-template-columns: minmax(0, 1fr) repeat(2, minmax(0, 1fr)); }

  .cploc__scale,
  .cptheme__name,
  .cpoverall__label { grid-column: 1 / -1; }

  .cpcontrols {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 26px;
  }

  .cpcontrols__cta { grid-column: 1 / -1; }
}

@media (max-width: 1024px) {
  #survey-0:checked ~ .tplate #survey-sheet-0,
  #survey-1:checked ~ .tplate #survey-sheet-1,
  #survey-2:checked ~ .tplate #survey-sheet-2,
  #survey-3:checked ~ .tplate #survey-sheet-3 {
    grid-template-columns: minmax(0, 1fr);
    gap: 40px;
  }

  .cpfault {
    grid-template-columns: clamp(30px, 3.13vw, 44px) 16px minmax(0, 1fr) auto;
    row-gap: 10px;
  }

  .cpfault__when {
    grid-column: 3 / -1;
    text-align: left;
  }

  .cpfault--head span:nth-child(4),
  .cpfault--total span:nth-child(4) { display: none; }

  .cpband {
    grid-template-columns: minmax(0, 1fr);
    gap: 22px;
  }
}

@media (max-width: 860px) {
  .cpslots,
  .cpmoneys,
  .cpverdicts,
  .cptickets,
  .cpscores { grid-template-columns: minmax(0, 1fr); }

  .cploc__head,
  .cptheme,
  .cpoverall { grid-template-columns: minmax(0, 1fr); }

  .cptheme { row-gap: 18px; }

  .cpgroup { min-width: 720px; }

  .section-head__control { justify-content: flex-start; }
}

@media (max-width: 600px) {
  .cpverdict__ghost { display: none; }

  .cpmoney__seal,
  .cpverdict__stamp { transform: none; }

  .cpmoney__seal {
    position: static;
    align-self: flex-start;
  }

  .cpfault {
    grid-template-columns: auto 16px minmax(0, 1fr);
    row-gap: 8px;
  }

  .cpfault__cost {
    grid-column: 3;
    align-items: flex-start;
  }

  .cpfault--head span:nth-child(5),
  .cpfault--total span:nth-child(5) { grid-column: 3; }

  .cpcontrols { grid-template-columns: minmax(0, 1fr); }

  .cpticket__punch { display: none; }

  .cpband__cta,
  .cpband__alt { width: 100%; }

  .cptoggle { width: 100%; }
}

/* ==========================================================================
   40. Career — восемь плит
   ========================================================================== */

/* Закрывающая полоса плиты: слева подпись с фразой, справа примечание или кнопка. */
.cwband {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(24px, 2.73vw, 70px);
  align-items: center;
  padding: clamp(22px, 1.41vw, 36px) clamp(22px, 1.72vw, 44px);
  border-radius: var(--r-card);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
}

.cwband__text {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.cwband__label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--accent);
}

.cwband__lead {
  font-family: var(--display);
  font-size: clamp(22px, 1.48vw, 38px);
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.cwband__note {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

/* Печать в строке шапки — не поверх сетки, а рядом с номером. */
.cwseal {
  display: inline-flex;
  align-items: center;
  padding: 9px clamp(14px, 0.86vw, 22px);
  border-radius: 4px;
  box-shadow: inset 0 0 0 2px var(--accent);
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--accent);
}

/* --- Плита 01: как устроена работа ---------------------------------------- */

.cwfacts,
.cwroles {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(16px, 1.33vw, 34px);
}

.cwfact,
.cwrole,
.cwterm,
.cwvoice {
  position: relative;
  display: flex;
  flex-direction: column;
  border-radius: var(--r-card);
  overflow: hidden;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
}

.cwfact--dark,
.cwrole--dark,
.cwterm--dark,
.cwvoice--dark {
  background: var(--c-night);
  color: var(--c-cream);
  box-shadow: inset 0 0 0 1px rgba(var(--c-gold-rgb), 0.45);
}

.cwfact__head,
.cwterm__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  padding: clamp(14px, 0.78vw, 20px) clamp(18px, 1.17vw, 30px);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.16);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.cwfact--dark .cwfact__head,
.cwterm--dark .cwterm__head { border-bottom-color: rgba(var(--c-cream-rgb), 0.22); }

.cwfact__tag,
.cwterm__tag { color: var(--accent); }
.cwfact--dark .cwfact__tag,
.cwterm--dark .cwterm__tag { color: var(--gold); }

.cwfact__since,
.cwterm__when { color: var(--faint); }
.cwfact--dark .cwfact__since,
.cwterm--dark .cwterm__when { color: rgba(var(--c-cream-rgb), 0.6); }

.cwfact__body,
.cwterm__body {
  position: relative;
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: clamp(14px, 0.78vw, 20px);
  padding: clamp(24px, 1.48vw, 38px) clamp(18px, 1.17vw, 30px) clamp(20px, 1.17vw, 30px);
}

.cwfact__ghost,
.cwterm__ghost,
.cwrole__ghost {
  position: absolute;
  right: clamp(-16px, -0.63vw, -10px);
  top: clamp(30px, 2.34vw, 60px);
  font-family: var(--display);
  font-size: clamp(120px, 10.16vw, 260px);
  line-height: 0.8;
  color: rgba(var(--ink-rgb), 0.06);
  pointer-events: none;
}

.cwfact--dark .cwfact__ghost,
.cwterm--dark .cwterm__ghost,
.cwrole--dark .cwrole__ghost { color: rgba(var(--c-gold-rgb), 0.14); }

.cwfact__seal {
  position: relative;
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  padding: 9px 20px;
  border-radius: 4px;
  transform: rotate(-8deg);
  box-shadow: inset 0 0 0 2px var(--accent);
  background: rgba(var(--bg-rgb), 0.75);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
}

.cwfact--dark .cwfact__seal {
  box-shadow: inset 0 0 0 2px var(--gold);
  background: rgba(var(--c-night-rgb), 0.75);
  color: var(--gold);
}

.cwfact__figure,
.cwterm__figure {
  position: relative;
  font-family: var(--display);
  font-size: clamp(34px, 2.81vw, 72px);
  line-height: 0.95;
  white-space: nowrap;
  color: var(--accent);
}

.cwfact--dark .cwfact__figure,
.cwterm--dark .cwterm__figure { color: var(--gold); }

/* Пункты, которые начинаются не в первый день, набраны спокойнее. */
.cwterm__figure--later { color: var(--muted); }

.cwfact__title,
.cwterm__title {
  position: relative;
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(22px, 1.48vw, 38px);
  line-height: 1.08;
  letter-spacing: -0.018em;
}

.cwfact__text,
.cwterm__text {
  position: relative;
  font-size: clamp(15px, 0.7vw, 18px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--muted);
}

.cwfact--dark .cwfact__text,
.cwterm--dark .cwterm__text { color: rgba(var(--c-cream-rgb), 0.82); }

.cwfact__foot,
.cwterm__foot {
  position: relative;
  margin-top: auto;
  padding-top: clamp(12px, 0.63vw, 16px);
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.cwfact--dark .cwfact__foot,
.cwterm--dark .cwterm__foot {
  border-top-color: rgba(var(--c-cream-rgb), 0.22);
  color: rgba(var(--c-cream-rgb), 0.6);
}

/* --- Плита 02: открытые вакансии ------------------------------------------ */

/* Объявление с перфорацией по верхнему краю и булавкой. */
.cwrole {
  border-radius: 4px 4px var(--r-card) var(--r-card);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.cwrole::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 9px;
  background: repeating-linear-gradient(90deg, rgba(var(--ink-rgb), 0.34) 0 1px, transparent 1px 16px);
}

.cwrole__pin {
  position: absolute;
  left: 50%;
  top: clamp(18px, 1.17vw, 30px);
  width: 26px;
  height: 26px;
  margin-left: -13px;
  border-radius: var(--r-pill);
  background: rgba(var(--ink-rgb), 0.14);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
}

.cwrole--dark .cwrole__pin {
  background: rgba(var(--c-gold-rgb), 0.24);
  box-shadow: inset 0 0 0 1px rgba(var(--c-gold-rgb), 0.5);
}

.cwrole__body {
  position: relative;
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: clamp(12px, 0.7vw, 18px);
  /* Верхний отступ держит булавку: она стоит на 18-30px и в узкой колонке
     иначе наезжает на строку с номером объявления. */
  padding: clamp(46px, 1.72vw, 44px) clamp(20px, 1.25vw, 32px) clamp(20px, 1.17vw, 30px);
}

.cwrole__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.cwrole__ref {
  white-space: nowrap;
  color: var(--accent);
}
.cwrole--dark .cwrole__ref { color: var(--gold); }

.cwrole__meta {
  display: flex;
  align-items: center;
  gap: 14px;
  color: var(--faint);
}

.cwrole--dark .cwrole__meta { color: rgba(var(--c-cream-rgb), 0.6); }

/* Статус вакансии — контурный чип в шапке карточки, не печать поверх строки. */
.cwchip {
  display: inline-flex;
  align-items: center;
  height: 30px;
  padding: 0 14px;
  border-radius: var(--r-pill);
  box-shadow: inset 0 0 0 1px var(--accent);
  font-size: 12px;
  letter-spacing: 0.18em;
  color: var(--accent);
}

.cwrole--dark .cwchip {
  box-shadow: inset 0 0 0 1px var(--gold);
  color: var(--gold);
}

.cwrole__title {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(26px, 1.72vw, 44px);
  line-height: 1.05;
  letter-spacing: -0.02em;
}

.cwrole__where {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.cwrole--dark .cwrole__where { color: rgba(var(--c-cream-rgb), 0.6); }

.cwrole__blurb {
  font-size: clamp(15px, 0.74vw, 19px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--muted);
}

.cwrole--dark .cwrole__blurb { color: rgba(var(--c-cream-rgb), 0.82); }

.cwrole__rows {
  display: flex;
  flex-direction: column;
  margin-top: auto;
  padding-top: clamp(12px, 0.63vw, 16px);
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
}

.cwrole--dark .cwrole__rows { border-top-color: rgba(var(--c-cream-rgb), 0.22); }

.cwrole__row {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 0;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.cwrole--dark .cwrole__row { color: rgba(var(--c-cream-rgb), 0.6); }

.cwrole__value { color: var(--ink); }
.cwrole--dark .cwrole__value { color: var(--c-cream); }
.cwrole__value--accent { color: var(--accent); }
.cwrole--dark .cwrole__value--accent { color: var(--gold); }

.cwrole__cta { margin-top: 6px; }

.cwrole--dark .cwrole__cta {
  background: var(--gold);
  color: var(--c-night);
}

/* --- Плита 03: как идёт наём ---------------------------------------------- */

.cwrail__row {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(12px, 1.02vw, 26px);
}

.cwrail__row--top { padding-bottom: 26px; }
.cwrail__row--bars { padding-top: 22px; }
.cwrail__row--cards { padding-top: 30px; }

.cwstep__top {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.cwstep__days {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.cwstep__title {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(20px, 1.48vw, 38px);
  line-height: 1.08;
  letter-spacing: -0.018em;
}

.cwrail__line {
  position: relative;
  height: 2px;
  background: var(--ink);
}

.cwnode {
  position: absolute;
  top: -14px;
  width: 30px;
  height: 30px;
  margin-left: -15px;
  border-radius: var(--r-pill);
  background: var(--bg);
  box-shadow: inset 0 0 0 2px var(--ink);
}

.cwnode:nth-child(1) { left: 10%; }
.cwnode:nth-child(2) { left: 30%; }
.cwnode:nth-child(3) { left: 50%; }
.cwnode:nth-child(4) { left: 70%; }
.cwnode:nth-child(5) { left: 90%; }

.cwnode--first { box-shadow: inset 0 0 0 2px var(--accent); }
.cwnode--last { background: var(--gold); }

/* Отрезок шага окрашен по тому, чей это ход. */
.cwspan {
  display: block;
  height: 8px;
  border-radius: 3px;
  background: rgba(var(--ink-rgb), 0.5);
}

.cwspan--you { background: var(--accent); }
.cwspan--both { background: rgba(var(--c-red-rgb), 0.5); }

.cwlegend {
  display: flex;
  align-items: center;
  gap: 28px;
  padding-top: 16px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.cwlegend__key {
  display: flex;
  align-items: center;
  gap: 10px;
}

.cwlegend__key::before {
  content: "";
  width: 16px;
  height: 8px;
  border-radius: 3px;
  background: rgba(var(--ink-rgb), 0.5);
}

.cwlegend__key--you::before { background: var(--accent); }
.cwlegend__note { color: var(--ink); }

.cwstep {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: clamp(18px, 1.17vw, 30px) clamp(14px, 0.94vw, 24px);
  border-radius: var(--r-card);
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22);
}

.cwstep--last {
  background: var(--c-night);
  color: var(--c-cream);
  box-shadow: inset 0 0 0 1px rgba(var(--c-gold-rgb), 0.45);
}

.cwstep__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.cwstep__no { color: var(--accent); }
.cwstep--last .cwstep__no { color: var(--gold); }
.cwstep__owner { color: var(--faint); }
.cwstep--last .cwstep__owner { color: rgba(var(--c-cream-rgb), 0.6); }

.cwstep__body {
  font-size: clamp(14px, 0.66vw, 17px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--muted);
}

.cwstep--last .cwstep__body { color: rgba(var(--c-cream-rgb), 0.82); }

.cwstep__who {
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.cwstep--last .cwstep__who {
  border-top-color: rgba(var(--c-cream-rgb), 0.22);
  color: rgba(var(--c-cream-rgb), 0.6);
}

/* --- Плита 04: как устроена оплата ---------------------------------------- */

.cwpays {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(22px, 1.95vw, 50px);
}

.cwpay {
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 1.02vw, 26px);
  padding: clamp(22px, 1.56vw, 40px) clamp(20px, 1.41vw, 36px) clamp(20px, 1.33vw, 34px);
  border-radius: var(--r-card);
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
}

.cwpay--dark {
  background: var(--c-night);
  color: var(--c-cream);
  box-shadow: inset 0 0 0 1px rgba(var(--c-gold-rgb), 0.45);
}

.cwpay__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.cwpay__tag { color: var(--accent); }
.cwpay--dark .cwpay__tag { color: var(--gold); }
.cwpay__note { color: var(--faint); }
.cwpay--dark .cwpay__note { color: rgba(var(--c-cream-rgb), 0.6); }

.cwpay__total {
  display: flex;
  align-items: baseline;
  gap: 18px;
  font-family: var(--display);
  font-size: clamp(34px, 2.97vw, 76px);
  line-height: 0.92;
  white-space: nowrap;
}

.cwpay__unit {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.cwpay--dark .cwpay__unit { color: rgba(var(--c-cream-rgb), 0.6); }

/* Двенадцать месяцев года: у комиссии столбики скачут, у оклада одинаковы. */
.cwmonths {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  height: clamp(140px, 10.94vw, 280px);
}

.cwmonth {
  display: block;
  flex: 1;
  border-radius: 3px 3px 0 0;
  background: var(--accent);
}

/* Месяц, который не закрывает аренду. */
.cwmonth--lean { background: rgba(var(--c-red-rgb), 0.35); }
.cwpay--dark .cwmonth { background: var(--gold); }

.cwpay__scale {
  display: flex;
  justify-content: space-between;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.cwpay--dark .cwpay__scale { color: rgba(var(--c-cream-rgb), 0.6); }

.cwpay__rows {
  display: flex;
  flex-direction: column;
  margin-top: auto;
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
}

.cwpay--dark .cwpay__rows { border-top-color: rgba(var(--c-cream-rgb), 0.22); }

.cwpay__row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.09);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.cwpay--dark .cwpay__row { border-bottom-color: rgba(var(--c-cream-rgb), 0.14); }

.cwpay__value { color: var(--ink); }
.cwpay--dark .cwpay__value { color: var(--c-cream); }

/* --- Плита 05: что вы получаете ------------------------------------------- */

.cwterms {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(16px, 1.33vw, 34px);
}

/* --- Плита 06: пять дисциплин --------------------------------------------- */

.cwsegs {
  display: flex;
  height: clamp(84px, 5.16vw, 132px);
  border-radius: 3px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
}

.cwseg {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  padding: 0 clamp(10px, 0.7vw, 18px);
  overflow: hidden;
}

.cwseg--1 { background: rgba(var(--c-red-rgb), 0.18); }
.cwseg--2 { background: rgba(var(--ink-rgb), 0.13); }
.cwseg--3 { background: rgba(var(--ink-rgb), 0.1); }
.cwseg--4 { background: rgba(var(--c-gold-rgb), 0.3); }
.cwseg--5 { background: rgba(var(--ink-rgb), 0.06); }

/* Насечки — по одной на человека. */
.cwseg__fill {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: repeating-linear-gradient(90deg, rgba(var(--ink-rgb), 0.17) 0 1px, transparent 1px 32.5px);
}

.cwseg__count {
  position: relative;
  font-family: var(--display);
  font-size: clamp(26px, 2.19vw, 56px);
  line-height: 1;
}

.cwseg__name {
  position: relative;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
}

.cwticks {
  display: flex;
  justify-content: space-between;
  padding-top: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  color: var(--faint);
}

.cwticks__last { color: var(--ink); }

.cwdesks {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(20px, 2.34vw, 60px);
}

.cwdesk {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding-top: clamp(12px, 0.7vw, 18px);
  border-top: 2px solid var(--ink);
}

/* Дисциплина, у которой открыт стол, помечена красной линией. */
.cwdesk--hiring { border-top-color: var(--accent); }

.cwdesk__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.cwdesk--hiring .cwdesk__status { color: var(--accent); }

.cwdesk__name {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(24px, 1.64vw, 42px);
  line-height: 1.06;
  letter-spacing: -0.02em;
}

.cwdesk__text {
  font-size: clamp(14px, 0.7vw, 18px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--muted);
}

.cwdesk__want {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: auto;
  padding-top: clamp(12px, 0.63vw, 16px);
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
}

.cwdesk__want-label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.cwdesk__want-text { font-size: clamp(15px, 0.74vw, 19px); }

/* --- Плита 07: три голоса -------------------------------------------------- */

.cwvoices {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(18px, 1.56vw, 40px);
}

.cwvoice__photo {
  position: relative;
  display: block;
  aspect-ratio: 786 / 640;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.16);
}

.cwvoice--dark .cwvoice__photo { border-bottom-color: rgba(var(--c-cream-rgb), 0.22); }

.cwvoice__years {
  position: absolute;
  left: clamp(12px, 0.86vw, 22px);
  top: clamp(12px, 0.86vw, 22px);
  display: inline-flex;
  align-items: center;
  height: clamp(34px, 1.64vw, 42px);
  padding: 0 clamp(12px, 0.7vw, 18px);
  border-radius: var(--r-pill);
  background: var(--ink);
  color: var(--bg);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.cwvoice--dark .cwvoice__years {
  background: var(--gold);
  color: var(--c-night);
}

.cwvoice__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: clamp(16px, 0.94vw, 24px);
  padding: clamp(24px, 1.56vw, 40px) clamp(20px, 1.41vw, 36px) clamp(22px, 1.33vw, 34px);
}

.cwvoice__mark {
  height: 38px;
  font-family: var(--display);
  font-size: clamp(48px, 3.13vw, 80px);
  line-height: 0.6;
  color: var(--accent);
}

.cwvoice--dark .cwvoice__mark { color: var(--gold); }

.cwvoice__quote {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(20px, 1.33vw, 34px);
  line-height: 1.32;
  letter-spacing: -0.016em;
}

.cwvoice__who {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: auto;
  padding-top: clamp(12px, 0.63vw, 16px);
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
}

.cwvoice--dark .cwvoice__who { border-top-color: rgba(var(--c-cream-rgb), 0.22); }

.cwvoice__name {
  font-family: var(--display);
  font-size: clamp(20px, 1.41vw, 36px);
  line-height: 1.1;
}

.cwvoice__role {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.cwvoice--dark .cwvoice__role { color: rgba(var(--c-cream-rgb), 0.6); }

/* --- Плита 08: заявка ------------------------------------------------------ */

.cwslip {
  position: relative;
  border: 1px solid rgba(var(--ink-rgb), 0.34);
  border-radius: var(--r-card);
  padding: clamp(30px, 2.73vw, 70px) clamp(22px, 2.58vw, 66px);
  background: var(--sheet);
}

.cwslip::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 10px;
  border-radius: var(--r-card) var(--r-card) 0 0;
  background: repeating-linear-gradient(90deg, rgba(var(--ink-rgb), 0.34) 0 1px, transparent 1px 18px);
}

.cwslip::after {
  content: "";
  position: absolute;
  left: 50%;
  top: -18px;
  width: 36px;
  height: 36px;
  margin-left: -18px;
  border-radius: var(--r-pill);
  background: var(--bg);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
}

.cwslip__mark {
  position: absolute;
  right: clamp(20px, 2.34vw, 60px);
  bottom: clamp(18px, 1.72vw, 44px);
  height: clamp(60px, 5.16vw, 132px);
  width: auto;
  opacity: 0.12;
  pointer-events: none;
}

.cwslip__grid {
  display: grid;
  grid-template-columns: minmax(0, 1240fr) minmax(0, 1000fr);
  gap: clamp(28px, 3.91vw, 100px);
  align-items: start;
}

.cwslip__main,
.cwslip__aside {
  display: flex;
  flex-direction: column;
  gap: clamp(18px, 1.25vw, 32px);
}

.cwslip__title {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(32px, 3.2vw, 82px);
  line-height: 1;
  letter-spacing: -0.026em;
}

.cwslip__title em {
  font-style: italic;
  color: var(--accent);
}

.cwslip__lead {
  font-size: clamp(16px, 0.82vw, 21px);
  font-weight: 300;
  line-height: 1.7;
  color: var(--muted);
}

.cwform {
  display: flex;
  gap: clamp(12px, 0.86vw, 22px);
}

/* Поле с красной кареткой слева — как в макете. */
.cwform__input {
  flex: 1;
  min-width: 0;
  height: clamp(64px, 3.75vw, 96px);
  padding: 0 clamp(20px, 1.41vw, 36px) 0 calc(clamp(20px, 1.41vw, 36px) + 21px);
  border: 0;
  border-radius: var(--r-pill);
  background-color: var(--bg);
  /* Красная каретка 3 x 26 внутри поля — рисуем фоном, чтобы не заводить
     лишний элемент внутрь input. */
  background-image: linear-gradient(var(--accent), var(--accent));
  background-size: 3px 26px;
  background-position: clamp(20px, 1.41vw, 36px) center;
  background-repeat: no-repeat;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
  font-family: var(--mono);
  font-size: clamp(13px, 0.63vw, 16px);
  letter-spacing: 0.16em;
  color: var(--ink);
}

.cwform__input::placeholder { color: var(--faint); }

.cwform__submit { height: clamp(64px, 3.75vw, 96px); }

.cwslip__or {
  display: flex;
  align-items: center;
  gap: clamp(14px, 0.86vw, 22px);
}

.cwslip__or-label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.cwslip__alt {
  display: inline-flex;
  align-items: center;
  height: clamp(52px, 2.97vw, 76px);
  padding: 0 clamp(20px, 1.48vw, 38px);
  border-radius: var(--r-pill);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.4);
  font-family: var(--mono);
  font-size: clamp(12px, 0.55vw, 14px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  transition: background 0.2s ease, color 0.2s ease;
}

.cwslip__alt:hover {
  background: rgba(var(--ink-rgb), 0.07);
  color: var(--ink);
}

.cwpills {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.cwpill {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  height: 46px;
  padding: 0 20px;
  border-radius: var(--r-pill);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  transition: background 0.2s ease;
}

.cwpill:hover { background: rgba(var(--c-red-rgb), 0.08); }
.cwpill__when { color: var(--accent); }

.cwslip__contact {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.cwnext__label-head {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
}

.cwnext {
  display: flex;
  flex-direction: column;
}

.cwnext__row {
  display: grid;
  grid-template-columns: clamp(40px, 2.73vw, 70px) minmax(0, 1fr) clamp(90px, 5.86vw, 150px);
  gap: clamp(12px, 0.78vw, 20px);
  align-items: baseline;
  padding: clamp(14px, 0.86vw, 22px) 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
}

.cwnext__no {
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.14em;
  color: var(--accent);
}

.cwnext__label { font-size: clamp(16px, 0.82vw, 21px); }

.cwnext__when {
  text-align: right;
  white-space: nowrap;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.cwrule {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding-top: clamp(12px, 0.7vw, 18px);
  border-top: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.cwrule__value { color: var(--accent); }

.cwpromise {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: clamp(18px, 1.02vw, 26px) clamp(18px, 1.09vw, 28px);
  border-radius: 12px;
  background: rgba(var(--c-red-rgb), 0.07);
}

.cwpromise__label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
}

.cwpromise__text {
  font-size: clamp(15px, 0.74vw, 19px);
  line-height: 1.55;
}

/* ==========================================================================
   41. Career — адаптив
   ========================================================================== */

@media (max-width: 1440px) {
  .cwdesks { gap: 26px; }

  .cwrail__row,
  .cwrail__row--top,
  .cwrail__row--bars,
  .cwrail__row--cards { gap: 18px; }
}

@media (max-width: 1240px) {
  .cwfacts,
  .cwroles,
  .cwterms,
  .cwvoices { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .cwdesks { grid-template-columns: repeat(3, minmax(0, 1fr)); }

  /* Пять шагов найма перестают читаться в строку — уходят в сетку, а рельс
     с узлами прячется: его место занимает вертикальная ось у карточек. */
  .cwrail__row--top,
  .cwrail__row--bars,
  .cwrail__line { display: none; }

  .cwrail__row--cards {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 26px;
    padding-top: 0;
  }

  .cwstep {
    position: relative;
    padding-left: clamp(30px, 2.73vw, 46px);
  }

  /* Ось шага: отрезок слева с узлом наверху — тот же рисунок, что и на рельсе. */
  .cwstep::before {
    content: "";
    position: absolute;
    left: 14px;
    top: 22px;
    bottom: 18px;
    width: 2px;
    background: rgba(var(--ink-rgb), 0.5);
  }

  .cwstep::after {
    content: "";
    position: absolute;
    left: 6px;
    top: 16px;
    width: 18px;
    height: 18px;
    border-radius: var(--r-pill);
    background: var(--bg);
    box-shadow: inset 0 0 0 2px var(--ink);
  }

  .cwstep--last::before { background: rgba(var(--c-cream-rgb), 0.5); }

  .cwstep--last::after {
    background: var(--gold);
    box-shadow: inset 0 0 0 2px var(--gold);
  }

  .cwslip__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 44px;
  }
}

@media (max-width: 1024px) {
  .cwrail__row--cards,
  .cwdesks { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .cwpays { grid-template-columns: minmax(0, 1fr); }

  .cwband {
    grid-template-columns: minmax(0, 1fr);
    gap: 18px;
  }

  .cwsegs { height: clamp(70px, 8.2vw, 110px); }

  .cwseg__name { display: none; }
}

@media (max-width: 860px) {
  .cwfacts,
  .cwroles,
  .cwterms,
  .cwvoices,
  .cwrail__row--cards,
  .cwdesks { grid-template-columns: minmax(0, 1fr); }

  .cwlegend {
    flex-wrap: wrap;
    gap: 12px 20px;
  }

  .cwlegend .tfoot__rule { display: none; }

  .cwform { flex-wrap: wrap; }
  .cwform__input { flex: 1 0 100%; }
  .cwform__submit { width: 100%; }
}

@media (max-width: 600px) {
  .cwfact__ghost,
  .cwterm__ghost,
  .cwrole__ghost { display: none; }

  .cwfact__seal { transform: none; }

  /* На узкой карточке номер объявления и статус встают друг под друга. */
  .cwrole__head { flex-direction: column; }

  .cwseg__count { font-size: clamp(18px, 5vw, 26px); }

  .cwnext__row {
    grid-template-columns: auto minmax(0, 1fr);
    row-gap: 6px;
  }

  .cwnext__when {
    grid-column: 2;
    text-align: left;
  }

  .cwband__cta,
  .cwslip__alt { width: 100%; }

  .cwslip__or { flex-wrap: wrap; }
}

/* ==========================================================================
   42. Style guide — десять плит образцов
   ========================================================================== */

/* Печать в строке шапки — как на всех остальных страницах. */
.sgseal {
  display: inline-flex;
  align-items: center;
  padding: 9px clamp(14px, 0.86vw, 22px);
  border-radius: 4px;
  box-shadow: inset 0 0 0 2px var(--accent);
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--accent);
}

.sgbit__label,
.sgnote__label,
.sgscale__label,
.sgweights__label,
.sgrules__label,
.sgchecklist__label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

/* --- Плита 01: холст ------------------------------------------------------- */

.sgfound {
  display: grid;
  grid-template-columns: minmax(0, 1400fr) minmax(0, 1000fr);
  gap: clamp(28px, 3.13vw, 80px);
  align-items: start;
}

.sgruler,
.sgcanvas__band,
.sgcanvas__col {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.sgruler {
  display: flex;
  justify-content: space-between;
  padding-bottom: 10px;
  border-bottom: 2px solid var(--ink);
}

.sgcanvas__frame {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 18px 0;
}

/* Поля по 60px показаны штриховкой — на них ничего не ставится. */
.sgcanvas__margin {
  position: absolute;
  top: 0;
  bottom: 0;
  width: clamp(18px, 2.34vw, 60px);
  background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.1) 0 2px, transparent 2px 14px);
}

.sgcanvas__margin--l { left: 0; }
.sgcanvas__margin--r { right: 0; }

.sgcanvas__band {
  padding: clamp(12px, 0.86vw, 22px) clamp(24px, 2.73vw, 70px);
  background: rgba(var(--c-red-rgb), 0.07);
  color: var(--accent);
  text-align: center;
}

.sgcanvas__col {
  padding: clamp(30px, 2.73vw, 70px) clamp(24px, 2.73vw, 70px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
  color: var(--ink);
  text-align: center;
}

.sgfound__side {
  display: flex;
  flex-direction: column;
  gap: clamp(20px, 1.72vw, 44px);
}

.sgnums {
  display: flex;
  flex-direction: column;
  border-top: 2px solid var(--ink);
}

.sgnum {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: clamp(10px, 0.63vw, 16px) 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.sgnum__value { color: var(--ink); }

.sgnote {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: clamp(18px, 1.02vw, 26px) clamp(18px, 1.09vw, 28px);
  border-radius: 12px;
  background: rgba(var(--c-red-rgb), 0.07);
}

.sgnote__text {
  font-size: clamp(15px, 0.74vw, 19px);
  font-weight: 300;
  line-height: 1.6;
}

.sgscale {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.sgpills {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.sgpill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 40px;
  padding: 0 14px;
  border-radius: var(--r-pill);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
}

/* --- Плита 02: цвет -------------------------------------------------------- */

.sgchips {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(16px, 1.33vw, 34px);
}

.sgchip {
  display: flex;
  flex-direction: column;
  border-radius: var(--r-card);
  overflow: hidden;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
}

/* Плашка красится тем же токеном, который назван рядом: подпись не может
   разойтись с цветом. */
.sgchip__swatch {
  display: block;
  height: clamp(90px, 7.42vw, 190px);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.16);
}

.sgchip__swatch--bg { background: var(--bg); }
.sgchip__swatch--card { background: var(--sheet); }
.sgchip__swatch--ink { background: var(--ink); }
.sgchip__swatch--muted { background: var(--muted); }
.sgchip__swatch--faint { background: var(--faint); }
.sgchip__swatch--accent { background: var(--accent); }
.sgchip__swatch--gold { background: var(--gold); }
.sgchip__swatch--dark { background: var(--c-night); }
.sgchip__swatch--on-dark { background: var(--c-cream); }

.sgchip__body {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: clamp(14px, 0.94vw, 24px) clamp(14px, 0.94vw, 24px) clamp(16px, 1.02vw, 26px);
}

.sgchip__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  font-family: var(--mono);
  font-size: clamp(12px, 0.55vw, 14px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.sgchip__name { color: var(--accent); }
.sgchip__hex { color: var(--ink); }

.sgchip__job {
  font-size: clamp(14px, 0.7vw, 18px);
  font-weight: 300;
  line-height: 1.5;
  color: var(--muted);
}

.sgchip__ratio,
.sgweight__job,
.sgpair__note {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.sgweights {
  display: grid;
  grid-template-columns: minmax(0, 1240fr) minmax(0, 1000fr);
  gap: clamp(28px, 3.13vw, 80px);
  align-items: start;
}

.sgweights__list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.sgweight {
  display: grid;
  grid-template-columns: clamp(80px, 9.38vw, 240px) clamp(44px, 3.13vw, 80px) minmax(0, 1fr);
  gap: clamp(12px, 0.94vw, 24px);
  align-items: center;
  padding: 10px 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.09);
}

.sgweight__bar {
  display: block;
  height: 2px;
  background: rgba(var(--ink-rgb), 0.1);
}

.sgweight__bar--014 { background: rgba(var(--ink-rgb), 0.14); }
.sgweight__bar--018 { background: rgba(var(--ink-rgb), 0.18); }
.sgweight__bar--022 { background: rgba(var(--ink-rgb), 0.22); }
.sgweight__bar--034 { background: rgba(var(--ink-rgb), 0.34); }
.sgweight__bar--2px { background: var(--ink); }

.sgweight__value {
  font-family: var(--mono);
  font-size: clamp(12px, 0.55vw, 14px);
  letter-spacing: 0.14em;
  color: var(--ink);
}

.sgpair {
  display: flex;
  flex-direction: column;
  gap: clamp(14px, 0.94vw, 24px);
  padding: clamp(18px, 1.25vw, 32px) clamp(18px, 1.33vw, 34px);
  border-radius: var(--r-card);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22);
}

.sgpair__row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(14px, 0.94vw, 24px);
}

.sgpair__side {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.sgpair__tag {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.sgpair__side--right .sgpair__tag { color: var(--accent); }
.sgpair__side--wrong .sgpair__tag { color: var(--faint); }

.sgpair__demo--mono {
  font-family: var(--mono);
  font-size: clamp(12px, 0.55vw, 14px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

/* Тот же цвет на прозе — так делать нельзя, и это видно. */
.sgpair__demo--prose {
  font-size: clamp(16px, 0.86vw, 22px);
  font-weight: 300;
  color: var(--faint);
}

/* --- Плита 03: типографика ------------------------------------------------- */

.sgfaces {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(16px, 1.33vw, 34px);
}

.sgface {
  display: flex;
  flex-direction: column;
  border-radius: var(--r-card);
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
}

.sgface__head,
.sgmark__head,
.sgctrl__head,
.sgsurface__head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 6px 10px;
  padding: clamp(12px, 0.78vw, 20px) clamp(16px, 1.09vw, 28px);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.16);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
}

.sgface__weights,
.sgmark__metric,
.sgctrl__metric,
.sgsurface__metric { color: var(--faint); }

.sgface__body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: clamp(18px, 1.25vw, 32px) clamp(16px, 1.09vw, 28px) clamp(18px, 1.17vw, 30px);
}

.sgface__aa {
  font-size: clamp(48px, 4.69vw, 120px);
  line-height: 0.9;
}

.sgface__aa--display { font-family: var(--display); }
.sgface__aa--body { font-family: var(--text); font-weight: 300; }
.sgface__aa--mono { font-family: var(--mono); }

.sgface__name {
  font-family: var(--display);
  font-size: clamp(20px, 1.41vw, 36px);
  line-height: 1.1;
}

.sgface__text,
.sgmark__text,
.sgctrl__text,
.sgsurface__text {
  font-size: clamp(14px, 0.7vw, 18px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--muted);
}

.sgtable {
  display: flex;
  flex-direction: column;
}

.sgrow {
  display: grid;
  grid-template-columns: clamp(140px, 15.63vw, 400px) clamp(110px, 10.94vw, 280px) clamp(110px, 11.72vw, 300px) minmax(0, 1fr);
  gap: clamp(14px, 1.33vw, 34px);
  align-items: baseline;
  padding: clamp(12px, 0.86vw, 22px) 22px;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.1);
  transition: background 0.2s ease;
}

.sgrow:hover { background: rgba(var(--c-red-rgb), 0.05); }

.sgrow--head {
  border-bottom: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.sgrow--head:hover { background: none; }

.sgrow__role {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.sgrow__name {
  font-family: var(--mono);
  font-size: clamp(12px, 0.55vw, 14px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
}

.sgrow__use,
.sgrow__face,
.sgrow__metric {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  color: var(--faint);
}

/* Образец в строке набран ровно тем, что описан слева. */
.sgspec--h1,
.sgspec--h3,
.sgspec--h4,
.sgspec--fig {
  font-family: var(--display);
  line-height: 1.02;
}

.sgspec--h1 { font-size: clamp(26px, 1.88vw, 48px); }
.sgspec--h3 { font-size: clamp(22px, 1.64vw, 42px); }
.sgspec--h4 { font-size: clamp(19px, 1.33vw, 34px); }
.sgspec--fig { font-size: clamp(24px, 1.88vw, 48px); white-space: nowrap; }

.sgspec--bodyl {
  font-size: clamp(16px, 0.82vw, 21px);
  font-weight: 300;
  line-height: 1.7;
}

.sgspec--body {
  font-size: clamp(14px, 0.74vw, 19px);
  font-weight: 300;
  line-height: 1.65;
}

.sgspec--mono,
.sgspec--micro {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.sgcases {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(16px, 1.33vw, 34px);
}

.sgcase {
  display: flex;
  flex-direction: column;
  gap: clamp(12px, 0.86vw, 22px);
  padding: clamp(18px, 1.25vw, 32px) clamp(16px, 1.09vw, 28px);
  border-radius: var(--r-card);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22);
}

.sgcase__title,
.sgpair__tag {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
}

.sgcase__pair {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.sgcase__side {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.sgcase__tag {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.sgcase__tag--right { color: var(--accent); }
.sgcase__tag--wrong { color: var(--faint); }

.sgcase__demo--1,
.sgcase__demo--2 {
  font-family: var(--display);
  font-size: clamp(20px, 1.41vw, 36px);
  line-height: 1.05;
}

/* Второй пример: правильный — один курсив в конце, неправильный — два. */
.sgcase__demo--2 { color: var(--ink); }
.sgcase__demo--3 {
  font-family: var(--mono);
  font-size: clamp(12px, 0.55vw, 14px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
}

.sgcase__demo--bad3 {
  font-family: var(--display);
  font-size: 13px;
  letter-spacing: 0;
  text-transform: none;
}

.sgcase__note {
  font-size: clamp(14px, 0.66vw, 17px);
  font-weight: 300;
  line-height: 1.55;
  color: var(--muted);
}

/* --- Плита 04: чертёжные пометки ------------------------------------------ */

.sgmarks {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(16px, 1.33vw, 34px);
}

.sgmark {
  display: flex;
  flex-direction: column;
  border-radius: var(--r-card);
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
}

.sgdemo {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  min-height: clamp(110px, 8.59vw, 220px);
  margin: 0;
  padding: clamp(18px, 1.25vw, 32px) clamp(16px, 1.09vw, 28px);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.16);
  background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.05) 0 2px, transparent 2px 16px);
}

.sgmark__name {
  padding: clamp(14px, 0.94vw, 24px) clamp(16px, 1.09vw, 28px) 0;
  font-family: var(--display);
  font-size: clamp(20px, 1.41vw, 36px);
  line-height: 1.08;
}

.sgmark__text { padding: 10px clamp(16px, 1.09vw, 28px) clamp(18px, 1.17vw, 30px); }

.sgdemo__kicker {
  display: flex;
  align-items: center;
  gap: 16px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
}

.sgdemo__num { color: var(--accent); }
.sgdemo__label { color: var(--muted); }

.sgdemo__rule {
  display: block;
  width: 90px;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.24);
}

.sgdemo__frame {
  position: relative;
  display: block;
  width: 100%;
  height: clamp(70px, 5.47vw, 140px);
}

/* Уголки — общая пометка: используется и на подложке снимка. */
.sgtick {
  position: absolute;
  width: 26px;
  height: 26px;
  border: 0 solid rgba(var(--ink-rgb), 0.5);
}

.sgtick--tl {
  left: 0;
  top: 0;
  border-left-width: 1px;
  border-top-width: 1px;
}

.sgtick--tr {
  right: 0;
  top: 0;
  border-right-width: 1px;
  border-top-width: 1px;
}

.sgtick--bl {
  left: 0;
  bottom: 0;
  border-left-width: 1px;
  border-bottom-width: 1px;
}

.sgtick--br {
  right: 0;
  bottom: 0;
  border-right-width: 1px;
  border-bottom-width: 1px;
}

.sgdemo__span {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
}

.sgdemo__cap {
  display: block;
  width: 1px;
  height: 16px;
  background: rgba(var(--ink-rgb), 0.5);
}

.sgdemo__hair {
  display: block;
  flex: 1;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.32);
}

.sgdemo__caption,
.sgdemo__ref,
.sgdemo__front {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
}

.sgdemo__margin {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  color: var(--faint);
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}

.sgdemo__ghostwell {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  overflow: hidden;
}

.sgdemo__ghost {
  position: absolute;
  right: -10px;
  top: -30px;
  font-family: var(--display);
  font-size: clamp(90px, 7.03vw, 180px);
  line-height: 0.8;
  color: rgba(var(--ink-rgb), 0.06);
  pointer-events: none;
}

.sgdemo__seal { transform: rotate(-8deg); }

.sgdemo__slip {
  position: relative;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  width: 100%;
  height: clamp(80px, 6.25vw, 160px);
  padding-bottom: 14px;
  border: 1px solid rgba(var(--ink-rgb), 0.34);
  border-radius: 4px 4px var(--r-card) var(--r-card);
  background: var(--bg);
}

.sgdemo__slip::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 10px;
  border-radius: 4px 4px 0 0;
  background: repeating-linear-gradient(90deg, rgba(var(--ink-rgb), 0.34) 0 1px, transparent 1px 18px);
}

.sgdemo__pin {
  position: absolute;
  left: 50%;
  top: -18px;
  width: 36px;
  height: 36px;
  margin-left: -18px;
  border-radius: var(--r-pill);
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
}

.sgdemo__hatch {
  display: block;
  width: 46%;
  height: clamp(70px, 5.47vw, 140px);
  border-radius: 6px;
  background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.1) 0 2px, transparent 2px 14px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22);
}

.sgdemo__hatch--dark {
  background: var(--c-night)
    repeating-linear-gradient(45deg, rgba(var(--c-cream-rgb), 0.045) 0 2px, transparent 2px 18px);
}

/* Штамп сheet-а — пять ячеек в рамке. */
.sgblock {
  display: flex;
  flex-wrap: wrap;
  border: 1px solid rgba(var(--ink-rgb), 0.34);
  border-radius: 4px;
  overflow: hidden;
}

.sgblock__cell {
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex: 1;
  min-width: 120px;
  padding: clamp(10px, 0.7vw, 18px) clamp(12px, 0.86vw, 22px);
  border-right: 1px solid rgba(var(--ink-rgb), 0.34);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.sgblock__cell:last-child { border-right: 0; }
.sgblock__key { color: var(--faint); }
.sgblock__value { color: var(--ink); }

.sglesson {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(20px, 1.72vw, 44px);
  align-items: center;
  padding: clamp(18px, 1.25vw, 32px) clamp(20px, 1.72vw, 44px);
  border-radius: var(--r-card);
  background: rgba(var(--c-red-rgb), 0.07);
}

.sglesson__text {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.sglesson__label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--accent);
}

.sglesson__lead {
  font-family: var(--display);
  font-size: clamp(20px, 1.48vw, 38px);
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.sglesson__note {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

/* Отдельные демонстрации просят своей рамки: подпись на полях ставится
   вертикально, штриховки показываются парой, штамп занимает всю ширину. */
.sgdemo--label { min-height: clamp(130px, 9.38vw, 240px); }

.sgdemo--hatch { gap: clamp(10px, 0.7vw, 18px); }

.sgdemo--block,
.sgdemo--slip,
.sgdemo--ticks,
.sgdemo--span,
.sgdemo--ghost { align-items: stretch; }

.sgdemo--block .sgblock,
.sgdemo--slip .sgdemo__slip { width: 100%; }

.sgdemo--ghost { overflow: hidden; }

.sgcase__demo em {
  font-style: italic;
  color: var(--accent);
}

/* --- Плита 05: элементы управления ----------------------------------------- */

.sgctrls {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(16px, 1.33vw, 34px);
}

.sgctrl {
  display: flex;
  flex-direction: column;
  border-radius: var(--r-card);
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
}

/* Третья карточка тёмная: золото существует только на ней. */
.sgctrl--dark {
  background: var(--c-night);
  color: var(--c-cream);
  box-shadow: inset 0 0 0 1px rgba(var(--c-gold-rgb), 0.45);
}

.sgctrl--dark .sgctrl__head {
  border-bottom-color: rgba(var(--c-cream-rgb), 0.22);
  color: var(--gold);
}

.sgctrl--dark .sgctrl__metric { color: rgba(var(--c-cream-rgb), 0.6); }
.sgctrl--dark .sgctrl__text { color: rgba(var(--c-cream-rgb), 0.82); }

.sgctrl__body {
  display: flex;
  flex-direction: column;
  gap: clamp(14px, 0.94vw, 24px);
  padding: clamp(18px, 1.25vw, 32px) clamp(16px, 1.09vw, 28px) clamp(18px, 1.17vw, 30px);
}

.sgctrl__name {
  font-family: var(--display);
  font-size: clamp(20px, 1.41vw, 36px);
  line-height: 1.08;
}

.sgctrl__btn { align-self: flex-start; }

.sgbits {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(24px, 2.73vw, 70px);
  align-items: start;
}

.sgbits__col {
  display: flex;
  flex-direction: column;
  gap: clamp(20px, 1.72vw, 44px);
}

.sgbit {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.sgtabs,
.sgchipset,
.sgcircles {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
}

.sgtab {
  display: inline-flex;
  align-items: center;
  height: clamp(48px, 2.5vw, 64px);
  padding: 0 clamp(18px, 1.17vw, 30px);
  border-radius: var(--r-pill);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.28);
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
}

.sgtab--on {
  background: var(--ink);
  box-shadow: none;
  color: var(--bg);
}

.sgchipdemo {
  display: inline-flex;
  align-items: center;
  height: clamp(38px, 2.03vw, 52px);
  padding: 0 clamp(14px, 0.94vw, 24px);
  border-radius: var(--r-pill);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.sgcircle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(52px, 3.44vw, 88px);
  height: clamp(52px, 3.44vw, 88px);
  border-radius: var(--r-pill);
  background: var(--ink);
  color: var(--bg);
  font-size: clamp(18px, 1.02vw, 26px);
  transition: background 0.2s ease, color 0.2s ease;
}

.sgcircle:hover {
  background: var(--accent);
  color: var(--c-cream);
}

.sgcircle--outline {
  background: transparent;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.4);
  color: var(--ink);
}

.sgcircle--outline:hover {
  background: rgba(var(--ink-rgb), 0.07);
  color: var(--ink);
}

.sgslider__scale,
.sgspan__scale,
.sgcols__scale,
.sgruler__scale,
.sgsplit__keys {
  display: flex;
  justify-content: space-between;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.sgslider__now,
.sgspan__last,
.sgscale__last { color: var(--ink); }

.sgfield { width: 100%; }

.sgtyped {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: clamp(14px, 0.94vw, 24px) 0;
  border-bottom: 2px solid var(--accent);
}

.sgtyped__value {
  font-family: var(--display);
  font-size: clamp(28px, 2.03vw, 52px);
  line-height: 1;
  white-space: nowrap;
}

.sgtyped__unit {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

/* --- Плита 06: поверхности ------------------------------------------------- */

.sgsurfaces {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(16px, 1.33vw, 34px);
  align-items: stretch;
}

.sgsurface {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-height: clamp(220px, 13.13vw, 336px);
  padding: clamp(18px, 1.25vw, 32px) clamp(16px, 1.09vw, 28px) clamp(18px, 1.17vw, 30px);
  border-radius: var(--r-card);
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  transition: transform 0.22s ease, box-shadow 0.22s ease;
}

.sgsurface__head {
  padding: 0 0 12px;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.16);
}

.sgsurface__name {
  font-family: var(--display);
  font-size: clamp(20px, 1.41vw, 36px);
  line-height: 1.08;
}

.sgsurface__foot {
  margin-top: auto;
  padding-top: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

/* Карточка живая: наведение поднимает её на восемь пикселей — это и есть спека. */
.sgsurface--card:hover {
  transform: translateY(-8px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.55);
}

.sgsurface--dark {
  background: var(--c-night)
    repeating-linear-gradient(45deg, rgba(var(--c-cream-rgb), 0.045) 0 2px, transparent 2px 18px);
  color: var(--c-cream);
  box-shadow: inset 0 0 0 1px rgba(var(--c-gold-rgb), 0.45);
}

.sgsurface--dark .sgsurface__head {
  border-bottom-color: rgba(var(--c-cream-rgb), 0.22);
  color: var(--gold);
}

.sgsurface--dark .sgsurface__metric,
.sgsurface--dark .sgsurface__foot { color: rgba(var(--c-cream-rgb), 0.6); }
.sgsurface--dark .sgsurface__text { color: rgba(var(--c-cream-rgb), 0.82); }

.sgsurface--slip {
  border: 1px solid rgba(var(--ink-rgb), 0.34);
  border-radius: 4px 4px var(--r-card) var(--r-card);
  box-shadow: none;
}

.sgsurface--slip::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 10px;
  border-radius: 4px 4px 0 0;
  background: repeating-linear-gradient(90deg, rgba(var(--ink-rgb), 0.34) 0 1px, transparent 1px 18px);
}

.sgsurface--slip::after {
  content: "";
  position: absolute;
  left: 50%;
  top: -18px;
  width: 36px;
  height: 36px;
  margin-left: -18px;
  border-radius: var(--r-pill);
  background: var(--bg);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
}

.sgsurface--ticket {
  border-radius: 4px 4px var(--r-card) var(--r-card);
  overflow: hidden;
}

.sgsurface--ticket::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 8px;
  background: repeating-linear-gradient(90deg, rgba(var(--ink-rgb), 0.34) 0 1px, transparent 1px 14px);
}

.sgsurface--ticket .sgsurface__foot {
  border-top: 1px dashed rgba(var(--ink-rgb), 0.34);
}

/* --- Плита 07: данные ------------------------------------------------------ */

.sgdata {
  display: grid;
  grid-template-columns: minmax(0, 1240fr) minmax(0, 1000fr);
  gap: clamp(28px, 3.13vw, 80px);
  align-items: start;
}

.sgreg {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.sgreg__row {
  display: grid;
  grid-template-columns: clamp(40px, 2.73vw, 70px) minmax(0, 1fr) clamp(90px, 8.59vw, 220px) clamp(90px, 7.03vw, 180px);
  gap: clamp(12px, 1.17vw, 30px);
  align-items: baseline;
  padding: clamp(12px, 0.86vw, 22px) 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.1);
  font-size: clamp(14px, 0.7vw, 18px);
  transition: background 0.2s ease;
}

.sgreg__row:nth-child(odd):not(.sgreg__row--head):not(.sgreg__row--total) {
  background: rgba(var(--ink-rgb), 0.03);
}

.sgreg__row:hover { background: rgba(var(--c-red-rgb), 0.05); }

.sgreg__row--head {
  padding-top: 0;
  border-bottom: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.sgreg__row--head:hover { background: none; }

.sgreg__row--total {
  border-top: 2px solid var(--ink);
  border-bottom: 0;
  font-family: var(--mono);
  font-size: clamp(12px, 0.55vw, 14px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.sgreg__row--head span:nth-child(3),
.sgreg__row--head span:nth-child(4),
.sgreg__basis,
.sgreg__amount { text-align: right; }

.sgreg__no,
.sgreg__basis {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  color: var(--faint);
}

.sgreg__amount {
  font-family: var(--mono);
  font-size: clamp(13px, 0.63vw, 16px);
  white-space: nowrap;
}

.sgreg__row--total .sgreg__amount { color: var(--accent); }

.sggraphics {
  display: flex;
  flex-direction: column;
  gap: clamp(20px, 1.72vw, 44px);
}

.sgsplit {
  display: flex;
  height: clamp(16px, 1.02vw, 26px);
  border-radius: var(--r-pill);
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
}

.sgsplit__part { display: block; }
.sgsplit__part--1 { background: var(--accent); }
.sgsplit__part--2 { background: rgba(var(--ink-rgb), 0.28); }
.sgsplit__key--1 { color: var(--accent); }
.sgsplit__key--2 { color: var(--muted); }

.sgspan {
  display: flex;
  height: clamp(60px, 4.06vw, 104px);
  border-radius: 3px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
}

.sgspan__seg {
  position: relative;
  display: flex;
  align-items: center;
  padding: 0 clamp(8px, 0.55vw, 14px);
  overflow: hidden;
}

.sgspan__seg--1 { background: rgba(var(--c-red-rgb), 0.18); }
.sgspan__seg--2 { background: rgba(var(--ink-rgb), 0.13); }
.sgspan__seg--3 { background: rgba(var(--ink-rgb), 0.1); }
.sgspan__seg--4 { background: rgba(var(--c-gold-rgb), 0.3); }
.sgspan__seg--5 { background: rgba(var(--ink-rgb), 0.06); }

.sgspan__ticks {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: repeating-linear-gradient(90deg, rgba(var(--ink-rgb), 0.17) 0 1px, transparent 1px 12px);
}

.sgspan__count {
  position: relative;
  font-family: var(--display);
  font-size: clamp(18px, 1.25vw, 32px);
  line-height: 1;
}

.sgcols {
  display: flex;
  align-items: flex-end;
  gap: 8px;
  height: clamp(90px, 7.03vw, 180px);
}

.sgcol {
  display: flex;
  flex: 1;
  flex-direction: column-reverse;
  height: 100%;
}

.sgcol__paid {
  display: block;
  background: var(--accent);
}

.sgcol__left {
  display: block;
  border-radius: 3px 3px 0 0;
  background: rgba(var(--ink-rgb), 0.18);
}

.sgruler__bar {
  display: block;
  height: 12px;
  background: repeating-linear-gradient(90deg, rgba(var(--ink-rgb), 0.34) 0 1px, transparent 1px 24px);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.34);
}

/* --- Плита 08: фотография -------------------------------------------------- */

.sgphoto {
  display: grid;
  grid-template-columns: minmax(0, 1240fr) minmax(0, 1000fr);
  gap: clamp(28px, 3.13vw, 80px);
  align-items: start;
}

.sgphoto__left,
.sgphoto__right {
  display: flex;
  flex-direction: column;
  gap: clamp(12px, 0.86vw, 22px);
}

.sgslotdemo {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  /* Демонстрация слота — широкий колодец, как в макете (1550 x 520 на холсте),
     а не пропорция самого снимка: иначе плита вырастает вдвое. */
  aspect-ratio: 1550 / 520;
  border-radius: 6px;
  background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.1) 0 2px, transparent 2px 16px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

/* Линии третей: горизонт на одной из них. */
.sgslotdemo__third {
  position: absolute;
  background: rgba(var(--ink-rgb), 0.18);
}

.sgslotdemo__third--h1,
.sgslotdemo__third--h2 {
  left: 0;
  right: 0;
  height: 1px;
}

.sgslotdemo__third--h1 { top: 33.33%; }
.sgslotdemo__third--h2 { top: 66.66%; }

.sgslotdemo__third--v1,
.sgslotdemo__third--v2 {
  top: 0;
  bottom: 0;
  width: 1px;
}

.sgslotdemo__third--v1 { left: 33.33%; }
.sgslotdemo__third--v2 { left: 66.66%; }

.sgslotdemo__caption {
  position: relative;
  font-family: var(--mono);
  font-size: clamp(12px, 0.55vw, 14px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
}

.sgslotdemo__detail {
  position: absolute;
  right: 8%;
  bottom: 12%;
  display: flex;
  align-items: flex-end;
  width: 34%;
  height: 35%;
  padding: 8px 10px;
  background: repeating-linear-gradient(45deg, rgba(var(--c-red-rgb), 0.14) 0 2px, transparent 2px 12px);
  box-shadow: inset 0 0 0 1px rgba(var(--c-red-rgb), 0.5);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
}

.sgslotdemo__camera {
  position: absolute;
  left: clamp(12px, 1.09vw, 28px);
  bottom: clamp(12px, 1.09vw, 28px);
  font-family: var(--mono);
  font-size: 12px;
  line-height: 1.6;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--faint);
}

.sgslotdemo__under {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.sgshoot {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: clamp(16px, 1.02vw, 26px) clamp(16px, 1.09vw, 28px);
  border-radius: 12px;
  background: rgba(var(--c-red-rgb), 0.07);
}

.sgshoot__label,
.sgshoot__note {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.sgshoot__label { color: var(--accent); }
.sgshoot__note { color: var(--faint); }

.sgshoot__text {
  font-size: clamp(14px, 0.7vw, 18px);
  font-weight: 300;
  line-height: 1.6;
}

.sgpair__foot {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
}

.sgphoto__note {
  display: grid;
  grid-template-columns: clamp(80px, 7.03vw, 180px) minmax(0, 1fr);
  gap: clamp(12px, 0.94vw, 24px);
  align-items: baseline;
  padding: clamp(12px, 0.86vw, 22px) 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.14);
}

.sgphoto__note-key {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
}

.sgphoto__note-text {
  font-size: clamp(14px, 0.7vw, 18px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--muted);
}

.sgslots {
  display: flex;
  flex-direction: column;
}

.sgslot {
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(100px, 8.59vw, 220px) clamp(110px, 9.38vw, 240px) minmax(0, 1fr);
  gap: clamp(12px, 1.17vw, 30px);
  align-items: baseline;
  padding: clamp(12px, 0.86vw, 22px) 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.1);
  transition: background 0.2s ease;
}

.sgslot:hover { background: rgba(var(--c-red-rgb), 0.05); }

.sgslot--head {
  padding-top: 0;
  border-bottom: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.sgslot--head:hover { background: none; }

.sgslot__name {
  display: flex;
  flex-direction: column;
  gap: 5px;
  font-size: clamp(15px, 0.78vw, 20px);
}

/* Под названием слота — как его снимать. */
.sgslot__shoot {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--faint);
}

.sgslot__box,
.sgslot__x2 {
  font-family: var(--mono);
  font-size: clamp(13px, 0.63vw, 16px);
  white-space: nowrap;
}

.sgslot__x2 { color: var(--accent); }

.sgslot__where {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

/* --- Плита 09: тёмная тема ------------------------------------------------- */

.sgspecimens {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(18px, 1.56vw, 40px);
}

/* Каждый образец объявляет свою тему и потому показывает её значения в любой
   теме страницы: подпись под ним не может разойтись с тем, что нарисовано. */
.sgspecimen {
  display: flex;
  flex-direction: column;
  gap: clamp(14px, 0.94vw, 24px);
  padding: clamp(20px, 1.41vw, 36px) clamp(18px, 1.25vw, 32px);
  border-radius: var(--r-card);
  background: var(--bg);
  color: var(--ink);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.sgspecimen__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.16);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
}

.sgspecimen__ground { color: var(--faint); }

.sgspecimen__title {
  font-family: var(--display);
  font-size: clamp(24px, 1.88vw, 48px);
  line-height: 1.05;
  letter-spacing: -0.022em;
}

.sgspecimen__title em {
  font-style: italic;
  color: var(--accent);
}

.sgspec__rows {
  display: flex;
  flex-direction: column;
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
}

.sgspec__row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.1);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.sgspec__value { color: var(--ink); }

.sgdark {
  display: grid;
  grid-template-columns: minmax(0, 1240fr) minmax(0, 1000fr);
  gap: clamp(28px, 3.13vw, 80px);
  align-items: start;
}

.sgmap {
  display: flex;
  flex-direction: column;
}

.sgmap__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(90px, 8.59vw, 220px) clamp(90px, 8.59vw, 220px);
  gap: clamp(12px, 1.17vw, 30px);
  align-items: baseline;
  padding: clamp(12px, 0.78vw, 20px) 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.1);
  font-size: clamp(14px, 0.7vw, 18px);
  transition: background 0.2s ease;
}

.sgmap__row:hover { background: rgba(var(--c-red-rgb), 0.05); }

.sgmap__row--head {
  padding-top: 0;
  border-bottom: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.sgmap__row--head:hover { background: none; }

.sgmap__value {
  font-family: var(--mono);
  font-size: clamp(12px, 0.59vw, 15px);
  letter-spacing: 0.1em;
  white-space: nowrap;
}

/* Пояснение вместо значения — переносится, как обычный текст. */
.sgmap__value--text {
  white-space: normal;
  line-height: 1.4;
}

.sgrules {
  display: flex;
  flex-direction: column;
  gap: clamp(14px, 0.94vw, 24px);
}

.sgrule {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: clamp(16px, 1.02vw, 26px) clamp(16px, 1.09vw, 28px);
  border-radius: 12px;
  background: rgba(var(--c-red-rgb), 0.07);
}

.sgrule__label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
}

.sgrule__text {
  font-size: clamp(14px, 0.7vw, 18px);
  font-weight: 300;
  line-height: 1.6;
}

/* --- Плита 10: как собрать страницу ---------------------------------------- */

.sgslip {
  position: relative;
  border: 1px solid rgba(var(--ink-rgb), 0.34);
  border-radius: var(--r-card);
  padding: clamp(30px, 2.73vw, 70px) clamp(22px, 2.58vw, 66px);
  background: var(--sheet);
}

.sgslip::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 10px;
  border-radius: var(--r-card) var(--r-card) 0 0;
  background: repeating-linear-gradient(90deg, rgba(var(--ink-rgb), 0.34) 0 1px, transparent 1px 18px);
}

.sgslip::after {
  content: "";
  position: absolute;
  left: 50%;
  top: -18px;
  width: 36px;
  height: 36px;
  margin-left: -18px;
  border-radius: var(--r-pill);
  background: var(--bg);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
}

.sgslip__mark {
  position: absolute;
  right: clamp(20px, 2.34vw, 60px);
  bottom: clamp(18px, 1.72vw, 44px);
  height: clamp(60px, 5.16vw, 132px);
  width: auto;
  opacity: 0.12;
  pointer-events: none;
}

.sganat {
  display: grid;
  grid-template-columns: minmax(0, 1240fr) minmax(0, 1000fr);
  gap: clamp(28px, 3.91vw, 100px);
  align-items: start;
}

.sganat__main,
.sganat__side {
  display: flex;
  flex-direction: column;
  gap: clamp(18px, 1.25vw, 32px);
}

.sganat__title {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(32px, 3.2vw, 82px);
  line-height: 1;
  letter-spacing: -0.026em;
}

.sganat__title em {
  font-style: italic;
  color: var(--accent);
}

.sganat__lead {
  font-size: clamp(16px, 0.82vw, 21px);
  font-weight: 300;
  line-height: 1.7;
  color: var(--muted);
}

.sgparts {
  display: flex;
  flex-direction: column;
}

.sgpart {
  display: grid;
  grid-template-columns: clamp(40px, 2.73vw, 70px) clamp(140px, 13.28vw, 340px) minmax(0, 1fr);
  gap: clamp(12px, 0.94vw, 24px);
  align-items: baseline;
  padding: clamp(12px, 0.86vw, 22px) 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
  transition: background 0.2s ease;
}

.sgpart:hover { background: rgba(var(--c-red-rgb), 0.05); }

.sgpart--head {
  border-top: 0;
  border-bottom: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.sgpart--head:hover { background: none; }

.sgpart__no {
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.14em;
  color: var(--accent);
}

.sgpart__name {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.sgpart__title { font-size: clamp(15px, 0.82vw, 21px); }

.sgpart__metric {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  color: var(--faint);
}

.sgpart__text {
  font-size: clamp(14px, 0.7vw, 18px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--muted);
}

.sgchecklist {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: clamp(18px, 1.25vw, 32px) clamp(18px, 1.33vw, 34px);
  border-radius: 12px;
  background: rgba(var(--c-red-rgb), 0.07);
}

.sgcheck {
  display: flex;
  align-items: baseline;
  gap: 12px;
  font-size: clamp(14px, 0.7vw, 18px);
  font-weight: 300;
  line-height: 1.5;
}

.sgcheck__tick { color: var(--accent); }

.sgtotals {
  display: flex;
  flex-direction: column;
  border-top: 2px solid var(--ink);
}

.sgtotal {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: clamp(10px, 0.7vw, 18px) 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.sgtotal__value {
  font-family: var(--display);
  font-size: clamp(18px, 1.17vw, 30px);
  letter-spacing: 0;
  text-transform: none;
  color: var(--ink);
}

.sganat__cta { align-self: flex-start; }

.sganat__revised {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

/* --- Пустая заготовка ------------------------------------------------------ */

.sgblank__slot {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: clamp(220px, 21.09vw, 540px);
  border-radius: var(--r-card);
  background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.1) 0 2px, transparent 2px 16px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  font-family: var(--mono);
  font-size: clamp(12px, 0.55vw, 14px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
}

/* ==========================================================================
   43. Style guide — адаптив
   ========================================================================== */

@media (max-width: 1440px) {
  .sgmarks,
  .sgcases,
  .sgchips { gap: 22px; }

  .sgsurfaces { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1240px) {
  .sgfound,
  .sgweights,
  .sgdata,
  .sgphoto,
  .sgdark,
  .sganat {
    grid-template-columns: minmax(0, 1fr);
    gap: 44px;
  }

  .sgchips,
  .sgfaces,
  .sgmarks,
  .sgcases,
  .sgctrls { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  /* Восемь строк шкалы кегля в четыре колонки не ложатся: образец уходит вниз. */
  .sgrow {
    grid-template-columns: clamp(140px, 22vw, 280px) minmax(0, 1fr);
    row-gap: 10px;
  }

  .sgrow__metric { grid-column: 2; }

  .sgrow__specimen {
    grid-column: 1 / -1;
    padding-top: 4px;
  }

  .sgrow--head span:nth-child(3),
  .sgrow--head span:nth-child(4) { display: none; }
}

@media (max-width: 1024px) {
  .sgspecimens,
  .sgbits { grid-template-columns: minmax(0, 1fr); }

  .sgslot {
    grid-template-columns: minmax(0, 1fr) auto;
    row-gap: 8px;
  }

  .sgslot__x2 { text-align: right; }

  .sgslot__where {
    grid-column: 1 / -1;
  }

  .sgslot--head span:nth-child(3),
  .sgslot--head span:nth-child(4) { display: none; }

  .sgpart {
    grid-template-columns: auto minmax(0, 1fr);
    row-gap: 8px;
  }

  .sgpart__text { grid-column: 2; }
  .sgpart--head span:nth-child(3) { display: none; }
}

@media (max-width: 860px) {
  .sgchips,
  .sgfaces,
  .sgmarks,
  .sgcases,
  .sgctrls,
  .sgsurfaces { grid-template-columns: minmax(0, 1fr); }

  .sgpair__row { grid-template-columns: minmax(0, 1fr); }

  .sgreg__row {
    grid-template-columns: auto minmax(0, 1fr) auto;
    row-gap: 6px;
  }

  .sgreg__basis {
    grid-column: 2 / -1;
    text-align: left;
  }

  .sgreg__row--head span:nth-child(3) { display: none; }

  .sgmap__row {
    grid-template-columns: minmax(0, 1fr) auto;
    row-gap: 6px;
  }

  .sgmap__row .sgmap__value:last-child { grid-column: 2; }
  .sgmap__row--head span:nth-child(3) { display: none; }

  .sglesson {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }
}

@media (max-width: 600px) {
  .sgcanvas__band,
  .sgcanvas__col { padding-inline: clamp(12px, 6vw, 24px); }

  .sgweight {
    grid-template-columns: clamp(50px, 16vw, 80px) auto minmax(0, 1fr);
    gap: 12px;
  }

  .sgdemo__ghost { display: none; }

  .sgslot,
  .sgpart,
  .sgreg__row,
  .sgmap__row { grid-template-columns: minmax(0, 1fr); }

  .sgreg__basis,
  .sgreg__amount,
  .sgslot__x2,
  .sgpart__text,
  .sgmap__row .sgmap__value:last-child {
    grid-column: 1;
    text-align: left;
  }

  .sganat__cta,
  .sgctrl__btn { width: 100%; }

  .sgblock__cell {
    min-width: 100%;
    border-right: 0;
    border-bottom: 1px solid rgba(var(--ink-rgb), 0.34);
  }

  .sgblock__cell:last-child { border-bottom: 0; }
}

/* ==========================================================================
   44. Free agent account — восемь плит
   ========================================================================== */

/* Печать в строке шапки — «Specimen», «Free». */
.fdseal {
  display: inline-flex;
  align-items: center;
  padding: 9px clamp(14px, 0.86vw, 22px);
  border-radius: 4px;
  box-shadow: inset 0 0 0 2px var(--accent);
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--accent);
}

/* Чип в строке заголовка — «No exceptions», «Costs us work». Стоит в потоке,
   поэтому ничего не закрывает. */
.fdchip {
  display: inline-flex;
  align-items: center;
  flex: none;
  padding: 8px 16px;
  border-radius: 4px;
  box-shadow: inset 0 0 0 2px var(--accent);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
}

.fdruler {
  display: flex;
  justify-content: space-between;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.fdruler__last,
.fdruler span:first-child { color: var(--ink); }

.fdlink {
  color: var(--accent);
  transition: color 0.2s ease;
}

.fdlink:hover { color: var(--ink); }

/* Четыре цифры под плитой — общий блок. */
.fdfigures {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(18px, 1.72vw, 44px);
  padding-top: clamp(18px, 1.17vw, 30px);
  border-top: 2px solid var(--ink);
}

.fdfigure {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.fdfigure__value {
  font-family: var(--display);
  font-size: clamp(28px, 2.19vw, 56px);
  line-height: 1;
  white-space: nowrap;
}

.fdfigure__label,
.fdbig__label,
.fdbig__note {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.fdfigures--cta {
  grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
  align-items: center;
}

/* --- Плита 01: заявка и тёмный реестр -------------------------------------- */

.fdsignup {
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(320px, 35.16vw, 900px);
  gap: clamp(24px, 2.73vw, 70px);
  align-items: stretch;
}

/* Бланк заявки: настоящая форма на перфорированном листе. */
.fdslip {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 1.09vw, 28px);
  padding: clamp(30px, 2.73vw, 70px) clamp(22px, 2.34vw, 60px) clamp(24px, 2.03vw, 52px);
  border: 1px solid rgba(var(--ink-rgb), 0.34);
  border-radius: var(--r-card);
  background: var(--sheet);
}

.fdslip::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 10px;
  border-radius: var(--r-card) var(--r-card) 0 0;
  background: repeating-linear-gradient(90deg, rgba(var(--ink-rgb), 0.34) 0 1px, transparent 1px 18px);
}

.fdslip::after {
  content: "";
  position: absolute;
  left: 50%;
  top: -18px;
  width: 36px;
  height: 36px;
  margin-left: -18px;
  border-radius: var(--r-pill);
  background: var(--bg);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
}

.fdslip__mark {
  position: absolute;
  right: clamp(18px, 1.72vw, 44px);
  bottom: clamp(16px, 1.41vw, 36px);
  height: clamp(56px, 4.61vw, 118px);
  width: auto;
  opacity: 0.1;
  pointer-events: none;
}

.fdslip__head,
.fdchecks__head,
.fdcurve__head,
.fdshare__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
}

.fdslip__note,
.fdchecks__note,
.fdcurve__note,
.fdshare__note {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

/* Три шага заявки: первый отрезок красный. */
.fdsteps {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  padding-top: 16px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.fdstep {
  position: relative;
  padding-top: 14px;
  border-top: 3px solid rgba(var(--ink-rgb), 0.18);
}

.fdstep--on {
  border-top-color: var(--accent);
  color: var(--ink);
}

.fdfields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(14px, 0.94vw, 24px);
}

.fdfield,
.fdgroup {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}

.fdfield__label {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.fdfield__no { color: var(--faint); }

/* Поля обязаны считать ширину по границе — иначе число вылезает из колонки. */
.fdfield__input {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  height: clamp(56px, 3.13vw, 80px);
  padding: 0 clamp(16px, 1.09vw, 28px);
  border: 0;
  border-bottom: 2px solid rgba(var(--ink-rgb), 0.34);
  border-radius: 0;
  background: rgba(var(--ink-rgb), 0.04);
  font-family: var(--mono);
  font-size: clamp(13px, 0.59vw, 15px);
  letter-spacing: 0.1em;
  color: var(--ink);
}

/* Обязательное поле стоит на красной линии. */
.fdfield--required .fdfield__input { border-bottom-color: var(--accent); }
.fdfield__input::placeholder { color: var(--faint); }

.fdpills {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.fdpill {
  display: inline-flex;
  align-items: center;
  height: clamp(40px, 2.03vw, 52px);
  padding: 0 clamp(14px, 0.94vw, 24px);
  border-radius: var(--r-pill);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.fdpill--on {
  background: var(--ink);
  box-shadow: none;
  color: var(--bg);
}

.fdgroup__note {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.fdconfirm {
  display: flex;
  align-items: baseline;
  gap: 14px;
  padding: clamp(14px, 0.94vw, 24px) clamp(16px, 1.02vw, 26px);
  border-radius: 12px;
  background: rgba(var(--c-red-rgb), 0.07);
  font-size: clamp(14px, 0.7vw, 18px);
  font-weight: 300;
  line-height: 1.55;
}

.fdconfirm__tick { color: var(--accent); }

.fdafter {
  display: flex;
  flex-direction: column;
  margin-top: auto;
  padding-top: clamp(14px, 0.94vw, 24px);
  border-top: 2px solid var(--ink);
}

.fdafter__label,
.fdnext__label {
  padding-bottom: 10px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
}

.fdafter__row {
  display: grid;
  grid-template-columns: clamp(70px, 5.47vw, 140px) minmax(0, 1fr);
  gap: clamp(12px, 0.86vw, 22px);
  align-items: baseline;
  padding: clamp(10px, 0.7vw, 18px) 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.14);
}

.fdafter__when {
  font-family: var(--mono);
  font-size: clamp(12px, 0.59vw, 15px);
  letter-spacing: 0.16em;
  color: var(--ink);
}

.fdafter__what {
  font-size: clamp(14px, 0.7vw, 18px);
  font-weight: 300;
  color: var(--muted);
}

.fdslip__foot {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(16px, 1.33vw, 34px);
  align-items: center;
  padding-top: clamp(14px, 0.94vw, 24px);
  border-top: 1px solid rgba(var(--ink-rgb), 0.22);
}

/* Тёмный реестр справа: что входит в бесплатный стол. */
.fdledger {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 1.09vw, 28px);
  padding: clamp(26px, 2.34vw, 60px) clamp(22px, 1.95vw, 50px);
  border-radius: var(--r-card);
  overflow: hidden;
  background: var(--c-night)
    repeating-linear-gradient(45deg, rgba(var(--c-cream-rgb), 0.045) 0 2px, transparent 2px 18px);
  color: var(--c-cream);
  box-shadow: inset 0 0 0 1px rgba(var(--c-gold-rgb), 0.45);
}

.fdledger__mark {
  position: absolute;
  right: clamp(18px, 1.72vw, 44px);
  bottom: clamp(16px, 1.41vw, 36px);
  height: clamp(56px, 5.16vw, 132px);
  width: auto;
  opacity: 0.14;
  pointer-events: none;
}

.fdledger__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gold);
}

.fdledger__price {
  font-family: var(--display);
  font-size: clamp(22px, 1.48vw, 38px);
  letter-spacing: 0;
  text-transform: none;
}

.fdledger__title {
  font-family: var(--display);
  font-size: clamp(26px, 2.03vw, 52px);
  line-height: 1.05;
  letter-spacing: -0.022em;
}

.fdledger__title em {
  font-style: italic;
  color: var(--gold);
}

.fdledger__rows {
  display: flex;
  flex-direction: column;
  border-top: 1px solid rgba(var(--c-cream-rgb), 0.22);
}

.fdledger__row {
  display: grid;
  grid-template-columns: clamp(32px, 2.34vw, 60px) minmax(0, 1fr) auto;
  gap: clamp(12px, 0.94vw, 24px);
  align-items: baseline;
  padding: clamp(12px, 0.86vw, 22px) 0;
  border-bottom: 1px solid rgba(var(--c-cream-rgb), 0.14);
}

.fdledger__no {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  color: var(--gold);
}

.fdledger__name {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: clamp(15px, 0.82vw, 21px);
}

.fdledger__body {
  font-size: clamp(13px, 0.66vw, 17px);
  font-weight: 300;
  line-height: 1.55;
  color: rgba(var(--c-cream-rgb), 0.82);
}

.fdledger__value {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(var(--c-cream-rgb), 0.6);
}

.fdledger__prices {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-top: clamp(12px, 0.86vw, 22px);
}

.fdledger__price-row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(var(--c-cream-rgb), 0.6);
}

.fdledger__struck {
  font-family: var(--display);
  font-size: clamp(20px, 1.41vw, 36px);
  letter-spacing: 0;
  text-transform: none;
  text-decoration: line-through;
  white-space: nowrap;
  color: rgba(var(--c-cream-rgb), 0.6);
}

.fdledger__free {
  font-family: var(--display);
  font-size: clamp(28px, 2.19vw, 56px);
  letter-spacing: 0;
  text-transform: none;
  white-space: nowrap;
  color: var(--gold);
}

.fdledger__second {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: clamp(14px, 0.94vw, 24px) clamp(16px, 1.02vw, 26px);
  border-radius: 12px;
  background: rgba(var(--c-gold-rgb), 0.12);
}

.fdledger__second-label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold);
}

.fdledger__second-text {
  font-size: clamp(14px, 0.7vw, 18px);
  font-weight: 300;
  line-height: 1.6;
  color: rgba(var(--c-cream-rgb), 0.82);
}

/* --- Плита 02: граница бесплатного ---------------------------------------- */

.fdboundary,
.fdrail,
.fdchecks {
  display: flex;
  flex-direction: column;
  gap: clamp(12px, 0.86vw, 22px);
}

/* Один отрезок бесплатный, двадцать четыре платных, метка счёта между ними. */
.fdbar {
  position: relative;
  display: flex;
  height: clamp(64px, 4.69vw, 120px);
  border-radius: 3px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
}

.fdbar__free,
.fdbar__paid {
  display: flex;
  align-items: center;
  padding: 0 clamp(10px, 0.7vw, 18px);
}

.fdbar__free { background: rgba(var(--c-gold-rgb), 0.35); }

.fdbar__paid {
  justify-content: flex-end;
  background: rgba(var(--ink-rgb), 0.1);
}

.fdbar__count {
  font-family: var(--mono);
  font-size: clamp(12px, 0.55vw, 14px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

/* Штриховая метка — там, где начинается счёт. */
.fdbar__mark {
  position: absolute;
  left: 4%;
  top: 0;
  bottom: 0;
  width: 2px;
  background: repeating-linear-gradient(180deg, var(--accent) 0 6px, transparent 6px 12px);
}

.fdbar__marklabel {
  position: absolute;
  left: 4%;
  top: 50%;
  transform: translateY(-50%);
  margin-left: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
}

.fdbar__legend {
  display: flex;
  justify-content: space-between;
  gap: 20px;
}

.fdbar__side {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.fdbar__side--right { text-align: right; }

.fdbar__price {
  font-family: var(--display);
  font-size: clamp(20px, 1.41vw, 36px);
  line-height: 1;
  white-space: nowrap;
}

.fdbar__note {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.fdcost {
  display: grid;
  grid-template-columns: minmax(0, 1400fr) minmax(0, 1000fr);
  gap: clamp(24px, 2.73vw, 70px);
  align-items: start;
}

.fdcurve {
  display: flex;
  flex-direction: column;
  gap: clamp(12px, 0.86vw, 22px);
}

/* Цена одного объявления падает по мере того, как стол заполняется. */
.fdcurve__bars {
  display: flex;
  align-items: flex-end;
  gap: clamp(6px, 0.55vw, 14px);
  height: clamp(140px, 10.94vw, 280px);
}

.fdcurve__bar {
  display: flex;
  flex: 1;
  flex-direction: column;
  justify-content: flex-end;
  gap: 8px;
  height: 100%;
}

.fdcurve__label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  text-align: center;
  color: var(--faint);
}

.fdcurve__fill {
  display: block;
  border-radius: 3px 3px 0 0;
  background: rgba(var(--c-red-rgb), 0.7);
}

.fdcurve__bar:last-child .fdcurve__fill { background: var(--accent); }
.fdcurve__bar:last-child .fdcurve__label { color: var(--ink); }

.fdpanel {
  display: flex;
  flex-direction: column;
  gap: clamp(12px, 0.94vw, 24px);
  padding: clamp(18px, 1.41vw, 36px) clamp(18px, 1.48vw, 38px);
  border-radius: var(--r-card);
  background: rgba(var(--c-red-rgb), 0.07);
}

.fdpanel__label,
.fdreframe__label,
.fdno__label,
.fdours__label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
}

.fdpanel__lead,
.fdreframe__text {
  font-family: var(--display);
  font-size: clamp(20px, 1.48vw, 38px);
  line-height: 1.12;
  letter-spacing: -0.02em;
}

.fdpanel__lead em,
.fdreframe__text em {
  font-style: italic;
  color: var(--accent);
}

.fdpanel__rows {
  display: flex;
  flex-direction: column;
  border-top: 1px solid rgba(var(--ink-rgb), 0.22);
}

.fdpanel__row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted);
}

.fdpanel__value {
  white-space: nowrap;
  color: var(--ink);
}

.fddeltas {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(16px, 1.33vw, 34px);
}

.fddelta {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding-top: clamp(12px, 0.7vw, 18px);
  border-top: 2px solid var(--ink);
}

.fddelta--accent { border-top-color: var(--accent); }

.fddelta__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.fddelta__tag { color: var(--accent); }
.fddelta__side { color: var(--faint); }

.fddelta__figure {
  font-family: var(--display);
  font-size: clamp(28px, 2.5vw, 64px);
  line-height: 0.95;
  white-space: nowrap;
}

.fddelta__name {
  font-family: var(--display);
  font-size: clamp(18px, 1.17vw, 30px);
  line-height: 1.1;
}

.fddelta__body {
  font-size: clamp(14px, 0.66vw, 17px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--muted);
}

/* --- Плита 03: первое объявление ------------------------------------------ */

.fdrail__row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(14px, 1.33vw, 34px);
  align-items: stretch;
}

.fdrail__row--cards { padding-top: clamp(18px, 1.17vw, 30px); }

.fdstep__top {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.fdstep__when,
.fdstep__owner {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.fdstep__title {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(20px, 1.48vw, 38px);
  line-height: 1.08;
  letter-spacing: -0.018em;
}

/* Красный отрезок — дни, когда нужны вы; серый — наши столы. */
.fdspan {
  display: block;
  height: 10px;
  margin-top: auto;
  border-radius: 3px;
  background: rgba(var(--ink-rgb), 0.5);
}

.fdspan--you { background: var(--accent); }

.fdrail__line {
  position: relative;
  display: block;
  height: 2px;
  background: var(--ink);
}

.fdnode {
  position: absolute;
  top: -14px;
  width: 30px;
  height: 30px;
  margin-left: -15px;
  border-radius: var(--r-pill);
  background: var(--bg);
  box-shadow: inset 0 0 0 2px var(--ink);
}

.fdnode:nth-child(1) { left: 12.5%; }
.fdnode:nth-child(2) { left: 37.5%; }
.fdnode:nth-child(3) { left: 62.5%; }
.fdnode:nth-child(4) { left: 87.5%; }
.fdnode--last { background: var(--gold); }

.fdlegend {
  display: flex;
  align-items: center;
  gap: 28px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.fdlegend__key {
  display: flex;
  align-items: center;
  gap: 10px;
}

.fdlegend__key::before {
  content: "";
  width: 16px;
  height: 8px;
  border-radius: 3px;
  background: rgba(var(--ink-rgb), 0.5);
}

.fdlegend__key--you::before { background: var(--accent); }
.fdlegend__note { color: var(--ink); }

.fdcard {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: clamp(14px, 0.94vw, 24px);
  padding: clamp(20px, 1.41vw, 36px) clamp(18px, 1.17vw, 30px);
  border-radius: var(--r-card);
  overflow: hidden;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
}

.fdcard--dark {
  background: var(--c-night);
  color: var(--c-cream);
  box-shadow: inset 0 0 0 1px rgba(var(--c-gold-rgb), 0.45);
}

.fdcard__ghost,
.fdenv__ghost,
.fdq__ghost {
  position: absolute;
  right: clamp(-14px, -0.55vw, -8px);
  top: clamp(-30px, -1.64vw, -20px);
  font-family: var(--display);
  font-size: clamp(90px, 7.42vw, 190px);
  line-height: 1;
  color: rgba(var(--ink-rgb), 0.06);
  pointer-events: none;
}

.fdcard--dark .fdcard__ghost,
.fdq--dark .fdq__ghost { color: rgba(var(--c-gold-rgb), 0.14); }

/* Абзац одинаковой высоты во всех четырёх — иначе линии под ним разъезжаются. */
.fdcard__body {
  position: relative;
  min-height: clamp(70px, 7.5vw, 96px);
  font-size: clamp(14px, 0.7vw, 18px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--muted);
}

.fdcard--dark .fdcard__body { color: rgba(var(--c-cream-rgb), 0.82); }

.fdcard__rows {
  position: relative;
  display: flex;
  flex-direction: column;
  margin-top: auto;
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
}

.fdcard--dark .fdcard__rows { border-top-color: rgba(var(--c-cream-rgb), 0.22); }

.fdcard__row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.09);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.fdcard--dark .fdcard__row { border-bottom-color: rgba(var(--c-cream-rgb), 0.14); }

.fdcard__value { color: var(--ink); }
.fdcard--dark .fdcard__value { color: var(--c-cream); }
.fdcard__value--you { color: var(--accent); }
.fdcard--dark .fdcard__value--you { color: var(--gold); }

/* --- Плита 04: документы --------------------------------------------------- */

.fdrules {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  gap: clamp(16px, 1.33vw, 34px);
}

.fdrule {
  display: flex;
  align-items: center;
  gap: 16px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--muted);
}

.fdrule__line {
  display: block;
  flex: 1;
  height: 2px;
  background: var(--ink);
}

.fdrule--accent {
  color: var(--accent);
}

.fdrule--accent .fdrule__line { background: var(--accent); }

.fdenvs,
.fdqs {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(16px, 1.33vw, 34px);
}

/* Конверт: перфорация сверху и два выреза по бокам. */
.fdenv {
  position: relative;
  display: flex;
  flex-direction: column;
  border-radius: 4px 4px var(--r-card) var(--r-card);
  overflow: hidden;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.fdenv::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 9px;
  background: repeating-linear-gradient(90deg, rgba(var(--ink-rgb), 0.34) 0 1px, transparent 1px 16px);
}

.fdenv__punch {
  position: absolute;
  top: clamp(80px, 5.86vw, 150px);
  width: 26px;
  height: 26px;
  border-radius: var(--r-pill);
  background: var(--bg);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.fdenv__punch--l { left: -13px; }
.fdenv__punch--r { right: -13px; }

.fdenv__body {
  position: relative;
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: clamp(12px, 0.86vw, 22px);
  padding: clamp(28px, 1.72vw, 44px) clamp(18px, 1.25vw, 32px) clamp(20px, 1.17vw, 30px);
}

.fdenv__head,
.fdq__head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.fdenv__tag,
.fdq__no { color: var(--accent); }

.fdenv__accepts,
.fdq__topic {
  margin-left: auto;
  color: var(--faint);
}

.fdenv__name {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(22px, 1.56vw, 40px);
  line-height: 1.05;
  letter-spacing: -0.02em;
}

.fdenv__short {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.fdenv__text {
  font-size: clamp(14px, 0.7vw, 18px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--muted);
}

.fdenv__rows {
  display: flex;
  flex-direction: column;
  margin-top: auto;
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
}

.fdenv__row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.09);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.fdenv__value { color: var(--ink); }
.fdenv__value--accent { color: var(--accent); }

/* Четырнадцать дней проверки — один отрезок на этап. */
.fdchecks__bar {
  display: flex;
  height: clamp(64px, 4.69vw, 120px);
  border-radius: 3px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
}

.fdcheck {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  padding: 0 clamp(10px, 0.7vw, 18px);
  border-right: 1px solid rgba(var(--bg-rgb), 0.6);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.fdcheck:nth-child(1) { background: rgba(var(--c-red-rgb), 0.18); }
.fdcheck:nth-child(2) { background: rgba(var(--ink-rgb), 0.13); }
.fdcheck:nth-child(3) { background: rgba(var(--c-gold-rgb), 0.3); }
.fdcheck:nth-child(4) { background: rgba(var(--ink-rgb), 0.08); }
.fdcheck:last-child { border-right: 0; }

.fdcheck__when { color: var(--muted); }
.fdcheck__short { color: var(--ink); }

/* --- Плита 05: реестр фирм ------------------------------------------------- */

.fdbigs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(18px, 1.72vw, 44px);
  padding-top: clamp(18px, 1.17vw, 30px);
  border-top: 2px solid var(--ink);
}

.fdbig {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.fdbig__value {
  font-family: var(--display);
  font-size: clamp(38px, 3.75vw, 96px);
  line-height: 0.92;
  white-space: nowrap;
}

.fdbig--accent .fdbig__value { color: var(--accent); }
.fdbig__label { color: var(--ink); }

.fdcities {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(16px, 1.33vw, 34px);
}

.fdcity {
  display: flex;
  flex-direction: column;
  gap: clamp(12px, 0.7vw, 18px);
  padding: clamp(22px, 1.48vw, 38px) clamp(18px, 1.33vw, 34px);
  border-radius: var(--r-card);
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
}

.fdcity--dark {
  background: var(--c-night);
  color: var(--c-cream);
  box-shadow: inset 0 0 0 1px rgba(var(--c-gold-rgb), 0.45);
}

.fdcity__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.fdcity__no { color: var(--accent); }
.fdcity--dark .fdcity__no { color: var(--gold); }
.fdcity__homes { color: var(--faint); }
.fdcity--dark .fdcity__homes { color: rgba(var(--c-cream-rgb), 0.6); }

.fdcity__row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
}

.fdcity__name {
  font-family: var(--display);
  font-size: clamp(22px, 1.56vw, 40px);
  line-height: 1.05;
}

.fdcity__firms {
  font-family: var(--display);
  font-size: clamp(26px, 1.88vw, 48px);
  line-height: 1;
  color: var(--accent);
}

.fdcity--dark .fdcity__firms { color: var(--gold); }

.fdcity__bar {
  display: block;
  height: 10px;
  border-radius: var(--r-pill);
  background: rgba(var(--ink-rgb), 0.1);
  overflow: hidden;
}

.fdcity--dark .fdcity__bar { background: rgba(var(--c-cream-rgb), 0.16); }

.fdcity__fill {
  display: block;
  height: 100%;
  background: var(--accent);
}

.fdcity--dark .fdcity__fill { background: var(--gold); }

.fdcity__oldest {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.fdcity--dark .fdcity__oldest { color: rgba(var(--c-cream-rgb), 0.6); }

/* --- Плита 06: чего мы не берём -------------------------------------------- */

/* Образец счёта — тот же лист с перфорацией, что и бланк заявки. */
.fdinvoice,
.fdopenplate {
  position: relative;
  border: 1px solid rgba(var(--ink-rgb), 0.34);
  border-radius: var(--r-card);
  padding: clamp(30px, 2.73vw, 70px) clamp(22px, 2.58vw, 66px);
  background: var(--sheet);
}

.fdinvoice::before,
.fdopenplate::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 10px;
  border-radius: var(--r-card) var(--r-card) 0 0;
  background: repeating-linear-gradient(90deg, rgba(var(--ink-rgb), 0.34) 0 1px, transparent 1px 18px);
}

.fdinvoice::after,
.fdopenplate::after {
  content: "";
  position: absolute;
  left: 50%;
  top: -18px;
  width: 36px;
  height: 36px;
  margin-left: -18px;
  border-radius: var(--r-pill);
  background: var(--bg);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
}

.fdnever {
  display: grid;
  grid-template-columns: minmax(0, 1400fr) minmax(0, 1000fr);
  gap: clamp(24px, 2.73vw, 70px);
  align-items: start;
}

.fdinv {
  display: flex;
  flex-direction: column;
  gap: clamp(10px, 0.7vw, 18px);
}

.fdshare {
  display: flex;
  height: clamp(16px, 1.02vw, 26px);
  border-radius: var(--r-pill);
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
}

.fdshare__part { display: block; }
.fdshare__part--1 { background: var(--accent); }
.fdshare__part--2 { background: rgba(var(--ink-rgb), 0.32); }
.fdshare__part--3 { background: rgba(var(--c-gold-rgb), 0.7); }
.fdshare__part--4 { background: rgba(var(--ink-rgb), 0.16); }

.fdshare__keys {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 8px 16px;
  padding-bottom: clamp(10px, 0.7vw, 18px);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted);
}

.fdshare__key--1 { color: var(--accent); }

.fdinv__row {
  display: grid;
  grid-template-columns: clamp(36px, 2.73vw, 70px) minmax(0, 1fr) clamp(100px, 9.38vw, 240px) clamp(100px, 8.59vw, 220px);
  gap: clamp(12px, 1.17vw, 30px);
  align-items: baseline;
  padding: clamp(12px, 0.94vw, 24px) 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.1);
  transition: background 0.2s ease;
}

.fdinv__row:hover { background: rgba(var(--c-red-rgb), 0.05); }

.fdinv__row--head {
  padding-top: 0;
  border-bottom: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.fdinv__row--head:hover { background: none; }
.fdinv__row--head span:last-child { text-align: right; }

.fdinv__no,
.fdinv__basis {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  color: var(--faint);
}

.fdinv__basis { text-align: right; }

.fdinv__name {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: clamp(15px, 0.82vw, 21px);
}

/* Всё, чего мы не берём, зачёркнуто. */
.fdinv__struck {
  text-decoration: line-through;
  color: var(--muted);
}

.fdinv__euphemism {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--faint);
}

.fdinv__amount {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px;
  font-family: var(--mono);
  font-size: clamp(13px, 0.66vw, 17px);
  white-space: nowrap;
}

.fdinv__not {
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent);
}

.fdinv__row--total,
.fdinv__row--here {
  border-bottom: 0;
  border-top: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: clamp(12px, 0.55vw, 14px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.fdinv__row--total .fdinv__amount,
.fdinv__row--here .fdinv__amount {
  font-family: var(--display);
  font-size: clamp(24px, 1.88vw, 48px);
  letter-spacing: 0;
  text-transform: none;
}

.fdinv__row--here { border-top-width: 1px; }
.fdinv__amount--free { color: var(--accent); }

.fdours {
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 1.09vw, 28px);
}

.fdours__card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: clamp(18px, 1.25vw, 32px) clamp(18px, 1.33vw, 34px);
  border-radius: var(--r-card);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.fdours__title {
  font-family: var(--display);
  font-size: clamp(22px, 1.64vw, 42px);
  line-height: 1.06;
  letter-spacing: -0.02em;
}

.fdours__rows {
  display: flex;
  flex-direction: column;
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
}

.fdours__row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.09);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.fdours__value {
  white-space: nowrap;
  color: var(--ink);
}

.fdours__argument {
  font-size: clamp(15px, 0.78vw, 20px);
  font-weight: 300;
  line-height: 1.65;
  color: var(--muted);
}

.fdreframe {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: clamp(18px, 1.25vw, 32px) clamp(18px, 1.33vw, 34px);
  border-radius: 12px;
  background: rgba(var(--c-red-rgb), 0.07);
}

.fdours__signature,
.fdopen__signature {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

/* --- Плита 07: вопросы ----------------------------------------------------- */

.fdq {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 1.09vw, 28px);
  padding: clamp(26px, 1.72vw, 44px) clamp(20px, 1.48vw, 38px) clamp(20px, 1.33vw, 34px);
  border-radius: var(--r-card);
  overflow: hidden;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
}

.fdq--dark {
  background: var(--c-night);
  color: var(--c-cream);
  box-shadow: inset 0 0 0 1px rgba(var(--c-gold-rgb), 0.45);
}

.fdq--dark .fdchip {
  box-shadow: inset 0 0 0 2px var(--gold);
  color: var(--gold);
}

.fdq__body {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: clamp(12px, 0.86vw, 22px);
}

.fdq--dark .fdq__no { color: var(--gold); }
.fdq--dark .fdq__topic { color: rgba(var(--c-cream-rgb), 0.6); }

.fdq__q {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(22px, 1.56vw, 40px);
  line-height: 1.06;
  letter-spacing: -0.02em;
}

/* Ответы одинаковой высоты — «в двух словах» стоит на одной линии во всех. */
.fdq__a {
  min-height: clamp(120px, 7.03vw, 180px);
  font-size: clamp(15px, 0.74vw, 19px);
  font-weight: 300;
  line-height: 1.62;
  color: var(--muted);
}

.fdq--dark .fdq__a { color: rgba(var(--c-cream-rgb), 0.82); }

.fdq__short {
  position: relative;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-top: auto;
  padding-top: clamp(12px, 0.7vw, 18px);
  border-top: 1px solid rgba(var(--ink-rgb), 0.18);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}

.fdq--dark .fdq__short { border-top-color: rgba(var(--c-cream-rgb), 0.22); }

.fdq__short-label { color: var(--faint); }
.fdq--dark .fdq__short-label { color: rgba(var(--c-cream-rgb), 0.6); }
.fdq__short-value { color: var(--accent); }
.fdq--dark .fdq__short-value { color: var(--gold); }

/* --- Плита 08: открыть стол ------------------------------------------------ */

.fdopen {
  display: grid;
  grid-template-columns: minmax(0, 1400fr) minmax(0, 1000fr);
  gap: clamp(28px, 3.91vw, 100px);
  align-items: start;
}

.fdopen__main,
.fdopen__side {
  display: flex;
  flex-direction: column;
  gap: clamp(18px, 1.25vw, 32px);
}

.fdopen__title {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(32px, 3.2vw, 82px);
  line-height: 1;
  letter-spacing: -0.026em;
}

.fdopen__title em {
  font-style: italic;
  color: var(--accent);
}

.fdopen__lead {
  font-size: clamp(16px, 0.82vw, 21px);
  font-weight: 300;
  line-height: 1.7;
  color: var(--muted);
}

.fdform {
  display: flex;
  gap: clamp(12px, 0.86vw, 22px);
}

/* Поле с красной кареткой — тот же элемент, что на странице Career. */
.fdform__input {
  flex: 1;
  min-width: 0;
  height: clamp(64px, 3.75vw, 96px);
  padding: 0 clamp(20px, 1.41vw, 36px) 0 calc(clamp(20px, 1.41vw, 36px) + 21px);
  border: 0;
  border-radius: var(--r-pill);
  background-color: var(--bg);
  background-image: linear-gradient(var(--accent), var(--accent));
  background-size: 3px 26px;
  background-position: clamp(20px, 1.41vw, 36px) center;
  background-repeat: no-repeat;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
  font-family: var(--mono);
  font-size: clamp(13px, 0.63vw, 16px);
  letter-spacing: 0.16em;
  color: var(--ink);
}

.fdform__input::placeholder { color: var(--faint); }
.fdform__submit { height: clamp(64px, 3.75vw, 96px); }

.fdopen__or {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: clamp(12px, 0.86vw, 22px);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.fdopen__alt {
  display: inline-flex;
  align-items: center;
  height: clamp(52px, 2.97vw, 76px);
  padding: 0 clamp(20px, 1.48vw, 38px);
  border-radius: var(--r-pill);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.4);
  font-size: clamp(12px, 0.55vw, 14px);
  letter-spacing: 0.18em;
  color: var(--ink);
  transition: background 0.2s ease;
}

.fdopen__alt:hover { background: rgba(var(--ink-rgb), 0.07); }

.fdopen__figures {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(20px, 2.34vw, 60px);
  padding-top: clamp(14px, 0.94vw, 24px);
  border-top: 2px solid var(--ink);
}

.fdopen__figure {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.fdopen__value {
  font-family: var(--display);
  font-size: clamp(24px, 1.88vw, 48px);
  line-height: 1;
  white-space: nowrap;
}

.fdopen__label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.fdnext {
  display: flex;
  flex-direction: column;
}

.fdnext__row {
  display: grid;
  grid-template-columns: clamp(40px, 2.73vw, 70px) minmax(0, 1fr) auto;
  gap: clamp(12px, 0.86vw, 22px);
  align-items: baseline;
  padding: clamp(12px, 0.86vw, 22px) 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
}

.fdnext__row:first-child { border-top: 2px solid var(--ink); }

.fdnext__no {
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.14em;
  color: var(--accent);
}

.fdnext__what { font-size: clamp(15px, 0.82vw, 21px); }

.fdnext__when {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-align: right;
  color: var(--faint);
}

.fdno {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: clamp(18px, 1.02vw, 26px) clamp(18px, 1.09vw, 28px);
  border-radius: 12px;
  background: rgba(var(--c-red-rgb), 0.07);
}

.fdno__text {
  font-size: clamp(15px, 0.74vw, 19px);
  line-height: 1.55;
}

/* ==========================================================================
   45. Free agent account — адаптив
   ========================================================================== */

@media (max-width: 1440px) {
  .fdsignup {
    grid-template-columns: minmax(0, 1fr) clamp(300px, 30vw, 640px);
    gap: 34px;
  }

  .fdcurve__label { letter-spacing: 0; }
}

@media (max-width: 1240px) {
  /* Тёмный реестр уходит под бланк заявки. */
  .fdsignup,
  .fdcost,
  .fdnever,
  .fdopen {
    grid-template-columns: minmax(0, 1fr);
    gap: 44px;
  }

  .fdenvs,
  .fdqs,
  .fdcities { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  /* Четыре шага в строку не читаются: рельс уходит, шаги идут парами. */
  .fdrail__row,
  .fdrail__row--cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .fdrail__line { display: none; }

  .fdcard__body { min-height: 0; }
  .fdq__a { min-height: 0; }

  .fdrules { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1024px) {
  .fdfigures,
  .fdbigs,
  .fddeltas { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .fdfigures--cta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .fdfigures__cta { grid-column: 1 / -1; }

  .fdinv__row {
    grid-template-columns: clamp(30px, 3.13vw, 44px) minmax(0, 1fr) auto;
    row-gap: 8px;
  }

  .fdinv__basis {
    grid-column: 2 / -1;
    text-align: left;
  }

  .fdinv__row--head span:nth-child(3) { display: none; }

  .fdcheck__when { display: none; }
}

@media (max-width: 860px) {
  .fdfields { grid-template-columns: minmax(0, 1fr); }

  .fdenvs,
  .fdqs,
  .fdcities,
  .fdrail__row,
  .fdrail__row--cards,
  .fdfigures,
  .fdbigs,
  .fddeltas { grid-template-columns: minmax(0, 1fr); }

  .fdrules { grid-template-columns: minmax(0, 1fr); }

  .fdslip__foot {
    grid-template-columns: minmax(0, 1fr);
    gap: 16px;
  }

  .fdlegend {
    flex-wrap: wrap;
    gap: 12px 20px;
  }

  .fdlegend .tfoot__rule { display: none; }

  .fdform { flex-wrap: wrap; }
  .fdform__input { flex: 1 0 100%; }
  .fdform__submit { width: 100%; }

  /* Подпись метки уводит бар за экран — ставим её под ним. */
  .fdbar__marklabel {
    position: static;
    display: block;
    margin: 8px 0 0;
    transform: none;
  }
}

@media (max-width: 600px) {
  .fdcard__ghost,
  .fdenv__ghost,
  .fdq__ghost { display: none; }

  .fdenv__punch { display: none; }

  .fdbar { height: 84px; }
  .fdbar__count { font-size: 12px; }

  .fdcurve__label { display: none; }

  .fdcheck__short { font-size: 12px; }

  .fdinv__row,
  .fdnext__row {
    grid-template-columns: minmax(0, 1fr);
    row-gap: 6px;
  }

  .fdinv__amount { align-items: flex-start; }
  .fdnext__when { text-align: left; }

  .fdopen__figures { gap: 20px; }

  .fdslip__cta,
  .fdopen__alt { width: 100%; }

  .fdenv__accepts,
  .fdq__topic { margin-left: 0; }
}


/* ==========================================================================
   46. FAQ — три плиты
   ========================================================================== */

.qaseal {
  display: inline-flex;
  align-items: center;
  padding: 9px clamp(14px, 0.86vw, 22px);
  border-radius: 4px;
  box-shadow: inset 0 0 0 2px var(--accent);
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--accent);
}

/* --- Плита 01: указатель тем ---------------------------------------------- */

.qatiles {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(16px, 1.41vw, 36px);
}

.qatile {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: clamp(12px, 0.7vw, 18px);
  padding: clamp(26px, 1.64vw, 42px) clamp(20px, 1.41vw, 36px) clamp(20px, 1.25vw, 32px);
  border-radius: var(--r-card);
  overflow: hidden;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  color: var(--ink);
  transition: transform 0.24s ease, box-shadow 0.24s ease;
}

.qatile:hover {
  transform: translateY(-8px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.55);
}

.qatile__ghost {
  position: absolute;
  right: clamp(14px, 1.02vw, 26px);
  bottom: clamp(-30px, -1.8vw, -46px);
  font-family: var(--display);
  font-size: clamp(90px, 7.42vw, 190px);
  line-height: 1;
  color: rgba(var(--ink-rgb), 0.06);
  pointer-events: none;
}

.qatile__head,
.qatile__foot {
  position: relative;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
}

.qatile__count { color: var(--faint); }

.qatile__name {
  position: relative;
  font-family: var(--display);
  font-size: clamp(26px, 2.03vw, 52px);
  line-height: 1.04;
  letter-spacing: -0.022em;
}

/* Одинаковая высота подписи держит подвалы плиток на одной линии. */
.qatile__blurb {
  position: relative;
  min-height: clamp(60px, 3.28vw, 84px);
  font-size: clamp(14px, 0.74vw, 19px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--muted);
}

.qatile__foot {
  align-items: center;
  margin-top: auto;
  padding-top: clamp(12px, 0.7vw, 18px);
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
  color: var(--muted);
}

.qatile__disc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(40px, 2.03vw, 52px);
  height: clamp(40px, 2.03vw, 52px);
  border-radius: var(--r-pill);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
  font-size: clamp(15px, 0.86vw, 22px);
  color: var(--ink);
  transition: background 0.2s ease, color 0.2s ease;
}

.qatile:hover .qatile__disc {
  background: var(--accent);
  box-shadow: none;
  color: var(--c-cream);
}

/* --- Плита 02: реестр ------------------------------------------------------ */

/* Подпись в шапке плиты показывает, какой вопрос открыт: подписи всех строк
   лежат в разметке, видна подпись выбранной. */
.qanote span { display: none; }

.qaregister {
  display: flex;
  flex-direction: column;
  gap: clamp(28px, 2.73vw, 70px);
}

.qaband {
  display: flex;
  flex-direction: column;
  scroll-margin-top: clamp(80px, 6vw, 140px);
}

.qaband__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: clamp(12px, 0.86vw, 22px);
  border-bottom: 2px solid var(--ink);
}

.qaband__name {
  display: flex;
  align-items: baseline;
  gap: clamp(12px, 0.86vw, 22px);
}

.qaband__no,
.qaband__title {
  font-family: var(--display);
  font-size: clamp(26px, 2.19vw, 56px);
  line-height: 1;
  letter-spacing: -0.022em;
}

.qaband__no { color: var(--accent); }

.qaband__meta {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.qarows {
  display: flex;
  flex-direction: column;
}

.qarow {
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.1);
  border-left: 3px solid transparent;
  transition: background 0.16s ease, border-color 0.16s ease;
}

.qarow__head {
  display: grid;
  grid-template-columns: clamp(50px, 4.3vw, 110px) minmax(0, 1fr) clamp(120px, 16.41vw, 420px) clamp(50px, 2.73vw, 70px);
  gap: clamp(12px, 1.02vw, 26px);
  align-items: center;
  padding: clamp(14px, 1.02vw, 26px) clamp(12px, 0.86vw, 22px);
  cursor: pointer;
}

.qarow__no {
  font-family: var(--mono);
  font-size: clamp(12px, 0.55vw, 14px);
  letter-spacing: 0.14em;
  color: var(--faint);
}

.qarow__q {
  font-family: var(--display);
  font-size: clamp(19px, 1.33vw, 34px);
  line-height: 1.12;
  letter-spacing: -0.016em;
}

.qarow__short {
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--faint);
}

/* Диск с плюсом; у открытой строки — минус на красном. */
.qarow__disc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  justify-self: end;
  width: clamp(42px, 2.19vw, 56px);
  height: clamp(42px, 2.19vw, 56px);
  border-radius: var(--r-pill);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
  font-size: clamp(18px, 0.94vw, 24px);
  line-height: 1;
  color: var(--ink);
  transition: background 0.2s ease, color 0.2s ease;
}

.qarow__disc::before { content: "+"; }

/* Ответ раскрывается по высоте; текст выровнен со второй колонкой строки. */
.qarow__body {
  display: grid;
  grid-template-rows: 0fr;
  padding-left: calc(clamp(50px, 4.3vw, 110px) + clamp(24px, 1.88vw, 48px));
  padding-right: clamp(12px, 0.86vw, 22px);
  transition: grid-template-rows 0.3s ease;
}

.qarow__inner {
  overflow: hidden;
  min-height: 0;
}

.qarow__a {
  font-size: clamp(15px, 0.82vw, 21px);
  font-weight: 300;
  line-height: 1.7;
  color: var(--muted);
}

.qachip {
  display: inline-flex;
  align-items: center;
  margin-top: 14px;
  padding: 8px 16px;
  border-radius: 4px;
  box-shadow: inset 0 0 0 2px var(--accent);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
}

#ask-0-0:checked ~ .tplate .qarow--0-0,
#ask-0-1:checked ~ .tplate .qarow--0-1,
#ask-0-2:checked ~ .tplate .qarow--0-2,
#ask-0-3:checked ~ .tplate .qarow--0-3,
#ask-0-4:checked ~ .tplate .qarow--0-4,
#ask-1-0:checked ~ .tplate .qarow--1-0,
#ask-1-1:checked ~ .tplate .qarow--1-1,
#ask-1-2:checked ~ .tplate .qarow--1-2,
#ask-1-3:checked ~ .tplate .qarow--1-3,
#ask-1-4:checked ~ .tplate .qarow--1-4,
#ask-2-0:checked ~ .tplate .qarow--2-0,
#ask-2-1:checked ~ .tplate .qarow--2-1,
#ask-2-2:checked ~ .tplate .qarow--2-2,
#ask-2-3:checked ~ .tplate .qarow--2-3,
#ask-3-0:checked ~ .tplate .qarow--3-0,
#ask-3-1:checked ~ .tplate .qarow--3-1,
#ask-3-2:checked ~ .tplate .qarow--3-2,
#ask-3-3:checked ~ .tplate .qarow--3-3,
#ask-3-4:checked ~ .tplate .qarow--3-4,
#ask-4-0:checked ~ .tplate .qarow--4-0,
#ask-4-1:checked ~ .tplate .qarow--4-1,
#ask-4-2:checked ~ .tplate .qarow--4-2,
#ask-4-3:checked ~ .tplate .qarow--4-3,
#ask-4-4:checked ~ .tplate .qarow--4-4,
#ask-5-0:checked ~ .tplate .qarow--5-0,
#ask-5-1:checked ~ .tplate .qarow--5-1,
#ask-5-2:checked ~ .tplate .qarow--5-2,
#ask-5-3:checked ~ .tplate .qarow--5-3 {
  border-left-color: var(--accent);
  background: rgba(var(--c-red-rgb), 0.05);
}

#ask-0-0:checked ~ .tplate .qarow--0-0 .qarow__body,
#ask-0-1:checked ~ .tplate .qarow--0-1 .qarow__body,
#ask-0-2:checked ~ .tplate .qarow--0-2 .qarow__body,
#ask-0-3:checked ~ .tplate .qarow--0-3 .qarow__body,
#ask-0-4:checked ~ .tplate .qarow--0-4 .qarow__body,
#ask-1-0:checked ~ .tplate .qarow--1-0 .qarow__body,
#ask-1-1:checked ~ .tplate .qarow--1-1 .qarow__body,
#ask-1-2:checked ~ .tplate .qarow--1-2 .qarow__body,
#ask-1-3:checked ~ .tplate .qarow--1-3 .qarow__body,
#ask-1-4:checked ~ .tplate .qarow--1-4 .qarow__body,
#ask-2-0:checked ~ .tplate .qarow--2-0 .qarow__body,
#ask-2-1:checked ~ .tplate .qarow--2-1 .qarow__body,
#ask-2-2:checked ~ .tplate .qarow--2-2 .qarow__body,
#ask-2-3:checked ~ .tplate .qarow--2-3 .qarow__body,
#ask-3-0:checked ~ .tplate .qarow--3-0 .qarow__body,
#ask-3-1:checked ~ .tplate .qarow--3-1 .qarow__body,
#ask-3-2:checked ~ .tplate .qarow--3-2 .qarow__body,
#ask-3-3:checked ~ .tplate .qarow--3-3 .qarow__body,
#ask-3-4:checked ~ .tplate .qarow--3-4 .qarow__body,
#ask-4-0:checked ~ .tplate .qarow--4-0 .qarow__body,
#ask-4-1:checked ~ .tplate .qarow--4-1 .qarow__body,
#ask-4-2:checked ~ .tplate .qarow--4-2 .qarow__body,
#ask-4-3:checked ~ .tplate .qarow--4-3 .qarow__body,
#ask-4-4:checked ~ .tplate .qarow--4-4 .qarow__body,
#ask-5-0:checked ~ .tplate .qarow--5-0 .qarow__body,
#ask-5-1:checked ~ .tplate .qarow--5-1 .qarow__body,
#ask-5-2:checked ~ .tplate .qarow--5-2 .qarow__body,
#ask-5-3:checked ~ .tplate .qarow--5-3 .qarow__body {
  grid-template-rows: 1fr;
  padding-bottom: clamp(16px, 1.02vw, 26px);
}

#ask-0-0:checked ~ .tplate .qarow--0-0 .qarow__short,
#ask-0-1:checked ~ .tplate .qarow--0-1 .qarow__short,
#ask-0-2:checked ~ .tplate .qarow--0-2 .qarow__short,
#ask-0-3:checked ~ .tplate .qarow--0-3 .qarow__short,
#ask-0-4:checked ~ .tplate .qarow--0-4 .qarow__short,
#ask-1-0:checked ~ .tplate .qarow--1-0 .qarow__short,
#ask-1-1:checked ~ .tplate .qarow--1-1 .qarow__short,
#ask-1-2:checked ~ .tplate .qarow--1-2 .qarow__short,
#ask-1-3:checked ~ .tplate .qarow--1-3 .qarow__short,
#ask-1-4:checked ~ .tplate .qarow--1-4 .qarow__short,
#ask-2-0:checked ~ .tplate .qarow--2-0 .qarow__short,
#ask-2-1:checked ~ .tplate .qarow--2-1 .qarow__short,
#ask-2-2:checked ~ .tplate .qarow--2-2 .qarow__short,
#ask-2-3:checked ~ .tplate .qarow--2-3 .qarow__short,
#ask-3-0:checked ~ .tplate .qarow--3-0 .qarow__short,
#ask-3-1:checked ~ .tplate .qarow--3-1 .qarow__short,
#ask-3-2:checked ~ .tplate .qarow--3-2 .qarow__short,
#ask-3-3:checked ~ .tplate .qarow--3-3 .qarow__short,
#ask-3-4:checked ~ .tplate .qarow--3-4 .qarow__short,
#ask-4-0:checked ~ .tplate .qarow--4-0 .qarow__short,
#ask-4-1:checked ~ .tplate .qarow--4-1 .qarow__short,
#ask-4-2:checked ~ .tplate .qarow--4-2 .qarow__short,
#ask-4-3:checked ~ .tplate .qarow--4-3 .qarow__short,
#ask-4-4:checked ~ .tplate .qarow--4-4 .qarow__short,
#ask-5-0:checked ~ .tplate .qarow--5-0 .qarow__short,
#ask-5-1:checked ~ .tplate .qarow--5-1 .qarow__short,
#ask-5-2:checked ~ .tplate .qarow--5-2 .qarow__short,
#ask-5-3:checked ~ .tplate .qarow--5-3 .qarow__short { color: var(--accent); }

#ask-0-0:checked ~ .tplate .qarow--0-0 .qarow__disc,
#ask-0-1:checked ~ .tplate .qarow--0-1 .qarow__disc,
#ask-0-2:checked ~ .tplate .qarow--0-2 .qarow__disc,
#ask-0-3:checked ~ .tplate .qarow--0-3 .qarow__disc,
#ask-0-4:checked ~ .tplate .qarow--0-4 .qarow__disc,
#ask-1-0:checked ~ .tplate .qarow--1-0 .qarow__disc,
#ask-1-1:checked ~ .tplate .qarow--1-1 .qarow__disc,
#ask-1-2:checked ~ .tplate .qarow--1-2 .qarow__disc,
#ask-1-3:checked ~ .tplate .qarow--1-3 .qarow__disc,
#ask-1-4:checked ~ .tplate .qarow--1-4 .qarow__disc,
#ask-2-0:checked ~ .tplate .qarow--2-0 .qarow__disc,
#ask-2-1:checked ~ .tplate .qarow--2-1 .qarow__disc,
#ask-2-2:checked ~ .tplate .qarow--2-2 .qarow__disc,
#ask-2-3:checked ~ .tplate .qarow--2-3 .qarow__disc,
#ask-3-0:checked ~ .tplate .qarow--3-0 .qarow__disc,
#ask-3-1:checked ~ .tplate .qarow--3-1 .qarow__disc,
#ask-3-2:checked ~ .tplate .qarow--3-2 .qarow__disc,
#ask-3-3:checked ~ .tplate .qarow--3-3 .qarow__disc,
#ask-3-4:checked ~ .tplate .qarow--3-4 .qarow__disc,
#ask-4-0:checked ~ .tplate .qarow--4-0 .qarow__disc,
#ask-4-1:checked ~ .tplate .qarow--4-1 .qarow__disc,
#ask-4-2:checked ~ .tplate .qarow--4-2 .qarow__disc,
#ask-4-3:checked ~ .tplate .qarow--4-3 .qarow__disc,
#ask-4-4:checked ~ .tplate .qarow--4-4 .qarow__disc,
#ask-5-0:checked ~ .tplate .qarow--5-0 .qarow__disc,
#ask-5-1:checked ~ .tplate .qarow--5-1 .qarow__disc,
#ask-5-2:checked ~ .tplate .qarow--5-2 .qarow__disc,
#ask-5-3:checked ~ .tplate .qarow--5-3 .qarow__disc {
  background: var(--accent);
  box-shadow: none;
  color: var(--c-cream);
}

#ask-0-0:checked ~ .tplate .qarow--0-0 .qarow__disc::before,
#ask-0-1:checked ~ .tplate .qarow--0-1 .qarow__disc::before,
#ask-0-2:checked ~ .tplate .qarow--0-2 .qarow__disc::before,
#ask-0-3:checked ~ .tplate .qarow--0-3 .qarow__disc::before,
#ask-0-4:checked ~ .tplate .qarow--0-4 .qarow__disc::before,
#ask-1-0:checked ~ .tplate .qarow--1-0 .qarow__disc::before,
#ask-1-1:checked ~ .tplate .qarow--1-1 .qarow__disc::before,
#ask-1-2:checked ~ .tplate .qarow--1-2 .qarow__disc::before,
#ask-1-3:checked ~ .tplate .qarow--1-3 .qarow__disc::before,
#ask-1-4:checked ~ .tplate .qarow--1-4 .qarow__disc::before,
#ask-2-0:checked ~ .tplate .qarow--2-0 .qarow__disc::before,
#ask-2-1:checked ~ .tplate .qarow--2-1 .qarow__disc::before,
#ask-2-2:checked ~ .tplate .qarow--2-2 .qarow__disc::before,
#ask-2-3:checked ~ .tplate .qarow--2-3 .qarow__disc::before,
#ask-3-0:checked ~ .tplate .qarow--3-0 .qarow__disc::before,
#ask-3-1:checked ~ .tplate .qarow--3-1 .qarow__disc::before,
#ask-3-2:checked ~ .tplate .qarow--3-2 .qarow__disc::before,
#ask-3-3:checked ~ .tplate .qarow--3-3 .qarow__disc::before,
#ask-3-4:checked ~ .tplate .qarow--3-4 .qarow__disc::before,
#ask-4-0:checked ~ .tplate .qarow--4-0 .qarow__disc::before,
#ask-4-1:checked ~ .tplate .qarow--4-1 .qarow__disc::before,
#ask-4-2:checked ~ .tplate .qarow--4-2 .qarow__disc::before,
#ask-4-3:checked ~ .tplate .qarow--4-3 .qarow__disc::before,
#ask-4-4:checked ~ .tplate .qarow--4-4 .qarow__disc::before,
#ask-5-0:checked ~ .tplate .qarow--5-0 .qarow__disc::before,
#ask-5-1:checked ~ .tplate .qarow--5-1 .qarow__disc::before,
#ask-5-2:checked ~ .tplate .qarow--5-2 .qarow__disc::before,
#ask-5-3:checked ~ .tplate .qarow--5-3 .qarow__disc::before { content: "\2212"; }

#ask-0-0:checked ~ .tplate .only-ask-0-0,
#ask-0-1:checked ~ .tplate .only-ask-0-1,
#ask-0-2:checked ~ .tplate .only-ask-0-2,
#ask-0-3:checked ~ .tplate .only-ask-0-3,
#ask-0-4:checked ~ .tplate .only-ask-0-4,
#ask-1-0:checked ~ .tplate .only-ask-1-0,
#ask-1-1:checked ~ .tplate .only-ask-1-1,
#ask-1-2:checked ~ .tplate .only-ask-1-2,
#ask-1-3:checked ~ .tplate .only-ask-1-3,
#ask-1-4:checked ~ .tplate .only-ask-1-4,
#ask-2-0:checked ~ .tplate .only-ask-2-0,
#ask-2-1:checked ~ .tplate .only-ask-2-1,
#ask-2-2:checked ~ .tplate .only-ask-2-2,
#ask-2-3:checked ~ .tplate .only-ask-2-3,
#ask-3-0:checked ~ .tplate .only-ask-3-0,
#ask-3-1:checked ~ .tplate .only-ask-3-1,
#ask-3-2:checked ~ .tplate .only-ask-3-2,
#ask-3-3:checked ~ .tplate .only-ask-3-3,
#ask-3-4:checked ~ .tplate .only-ask-3-4,
#ask-4-0:checked ~ .tplate .only-ask-4-0,
#ask-4-1:checked ~ .tplate .only-ask-4-1,
#ask-4-2:checked ~ .tplate .only-ask-4-2,
#ask-4-3:checked ~ .tplate .only-ask-4-3,
#ask-4-4:checked ~ .tplate .only-ask-4-4,
#ask-5-0:checked ~ .tplate .only-ask-5-0,
#ask-5-1:checked ~ .tplate .only-ask-5-1,
#ask-5-2:checked ~ .tplate .only-ask-5-2,
#ask-5-3:checked ~ .tplate .only-ask-5-3 { display: inline; }

/* --- Плита 03: задать вопрос ---------------------------------------------- */

.qaslip {
  position: relative;
  border: 1px solid rgba(var(--ink-rgb), 0.34);
  border-radius: var(--r-card);
  padding: clamp(30px, 2.73vw, 70px) clamp(22px, 2.58vw, 66px);
  background: var(--sheet);
}

.qaslip::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 10px;
  border-radius: var(--r-card) var(--r-card) 0 0;
  background: repeating-linear-gradient(90deg, rgba(var(--ink-rgb), 0.34) 0 1px, transparent 1px 18px);
}

.qaslip::after {
  content: "";
  position: absolute;
  left: 50%;
  top: -18px;
  width: 36px;
  height: 36px;
  margin-left: -18px;
  border-radius: var(--r-pill);
  background: var(--bg);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
}

.qaslip__mark {
  position: absolute;
  right: clamp(20px, 2.34vw, 60px);
  bottom: clamp(18px, 1.72vw, 44px);
  height: clamp(60px, 5.16vw, 132px);
  width: auto;
  opacity: 0.12;
  pointer-events: none;
}

.qaask {
  display: grid;
  grid-template-columns: minmax(0, 1400fr) minmax(0, 1000fr);
  gap: clamp(28px, 3.91vw, 100px);
  align-items: start;
}

.qaask__main,
.qaask__side {
  display: flex;
  flex-direction: column;
  gap: clamp(18px, 1.25vw, 32px);
}

.qaask__title {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(32px, 3.2vw, 82px);
  line-height: 1;
  letter-spacing: -0.026em;
}

.qaask__title em {
  font-style: italic;
  color: var(--accent);
}

.qaask__lead {
  font-size: clamp(16px, 0.82vw, 21px);
  font-weight: 300;
  line-height: 1.7;
  color: var(--muted);
}

.qaform {
  display: flex;
  gap: clamp(12px, 0.86vw, 22px);
}

.qaform__input {
  flex: 1;
  min-width: 0;
  height: clamp(64px, 3.75vw, 96px);
  padding: 0 clamp(20px, 1.41vw, 36px) 0 calc(clamp(20px, 1.41vw, 36px) + 21px);
  border: 0;
  border-radius: var(--r-pill);
  background-color: var(--bg);
  background-image: linear-gradient(var(--accent), var(--accent));
  background-size: 3px 26px;
  background-position: clamp(20px, 1.41vw, 36px) center;
  background-repeat: no-repeat;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
  font-family: var(--mono);
  font-size: clamp(13px, 0.63vw, 16px);
  letter-spacing: 0.16em;
  color: var(--ink);
}

.qaform__input::placeholder { color: var(--faint); }
.qaform__submit { height: clamp(64px, 3.75vw, 96px); }

.qafigures {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(20px, 2.34vw, 60px);
  padding-top: clamp(14px, 0.94vw, 24px);
  border-top: 2px solid var(--ink);
}

.qafigure {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.qafigure__value {
  font-family: var(--display);
  font-size: clamp(26px, 2.03vw, 52px);
  line-height: 1;
  white-space: nowrap;
}

.qafigure__label,
.qaask__label,
.qaask__signature {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.qaask__label { color: var(--accent); }

.qadesks {
  display: flex;
  flex-direction: column;
  border-top: 2px solid var(--ink);
}

.qadesk {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: clamp(12px, 0.86vw, 22px) 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
}

.qadesk__name {
  display: flex;
  flex-direction: column;
  gap: 6px;
  font-size: clamp(15px, 0.78vw, 20px);
}

.qadesk__what {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.qadesk__address {
  font-family: var(--mono);
  font-size: clamp(12px, 0.59vw, 15px);
  letter-spacing: 0.1em;
  color: var(--accent);
  transition: color 0.2s ease;
}

.qadesk__address:hover { color: var(--ink); }

.qacannot {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: clamp(18px, 1.02vw, 26px) clamp(18px, 1.09vw, 28px);
  border-radius: 12px;
  background: rgba(var(--c-red-rgb), 0.07);
}

.qacannot__label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
}

.qacannot__text {
  font-size: clamp(15px, 0.74vw, 19px);
  line-height: 1.55;
}

/* ==========================================================================
   47. FAQ — адаптив
   ========================================================================== */

@media (max-width: 1240px) {
  .qatiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .qaask {
    grid-template-columns: minmax(0, 1fr);
    gap: 44px;
  }

  /* Короткий ответ уходит первым — вопрос и знак остаются на месте. */
  .qarow__head {
    grid-template-columns: clamp(44px, 4.3vw, 110px) minmax(0, 1fr) clamp(44px, 2.73vw, 70px);
  }

  .qarow__short { display: none; }

  .qarow__body {
    padding-left: calc(clamp(44px, 4.3vw, 110px) + clamp(20px, 1.88vw, 48px));
  }
}

@media (max-width: 860px) {
  .qatiles { grid-template-columns: minmax(0, 1fr); }

  .qatile__blurb { min-height: 0; }

  .qaband__head {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }

  .qaform { flex-wrap: wrap; }
  .qaform__input { flex: 1 0 100%; }
  .qaform__submit { width: 100%; }

  .qadesk {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
}

@media (max-width: 600px) {
  .qatile__ghost { display: none; }

  /* Номер строки встаёт над вопросом, знак остаётся справа. */
  .qarow__head {
    grid-template-columns: minmax(0, 1fr) clamp(42px, 12vw, 56px);
    row-gap: 6px;
  }

  .qarow__no { grid-column: 1; }
  .qarow__q { grid-column: 1; }
  .qarow__disc { grid-row: 1 / span 2; }

  .qarow__body { padding-left: clamp(12px, 0.86vw, 22px); }

  .qafigures { gap: 20px; }
}

/* ==========================================================================
   48. 404 — четыре плиты
   ========================================================================== */

/* Плита 01 — единственная тёмная на странице: на ней живёт золото. */
.nfplate {
  position: relative;
  padding: clamp(28px, 2.73vw, 70px) clamp(22px, 2.73vw, 70px) clamp(26px, 2.34vw, 60px);
  border-radius: var(--r-card);
  overflow: hidden;
  background: var(--c-night)
    repeating-linear-gradient(45deg, rgba(var(--c-cream-rgb), 0.045) 0 2px, transparent 2px 18px);
  color: var(--c-cream);
}

.nfkicker .tkicker__num { color: var(--gold); }
.nfkicker .tkicker__label { color: rgba(var(--c-cream-rgb), 0.82); }
.nfkicker .tkicker__note { color: rgba(var(--c-cream-rgb), 0.6); }
.nfkicker .tkicker__rule { background: rgba(var(--c-cream-rgb), 0.28); }

/* Призрачное «404» уходит за нижний правый угол. */
.nfghost {
  position: absolute;
  right: clamp(-30px, -1.56vw, -20px);
  bottom: clamp(-90px, -5.86vw, -150px);
  font-family: var(--display);
  font-size: clamp(180px, 24.22vw, 620px);
  line-height: 1;
  color: rgba(var(--c-gold-rgb), 0.14);
  pointer-events: none;
}

.nftick {
  position: absolute;
  width: 26px;
  height: 26px;
  border: 0 solid rgba(var(--c-cream-rgb), 0.34);
  pointer-events: none;
}

.nfplate > .nftick--tl,
.nfplate > .nftick--tr,
.nfplate > .nftick--bl,
.nfplate > .nftick--br { margin: 30px; }

.nftick--tl {
  left: 0;
  top: 0;
  border-left-width: 1px;
  border-top-width: 1px;
}

.nftick--tr {
  right: 0;
  top: 0;
  border-right-width: 1px;
  border-top-width: 1px;
}

.nftick--bl {
  left: 0;
  bottom: 0;
  border-left-width: 1px;
  border-bottom-width: 1px;
}

.nftick--br {
  right: 0;
  bottom: 0;
  border-right-width: 1px;
  border-bottom-width: 1px;
}

.nfplate__mark {
  position: absolute;
  right: clamp(20px, 2.34vw, 60px);
  top: clamp(20px, 2.34vw, 60px);
  height: clamp(56px, 4.84vw, 124px);
  width: auto;
  opacity: 0.14;
  pointer-events: none;
}

.nfhead {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1400fr) minmax(0, 1000fr);
  gap: clamp(24px, 4.69vw, 120px);
  align-items: end;
}

.nfhead__main {
  display: flex;
  flex-direction: column;
  gap: clamp(14px, 1.02vw, 26px);
}

.nfhead__tag {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 14px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--gold);
}

.nfchip {
  display: inline-flex;
  align-items: center;
  padding: 8px 16px;
  border-radius: 4px;
  box-shadow: inset 0 0 0 2px var(--gold);
  font-size: 12px;
  letter-spacing: 0.22em;
}

/* Запрошенный адрес — как он пришёл, с переносом по любому знаку. */
.nfasked {
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-self: flex-start;
  max-width: 100%;
  padding: clamp(12px, 0.86vw, 22px) clamp(14px, 1.02vw, 26px);
  border-radius: 6px;
  background: rgba(var(--c-cream-rgb), 0.06);
  box-shadow: inset 0 0 0 1px rgba(var(--c-cream-rgb), 0.16);
}

.nfasked__label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(var(--c-cream-rgb), 0.6);
}

.nfasked__url {
  font-family: var(--mono);
  font-size: clamp(13px, 0.74vw, 19px);
  letter-spacing: 0.04em;
  word-break: break-all;
  color: var(--c-cream);
}

.nfhead__title {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(38px, 4.3vw, 110px);
  line-height: 1;
  letter-spacing: -0.028em;
}

.nfhead__title em {
  font-style: italic;
  color: var(--gold);
}

.nfhead__intro {
  padding-bottom: 10px;
  font-size: clamp(16px, 0.86vw, 22px);
  font-weight: 300;
  line-height: 1.6;
  text-align: right;
  color: rgba(var(--c-cream-rgb), 0.82);
}

.nfsearch {
  position: relative;
  display: flex;
  gap: clamp(12px, 0.86vw, 22px);
}

.nfsearch__input {
  flex: 1;
  min-width: 0;
  height: clamp(64px, 4.06vw, 104px);
  padding: 0 clamp(20px, 1.41vw, 36px) 0 calc(clamp(20px, 1.41vw, 36px) + 21px);
  border: 0;
  border-radius: var(--r-pill);
  background-color: rgba(var(--c-cream-rgb), 0.06);
  background-image: linear-gradient(var(--gold), var(--gold));
  background-size: 3px 28px;
  background-position: clamp(20px, 1.41vw, 36px) center;
  background-repeat: no-repeat;
  box-shadow: inset 0 0 0 1px rgba(var(--c-cream-rgb), 0.28);
  font-family: var(--mono);
  font-size: clamp(13px, 0.63vw, 16px);
  letter-spacing: 0.16em;
  color: var(--c-cream);
}

.nfsearch__input::placeholder { color: rgba(var(--c-cream-rgb), 0.6); }
.nfsearch__submit { height: clamp(64px, 4.06vw, 104px); }

.nfstrip {
  position: relative;
  display: flex;
  align-items: center;
  gap: clamp(14px, 0.94vw, 24px);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: rgba(var(--c-cream-rgb), 0.6);
}

.nfstrip__lead { color: var(--c-cream); }

.nfstrip__rule {
  display: block;
  flex: 1;
  height: 1px;
  background: rgba(var(--c-cream-rgb), 0.22);
}

.nfreasons {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(20px, 2.73vw, 70px);
  padding-top: clamp(18px, 1.25vw, 32px);
  border-top: 2px solid rgba(var(--c-cream-rgb), 0.28);
}

.nfreason {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Колонки причин разделены кремовыми волосками. */
.nfreason + .nfreason {
  padding-left: clamp(20px, 2.73vw, 70px);
  border-left: 1px solid rgba(var(--c-cream-rgb), 0.16);
  margin-left: clamp(-20px, -2.73vw, -70px);
}

.nfreason__pct {
  font-family: var(--display);
  font-size: clamp(34px, 2.66vw, 68px);
  line-height: 1;
  color: rgba(var(--c-cream-rgb), 0.82);
}

.nfreason--lead .nfreason__pct { color: var(--gold); }

.nfreason__name {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--c-cream);
}

.nfreason__bar {
  display: block;
  height: 8px;
  border-radius: var(--r-pill);
  background: rgba(var(--c-cream-rgb), 0.16);
  overflow: hidden;
}

.nfreason__fill {
  display: block;
  height: 100%;
  background: rgba(var(--c-cream-rgb), 0.5);
}

.nfreason--lead .nfreason__fill { background: var(--gold); }

.nfreason__what {
  font-size: clamp(14px, 0.7vw, 18px);
  font-weight: 300;
  line-height: 1.55;
  color: rgba(var(--c-cream-rgb), 0.82);
}

/* --- Плита 02: карточка объекта (общий компонент) -------------------------- */

.nfband {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: clamp(12px, 0.86vw, 22px);
  border-bottom: 2px solid var(--ink);
}

.nfband__name {
  display: flex;
  align-items: baseline;
  gap: clamp(12px, 0.86vw, 22px);
}

.nfband__no,
.nfband__title {
  font-family: var(--display);
  font-size: clamp(24px, 1.88vw, 48px);
  line-height: 1;
  letter-spacing: -0.022em;
}

.nfband__no { color: var(--accent); }

.nfband__note,
.nfband__link {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.nfband__link {
  color: var(--accent);
  transition: color 0.2s ease;
}

.nfband__link:hover { color: var(--ink); }

.nfcards {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(16px, 1.33vw, 34px);
}

.nfcard {
  display: flex;
  flex-direction: column;
  border-radius: var(--r-card);
  overflow: hidden;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  color: var(--ink);
  transition: transform 0.24s ease, box-shadow 0.24s ease;
}

.nfcard:hover {
  transform: translateY(-8px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.55);
}

/* Колодец держит пропорцию макета (584 x 280 при холсте 2560), поэтому размер,
   написанный на подложке, верен на любой ширине. */
.nfcard__photo {
  position: relative;
  display: block;
  aspect-ratio: 584 / 280;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.26);
}

.nfcard__photo .nftick { border-color: rgba(var(--ink-rgb), 0.4); }

/* Свежее объявление отмечено красным, остальные — кремовым с волоском. */
.nfcard__badge {
  position: absolute;
  left: clamp(12px, 0.78vw, 20px);
  bottom: clamp(12px, 0.78vw, 20px);
  display: inline-flex;
  align-items: center;
  height: clamp(32px, 1.56vw, 40px);
  padding: 0 clamp(12px, 0.7vw, 18px);
  border-radius: var(--r-pill);
  background: var(--bg);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink);
}

.nfcard__badge--fresh {
  background: var(--accent);
  box-shadow: none;
  color: var(--c-cream);
}

.nfcard__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: clamp(10px, 0.63vw, 16px);
  padding: clamp(16px, 1.09vw, 28px) clamp(16px, 1.02vw, 26px) clamp(16px, 1.02vw, 26px);
}

.nfcard__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.nfcard__ref { color: var(--accent); }

.nfcard__address {
  font-family: var(--display);
  font-size: clamp(20px, 1.25vw, 32px);
  line-height: 1.1;
  letter-spacing: -0.016em;
}

.nfcard__price {
  font-family: var(--display);
  font-size: clamp(24px, 1.64vw, 42px);
  line-height: 1;
  white-space: nowrap;
}

.nfcard__rows {
  display: flex;
  flex-direction: column;
  margin-top: auto;
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
}

.nfcard__row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.09);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.nfcard__value { color: var(--ink); }
.nfcard__value--accent { color: var(--accent); }

/* --- Плита 03: маршруты ---------------------------------------------------- */

.nfroutes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(16px, 1.33vw, 34px);
}

.nfroute {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: clamp(14px, 0.94vw, 24px);
  align-items: center;
  padding: clamp(18px, 1.25vw, 32px) clamp(18px, 1.33vw, 34px);
  border-radius: var(--r-card);
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  color: var(--ink);
  transition: background 0.2s ease, box-shadow 0.2s ease;
}

.nfroute:hover {
  background: rgba(var(--c-red-rgb), 0.05);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.5);
}

.nfroute__no {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  color: var(--accent);
}

.nfroute__text {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.nfroute__name {
  font-family: var(--display);
  font-size: clamp(20px, 1.48vw, 38px);
  line-height: 1.08;
}

.nfroute__what {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--faint);
}

.nfroute__disc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(40px, 2.03vw, 52px);
  height: clamp(40px, 2.03vw, 52px);
  border-radius: var(--r-pill);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
  font-size: clamp(15px, 0.86vw, 22px);
  transition: background 0.2s ease, color 0.2s ease;
}

.nfroute:hover .nfroute__disc {
  background: var(--accent);
  box-shadow: none;
  color: var(--c-cream);
}

/* --- Плита 04: сообщить о битой ссылке ------------------------------------- */

.nfreport {
  display: flex;
  flex-direction: column;
  gap: clamp(18px, 1.25vw, 32px);
}

.nfstrip--report {
  color: var(--faint);
  padding-bottom: clamp(14px, 0.94vw, 24px);
  border-bottom: 2px solid var(--ink);
}

.nfstrip--report .nfstrip__lead { color: var(--accent); }
.nfstrip--report .nfstrip__rule { background: rgba(var(--ink-rgb), 0.22); }

.nfreport__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(20px, 2.73vw, 70px);
  align-items: center;
}

.nfreport__line {
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(22px, 1.72vw, 44px);
  line-height: 1.12;
  letter-spacing: -0.02em;
}

.nfreport__line em {
  font-style: italic;
  color: var(--accent);
}

.nfreport__cta { height: clamp(64px, 3.44vw, 88px); }

/* ==========================================================================
   49. 404 — адаптив
   ========================================================================== */

@media (max-width: 1240px) {
  .nfhead {
    grid-template-columns: minmax(0, 1fr);
    gap: 22px;
  }

  .nfhead__intro {
    padding-bottom: 0;
    text-align: left;
  }

  .nfcards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .nfroutes { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  /* Причины перестают делиться волосками и идут в столбик по две. */
  .nfreasons { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .nfreason + .nfreason {
    padding-left: 0;
    border-left: 0;
    margin-left: 0;
  }
}

@media (max-width: 860px) {
  .nfcards,
  .nfroutes,
  .nfreasons { grid-template-columns: minmax(0, 1fr); }

  .nfsearch { flex-wrap: wrap; }
  .nfsearch__input { flex: 1 0 100%; }
  .nfsearch__submit { width: 100%; }

  .nfreport__row {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
  }

  .nfreport__cta { justify-self: start; }

  /* Призрачное «404» на узком экране только мешает. */
  .nfghost { display: none; }
}

@media (max-width: 600px) {
  .nfplate > .nftick { display: none; }

  .nfplate__mark { display: none; }

  .nfstrip,
  .nfstrip--report {
    flex-wrap: wrap;
    gap: 8px 14px;
  }

  .nfstrip__rule { display: none; }

  .nfband {
    flex-direction: column;
    align-items: flex-start;
  }

  .nfreport__cta { width: 100%; }
}

/* ==========================================================================
   50. Standard card type — каталог одного компонента
   ========================================================================== */

/* Заголовок ряда: номер и название на тяжёлой линейке, справа — что ряд добавил. */
.lcrow {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: clamp(17px, 1.33vw, 34px);
  padding-bottom: clamp(8px, 0.62vw, 16px);
  border-bottom: 2px solid var(--ink);
}

.lcrow__name {
  display: flex;
  align-items: baseline;
  gap: clamp(13px, 1.02vw, 26px);
}

.lcrow__no,
.lcrow__title {
  font-family: var(--display);
  font-size: clamp(29px, 1.88vw, 48px);
  line-height: 1;
  letter-spacing: -0.022em;
}

.lcrow__no { color: var(--accent); }

.lcrow__note {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

/* Карточки не растягиваются до самой высокой: у ряда с пилюлями третья карточка
   переносит строку, и растяжение оставляло бы пустоту внизу соседних. */
.lccards {
  display: grid;
  align-items: start;
  margin-top: clamp(17px, 1.33vw, 34px);
}

.lccards--4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(17px, 1.33vw, 34px);
}

.lccards--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(20px, 1.56vw, 40px);
}

/* Ряд сам держит расстояние до карточек (34px), а плита — нет. */
.lcpage .tplate { gap: 0; }
.lcpage .tplate--first { margin-top: clamp(20px, 1.56vw, 40px); }

/* --- Карточка ------------------------------------------------------------- */

.lccard {
  position: relative;
  display: flex;
  flex-direction: column;
  border-radius: 14px;
  overflow: hidden;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  transition: transform 0.24s ease, box-shadow 0.24s ease;
}

.lccard:hover {
  transform: translateY(-8px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.55);
}

/* Контурная семья: земли нет, при наведении толстеет линия, а не фон. */
.lccard--outline,
.lccard--sheet {
  background: none;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
}

.lccard--outline:hover,
.lccard--sheet:hover { box-shadow: inset 0 0 0 2px rgba(var(--ink-rgb), 0.55); }

.lccard--sheet {
  overflow: visible;
  padding: clamp(13px, 1.02vw, 26px);
}

/* --- Снимок ----------------------------------------------------------------- */

.lcphoto {
  position: relative;
  display: block;
  height: clamp(220px, 16.41vw, 420px);
  background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.1) 0 2px, transparent 2px 14px);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.18);
}

.lcphoto--short {
  height: clamp(210px, 15.62vw, 400px);
  border-bottom-color: rgba(var(--ink-rgb), 0.24);
}

.lcphoto--open { border-bottom: 0; }

.lcphoto__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Подпись размера кадра — в верхней трети колодца, ниже значков и выше всего,
   что стоит у нижнего края. Уходит вместе со штриховкой, когда есть снимок. */
.lcwell__size {
  position: absolute;
  left: 50%;
  top: clamp(72px, 4.61vw, 118px);
  transform: translateX(-50%);
  padding: 9px 16px;
  border-radius: 6px;
  background: rgba(var(--bg-rgb), 0.86);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
  font-family: var(--mono);
  font-size: clamp(12px, 0.59vw, 15px);
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
  white-space: nowrap;
  pointer-events: none;
}

.lcwell .lcwell__size { top: clamp(48px, 2.73vw, 70px); }

/* Уголки на снимке: 24px, отступ 22. */
.lctick {
  position: absolute;
  width: 24px;
  height: 24px;
  border: 0 solid rgba(var(--ink-rgb), 0.4);
  pointer-events: none;
}

.lctick--tl { left: 22px; top: 22px; border-left-width: 1px; border-top-width: 1px; }
.lctick--tr { right: 22px; top: 22px; border-right-width: 1px; border-top-width: 1px; }
.lctick--br { right: 22px; bottom: 22px; border-right-width: 1px; border-bottom-width: 1px; }

/* Значки-пилюли на снимке. */
.lcbadge {
  position: absolute;
  display: inline-flex;
  align-items: center;
  height: 42px;
  padding: 0 20px;
  border-radius: var(--r-pill);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  white-space: nowrap;
}

.lcbadge--small {
  height: 38px;
  padding: 0 18px;
  letter-spacing: 0.2em;
}

.lcbadge--bl { left: 22px; bottom: 22px; }
.lcbadge--tl { left: 22px; top: 22px; }
.lcbadge--tr { right: 22px; top: 22px; }
.lcbadge--shift { margin-left: 36px; }
.lcbadge--static { position: static; }

.lcbadge--red,
.lcbadge--priority {
  background: var(--accent);
  color: var(--on-photo);
}

.lcbadge--cream {
  background: rgba(var(--bg-rgb), 0.92);
  color: var(--ink);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.lcbadge--cut {
  background: rgba(var(--accent-rgb), 0.14);
  color: var(--accent);
  box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.45);
}

.lcbadge--status {
  background: var(--ink);
  color: var(--bg);
}

.lcbadge--offer {
  background: rgba(var(--c-gold-rgb), 0.9);
  color: rgb(var(--scrim-rgb));
}

.lcbadge--sold {
  background: rgba(var(--ink-rgb), 0.12);
  color: var(--muted);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
}

.lcbadge--archived,
.lcbadge--archived-ink {
  background: rgba(var(--bg-rgb), 0.92);
  color: var(--muted);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.4);
}

.lcbadge--archived-ink { color: var(--ink); }

/* Сердце в правом верхнем углу. */
.lcheart {
  position: absolute;
  right: 22px;
  top: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: var(--r-pill);
  background: rgba(var(--bg-rgb), 0.92);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  color: var(--ink);
  font-size: 18px;
  line-height: 1;
  transition: background 0.2s ease, color 0.2s ease;
}

.lccard:hover .lcheart {
  background: var(--accent);
  color: var(--on-photo);
}

.lcglyph { flex: none; }

/* Пилюли с иконкой: счётчик кадров тёмный слева, печать класса кремовая справа. */
.lcicochip {
  position: absolute;
  bottom: 22px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  height: 42px;
  padding: 0 18px;
  border-radius: var(--r-pill);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.lcicochip--bl { left: 22px; }
.lcicochip--br { right: 22px; }

.lcicochip--dark {
  background: rgba(var(--scrim-rgb), 0.82);
  color: var(--on-photo);
}

.lcicochip--cream {
  background: rgba(var(--bg-rgb), 0.92);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  color: var(--accent);
}

/* Нижняя строка снимка: кремовая пилюля слева, тёмная справа. */
.lcchips {
  position: absolute;
  left: 22px;
  right: 22px;
  bottom: 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.lcchip {
  display: inline-flex;
  align-items: center;
  height: 38px;
  padding: 0 18px;
  border-radius: var(--r-pill);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  white-space: nowrap;
}

.lcchip--cream {
  background: rgba(var(--bg-rgb), 0.92);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  color: var(--ink);
}

.lcchip--dark {
  padding: 0 16px;
  background: rgba(var(--scrim-rgb), 0.82);
  color: var(--on-photo);
  letter-spacing: 0.16em;
}

/* Полоса галереи: четыре штриха и счётчик. */
.lcbars {
  position: absolute;
  left: 22px;
  right: 22px;
  bottom: 20px;
  display: flex;
  align-items: center;
  gap: 6px;
}

.lcbars__bar {
  flex: 1;
  height: 4px;
  border-radius: var(--r-pill);
  background: rgba(var(--on-photo-rgb), 0.45);
}

.lcbars__bar:first-child { background: var(--on-photo); }

.lcbars__count {
  margin-left: 10px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink);
}

.lcfoot--stack {
  position: absolute;
  left: 22px;
  right: 22px;
  bottom: 22px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.lcfoot--stack .lcchips,
.lcfoot--stack .lcbars {
  position: static;
}

/* --- Тёмная полоса с ценой ------------------------------------------------- */

.lcbanner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: clamp(11px, 0.86vw, 22px) clamp(16px, 1.25vw, 32px);
  background: var(--band);
  color: var(--on-photo);
}

.lcbanner--worked { padding: clamp(10px, 0.78vw, 20px) clamp(16px, 1.25vw, 32px); }

.lcbanner__price {
  font-family: var(--display);
  font-size: clamp(26px, 1.72vw, 44px);
  line-height: 1;
  white-space: nowrap;
}

.lcbanner__unit {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gold);
}

.lcbanner__pair {
  display: flex;
  align-items: baseline;
  gap: 16px;
}

.lcbanner__struck {
  font-family: var(--mono);
  font-size: 13px;
  letter-spacing: 0.06em;
  color: rgba(var(--on-photo-rgb), 0.55);
  text-decoration: line-through;
  text-decoration-color: var(--gold);
  white-space: nowrap;
}

.lcbanner__side {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}

.lcbanner__note {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(var(--on-photo-rgb), 0.6);
}

/* --- Тело ------------------------------------------------------------------- */

.lcbody {
  display: flex;
  flex-direction: column;
  gap: clamp(12px, 0.62vw, 16px);
  padding: clamp(17px, 1.33vw, 34px) clamp(16px, 1.25vw, 32px) clamp(15px, 1.17vw, 30px);
}

.lcbody--20 { gap: clamp(14px, 0.78vw, 20px); }
.lcbody--18 { gap: clamp(12px, 0.70vw, 18px); padding: clamp(16px, 1.25vw, 32px) clamp(16px, 1.25vw, 32px) clamp(15px, 1.17vw, 30px); }
.lcbody--banner { padding: clamp(15px, 1.17vw, 30px) clamp(16px, 1.25vw, 32px) clamp(15px, 1.17vw, 30px); }
.lcbody--outline { padding: clamp(16px, 1.25vw, 32px) clamp(15px, 1.17vw, 30px) clamp(14px, 1.09vw, 28px); }

.lchead {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.lchead__ref { color: var(--accent); }
.lchead__city { color: var(--faint); text-align: right; }

.lcaddress {
  display: block;
  font-family: var(--display);
  font-size: clamp(23px, 1.48vw, 38px);
  line-height: 1.08;
  letter-spacing: -0.018em;
}

.lcaddress--36 { font-size: clamp(22px, 1.41vw, 36px); }
.lcaddress--34 { font-size: clamp(20px, 1.33vw, 34px); }

.lcplace {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.lcplace__where {
  font-size: clamp(15px, 0.74vw, 19px);
  font-weight: 300;
  line-height: 1.5;
  color: var(--muted);
}

.lcprice {
  display: block;
  font-family: var(--display);
  font-size: clamp(28px, 1.80vw, 46px);
  line-height: 1;
  white-space: nowrap;
}

.lcprice--44 { font-size: clamp(26px, 1.72vw, 44px); }
.lcprice--42 { font-size: clamp(25px, 1.64vw, 42px); }

.lcpricerow {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
}

.lcpricecol {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.lcpricepair {
  display: flex;
  align-items: baseline;
  gap: 14px;
}

.lcunit {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--faint);
}

.lcstruck {
  font-family: var(--mono);
  font-size: 13px;
  letter-spacing: 0.06em;
  color: var(--faint);
  text-decoration: line-through;
  text-decoration-color: var(--accent);
  white-space: nowrap;
}

.lcstruck--12 { font-size: 12px; }

/* Чип изменения цены: красная подложка; «Managed let» — контур. */
.lcchange {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  flex: none;
  height: 36px;
  padding: 0 16px;
  border-radius: var(--r-pill);
  background: rgba(var(--accent-rgb), 0.1);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
  white-space: nowrap;
}

.lcchange--quiet {
  background: none;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
  color: var(--muted);
}

/* Два факта строками. */
.lcfacts {
  display: flex;
  flex-direction: column;
}

.lcfact {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  padding: 12px 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.14);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--faint);
}

.lcfact__value { color: var(--ink); text-align: right; }
.lcfact__value--red { color: var(--accent); }

/* Разделённая строка фактов. */
.lcdivided {
  display: flex;
  align-items: center;
  padding: 14px 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.14);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink);
}

.lcdivided__cell { flex: 1; text-align: center; white-space: nowrap; }
.lcdivided__cell:first-child { text-align: left; }
.lcdivided__cell:last-child { text-align: right; }
.lcdivided__cell--red { color: var(--accent); }

.lcdivided__rule {
  width: 1px;
  height: 14px;
  background: rgba(var(--ink-rgb), 0.2);
}

/* «Recorded on survey». */
.lcrecorded {
  display: flex;
  flex-direction: column;
  gap: 9px;
}

.lcrecorded--ruled {
  gap: 8px;
  padding-top: 18px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.14);
}

.lcrecorded__label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.lcrecorded__text {
  font-size: clamp(15px, 0.66vw, 17px);
  font-weight: 300;
  line-height: 1.5;
  color: var(--muted);
}

/* Советник и кнопка. */
.lcadvisor {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  padding-top: 18px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.14);
}

.lcadvisor--14 { gap: 14px; }

.lcperson {
  display: flex;
  align-items: center;
  gap: clamp(9px, 0.47vw, 12px);
  min-width: 0;
}

.lcperson__disc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: clamp(34px, 1.56vw, 40px);
  height: clamp(34px, 1.56vw, 40px);
  border-radius: var(--r-pill);
  background: rgba(var(--ink-rgb), 0.08);
  font-family: var(--display);
  font-size: 16px;
  color: var(--ink);
}

.lcperson__text {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}

.lcperson__name {
  font-size: 16px;
  font-weight: 400;
  color: var(--ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.lcperson__role {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
  white-space: nowrap;
}

.lcbook {
  display: inline-flex;
  align-items: center;
  gap: clamp(10px, 0.55vw, 14px);
  height: clamp(48px, 2.19vw, 56px);
  padding: 0 clamp(16px, 0.94vw, 24px);
  border-radius: var(--r-pill);
  background: var(--ink);
  color: var(--bg);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  white-space: nowrap;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease;
}

.lcbook:hover,
.lcbook:focus-visible {
  background: var(--accent);
  color: var(--on-photo);
}

.lcbook--wide {
  justify-content: center;
  gap: 12px;
  height: 60px;
  padding: 0 16px;
}

.lcarrow {
  font-family: var(--text);
  font-size: 18px;
  letter-spacing: 0;
  line-height: 1;
}

.lcdisc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  border-radius: var(--r-pill);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
  color: var(--ink);
  transition: background 0.2s ease;
}

.lcdisc:hover,
.lcdisc:focus-visible { background: rgba(var(--ink-rgb), 0.08); }

.lcfootacts {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  padding-top: 20px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.14);
}

/* Факты с иконками, два на два. */
.lcicons {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px 18px;
  padding-top: 20px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.14);
}

.lcicon {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.lcicon__disc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 42px;
  height: 42px;
  border-radius: var(--r-pill);
  background: rgba(var(--ink-rgb), 0.06);
  color: var(--muted);
}

.lcicon__text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.lcicon__value { font-size: clamp(15px, 0.74vw, 19px); font-weight: 400; color: var(--ink); white-space: nowrap; }

.lcicon__label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

/* Факты-пилюли; особенности — красные. */
.lcpills {
  display: flex;
  flex-wrap: wrap;
  gap: clamp(6px, 0.35vw, 9px);
  padding-top: 18px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.14);
}

.lcpill {
  display: inline-flex;
  align-items: center;
  height: clamp(34px, 1.64vw, 42px);
  padding: 0 clamp(12px, 0.70vw, 18px);
  border-radius: var(--r-pill);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
  white-space: nowrap;
}

.lcpill--feature {
  background: rgba(var(--accent-rgb), 0.1);
  box-shadow: none;
  color: var(--accent);
}

/* Save · Compare · Share. */
.lcacts3 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.lcact {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  height: 52px;
  border-radius: var(--r-pill);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
  color: var(--muted);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease;
}

.lcact:hover,
.lcact:focus-visible {
  background: var(--ink);
  color: var(--bg);
}

.lcviewing {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.lcviewing__value { color: var(--ink); text-align: right; }

/* Контур: цена на линейке. */
.lcpriceline {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding-top: 16px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.2);
}

.lcpriceline .lcunit { letter-spacing: 0.16em; text-align: right; }

/* --- Чертёжное семейство ---------------------------------------------------- */

.lcstick {
  position: absolute;
  width: 22px;
  height: 22px;
  border: 0 solid rgba(var(--ink-rgb), 0.4);
  pointer-events: none;
}

.lcstick--tl { left: 14px; top: 14px; border-left-width: 1px; border-top-width: 1px; }
.lcstick--tr { right: 14px; top: 14px; border-right-width: 1px; border-top-width: 1px; }
.lcstick--bl { left: 14px; bottom: 14px; border-left-width: 1px; border-bottom-width: 1px; }
.lcstick--br { right: 14px; bottom: 14px; border-right-width: 1px; border-bottom-width: 1px; }

.lcsheet {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 0 8px 14px;
  border-bottom: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.lcsheet--sealed { align-items: center; }

.lcsheet__ref { color: var(--accent); white-space: nowrap; }
.lcsheet__city { color: var(--faint); text-align: right; }

.lcseal {
  display: inline-flex;
  align-items: center;
  padding: 7px 14px;
  border-radius: 4px;
  box-shadow: inset 0 0 0 2px var(--accent);
  font-size: 12px;
  letter-spacing: 0.24em;
  color: var(--accent);
  white-space: nowrap;
}

/* Размерная линия над кадром. */
.lcdraw {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 18px 8px 0;
}

.lcdraw__well { margin: 14px 0 0; }

.lcdim {
  position: relative;
  display: block;
  height: 14px;
}

.lcdim__cap {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 1px;
  background: var(--ink);
}

.lcdim__cap--l { left: 0; }
.lcdim__cap--r { right: 0; }

.lcdim__hair {
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.4);
}

.lcdim__caption {
  display: block;
  text-align: center;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.lcwell {
  position: relative;
  display: block;
  background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.1) 0 2px, transparent 2px 14px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
}

.lcwell--340 { height: clamp(200px, 13.28vw, 340px); }
.lcwell--330 { height: clamp(200px, 12.89vw, 330px); }
.lcwell--300 { height: clamp(190px, 11.72vw, 300px); }

.lcwell .lcphoto__img { z-index: 0; }

.lcguide {
  position: absolute;
  left: 0;
  right: 0;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.12);
}

.lcguide--1 { top: 33.33%; }
.lcguide--2 { top: 66.66%; }

.lcshot {
  position: absolute;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
}

.lcshot--bl { left: 14px; bottom: 12px; }
.lcshot--br { right: 14px; bottom: 12px; }
.lcshot--tr { right: 14px; top: 12px; }

.lcwtick {
  position: absolute;
  width: 20px;
  height: 20px;
  border: 0 solid rgba(var(--ink-rgb), 0.45);
}

.lcwtick--tl { left: 12px; top: 12px; border-left-width: 1px; border-top-width: 1px; }
.lcwtick--br { right: 12px; bottom: 12px; border-right-width: 1px; border-bottom-width: 1px; }

/* Врезка «Detail A» — красная штриховка. */
.lcdetail {
  position: absolute;
  left: 14px;
  bottom: 38px;
  width: 110px;
  height: 78px;
  background: repeating-linear-gradient(45deg, rgba(var(--accent-rgb), 0.16) 0 2px, transparent 2px 12px);
  box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.45);
}

.lcdetail--small {
  bottom: 36px;
  width: 100px;
  height: 70px;
}

/* Подпись врезки переносится на две строки, как в эталоне, и стоит под ней. */
.lcdetail__label {
  position: absolute;
  left: 0;
  top: 100%;
  width: 100%;
  margin-top: 4px;
  font-family: var(--mono);
  font-size: 12px;
  line-height: 1.25;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent);
}

/* Вертикальный размер слева от кадра. */
.lcdraw--vertical {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 14px;
  padding: 0;
  margin-top: 18px;
}

.lcvert {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.lcvert__cap {
  position: absolute;
  left: 50%;
  width: 22px;
  height: 1px;
  margin-left: -11px;
  background: var(--ink);
}

.lcvert__cap--t { top: 0; }
.lcvert__cap--b { bottom: 0; }

.lcvert__hair {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 1px;
  background: rgba(var(--ink-rgb), 0.4);
}

.lcvert__label {
  position: relative;
  padding: 6px 0;
  background: var(--bg);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  white-space: nowrap;
}

.lcdraw__col {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}

.lcscale {
  display: flex;
  justify-content: space-between;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  color: var(--faint);
}

.lcscale__end { color: var(--ink); }

/* Адрес и цена на листе. */
.lcsheetbody {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 22px 8px 0;
}

.lcsheetbody--20 { padding: 20px 8px 0; }

.lcpriceline2 {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
}

.lcpriceline2 .lcpricepair { gap: 12px; }

/* Плита с графиком цены. */
.lcplate {
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(150px, 7.42vw, 190px);
  gap: clamp(16px, 0.86vw, 22px);
  align-items: end;
  padding: 20px 8px 0;
}

.lcplate__left {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
}

.lcplate .lcpricepair { gap: 12px; }

.lcline {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.lcspark {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.lcspark__label,
.lcspark__note {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
  white-space: nowrap;
}

.lcspark__note { color: var(--accent); }

.lcspark__bars {
  display: flex;
  align-items: flex-end;
  gap: 4px;
  height: 56px;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.24);
}

.lcspark__bar {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  height: 100%;
}

.lcspark__fill {
  display: block;
  border-radius: 2px 2px 0 0;
  background: rgba(var(--ink-rgb), 0.24);
}

.lcspark__fill--red { background: var(--accent); }

/* Полоса неисправностей. */
.lcfaults {
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
}

.lcfaults--ruled { padding: 20px 8px 0; }

.lcfaults__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.lcfaults__total { color: var(--accent); text-align: right; }

.lcbar {
  display: flex;
  height: 12px;
  border-radius: var(--r-pill);
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
}

.lcbar__seg { display: block; }
.lcbar__seg--1 { background: var(--accent); }
.lcbar__seg--2 { background: rgba(var(--accent-rgb), 0.45); box-shadow: inset 1px 0 0 rgba(var(--bg-rgb), 0.7); }
.lcbar__seg--3 { background: rgba(var(--ink-rgb), 0.16); box-shadow: inset 1px 0 0 rgba(var(--bg-rgb), 0.7); }

.lcfaults__keys {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.lcfaults__key--lead { color: var(--accent); }

/* Неисправности и энергия рядом. */
.lcsurvey {
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(160px, 7.81vw, 200px);
  gap: clamp(16px, 0.86vw, 22px);
  padding: 20px 8px 0;
}

.lcsurvey .lcfaults { gap: 9px; }

.lcenergy {
  display: flex;
  flex-direction: column;
  gap: 9px;
  min-width: 0;
}

.lcenergy__label,
.lcenergy__note {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
  white-space: nowrap;
}

.lcenergy__note { letter-spacing: 0.16em; }

.lcenergy__scale {
  display: flex;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2);
}

.lcenergy__step {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 26px;
  background: rgba(var(--ink-rgb), 0.07);
  color: var(--faint);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.1em;
}

.lcenergy__step + .lcenergy__step { box-shadow: inset 1px 0 0 rgba(var(--bg-rgb), 0.8); }

.lcenergy__step--on {
  background: var(--accent);
  color: var(--on-photo);
}

/* Штамп листа. */
.lcblock {
  display: grid;
  margin: 20px 0 0;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.lcblock--22 { margin-top: 22px; }
.lcblock--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.lcblock--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.lcblock--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

.lcblock--foot {
  margin-top: 14px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2);
}

.lcblock__cell {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 14px;
  min-width: 0;
}

.lcblock__cell + .lcblock__cell { border-left: 1px solid rgba(var(--ink-rgb), 0.16); }

.lcblock--5 .lcblock__cell { padding: 13px; }

.lcblock--foot .lcblock__cell {
  gap: 3px;
  padding: 11px 13px;
}

.lcblock--foot .lcblock__cell + .lcblock__cell { border-left-color: rgba(var(--ink-rgb), 0.14); }

.lcblock__key {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.lcblock__value {
  font-family: var(--mono);
  font-size: 13px;
  color: var(--ink);
  white-space: nowrap;
}

.lcblock--5 .lcblock__value { font-size: 12px; letter-spacing: 0.06em; }
.lcblock--foot .lcblock__value { font-size: 12px; }
.lcblock__value--red { color: var(--accent); }

/* Подвал листа. */
.lcsfoot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 18px 8px 0;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.lcsfoot--three { padding-top: 14px; }
.lcsfoot__red { color: var(--accent); }

.lcopen {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--accent);
  text-decoration: none;
  white-space: nowrap;
}

.lcopen .lcarrow { font-size: 15px; }

.lcopen:hover,
.lcopen:focus-visible { color: var(--ink); }

/* Начерченные кнопки: прямоугольник с уголками, радиус 6, не пилюля. */
.lcdrawn {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  margin: 20px 0 0;
  padding: 18px 20px;
  border-radius: 6px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
  color: var(--ink);
  text-decoration: none;
  transition: background 0.22s ease, color 0.22s ease, box-shadow 0.22s ease;
}

.lcdrawn:hover,
.lcdrawn:focus-visible {
  background: var(--ink);
  color: var(--bg);
  box-shadow: inset 0 0 0 1px var(--ink);
}

.lcdrawn__text {
  position: relative;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
}

.lcdrawn .lcarrow { position: relative; font-size: 20px; }

.lcdtick {
  position: absolute;
  width: 14px;
  height: 14px;
  border: 0 solid rgba(var(--ink-rgb), 0.34);
  pointer-events: none;
}

.lcdtick--tl { left: 8px; top: 8px; border-left-width: 1px; border-top-width: 1px; }
.lcdtick--tr { right: 8px; top: 8px; border-right-width: 1px; border-top-width: 1px; }
.lcdtick--bl { left: 8px; bottom: 8px; border-left-width: 1px; border-bottom-width: 1px; }
.lcdtick--br { right: 8px; bottom: 8px; border-right-width: 1px; border-bottom-width: 1px; }

.lcdrawn:hover .lcdtick { border-color: rgba(var(--bg-rgb), 0.4); }

.lcdrawns {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin: 20px 0 0;
}

.lcdrawns .lcdrawn { margin: 0; }

.lcdrawn--half {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px 16px;
}

.lcdrawn--half .lcdrawn__text { letter-spacing: 0.22em; }

.lcdrawn--half:hover,
.lcdrawn--half:focus-visible {
  background: rgba(var(--ink-rgb), 0.08);
  color: var(--ink);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.5);
}

.lcdrawn--half:hover .lcdtick { border-color: rgba(var(--ink-rgb), 0.34); }

.lcdrawn--ink {
  gap: 14px;
  background: var(--ink);
  color: var(--bg);
  box-shadow: none;
}

.lcdrawn--ink .lcdrawn__text { letter-spacing: 0.22em; }
.lcdrawn--ink .lcarrow { font-size: 18px; }
.lcdrawn--ink .lcdtick { border-color: rgba(var(--on-photo-rgb), 0.4); }

.lcdrawn--ink:hover,
.lcdrawn--ink:focus-visible {
  background: var(--accent);
  color: var(--on-photo);
  box-shadow: none;
}

/* Когда в колодце появился снимок, чертёжная графика поверх него переходит на
   кремовую: чернильная линия на фотографии не читается. Значки-пилюли менять не
   нужно — у них своя подложка. */
.lcphoto:has(.lcphoto__img) .lctick { border-color: rgba(var(--on-photo-rgb), 0.55); }

.lcwell:has(.lcphoto__img) .lcwtick { border-color: rgba(var(--on-photo-rgb), 0.6); }
.lcwell:has(.lcphoto__img) .lcguide { background: rgba(var(--on-photo-rgb), 0.24); }
.lcwell:has(.lcphoto__img) .lcshot { color: var(--on-photo); }

.lcwell:has(.lcphoto__img) .lcdetail {
  background:
    repeating-linear-gradient(45deg, rgba(var(--accent-rgb), 0.5) 0 2px, transparent 2px 12px),
    rgba(var(--scrim-rgb), 0.34);
  box-shadow: inset 0 0 0 1px rgba(var(--on-photo-rgb), 0.9);
}

.lcwell:has(.lcphoto__img) .lcdetail__label {
  width: auto;
  padding: 3px 7px;
  background: rgba(var(--scrim-rgb), 0.72);
  color: var(--on-photo);
  white-space: nowrap;
}

/* Легенда значков под рядом 07. */
.lclegend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: clamp(17px, 1.33vw, 34px);
  padding-top: 26px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.18);
}

.lclegend__label {
  padding-right: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

/* Тёмная тема: значок статуса на чернильной подложке становится кремовым —
   токены делают это сами; полоса с ценой темнеет отдельным токеном --band. */
[data-theme="dark"] .lcdtick { border-color: rgba(var(--ink-rgb), 0.34); }
[data-theme="dark"] .lcdrawn--ink .lcdtick { border-color: rgba(var(--scrim-rgb), 0.5); }
[data-theme="dark"] .lcdrawn:hover .lcdtick { border-color: rgba(var(--scrim-rgb), 0.5); }
[data-theme="dark"] .lcdrawn--half:hover .lcdtick { border-color: rgba(var(--ink-rgb), 0.34); }

/* ==========================================================================
   51. Standard card type — адаптив
   ========================================================================== */

/* Моно-подписи не уменьшаются ниже 12px, поэтому колонки уходят раньше, чем
   просто «не помещается»: карточка 4-up перестаёт держать строку «AV-1204 ·
   PARIS VII · RUE DE VERNEUIL» уже около 1900px. */
@media (max-width: 1900px) {
  .lccards--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1600px) {
  .lccards--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .lcplate { grid-template-columns: minmax(0, 1fr); }
  .lcsurvey { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 1240px) {

  /* Чертёжное семейство первым отдаёт вертикальный размер. */
  .lcdraw--vertical { grid-template-columns: minmax(0, 1fr); }
  .lcvert { display: none; }
}

@media (max-width: 980px) {
  .lccards--4,
  .lccards--3 { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 860px) {

  .lcrow {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  /* Шкала под чертежом на узком экране только шумит. */
  .lcscale { display: none; }
}

@media (max-width: 600px) {
  .lcicons { grid-template-columns: minmax(0, 1fr); }

  .lcbars { display: none; }
  .lcfoot--stack .lcbars { display: flex; }
  .lcfoot--stack .lcbars__bar { display: none; }

  .lcdetail { display: none; }

  .lcbadge--shift { margin-left: 0; }
  .lcphoto .lctick--tl { display: none; }

  /* Размерная линия на 320px не помещается: остаётся одна подпись. */
  .lcdim { display: none; }
  .lcdim__caption { white-space: normal; }

  .lcblock { grid-template-columns: minmax(0, 1fr); }

  .lcblock__cell + .lcblock__cell {
    border-left: 0;
    border-top: 1px solid rgba(var(--ink-rgb), 0.16);
  }

  .lcdrawns { grid-template-columns: minmax(0, 1fr); }

  .lcadvisor,
  .lcfootacts { grid-template-columns: minmax(0, 1fr); }

  .lcbook { justify-content: center; }

  .lcacts3 { grid-template-columns: minmax(0, 1fr); }

  .lcpricerow {
    flex-wrap: wrap;
    align-items: flex-start;
  }

  .lcdivided { flex-wrap: wrap; gap: 8px 0; }
  .lcdivided__rule { display: none; }
  .lcdivided__cell { flex: 1 0 50%; text-align: left; }
  .lcdivided__cell:last-child { text-align: left; }

  .lcsfoot { flex-wrap: wrap; }
  .lcbanner--worked { flex-wrap: wrap; }
  .lcbanner__side { align-items: flex-start; }
  .lcbanner__unit,
  .lcbanner__note { white-space: normal; }
  .lcsheet { flex-wrap: wrap; row-gap: 10px; }
  .lcsheet__city { text-align: left; }
  .lcchips { flex-wrap: wrap; }
  .lcchips .lcchip { height: 34px; padding: 0 12px; letter-spacing: 0.12em; }
}

/* ==========================================================================
   52. Overlay card type — текст на снимке
   ========================================================================== */

/* Карточка — это сам снимок: всё лежит поверх него, поэтому вся начинка
   абсолютная, а высоту задаёт ряд. */
.ovcard {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  border-radius: 14px;
  overflow: hidden;
  background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.12) 0 2px, transparent 2px 14px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  transition: transform 0.24s ease;
}

.ovcard:hover { transform: translateY(-8px); }

.ovcard--660 { min-height: clamp(409px, 25.78vw, 660px); }
.ovcard--700 { min-height: clamp(434px, 27.34vw, 700px); }
.ovcard--760 { min-height: clamp(471px, 29.69vw, 760px); }
.ovcard--800 { min-height: clamp(496px, 31.25vw, 800px); }
.ovcard--820 { min-height: clamp(508px, 32.03vw, 820px); }
.ovcard--900 { min-height: clamp(558px, 35.16vw, 900px); }
.ovcard--1010 { min-height: clamp(626px, 39.45vw, 1010px); }

/* Распорка чертёжной карточки: держит верхнюю обвязку и не даёт подвалу
   подняться выше своей зоны. */
.ovmid {
  position: relative;
  flex: 1;
}

.ovmid--370 { min-height: clamp(222px, 14.45vw, 370px); }
.ovmid--430 { min-height: clamp(258px, 16.80vw, 430px); }
.ovmid--510 { min-height: clamp(306px, 19.92vw, 510px); }
.ovmid--620 { min-height: clamp(372px, 24.22vw, 620px); }

.ovphoto {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Подпись размера кадра — в верхней трети: единственное место, свободное во
   всех десяти рядах. */
.ovsize {
  position: absolute;
  left: 50%;
  top: clamp(74px, 4.61vw, 118px);
  transform: translateX(-50%);
  padding: 9px 16px;
  border-radius: 6px;
  background: rgba(var(--bg-rgb), 0.86);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
  font-family: var(--mono);
  font-size: clamp(12px, 0.59vw, 15px);
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
  white-space: nowrap;
  pointer-events: none;
}

/* На чертёжном листе верх занят печатью и графиком цены — подпись размера
   опускается под них. */
.ovcard--sheet .ovsize { top: clamp(140px, 8.20vw, 210px); }

/* --- Затемнение ------------------------------------------------------------ */

.ovscrim {
  position: absolute;
  left: 0;
  right: 0;
  pointer-events: none;
}

/* Хендофф держит затемнение в пределах .5—.96. Берём верх диапазона: у
   владельца снимки со светлым низом, и на слабом градиенте текст пропадает. */
.ovscrim--70 {
  bottom: 0;
  height: 70%;
  background: linear-gradient(to top, rgba(var(--scrim-rgb), 0.96) 0%, rgba(var(--scrim-rgb), 0.8) 45%, rgba(var(--scrim-rgb), 0) 100%);
}

.ovscrim--74 {
  bottom: 0;
  height: 74%;
  background: linear-gradient(to top, rgba(var(--scrim-rgb), 0.96) 0%, rgba(var(--scrim-rgb), 0.82) 42%, rgba(var(--scrim-rgb), 0) 100%);
}

.ovscrim--top {
  top: 0;
  height: 34%;
  background: linear-gradient(to bottom, rgba(var(--scrim-rgb), 0.6) 0%, rgba(var(--scrim-rgb), 0) 100%);
}

/* Чертёжная семья затемняет кадр целиком в три остановки. */
.ovscrim--sheet {
  top: 0;
  bottom: 0;
  background: linear-gradient(to bottom, rgba(var(--scrim-rgb), 0.55) 0%, rgba(var(--scrim-rgb), 0.12) 32%,
              rgba(var(--scrim-rgb), 0.12) 52%, rgba(var(--scrim-rgb), 0.9) 100%);
}

/* --- Рамка и уголки чертёжной семьи --------------------------------------- */

.ovframe {
  position: absolute;
  inset: 16px;
  border-radius: 8px;
  box-shadow: inset 0 0 0 1px rgba(var(--on-photo-rgb), 0.28);
  pointer-events: none;
}

.ovtick,
.ovcorner {
  position: absolute;
  width: 20px;
  height: 20px;
  border: 0 solid rgba(var(--on-photo-rgb), 0.6);
  pointer-events: none;
}

.ovtick--tl { left: 26px; top: 26px; border-left-width: 1px; border-top-width: 1px; }
.ovtick--tr { right: 26px; top: 26px; border-right-width: 1px; border-top-width: 1px; }
.ovtick--bl { left: 26px; bottom: 26px; border-left-width: 1px; border-bottom-width: 1px; }
.ovtick--br { right: 26px; bottom: 26px; border-right-width: 1px; border-bottom-width: 1px; }

/* Уголки рядов 02–03 стоят на самом снимке, поэтому они чернильные. */
.ovcorner {
  width: 22px;
  height: 22px;
  border-color: rgba(var(--ink-rgb), 0.4);
}

.ovcorner--tl { left: 22px; top: 22px; border-left-width: 1px; border-top-width: 1px; }
.ovcorner--tr { right: 22px; top: 22px; border-right-width: 1px; border-top-width: 1px; }

.ovguide {
  position: absolute;
  background: rgba(var(--on-photo-rgb), 0.1);
  pointer-events: none;
}

.ovguide--h { left: 16px; right: 16px; top: 33.33%; height: 1px; }
.ovguide--v1 { top: 16px; bottom: 16px; left: 33.33%; width: 1px; }
.ovguide--v2 { top: 16px; bottom: 16px; left: 66.66%; width: 1px; }

/* --- Значки на снимке ------------------------------------------------------ */

.ovchip {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  height: clamp(34px, 1.56vw, 40px);
  padding: 0 clamp(12px, 0.70vw, 18px);
  border-radius: var(--r-pill);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  white-space: nowrap;
}

.ovchip--icon { letter-spacing: 0.16em; padding: 0 clamp(12px, 0.62vw, 16px); }

.ovchip--cream {
  background: rgba(var(--bg-rgb), 0.92);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  color: var(--ink);
}

.ovchip--grade { color: var(--accent); }

.ovchip--red {
  background: var(--accent);
  color: var(--on-photo);
}

.ovchip--dark,
.ovchip--scrim {
  background: rgba(var(--scrim-rgb), 0.6);
  box-shadow: inset 0 0 0 1px rgba(var(--on-photo-rgb), 0.28);
  color: var(--on-photo);
}

.ovchip--scrim {
  background: rgba(var(--scrim-rgb), 0.78);
  box-shadow: none;
}

.ovchip--tl {
  position: absolute;
  left: 26px;
  top: 26px;
  height: clamp(34px, 1.64vw, 42px);
  padding: 0 clamp(14px, 0.78vw, 20px);
  letter-spacing: 0.18em;
}

.ovbadge { position: absolute; }
.ovbadge--tl { left: 26px; top: 26px; }

/* Ссылка стоит в незатемнённом верхнем углу: на светлом кадре кремовая
   надпись пропадала, поэтому под ней — та же тёмная подложка, что у пилюль. */
.ovref {
  position: absolute;
  right: 26px;
  top: 26px;
  padding: 6px 12px;
  border-radius: var(--r-pill);
  background: rgba(var(--scrim-rgb), 0.55);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(var(--on-photo-rgb), 0.9);
}

.ovtop {
  position: absolute;
  left: 26px;
  right: 26px;
  top: 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.ovtop__right,
.ovtopright {
  display: flex;
  align-items: center;
  gap: 10px;
}

.ovtopright {
  position: absolute;
  right: 26px;
  top: 26px;
}

.ovchips {
  position: absolute;
  left: 26px;
  right: 26px;
  top: clamp(66px, 3.20vw, 82px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.ovround {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(38px, 1.72vw, 44px);
  height: clamp(38px, 1.72vw, 44px);
  border-radius: var(--r-pill);
  background: rgba(var(--bg-rgb), 0.92);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  color: var(--ink);
  font-size: 17px;
  line-height: 1;
  transition: background 0.2s ease, color 0.2s ease;
}

.ovround--dark {
  background: rgba(var(--scrim-rgb), 0.6);
  box-shadow: inset 0 0 0 1px rgba(var(--on-photo-rgb), 0.28);
  color: var(--on-photo);
}

.ovcard:hover .ovround {
  background: var(--accent);
  color: var(--on-photo);
}

.ovglyph { flex: none; }

/* --- Подвал градиентной семьи --------------------------------------------- */

/* Подвалы стоят в потоке, прижатые к низу карточки: так карточка растёт под
   содержимое, а не позволяет ему налезть на обвязку сверху. */
.ovfoot {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: clamp(12px, 0.62vw, 16px);
  padding: clamp(24px, 1.33vw, 34px);
  color: var(--on-photo);
}

.ovkicker {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold);
}

.ovaddress {
  font-family: var(--display);
  font-size: clamp(26px, 1.72vw, 44px);
  line-height: 1.06;
  letter-spacing: -0.02em;
}

.ovaddress--42 { font-size: clamp(25px, 1.64vw, 42px); }
.ovaddress--40 { font-size: clamp(24px, 1.56vw, 40px); }

.ovprice {
  font-family: var(--display);
  font-size: clamp(30px, 1.95vw, 50px);
  line-height: 1;
  white-space: nowrap;
}

.ovprice--44 { font-size: clamp(26px, 1.72vw, 44px); }
.ovprice--gold { font-size: clamp(26px, 1.72vw, 44px); color: var(--gold); }

.ovpricerow {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  padding-top: clamp(12px, 0.62vw, 16px);
  border-top: 1px solid rgba(var(--on-photo-rgb), 0.28);
}

.ovunit {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(var(--on-photo-rgb), 0.8);
  white-space: nowrap;
}

.ovunit--sm { letter-spacing: 0.14em; color: rgba(var(--on-photo-rgb), 0.65); }

.ovhead {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.ovhead__ref { color: var(--gold); white-space: nowrap; }
.ovhead__note { color: rgba(var(--on-photo-rgb), 0.7); text-align: right; }

.ovhead__note--pin {
  display: flex;
  align-items: center;
  gap: 8px;
  color: rgba(var(--on-photo-rgb), 0.75);
}

.ovpricebig {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
}

.ovpricebig__col,
.ovplatecol {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

.ovplatecol { align-items: flex-end; gap: 5px; }

.ovpriceline {
  display: flex;
  align-items: baseline;
  gap: 12px;
}

.ovstruck {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: rgba(var(--on-photo-rgb), 0.6);
  text-decoration: line-through;
  text-decoration-color: var(--gold);
  white-space: nowrap;
}

.ovstruck--sm { color: rgba(var(--on-photo-rgb), 0.5); }

/* На снимке красный не читается — доля скидки идёт золотом. */
.ovpct {
  display: inline-flex;
  align-items: center;
  flex: none;
  height: clamp(30px, 1.41vw, 36px);
  padding: 0 16px;
  border-radius: var(--r-pill);
  background: rgba(var(--c-gold-rgb), 0.22);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold);
  white-space: nowrap;
}

.ovpct--sm { height: 26px; padding: 0 12px; }

.ovdivided {
  display: flex;
  align-items: center;
  padding-top: clamp(12px, 0.62vw, 16px);
  border-top: 1px solid rgba(var(--on-photo-rgb), 0.28);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.ovdivided__cell { flex: 1; text-align: center; white-space: nowrap; }
.ovdivided__cell:first-child { text-align: left; }
.ovdivided__cell:last-child { text-align: right; color: var(--gold); }

.ovdivided__rule {
  width: 1px;
  height: 14px;
  background: rgba(var(--on-photo-rgb), 0.3);
}

.ovdivided--plate {
  border-top-color: rgba(var(--on-photo-rgb), 0.24);
  color: rgba(var(--on-photo-rgb), 0.85);
  font-size: 12px;
}

.ovdivided--plate .ovdivided__cell:last-child { color: inherit; }
.ovdivided--plate .ovdivided__rule { height: 13px; background: rgba(var(--on-photo-rgb), 0.28); }

.ovfacts {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-top: clamp(12px, 0.62vw, 16px);
  border-top: 1px solid rgba(var(--on-photo-rgb), 0.28);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.ovfact {
  display: flex;
  align-items: center;
  gap: 9px;
  white-space: nowrap;
}

/* Полоса кадров. */
.ovbars {
  display: flex;
  align-items: center;
  gap: 6px;
  padding-top: 4px;
}

.ovbars--above { padding: 0 12px; }

.ovbars__bar {
  flex: 1;
  height: 4px;
  border-radius: var(--r-pill);
  background: rgba(var(--on-photo-rgb), 0.4);
}

.ovbars__bar:first-child { background: var(--on-photo); }

.ovbars__count {
  margin-left: 10px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(var(--on-photo-rgb), 0.75);
  white-space: nowrap;
}

/* Золотая кнопка — на снимке она вместо красной. */
.ovgold {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  height: clamp(52px, 2.42vw, 62px);
  padding: 0 clamp(18px, 1.02vw, 26px);
  border-radius: var(--r-pill);
  background: var(--gold);
  color: rgb(var(--scrim-rgb));
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.2s ease;
}

.ovgold--sm {
  flex: none;
  gap: 12px;
  height: clamp(44px, 2.03vw, 52px);
  padding: 0 clamp(16px, 0.86vw, 22px);
  letter-spacing: 0.18em;
}

.ovgold:hover,
.ovgold:focus-visible {
  background: var(--on-photo);
  color: rgb(var(--scrim-rgb));
}

.ovarrow {
  font-family: var(--text);
  font-size: 20px;
  letter-spacing: 0;
  line-height: 1;
}

.ovgold--sm .ovarrow { font-size: 17px; }

.ovoutline {
  display: flex;
  align-items: center;
  justify-content: center;
  height: clamp(50px, 2.27vw, 58px);
  border-radius: var(--r-pill);
  box-shadow: inset 0 0 0 1px rgba(var(--on-photo-rgb), 0.42);
  color: var(--on-photo);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background 0.2s ease;
}

.ovoutline:hover,
.ovoutline:focus-visible { background: rgba(var(--on-photo-rgb), 0.14); }

.ovsheetfoot .ovpair { margin-top: 2px; }

.ovpair {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

/* --- Вставная плашка (ряды 04–06) ----------------------------------------- */

/* Плашка и то, что стоит над ней, живут в одной колонке, прижатой к низу:
   высота плашки задаётся содержимым, и полоса кадров не может уехать под неё. */
.ovstack {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.ovplate,
.ovstack {
  position: relative;
  margin: 22px;
}

.ovstack .ovplate { margin: 0; }

.ovplate {
  display: flex;
  flex-direction: column;
  gap: clamp(13px, 0.70vw, 18px);
  padding: clamp(20px, 1.17vw, 30px) clamp(18px, 1.09vw, 28px);
  border-radius: 12px;
  background: rgba(var(--scrim-rgb), 0.82);
  box-shadow: inset 0 0 0 1px rgba(var(--on-photo-rgb), 0.22);
  color: var(--on-photo);
}

.ovptick {
  position: absolute;
  width: 18px;
  height: 18px;
  border: 0 solid rgba(var(--on-photo-rgb), 0.4);
  pointer-events: none;
}

.ovptick--tl { left: 12px; top: 12px; border-left-width: 1px; border-top-width: 1px; }
.ovptick--br { right: 12px; bottom: 12px; border-right-width: 1px; border-bottom-width: 1px; }

.ovplaterow {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
}

.ovplatemeta {
  display: flex;
  align-items: center;
  gap: 10px;
}

/* --- Неисправности и энергия ---------------------------------------------- */

.ovfaults {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding-top: clamp(10px, 0.51vw, 13px);
  border-top: 1px solid rgba(var(--on-photo-rgb), 0.24);
}

.ovfaults__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(var(--on-photo-rgb), 0.6);
}

.ovfaults__total { color: var(--gold); text-align: right; }

.ovbar {
  display: flex;
  height: 9px;
  border-radius: var(--r-pill);
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--on-photo-rgb), 0.28);
}

.ovbar__seg { display: block; }
.ovbar__seg--1 { background: var(--gold); }
.ovbar__seg--2 { background: rgba(var(--c-gold-rgb), 0.5); box-shadow: inset 1px 0 0 rgba(var(--scrim-rgb), 0.6); }
.ovbar__seg--3 { background: rgba(var(--on-photo-rgb), 0.24); box-shadow: inset 1px 0 0 rgba(var(--scrim-rgb), 0.6); }

.ovfaults__keys {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(var(--on-photo-rgb), 0.55);
}

.ovfaults__key { white-space: nowrap; }
.ovfaults__key--lead { color: var(--gold); }

.ovenergy {
  display: flex;
  align-items: center;
  gap: 12px;
}

.ovenergy__label,
.ovenergy__note {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(var(--on-photo-rgb), 0.55);
  white-space: nowrap;
}

.ovenergy__note { letter-spacing: 0.16em; }

.ovenergy__scale {
  display: flex;
  flex: 1;
  border-radius: 3px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--on-photo-rgb), 0.24);
}

.ovenergy__step {
  flex: 1;
  height: 18px;
  background: rgba(var(--on-photo-rgb), 0.08);
}

.ovenergy__step + .ovenergy__step { box-shadow: inset 1px 0 0 rgba(var(--scrim-rgb), 0.5); }
.ovenergy__step--on { background: var(--gold); }

/* --- Советник -------------------------------------------------------------- */

.ovperson {
  display: flex;
  align-items: center;
  gap: 14px;
  padding-top: clamp(10px, 0.51vw, 13px);
  border-top: 1px solid rgba(var(--on-photo-rgb), 0.24);
}

.ovperson--line { justify-content: flex-start; }

.ovperson__disc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 38px;
  height: 38px;
  border-radius: var(--r-pill);
  background: rgba(var(--on-photo-rgb), 0.14);
  font-family: var(--display);
  font-size: 15px;
  color: var(--on-photo);
}

.ovperson__text {
  display: flex;
  flex-direction: column;
  gap: 2px;
  flex: 1;
  min-width: 0;
}

.ovperson__name {
  font-size: 15px;
  color: var(--on-photo);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ovperson__note {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(var(--on-photo-rgb), 0.6);
  white-space: nowrap;
}

/* --- Чертёжная семья (ряды 07–10) ----------------------------------------- */

.ovdim {
  position: absolute;
  left: 44px;
  right: 44px;
  top: 44px;
  display: flex;
  flex-direction: column;
  gap: 7px;
  color: var(--on-photo);
}

.ovdim__line {
  position: relative;
  display: block;
  height: 12px;
}

.ovdim__cap {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 1px;
  background: rgba(var(--on-photo-rgb), 0.75);
}

.ovdim__cap--l { left: 0; }
.ovdim__cap--r { right: 0; }

.ovdim__hair {
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 1px;
  background: rgba(var(--on-photo-rgb), 0.4);
}

.ovdim__caption {
  text-align: center;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(var(--on-photo-rgb), 0.8);
}

.ovscale {
  display: flex;
  justify-content: space-between;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  color: rgba(var(--on-photo-rgb), 0.5);
}

.ovscale__end { color: var(--gold); }

.ovrail {
  position: absolute;
  left: 44px;
  top: clamp(110px, 5.86vw, 150px);
  display: flex;
  align-items: flex-start;
}

.ovrail__hair {
  position: absolute;
  left: 0;
  top: 0;
  height: clamp(130px, 8.59vw, 220px);
  width: 1px;
  background: rgba(var(--on-photo-rgb), 0.22);
}

.ovrail__label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(var(--on-photo-rgb), 0.65);
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  white-space: nowrap;
}

/* Вертикальный размер тянется от верхней трети до подвала — высоту задают обе
   привязки, как в эталоне, иначе на высокой карточке он попадает на подвал. */
.ovvert {
  position: absolute;
  right: 44px;
  top: clamp(190px, 10.55vw, 270px);
  bottom: clamp(300px, 15.23vw, 390px);
  display: flex;
  align-items: center;
  justify-content: center;
}

.ovvert__cap {
  position: absolute;
  left: 50%;
  width: 18px;
  height: 1px;
  margin-left: -9px;
  background: rgba(var(--on-photo-rgb), 0.7);
}

.ovvert__cap--t { top: 0; }
.ovvert__cap--b { bottom: 0; }

.ovvert__hair {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 1px;
  background: rgba(var(--on-photo-rgb), 0.4);
}

.ovvert__label {
  position: relative;
  padding: 6px 1px;
  background: rgba(var(--scrim-rgb), 0.55);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(var(--on-photo-rgb), 0.75);
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  white-space: nowrap;
}

.ovdetail {
  position: absolute;
  right: 44px;
  top: clamp(110px, 5.86vw, 150px);
  width: clamp(84px, 4.69vw, 120px);
  height: clamp(60px, 3.28vw, 84px);
  background: repeating-linear-gradient(45deg, rgba(var(--accent-rgb), 0.3) 0 2px, transparent 2px 12px);
  box-shadow: inset 0 0 0 1px rgba(var(--c-gold-rgb), 0.7);
}

.ovdtick {
  position: absolute;
  width: 14px;
  height: 14px;
  border: 0 solid rgba(var(--c-gold-rgb), 0.8);
}

.ovdtick--tl { left: -14px; top: -14px; border-left-width: 1px; border-top-width: 1px; }
.ovdtick--br { right: -14px; bottom: -14px; border-right-width: 1px; border-bottom-width: 1px; }

.ovdetail__label {
  position: absolute;
  left: 0;
  top: 100%;
  margin-top: 6px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold);
  white-space: nowrap;
}

/* Печать: наклонена, как штамп на листе. */
.ovseal {
  position: absolute;
  left: 26px;
  top: clamp(58px, 2.73vw, 70px);
  display: inline-flex;
  align-items: center;
  padding: 8px 16px;
  border-radius: 4px;
  box-shadow: inset 0 0 0 2px var(--gold);
  background: rgba(var(--scrim-rgb), 0.55);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.26em;
  text-transform: uppercase;
  color: var(--gold);
  transform: rotate(-6deg);
}

.ovspark {
  position: absolute;
  left: 26px;
  top: clamp(92px, 4.38vw, 112px);
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 12px 14px;
  border-radius: 6px;
  background: rgba(var(--scrim-rgb), 0.62);
  box-shadow: inset 0 0 0 1px rgba(var(--on-photo-rgb), 0.22);
}

.ovspark__label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(var(--on-photo-rgb), 0.6);
  white-space: nowrap;
}

.ovspark__bars {
  display: flex;
  align-items: flex-end;
  gap: 3px;
  height: 34px;
}

.ovspark__bar {
  display: block;
  width: 9px;
  border-radius: 2px 2px 0 0;
  background: rgba(var(--on-photo-rgb), 0.3);
}

.ovspark__bar--hot { background: var(--gold); }

/* Стрелка севера и линия сечения стоят строкой над планом — не абсолютно,
   иначе при более крупном моно подвал наезжает на них. */
.ovnorth {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  color: rgba(var(--on-photo-rgb), 0.8);
}

.ovnorth__n {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
}

.ovsection {
  display: flex;
  align-items: center;
  gap: 10px;
}

.ovsection__end {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 22px;
  height: 22px;
  border-radius: var(--r-pill);
  box-shadow: inset 0 0 0 1px rgba(var(--on-photo-rgb), 0.6);
  font-family: var(--mono);
  font-size: 12px;
  color: rgba(var(--on-photo-rgb), 0.85);
}

.ovsection__line {
  flex: 1;
  height: 1px;
  background: repeating-linear-gradient(90deg, rgba(var(--on-photo-rgb), 0.6) 0 8px, transparent 8px 16px);
}

/* Подвал чертёжной карточки. */
/* Подвал листа. Шаблон не опускает моно ниже 12px (в макете 9px), поэтому
   вертикальные отступы здесь плотнее макетных — иначе подвал наезжает на
   врезку и рамку. */
/* Подвал листа несёт собственное затемнение: его высота больше макетной (моно
   12px против 9px), и общего градиента карточки под ним уже не хватает. */
.ovsheetfoot::before {
  content: "";
  position: absolute;
  inset: -44px -26px -26px;
  border-radius: 0 0 14px 14px;
  background: linear-gradient(to top, rgba(var(--scrim-rgb), 0.94) 0%, rgba(var(--scrim-rgb), 0.88) 55%, rgba(var(--scrim-rgb), 0) 100%);
  pointer-events: none;
}

.ovsheetfoot > * {
  position: relative;
  z-index: 1;
}

.ovsheetfoot {
  position: relative;
  margin: 26px;
  display: flex;
  flex-direction: column;
  gap: clamp(10px, 0.51vw, 13px);
  padding: clamp(14px, 0.86vw, 22px) clamp(12px, 0.78vw, 20px) clamp(12px, 0.70vw, 18px);
  color: var(--on-photo);
}

.ovsheet {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 11px;
  border-bottom: 2px solid rgba(var(--on-photo-rgb), 0.75);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.ovsheet__ref { color: var(--gold); white-space: nowrap; }
.ovsheet__city { color: rgba(var(--on-photo-rgb), 0.7); text-align: right; }

.ovblock {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-radius: 6px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--on-photo-rgb), 0.24);
}

.ovblock__cell {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 9px 12px;
  min-width: 0;
}

.ovblock__cell + .ovblock__cell { border-left: 1px solid rgba(var(--on-photo-rgb), 0.2); }

.ovblock__key {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(var(--on-photo-rgb), 0.55);
}

.ovblock__value {
  font-family: var(--mono);
  font-size: 12px;
  white-space: nowrap;
}

.ovblock__value--gold { color: var(--gold); }

/* Начерченные кнопки — прямоугольники со своими уголками. */
.ovdrawn {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  justify-items: center;
  padding: clamp(12px, 0.59vw, 15px) clamp(12px, 0.70vw, 18px);
  border-radius: 6px;
  box-shadow: inset 0 0 0 1px rgba(var(--on-photo-rgb), 0.4);
  color: var(--on-photo);
  text-decoration: none;
  transition: background 0.22s ease, color 0.22s ease;
}

.ovdrawn__text {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.ovdrawn:hover,
.ovdrawn:focus-visible { background: rgba(var(--on-photo-rgb), 0.14); }

.ovdrawn--gold {
  background: var(--gold);
  color: rgb(var(--scrim-rgb));
  box-shadow: none;
}

.ovdrawn--gold:hover,
.ovdrawn--gold:focus-visible {
  background: var(--on-photo);
  color: rgb(var(--scrim-rgb));
}

.ovdrawn .ovarrow { font-size: 17px; }

.ovbtick {
  position: absolute;
  width: 12px;
  height: 12px;
  border: 0 solid rgba(var(--on-photo-rgb), 0.4);
  pointer-events: none;
}

.ovbtick--tl { left: 7px; top: 7px; border-left-width: 1px; border-top-width: 1px; }
.ovbtick--br { right: 7px; bottom: 7px; border-right-width: 1px; border-bottom-width: 1px; }

.ovdrawn--gold .ovbtick { border-color: rgba(var(--scrim-rgb), 0.35); }

.ovsfoot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-top: 14px;
  border-top: 1px solid rgba(var(--on-photo-rgb), 0.24);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(var(--on-photo-rgb), 0.55);
}

.ovsfoot__gold { color: var(--gold); }

/* --- Обмерный план (ряд 10) ------------------------------------------------ */

.ovplan {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.ovplan__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: rgba(var(--on-photo-rgb), 0.6);
}

.ovplan__section { color: var(--gold); }

.ovplan__grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr;
  gap: 3px;
  height: clamp(62px, 2.89vw, 74px);
}

.ovplan__col {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.ovplan__room {
  position: relative;
  display: flex;
  flex: 1;
  align-items: flex-end;
  padding: 7px;
  box-shadow: inset 0 0 0 1px rgba(var(--on-photo-rgb), 0.4);
  min-width: 0;
}

.ovplan__room--big { padding: 8px; }
.ovplan__room--tall { flex: 1.4; }

/* Зона сырости на плане — золотая штриховка, как врезка Detail A. */
.ovplan__room--damp {
  background: repeating-linear-gradient(45deg, rgba(var(--c-gold-rgb), 0.28) 0 2px, transparent 2px 10px);
  box-shadow: inset 0 0 0 1px rgba(var(--c-gold-rgb), 0.6);
}

.ovplan__name {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(var(--on-photo-rgb), 0.7);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.ovplan__room--damp .ovplan__name { color: var(--gold); }

/* Дверной проём — разрыв в стене между салоном и коридором. */
.ovplan__door {
  position: absolute;
  right: -2px;
  top: 34%;
  width: 3px;
  height: 22px;
  background: rgba(var(--scrim-rgb), 0.9);
}

.ovplan__scale {
  display: flex;
  justify-content: space-between;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  color: rgba(var(--on-photo-rgb), 0.45);
}

.ovplan__end { color: var(--gold); }

/* Тёмная тема: семейство и так светлое на тёмном — меняется только штриховка
   пустого колодца и подпись размера, всё остальное живёт на снимке. */
[data-theme="dark"] .ovcard {
  background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.13) 0 2px, transparent 2px 14px);
}

/* ==========================================================================
   53. Overlay card type — адаптив
   ========================================================================== */

@media (max-width: 1900px) {
  .ovpage .lccards--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1600px) {
  .ovpage .lccards--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  /* Чертёжная семья первой отдаёт вертикальный размер и врезку. */
  .ovvert,
  .ovspark { display: none; }
}

@media (max-width: 1240px) {
  .ovdetail,
  .ovrail { display: none; }

  .ovsection,
  .ovnorth { display: none; }
}

@media (max-width: 980px) {
  .ovpage .lccards--4,
  .ovpage .lccards--3 { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 600px) {
  .ovcard { min-height: clamp(520px, 25.78vw, 660px); }

  /* Моно не сжимается ниже 12px, поэтому длинные подписи на 320px переносятся. */
  .ovunit,
  .ovhead__note,
  .ovperson__note,
  .ovenergy__label,
  .ovenergy__note,
  .ovsheet__city,
  .ovfaults__key { white-space: normal; }

  .ovhead,
  .ovfaults__head { flex-wrap: wrap; row-gap: 6px; }

  .ovhead__note { text-align: left; }

  .ovscale,
  .ovplan { display: none; }

  .ovpair { grid-template-columns: minmax(0, 1fr); }

  .ovdivided { flex-wrap: wrap; gap: 8px 0; }
  .ovdivided__rule { display: none; }
  .ovdivided__cell { flex: 1 0 50%; text-align: left; }
  .ovdivided__cell:last-child { text-align: left; }

  .ovfacts { flex-wrap: wrap; gap: 10px 16px; }

  .ovplaterow,
  .ovpricebig {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .ovplatecol { align-items: flex-start; }

  .ovsheet,
  .ovsfoot { flex-wrap: wrap; row-gap: 8px; }

  .ovblock { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .ovblock__cell:nth-child(3) { border-left: 0; }

  .ovblock__cell:nth-child(n + 3) { border-top: 1px solid rgba(var(--on-photo-rgb), 0.2); }
}

/* ==========================================================================
   54. Docket card type — запись реестра
   ========================================================================== */

/* У записи нет ни подложки, ни тени, ни скругления: это строка гроссбуха на
   земле страницы. Наведение подкрашивает всю запись, а не поднимает её. */
.dkpage .lccards { align-items: stretch; }

.dkcard {
  display: flex;
  flex-direction: column;
  padding: 0 6px;
  transition: background 0.2s ease;
}

.dkcard:hover { background: rgba(var(--accent-rgb), 0.05); }

/* Ряд 05: слева поле гроссбуха с номером записи вдоль корешка. */
.dkcard--gutter {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 18px;
}

.dkgutter {
  display: flex;
  /* Текст повёрнут, поэтому главная ось вертикальная: прижимает к верху
     justify-content, а не align-items. */
  align-items: center;
  justify-content: flex-start;
  padding-top: 4px;
  border-right: 1px solid rgba(var(--ink-rgb), 0.18);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--accent);
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}

.dkentry {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

/* --- Строка каталога ------------------------------------------------------- */

.dkcat {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 8px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--faint);
}

/* --- Шапка записи ---------------------------------------------------------- */

.dkhead {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-bottom: 14px;
  border-bottom: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.dkhead__ref { color: var(--accent); white-space: nowrap; }
.dkhead__city { color: var(--faint); text-align: right; white-space: nowrap; }

.dkhead__city--pin {
  display: flex;
  align-items: center;
  gap: 8px;
}

.dkhead__mid {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

.dkchip {
  display: inline-flex;
  align-items: center;
  padding: 6px 14px;
  border-radius: 4px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
  font-size: 12px;
  letter-spacing: 0.2em;
  color: var(--ink);
  white-space: nowrap;
}

/* Печать записи — наклонена, как штамп в журнале. */
.dkseal {
  display: inline-flex;
  align-items: center;
  padding: 5px 12px;
  border-radius: 4px;
  box-shadow: inset 0 0 0 2px var(--accent);
  font-size: 12px;
  letter-spacing: 0.24em;
  color: var(--accent);
  white-space: nowrap;
  transform: rotate(-6deg);
}

.dkglyph { flex: none; }

/* --- Размерная линия ------------------------------------------------------- */

.dkdim {
  display: flex;
  flex-direction: column;
  gap: 7px;
  padding-top: 18px;
}

.dkdim__line {
  position: relative;
  display: block;
  height: 12px;
}

.dkdim__cap {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 1px;
  background: var(--ink);
}

.dkdim__cap--l { left: 0; }
.dkdim__cap--r { right: 0; }

.dkdim__hair {
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.4);
}

.dkdim__caption {
  text-align: center;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

/* --- Окно снимка ----------------------------------------------------------- */

/* Снимок здесь не главный: это окно внутри записи, а не карточка с фото. */
.dkwindow {
  position: relative;
  display: block;
  height: clamp(170px, 11.33vw, 290px);
  margin: clamp(14px, 0.78vw, 20px) 0 0;
  background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.1) 0 2px, transparent 2px 14px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2);
}

.dkwindow--plain {
  height: clamp(176px, 11.72vw, 300px);
  margin: clamp(16px, 0.86vw, 22px) 0;
}

.dkwindow--tight { margin-top: 8px; }

.dkphoto {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dksize {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  padding: 9px 16px;
  border-radius: 6px;
  background: rgba(var(--bg-rgb), 0.86);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
  font-family: var(--mono);
  font-size: clamp(12px, 0.59vw, 15px);
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
  white-space: nowrap;
  pointer-events: none;
}

.dktick {
  position: absolute;
  width: 20px;
  height: 20px;
  border: 0 solid rgba(var(--ink-rgb), 0.4);
  pointer-events: none;
}

.dktick--tl { left: 14px; top: 14px; border-left-width: 1px; border-top-width: 1px; }
.dktick--br { right: 14px; bottom: 14px; border-right-width: 1px; border-bottom-width: 1px; }

/* Со снимком чернильные уголки тонут — переводим их на кремовые, как на
   остальных семьях карточек. */
.dkwindow:has(.dkphoto) .dktick { border-color: rgba(var(--on-photo-rgb), 0.6); }

.dkframes {
  position: absolute;
  left: 14px;
  bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 4px 9px;
  border-radius: 4px;
  background: rgba(var(--bg-rgb), 0.82);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
}

.dkframes--icon { letter-spacing: 0.16em; }

.dkdiscs {
  position: absolute;
  right: 12px;
  top: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}

/* Диски держат собственные цвета в обеих темах: у них своя тёмная земля и
   кремовый штрих, поэтому тёмная тема их не трогает — так просит хендофф. */
.dkdisc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: var(--r-pill);
  background: rgba(var(--scrim-rgb), 0.62);
  box-shadow: inset 0 0 0 1px rgba(var(--on-photo-rgb), 0.3);
  color: var(--on-photo);
  transition: background 0.16s ease;
}

.dkcard:hover .dkdisc { background: var(--accent); }

/* --- Адрес, цена, график --------------------------------------------------- */

.dkband {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  padding: clamp(14px, 0.78vw, 20px) 0 0;
}

.dkleft {
  display: flex;
  align-items: flex-end;
  gap: 18px;
  min-width: 0;
}

.dkplace {
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 0;
}

.dkaddress {
  display: block;
  font-family: var(--display);
  font-size: clamp(22px, 1.41vw, 36px);
  line-height: 1.08;
  letter-spacing: -0.018em;
}

.dktransit {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.dkpricecol {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
  flex: none;
}

.dkpriceline {
  display: flex;
  align-items: baseline;
  gap: 10px;
}

.dkprice {
  font-family: var(--display);
  font-size: clamp(23px, 1.48vw, 38px);
  line-height: 1;
  white-space: nowrap;
}

.dkstruck {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--faint);
  text-decoration: line-through;
  text-decoration-color: var(--accent);
  white-space: nowrap;
}

.dknote {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
  white-space: nowrap;
}

.dkspark {
  display: flex;
  flex-direction: column;
  gap: 5px;
  flex: none;
}

.dkspark__label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
  white-space: nowrap;
}

.dkspark__bars {
  display: flex;
  align-items: flex-end;
  gap: 3px;
  height: 34px;
}

.dkspark__bar {
  display: block;
  width: 8px;
  border-radius: 2px 2px 0 0;
  background: rgba(var(--ink-rgb), 0.24);
}

.dkspark__bar--hot { background: var(--accent); }

/* --- Строки реестра -------------------------------------------------------- */

.dktable,
.dkregister {
  display: flex;
  flex-direction: column;
  padding-top: clamp(12px, 0.62vw, 16px);
}

.dkline {
  display: flex;
  justify-content: space-between;
  gap: 14px;
  padding: 11px 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.14);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--faint);
}

.dkline:last-child { border-top-width: 2px; border-top-color: var(--ink); }
.dkline__key { white-space: nowrap; }
.dkline__value { color: var(--ink); text-align: right; }

.dkreg {
  display: grid;
  grid-template-columns: clamp(92px, 5.86vw, 150px) minmax(0, 1fr) auto;
  gap: clamp(12px, 0.78vw, 20px);
  align-items: baseline;
  padding: 11px 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.14);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.dkregister--icons .dkreg {
  grid-template-columns: 26px clamp(84px, 5.08vw, 130px) minmax(0, 1fr) auto;
  gap: clamp(10px, 0.62vw, 16px);
  align-items: center;
  padding: 12px 0;
}

.dkreg__icon { color: var(--muted); display: inline-flex; }
.dkreg__key { color: var(--faint); }
.dkreg__text { color: var(--faint); }
.dkregister--icons .dkreg__text { color: var(--muted); }
.dkreg__value { color: var(--ink); text-align: right; white-space: nowrap; }
.dkreg__value--red { color: var(--accent); }

/* Без кнопок ряд закрывается тяжёлой линейкой снизу. */
.dkregister--ruled .dkreg:last-child {
  border-bottom: 2px solid var(--ink);
}

/* --- Энергия --------------------------------------------------------------- */

.dkenergy {
  display: flex;
  align-items: center;
  gap: 12px;
  padding-top: clamp(12px, 0.62vw, 16px);
}

.dkenergy__label,
.dkenergy__note {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
  white-space: nowrap;
}

.dkenergy__note { letter-spacing: 0.16em; }

.dkenergy__scale {
  display: flex;
  flex: 1;
  border-radius: 3px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22);
}

.dkenergy__step {
  flex: 1;
  height: 16px;
  background: rgba(var(--ink-rgb), 0.07);
}

.dkenergy__step + .dkenergy__step { box-shadow: inset 1px 0 0 rgba(var(--bg-rgb), 0.8); }
.dkenergy__step--on { background: var(--accent); }

/* --- Неисправности --------------------------------------------------------- */

.dkfaults {
  display: flex;
  flex-direction: column;
  gap: 7px;
  padding-top: clamp(12px, 0.62vw, 16px);
}

.dkfaults__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.dkfaults__total { color: var(--accent); }

.dkbar {
  display: flex;
  height: 10px;
  border-radius: var(--r-pill);
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
}

.dkbar__seg { display: block; }
.dkbar__seg--1 { background: var(--accent); }
.dkbar__seg--2 { background: rgba(var(--accent-rgb), 0.45); box-shadow: inset 1px 0 0 rgba(var(--bg-rgb), 0.7); }
.dkbar__seg--3 { background: rgba(var(--ink-rgb), 0.16); box-shadow: inset 1px 0 0 rgba(var(--bg-rgb), 0.7); }

.dkfaults__keys {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--faint);
}

.dkfaults__key { white-space: nowrap; }
.dkfaults__key--lead { color: var(--accent); }

/* --- Кнопки и подвал ------------------------------------------------------- */

.dkacts {
  margin-top: auto;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: clamp(14px, 0.70vw, 18px);
  padding-top: clamp(14px, 0.70vw, 18px);
  border-top: 2px solid var(--ink);
}

.dkbtn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  height: clamp(46px, 2.11vw, 54px);
  padding: 0 clamp(14px, 0.86vw, 22px);
  border-radius: 6px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
  color: var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background 0.2s ease, color 0.2s ease;
}

.dkbtn:hover,
.dkbtn:focus-visible { background: rgba(var(--ink-rgb), 0.08); }

.dkbtn--ink {
  justify-content: space-between;
  background: var(--ink);
  box-shadow: none;
  color: var(--bg);
}

.dkbtn--ink:hover,
.dkbtn--ink:focus-visible {
  background: var(--accent);
  color: var(--on-photo);
}

.dkarrow {
  font-family: var(--text);
  font-size: 17px;
  letter-spacing: 0;
  line-height: 1;
}

.dkfoot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-top: clamp(12px, 0.62vw, 16px);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.dkopen {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  color: var(--accent);
  text-decoration: none;
  white-space: nowrap;
  transition: color var(--fast);
}

.dkopen:hover,
.dkopen:focus-visible { color: var(--ink); }

.dkopen .dkarrow { font-size: 15px; }

/* --- Штамп и перекрёстная ссылка ------------------------------------------ */

.dkblock {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 14px;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22);
}

.dkblock__cell {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 11px 13px;
  min-width: 0;
}

.dkblock__cell + .dkblock__cell { border-left: 1px solid rgba(var(--ink-rgb), 0.14); }

.dkblock__key {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.dkblock__value {
  font-family: var(--mono);
  font-size: 12px;
  color: var(--ink);
  white-space: nowrap;
}

.dkblock__value--red { color: var(--accent); }

.dksee {
  display: flex;
  align-items: center;
  gap: 14px;
  padding-top: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
  white-space: nowrap;
}

.dksee__mark { color: var(--accent); }

.dksee__link {
  color: var(--accent);
  text-decoration: none;
  transition: color var(--fast);
}

.dksee__link:hover,
.dksee__link:focus-visible { color: var(--ink); }

.dksee__rule {
  flex: 1;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.14);
}

/* ==========================================================================
   55. Docket card type — адаптив
   ========================================================================== */

/* Адрес 36px и цена 38px стоят в одну строку только на канве: как только
   запись ýже ~700px, полоса разворачивается в колонку. */
@media (max-width: 2280px) {
  .dkband {
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
  }

  .dkpricecol { align-items: flex-start; }
}

@media (max-width: 1600px) {
  .dkpage .lccards--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1240px) {
  /* Поле гроссбуха уходит первым: на узкой записи оно только отнимает ширину. */
  .dkcard--gutter {
    display: flex;
    flex-direction: column;
  }

  .dkgutter { display: none; }

  .dkspark { display: none; }
}

@media (max-width: 1000px) {
  .dkpage .lccards--3 { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 600px) {
  .dkdim { display: none; }

  .dkband {
    flex-direction: column;
    align-items: flex-start;
    gap: 14px;
  }

  .dkpricecol { align-items: flex-start; }

  .dkreg {
    grid-template-columns: minmax(0, 1fr) auto;
    row-gap: 6px;
  }

  .dkregister--icons .dkreg { grid-template-columns: 22px minmax(0, 1fr) auto; }

  /* Текст строки уезжает под ключ и значение — иначе на 320px он не помещается. */
  .dkreg__text {
    grid-column: 1 / -1;
    white-space: normal;
  }

  .dkregister--icons .dkreg__text { grid-column: 2 / -1; }

  .dkacts { grid-template-columns: minmax(0, 1fr); }

  .dkblock { grid-template-columns: minmax(0, 1fr); }

  .dkblock__cell + .dkblock__cell {
    border-left: 0;
    border-top: 1px solid rgba(var(--ink-rgb), 0.14);
  }

  .dkcat,
  .dkhead,
  .dkfoot,
  .dksee,
  .dkfaults__keys { flex-wrap: wrap; row-gap: 8px; }

  .dksee { white-space: normal; }
  .dksee__rule { display: none; }

  .dkhead__city,
  .dkframes,
  .dknote,
  .dkenergy__label,
  .dkenergy__note { white-space: normal; }
}

/* ==========================================================================
   56. Framed card type — снимок в паспарту
   ========================================================================== */

/* Карточки ряда одной высоты: иначе кнопки соседей стоят на разных уровнях. */
.fmpage .lccards { align-items: stretch; }

/* Карточка здесь — само паспарту: снимок вставлен в него, а не приклеен сверху. */
.fmcard {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: clamp(16px, 0.86vw, 22px);
  padding: clamp(18px, 1.02vw, 26px);
  border-radius: 14px;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  transition: transform 0.24s ease, box-shadow 0.24s ease;
}

.fmcard:hover {
  transform: translateY(-8px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.55);
}

/* Ряды 03–04: паспарту на 4px уже, тело прижато влево. */
.fmcard--tight {
  gap: 0;
  padding: clamp(16px, 0.86vw, 22px);
}

/* Ряды 05–06: лист висит на крючке, поэтому сверху добавлено поле. */
.fmcard--hung {
  gap: clamp(14px, 0.70vw, 18px);
  padding: clamp(20px, 1.17vw, 30px) clamp(18px, 1.02vw, 26px) clamp(18px, 1.02vw, 26px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
}

.fmhook {
  position: absolute;
  left: 50%;
  top: -9px;
  width: 18px;
  height: 18px;
  margin-left: -9px;
  border-radius: var(--r-pill);
  background: var(--bg);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
}

/* --- Строка каталога ------------------------------------------------------- */

.fmcat {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.fmcat__no { color: var(--accent); white-space: nowrap; }

/* --- Колодец со снимком ---------------------------------------------------- */

/* Высота колодца одна во всех шести рядах: так шесть решений сравнимы. */
.fmwell {
  position: relative;
  display: block;
  height: clamp(230px, 15.62vw, 400px);
  border-radius: 8px;
  background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.1) 0 2px, transparent 2px 14px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
}

.fmphoto {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border-radius: 8px;
  object-fit: cover;
}

/* Красная линейка внутри колодца — подпись всей семьи. */
.fmmat {
  position: absolute;
  border-radius: 4px;
  pointer-events: none;
}

.fmmat--red {
  inset: 16px;
  box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.4);
}

.fmmat--tight { inset: 14px; }

/* Ряды 05–06: серая линейка снаружи красной — двойное паспарту. */
.fmmat--grey {
  inset: 12px;
  border-radius: 5px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2);
}

.fmmat--inner { inset: 18px; }

/* Подпись размера стоит в верхней полосе, а не по центру: по центру она
   налезала на красную линейку. */
.fmsize {
  position: absolute;
  left: 50%;
  top: clamp(24px, 1.25vw, 32px);
  transform: translateX(-50%);
  padding: 8px 14px;
  border-radius: 6px;
  background: rgba(var(--bg-rgb), 0.86);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
  font-family: var(--mono);
  font-size: clamp(12px, 0.59vw, 15px);
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
  white-space: nowrap;
  pointer-events: none;
}

.fmtick {
  position: absolute;
  width: 22px;
  height: 22px;
  border: 0 solid rgba(var(--ink-rgb), 0.45);
  pointer-events: none;
}

.fmtick--tl { left: 28px; top: 28px; border-left-width: 1px; border-top-width: 1px; }
.fmtick--tr { right: 28px; top: 28px; border-right-width: 1px; border-top-width: 1px; }
.fmtick--bl { left: 28px; bottom: 28px; border-left-width: 1px; border-bottom-width: 1px; }
.fmtick--br { right: 28px; bottom: 28px; border-right-width: 1px; border-bottom-width: 1px; }

.fmtick--wide.fmtick--tl { left: 30px; top: 30px; }
.fmtick--wide.fmtick--tr { right: 30px; top: 30px; }
.fmtick--wide.fmtick--bl { left: 30px; bottom: 30px; }
.fmtick--wide.fmtick--br { right: 30px; bottom: 30px; }

.fmframes {
  position: absolute;
  left: 28px;
  bottom: 64px;
  padding: 4px 9px;
  border-radius: 4px;
  background: rgba(var(--bg-rgb), 0.82);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
  white-space: nowrap;
}

.fmframes--tl { left: 26px; top: 26px; bottom: auto; }

.fmframes--static {
  position: static;
  padding: 0;
  background: none;
  color: var(--muted);
}

/* Положение кадра в плёнке — шесть засечек. */
.fmmarks {
  position: absolute;
  left: 30px;
  bottom: 62px;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 4px 9px;
  border-radius: 4px;
  background: rgba(var(--bg-rgb), 0.82);
}

.fmmarks__tick {
  display: block;
  width: 14px;
  height: 2px;
  background: rgba(var(--ink-rgb), 0.22);
}

.fmmarks__tick--on { background: var(--accent); }

.fmmarks__label {
  margin-left: 4px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
  white-space: nowrap;
}

/* Диски и тёмный значок держат собственные цвета в обеих темах: они стоят на
   снимке и несут hover, поэтому переопределение тёмной темы до них не доходит. */
.fmdiscs {
  position: absolute;
  right: 28px;
  bottom: 60px;
  display: flex;
  gap: 8px;
}

.fmdiscs--big { right: 26px; bottom: 24px; }

.fmdisc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: var(--r-pill);
  background: rgba(var(--scrim-rgb), 0.62);
  box-shadow: inset 0 0 0 1px rgba(var(--on-photo-rgb), 0.3);
  color: var(--on-photo);
  font-size: 15px;
  line-height: 1;
  transition: background 0.2s ease;
}

.fmdiscs--big .fmdisc { width: 40px; height: 40px; font-size: 16px; }

.fmcard:hover .fmdisc { background: var(--accent); }

/* Значки. */
.fmbadge {
  display: inline-flex;
  align-items: center;
  height: 34px;
  padding: 0 16px;
  border-radius: var(--r-pill);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  white-space: nowrap;
}

.fmbadge--red {
  background: var(--accent);
  color: var(--on-photo);
}

.fmbadge--dark {
  background: rgba(var(--scrim-rgb), 0.62);
  box-shadow: inset 0 0 0 1px rgba(var(--on-photo-rgb), 0.3);
  color: var(--on-photo);
}

.fmbadge--cream {
  background: rgba(var(--bg-rgb), 0.9);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.28);
  color: var(--ink);
}

.fmbadge--bl {
  position: absolute;
  left: 26px;
  bottom: 26px;
  height: 38px;
  padding: 0 18px;
}

.fmstack {
  position: absolute;
  top: 26px;
  display: flex;
  flex-direction: column;
  gap: 9px;
}

.fmstack--left { left: 26px; align-items: flex-start; gap: 8px; }
.fmstack--right { right: 26px; align-items: flex-end; }

/* Сургучная печать и врезка плана. */
.fmseal {
  position: absolute;
  right: 30px;
  top: 64px;
  display: inline-flex;
  align-items: center;
  padding: 7px 15px;
  border-radius: 4px;
  background: rgba(var(--bg-rgb), 0.82);
  box-shadow: inset 0 0 0 2px var(--accent);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--accent);
  transform: rotate(-7deg);
}

/* План — красная штриховка: он читается как чертёж, а не как фотография. */
.fmplan {
  position: absolute;
  left: 30px;
  top: clamp(74px, 3.75vw, 96px);
  width: clamp(108px, 5.86vw, 150px);
  height: clamp(80px, 4.30vw, 110px);
  border-radius: 4px;
  background: repeating-linear-gradient(45deg, rgba(var(--accent-rgb), 0.16) 0 2px, transparent 2px 10px);
  box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.45);
  overflow: hidden;
}

.fmplan__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Врезка плана узкая: подпись идёт без плашки, во всю ширину и с переносом,
   иначе её срезает край врезки. */
.fmplan .fmsize {
  left: 4px;
  right: 4px;
  top: auto;
  bottom: 6px;
  transform: none;
  padding: 0;
  background: none;
  box-shadow: none;
  font-size: 12px;
  letter-spacing: 0.1em;
  text-align: center;
  white-space: normal;
}

/* Табличка, сидящая верхом на нижнем крае паспарту. */
.fmplate {
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  text-align: center;
  transform: translateY(50%);
}

.fmplate__chip {
  display: inline-flex;
  align-items: center;
  height: 38px;
  padding: 0 20px;
  border-radius: var(--r-pill);
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
  white-space: nowrap;
}

/* --- Тело ------------------------------------------------------------------ */

.fmbody {
  display: flex;
  flex-direction: column;
  gap: clamp(10px, 0.55vw, 14px);
  padding: clamp(10px, 0.55vw, 14px) 8px 8px;
}

.fmbody--centre { align-items: center; text-align: center; }
.fmcard--tight .fmbody { gap: clamp(10px, 0.55vw, 14px); padding: clamp(18px, 1.02vw, 26px) 10px 0; }

.fmaddress {
  display: block;
  font-family: var(--display);
  font-size: clamp(23px, 1.48vw, 38px);
  line-height: 1.08;
  letter-spacing: -0.018em;
}

.fmaddress--centre { text-align: center; }
.fmaddress--36 { font-size: clamp(22px, 1.41vw, 36px); text-align: center; }

.fmcaption {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
  text-align: center;
}

.fmdivider {
  display: flex;
  align-items: center;
  gap: 14px;
  width: 100%;
  padding: 4px 0;
}

.fmdivider__rule {
  flex: 1;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.18);
}

.fmdivider__dot {
  width: 5px;
  height: 5px;
  border-radius: var(--r-pill);
  background: var(--accent);
}

.fmprice {
  font-family: var(--display);
  font-size: clamp(28px, 1.80vw, 46px);
  line-height: 1;
  white-space: nowrap;
}

.fmprice--red { color: var(--accent); }
.fmprice--centre { text-align: center; }
.fmprice--44 { font-size: clamp(26px, 1.72vw, 44px); }

.fmpricebox {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
}

.fmpriceline {
  display: flex;
  align-items: baseline;
  gap: 12px;
}

.fmstruck {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--faint);
  text-decoration: line-through;
  text-decoration-color: var(--accent);
  white-space: nowrap;
}

.fmunit {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--faint);
}

.fmunit--centre { text-align: center; }

.fmfline {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted);
  text-align: center;
}

.fmfline--left { text-align: left; }

/* Левое тело рядов 03–04. */
.fmhead {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.fmhead__ref { color: var(--accent); white-space: nowrap; }
.fmhead__city { color: var(--faint); text-align: right; }

.fmpricerow {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
}

.fmpricecol {
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 0;
}

.fmchipcol {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
  flex: none;
}

.fmchip {
  display: inline-flex;
  align-items: center;
  height: 34px;
  padding: 0 14px;
  border-radius: var(--r-pill);
  background: rgba(var(--accent-rgb), 0.1);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
  white-space: nowrap;
}

.fmspark {
  display: flex;
  align-items: flex-end;
  gap: 3px;
  height: 26px;
}

.fmspark__bar {
  display: block;
  width: 7px;
  border-radius: 2px 2px 0 0;
  background: rgba(var(--ink-rgb), 0.24);
}

.fmspark__bar--hot { background: var(--accent); }

.fmdivided {
  display: flex;
  align-items: center;
  padding: 13px 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.16);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink);
}

.fmdivided__cell { flex: 1; text-align: center; white-space: nowrap; }
.fmdivided__cell:first-child { text-align: left; }
.fmdivided__cell:last-child { text-align: right; }

.fmdivided__rule {
  width: 1px;
  height: 13px;
  background: rgba(var(--ink-rgb), 0.2);
}

/* --- Музейная этикетка (ряды 05–06) --------------------------------------- */

.fmlabel {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 9px;
  padding: clamp(12px, 0.62vw, 16px) clamp(14px, 0.78vw, 20px) clamp(10px, 0.55vw, 14px);
  border-radius: 6px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.fmlabel__ref {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--accent);
  text-align: center;
}

.fmlabelprice {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 18px;
}

.fmlabelprice .fmspark { height: 30px; }

/* --- Неисправности, энергия, показ ---------------------------------------- */

.fmfaultrow { display: block; }

.fmfaults {
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.fmfaults__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.fmfaults__total { color: var(--accent); }

.fmbar {
  display: flex;
  height: 10px;
  border-radius: var(--r-pill);
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
}

.fmbar__seg { display: block; }
.fmbar__seg--1 { background: var(--accent); }
.fmbar__seg--2 { background: rgba(var(--accent-rgb), 0.45); box-shadow: inset 1px 0 0 rgba(var(--bg-rgb), 0.7); }
.fmbar__seg--3 { background: rgba(var(--ink-rgb), 0.16); box-shadow: inset 1px 0 0 rgba(var(--bg-rgb), 0.7); }

.fmfaults__keys {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--faint);
}

.fmfaults__key { white-space: nowrap; }
.fmfaults__key--lead { color: var(--accent); }

.fmenergy {
  display: flex;
  align-items: center;
  gap: 12px;
}

.fmenergy__label,
.fmenergy__note {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
  white-space: nowrap;
}

.fmenergy__note { letter-spacing: 0.16em; }

.fmenergy__scale {
  display: flex;
  flex: 1;
  border-radius: 3px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22);
}

.fmenergy__step {
  flex: 1;
  height: 14px;
  background: rgba(var(--ink-rgb), 0.07);
}

.fmenergy__step + .fmenergy__step { box-shadow: inset 1px 0 0 rgba(var(--bg-rgb), 0.8); }
.fmenergy__step--on { background: var(--accent); }

.fmviewing {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0 clamp(6px, 0.39vw, 10px);
  padding: 12px 16px;
  border-radius: 6px;
  background: rgba(var(--accent-rgb), 0.07);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.fmcard--hung .fmviewing { margin: 0; }

.fmviewing__dot {
  flex: none;
  width: 7px;
  height: 7px;
  border-radius: var(--r-pill);
  background: var(--accent);
}

.fmviewing__text { color: var(--ink); }
.fmviewing__note { margin-left: auto; color: var(--faint); white-space: nowrap; }

/* --- Кнопки, советник, штамп ---------------------------------------------- */

.fmacts {
  margin-top: auto;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding-top: clamp(14px, 0.70vw, 18px);
  border-top: 1px solid rgba(var(--ink-rgb), 0.18);
}

.fmcard--tight .fmacts {
  margin: 0 clamp(6px, 0.39vw, 10px);
  padding-top: clamp(14px, 0.78vw, 20px);
  border-top: 0;
}

.fmbtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: clamp(48px, 2.27vw, 58px);
  padding: 0 clamp(12px, 0.70vw, 18px);
  border-radius: var(--r-pill);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.4);
  color: var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.2s ease, color 0.2s ease;
}

.fmbtn:hover,
.fmbtn:focus-visible {
  background: var(--ink);
  color: var(--bg);
}

.fmbtn--ink {
  background: var(--ink);
  box-shadow: none;
  color: var(--bg);
}

.fmbtn--ink:hover,
.fmbtn--ink:focus-visible {
  background: var(--accent);
  color: var(--on-photo);
}

.fmadvisor {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.fmcard--tight .fmadvisor { padding: clamp(12px, 0.62vw, 16px) clamp(6px, 0.39vw, 10px) 0; }

.fmadvisor__state { color: var(--accent); text-align: right; }

.fmblock {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-radius: 6px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22);
}

.fmblock__cell {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 10px 12px;
  min-width: 0;
}

.fmblock__cell + .fmblock__cell { border-left: 1px solid rgba(var(--ink-rgb), 0.14); }

.fmblock__key {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.fmblock__value {
  font-family: var(--mono);
  font-size: 12px;
  color: var(--ink);
  white-space: nowrap;
}

.fmblock__value--red { color: var(--accent); }

.fmsee {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
  white-space: nowrap;
}

.fmsee__mark { color: var(--accent); }

.fmsee__link {
  color: var(--accent);
  text-decoration: none;
  transition: color var(--fast);
}

.fmsee__link:hover,
.fmsee__link:focus-visible { color: var(--ink); }

.fmsee__rule {
  flex: 1;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.14);
}

/* Со снимком чернильные уголки и засечки тонут — переводим их на кремовые. */
.fmwell:has(.fmphoto) .fmtick { border-color: rgba(var(--on-photo-rgb), 0.55); }

/* Врезка плана на светлой фотографии садится на тёмную подложку, иначе ни
   красной штриховки, ни подписи не видно. */
.fmwell:has(.fmphoto) .fmplan {
  background:
    repeating-linear-gradient(45deg, rgba(var(--accent-rgb), 0.42) 0 2px, transparent 2px 10px),
    rgba(var(--scrim-rgb), 0.55);
  box-shadow: inset 0 0 0 1px rgba(var(--on-photo-rgb), 0.75);
}

.fmwell:has(.fmphoto) .fmplan .fmsize { color: var(--on-photo); }

/* ==========================================================================
   57. Framed card type — адаптив
   ========================================================================== */

@media (max-width: 1600px) {
  .fmpage .lccards--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1240px) {
  /* Первыми уходят врезка плана и печать: они держатся на пикселях снимка. */
  .fmplan,
  .fmseal { display: none; }

  /* Двойное паспарту схлопывается в одну линейку. */
  .fmmat--grey { display: none; }
}

@media (max-width: 1000px) {
  .fmpage .lccards--3 { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 600px) {
  .fmpricerow {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .fmchipcol { align-items: flex-start; }

  .fmdivided { flex-wrap: wrap; gap: 8px 0; }
  .fmdivided__rule { display: none; }
  .fmdivided__cell { flex: 1 0 50%; text-align: left; }
  .fmdivided__cell:last-child { text-align: left; }

  .fmacts { grid-template-columns: minmax(0, 1fr); }

  .fmblock { grid-template-columns: minmax(0, 1fr); }

  .fmblock__cell + .fmblock__cell {
    border-left: 0;
    border-top: 1px solid rgba(var(--ink-rgb), 0.14);
  }

  .fmstack--left,
  .fmstack--right { position: static; }

  /* На узкой карточке значки уезжают со снимка под него — иначе они его
     закрывают целиком. */
  .fmwell { overflow: visible; }

  .fmstack {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
  }

  .fmhead,
  .fmcat,
  .fmadvisor,
  .fmsee,
  .fmviewing,
  .fmfaults__keys { flex-wrap: wrap; row-gap: 8px; }

  .fmsee { white-space: normal; }
  .fmsee__rule { display: none; }

  .fmviewing__note { margin-left: 0; }

  .fmhead__city,
  .fmcaption,
  .fmunit,
  .fmenergy__label,
  .fmenergy__note { white-space: normal; }

  .fmframes,
  .fmmarks { bottom: 20px; }

  .fmdiscs { bottom: 16px; }
}

/* ==========================================================================
   58. Survey-led card type — во главе отчёт
   ========================================================================== */

/* Карточки ряда тянутся по самой высокой, поэтому тело растёт, а кнопки
   прижаты к низу — иначе у карточки с одной неисправностью они висят посреди.
   Общая сетка карточек стоит на align-items: start (так просили на Standard),
   поэтому здесь растяжение возвращается явно. */
.svpage .lccards { align-items: stretch; }

.svcard {
  display: flex;
  flex-direction: column;
  border-radius: 14px;
  overflow: hidden;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  transition: transform 0.24s ease;
}

.svcard:hover { transform: translateY(-8px); }

/* --- Полоса состояния: подпись семьи ---------------------------------------- */

.svband {
  display: flex;
  flex-direction: column;
  gap: clamp(8px, 0.35vw, 9px);
  padding: clamp(16px, 0.78vw, 20px) clamp(20px, 1.17vw, 30px);
  background: rgba(var(--accent-rgb), 0.08);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.18);
}

.svband__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.svband__ref { color: var(--accent); }

.svband__ref--icon {
  display: flex;
  align-items: center;
  gap: 10px;
}

.svband__grade,
.svband__valuer { color: var(--muted); text-align: right; }

.svband__right {
  display: flex;
  align-items: center;
  gap: 12px;
}

/* Печать отчёта — наклонена, как штамп на бланке. */
.svseal {
  display: inline-flex;
  align-items: center;
  padding: 5px 12px;
  border-radius: 4px;
  background: rgba(var(--bg-rgb), 0.82);
  box-shadow: inset 0 0 0 2px var(--accent);
  font-size: 12px;
  letter-spacing: 0.24em;
  color: var(--accent);
  transform: rotate(-6deg);
}

/* Пятиклеточная шкала A–E: класс объекта закрашен красным. */
.svgrade {
  display: flex;
  align-items: center;
  gap: 12px;
}

.svgrade__label,
.svgrade__count {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
  white-space: nowrap;
}

.svgrade__scale {
  display: flex;
  flex: 1;
  border-radius: 3px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22);
}

.svgrade__cell {
  flex: 1;
  height: 14px;
  background: rgba(var(--ink-rgb), 0.07);
}

.svgrade__cell + .svgrade__cell { box-shadow: inset 1px 0 0 rgba(var(--bg-rgb), 0.8); }
.svgrade__cell--on { background: var(--accent); }

.svplain {
  font-size: clamp(15px, 0.66vw, 17px);
  font-weight: 300;
  line-height: 1.5;
  color: var(--muted);
}

.svchips {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  padding-top: 3px;
}

.svchip {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  height: 36px;
  padding: 0 15px;
  border-radius: var(--r-pill);
  background: rgba(var(--bg-rgb), 0.85);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted);
  white-space: nowrap;
}

.svchip--urgent {
  box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.4);
  color: var(--accent);
}

/* Штрих значка несёт срочность, поэтому он идёт классом, а не атрибутом svg:
   в тёмной теме цвет меняется сам вместе с токеном. */
.svglyph { flex: none; }
.svglyph--urgent { color: var(--accent); }
.svglyph--quiet { color: var(--muted); }
.svglyph--photo { color: var(--on-photo); }

/* --- Снимок ---------------------------------------------------------------- */

.svwell {
  position: relative;
  display: block;
  height: clamp(200px, 13.28vw, 340px);
  background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.1) 0 2px, transparent 2px 14px);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.18);
}

.svphoto {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.svsize {
  position: absolute;
  left: 50%;
  top: clamp(20px, 1.02vw, 26px);
  transform: translateX(-50%);
  padding: 8px 14px;
  border-radius: 6px;
  background: rgba(var(--bg-rgb), 0.86);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
  font-family: var(--mono);
  font-size: clamp(12px, 0.59vw, 15px);
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
  white-space: nowrap;
  pointer-events: none;
}

/* Значок «без ретуши» держит собственные цвета в обеих темах. */
.svframes {
  position: absolute;
  left: 26px;
  bottom: 22px;
  display: inline-flex;
  align-items: center;
  gap: 9px;
  height: 36px;
  padding: 0 16px;
  border-radius: var(--r-pill);
  background: rgba(var(--scrim-rgb), 0.62);
  box-shadow: inset 0 0 0 1px rgba(var(--on-photo-rgb), 0.3);
  color: var(--on-photo);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  white-space: nowrap;
}

/* Отметки неисправностей: читаются слева направо 01 · 02 · 03, третья обходит
   врезку детали в правом нижнем углу. */
.svmark {
  position: absolute;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: var(--r-pill);
  background: rgba(var(--scrim-rgb), 0.72);
  box-shadow: inset 0 0 0 1px rgba(var(--on-photo-rgb), 0.3);
  color: var(--on-photo);
  font-family: var(--mono);
  font-size: 12px;
}

.svmark--urgent {
  background: var(--accent);
  box-shadow: none;
}

.svmark--1 { left: 20%; top: clamp(44px, 2.89vw, 74px); }
.svmark--2 { left: 50%; top: clamp(100px, 6.56vw, 168px); }
.svmark--3 { left: 60%; top: clamp(141px, 9.22vw, 236px); }

/* Врезка детали — красная штриховка: это чертёж, а не фотография. */
.svdetail {
  position: absolute;
  right: 26px;
  bottom: 22px;
  width: clamp(108px, 5.86vw, 150px);
  height: clamp(76px, 4.06vw, 104px);
  border-radius: 4px;
  background: repeating-linear-gradient(45deg, rgba(var(--accent-rgb), 0.18) 0 2px, transparent 2px 10px);
  box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.5);
  overflow: hidden;
}

.svdetail__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.svdetail .svsize {
  left: 4px;
  right: 4px;
  top: auto;
  bottom: 6px;
  transform: none;
  padding: 0;
  background: none;
  box-shadow: none;
  font-size: 12px;
  letter-spacing: 0.1em;
  text-align: center;
  white-space: normal;
}

/* --- План фасада ----------------------------------------------------------- */

/* Точки стоят в тех же долях, что отметки на снимке: план и снимок в ногу. */
.svelev {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: clamp(14px, 0.78vw, 20px) clamp(20px, 1.17vw, 30px) 0;
}

.svelev__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.svelev__line {
  position: relative;
  display: block;
  height: 30px;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.3);
}

.svelev__cap {
  position: absolute;
  top: 8px;
  bottom: 0;
  width: 1px;
  background: rgba(var(--ink-rgb), 0.3);
}

.svelev__cap--l { left: 0; }
.svelev__cap--r { right: 0; }

.svelev__dot {
  position: absolute;
  bottom: -6px;
  width: 11px;
  height: 11px;
  margin-left: -5px;
  border-radius: var(--r-pill);
  background: rgba(var(--ink-rgb), 0.4);
}

.svelev__dot--urgent { background: var(--accent); }

.svelev__no {
  position: absolute;
  top: 0;
  transform: translateX(-50%);
  font-family: var(--mono);
  font-size: 12px;
  color: var(--faint);
}

.svelev__no--urgent { color: var(--accent); }

.svelev__dot--1, .svelev__no--1 { left: 20%; }
.svelev__dot--2, .svelev__no--2 { left: 50%; }
.svelev__dot--3, .svelev__no--3 { left: 60%; }

/* --- Адрес и цена ---------------------------------------------------------- */

.svbody {
  display: flex;
  flex-direction: column;
  gap: clamp(12px, 0.62vw, 16px);
  padding: clamp(20px, 1.17vw, 30px) clamp(20px, 1.17vw, 30px) 0;
}

.svaddress {
  display: block;
  font-family: var(--display);
  font-size: clamp(22px, 1.41vw, 36px);
  line-height: 1.08;
  letter-spacing: -0.018em;
}

.svpricerow {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
}

.svprice {
  font-family: var(--display);
  font-size: clamp(25px, 1.64vw, 42px);
  line-height: 1;
  white-space: nowrap;
}

.svpricecol {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
  min-width: 0;
}

.svmeta {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--faint);
  text-align: right;
}

/* Цена, пересказанная как «цена плюс ремонт» — довод этой семьи. */
.svrepairs {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent);
  text-align: right;
}

.svledger {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  padding-top: 5px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.1em;
  color: var(--faint);
  text-align: right;
}

.svledger__all {
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--accent);
}

/* --- Регистр неисправностей ------------------------------------------------ */

.svreport {
  display: flex;
  flex-direction: column;
  gap: clamp(9px, 0.43vw, 11px);
  margin-top: clamp(12px, 0.62vw, 16px);
  padding: clamp(12px, 0.62vw, 16px) clamp(20px, 1.17vw, 30px) 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
}

.svreport__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.svreport__total { color: var(--accent); }

.svsentence {
  font-size: clamp(15px, 0.70vw, 18px);
  font-weight: 300;
  line-height: 1.5;
  color: var(--muted);
}

.svbar {
  display: flex;
  height: 10px;
  border-radius: var(--r-pill);
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
}

.svbar__seg { display: block; }
.svbar__seg--1 { background: var(--accent); }
.svbar__seg--2 { background: rgba(var(--accent-rgb), 0.45); box-shadow: inset 1px 0 0 rgba(var(--bg-rgb), 0.7); }
.svbar__seg--3 { background: rgba(var(--ink-rgb), 0.16); box-shadow: inset 1px 0 0 rgba(var(--bg-rgb), 0.7); }

.svrow {
  display: grid;
  grid-template-columns: 19px minmax(0, 1fr) auto;
  gap: 14px;
  align-items: center;
  padding: 11px 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.12);
}

.svrow--rings { grid-template-columns: 38px minmax(0, 1fr) auto; gap: 16px; }
.svrow--numbers { grid-template-columns: clamp(32px, 1.72vw, 44px) minmax(0, 1fr) auto; align-items: baseline; }

.svrow__text {
  display: flex;
  flex-direction: column;
  gap: 3px;
  min-width: 0;
}

.svrow__name { font-size: clamp(15px, 0.66vw, 17px); color: var(--ink); }

.svrow__cost {
  font-family: var(--mono);
  font-size: 13px;
  color: var(--ink);
  white-space: nowrap;
}

.svtiming {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
}

.svtiming--urgent { color: var(--accent); }

.svno {
  font-family: var(--mono);
  font-size: 12px;
  color: var(--faint);
}

.svno--urgent { color: var(--accent); }

/* Кольцо вокруг значка: красное у срочного, серое у необязательного. */
.svring {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 38px;
  height: 38px;
  border-radius: var(--r-pill);
  background: rgba(var(--ink-rgb), 0.05);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22);
}

.svring--urgent {
  background: rgba(var(--accent-rgb), 0.1);
  box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.4);
}

.svverdict {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted);
}

/* Сравнение доли ремонта с квартальной средней. */
.svcompare {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 13px 16px;
  border-radius: 6px;
  background: rgba(var(--accent-rgb), 0.07);
}

.svcompare__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}

.svcompare__verdict { color: var(--ink); }
.svcompare__share { color: var(--accent); white-space: nowrap; }

.svcompare__row {
  display: flex;
  align-items: center;
  gap: 11px;
}

.svcompare__track {
  position: relative;
  flex: 1;
  height: 8px;
  border-radius: var(--r-pill);
  background: rgba(var(--ink-rgb), 0.14);
  overflow: hidden;
}

.svcompare__fill {
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  background: var(--accent);
}

/* Деление квартальной средней стоит на 66 % шкалы. */
.svcompare__tick {
  position: absolute;
  left: 66%;
  top: -3px;
  bottom: -3px;
  width: 1px;
  background: var(--ink);
}

.svcompare__note {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--faint);
  white-space: nowrap;
}

/* --- Осмотрено и исправно --------------------------------------------------- */

.svclear {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: clamp(10px, 0.55vw, 14px);
  padding: clamp(10px, 0.55vw, 14px) clamp(20px, 1.17vw, 30px) 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
}

.svclear__label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.svclear__row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.svclear__chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  height: 32px;
  padding: 0 13px;
  border-radius: var(--r-pill);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
  white-space: nowrap;
}

.svclear__tick { color: var(--ink); }

/* --- Кнопки, штамп, провенанс ---------------------------------------------- */

/* «Read the survey» — главная кнопка: в этом и есть смысл семьи. */
.svacts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: auto clamp(20px, 1.17vw, 30px) clamp(18px, 1.02vw, 26px);
  padding-top: clamp(14px, 0.78vw, 20px);
}

.svacts--one { grid-template-columns: minmax(0, 1fr); }

.svbtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: clamp(48px, 2.27vw, 58px);
  padding: 0 clamp(12px, 0.70vw, 18px);
  border-radius: var(--r-pill);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.4);
  color: var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  transition: background 0.2s ease, color 0.2s ease;
}

.svbtn:hover,
.svbtn:focus-visible {
  background: var(--ink);
  color: var(--bg);
}

.svbtn--ink {
  background: var(--ink);
  box-shadow: none;
  color: var(--bg);
}

.svbtn--ink:hover,
.svbtn--ink:focus-visible {
  background: var(--accent);
  color: var(--on-photo);
}

.svblock {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: clamp(12px, 0.62vw, 16px) clamp(20px, 1.17vw, 30px) 0;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22);
}

.svblock__cell {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: 10px 12px;
  min-width: 0;
}

.svblock__cell + .svblock__cell { border-left: 1px solid rgba(var(--ink-rgb), 0.14); }

.svblock__key {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.svblock__value {
  font-family: var(--mono);
  font-size: 12px;
  color: var(--ink);
  white-space: nowrap;
}

.svblock__value--red { color: var(--accent); }

/* Строка длинная, а моно у нас 12px против 9px в макете: она переносится, а не
   уезжает под край карточки. */
.svprov {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  row-gap: 8px;
  padding: clamp(10px, 0.55vw, 14px) clamp(20px, 1.17vw, 30px) clamp(18px, 1.02vw, 26px);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.svprov__mark { color: var(--accent); }

.svprov__link {
  color: var(--accent);
  text-decoration: none;
  transition: color var(--fast);
}

.svprov__link:hover,
.svprov__link:focus-visible { color: var(--ink); }

.svprov__rule {
  flex: 1;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.14);
}

/* Карточка без кнопок всё равно закрывается отступом снизу. */
.svcard > .svreport:last-child,
.svcard > .svblock:last-child { margin-bottom: clamp(18px, 1.02vw, 26px); }

/* Штамп и провенанс стоят над кнопками, поэтому нижний отступ им не нужен. */
.svprov { padding-bottom: 0; }

/* Со снимком врезка детали садится на тёмную подложку: красная штриховка по
   светлой фотографии не читается, а подпись в ней теряется совсем. */
.svwell:has(.svphoto) .svdetail {
  background:
    repeating-linear-gradient(45deg, rgba(var(--accent-rgb), 0.42) 0 2px, transparent 2px 10px),
    rgba(var(--scrim-rgb), 0.55);
  box-shadow: inset 0 0 0 1px rgba(var(--on-photo-rgb), 0.75);
}

.svwell:has(.svphoto) .svdetail .svsize { color: var(--on-photo); }

/* ==========================================================================
   59. Survey-led card type — адаптив
   ========================================================================== */

@media (max-width: 1600px) {
  .svpage .lccards--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1240px) {
  /* Первыми уходят отметки на снимке и врезка детали: они держатся на
     пикселях кадра. */
  .svmark,
  .svdetail { display: none; }
}

@media (max-width: 1000px) {
  .svpage .lccards--3 { grid-template-columns: minmax(0, 1fr); }

  /* Затем план фасада. */
  .svelev { display: none; }
}

@media (max-width: 600px) {
  .svpricerow {
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }

  .svpricecol { align-items: flex-start; }
  .svmeta,
  .svrepairs,
  .svledger { text-align: left; }
  .svledger { align-items: flex-start; }

  .svacts { grid-template-columns: minmax(0, 1fr); }

  .svblock { grid-template-columns: minmax(0, 1fr); }

  .svblock__cell + .svblock__cell {
    border-left: 0;
    border-top: 1px solid rgba(var(--ink-rgb), 0.14);
  }

  /* Сравнение схлопывается до своей цифры. */
  .svcompare__row { display: none; }

  .svband__row,
  .svcompare__head,
  .svreport__head,
  .svelev__head,
  .svprov { flex-wrap: wrap; row-gap: 8px; }

  .svprov { white-space: normal; }
  .svprov__rule { display: none; }

  .svband__grade,
  .svband__valuer,
  .svmeta,
  .svgrade__label,
  .svgrade__count,
  .svframes { white-space: normal; }

  .svrow--numbers { grid-template-columns: 30px minmax(0, 1fr) auto; }
}

/* ==========================================================================
   60. Grid view — экран поиска
   ========================================================================== */

/* У страницы нет шапки: результаты начинаются с запроса, а не с заголовка.
   Ритм замерен по эталону: 5px до крошек, 80 до формы, 26 до сортировки,
   12 до сетки и 96 между нижними плитами. Отступ у каждой секции свой,
   поэтому общего gap здесь нет. */
/* Пятёрка сверху уже задана на <main>, поэтому здесь её нет: иначе выходит
   десять и крошки уезжают от шапки. */
.gvpage {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding-top: 0;
  padding-bottom: 0;
}

.gvsearch { margin-top: clamp(44px, 3.12vw, 80px); }
.gvcontrols { margin-top: clamp(18px, 1.02vw, 26px); }
.gvresults { margin-top: clamp(10px, 0.47vw, 12px); }

.gvnotshown,
.gvsave,
.gvnearby,
.gvmore { margin-top: clamp(50px, 3.75vw, 96px); }

/* Общие крошки несут свой нижний отступ и линейку — здесь ни того, ни другого:
   ритм задают сами секции. */
.crumbs--bare {
  margin: 0;
  padding-bottom: 0;
  border-bottom: 0;
}

.gvregister {
  text-align: right;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ink);
}

/* --- Поиск ----------------------------------------------------------------- */

.gvsearch {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: clamp(20px, 1.17vw, 30px);
}

/* На этой странице подписи полей стоят у самого верха своей плиты. */
.gvsearch .tplate__label,
.gvresults .tplate__label { top: 8px; }

.gvtabs {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 14px;
}

/* Переключатели на радиокнопках: страница работает и без сценария. */
.gvtab__input,
.gvpill__input {
  position: fixed;
  top: 0;
  left: 0;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.gvtab,
.gvpill,
.gvview {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: clamp(52px, 2.89vw, 74px);
  padding: 0 clamp(18px, 1.17vw, 30px);
  border-radius: var(--r-pill);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink);
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease;
}

.gvtab:hover,
.gvpill:hover,
.gvview:hover { background: rgba(var(--ink-rgb), 0.06); }

.gvtab__input:checked + .gvtab,
.gvpill__input:checked + .gvpill,
.gvpill__input:checked + .gvview {
  background: var(--ink);
  box-shadow: none;
  color: var(--bg);
}

.gvtab__input:focus-visible + .gvtab,
.gvpill__input:focus-visible + .gvpill,
.gvpill__input:focus-visible + .gvview {
  outline: 2px solid var(--accent);
  outline-offset: 3px;
}

.gvtabs__note {
  margin-left: auto;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
  text-align: right;
}

.gvtabnote { display: none; }

#gvtab-0:checked ~ .gvtabs__note .gvtabnote--0 { display: inline; }
#gvtab-1:checked ~ .gvtabs__note .gvtabnote--1 { display: inline; }
#gvtab-2:checked ~ .gvtabs__note .gvtabnote--2 { display: inline; }
#gvtab-3:checked ~ .gvtabs__note .gvtabnote--3 { display: inline; }

/* Форма — одна панель из пяти равных ячеек и кнопки. */
.gvform {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr)) clamp(150px, 9.38vw, 240px);
  border-radius: 14px;
  overflow: hidden;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.gvfield {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: clamp(18px, 1.02vw, 26px) clamp(18px, 1.09vw, 28px);
  min-width: 0;
}

.gvfield + .gvfield { border-left: 1px solid rgba(var(--ink-rgb), 0.16); }

.gvfield__label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

/* Голый select: без этих трёх свойств родное поле вылезает из своей ячейки. */
.gvfield__select {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  height: clamp(30px, 1.33vw, 34px);
  padding: 0;
  border: 0;
  background: transparent;
  font-family: var(--text);
  font-size: clamp(16px, 0.86vw, 22px);
  color: var(--ink);
  cursor: pointer;
  /* Стрелку списка не срезаем: в эталоне это обычный select со своей стрелкой,
     и без неё поле не читается как выпадающее. */
}

/* Красная рамка вокруг поля читается как ошибка и висит после выбора:
   фокус показывает линейка под полем, а не квадрат вокруг него. */
.gvfield__select:focus,
.gvfield__select:focus-visible {
  outline: none;
  border-bottom-style: solid;
  border-bottom-width: 3px;
  border-bottom-color: var(--accent);
}

.gvform__submit {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  border: 0;
  background: var(--ink);
  color: var(--bg);
  font-family: var(--mono);
  font-size: 13px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 0.2s ease;
}

.gvform__submit:hover,
.gvform__submit:focus-visible {
  background: var(--accent);
  color: var(--on-photo);
}

.gvarrow {
  font-family: var(--text);
  font-size: 20px;
  letter-spacing: 0;
  line-height: 1;
}

/* --- Сортировка и вид ------------------------------------------------------ */

.gvcontrols {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(20px, 1.56vw, 40px);
  align-items: center;
}

.gvsorts,
.gvviews {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}

.gvcontrols__label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.gvsorts .gvpill { height: clamp(46px, 2.27vw, 58px); padding: 0 clamp(14px, 0.94vw, 24px); }

.gvview {
  width: clamp(46px, 2.27vw, 58px);
  height: clamp(46px, 2.27vw, 58px);
  padding: 0;
  font-size: 13px;
  letter-spacing: 0.1em;
}

/* --- Результаты ------------------------------------------------------------ */

.gvresults {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: clamp(24px, 1.56vw, 40px);
}

.gvgrid {
  display: grid;
  gap: clamp(20px, 1.56vw, 40px);
  align-items: stretch;
}

.gvgrid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.gvgrid--4 .gvwell { height: clamp(165px, 11.72vw, 300px); }
.gvgrid--4 .gvsize--4 { display: block; }
.gvgrid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gvgrid--3 .gvwell { height: clamp(187px, 13.28vw, 340px); }
.gvgrid--3 .gvsize--3 { display: block; }
.gvgrid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gvgrid--2 .gvwell { height: clamp(231px, 16.41vw, 420px); }
.gvgrid--2 .gvsize--2 { display: block; }
.gvgrid--1 { grid-template-columns: minmax(0, 1fr); }
.gvgrid--1 .gvwell { height: clamp(209px, 14.84vw, 380px); }
.gvgrid--1 .gvsize--1 { display: block; }

/* Одна колонка — карточка ложится набок: снимок слева, тело справа. */
.gvgrid--1 .gvcard {
  display: grid;
  grid-template-columns: clamp(320px, 35.16vw, 900px) minmax(0, 1fr);
}

.gvgrid--4 .gvaddress { font-size: clamp(18px, 1.17vw, 30px); }
.gvgrid--4 .gvprice { font-size: clamp(20px, 1.33vw, 34px); }

.gvcard {
  display: flex;
  flex-direction: column;
  border-radius: 14px;
  overflow: hidden;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  transition: transform 0.24s ease, box-shadow 0.24s ease;
}

.gvcard:hover {
  transform: translateY(-8px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.55);
}

.gvcard[hidden] { display: none; }

.gvwell {
  position: relative;
  display: block;
  height: clamp(190px, 13.28vw, 340px);
  background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.1) 0 2px, transparent 2px 14px);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.18);
}

.gvgrid--1 .gvwell { border-bottom: 0; border-right: 1px solid rgba(var(--ink-rgb), 0.18); }

.gvphoto {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Подпись называет коробку текущего вида — видна только своя. */
/* Плашка компактная: в эталоне здесь просто строка в 13px, и значки под ней
   стоят на 64px — крупная подложка съедала бы этот промежуток. */
.gvsize {
  display: none;
  position: absolute;
  left: 50%;
  top: clamp(16px, 0.86vw, 22px);
  transform: translateX(-50%);
  padding: 4px 12px;
  border-radius: 5px;
  background: rgba(var(--bg-rgb), 0.86);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
  font-family: var(--mono);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
  white-space: nowrap;
  pointer-events: none;
}

/* Значки стоят по верхнему краю, а подпись размера — по центру между ними:
   они не пересекаются, и колодец не начинается с пустой полосы. */
.gvbadges {
  position: absolute;
  left: 22px;
  top: 22px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
}

.gvstatus {
  display: inline-flex;
  align-items: center;
  height: 38px;
  padding: 0 18px;
  border-radius: var(--r-pill);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  white-space: nowrap;
}

.gvstatus--sale { background: var(--accent); color: var(--on-photo); }

/* На снимке — своя земля в обеих темах. */
.gvstatus--offer,
.gvframes,
.gvchip {
  background: rgba(var(--scrim-rgb), 0.62);
  box-shadow: inset 0 0 0 1px rgba(var(--on-photo-rgb), 0.3);
  color: var(--on-photo);
}

.gvheart {
  position: absolute;
  right: 22px;
  top: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  border-radius: var(--r-pill);
  background: rgba(var(--scrim-rgb), 0.62);
  box-shadow: inset 0 0 0 1px rgba(var(--on-photo-rgb), 0.3);
  color: var(--on-photo);
  font-size: 17px;
  line-height: 1;
  transition: background 0.2s ease;
}

.gvcard:hover .gvheart { background: var(--accent); }

.gvframes {
  position: absolute;
  left: 22px;
  bottom: 20px;
  display: inline-flex;
  align-items: center;
  height: 34px;
  padding: 0 16px;
  border-radius: var(--r-pill);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  white-space: nowrap;
}

.gvbody {
  display: flex;
  flex-direction: column;
  flex: 1;
  gap: clamp(10px, 0.55vw, 14px);
  padding: clamp(20px, 1.17vw, 30px) clamp(20px, 1.17vw, 30px) clamp(18px, 1.02vw, 26px);
}

.gvhead {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.gvhead__ref { color: var(--accent); white-space: nowrap; }
.gvhead__meta { color: var(--faint); text-align: right; }

.gvaddress {
  font-family: var(--display);
  font-size: clamp(22px, 1.41vw, 36px);
  line-height: 1.06;
  letter-spacing: -0.018em;
}

.gvpricerow {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
}

.gvpricecol {
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-width: 0;
}

.gvprice {
  font-family: var(--display);
  font-size: clamp(25px, 1.64vw, 42px);
  line-height: 1;
  white-space: nowrap;
}

.gvprice--big { font-size: clamp(28px, 1.80vw, 46px); }

.gvunit {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--faint);
}

/* Класс отчёта: A спокойный, B и C на красной подложке. */
.gvgrade {
  display: inline-flex;
  align-items: center;
  flex: none;
  height: 34px;
  padding: 0 14px;
  border-radius: var(--r-pill);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  white-space: nowrap;
}

.gvgrade--a { background: rgba(var(--ink-rgb), 0.06); color: var(--ink); }
.gvgrade--b { background: rgba(var(--accent-rgb), 0.08); color: var(--accent); }
.gvgrade--c { background: rgba(var(--accent-rgb), 0.14); color: var(--accent); }

.gvfacts {
  display: flex;
  align-items: center;
  padding: 13px 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.14);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--ink);
}

.gvfacts > span { flex: 1; text-align: center; white-space: nowrap; }
.gvfacts > span:first-child { text-align: left; }
.gvfacts__floor { text-align: right; color: var(--faint); }

/* Разделитель — волосок, а не колонка: селектор той же силы, что у ячеек,
   иначе flex:1 растягивает его в серую полосу. */
.gvfacts > .gvfacts__rule {
  flex: none;
  width: 1px;
  height: 13px;
  background: rgba(var(--ink-rgb), 0.2);
}

.gvsurvey {
  font-size: clamp(15px, 0.66vw, 17px);
  font-weight: 300;
  line-height: 1.5;
  color: var(--muted);
}

.gvfoot {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  margin-top: auto;
  padding-top: 18px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.14);
}

.gvperson {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}

.gvperson__disc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 38px;
  height: 38px;
  border-radius: var(--r-pill);
  background: rgba(var(--ink-rgb), 0.08);
  font-family: var(--display);
  font-size: 15px;
  color: var(--ink);
}

/* Портрет советника занимает место диска с инициалами. */
.gvperson__photo {
  flex: none;
  width: 38px;
  height: 38px;
  border-radius: var(--r-pill);
  object-fit: cover;
}

.gvperson__name {
  font-size: 16px;
  color: var(--ink);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Главная кнопка — «Read the survey»: в этом и есть довод марки. */
.gvbtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  height: clamp(46px, 2.19vw, 56px);
  padding: 0 clamp(16px, 0.94vw, 24px);
  border-radius: var(--r-pill);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.4);
  color: var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: background 0.2s ease, color 0.2s ease;
}

.gvbtn:hover,
.gvbtn:focus-visible {
  background: var(--ink);
  color: var(--bg);
}

.gvbtn--ink {
  background: var(--ink);
  box-shadow: none;
  color: var(--bg);
}

.gvbtn--ink:hover,
.gvbtn--ink:focus-visible {
  background: var(--accent);
  color: var(--on-photo);
}

.gvbtn--big {
  height: clamp(56px, 2.97vw, 76px);
  padding: 0 clamp(20px, 1.25vw, 32px);
  font-size: 13px;
}

.gvbtn .gvarrow { font-size: 17px; }
.gvbtn--big .gvarrow { font-size: 20px; }

/* --- Отмеченная запись ------------------------------------------------------ */

/* Она вынута из сетки, чтобы не показаться дважды. */
.gvfeat {
  display: grid;
  grid-template-columns: clamp(360px, 40.62vw, 1040px) minmax(0, 1fr);
  border-radius: 14px;
  overflow: hidden;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  transition: box-shadow 0.24s ease;
}

.gvfeat:hover { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.55); }
.gvfeat[hidden] { display: none; }

.gvwell--feat {
  height: clamp(260px, 20.31vw, 520px);
  border-bottom: 0;
  border-right: 1px solid rgba(var(--ink-rgb), 0.18);
}

.gvsize--one { display: block; }

.gvchip {
  position: absolute;
  left: 26px;
  top: 26px;
  display: inline-flex;
  align-items: center;
  height: 38px;
  padding: 0 18px;
  border-radius: var(--r-pill);
  background: rgba(var(--scrim-rgb), 0.72);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gold);
  white-space: nowrap;
}

.gvwell--feat .gvframes { left: 26px; bottom: 24px; }

.gvfeat__body {
  display: flex;
  flex-direction: column;
  gap: clamp(12px, 0.70vw, 18px);
  padding: clamp(24px, 1.72vw, 44px) clamp(24px, 1.80vw, 46px) clamp(22px, 1.56vw, 40px);
}

.gvfeat__address {
  font-family: var(--display);
  font-size: clamp(38px, 2.50vw, 64px);
  line-height: 1.02;
  letter-spacing: -0.022em;
}

.gvfeat__blurb {
  font-size: clamp(16px, 0.78vw, 20px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--muted);
  text-wrap: pretty;
}

.gvstats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  padding: clamp(14px, 0.78vw, 20px) 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.14);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
}

.gvstat {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

.gvstat__value {
  font-family: var(--display);
  font-size: clamp(20px, 1.33vw, 34px);
  line-height: 1;
  white-space: nowrap;
}

.gvstat__value--red { color: var(--accent); }

.gvstat__key {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.gvfeat__foot {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(14px, 0.86vw, 22px);
  align-items: center;
  margin-top: auto;
}

.gvfeat__acts {
  display: flex;
  align-items: center;
  gap: 14px;
}

/* --- Пусто ------------------------------------------------------------------ */

.gvempty[hidden] { display: none; }

.gvempty {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 14px;
  padding: clamp(32px, 2.34vw, 60px) clamp(24px, 1.80vw, 46px);
  border-radius: 14px;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.gvempty__kicker {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--accent);
}

.gvempty__head {
  font-family: var(--display);
  font-size: clamp(26px, 1.72vw, 44px);
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.gvempty__note {
  font-size: clamp(16px, 0.78vw, 20px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--muted);
}

/* --- Что не показано -------------------------------------------------------- */

.gvnotshown {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: clamp(16px, 1.02vw, 26px);
  align-items: center;
  padding: clamp(18px, 1.02vw, 26px) clamp(20px, 1.25vw, 32px);
  border-radius: 14px;
  background: rgba(var(--accent-rgb), 0.06);
  box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.3);
}

.gvseal {
  display: inline-flex;
  align-items: center;
  padding: 8px 18px;
  border-radius: 4px;
  box-shadow: inset 0 0 0 2px var(--accent);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--accent);
  white-space: nowrap;
  transform: rotate(-6deg);
}

.gvnotshown__text {
  font-size: clamp(16px, 0.82vw, 21px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--ink);
  text-wrap: pretty;
}

.gvnotshown__link {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
  text-decoration: none;
  white-space: nowrap;
}

.gvnotshown__link .gvarrow { font-size: 16px; }
.gvnotshown__link:hover,
.gvnotshown__link:focus-visible { color: var(--ink); }

/* --- Сохранить поиск -------------------------------------------------------- */

.gvsave {
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(280px, 24.22vw, 620px);
  gap: clamp(24px, 2.34vw, 60px);
  align-items: center;
  padding: clamp(24px, 1.72vw, 44px) clamp(24px, 1.80vw, 46px);
  border-radius: 14px;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.gvsave__text {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.gvsave__kicker {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--accent);
}

.gvsave__head {
  font-family: var(--display);
  font-size: clamp(26px, 1.72vw, 44px);
  line-height: 1.08;
  letter-spacing: -0.02em;
}

.gvsave__note {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.gvsave__form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
}

.gvsave__field {
  display: flex;
  align-items: center;
  gap: 14px;
  height: clamp(60px, 3.28vw, 84px);
  padding: 0 clamp(16px, 1.02vw, 26px);
  border-radius: var(--r-pill);
  background: var(--bg);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.gvsave__caret {
  flex: none;
  width: 3px;
  height: 24px;
  background: var(--accent);
}

.gvsave__label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}

.gvsave__input {
  width: 100%;
  min-width: 0;
  border: 0;
  background: transparent;
  font-family: var(--mono);
  font-size: 13px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink);
}

.gvsave__input::placeholder { color: var(--faint); }

.gvsave__input:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 6px;
}

/* --- Рядом ------------------------------------------------------------------ */

.gvnearby {
  display: flex;
  flex-direction: column;
  gap: clamp(18px, 1.02vw, 26px);
}

.gvnearby__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: clamp(18px, 1.33vw, 34px);
  padding-bottom: 14px;
  border-bottom: 2px solid var(--ink);
}

.gvnearby__title {
  font-family: var(--display);
  font-size: clamp(26px, 1.72vw, 44px);
  line-height: 1;
  letter-spacing: -0.022em;
}

.gvnearby__note {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
  text-align: right;
}

.gvnearby__row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(20px, 1.56vw, 40px);
}

.gvnear {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: clamp(20px, 1.25vw, 32px) clamp(20px, 1.33vw, 34px);
  border-radius: 14px;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
  color: var(--ink);
  text-decoration: none;
  transition: transform 0.24s ease, box-shadow 0.24s ease;
}

.gvnear:hover,
.gvnear:focus-visible {
  transform: translateY(-6px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.55);
}

.gvnear__text {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}

.gvnear__name {
  font-family: var(--display);
  font-size: clamp(23px, 1.48vw, 38px);
  line-height: 1;
}

.gvnear__note {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.gvnear__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 52px;
  height: 52px;
  border-radius: var(--r-pill);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
  font-family: var(--text);
  font-size: 19px;
}

/* --- Ещё результаты --------------------------------------------------------- */

.gvmore {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: clamp(16px, 1.33vw, 34px);
  align-items: center;
  padding-top: clamp(18px, 1.02vw, 26px);
  border-top: 1px solid rgba(var(--ink-rgb), 0.22);
}

.gvmore__count,
.gvmore__register {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.gvmore__register { text-align: right; color: var(--ink); }

.gvmore__button { gap: 16px; padding: 0 clamp(20px, 1.56vw, 40px); }
.gvarrow--down { font-size: 20px; }

/* Тёмная тема: у списков нужен свой цвет, иначе они рисуются тёмным по тёмному. */
[data-theme="dark"] .gvfield__select,
[data-theme="dark"] .gvfield__select option {
  color: var(--ink);
  background: var(--sheet);
}

/* ==========================================================================
   61. Grid view — адаптив
   ========================================================================== */

@media (max-width: 1900px) {
  /* Форма из шести ячеек в строку живёт только на канве. */
  .gvform { grid-template-columns: repeat(3, minmax(0, 1fr)); }

  .gvfield:nth-child(3n + 1) { border-left: 0; }
  .gvfield:nth-child(n + 4) { border-top: 1px solid rgba(var(--ink-rgb), 0.16); }

  .gvform__submit {
    grid-column: 1 / -1;
    height: clamp(60px, 3.28vw, 84px);
    border-top: 1px solid rgba(var(--ink-rgb), 0.16);
  }

  .gvgrid--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1600px) {
  .gvgrid--4,
  .gvgrid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .gvfeat { grid-template-columns: minmax(0, 1fr); }
  .gvwell--feat { border-right: 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.18); }
}

@media (max-width: 1240px) {
  .gvsave { grid-template-columns: minmax(0, 1fr); }
  .gvnearby__row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1000px) {
  .gvgrid--4,
  .gvgrid--3,
  .gvgrid--2 { grid-template-columns: minmax(0, 1fr); }

  /* Ниже этой ширины горизонтальная карточка складывается в обычную. */
  .gvgrid--1 .gvcard { grid-template-columns: minmax(0, 1fr); }
  .gvgrid--1 .gvwell { border-right: 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.18); }

  .gvform { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gvfield:nth-child(3n + 1) { border-left: 1px solid rgba(var(--ink-rgb), 0.16); }
  .gvfield:nth-child(2n + 1) { border-left: 0; }
  .gvfield:nth-child(n + 3) { border-top: 1px solid rgba(var(--ink-rgb), 0.16); }

  .gvcontrols { grid-template-columns: minmax(0, 1fr); }
  .gvmore { grid-template-columns: minmax(0, 1fr); justify-items: start; }
  .gvmore__register { text-align: left; }
}

@media (max-width: 700px) {
  .gvform { grid-template-columns: minmax(0, 1fr); }
  .gvfield { border-left: 0 !important; }
  .gvfield + .gvfield { border-top: 1px solid rgba(var(--ink-rgb), 0.16); }

  .gvnearby__row { grid-template-columns: minmax(0, 1fr); }

  .gvnotshown { grid-template-columns: minmax(0, 1fr); justify-items: start; }

  .gvsave__form { grid-template-columns: minmax(0, 1fr); }

  .gvstats { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .gvpricerow,
  .gvfeat__foot {
    flex-direction: column;
    grid-template-columns: minmax(0, 1fr);
    align-items: flex-start;
    gap: 12px;
  }

  .gvfoot { grid-template-columns: minmax(0, 1fr); }
  .gvfeat__acts { flex-wrap: wrap; }

  .gvfacts { flex-wrap: wrap; gap: 8px 0; }
  .gvfacts__rule { display: none; }
  .gvfacts > span { flex: 1 0 50%; text-align: left; }
  .gvfacts__floor { text-align: left; }

  .gvhead,
  .gvtabs__note,
  .gvnearby__head { flex-wrap: wrap; }

  .gvhead__meta,
  .gvregister,
  .gvnearby__note { text-align: left; }

  /* Длинная надпись значка на 320px не помещается в одну строку. */
  .gvchip {
    right: 26px;
    top: 26px;
    height: auto;
    padding: 8px 14px;
    white-space: normal;
  }
}

/* ==========================================================================
   62. Grid view v2 — реестр чертёжных листов
   ========================================================================== */

/* Второй экран поиска. Тот же набор записей, что и на grid-view.html, но
   подача другая, и различия — это и есть работа: картотечный лист вместо
   строки формы, шкала вместо ряда пилюль, чертёжный лист вместо карточки.
   Заливок у листов нет: всё держится на линиях, уголках и размерных линиях. */
.g2page {
  display: flex;
  flex-direction: column;
  padding-top: 0;
  padding-bottom: 0;
}

.g2search { margin-top: clamp(26px, 1.56vw, 40px); }
.g2sort { margin-top: clamp(18px, 1.02vw, 26px); }
.g2results { margin-top: clamp(10px, 0.47vw, 12px); }

.g2refused,
.g2save,
.g2nearby,
.g2more { margin-top: clamp(34px, 2.19vw, 56px); }

/* Общие крошки несут свой нижний отступ и линейку — здесь ни того, ни другого. */
.crumbs--bare {
  margin: 0;
  padding-bottom: 0;
  border-bottom: 0;
}

.g2register {
  margin: 0;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

/* --- Общие детали чертежа ------------------------------------------------- */
/* Уголки: четыре штриха в 14px от края листа. Они и делают лист листом. */
.g2tick,
.g2wtick,
.g2btick,
.g2rtick,
.g2stick,
.g2ftick,
.g2ntick {
  position: absolute;
  width: clamp(14px, 0.86vw, 22px);
  height: clamp(14px, 0.86vw, 22px);
  pointer-events: none;
}

.g2tick { border-color: rgba(var(--ink-rgb), 0.4); }
.g2tick--tl { left: 14px; top: 14px; border-left-style: solid; border-left-width: 1px; border-top-style: solid; border-top-width: 1px; }
.g2tick--tr { right: 14px; top: 14px; border-right-style: solid; border-right-width: 1px; border-top-style: solid; border-top-width: 1px; }
.g2tick--bl { left: 14px; bottom: 14px; border-left-style: solid; border-left-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; }
.g2tick--br { right: 14px; bottom: 14px; border-right-style: solid; border-right-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; }

.g2wtick {
  width: clamp(14px, 0.78vw, 20px);
  height: clamp(14px, 0.78vw, 20px);
  border-color: rgba(var(--ink-rgb), 0.45);
}
.g2wtick--tl { left: 12px; top: 12px; border-left-style: solid; border-left-width: 1px; border-top-style: solid; border-top-width: 1px; }
.g2wtick--br { right: 12px; bottom: 12px; border-right-style: solid; border-right-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; }

.g2rtick { border-color: rgba(var(--accent-rgb), 0.45); }
.g2rtick--tl { left: 14px; top: 14px; border-left-style: solid; border-left-width: 1px; border-top-style: solid; border-top-width: 1px; }
.g2rtick--tr { right: 14px; top: 14px; border-right-style: solid; border-right-width: 1px; border-top-style: solid; border-top-width: 1px; }
.g2rtick--bl { left: 14px; bottom: 14px; border-left-style: solid; border-left-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; }
.g2rtick--br { right: 14px; bottom: 14px; border-right-style: solid; border-right-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; }

.g2stick,
.g2ntick,
.g2ftick { border-color: rgba(var(--ink-rgb), 0.4); }
.g2stick--tl,
.g2ntick--tl,
.g2ftick--tl { left: 14px; top: 14px; border-left-style: solid; border-left-width: 1px; border-top-style: solid; border-top-width: 1px; }
.g2stick--tr { right: 14px; top: 14px; border-right-style: solid; border-right-width: 1px; border-top-style: solid; border-top-width: 1px; }
.g2stick--bl { left: 14px; bottom: 14px; border-left-style: solid; border-left-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; }
.g2stick--br,
.g2ntick--br,
.g2ftick--br { right: 14px; bottom: 14px; border-right-style: solid; border-right-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; }
.g2ftick { width: clamp(10px, 0.55vw, 14px); height: clamp(10px, 0.55vw, 14px); }
.g2ftick--tl { left: 8px; top: 8px; }
.g2ftick--br { right: 8px; bottom: 8px; }

/* Строка листа: номер слева, штамп в середине, место и дата справа. */
.g2sheetline {
  display: flex;
  align-items: baseline;
  gap: clamp(12px, 0.78vw, 20px);
  margin: 0;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--faint);
}

.g2sheetline__ref { color: var(--accent); }
.g2sheetline__drawer { margin-left: auto; }

/* Штамп — прямоугольник в две линии, как на настоящем чертеже. */
.g2stamp {
  display: inline-flex;
  align-items: center;
  padding: 7px clamp(10px, 0.55vw, 14px);
  border-radius: 4px;
  box-shadow: inset 0 0 0 2px var(--accent);
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--accent);
}

/* Начерченная кнопка — подпись страницы: рамка в одну линию, свои уголки,
   на наведении заливается тушью. Ею заменены все пилюли v1. */
.g2drawn {
  position: relative;
  display: inline-grid;
  grid-template-columns: 1fr auto;
  gap: clamp(10px, 0.62vw, 16px);
  align-items: center;
  padding: clamp(14px, 0.70vw, 18px) clamp(16px, 0.94vw, 24px);
  border: 0;
  border-radius: 6px;
  background: transparent;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
  color: var(--ink);
  cursor: pointer;
  transition: background 220ms ease, color 220ms ease, box-shadow 220ms ease;
}

.g2btick {
  width: clamp(10px, 0.55vw, 14px);
  height: clamp(10px, 0.55vw, 14px);
  border-color: rgba(var(--ink-rgb), 0.34);
}
.g2btick--tl { left: 8px; top: 8px; border-left-style: solid; border-left-width: 1px; border-top-style: solid; border-top-width: 1px; }
.g2btick--tr { right: 8px; top: 8px; border-right-style: solid; border-right-width: 1px; border-top-style: solid; border-top-width: 1px; }
.g2btick--bl { left: 8px; bottom: 8px; border-left-style: solid; border-left-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; }
.g2btick--br { right: 8px; bottom: 8px; border-right-style: solid; border-right-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; }

.g2drawn__text {
  position: relative;
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.24em;
  text-transform: uppercase;
}

.g2arrow {
  position: relative;
  font-family: var(--text);
  font-size: clamp(15px, 0.74vw, 19px);
  line-height: 1;
}

.g2drawn:hover,
.g2drawn:focus-visible {
  background: var(--ink);
  box-shadow: inset 0 0 0 1px var(--ink);
  color: var(--bg);
}

.g2drawn:hover .g2btick,
.g2drawn:focus-visible .g2btick { border-color: rgba(var(--bg-rgb), 0.4); }

/* --- 1. Поиск: картотечный лист ------------------------------------------- */
.g2search { position: relative; }

.g2tabs {
  display: flex;
  align-items: flex-end;
  gap: 6px;
  margin: clamp(12px, 0.62vw, 16px) 0 0;
  border-bottom: 2px solid var(--ink);
}

.g2tab__input,
.g2pill__input {
  position: fixed;
  top: 0;
  left: 0;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.g2tab {
  display: inline-flex;
  align-items: center;
  gap: clamp(8px, 0.39vw, 10px);
  height: clamp(46px, 2.50vw, 64px);
  padding: 0 clamp(18px, 1.41vw, 36px);
  border-radius: 8px 8px 0 0;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2);
  cursor: pointer;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
  transition: height 200ms ease, background 200ms ease, color 200ms ease;
}

/* Выбранная папка выше остальных на 12px и стоит на общей линейке. */
.g2tab__input:checked + .g2tab {
  height: clamp(54px, 2.97vw, 76px);
  background: var(--ink);
  box-shadow: none;
  color: var(--bg);
}

.g2tab__input:checked + .g2tab .g2tab__badge { color: rgba(var(--bg-rgb), 0.7); }

/* Заметка вкладки стоит в конце той же линейки и говорит, что за папка. */
.g2tabs__note {
  margin-left: auto;
  padding-bottom: clamp(10px, 0.55vw, 14px);
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.g2tab__input:focus-visible + .g2tab { outline: 2px solid var(--accent); outline-offset: 2px; }

/* У «Sell» значка нет намеренно: его счёт — фраза, и в числовой ячейке
   вкладка растягивалась втрое против соседей. */
.g2tab__badge {
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.14em;
  color: var(--accent);
}

.g2form { display: block; }

.g2form__fields {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(24px, 1.95vw, 50px);
  padding-top: clamp(24px, 1.48vw, 38px);
}

.g2field {
  display: flex;
  flex-direction: column;
  gap: clamp(8px, 0.39vw, 10px);
  min-width: 0;
  margin: 0;
}

.g2field__line {
  order: 1;
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: clamp(8px, 0.39vw, 10px);
}

.g2field__no {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.22em;
  color: var(--accent);
}

.g2field__label {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

/* Поле — не коробка, а строка на линейке: Playfair 30px над линией в 2px. */
.g2field__select {
  order: 2;
  width: 100%;
  padding: 0 0 clamp(8px, 0.39vw, 10px);
  border: 0;
  border-bottom: 2px solid rgba(var(--ink-rgb), 0.26);
  border-radius: 0;
  background: transparent;
  font-family: var(--display);
  font-size: clamp(20px, 1.17vw, 30px);
  line-height: 1.2;
  color: var(--ink);
  cursor: pointer;
}

.g2field__state {
  order: 3;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

/* Общая красная рамка фокуса вокруг поля читается как ошибка и остаётся
   висеть после выбора, поэтому фокус показывает линейка под полем. */
.g2field__select:focus,
.g2field__select:focus-visible {
  outline: none;
  border-bottom-width: 3px;
  border-bottom-color: var(--accent);
}

/* Заданное поле подчёркнуто красным и говорит «Set» — форма всегда
   отвечает, что именно спрошено. */
.g2field__state--set { color: var(--accent); }
.g2field:has(.g2field__state--set) .g2field__select { border-bottom-color: var(--accent); }

.g2searchfoot {
  display: flex;
  align-items: center;
  gap: clamp(14px, 1.02vw, 26px);
  margin: clamp(20px, 1.33vw, 34px) 0 0;
  padding-top: clamp(16px, 0.94vw, 24px);
  border-top: 2px solid var(--ink);
}

.g2searchfoot__count {
  font-family: var(--display);
  font-size: clamp(26px, 1.56vw, 40px);
  line-height: 1;
}

.g2searchfoot__terms,
.g2searchfoot__set {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.g2searchfoot__set { color: var(--accent); }

.g2clear {
  display: inline-flex;
  align-items: center;
  height: clamp(38px, 1.88vw, 48px);
  padding: 0 clamp(16px, 0.86vw, 22px);
  border: 0;
  border-radius: 999px;
  background: transparent;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
  cursor: pointer;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
  transition: background 200ms ease;
}

.g2clear:hover,
.g2clear:focus-visible { background: rgba(var(--ink-rgb), 0.07); }

.g2searchfoot__rule {
  width: 1px;
  height: clamp(12px, 0.62vw, 16px);
  background: rgba(var(--ink-rgb), 0.24);
}

/* Единственная залитая пилюля страницы — сама команда «искать». */
.g2go {
  display: inline-flex;
  align-items: center;
  gap: clamp(10px, 0.62vw, 16px);
  height: clamp(54px, 3.12vw, 80px);
  margin-left: auto;
  padding: 0 clamp(22px, 1.56vw, 40px);
  border: 0;
  border-radius: 999px;
  background: var(--ink);
  cursor: pointer;
  color: var(--bg);
  transition: background 200ms ease;
}

.g2go:hover,
.g2go:focus-visible { background: var(--accent); }

.g2go__text {
  font-family: var(--mono);
  font-size: clamp(12px, 0.55vw, 14px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
}

.g2go .g2arrow { font-size: clamp(16px, 0.86vw, 22px); }

/* --- 2. Сортировка как шкала ---------------------------------------------- */
/* Четыре порядка стоят рядом, каждый называет, что ставит первым, и
   выбранный заполняет свою полосу. Пятая колонка — переключатель вида. */
.g2sort {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)) minmax(0, clamp(180px, 15.23vw, 390px));
}

.g2orders { display: contents; }

.g2order {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: clamp(14px, 0.70vw, 18px) clamp(14px, 1.02vw, 26px);
  border-top: 2px solid var(--ink);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.18);
  cursor: pointer;
}

.g2order__no,
.g2order__tag {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.g2order__tag { margin-left: auto; }

.g2order__name {
  font-family: var(--display);
  font-size: clamp(20px, 1.17vw, 30px);
  line-height: 1.06;
  letter-spacing: -0.016em;
}

.g2order__bar {
  display: block;
  height: 4px;
  border-radius: 999px;
  background: rgba(var(--ink-rgb), 0.14);
}

.g2order__fill {
  display: block;
  width: 34%;
  height: 100%;
  border-radius: 999px;
  background: rgba(var(--ink-rgb), 0.34);
  transition: width 240ms ease, background 240ms ease;
}

.g2order__leadkey {
  margin-top: 6px;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

/* Сам лидер — не мелкий шрифт: порядок называет запись, которую ставит первой. */
.g2order__lead {
  font-size: clamp(15px, 0.74vw, 19px);
  font-weight: 300;
  line-height: 1.3;
  color: var(--ink);
}

/* Выбранный порядок: красная линейка сверху, подкладка и полная полоса. */
.g2pill__input:checked + .g2order {
  border-top-color: var(--accent);
  background: rgba(var(--accent-rgb), 0.05);
}

.g2pill__input:checked + .g2order .g2order__no { color: var(--accent); }
.g2pill__input:checked + .g2order .g2order__fill { width: 100%; background: var(--accent); }
.g2pill__input:focus-visible + .g2order,
.g2pill__input:focus-visible + .g2view { outline: 2px solid var(--accent); outline-offset: 2px; }

.g2order__no,
.g2order__tag { display: inline; }

.g2order__head { display: flex; }

.g2viewpick {
  grid-column: 5;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(12px, 0.78vw, 20px);
  padding: clamp(14px, 0.70vw, 18px) 0 clamp(14px, 0.70vw, 18px) clamp(14px, 1.02vw, 26px);
  border-top: 2px solid var(--ink);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.18);
  border-left: 1px solid rgba(var(--ink-rgb), 0.16);
}

.g2viewpick__label {
  white-space: nowrap;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.g2viewpick__row { display: inline-flex; gap: 8px; }

.g2view {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(40px, 1.95vw, 50px);
  height: clamp(40px, 1.95vw, 50px);
  border-radius: 6px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
  cursor: pointer;
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  color: var(--muted);
  transition: background 200ms ease, color 200ms ease;
}

.g2pill__input:checked + .g2view {
  background: var(--ink);
  box-shadow: none;
  color: var(--bg);
}

/* Кнопка «сетка»: из листа она возвращает к плотности по умолчанию и горит,
   пока страница показывает сетку в любой из плотностей. */
/* Два переключателя режима стоят рядом, после плотностей: сетка, затем лист. */
.g2view--grid {
  order: 1;
  margin-left: clamp(8px, 0.39vw, 10px);
  font-size: clamp(13px, 0.62vw, 16px);
}

.g2view--list { order: 2; }

#g2view-4:checked ~ .g2view--grid,
#g2view-3:checked ~ .g2view--grid,
#g2view-2:checked ~ .g2view--grid {
  background: var(--ink);
  box-shadow: none;
  color: var(--bg);
}

.g2sortfoot {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: clamp(12px, 0.78vw, 20px);
  margin: 0;
  padding-top: clamp(14px, 0.86vw, 22px);
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.g2sortfoot__count { color: var(--ink); }

.g2sortfoot__rule {
  flex: 1;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.14);
}

/* --- 3. Результаты: один лист, два поворота -------------------------------- */
.g2results { position: relative; }

/* Плита «нет совпадений» лежит скрытой: класс с display побеждает общий
   [hidden], поэтому показываем её только без атрибута. */
.g2empty:not([hidden]) {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: clamp(10px, 0.55vw, 14px);
  margin: 0 0 clamp(20px, 1.56vw, 40px);
  padding: clamp(32px, 2.34vw, 60px) clamp(24px, 1.80vw, 46px);
  border-radius: 14px;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.g2empty__kicker {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--accent);
}

.g2empty__head {
  font-family: var(--display);
  font-size: clamp(28px, 1.72vw, 44px);
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.g2empty__note {
  font-size: clamp(16px, 0.78vw, 20px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--muted);
}

.g2grid {
  display: grid;
  gap: clamp(20px, 1.56vw, 40px);
  align-items: stretch;
}

.g2grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.g2grid--4 .g2well { height: clamp(165px, 11.72vw, 300px); }
.g2grid--4 .g2size--4 { display: block; }
.g2grid--4 .g2address { font-size: clamp(18px, 1.17vw, 30px); }
.g2grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.g2grid--3 .g2well { height: clamp(187px, 13.28vw, 340px); }
.g2grid--3 .g2size--3 { display: block; }
.g2grid--3 .g2address { font-size: clamp(22px, 1.41vw, 36px); }
.g2grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.g2grid--2 .g2well { height: clamp(231px, 16.41vw, 420px); }
.g2grid--2 .g2size--2 { display: block; }
.g2grid--2 .g2address { font-size: clamp(22px, 1.41vw, 36px); }
.g2grid--l { grid-template-columns: minmax(0, 1fr); }
.g2grid--l .g2well { height: clamp(286px, 20.31vw, 520px); }
.g2grid--l .g2size--l { display: block; }
.g2grid--l .g2address { font-size: clamp(39px, 2.50vw, 64px); }

/* Лист. Заливки нет — только рамка в одну линию и уголки; на наведении
   линия становится в две. Лист не всплывает: чертёж не подпрыгивает. */
.g2sheet {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: clamp(12px, 0.62vw, 16px);
  padding: clamp(16px, 1.02vw, 26px);
  border-radius: 14px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
  transition: box-shadow 240ms ease;
}

/* Скрытая запись должна оставаться скрытой и в альбомном виде: правило
   поворота (display: grid) стоит ниже и той же силы, поэтому без !important
   оно возвращало на экран всё, что скрипт спрятал. */
.g2sheet[hidden] { display: none !important; }

.g2sheet:hover,
.g2sheet:focus-within { box-shadow: inset 0 0 0 2px rgba(var(--ink-rgb), 0.55); }

/* Альбомный поворот: колонка кадра слева, тело справа. В нём же — единственный
   вид, где лист показывает текст. Отмеченная запись всегда альбомная. */
.g2grid--l .g2sheet,
.g2sheet--feat {
  display: grid;
  grid-template-columns: minmax(0, clamp(320px, 42.19vw, 1080px)) minmax(0, 1fr);
  gap: 0;
}

.g2sheet--feat {
  position: relative;
  margin-top: clamp(20px, 1.56vw, 40px);
  padding: clamp(16px, 1.02vw, 26px);
  border-radius: 14px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
  transition: box-shadow 240ms ease;
}

.g2grid--l .g2shot,
.g2sheet--feat .g2shot {
  padding: 8px clamp(18px, 1.33vw, 34px) 8px 8px;
  border-right: 1px solid rgba(var(--ink-rgb), 0.16);
}

.g2grid--l .g2body,
.g2sheet--feat .g2body { padding: 8px 8px 8px clamp(20px, 1.56vw, 40px); }

.g2grid--l .g2well,
.g2sheet--feat .g2well { height: clamp(240px, 20.31vw, 520px); }
.g2sheet--feat .g2size--one { display: block; }
.g2sheet--feat .g2address { font-size: clamp(34px, 2.50vw, 64px); }

/* Колонка кадра: высота потолка боком, ширина фасада сверху, колодец,
   метровая шкала снизу. В стопке колонка просто встаёт над телом. */
.g2shot {
  display: grid;
  grid-template-columns: clamp(24px, 1.33vw, 34px) minmax(0, 1fr);
  gap: clamp(10px, 0.55vw, 14px);
}

.g2shot__col {
  display: flex;
  flex-direction: column;
  gap: clamp(8px, 0.35vw, 9px);
  min-width: 0;
}

.g2shot__well { margin: 0; }

/* Размерная линия по вертикали: две засечки, волосок и подпись на бумаге,
   чтобы она разрывала линию, как на чертеже. */
.g2vert {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.g2vert__cap {
  position: absolute;
  left: 50%;
  width: clamp(16px, 0.86vw, 22px);
  height: 1px;
  margin-left: calc(clamp(16px, 0.86vw, 22px) / -2);
  background: var(--ink);
}

.g2vert__cap--t { top: 0; }
.g2vert__cap--b { bottom: 0; }

.g2vert__hair {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 1px;
  background: rgba(var(--ink-rgb), 0.4);
}

.g2vert__label {
  position: relative;
  padding: 8px 0;
  background: var(--bg);
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}

.g2dim {
  position: relative;
  display: block;
  height: clamp(12px, 0.55vw, 14px);
}

.g2dim__cap {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 1px;
  background: var(--ink);
}

.g2dim__cap--l { left: 0; }
.g2dim__cap--r { right: 0; }

.g2dim__hair {
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.4);
}

.g2dim__caption,
.g2scale {
  margin: 0;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.g2dim__caption { text-align: center; }

.g2scale {
  display: flex;
  justify-content: space-between;
  letter-spacing: 0.18em;
}

.g2scale__tick--end { color: var(--accent); }

/* Колодец кадра: штриховка, трети волосками, уголки, штамп и счётчик кадров. */
.g2well {
  position: relative;
  display: block;
  overflow: hidden;
  background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.1) 0 2px, transparent 2px 14px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
}

.g2photo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.g2guide {
  position: absolute;
  left: 0;
  right: 0;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.12);
}

.g2guide--1 { top: 33.33%; }
.g2guide--2 { top: 66.66%; }

.g2size {
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  display: none;
  transform: translateY(-50%);
  text-align: center;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
}

/* Надписи на снимке читаются и на светлом кадре: тёмная подложка,
   волосок и кремовая тушь — одинаково в обеих темах. */
.g2wstamp,
.g2wcount,
.g2wframes {
  position: absolute;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--on-photo);
}

.g2wstamp {
  left: 14px;
  top: 12px;
  display: inline-flex;
  align-items: center;
  padding: 7px clamp(10px, 0.55vw, 14px);
  border-radius: 4px;
  background: rgba(var(--scrim-rgb), 0.62);
  box-shadow: inset 0 0 0 1px rgba(var(--on-photo-rgb), 0.3);
  letter-spacing: 0.24em;
}

.g2wstamp--feat { box-shadow: inset 0 0 0 2px var(--accent); }

.g2wcount {
  right: 14px;
  top: 12px;
  padding: 6px clamp(8px, 0.39vw, 10px);
  border-radius: 4px;
  background: rgba(var(--scrim-rgb), 0.62);
}

.g2wframes {
  left: 14px;
  bottom: 12px;
  padding: 6px clamp(8px, 0.39vw, 10px);
  border-radius: 4px;
  background: rgba(var(--scrim-rgb), 0.62);
  letter-spacing: 0.18em;
}

/* Тело листа. Кнопка держится у низа, поэтому листы неравного содержания
   всё равно стоят в линию. */
.g2body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: clamp(12px, 0.62vw, 16px);
  min-width: 0;
}

.g2head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(10px, 0.62vw, 16px);
  margin: 0;
  padding: 0 8px clamp(10px, 0.55vw, 14px);
  border-bottom: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.g2head__ref { color: var(--accent); }
.g2head__where { color: var(--faint); text-align: right; }

.g2address {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(24px, 1.41vw, 36px);
  line-height: 1.02;
  letter-spacing: -0.022em;
}

/* Текст показывается только в альбомном виде: в стопке лист говорит цифрами. */
.g2blurb { display: none; }

.g2grid--l .g2blurb,
.g2sheet--feat .g2blurb {
  display: block;
  margin: 0;
  font-size: clamp(16px, 0.78vw, 20px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--muted);
  text-wrap: pretty;
}

/* Реестр неисправностей: сколько их, во что обойдутся, и чем занята смета. */
.g2faults {
  display: flex;
  flex-direction: column;
  gap: clamp(8px, 0.39vw, 10px);
}

.g2faults__head,
.g2faults__keys {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: clamp(8px, 0.39vw, 10px);
  margin: 0;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.g2faults__keys { letter-spacing: 0.16em; }
.g2faults__total { color: var(--accent); }

.g2bar {
  display: flex;
  height: 12px;
  margin: 0;
  border-radius: 999px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
}

.g2bar__seg--1 { background: var(--accent); }
.g2bar__seg--2 { background: rgba(var(--accent-rgb), 0.45); }
.g2bar__seg--3 { background: rgba(var(--ink-rgb), 0.16); }

/* Штамп-таблица: четыре ячейки в одной рамке — площадь, комнаты, этаж, отчёт. */
.g2block {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.g2block__cell {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: clamp(10px, 0.55vw, 14px);
}

.g2block__cell + .g2block__cell { border-left: 1px solid rgba(var(--ink-rgb), 0.16); }

.g2block__key {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.g2block__value {
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  color: var(--ink);
}

.g2block__value--red { color: var(--accent); }

.g2act {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(12px, 0.86vw, 22px);
  align-items: center;
  margin-top: auto;
  padding-top: clamp(14px, 0.78vw, 20px);
  border-top: 1px solid rgba(var(--ink-rgb), 0.14);
}

.g2pricecol {
  display: flex;
  flex-direction: column;
  gap: 5px;
  margin: 0;
  min-width: 0;
}

.g2price {
  font-family: var(--display);
  font-size: clamp(26px, 1.64vw, 42px);
  line-height: 1;
  white-space: nowrap;
}

.g2sheet--feat .g2price,
.g2grid--l .g2price { font-size: clamp(28px, 1.80vw, 46px); }

.g2unit {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--faint);
}

.g2foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(10px, 0.62vw, 16px);
  margin: 0;
  padding: 0 8px;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.g2foot__scale { color: var(--accent); }

/* --- 4. Что не показано ---------------------------------------------------- */
.g2refused {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: clamp(14px, 0.78vw, 20px);
  padding: clamp(26px, 1.80vw, 46px);
  border-radius: 14px;
  box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.34);
}

.g2sheetline--red { color: rgba(var(--accent-rgb), 0.7); }

.g2refused__text {
  max-width: 62ch;
  margin: 0;
  font-size: clamp(16px, 0.82vw, 21px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--muted);
}

.g2refused__foot {
  display: flex;
  align-items: center;
  gap: clamp(18px, 1.56vw, 40px);
  margin: 0;
  padding-top: clamp(14px, 0.78vw, 20px);
  border-top: 1px solid rgba(var(--accent-rgb), 0.24);
}

.g2refused__cell {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.g2refused__value {
  font-family: var(--display);
  font-size: clamp(20px, 1.17vw, 30px);
  line-height: 1;
}

.g2refused__key {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.g2refused__link {
  display: inline-flex;
  align-items: center;
  gap: clamp(8px, 0.47vw, 12px);
  margin-left: auto;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
}

/* --- 5. Сохранить поиск ---------------------------------------------------- */
.g2save {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: clamp(14px, 0.78vw, 20px);
  padding: clamp(26px, 1.80vw, 46px);
  border-radius: 14px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
}

.g2save__head {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(26px, 1.72vw, 44px);
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.g2save__form {
  display: flex;
  align-items: stretch;
  gap: clamp(10px, 0.55vw, 14px);
}

/* Поле прямоугольное и со своими уголками: бланк, а не пилюля. */
.g2save__field {
  position: relative;
  display: flex;
  flex: 1;
  align-items: center;
  min-width: 0;
  padding: 0 clamp(16px, 0.94vw, 24px);
  border-radius: 6px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
}

.g2save__label {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
}

.g2save__input {
  width: 100%;
  height: clamp(52px, 2.81vw, 72px);
  border: 0;
  background: transparent;
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.14em;
  color: var(--ink);
}

.g2save__input::placeholder { color: var(--faint); }

.g2save__foot {
  display: flex;
  gap: clamp(16px, 1.33vw, 34px);
  margin: 0;
  padding-top: clamp(12px, 0.70vw, 18px);
  border-top: 1px solid rgba(var(--ink-rgb), 0.14);
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

/* --- 6. По соседству ------------------------------------------------------- */
.g2nearby__head {
  display: flex;
  align-items: baseline;
  gap: clamp(12px, 0.78vw, 20px);
  margin: 0 0 clamp(14px, 0.86vw, 22px);
}

.g2nearby__title {
  font-family: var(--display);
  font-size: clamp(26px, 1.72vw, 44px);
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.g2nearby__note {
  margin-left: auto;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.g2nearby__row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(20px, 1.56vw, 40px);
}

.g2near {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(8px, 0.39vw, 10px) clamp(12px, 0.78vw, 20px);
  align-items: center;
  padding: clamp(20px, 1.33vw, 34px);
  border-radius: 14px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
  color: var(--ink);
  transition: box-shadow 240ms ease;
}

.g2near:hover,
.g2near:focus-visible { box-shadow: inset 0 0 0 2px rgba(var(--ink-rgb), 0.55); }

.g2near__head {
  grid-column: 1 / -1;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
}

.g2near__name {
  font-family: var(--display);
  font-size: clamp(20px, 1.17vw, 30px);
  line-height: 1.06;
}

.g2near__note {
  grid-column: 1;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.g2near__arrow {
  grid-column: 2;
  grid-row: 2 / 4;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(42px, 2.19vw, 56px);
  height: clamp(42px, 2.19vw, 56px);
  border-radius: 6px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
  font-family: var(--text);
  font-size: clamp(15px, 0.74vw, 19px);
}

/* --- 7. Ещё результаты ----------------------------------------------------- */
/* Кнопка занимает всю ширину между надписями и держит подпись по центру. */
.g2more {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: clamp(14px, 1.02vw, 26px);
  align-items: center;
  padding-top: clamp(16px, 0.94vw, 24px);
  border-top: 2px solid var(--ink);
}

.g2more__count,
.g2more__register {
  margin: 0;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.g2more__register { text-align: right; }

/* Единственная залитая кнопка внизу страницы: её видно через весь реестр. */
.g2more__button {
  grid-template-columns: auto auto;
  justify-content: center;
  margin: 0;
  width: 100%;
  background: var(--accent);
  box-shadow: none;
  color: var(--on-photo);
}

.g2more__button .g2btick { border-color: rgba(var(--on-photo-rgb), 0.45); }

.g2more__button:hover,
.g2more__button:focus-visible {
  background: var(--ink);
  box-shadow: none;
  color: var(--bg);
}

.g2more__button:hover .g2btick,
.g2more__button:focus-visible .g2btick { border-color: rgba(var(--bg-rgb), 0.45); }
.g2arrow--down { font-size: clamp(15px, 0.74vw, 19px); }

/* ==========================================================================
   63. Grid view v2 — адаптив
   ========================================================================== */

@media (max-width: 1240px) {
  .g2form__fields { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .g2grid--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1024px) {
  /* Шкала порядков становится списком: четыре в ряд не читаются. */
  .g2sort { grid-template-columns: minmax(0, 1fr); }
  .g2viewpick { grid-column: 1; border-left: 0; padding-left: 0; }
  .g2order { padding-right: 0; }

  .g2grid--4,
  .g2grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  /* Альбомный лист складывается в стопку — тот же компонент, другой поворот. */
  .g2grid--l .g2sheet,
  .g2sheet--feat { grid-template-columns: minmax(0, 1fr); }
  .g2grid--l .g2shot,
  .g2sheet--feat .g2shot { padding: 0; border-right: 0; }
  .g2grid--l .g2body,
  .g2sheet--feat .g2body { padding: clamp(12px, 0.62vw, 16px) 0 0; }
  .g2grid--l .g2well,
  .g2sheet--feat .g2well { height: clamp(220px, 16.41vw, 420px); }

  .g2nearby__row { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 768px) {
  .g2form__fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .g2searchfoot { flex-wrap: wrap; }
  .g2drawn--search { margin-left: 0; }

  /* На узком экране строка «ещё» складывается в столбец. */
  .g2more { grid-template-columns: minmax(0, 1fr); }
  .g2more__register { text-align: left; }

  .g2grid--4,
  .g2grid--3,
  .g2grid--2 { grid-template-columns: minmax(0, 1fr); }

  .g2tabs { flex-wrap: wrap; }
  .g2sheet--feat .g2address { font-size: clamp(26px, 1.41vw, 36px); }
}

@media (max-width: 560px) {
  .g2form__fields { grid-template-columns: minmax(0, 1fr); }

  /* Размерные линии и метровая шкала уходят раньше реестра: он важнее. */
  .g2shot { grid-template-columns: minmax(0, 1fr); }
  .g2vert,
  .g2dim,
  .g2dim__caption,
  .g2scale { display: none; }

  .g2head,
  .g2faults__head,
  .g2faults__keys,
  .g2foot,
  .g2save__foot,
  .g2refused__foot { flex-wrap: wrap; }

  .g2head__where { text-align: left; }

  .g2block { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .g2block__cell:nth-child(3) { border-left: 0; }
  .g2block__cell:nth-child(n + 3) { border-top: 1px solid rgba(var(--ink-rgb), 0.16); }

  .g2act { grid-template-columns: minmax(0, 1fr); }
  .g2save__form { flex-direction: column; }
  .g2near__arrow { grid-row: auto; }
}

/* ==========================================================================
   64. Grid view v3 — реестр записей
   ========================================================================== */

/* Третий экран поиска. Записи те же, что на grid-view.html и grid-view-v2.html,
   но подача снова другая — и различия и есть работа: «инструкция на поиск»
   вместо строки формы, штамп-строка вместо шкалы, запись реестра целиком
   вместо карточки. Заливок нет: страница держится на линиях и уголках. */
.g3page {
  display: flex;
  flex-direction: column;
  padding-top: 0;
  padding-bottom: 0;
}

.g3search { margin-top: clamp(26px, 1.56vw, 40px); }
.g3sort { margin-top: clamp(12px, 0.55vw, 14px); }
.g3results { margin-top: clamp(12px, 0.55vw, 14px); }

.g3refused,
.g3save,
.g3nearby,
.g3more { margin-top: clamp(34px, 2.19vw, 56px); }

.g3register {
  margin: 0;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

/* --- Общие детали листа ---------------------------------------------------- */
.g3tick,
.g3wtick,
.g3btick,
.g3stick,
.g3rtick,
.g3ntick,
.g3ctick {
  position: absolute;
  width: clamp(14px, 0.86vw, 22px);
  height: clamp(14px, 0.86vw, 22px);
  border-color: rgba(var(--ink-rgb), 0.4);
  pointer-events: none;
}

.g3tick--tl, .g3wtick--tl, .g3stick--tl, .g3rtick--tl, .g3ntick--tl, .g3ctick--tl,
.g3btick--tl { border-left-style: solid; border-left-width: 1px;
  border-top-style: solid; border-top-width: 1px; left: 14px; top: 14px; }
.g3tick--tr, .g3stick--tr, .g3rtick--tr, .g3ntick--tr, .g3ctick--tr,
.g3btick--tr { border-right-style: solid; border-right-width: 1px;
  border-top-style: solid; border-top-width: 1px; right: 14px; top: 14px; }
.g3tick--bl, .g3stick--bl, .g3rtick--bl, .g3ntick--bl, .g3ctick--bl,
.g3btick--bl { border-left-style: solid; border-left-width: 1px;
  border-bottom-style: solid; border-bottom-width: 1px; left: 14px; bottom: 14px; }
.g3tick--br, .g3wtick--br, .g3stick--br, .g3rtick--br, .g3ntick--br, .g3ctick--br,
.g3btick--br { border-right-style: solid; border-right-width: 1px;
  border-bottom-style: solid; border-bottom-width: 1px; right: 14px; bottom: 14px; }

.g3wtick { width: clamp(14px, 0.78vw, 20px); height: clamp(14px, 0.78vw, 20px); border-color: rgba(var(--ink-rgb), 0.45); }
.g3stick, .g3ntick { width: clamp(14px, 0.70vw, 18px); height: clamp(14px, 0.70vw, 18px); }
.g3stick--tl, .g3ntick--tl { left: 12px; top: 12px; }
.g3stick--tr, .g3ntick--tr { right: 12px; top: 12px; }
.g3stick--bl, .g3ntick--bl { left: 12px; bottom: 12px; }
.g3stick--br, .g3ntick--br { right: 12px; bottom: 12px; }
.g3rtick { border-color: rgba(var(--accent-rgb), 0.4); }

.g3btick,
.g3ctick { width: clamp(10px, 0.55vw, 14px); height: clamp(10px, 0.55vw, 14px); border-color: rgba(var(--ink-rgb), 0.34); }
.g3btick--tl, .g3ctick--tl { left: 8px; top: 8px; }
.g3btick--tr, .g3ctick--tr { right: 8px; top: 8px; }
.g3btick--bl, .g3ctick--bl { left: 8px; bottom: 8px; }
.g3btick--br, .g3ctick--br { right: 8px; bottom: 8px; }
.g3ctick { border-color: rgba(var(--on-photo-rgb), 0.5); }

.g3icon { display: block; flex: none; }

/* Штамп — прямоугольник в две красные линии. */
.g3stamp {
  display: inline-flex;
  align-items: center;
  padding: 7px clamp(10px, 0.55vw, 14px);
  border-radius: 4px;
  box-shadow: inset 0 0 0 2px var(--accent);
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--accent);
}

/* Начерченная кнопка — подпись страницы. */
.g3drawn {
  position: relative;
  display: inline-grid;
  grid-template-columns: 1fr auto;
  gap: clamp(10px, 0.70vw, 18px);
  align-items: center;
  padding: clamp(14px, 0.86vw, 22px) clamp(18px, 1.17vw, 30px);
  border: 0;
  border-radius: 6px;
  background: transparent;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
  color: var(--ink);
  cursor: pointer;
  transition: background 220ms ease, color 220ms ease, box-shadow 220ms ease;
}

.g3drawn__text {
  position: relative;
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.24em;
  text-transform: uppercase;
}

.g3arrow {
  position: relative;
  font-family: var(--text);
  font-size: clamp(15px, 0.78vw, 20px);
  line-height: 1;
}

.g3drawn:hover,
.g3drawn:focus-visible {
  background: var(--ink);
  box-shadow: inset 0 0 0 1px var(--ink);
  color: var(--bg);
}

.g3drawn:hover .g3btick,
.g3drawn:focus-visible .g3btick { border-color: rgba(var(--bg-rgb), 0.4); }

.g3pill__input {
  position: fixed;
  top: 0;
  left: 0;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

/* --- 1. Инструкция на поиск ------------------------------------------------ */
.g3search,
.g3sort,
.g3results { position: relative; }

.g3slip {
  position: relative;
  padding: clamp(16px, 1.02vw, 26px);
  border-radius: 14px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
}

.g3slip__head,
.g3plate__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(10px, 0.62vw, 16px);
  margin: 0;
  padding: 0 8px clamp(10px, 0.55vw, 14px);
  border-bottom: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.g3slip__title,
.g3plate__title { color: var(--accent); }
.g3slip__ref,
.g3plate__where { color: var(--faint); text-align: right; }

/* Четыре папки — пилюли: выбранная залита тушью. */
.g3tabs {
  display: flex;
  align-items: center;
  gap: clamp(8px, 0.47vw, 12px);
  margin: 0;
  padding: clamp(14px, 0.78vw, 20px) 8px 0;
}

.g3tab {
  display: inline-flex;
  align-items: center;
  gap: clamp(8px, 0.55vw, 14px);
  height: clamp(46px, 2.42vw, 62px);
  padding: 0 clamp(18px, 1.17vw, 30px);
  border-radius: 999px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
  cursor: pointer;
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
  transition: background 200ms ease, color 200ms ease;
}

.g3pill__input:checked + .g3tab {
  background: var(--ink);
  box-shadow: none;
  color: var(--bg);
}

.g3pill__input:focus-visible + .g3tab,
.g3pill__input:focus-visible + .g3order,
.g3pill__input:focus-visible + .g3view {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

/* У «Sell» значка нет намеренно: его счёт — фраза, и в числовой ячейке
   вкладка растягивалась втрое против соседей. */
.g3tab__badge { font-size: clamp(12px, 0.47vw, 12px); letter-spacing: 0.14em; color: var(--faint); }
.g3pill__input:checked + .g3tab .g3tab__badge { color: rgba(var(--bg-rgb), 0.55); }

/* Пять полей в одной обвязке: рамка одна, между полями волосок. */
.g3fields {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin: clamp(14px, 0.86vw, 22px) 0 0;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.g3field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  margin: 0;
  padding: clamp(12px, 0.70vw, 18px) clamp(12px, 0.78vw, 20px);
}

.g3field + .g3field { border-left: 1px solid rgba(var(--ink-rgb), 0.16); }

.g3field__label {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.g3field__select {
  width: 100%;
  height: clamp(42px, 2.19vw, 56px);
  padding: 0;
  border: 0;
  border-bottom: 2px solid rgba(var(--ink-rgb), 0.28);
  border-radius: 0;
  background: transparent;
  font-family: var(--display);
  font-size: clamp(20px, 1.17vw, 30px);
  color: var(--muted);
  cursor: pointer;
  transition: border-color 200ms ease, color 200ms ease;
}

/* Общая красная рамка фокуса вокруг поля читается как ошибка и остаётся
   висеть после выбора, поэтому у полей формы фокус показывает линейка под
   полем, а не квадрат вокруг него. */
.g3field__select:focus,
.g3field__select:focus-visible {
  outline: none;
  border-bottom-width: 3px;
  border-bottom-color: var(--accent);
}

/* Заданное поле подчёркнуто красным: форма всегда отвечает, что спрошено. */
.g3field--set .g3field__select { border-bottom-color: var(--accent); color: var(--ink); }

.g3ask {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(18px, 1.33vw, 34px);
  align-items: center;
  padding: clamp(14px, 0.86vw, 22px) 8px 0;
}

/* Живая фраза запроса: артикль и перечисление считаются из полей. */
.g3sentence {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(24px, 1.48vw, 38px);
  line-height: 1.3;
  letter-spacing: -0.018em;
}

.g3slip__foot,
.g3strip__foot,
.g3refused__foot,
.g3save__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(10px, 0.62vw, 16px);
  margin: 0;
  padding: clamp(12px, 0.70vw, 18px) 8px 0;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.g3slip__note,
.g3save__last { color: var(--accent); }

/* --- 2. Штамп-строка сортировки -------------------------------------------- */
.g3strip {
  position: relative;
  padding: clamp(14px, 0.86vw, 22px);
  border-radius: 14px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
}

.g3strip__row {
  display: grid;
  grid-template-columns: minmax(0, clamp(150px, 11.72vw, 300px)) repeat(4, minmax(0, 1fr)) minmax(0, clamp(150px, 10.94vw, 280px));
  border-radius: 6px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.g3filed__count {
  display: flex;
  flex-direction: column;
  gap: 6px;
  justify-content: center;
  margin: 0;
  padding: clamp(12px, 0.70vw, 18px) clamp(14px, 0.86vw, 22px);
}

.g3filed__key {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.g3filed__value {
  font-family: var(--display);
  font-size: clamp(22px, 1.33vw, 34px);
  line-height: 1;
}

.g3orders { display: contents; }

.g3order {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  padding: clamp(12px, 0.70vw, 18px) clamp(12px, 0.86vw, 22px);
  border-left: 1px solid rgba(var(--ink-rgb), 0.16);
  cursor: pointer;
  color: var(--muted);
  transition: background 200ms ease, color 200ms ease;
}

.g3order__no {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.g3order__name { font-family: var(--mono); font-size: clamp(12px, 0.59vw, 15px); }

/* Выбранный порядок: красная подпись на красноватой подкладке. */
.g3pill__input:checked + .g3order { background: rgba(var(--accent-rgb), 0.08); color: var(--ink); }
.g3pill__input:checked + .g3order .g3order__no { color: var(--accent); }

.g3viewpick {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 7px;
  padding: clamp(12px, 0.70vw, 18px) clamp(12px, 0.86vw, 22px);
  border-left: 1px solid rgba(var(--ink-rgb), 0.16);
}

.g3viewpick__label {
  margin-right: auto;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
  white-space: nowrap;
}

.g3view {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(36px, 1.64vw, 42px);
  height: clamp(36px, 1.64vw, 42px);
  border-radius: 5px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22);
  cursor: pointer;
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  color: var(--muted);
  transition: background 200ms ease, color 200ms ease;
}

.g3pill__input:checked + .g3view {
  background: var(--ink);
  box-shadow: none;
  color: var(--bg);
}

.g3sortnote { color: var(--ink); }
.g3strip__scale { color: var(--accent); }

/* --- 3. Записи реестра ------------------------------------------------------ */
.g3empty:not([hidden]) {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: clamp(10px, 0.55vw, 14px);
  margin: 0 0 clamp(20px, 1.56vw, 40px);
  padding: clamp(32px, 2.34vw, 60px) clamp(24px, 1.80vw, 46px);
  border-radius: 14px;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.g3empty__kicker {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--accent);
}

.g3empty__head {
  font-family: var(--display);
  font-size: clamp(28px, 1.72vw, 44px);
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.g3empty__note {
  font-size: clamp(16px, 0.78vw, 20px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--muted);
}

.g3grid {
  display: grid;
  gap: clamp(20px, 1.56vw, 40px);
  align-items: stretch;
}

.g3grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.g3grid--4 .g3well { height: clamp(165px, 11.72vw, 300px); }
.g3grid--4 .g3size--4 { display: block; }
.g3grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.g3grid--3 .g3well { height: clamp(187px, 13.28vw, 340px); }
.g3grid--3 .g3size--3 { display: block; }
.g3grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.g3grid--2 .g3well { height: clamp(231px, 16.41vw, 420px); }
.g3grid--2 .g3size--2 { display: block; }
.g3grid--l { grid-template-columns: minmax(0, 1fr); }
.g3grid--l .g3well { height: clamp(286px, 20.31vw, 520px); }
.g3grid--l .g3size--l { display: block; }

/* Запись реестра. Заливки нет — рамка в одну линию и уголки; на наведении
   линия становится в две. Запись не всплывает: реестр не подпрыгивает. */
.g3card {
  position: relative;
  display: grid;
  grid-template-columns: clamp(28px, 1.48vw, 38px) minmax(0, 1fr);
  padding: clamp(16px, 1.02vw, 26px);
  border-radius: 14px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
  transition: box-shadow 240ms ease;
}

/* Скрытая запись должна оставаться скрытой и в альбомном виде: правило
   поворота (display: grid) стоит ниже и той же силы, поэтому без !important
   оно возвращало на экран всё, что скрипт спрятал. */
.g3card[hidden] { display: none !important; }

.g3card:hover,
.g3card:focus-within { box-shadow: inset 0 0 0 2px rgba(var(--ink-rgb), 0.55); }

/* Корешок с номером записи: номера считаются от размера набора вниз. */
.g3spine {
  display: flex;
  /* Письмо вертикальное, и сам корешок повёрнут на 180°, поэтому «конец»
     флекса — это верх записи: номер стоит там же, где на эталоне. */
  align-items: center;
  justify-content: flex-end;
  margin: 0;
  padding-top: 4px;
  border-right: 1px solid rgba(var(--ink-rgb), 0.18);
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--accent);
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}

.g3main {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding-left: clamp(12px, 0.70vw, 18px);
}

.g3draw { display: flex; flex-direction: column; min-width: 0; }

.g3line {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: clamp(10px, 0.62vw, 16px);
  margin: 0;
  padding-bottom: 8px;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--faint);
}

.g3head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(10px, 0.62vw, 16px);
  margin: 0;
  padding-bottom: clamp(10px, 0.55vw, 14px);
  border-bottom: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink);
}

.g3head__ref { color: var(--accent); }

.g3head__stamps { display: inline-flex; align-items: center; gap: clamp(8px, 0.39vw, 10px); }

.g3chip {
  display: inline-flex;
  align-items: center;
  padding: 6px clamp(10px, 0.55vw, 14px);
  border-radius: 4px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  color: var(--ink);
}

/* Штамп «Filed» стоит криво — его ставили от руки. */
.g3filed {
  display: inline-flex;
  align-items: center;
  padding: 5px clamp(8px, 0.47vw, 12px);
  border-radius: 4px;
  box-shadow: inset 0 0 0 2px var(--accent);
  transform: rotate(-6deg);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.24em;
  color: var(--accent);
}

.g3head__where {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--faint);
}

.g3dim {
  position: relative;
  display: block;
  height: clamp(10px, 0.47vw, 12px);
  margin: clamp(12px, 0.70vw, 18px) 0 0;
}

.g3dim__cap {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 1px;
  background: var(--ink);
}

.g3dim__cap--l { left: 0; }
.g3dim__cap--r { right: 0; }

.g3dim__hair {
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.4);
}

.g3dim__caption,
.g3scale {
  margin: 7px 0 0;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.g3dim__caption { text-align: center; }

/* Метровая шкала есть только в альбомном повороте — в стопке для неё нет места. */
.g3scale { display: none; justify-content: space-between; letter-spacing: 0.18em; }
.g3scale__tick--end { color: var(--ink); }

.g3well {
  position: relative;
  display: block;
  margin: clamp(10px, 0.47vw, 12px) 0 0;
  overflow: hidden;
  background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.1) 0 2px, transparent 2px 14px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
}

.g3photo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.g3size {
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  display: none;
  transform: translateY(-50%);
  text-align: center;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
}

/* Надписи и кружки на снимке одинаковы в обеих темах: тёмная подложка,
   волосок и кремовая тушь. */
.g3frames,
.g3shots {
  position: absolute;
  bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px clamp(8px, 0.39vw, 10px);
  border-radius: 4px;
  background: rgba(var(--scrim-rgb), 0.62);
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--on-photo);
}

.g3frames { left: 14px; }
.g3shots { right: 14px; display: none; }

.g3discs {
  position: absolute;
  right: 12px;
  top: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.g3disc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(32px, 1.41vw, 36px);
  height: clamp(32px, 1.41vw, 36px);
  border: 0;
  border-radius: 999px;
  background: rgba(var(--scrim-rgb), 0.62);
  box-shadow: inset 0 0 0 1px rgba(var(--on-photo-rgb), 0.3);
  color: var(--on-photo);
  cursor: pointer;
  transition: background 200ms ease;
}

.g3disc:hover,
.g3disc:focus-visible { background: var(--accent); }

.g3record {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-width: 0;
}

.g3addr {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: clamp(12px, 0.78vw, 20px);
  padding-top: clamp(14px, 0.78vw, 20px);
}

.g3addr__place,
.g3hist,
.g3pricecol { display: flex; flex-direction: column; gap: 5px; margin: 0; }
.g3pricecol { align-items: flex-end; }

.g3address {
  font-family: var(--display);
  font-size: clamp(24px, 1.41vw, 36px);
  line-height: 1.08;
  letter-spacing: -0.018em;
}

.g3walk,
.g3hist__key {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

/* Пять столбиков истории: после снижения цены они проседают и краснеют. */
.g3hist__bars {
  display: flex;
  align-items: flex-end;
  gap: 3px;
  height: clamp(26px, 1.33vw, 34px);
}

.g3hist__bar {
  display: block;
  width: 8px;
  border-radius: 2px 2px 0 0;
  background: rgba(var(--ink-rgb), 0.24);
}

.g3hist__bar--cut { background: var(--accent); }

.g3price {
  font-family: var(--display);
  font-size: clamp(24px, 1.48vw, 38px);
  line-height: 1;
  white-space: nowrap;
}

.g3unit {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
}

/* Текст показывается только в альбомном повороте. */
.g3blurb { display: none; }

.g3rows { display: flex; flex-direction: column; padding-top: clamp(12px, 0.70vw, 18px); }

/* Четыре реестровые строки: значок, поле, значение и правая колонка. */
.g3row {
  display: grid;
  grid-template-columns: clamp(20px, 1.02vw, 26px) minmax(0, clamp(90px, 5.08vw, 130px)) minmax(0, 1fr) auto;
  gap: clamp(10px, 0.62vw, 16px);
  align-items: center;
  margin: 0;
  padding: clamp(10px, 0.47vw, 12px) 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.14);
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.g3row__icon,
.g3row__value { color: var(--muted); }
.g3row__key { color: var(--faint); }
.g3row__end { color: var(--ink); text-align: right; }
.g3row__end--red { color: var(--accent); }

.g3energy {
  display: flex;
  align-items: center;
  gap: clamp(8px, 0.47vw, 12px);
  margin: 0;
  padding-top: clamp(12px, 0.62vw, 16px);
}

.g3energy__key,
.g3energy__kwh {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
  white-space: nowrap;
}

.g3energy__scale {
  display: flex;
  flex: 1;
  border-radius: 3px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22);
}

/* Буква на шкале — из класса отчёта, а не из отдельного поля. */
.g3energy__cell {
  flex: 1;
  height: clamp(12px, 0.62vw, 16px);
  background: rgba(var(--ink-rgb), 0.07);
  box-shadow: inset 1px 0 0 rgba(var(--bg-rgb), 0.8);
}

.g3energy__cell--on { background: var(--accent); }

.g3faults {
  display: flex;
  flex-direction: column;
  gap: 7px;
  padding-top: clamp(12px, 0.62vw, 16px);
}

.g3faults__head,
.g3faults__keys {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: clamp(8px, 0.39vw, 10px);
  margin: 0;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.g3faults__keys { letter-spacing: 0.14em; }
.g3faults__total { color: var(--accent); }
.g3faults__key--lead { color: var(--accent); }

.g3bar {
  display: flex;
  height: 10px;
  margin: 0;
  border-radius: 999px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
}

.g3bar__seg--1 { background: var(--accent); }
.g3bar__seg--2 { background: rgba(var(--accent-rgb), 0.45); }
.g3bar__seg--3 { background: rgba(var(--ink-rgb), 0.16); }

/* Кнопки держатся у низа, поэтому записи неравной длины стоят в линию. */
.g3acts {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(10px, 0.47vw, 12px);
  margin: auto 0 0;
  padding-top: clamp(12px, 0.70vw, 18px);
  border-top: 2px solid var(--ink);
}

.g3act {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(8px, 0.47vw, 12px);
  height: clamp(44px, 2.11vw, 54px);
  padding: 0 clamp(14px, 0.86vw, 22px);
  border-radius: 6px;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  transition: background 200ms ease, color 200ms ease;
}

.g3act--ghost {
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
  color: var(--ink);
}

.g3act--ghost:hover,
.g3act--ghost:focus-visible { background: rgba(var(--ink-rgb), 0.08); }

.g3act--ink {
  justify-content: space-between;
  background: var(--ink);
  color: var(--bg);
}

.g3act--ink:hover,
.g3act--ink:focus-visible { background: var(--accent); color: var(--on-photo); }

.g3block {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: clamp(10px, 0.55vw, 14px) 0 0;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22);
}

.g3block__cell {
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding: clamp(9px, 0.43vw, 11px) clamp(10px, 0.51vw, 13px);
}

.g3block__cell + .g3block__cell { border-left: 1px solid rgba(var(--ink-rgb), 0.14); }

.g3block__key {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.g3block__value { font-family: var(--mono); font-size: clamp(12px, 0.47vw, 12px); color: var(--ink); }
.g3block__value--red { color: var(--accent); }

.g3also {
  display: flex;
  align-items: center;
  gap: clamp(10px, 0.55vw, 14px);
  margin: 0;
  padding-top: clamp(10px, 0.47vw, 12px);
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.g3also__link { color: var(--accent); }
.g3also__rule { flex: 1; height: 1px; background: rgba(var(--ink-rgb), 0.14); }

/* Альбомный поворот: чертёж слева, запись справа. Здесь же — единственный
   вид, где запись показывает текст и метровую шкалу. */
.g3grid--l .g3main,
.g3card--feat .g3main {
  display: grid;
  grid-template-columns: minmax(0, clamp(320px, 42.19vw, 1080px)) minmax(0, 1fr);
  padding-left: 0;
}

.g3grid--l .g3draw,
.g3card--feat .g3draw {
  padding: 0 clamp(18px, 1.33vw, 34px) 0 clamp(14px, 1.02vw, 26px);
  border-right: 1px solid rgba(var(--ink-rgb), 0.16);
}

.g3grid--l .g3record,
.g3card--feat .g3record { padding: 0 8px 0 clamp(20px, 1.56vw, 40px); }

.g3grid--l .g3well,
.g3card--feat .g3well { flex: 1; height: clamp(240px, 20.31vw, 520px); }

.g3grid--l .g3scale,
.g3card--feat .g3scale { display: flex; }

.g3grid--l .g3shots,
.g3card--feat .g3shots { display: flex; }

.g3grid--l .g3blurb,
.g3card--feat .g3blurb {
  display: block;
  margin: clamp(12px, 0.70vw, 18px) 0 0;
  font-size: clamp(16px, 0.78vw, 20px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--muted);
  text-wrap: pretty;
}

.g3grid--l .g3addr,
.g3card--feat .g3addr {
  padding: 0 0 clamp(12px, 0.70vw, 18px);
  border-bottom: 2px solid var(--ink);
}

.g3grid--l .g3address,
.g3card--feat .g3address { font-size: clamp(30px, 2.27vw, 58px); line-height: 1.02; }

.g3grid--l .g3price,
.g3card--feat .g3price { font-size: clamp(28px, 1.80vw, 46px); }

.g3grid--l .g3size--l,
.g3card--feat .g3size--l { display: block; }

.g3card--feat {
  margin-top: clamp(20px, 1.56vw, 40px);
  grid-template-columns: clamp(28px, 1.48vw, 38px) minmax(0, 1fr);
}

.g3card--feat .g3chip { box-shadow: inset 0 0 0 2px var(--accent); color: var(--accent); }

/* --- 4–7. Нижние плиты ----------------------------------------------------- */
.g3plate {
  position: relative;
  padding: clamp(16px, 1.02vw, 26px);
  border-radius: 14px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
}

.g3plate--red { box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.34); }
.g3plate--red .g3plate__head { border-bottom-color: var(--accent); }

.g3refused__text {
  margin: 0;
  padding: clamp(14px, 0.78vw, 20px) 8px 0;
  font-size: clamp(16px, 0.82vw, 21px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--ink);
}

.g3refused__link {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
  white-space: nowrap;
}

.g3save__form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, clamp(200px, 16.41vw, 420px)) auto;
  gap: clamp(12px, 0.78vw, 20px);
  align-items: end;
  padding: clamp(14px, 0.86vw, 22px) 8px 0;
}

.g3save__words { display: flex; flex-direction: column; gap: clamp(8px, 0.47vw, 12px); }

.g3save__head {
  font-family: var(--display);
  font-size: clamp(26px, 1.72vw, 44px);
  line-height: 1.08;
  letter-spacing: -0.02em;
}

.g3save__note {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.g3save__field {
  display: flex;
  align-items: center;
  gap: clamp(10px, 0.55vw, 14px);
  height: clamp(56px, 3.05vw, 78px);
  padding: 0 clamp(14px, 0.94vw, 24px);
  border-radius: 6px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

/* Поле и кнопка стоят в одну высоту: рядом они читаются как одна строка. */
.g3save__form .g3drawn {
  height: clamp(56px, 3.05vw, 78px);
  padding-top: 0;
  padding-bottom: 0;
}

.g3save__mark { width: 3px; height: clamp(18px, 0.94vw, 24px); background: var(--accent); }

.g3save__input {
  width: 100%;
  border: 0;
  background: transparent;
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.14em;
  color: var(--ink);
}

.g3save__input::placeholder { color: var(--faint); }

.g3nearby__head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: clamp(16px, 1.33vw, 34px);
  margin: 0 0 clamp(16px, 1.02vw, 26px);
  padding-bottom: clamp(10px, 0.55vw, 14px);
  border-bottom: 2px solid var(--ink);
}

.g3nearby__title {
  font-family: var(--display);
  font-size: clamp(26px, 1.72vw, 44px);
  line-height: 1;
  letter-spacing: -0.022em;
}

.g3nearby__note {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.g3nearby__row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(20px, 1.56vw, 40px);
}

.g3near {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: clamp(14px, 0.86vw, 22px);
  border-radius: 14px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
  color: var(--ink);
  transition: transform 240ms ease, box-shadow 240ms ease;
}

.g3near:hover,
.g3near:focus-visible {
  transform: translateY(-6px);
  box-shadow: inset 0 0 0 2px rgba(var(--ink-rgb), 0.55);
}

.g3near__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(10px, 0.55vw, 14px);
  padding: 0 6px clamp(10px, 0.47vw, 12px);
  border-bottom: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.g3near__sheet { color: var(--accent); }
.g3near__count { color: var(--faint); }

.g3near__body {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(12px, 0.78vw, 20px);
  padding: clamp(12px, 0.70vw, 18px) 6px 0;
}

.g3near__text { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.g3near__name { font-family: var(--display); font-size: clamp(24px, 1.48vw, 38px); line-height: 1; }

.g3near__note {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

.g3near__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: clamp(42px, 2.03vw, 52px);
  height: clamp(42px, 2.03vw, 52px);
  border-radius: 6px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
  font-family: var(--text);
  font-size: clamp(15px, 0.74vw, 19px);
}

.g3more {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: clamp(16px, 1.33vw, 34px);
  align-items: center;
  padding-top: clamp(16px, 1.02vw, 26px);
  border-top: 1px solid rgba(var(--ink-rgb), 0.22);
}

.g3more__count,
.g3more__register {
  margin: 0;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.g3more__register { color: var(--ink); text-align: right; }

/* Единственная залитая кнопка внизу: её видно через весь реестр. */
/* Кнопка той же меры, что и начерченная кнопка на grid-view-v2.html:
   поля 18 x 24, своя высота, без отдельной высоты в 84px. */
.g3cherry {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(10px, 0.62vw, 16px);
  padding: clamp(14px, 0.70vw, 18px) clamp(16px, 0.94vw, 24px);
  border-radius: 6px;
  background: var(--accent);
  color: var(--on-photo);
  transition: background 220ms ease;
}

.g3cherry:hover,
.g3cherry:focus-visible { background: var(--accent-deep); }

.g3cherry__text {
  position: relative;
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.24em;
  text-transform: uppercase;
}

/* ==========================================================================
   65. Grid view v3 — адаптив
   ========================================================================== */

@media (max-width: 1400px) {
  /* Альбомная запись складывается в стопку — тот же компонент, другой поворот. */
  .g3grid--l .g3main,
  .g3card--feat .g3main {
    grid-template-columns: minmax(0, 1fr);
    padding-left: clamp(12px, 0.70vw, 18px);
  }
  .g3grid--l .g3draw,
  .g3card--feat .g3draw { padding: 0; border-right: 0; }
  .g3grid--l .g3record,
  .g3card--feat .g3record { padding: 0; }
  .g3grid--l .g3well,
  .g3card--feat .g3well { height: clamp(220px, 16.41vw, 420px); }
  .g3grid--l .g3address,
  .g3card--feat .g3address { font-size: clamp(24px, 1.41vw, 36px); }
}

@media (max-width: 1240px) {
  .g3fields { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .g3field:nth-child(4) { border-left: 0; }
  .g3field:nth-child(n + 4) { border-top: 1px solid rgba(var(--ink-rgb), 0.16); }
  .g3grid--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

  /* Штамп-строка перестраивается: счёт и порядки над переключателем вида. */
  .g3strip__row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .g3order { border-top: 1px solid rgba(var(--ink-rgb), 0.16); }
  .g3viewpick { grid-column: 1 / -1; border-left: 0; border-top: 1px solid rgba(var(--ink-rgb), 0.16); }
}

@media (max-width: 1024px) {
  .g3grid--4,
  .g3grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .g3ask { grid-template-columns: minmax(0, 1fr); }
  .g3save__form { grid-template-columns: minmax(0, 1fr); }
  .g3nearby__row { grid-template-columns: minmax(0, 1fr); }
  .g3more { grid-template-columns: minmax(0, 1fr); }
  .g3more__register { text-align: left; }
}

@media (max-width: 768px) {
  .g3fields { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .g3field:nth-child(odd) { border-left: 0; }
  .g3field:nth-child(n + 3) { border-top: 1px solid rgba(var(--ink-rgb), 0.16); }

  .g3grid--4,
  .g3grid--3,
  .g3grid--2 { grid-template-columns: minmax(0, 1fr); }

  .g3tabs { flex-wrap: wrap; }
  .g3strip__row { grid-template-columns: minmax(0, 1fr); }
  .g3order { border-left: 0; }
}

@media (max-width: 560px) {
  .g3fields { grid-template-columns: minmax(0, 1fr); }
  .g3field { border-left: 0; }
  .g3field + .g3field { border-top: 1px solid rgba(var(--ink-rgb), 0.16); }

  /* Корешок с номером записи уходит: он съедает ширину, которой и так нет. */
  .g3card { grid-template-columns: minmax(0, 1fr); }
  .g3spine { display: none; }
  .g3main { padding-left: 0; }

  .g3line,
  .g3head,
  .g3addr,
  .g3also,
  .g3slip__foot,
  .g3strip__foot,
  .g3refused__foot,
  .g3save__foot { flex-wrap: wrap; }

  .g3row { grid-template-columns: clamp(20px, 1.02vw, 26px) minmax(0, 1fr); }
  .g3row__end { grid-column: 2; text-align: left; }
  .g3acts { grid-template-columns: minmax(0, 1fr); }
  .g3block { grid-template-columns: minmax(0, 1fr); }
  .g3block__cell + .g3block__cell { border-left: 0; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
  .g3energy { flex-wrap: wrap; }
  .g3energy__scale { flex: 1 0 100%; }
}

/* ==========================================================================
   66. Grid view v4 — одна полоса и запись со значками
   ========================================================================== */

/* Четвёртый экран поиска и самый скупой. Инструмент собран в одну обвязку —
   пути, порядок, плотность, пять условий и красная ячейка «искать», — а
   реестр начинается сразу под ней: отдельной секции сортировки здесь нет.
   Нижние четыре плиты совпадают с grid-view-v3.html до символа и берут её
   классы, поэтому одинаковый CSS не размножается. */
.g4page {
  display: flex;
  flex-direction: column;
  padding-top: 0;
  padding-bottom: 0;
}

.g4search { margin-top: clamp(26px, 1.56vw, 40px); }
.g4results { margin-top: clamp(14px, 0.70vw, 18px); }

.g4register {
  margin: 0;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.g4tick,
.g4wtick {
  position: absolute;
  width: clamp(14px, 0.70vw, 18px);
  height: clamp(14px, 0.70vw, 18px);
  border-color: rgba(var(--ink-rgb), 0.4);
  pointer-events: none;
}

.g4tick--tl, .g4wtick--tl { left: 12px; top: 12px;
  border-left-style: solid; border-left-width: 1px;
  border-top-style: solid; border-top-width: 1px; }
.g4tick--tr { right: 12px; top: 12px;
  border-right-style: solid; border-right-width: 1px;
  border-top-style: solid; border-top-width: 1px; }
.g4tick--bl { left: 12px; bottom: 12px;
  border-left-style: solid; border-left-width: 1px;
  border-bottom-style: solid; border-bottom-width: 1px; }
.g4tick--br, .g4wtick--br { right: 12px; bottom: 12px;
  border-right-style: solid; border-right-width: 1px;
  border-bottom-style: solid; border-bottom-width: 1px; }

.g4wtick { width: clamp(14px, 0.78vw, 20px); height: clamp(14px, 0.78vw, 20px); }
.g4wtick--tl { left: 14px; top: 14px; }
.g4wtick--br { right: 14px; bottom: 14px; }

.g4icon { display: block; flex: none; }

.g4arrow {
  font-family: var(--text);
  font-size: clamp(15px, 0.78vw, 20px);
  line-height: 1;
}

.g4pill__input {
  position: fixed;
  top: 0;
  left: 0;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

/* --- 1. Одна полоса --------------------------------------------------------- */
.g4search,
.g4results { position: relative; }

.g4strip {
  position: relative;
  padding: clamp(14px, 0.86vw, 22px);
  border-radius: 14px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
}

.g4form { display: flex; flex-direction: column; gap: clamp(14px, 0.86vw, 22px); }

.g4top {
  display: flex;
  align-items: center;
  gap: clamp(10px, 0.55vw, 14px);
}

.g4tabs { display: inline-flex; align-items: center; gap: clamp(8px, 0.55vw, 14px); margin-right: auto; }

.g4tab {
  display: inline-flex;
  align-items: center;
  height: clamp(46px, 2.42vw, 62px);
  padding: 0 clamp(16px, 1.17vw, 30px);
  border-radius: 999px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
  cursor: pointer;
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
  transition: background 200ms ease, color 200ms ease;
}

.g4pill__input:checked + .g4tab,
.g4pill__input:checked + .g4view {
  background: var(--ink);
  box-shadow: none;
  color: var(--bg);
}

.g4pill__input:focus-visible + .g4tab,
.g4pill__input:focus-visible + .g4view {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

/* Порядок и плотность одной высоты — они читаются как одна пара. */
.g4order {
  display: inline-flex;
  align-items: center;
  gap: clamp(8px, 0.47vw, 12px);
  height: clamp(44px, 2.03vw, 52px);
  padding: 0 clamp(12px, 0.78vw, 20px);
  border-radius: 8px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.g4order__label {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
  white-space: nowrap;
}

.g4order__select {
  height: clamp(26px, 1.17vw, 30px);
  padding: 0;
  border: 0;
  background: transparent;
  font-family: var(--mono);
  font-size: clamp(12px, 0.55vw, 14px);
  letter-spacing: 0.06em;
  color: var(--ink);
  cursor: pointer;
}

.g4views { display: inline-flex; align-items: center; gap: 7px; }

.g4view {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(44px, 2.03vw, 52px);
  height: clamp(44px, 2.03vw, 52px);
  border-radius: 8px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22);
  cursor: pointer;
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  color: var(--muted);
  transition: background 200ms ease, color 200ms ease;
}

/* Шесть ячеек в одной обвязке: пять условий и красная ячейка «искать». */
.g4terms {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr)) minmax(0, clamp(160px, 13.28vw, 340px));
  align-items: stretch;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
}

.g4field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
  margin: 0;
  padding: clamp(12px, 0.70vw, 18px) clamp(12px, 0.78vw, 20px);
}

.g4field + .g4field { border-left: 1px solid rgba(var(--ink-rgb), 0.16); }

.g4field__label {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.g4field__select {
  width: 100%;
  height: clamp(34px, 1.56vw, 40px);
  padding: 0;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  background: transparent;
  font-family: var(--mono);
  font-size: clamp(13px, 0.62vw, 16px);
  color: var(--muted);
  cursor: pointer;
  transition: border-color 200ms ease, color 200ms ease;
}

/* Заданное условие набрано тушью, «Any» — приглушённо. */
.g4field--set .g4field__select { color: var(--ink); }

/* Общая красная рамка фокуса читается как ошибка и висит после выбора:
   фокус показывает линейка под условием. */
.g4field__select:focus,
.g4field__select:focus-visible,
.g4order__select:focus,
.g4order__select:focus-visible {
  outline: none;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: var(--accent);
}

.g4go {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(10px, 0.62vw, 16px);
  padding: 0 clamp(16px, 1.17vw, 30px);
  border: 0;
  background: var(--accent);
  cursor: pointer;
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--on-photo);
  transition: background 220ms ease;
}

.g4go:hover,
.g4go:focus-visible { background: var(--accent-deep); }

.g4foot {
  display: flex;
  align-items: center;
  gap: clamp(12px, 0.86vw, 22px);
  margin: 0;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.g4foot__count { color: var(--ink); }
.g4foot__rule { flex: 1; height: 1px; background: rgba(var(--ink-rgb), 0.14); }

/* --- 2. Записи со значками -------------------------------------------------- */
.g4empty:not([hidden]) {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: clamp(10px, 0.55vw, 14px);
  margin: 0 0 clamp(20px, 1.56vw, 40px);
  padding: clamp(32px, 2.34vw, 60px) clamp(24px, 1.80vw, 46px);
  border-radius: 14px;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.g4empty__kicker {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--accent);
}

.g4empty__head {
  font-family: var(--display);
  font-size: clamp(28px, 1.72vw, 44px);
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.g4empty__note {
  font-size: clamp(16px, 0.78vw, 20px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--muted);
}

.g4grid {
  display: grid;
  gap: clamp(20px, 1.56vw, 40px);
  align-items: stretch;
}

.g4grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.g4grid--4 .g4well { height: clamp(165px, 11.72vw, 300px); }
.g4grid--4 .g4size--4 { display: block; }
.g4grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.g4grid--3 .g4well { height: clamp(187px, 13.28vw, 340px); }
.g4grid--3 .g4size--3 { display: block; }
.g4grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.g4grid--2 .g4well { height: clamp(231px, 16.41vw, 420px); }
.g4grid--2 .g4size--2 { display: block; }
.g4grid--l { grid-template-columns: minmax(0, 1fr); }
.g4grid--l .g4well { height: clamp(286px, 20.31vw, 520px); }
.g4grid--l .g4size--l { display: block; }

/* Запись без рамки: ни заливки, ни коробки — только линейки. На наведении
   она чуть краснеет, и это единственная её реакция. */
.g4card {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 0 6px;
  transition: background 200ms ease;
}

/* Скрытая запись должна оставаться скрытой и в альбомном виде: правило
   поворота (display: grid) стоит ниже и той же силы, поэтому без !important
   оно возвращало на экран всё, что скрипт спрятал. */
.g4card[hidden] { display: none !important; }

.g4card:hover,
.g4card:focus-within { background: rgba(var(--accent-rgb), 0.05); }

.g4photocol { display: flex; flex-direction: column; min-width: 0; }

.g4head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(10px, 0.62vw, 16px);
  margin: 0;
  padding-bottom: clamp(10px, 0.55vw, 14px);
  border-bottom: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink);
}

.g4head__ref { color: var(--accent); }

.g4chip {
  display: inline-flex;
  align-items: center;
  padding: 6px clamp(10px, 0.55vw, 14px);
  border-radius: 4px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  color: var(--ink);
}

/* Отмеченная запись говорит, чем заслужила место. */
.g4chip--feat { box-shadow: inset 0 0 0 2px var(--accent); color: var(--accent); }

.g4head__where { display: flex; align-items: center; gap: 8px; color: var(--faint); }

.g4well {
  position: relative;
  display: block;
  margin: clamp(14px, 0.78vw, 20px) 0 0;
  overflow: hidden;
  background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.1) 0 2px, transparent 2px 14px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2);
}

.g4photo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.g4size {
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  display: none;
  transform: translateY(-50%);
  text-align: center;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
}

/* Надписи и кружки на снимке одинаковы в обеих темах. */
.g4frames {
  position: absolute;
  left: 14px;
  bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px clamp(8px, 0.39vw, 10px);
  border-radius: 4px;
  background: rgba(var(--scrim-rgb), 0.62);
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--on-photo);
}

.g4discs {
  position: absolute;
  right: 12px;
  top: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.g4disc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(32px, 1.41vw, 36px);
  height: clamp(32px, 1.41vw, 36px);
  border: 0;
  border-radius: 999px;
  background: rgba(var(--scrim-rgb), 0.62);
  box-shadow: inset 0 0 0 1px rgba(var(--on-photo-rgb), 0.3);
  color: var(--on-photo);
  cursor: pointer;
  transition: background 200ms ease;
}

.g4disc:hover,
.g4disc:focus-visible { background: var(--accent); }

.g4record {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-width: 0;
}

.g4addr {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: clamp(12px, 0.78vw, 20px);
  padding: clamp(14px, 0.78vw, 20px) 0 0;
}

.g4addr__place,
.g4pricecol { display: flex; flex-direction: column; gap: 5px; margin: 0; min-width: 0; }
.g4pricecol { align-items: flex-end; }

.g4address {
  font-family: var(--display);
  font-size: clamp(24px, 1.41vw, 36px);
  line-height: 1.08;
  letter-spacing: -0.018em;
}

.g4walk {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.g4price {
  font-family: var(--display);
  font-size: clamp(24px, 1.48vw, 38px);
  line-height: 1;
  white-space: nowrap;
}

.g4unit {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
}

/* Текст показывается только в альбомном повороте. */
.g4blurb { display: none; }

.g4rows { display: flex; flex-direction: column; padding-top: clamp(12px, 0.70vw, 18px); }

.g4row {
  display: grid;
  grid-template-columns: clamp(20px, 1.02vw, 26px) minmax(0, clamp(90px, 5.08vw, 130px)) minmax(0, 1fr) auto;
  gap: clamp(10px, 0.62vw, 16px);
  align-items: center;
  margin: 0;
  padding: clamp(10px, 0.47vw, 12px) 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.14);
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.14em;
  text-transform: uppercase;
}

.g4row__icon,
.g4row__value { color: var(--muted); }
.g4row__key { color: var(--faint); }
.g4row__end { color: var(--ink); text-align: right; }
.g4row__end--red { color: var(--accent); }

/* Кнопки прижаты к низу, поэтому записи неравной длины стоят в линию. */
.g4acts {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(10px, 0.47vw, 12px);
  margin: auto 0 0;
  padding-top: clamp(12px, 0.70vw, 18px);
  border-top: 2px solid var(--ink);
}

.g4act {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(8px, 0.47vw, 12px);
  height: clamp(44px, 2.11vw, 54px);
  padding: 0 clamp(14px, 0.86vw, 22px);
  border-radius: 6px;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  transition: background 200ms ease, color 200ms ease;
}

.g4act--ghost { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34); color: var(--ink); }

.g4act--ghost:hover,
.g4act--ghost:focus-visible { background: rgba(var(--ink-rgb), 0.08); }

.g4act--ink {
  justify-content: space-between;
  background: var(--ink);
  color: var(--bg);
}

.g4act--ink:hover,
.g4act--ink:focus-visible { background: var(--accent); color: var(--on-photo); }

/* Альбомный поворот: кадр слева, запись справа. Хендофф оставил у ☰ ветку от
   v3 с размерной линией и энергошкалой — это осколок прошлой версии; и README,
   и отмеченная запись говорят, что обе ориентации здесь одинаково скупые. */
.g4grid--l .g4card,
.g4card--feat {
  display: grid;
  grid-template-columns: minmax(0, clamp(320px, 42.19vw, 1080px)) minmax(0, 1fr);
  padding: 0 6px;
}

.g4card--feat { margin-top: clamp(20px, 1.56vw, 40px); }

.g4grid--l .g4photocol,
.g4card--feat .g4photocol {
  padding-right: clamp(18px, 1.33vw, 34px);
  border-right: 1px solid rgba(var(--ink-rgb), 0.16);
}

.g4grid--l .g4record,
.g4card--feat .g4record { padding-left: clamp(20px, 1.56vw, 40px); }

.g4grid--l .g4well,
.g4card--feat .g4well { flex: 1; height: clamp(240px, 20.31vw, 520px); }

.g4grid--l .g4address,
.g4card--feat .g4address { font-size: clamp(30px, 2.27vw, 58px); line-height: 1.02; }

.g4grid--l .g4price,
.g4card--feat .g4price { font-size: clamp(28px, 1.80vw, 46px); }

.g4grid--l .g4addr,
.g4card--feat .g4addr { padding: 0 0 clamp(12px, 0.70vw, 18px); border-bottom: 2px solid var(--ink); }

.g4grid--l .g4act,
.g4card--feat .g4act { height: clamp(46px, 2.27vw, 58px); }

.g4grid--l .g4size--l,
.g4card--feat .g4size--l { display: block; }

.g4grid--l .g4blurb,
.g4card--feat .g4blurb {
  display: block;
  margin: clamp(12px, 0.70vw, 18px) 0 0;
  font-size: clamp(16px, 0.78vw, 20px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--muted);
  text-wrap: pretty;
}

/* ==========================================================================
   67. Grid view v4 — адаптив
   ========================================================================== */

@media (max-width: 1400px) {
  /* Альбомная запись складывается в стопку — тот же компонент, другой поворот. */
  .g4grid--l .g4card,
  .g4card--feat { grid-template-columns: minmax(0, 1fr); }
  .g4grid--l .g4photocol,
  .g4card--feat .g4photocol { padding-right: 0; border-right: 0; }
  .g4grid--l .g4record,
  .g4card--feat .g4record { padding-left: 0; }
  .g4grid--l .g4well,
  .g4card--feat .g4well { height: clamp(220px, 16.41vw, 420px); }
  .g4grid--l .g4address,
  .g4card--feat .g4address { font-size: clamp(24px, 1.41vw, 36px); }
}

@media (max-width: 1240px) {
  /* Полоса разворачивается: условия в три ячейки, кнопка на всю ширину. */
  .g4terms { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .g4field:nth-child(4) { border-left: 0; }
  .g4field:nth-child(n + 4) { border-top: 1px solid rgba(var(--ink-rgb), 0.16); }
  .g4go { grid-column: 1 / -1; height: clamp(56px, 2.81vw, 72px); border-top: 1px solid rgba(var(--ink-rgb), 0.16); }

  .g4grid--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1024px) {
  .g4top { flex-wrap: wrap; }
  .g4tabs { margin-right: 0; }
  .g4grid--4,
  .g4grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 768px) {
  .g4terms { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .g4field:nth-child(odd) { border-left: 0; }
  .g4field:nth-child(n + 3) { border-top: 1px solid rgba(var(--ink-rgb), 0.16); }

  .g4grid--4,
  .g4grid--3,
  .g4grid--2 { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 560px) {
  .g4terms { grid-template-columns: minmax(0, 1fr); }
  .g4field { border-left: 0; }
  .g4field + .g4field { border-top: 1px solid rgba(var(--ink-rgb), 0.16); }

  .g4head,
  .g4addr,
  .g4foot { flex-wrap: wrap; }
  .g4pricecol { align-items: flex-start; }

  .g4row { grid-template-columns: clamp(20px, 1.02vw, 26px) minmax(0, 1fr); }
  .g4row__end { grid-column: 2; text-align: left; }
  .g4acts { grid-template-columns: minmax(0, 1fr); }
  .g4tabs { flex-wrap: wrap; }
}

/* ==========================================================================
   68. Grid/list view v5 — стол поиска, паспарту и страницы
   ========================================================================== */

/* Пятый и самый короткий экран поиска: шапка, стол, реестр, страницы — под
   сеткой не осталось ничего, и это сделано намеренно. Пути написаны словами,
   а не пилюлями: поиск читается как начатая фраза. Карточка — Framed
   «Standard layout»: тёплое паспарту и снимок в собственной красной рамке. */
.g5page {
  display: flex;
  flex-direction: column;
  padding-top: 0;
  padding-bottom: 0;
}

.g5search { margin-top: clamp(26px, 1.56vw, 40px); position: relative; }
.g5results { margin-top: clamp(14px, 0.70vw, 18px); position: relative; }
.g5pages { margin-top: clamp(14px, 0.70vw, 18px); }

.g5register {
  margin: 0;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.g5pill__input {
  position: fixed;
  top: 0;
  left: 0;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.g5arrow {
  font-family: var(--text);
  font-size: clamp(15px, 0.74vw, 19px);
  line-height: 1;
}

/* --- 1. Пути и стол --------------------------------------------------------- */
.g5paths {
  display: flex;
  align-items: baseline;
  gap: clamp(14px, 1.02vw, 26px);
  margin: 0 0 clamp(14px, 0.78vw, 20px);
  padding-bottom: clamp(10px, 0.55vw, 14px);
  border-bottom: 2px solid var(--ink);
}

.g5paths__kicker {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--accent);
}

/* Невыбранный путь набран сплошным цветом, а не прозрачностью: на альфе
   контраст падал до 1.94:1 и слово переставало читаться. */
.g5path {
  font-family: var(--display);
  font-size: clamp(24px, 1.56vw, 40px);
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--muted);
  cursor: pointer;
  transition: color 200ms ease;
}

.g5pill__input:checked + .g5path {
  color: var(--ink);
  text-decoration: underline;
  text-decoration-color: var(--accent);
  text-decoration-thickness: 2px;
  text-underline-offset: 9px;
}

.g5pill__input:focus-visible + .g5path,
.g5pill__input:focus-visible + .g5view {
  outline: 2px solid var(--accent);
  outline-offset: 4px;
}

.g5paths__note {
  margin-left: auto;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
  text-align: right;
}

.g5desk {
  border-radius: 12px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
}

.g5terms {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  align-items: stretch;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.2);
}

.g5field {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 7px;
  min-width: 0;
  margin: 0;
  padding: clamp(12px, 0.78vw, 20px) clamp(14px, 0.94vw, 24px);
}

.g5field + .g5field { border-left: 1px solid rgba(var(--ink-rgb), 0.16); }

.g5field__label {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}

.g5field__select {
  width: 100%;
  height: clamp(34px, 1.56vw, 40px);
  padding: 0;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  background: transparent;
  font-family: var(--display);
  font-size: clamp(18px, 0.94vw, 24px);
  color: var(--muted);
  cursor: pointer;
  transition: color 200ms ease, border-color 200ms ease;
}

/* Заданное условие набрано тушью. */
.g5field--set .g5field__select { color: var(--ink); }

/* Красная рамка фокуса вокруг поля читается как ошибка и висит после выбора:
   фокус показывает линейка под условием. */
.g5field__select:focus,
.g5field__select:focus-visible,
.g5order__select:focus,
.g5order__select:focus-visible {
  outline: none;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: var(--accent);
}

.g5controls {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto minmax(0, clamp(160px, 13.28vw, 340px));
  gap: clamp(12px, 0.78vw, 20px);
  align-items: center;
  padding: clamp(12px, 0.70vw, 18px) clamp(14px, 0.94vw, 24px);
}

.g5controls__count {
  margin: 0;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.g5count__homes { color: var(--ink); }

.g5order {
  display: inline-flex;
  align-items: center;
  gap: clamp(8px, 0.47vw, 12px);
  height: clamp(44px, 2.03vw, 52px);
  padding: 0 clamp(12px, 0.70vw, 18px);
  border-radius: 8px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.g5order__label {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
  white-space: nowrap;
}

.g5order__select {
  height: clamp(26px, 1.17vw, 30px);
  padding: 0;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  font-family: var(--mono);
  font-size: clamp(12px, 0.55vw, 14px);
  letter-spacing: 0.06em;
  color: var(--ink);
  cursor: pointer;
}

.g5views { display: inline-flex; align-items: center; gap: 6px; }

.g5view {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(44px, 2.03vw, 52px);
  height: clamp(44px, 2.03vw, 52px);
  border-radius: 8px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22);
  cursor: pointer;
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  color: var(--muted);
  transition: background 200ms ease, color 200ms ease;
}

.g5pill__input:checked + .g5view {
  background: var(--ink);
  box-shadow: none;
  color: var(--bg);
}

.g5go {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(10px, 0.62vw, 16px);
  height: clamp(44px, 2.03vw, 52px);
  padding: 0 clamp(14px, 1.02vw, 26px);
  border: 0;
  border-radius: 8px;
  background: var(--accent);
  cursor: pointer;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--on-photo);
  transition: background 220ms ease;
}

.g5go:hover,
.g5go:focus-visible { background: var(--accent-deep); }

/* --- 2. Реестр в паспарту --------------------------------------------------- */
.g5empty:not([hidden]) {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: clamp(10px, 0.55vw, 14px);
  margin: 0 0 clamp(20px, 1.56vw, 40px);
  padding: clamp(32px, 2.34vw, 60px) clamp(24px, 1.80vw, 46px);
  border-radius: 14px;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.g5empty__kicker {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--accent);
}

.g5empty__head {
  font-family: var(--display);
  font-size: clamp(28px, 1.72vw, 44px);
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.g5empty__note {
  font-size: clamp(16px, 0.78vw, 20px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--muted);
}

.g5grid {
  display: grid;
  gap: clamp(20px, 1.56vw, 40px);
  align-items: stretch;
}

.g5grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.g5grid--4 .g5well { height: clamp(165px, 11.72vw, 300px); }
.g5grid--4 .g5size--4 { display: block; }
.g5grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.g5grid--3 .g5well { height: clamp(187px, 13.28vw, 340px); }
.g5grid--3 .g5size--3 { display: block; }
.g5grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.g5grid--2 .g5well { height: clamp(231px, 16.41vw, 420px); }
.g5grid--2 .g5size--2 { display: block; }
.g5grid--l { grid-template-columns: minmax(0, 1fr); }
.g5grid--l .g5well { height: clamp(286px, 20.31vw, 520px); }
.g5grid--l .g5size--l { display: block; }

/* Паспарту: тёплая бумага, волосяная рамка, на наведении карточка встаёт
   на 8px выше и линия темнеет. */
.g5card {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: clamp(14px, 0.86vw, 22px);
  border-radius: 14px;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  transition: transform 240ms ease, box-shadow 240ms ease;
}

/* Скрытая запись должна оставаться скрытой и в альбомном виде: правило
   поворота (display: grid) стоит ниже и той же силы, поэтому без !important
   оно возвращало на экран всё, что скрипт спрятал. */
.g5card[hidden] { display: none !important; }

.g5card:hover,
.g5card:focus-within {
  transform: translateY(-8px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.55);
}

.g5well {
  position: relative;
  display: block;
  margin: 0;
  border-radius: 8px;
  overflow: hidden;
  background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.1) 0 2px, transparent 2px 14px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
}

.g5photo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Снимок сидит в собственной рамке — красный волосок в 14px от края. */
.g5frame {
  position: absolute;
  left: 14px;
  top: 14px;
  right: 14px;
  bottom: 14px;
  border-radius: 4px;
  box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.4);
  pointer-events: none;
}

.g5size {
  position: absolute;
  left: 0;
  right: 0;
  top: 30px;
  display: none;
  text-align: center;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
}

.g5count {
  position: absolute;
  left: 26px;
  top: 26px;
  padding: 6px clamp(8px, 0.39vw, 10px);
  border-radius: 4px;
  background: rgba(var(--scrim-rgb), 0.62);
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--on-photo);
}

.g5status {
  position: absolute;
  left: 26px;
  bottom: 26px;
  display: inline-flex;
  align-items: center;
  height: clamp(32px, 1.48vw, 38px);
  padding: 0 clamp(12px, 0.70vw, 18px);
  border-radius: 999px;
  background: var(--accent);
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--on-photo);
}

.g5discs {
  position: absolute;
  right: 26px;
  bottom: 24px;
  display: flex;
  gap: 8px;
}

.g5disc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(34px, 1.56vw, 40px);
  height: clamp(34px, 1.56vw, 40px);
  border: 0;
  border-radius: 999px;
  background: rgba(var(--scrim-rgb), 0.62);
  box-shadow: inset 0 0 0 1px rgba(var(--on-photo-rgb), 0.3);
  font-size: clamp(14px, 0.62vw, 16px);
  color: var(--on-photo);
  cursor: pointer;
  transition: background 200ms ease;
}

.g5disc:hover,
.g5disc:focus-visible { background: var(--accent); }

.g5body {
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: clamp(10px, 0.55vw, 14px);
  min-width: 0;
  padding: clamp(16px, 1.02vw, 26px) clamp(8px, 0.39vw, 10px) 0;
}

.g5head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: clamp(10px, 0.55vw, 14px);
  margin: 0;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink);
}

.g5head__ref { color: var(--accent); }
.g5head__meta { color: var(--faint); text-align: right; }

.g5address {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(24px, 1.48vw, 38px);
  line-height: 1.08;
  letter-spacing: -0.018em;
}

.g5money {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: clamp(10px, 0.62vw, 16px);
}

.g5pricecol { display: flex; flex-direction: column; gap: 5px; margin: 0; min-width: 0; }
.g5priceline { display: flex; align-items: baseline; gap: clamp(8px, 0.43vw, 11px); }

.g5price {
  font-family: var(--display);
  font-size: clamp(26px, 1.72vw, 44px);
  line-height: 1;
  white-space: nowrap;
}

/* Прежняя цена зачёркнута красным — на этой странице она есть у четырёх
   записей, и «asking price unchanged» у остальных читается как сведение. */
.g5was {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.06em;
  color: var(--faint);
  text-decoration: line-through;
  text-decoration-color: var(--accent);
  white-space: nowrap;
}

.g5unit {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--faint);
}

.g5grade {
  display: inline-flex;
  align-items: center;
  height: clamp(28px, 1.33vw, 34px);
  padding: 0 clamp(10px, 0.55vw, 14px);
  border-radius: 999px;
  background: rgba(var(--accent-rgb), 0.1);
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
  white-space: nowrap;
}

/* Строка характеристик: четыре ячейки между двумя волосками, делённые тиками. */
.g5spec {
  display: flex;
  align-items: center;
  margin: 0;
  padding: clamp(10px, 0.51vw, 13px) 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.16);
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink);
}

.g5spec__cell { flex: 1; text-align: center; }
.g5spec__cell:first-child { text-align: left; }
.g5spec__cell:last-child { text-align: right; }

.g5spec__tick {
  width: 1px;
  height: 13px;
  background: rgba(var(--ink-rgb), 0.2);
}

.g5survey {
  margin: 0;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted);
}

/* Кнопки держатся у низа, поэтому карточки неравной длины стоят в линию. */
.g5acts {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(10px, 0.47vw, 12px);
  margin: auto 0 0;
  padding-top: clamp(14px, 0.78vw, 20px);
}

.g5act {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: clamp(46px, 2.27vw, 58px);
  padding: 0 clamp(10px, 0.62vw, 16px);
  border-radius: 999px;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  transition: background 200ms ease, color 200ms ease;
}

.g5act--ink { background: var(--ink); color: var(--bg); }

.g5act--ink:hover,
.g5act--ink:focus-visible { background: var(--accent); color: var(--on-photo); }

.g5act--ghost { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.4); color: var(--ink); }

.g5act--ghost:hover,
.g5act--ghost:focus-visible { background: var(--ink); color: var(--bg); }

.g5foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(10px, 0.55vw, 14px);
  margin: 0;
  padding-top: clamp(12px, 0.62vw, 16px);
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.g5foot__published { color: var(--accent); }

/* Альбомный поворот: тот же паспарту, снимок слева, запись справа. */
.g5grid--l .g5card {
  display: grid;
  grid-template-columns: minmax(0, clamp(320px, 42.19vw, 1080px)) minmax(0, 1fr);
  gap: clamp(18px, 1.33vw, 34px);
}

.g5grid--l .g5body { padding-top: 0; }

/* --- 3. Страницы ------------------------------------------------------------ */
.g5pager {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  gap: clamp(16px, 1.33vw, 34px);
  align-items: center;
  padding: clamp(14px, 0.86vw, 22px);
  border-radius: 14px;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.g5pager__range,
.g5pager__note {
  margin: 0;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.g5pager__note { text-align: right; }

.g5pager__controls {
  display: flex;
  align-items: center;
  gap: clamp(8px, 0.39vw, 10px);
  margin: 0;
}

.g5pager__numbers { display: inline-flex; align-items: center; gap: clamp(8px, 0.39vw, 10px); }

.g5num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(44px, 2.19vw, 56px);
  height: clamp(44px, 2.19vw, 56px);
  border: 0;
  border-radius: 999px;
  background: transparent;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
  cursor: pointer;
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.06em;
  color: var(--muted);
  transition: background 200ms ease, color 200ms ease;
}

.g5num--here {
  background: var(--ink);
  box-shadow: none;
  color: var(--bg);
}

.g5step {
  display: inline-flex;
  align-items: center;
  gap: clamp(8px, 0.47vw, 12px);
  height: clamp(44px, 2.19vw, 56px);
  padding: 0 clamp(14px, 0.94vw, 24px);
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  transition: background 200ms ease, color 200ms ease;
}

.g5step--prev {
  background: transparent;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
  color: var(--muted);
}

.g5step--prev:hover:not([disabled]),
.g5step--prev:focus-visible { background: rgba(var(--ink-rgb), 0.08); color: var(--ink); }

.g5step--next { background: var(--ink); color: var(--bg); }

.g5step--next:hover:not([disabled]),
.g5step--next:focus-visible { background: var(--accent); color: var(--on-photo); }

/* Край списка виден по кнопке: на первой странице «Previous» гаснет,
   на последней — «Next». */
.g5step[disabled] {
  background: rgba(var(--ink-rgb), 0.12);
  box-shadow: none;
  color: var(--faint);
  cursor: default;
}

.g5step--prev[disabled] { background: transparent; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.18); }

/* ==========================================================================
   69. Grid/list view v5 — адаптив
   ========================================================================== */

@media (max-width: 1400px) {
  /* Альбомная запись складывается в стопку — тот же паспарту, другой поворот. */
  .g5grid--l .g5card { grid-template-columns: minmax(0, 1fr); }
  .g5grid--l .g5body { padding-top: clamp(16px, 1.02vw, 26px); }
  .g5grid--l .g5well { height: clamp(220px, 16.41vw, 420px); }
}

@media (max-width: 1240px) {
  .g5terms { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .g5field:nth-child(4) { border-left: 0; }
  .g5field:nth-child(n + 4) { border-top: 1px solid rgba(var(--ink-rgb), 0.16); }

  .g5controls { grid-template-columns: minmax(0, 1fr) auto auto; }
  .g5go { grid-column: 1 / -1; }

  .g5grid--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1024px) {
  .g5paths { flex-wrap: wrap; }
  .g5paths__note { margin-left: 0; flex: 1 0 100%; text-align: left; }

  .g5grid--4,
  .g5grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

  .g5pager { grid-template-columns: minmax(0, 1fr); justify-items: start; }
  .g5pager__note { text-align: left; }
}

@media (max-width: 768px) {
  .g5terms { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .g5field:nth-child(odd) { border-left: 0; }
  .g5field:nth-child(n + 3) { border-top: 1px solid rgba(var(--ink-rgb), 0.16); }

  .g5controls { grid-template-columns: minmax(0, 1fr); }
  .g5grid--4,
  .g5grid--3,
  .g5grid--2 { grid-template-columns: minmax(0, 1fr); }

  .g5path { font-size: clamp(22px, 1.09vw, 28px); }
}

@media (max-width: 560px) {
  .g5terms { grid-template-columns: minmax(0, 1fr); }
  .g5field { border-left: 0; }
  .g5field + .g5field { border-top: 1px solid rgba(var(--ink-rgb), 0.16); }

  .g5head,
  .g5money,
  .g5foot,
  .g5pager__controls { flex-wrap: wrap; }

  .g5spec { flex-wrap: wrap; gap: 8px 0; }
  .g5spec__cell { flex: 1 0 50%; text-align: left; }
  .g5spec__tick { display: none; }
  .g5acts { grid-template-columns: minmax(0, 1fr); }
}

/* ==========================================================================
   70. Grid view with a left sidebar — рельс фильтров и реестр
   ========================================================================== */

/* Шестая раскладка поиска и первая с постоянной колонкой фильтров: слева
   липкий рельс на 480px с семнадцатью условиями, справа строка порядка,
   реестр и страницы. Карточка — Standard «чертёжный лист»: без рамки снимка
   и значков, зато с размерной линией фасада и штамп-таблицей. */
.sbpage {
  display: flex;
  flex-direction: column;
  padding-top: 0;
  padding-bottom: 0;
}

.sbregister {
  margin: 0;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.sblayout {
  display: grid;
  grid-template-columns: minmax(0, clamp(300px, 20.31vw, 520px)) minmax(0, 1fr);
  gap: clamp(26px, 2.34vw, 60px);
  align-items: start;
  margin-top: clamp(20px, 1.56vw, 40px);
}

/* Зеркало: реестр первым, рельс справа. В разметке рельс остаётся первым —
   это порядок для клавиатуры и читалок, вправо его переносит order. */
.sblayout--right { grid-template-columns: minmax(0, 1fr) minmax(0, clamp(300px, 20.31vw, 520px)); }
.sblayout--right .sbrail { order: 2; }

/* Подпись плиты у правого края читается сверху вниз: текст всегда бежит
   прочь от края страницы, к которому прижат. */
.tplate__label--right {
  left: auto;
  right: -46px;
  transform: none;
}

/* Рельс едет вместе с реестром, а не улетает вверх. */
.sbrail {
  position: sticky;
  top: 24px;
  min-width: 0;
}

.sbmain { display: flex; flex-direction: column; min-width: 0; }

.sbpill__input {
  position: fixed;
  top: 0;
  left: 0;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.sbarrow {
  font-family: var(--text);
  font-size: clamp(14px, 0.66vw, 17px);
  line-height: 1;
}

.sbtick,
.sbctick {
  position: absolute;
  width: clamp(12px, 0.62vw, 16px);
  height: clamp(12px, 0.62vw, 16px);
  border-color: rgba(var(--ink-rgb), 0.4);
  pointer-events: none;
}

.sbtick--tl, .sbctick--tl { left: 12px; top: 12px;
  border-left-style: solid; border-left-width: 1px;
  border-top-style: solid; border-top-width: 1px; }
.sbtick--tr, .sbctick--tr { right: 12px; top: 12px;
  border-right-style: solid; border-right-width: 1px;
  border-top-style: solid; border-top-width: 1px; }
.sbtick--bl, .sbctick--bl { left: 12px; bottom: 12px;
  border-left-style: solid; border-left-width: 1px;
  border-bottom-style: solid; border-bottom-width: 1px; }
.sbtick--br, .sbctick--br { right: 12px; bottom: 12px;
  border-right-style: solid; border-right-width: 1px;
  border-bottom-style: solid; border-bottom-width: 1px; }

.sbctick { width: clamp(14px, 0.86vw, 22px); height: clamp(14px, 0.86vw, 22px); left: auto; }
.sbctick--tl { left: 14px; top: 14px; }
.sbctick--tr { right: 14px; top: 14px; }
.sbctick--bl { left: 14px; bottom: 14px; }
.sbctick--br { right: 14px; bottom: 14px; }

/* --- 1. Рельс фильтров ------------------------------------------------------ */
.sbpanel {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: clamp(16px, 0.94vw, 24px);
  border-radius: 12px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
}

.sbhead {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: clamp(10px, 0.55vw, 14px);
  margin: 0;
  padding-bottom: clamp(10px, 0.47vw, 12px);
  border-bottom: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.sbhead__title { color: var(--accent); white-space: nowrap; }
.sbhead__ref { color: var(--faint); text-align: right; }

/* Три пути: Sell среди них нет намеренно — это способ выставить дом, а не
   смотреть, и живёт он на столе продавца. */
.sbpaths {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
  margin: 0;
  padding: clamp(12px, 0.62vw, 16px) 0;
  border-bottom: 2px solid var(--ink);
}

.sbpath {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: clamp(10px, 0.51vw, 13px) clamp(8px, 0.55vw, 14px);
  border-radius: 6px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2);
  cursor: pointer;
  color: var(--muted);
  transition: background 200ms ease, color 200ms ease;
}

.sbpath__no {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  color: var(--faint);
}

.sbpath__name { font-family: var(--display); font-size: clamp(17px, 0.86vw, 22px); line-height: 1; }

/* Выбранный путь — красноватая подкладка и красная рамка, как в эталоне
   (README говорит про заливку тушью — эталон главнее). */
.sbpill__input:checked + .sbpath {
  background: rgba(var(--accent-rgb), 0.09);
  box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.4);
  color: var(--ink);
}

.sbpill__input:checked + .sbpath .sbpath__no { color: var(--accent); }

.sbpill__input:focus-visible + .sbpath,
.sbpill__input:focus-visible + .sbview {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.sbpathnote {
  margin: 0;
  padding: clamp(10px, 0.55vw, 14px) 0 4px;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.sbcity {
  display: flex;
  flex-direction: column;
  gap: 9px;
  padding: clamp(12px, 0.59vw, 15px) 0;
}

.sbcity__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: clamp(8px, 0.47vw, 12px);
  margin: 0;
}

.sbcity__label,
.sbband__label,
.sbgroup__name,
.sbrange__label {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

/* Поле города набрано в полный рост: в 48px оно читалось как приписка. */
.sbcity__field {
  display: flex;
  align-items: center;
  gap: clamp(10px, 0.62vw, 16px);
  height: clamp(52px, 2.58vw, 66px);
  padding: 0 clamp(14px, 0.86vw, 22px);
  border-radius: 8px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.sbcity__dot {
  width: 9px;
  height: 9px;
  border-radius: 999px;
  background: var(--accent);
}

.sbcity__input {
  flex: 1;
  min-width: 0;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  font-family: var(--text);
  font-size: clamp(16px, 0.86vw, 22px);
  color: var(--ink);
}

.sbcity__input:focus,
.sbcity__input:focus-visible,
.sbband__select:focus,
.sbband__select:focus-visible,
.sborder__select:focus,
.sborder__select:focus-visible {
  outline: none;
  border-bottom-style: solid;
  border-bottom-width: 2px;
  border-bottom-color: var(--accent);
}

.sbcity__status {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent);
}

.sbcity__clear,
.sbclear {
  border: 0;
  background: transparent;
  cursor: pointer;
  font-family: var(--mono);
  font-size: clamp(13px, 0.59vw, 15px);
  color: var(--muted);
}

.sbband {
  display: flex;
  flex-direction: column;
  gap: 7px;
  min-width: 0;
  margin: 0;
  padding: clamp(12px, 0.59vw, 15px) 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.14);
}

.sbband--bare { padding: 0; border-top: 0; }

.sbpair {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(10px, 0.62vw, 16px);
  padding: clamp(12px, 0.59vw, 15px) 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.14);
}

.sbband__select {
  width: 100%;
  min-width: 0;
  height: clamp(26px, 1.17vw, 30px);
  padding: 0;
  border: 0;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  background: transparent;
  font-family: var(--text);
  font-size: clamp(14px, 0.70vw, 18px);
  color: var(--ink);
  cursor: pointer;
}

.sbrange {
  display: flex;
  flex-direction: column;
  gap: 9px;
  padding: clamp(12px, 0.59vw, 15px) 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.14);
}

.sbrange__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin: 0;
}

.sbrange__value { font-family: var(--mono); font-size: clamp(12px, 0.51vw, 13px); color: var(--ink); }
.sbrange__input { width: 100%; height: 24px; accent-color: var(--accent); }

.sbgroup {
  display: flex;
  flex-direction: column;
  gap: 9px;
  padding: clamp(12px, 0.59vw, 15px) 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.14);
}

.sbgroup__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: clamp(8px, 0.47vw, 12px);
  margin: 0;
}

.sbgroup__count {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--faint);
}

/* Группа с выбранными галочками подписана красным — видно, что она держит. */
.sbgroup--set .sbgroup__count { color: var(--accent); }

.sbchecks { display: flex; flex-direction: column; }
.sbchecks--two { display: grid; grid-template-columns: 1fr 1fr; gap: 0 clamp(10px, 0.62vw, 16px); }

.sbcheck {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr) auto;
  gap: clamp(8px, 0.43vw, 11px);
  align-items: center;
  padding: 6px 0;
  cursor: pointer;
}

.sbcheck__input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

.sbcheck__box {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  border-radius: 4px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  color: transparent;
}

.sbcheck__box::after { content: "\2713"; }

.sbcheck__input:checked + .sbcheck__box {
  background: var(--accent);
  box-shadow: none;
  color: var(--on-photo);
}

.sbcheck__input:focus-visible + .sbcheck__box {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.sbcheck__label { font-size: clamp(13px, 0.59vw, 15px); color: var(--ink); }

.sbcheck__count {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  color: var(--faint);
}

.sbterms {
  display: flex;
  align-items: center;
  gap: clamp(8px, 0.47vw, 12px);
  margin: 0;
  padding: clamp(10px, 0.55vw, 14px) 0 0;
  border-top: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.sbterms__count { color: var(--ink); }
.sbterms__rule { flex: 1; height: 1px; background: rgba(var(--ink-rgb), 0.14); }

.sbactions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(8px, 0.43vw, 11px);
  align-items: center;
  margin: 0;
  padding-top: clamp(12px, 0.70vw, 18px);
}

.sbshow {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(10px, 0.55vw, 14px);
  height: clamp(46px, 2.19vw, 56px);
  padding: 0 clamp(14px, 0.86vw, 22px);
  border: 0;
  border-radius: 6px;
  background: var(--accent);
  cursor: pointer;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--on-photo);
  transition: background 200ms ease;
}

.sbshow:hover,
.sbshow:focus-visible { background: var(--accent-deep); }

/* Сброс отпускает **все** ключи: версия, чистившая только ползунки,
   оставляла панель на нуле результатов без пути назад. */
.sbclear {
  width: clamp(46px, 2.19vw, 56px);
  height: clamp(46px, 2.19vw, 56px);
  border-radius: 6px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.sbclear:hover,
.sbclear:focus-visible { background: rgba(var(--ink-rgb), 0.08); }

/* --- 2. Строка порядка ------------------------------------------------------ */
.sbsort {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: clamp(12px, 0.78vw, 20px);
  align-items: center;
  padding-bottom: clamp(12px, 0.70vw, 18px);
  margin-bottom: clamp(14px, 0.86vw, 22px);
  border-bottom: 2px solid var(--ink);
}

.sbsort__count {
  margin: 0;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.sbcount__homes { color: var(--ink); }

.sborder {
  display: inline-flex;
  align-items: center;
  gap: clamp(8px, 0.47vw, 12px);
  height: clamp(44px, 2.03vw, 52px);
  padding: 0 clamp(12px, 0.70vw, 18px);
  border-radius: 8px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.sborder__label {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
  white-space: nowrap;
}

.sborder__select {
  height: clamp(26px, 1.17vw, 30px);
  padding: 0;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  font-family: var(--mono);
  font-size: clamp(12px, 0.55vw, 14px);
  letter-spacing: 0.06em;
  color: var(--ink);
  cursor: pointer;
}

.sbviews { display: inline-flex; align-items: center; gap: 6px; }

.sbview {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(44px, 2.03vw, 52px);
  height: clamp(44px, 2.03vw, 52px);
  border-radius: 8px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22);
  cursor: pointer;
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  color: var(--muted);
  transition: background 200ms ease, color 200ms ease;
}

.sbpill__input:checked + .sbview {
  background: var(--ink);
  box-shadow: none;
  color: var(--bg);
}

/* --- 3. Чертёжные листы ----------------------------------------------------- */
.sbempty:not([hidden]) {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: clamp(10px, 0.55vw, 14px);
  margin: 0 0 clamp(20px, 1.56vw, 40px);
  padding: clamp(32px, 2.34vw, 60px) clamp(24px, 1.80vw, 46px);
  border-radius: 14px;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.sbempty__kicker {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--accent);
}

.sbempty__head {
  font-family: var(--display);
  font-size: clamp(26px, 1.72vw, 44px);
  line-height: 1.1;
  letter-spacing: -0.02em;
}

.sbempty__note {
  font-size: clamp(16px, 0.78vw, 20px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--muted);
}

.sbgrid {
  display: grid;
  gap: clamp(20px, 1.56vw, 40px);
  align-items: stretch;
}

.sbgrid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.sbgrid--4 .sbwell { height: clamp(165px, 11.72vw, 300px); }
.sbgrid--4 .sbsize--4 { display: block; }
.sbgrid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sbgrid--3 .sbwell { height: clamp(187px, 13.28vw, 340px); }
.sbgrid--3 .sbsize--3 { display: block; }
.sbgrid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.sbgrid--2 .sbwell { height: clamp(231px, 16.41vw, 420px); }
.sbgrid--2 .sbsize--2 { display: block; }
.sbgrid--l { grid-template-columns: minmax(0, 1fr); }
.sbgrid--l .sbwell { height: clamp(231px, 16.41vw, 420px); }
.sbgrid--l .sbsize--l { display: block; }

.sbcard {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: clamp(16px, 1.02vw, 26px);
  border-radius: 14px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
  transition: transform 240ms ease, box-shadow 240ms ease;
}

/* Скрытая запись должна оставаться скрытой и в альбомном виде: правило
   поворота (display: grid) стоит ниже и той же силы, поэтому без !important
   оно возвращало на экран всё, что скрипт спрятал. */
.sbcard[hidden] { display: none !important; }

.sbcard:hover,
.sbcard:focus-within {
  transform: translateY(-8px);
  box-shadow: inset 0 0 0 2px rgba(var(--ink-rgb), 0.55);
}

.sbdrawing { display: flex; flex-direction: column; min-width: 0; }

.sbsheet__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: clamp(10px, 0.62vw, 16px);
  margin: 0;
  padding: 0 8px clamp(10px, 0.55vw, 14px);
  border-bottom: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--ink);
}

.sbsheet__ref { color: var(--accent); }
.sbsheet__where { color: var(--faint); text-align: right; }

.sbdimline { margin: clamp(12px, 0.70vw, 18px) 8px 0; }

.sbdim {
  position: relative;
  display: block;
  height: clamp(12px, 0.55vw, 14px);
}

.sbdim__cap {
  position: absolute;
  top: 0;
  bottom: 0;
  width: 1px;
  background: var(--ink);
}

.sbdim__cap--l { left: 0; }
.sbdim__cap--r { right: 0; }

.sbdim__hair {
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.4);
}

.sbdim__caption,
.sbscale {
  margin: 8px 8px 0;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.sbdim__caption { text-align: center; }

/* Метровая шкала стоит только под альбомным листом. */
.sbscale { display: none; justify-content: space-between; letter-spacing: 0.18em; }
.sbscale__tick--end { color: var(--ink); }

.sbwell {
  position: relative;
  display: block;
  margin: clamp(10px, 0.55vw, 14px) 0 0;
  overflow: hidden;
  background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.1) 0 2px, transparent 2px 14px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
}

.sbphoto {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sbguide {
  position: absolute;
  left: 0;
  right: 0;
  height: 1px;
  background: rgba(var(--ink-rgb), 0.12);
}

.sbguide--1 { top: 33.33%; }
.sbguide--2 { top: 66.66%; }

.sbsize {
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  display: none;
  transform: translateY(-50%);
  text-align: center;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
}

.sbframes,
.sbstatus {
  position: absolute;
  bottom: 12px;
  padding: 6px clamp(8px, 0.39vw, 10px);
  border-radius: 4px;
  background: rgba(var(--scrim-rgb), 0.62);
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--on-photo);
}

.sbframes { left: 14px; }
.sbstatus { right: 14px; }

.sbrecord {
  display: flex;
  flex: 1;
  flex-direction: column;
  min-width: 0;
  padding: clamp(14px, 0.86vw, 22px) 8px 0;
}

.sbaddr { display: flex; flex-direction: column; gap: 6px; margin: 0; }

.sbaddress {
  font-family: var(--display);
  font-size: clamp(24px, 1.41vw, 36px);
  line-height: 1.08;
  letter-spacing: -0.018em;
}

/* Строка до метро и текст живут в альбомном повороте. */
.sbwalk,
.sbblurb,
.sbrows,
.sbacts,
.sbprice__trend { display: none; }

.sbprice {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: clamp(10px, 0.62vw, 16px);
  margin: clamp(10px, 0.55vw, 14px) 0 0;
}

.sbprice__value {
  font-family: var(--display);
  font-size: clamp(26px, 1.72vw, 44px);
  line-height: 1;
  white-space: nowrap;
}

.sbprice__unit,
.sbprice__trend {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--faint);
}

/* Штамп-таблица держит по 22px сверху и снизу — иначе линейки её касаются. */
.sbblock {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: clamp(14px, 0.86vw, 22px) 0 0;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.sbblock__cell {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: clamp(10px, 0.55vw, 14px);
}

.sbblock__cell + .sbblock__cell { border-left: 1px solid rgba(var(--ink-rgb), 0.16); }

.sbblock__key {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.sbblock__value { font-family: var(--mono); font-size: clamp(12px, 0.51vw, 13px); color: var(--ink); }
.sbblock__value--red { color: var(--accent); }

.sbfoot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(10px, 0.62vw, 16px);
  margin: auto 0 0;
  padding: clamp(12px, 0.70vw, 18px) 0 0;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}

.sbfoot__checked,
.sbfoot__published { display: none; }

.sbfoot__open {
  display: inline-flex;
  align-items: center;
  gap: clamp(8px, 0.39vw, 10px);
  color: var(--accent);
}

/* Альбомный поворот: чертёж слева, запись справа, поровну. */
.sbgrid--l .sbcard {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
}

.sbgrid--l .sbcard:hover,
.sbgrid--l .sbcard:focus-within { transform: none; }

.sbgrid--l .sbdrawing {
  padding: 0 clamp(18px, 1.33vw, 34px) 0 8px;
  border-right: 1px solid rgba(var(--ink-rgb), 0.16);
}

.sbgrid--l .sbrecord { padding: 0 8px 0 clamp(20px, 1.56vw, 40px); }
.sbgrid--l .sbscale { display: flex; }
.sbgrid--l .sbwalk { display: block; }
.sbgrid--l .sbprice__trend { display: inline; color: var(--accent); }

.sbgrid--l .sbaddress { font-size: clamp(28px, 2.03vw, 52px); line-height: 1.04; }
.sbgrid--l .sbprice__value { font-size: clamp(28px, 1.80vw, 46px); }

/* В альбомном листе адрес и цена стоят одной строкой: слева адрес с дорогой
   до метро, справа цена с ценой за метр и трендом, и общая линейка под ними. */
.sbgrid--l .sbrecord {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-content: start;
}

.sbgrid--l .sbaddr {
  grid-column: 1;
  padding-bottom: clamp(12px, 0.70vw, 18px);
  border-bottom: 2px solid var(--ink);
}

.sbgrid--l .sbprice {
  grid-column: 2;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: flex-end;
  gap: 5px;
  margin: 0;
  padding-bottom: clamp(12px, 0.70vw, 18px);
  border-bottom: 2px solid var(--ink);
}

.sbgrid--l .sbblock,
.sbgrid--l .sbrows,
.sbgrid--l .sbacts,
.sbgrid--l .sbfoot { grid-column: 1 / -1; }

/* Текст записи виден только в альбомном листе. */
.sbgrid--l .sbblurb {
  grid-column: 1 / -1;
  display: block;
  margin: clamp(12px, 0.70vw, 18px) 0 0;
  font-size: clamp(16px, 0.78vw, 20px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--muted);
  text-wrap: pretty;
}

/* Цена за метр и тренд идут одной строкой через точку. */
.sbgrid--l .sbprice__line {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
}

.sbgrid--l .sbrows {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding-top: clamp(14px, 0.86vw, 22px);
}

.sbrow {
  display: flex;
  justify-content: space-between;
  gap: clamp(10px, 0.62vw, 16px);
  padding: clamp(10px, 0.51vw, 13px) 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.14);
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
}

.sbrow__key { color: var(--faint); }
.sbrow__value { text-align: right; }

.sbgrid--l .sbacts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(10px, 0.47vw, 12px);
  margin: auto 0 0;
  padding-top: clamp(14px, 0.78vw, 20px);
  border-top: 2px solid var(--ink);
}

.sbact {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(8px, 0.47vw, 12px);
  height: clamp(46px, 2.27vw, 58px);
  padding: 0 clamp(12px, 0.70vw, 18px);
  border-radius: 8px;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  transition: background 200ms ease, color 200ms ease;
}

.sbact--ghost { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34); color: var(--ink); }

.sbact--ghost:hover,
.sbact--ghost:focus-visible { background: rgba(var(--ink-rgb), 0.08); }

.sbact--ink {
  justify-content: space-between;
  background: var(--ink);
  color: var(--bg);
}

.sbact--ink:hover,
.sbact--ink:focus-visible { background: var(--accent); color: var(--on-photo); }

.sbgrid--l .sbfoot { margin: 0; padding-top: clamp(10px, 0.55vw, 14px); }
.sbgrid--l .sbfoot__checked { display: inline; }
.sbgrid--l .sbfoot__published { display: inline; color: var(--accent); }
.sbgrid--l .sbfoot__open { display: none; }

/* --- 4. Страницы ------------------------------------------------------------ */
.sbpages { margin-top: clamp(14px, 0.70vw, 18px); }

.sbpager {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(16px, 1.33vw, 34px);
  align-items: center;
  padding: clamp(14px, 0.86vw, 22px);
  border-radius: 14px;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.sbpager__lines { display: flex; flex-direction: column; gap: 6px; margin: 0; }

.sbpager__range,
.sbpager__note {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.sbpager__controls {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(8px, 0.39vw, 10px);
  margin: 0;
}

.sbpager__numbers { display: inline-flex; align-items: center; gap: clamp(8px, 0.39vw, 10px); }

/* Страницы квадратные: круглые пилюли здесь читаются как чужие. */
.sbnum {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(44px, 2.19vw, 56px);
  height: clamp(44px, 2.19vw, 56px);
  border: 0;
  border-radius: 8px;
  background: transparent;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
  cursor: pointer;
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  color: var(--muted);
  transition: background 200ms ease, color 200ms ease;
}

.sbnum--here { background: var(--ink); box-shadow: none; color: var(--bg); }

.sbstep {
  display: inline-flex;
  align-items: center;
  gap: clamp(8px, 0.47vw, 12px);
  height: clamp(44px, 2.19vw, 56px);
  padding: 0 clamp(14px, 0.94vw, 24px);
  border: 0;
  border-radius: 8px;
  cursor: pointer;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  transition: background 200ms ease, color 200ms ease;
}

.sbstep--prev {
  background: transparent;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
  color: var(--muted);
}

.sbstep--prev:hover:not([disabled]),
.sbstep--prev:focus-visible { background: rgba(var(--ink-rgb), 0.08); color: var(--ink); }

.sbstep--next { background: var(--ink); color: var(--bg); }

.sbstep--next:hover:not([disabled]),
.sbstep--next:focus-visible { background: var(--accent); color: var(--on-photo); }

.sbstep[disabled] {
  background: rgba(var(--ink-rgb), 0.12);
  box-shadow: none;
  color: var(--faint);
  cursor: default;
}

.sbstep--prev[disabled] { background: transparent; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.18); }

/* ==========================================================================
   71. Grid view with a left sidebar — адаптив
   ========================================================================== */

@media (max-width: 1600px) {
  .sbgrid--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .sbgrid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1400px) {
  /* Рельс перестаёт быть колонкой и встаёт над реестром. */
  .sblayout { grid-template-columns: minmax(0, 1fr); }
  .sbrail { position: static; }
  .sbgrid--l .sbcard { grid-template-columns: minmax(0, 1fr); }
  .sbgrid--l .sbdrawing { padding: 0; border-right: 0; }
  .sbgrid--l .sbrecord { padding: clamp(14px, 0.86vw, 22px) 8px 0; }
  .sbgrid--l .sbaddress { font-size: clamp(24px, 1.41vw, 36px); }
}

@media (max-width: 1024px) {
  .sbgrid--4,
  .sbgrid--3,
  .sbgrid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sbsort { grid-template-columns: minmax(0, 1fr) auto; }
  .sbviews { grid-column: 1 / -1; }
}

@media (max-width: 768px) {
  .sbgrid--4,
  .sbgrid--3,
  .sbgrid--2 { grid-template-columns: minmax(0, 1fr); }
  .sbpaths { grid-template-columns: minmax(0, 1fr); }
  .sbpager { grid-template-columns: minmax(0, 1fr); }
  .sbpager__controls { justify-content: flex-start; flex-wrap: wrap; }
  .sbgrid--l .sbacts { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 560px) {
  .sbpair,
  .sbchecks--two { grid-template-columns: minmax(0, 1fr); }
  .sbsheet__head,
  .sbprice,
  .sbfoot,
  .sbrow { flex-wrap: wrap; }
  .sbblock { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sbblock__cell:nth-child(3) { border-left: 0; }
  .sbblock__cell:nth-child(n + 3) { border-top: 1px solid rgba(var(--ink-rgb), 0.16); }
  .sbactions { grid-template-columns: minmax(0, 1fr); }
  .sbclear { width: 100%; }
}

/* ==========================================================================
   72. Map view v1 — реестр и город вместе
   ========================================================================== */

/* Экран открывается обычной сеткой со страницами; переключатель «List view /
   Map view» превращает результаты в разворот 45 / 55: карточки листаются в
   своей колонке слева, справа — начерченная плита карты с ценниками. Полоса
   поиска и карточка «со значками» — общие с grid-view-v4 (раздел 66). */
/* До подвала — не больше 60px (просьба владельца): экраны поиска берут
   main.page--tight, а свой нижний отступ у их оболочек снят. */
.page--tight { padding-bottom: clamp(40px, 2.34vw, 60px); }

.mvpage {
  display: flex;
  flex-direction: column;
  padding-top: 0;
  padding-bottom: 0;
}

.mvresults { margin-top: clamp(14px, 0.86vw, 22px); position: relative; }

/* Шапка без утилитарной строки и без линии под меню — для третьей карты. */
/* Меню без нижнего воздуха: знак и кнопки сидят у полосы поиска. */
.chrome--bare .nav { height: auto; padding: 18px 0 0; gap: 20px; border-bottom: 0; }
/* Без меню кнопки темы и аватара уходят к правому краю, как и были. */
.chrome--bare .nav__actions { margin-left: auto; }
/* Порядок и плотность живут в шапке, перед переключателем темы; зазор до
   него — тот же, что у переключателя до аватара (gap блока действий). */
.mvnavctl { display: inline-flex; align-items: center; gap: 7px; }
/* Переключатель режима стоит сразу за знаком, с тем же зазором 20px. */
.mvnavmode { display: inline-flex; }
.mvnavmode .mvmode { margin: 0; }
.mvnavctl .mvorder { margin-right: 5px; }

/* Без крошек полоса поиска стоит в 10px под знаком: 5 у main и 5 свои. */
.mvpage--bare .g4search { margin-top: 5px; }
.mvpages { margin-top: clamp(14px, 0.70vw, 18px); }

/* Строка порядка и плотности стоит ПОД полосой поиска: переключатель режима
   прижат влево, порядок и квадраты — вправо, ☰ заканчивается на кромке. */
.mvbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 7px;
  margin-top: clamp(14px, 0.86vw, 22px);
}

.mvbar__right { display: flex; align-items: center; gap: 7px; }
.mvorder { margin-right: 5px; }

/* Сегментный переключатель в языке дома: кремовое корытце, две пилюли,
   выбранная залита тушью. Это состояние, а не переход — страница одна. */
.mvmode {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin: 0;
  padding: 5px;
  border-radius: 999px;
  background: rgba(var(--ink-rgb), 0.06);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14);
}

.mvmode__pill {
  display: inline-flex;
  align-items: center;
  height: clamp(36px, 1.64vw, 42px);
  padding: 0 clamp(16px, 1.02vw, 26px);
  border-radius: 999px;
  cursor: pointer;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
  transition: background 200ms ease, color 200ms ease;
}

.g4pill__input:checked + .mvmode__pill { background: var(--ink); color: var(--bg); }
.g4pill__input:focus-visible + .mvmode__pill { outline: 2px solid var(--accent); outline-offset: 2px; }

/* В режиме карты плотности 4 и 3 не переживают колонку в 1080px — остаются 2 и ☰. */
.mvpage--map .mvview--4,
.mvpage--map .mvview--3 { display: none; }

/* --- Результаты: список или разворот ---------------------------------------- */
.mvsplit { display: block; }
.mvcol { display: block; min-width: 0; }

.mvgrid {
  display: grid;
  gap: clamp(20px, 1.56vw, 40px);
  align-items: stretch;
  min-width: 0;
}

.mvgrid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.mvgrid--4 .g4well { height: clamp(165px, 11.72vw, 300px); }
.mvgrid--4 .g4size--4 { display: block; }
.mvgrid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mvgrid--3 .g4well { height: clamp(187px, 13.28vw, 340px); }
.mvgrid--3 .g4size--3 { display: block; }
.mvgrid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.mvgrid--2 .g4well { height: clamp(231px, 16.41vw, 420px); }
.mvgrid--2 .g4size--2 { display: block; }
.mvgrid--l { grid-template-columns: minmax(0, 1fr); }
.mvgrid--l .g4size--l { display: block; }

.mvcard { min-width: 0; }
.mvcard[hidden] { display: none !important; }

/* В ☰ запись показывает строку-гроссбух, а карточку прячет. */
.mvrow { display: none; }
.mvgrid--l .mvcard > .g4photocol,
.mvgrid--l .mvcard > .g4record { display: none; }
.mvgrid--l .mvcard { padding: 0; }
.mvgrid--l .mvcard:hover,
.mvgrid--l .mvcard:focus-within { background: transparent; }

.mvgrid--l .mvrow {
  position: relative;
  display: grid;
  grid-template-columns: clamp(26px, 1.33vw, 34px) minmax(0, clamp(180px, 12.50vw, 320px)) minmax(0, 1fr) minmax(0, clamp(200px, 13.28vw, 340px));
  align-items: stretch;
  min-width: 0;
  padding: clamp(14px, 0.94vw, 24px);
  border-radius: 10px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
  transition: box-shadow 220ms ease;
}

.mvgrid--l .mvrow:hover { box-shadow: inset 0 0 0 2px rgba(var(--ink-rgb), 0.55); }

.mvrow__no {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  margin: 0;
  border-right: 1px solid rgba(var(--ink-rgb), 0.16);
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--accent);
  writing-mode: vertical-rl;
  transform: rotate(180deg);
}

.mvrow__num { margin-right: 0.3em; }

/* Снимок — самый малый элемент строки: сведениям отдано место. */
.mvrow__well {
  position: relative;
  display: block;
  height: clamp(130px, 7.81vw, 200px);
  margin: 0 0 0 clamp(12px, 0.78vw, 20px);
  border-radius: 6px;
  overflow: hidden;
  background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.1) 0 2px, transparent 2px 14px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2);
}

.mvrow__well .g4photo { height: 100%; }
.mvrow__well .g4size { display: none; }
.mvgrid--l .mvrow__well .g4size--l { display: block; }

.mvrow__frames {
  position: absolute;
  left: 12px;
  bottom: 10px;
  padding: 5px 8px;
  border-radius: 4px;
  background: rgba(var(--scrim-rgb), 0.62);
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--on-photo);
}

.mvrow__info {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: clamp(10px, 0.55vw, 14px);
  min-width: 0;
  padding: 0 clamp(16px, 1.17vw, 30px);
}

.mvrow__head { display: flex; flex-direction: column; gap: 6px; margin: 0; min-width: 0; }

.mvrow__ref {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--accent);
}

.mvrow__address {
  font-family: var(--display);
  font-size: clamp(22px, 1.33vw, 34px);
  line-height: 1.06;
  letter-spacing: -0.016em;
}

.mvrow__data {
  font-family: var(--mono);
  font-size: clamp(12px, 0.55vw, 14px);
  letter-spacing: 0.08em;
  color: var(--ink);
}

.mvrow__walk {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted);
}

.mvrow__foot {
  display: flex;
  align-items: center;
  gap: clamp(8px, 0.47vw, 12px);
  margin: 0;
  padding-top: clamp(10px, 0.47vw, 12px);
  border-top: 1px solid rgba(var(--ink-rgb), 0.14);
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.mvrow__chip {
  display: inline-flex;
  align-items: center;
  padding: 6px clamp(8px, 0.47vw, 12px);
  border-radius: 4px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
  color: var(--ink);
}

.mvrow__price {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: space-between;
  gap: clamp(10px, 0.55vw, 14px);
  padding-left: clamp(14px, 1.02vw, 26px);
  border-left: 1px solid rgba(var(--ink-rgb), 0.16);
}

.mvrow__money { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; margin: 0; }

.mvrow__value {
  font-family: var(--display);
  font-size: clamp(24px, 1.48vw, 38px);
  line-height: 1;
  letter-spacing: -0.015em;
  white-space: nowrap;
}

.mvrow__unit {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
}

.mvrow__acts { display: flex; flex-direction: column; gap: clamp(8px, 0.39vw, 10px); width: 100%; margin: 0; }

.mvrow__act {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(8px, 0.47vw, 12px);
  height: clamp(42px, 1.95vw, 50px);
  padding: 0 clamp(12px, 0.78vw, 20px);
  border-radius: 8px;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  transition: background 200ms ease, color 200ms ease;
}

.mvrow__act--ghost { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.32); color: var(--ink); }
.mvrow__act--ghost:hover,
.mvrow__act--ghost:focus-visible { background: rgba(var(--ink-rgb), 0.08); }
.mvrow__act--ink { justify-content: space-between; background: var(--ink); color: var(--bg); }
.mvrow__act--ink:hover,
.mvrow__act--ink:focus-visible { background: var(--accent); color: var(--on-photo); }

/* --- Режим карты: разворот 45 / 55 ------------------------------------------ */
/* Зазоры здесь нарочно теснее списка: колонка/карта 22, карточки 20 / 18.
   Место — дефицит, и 40px сетки сюда не наследуются. */
.mvsplit--map {
  display: grid;
  grid-template-columns: 45fr 55fr;
  gap: clamp(14px, 0.86vw, 22px);
  align-items: start;
}

/* Колонка сжимается, но никогда не едет вбок. */
.mvsplit--map .mvcol {
  display: flex;
  flex-direction: column;
  gap: clamp(12px, 0.70vw, 18px);
  min-width: 0;
  max-height: clamp(600px, 39.84vw, 1020px);
  overflow-x: hidden;
  overflow-y: auto;
  padding-right: 10px;
}

.mvsplit--map .mvgrid { gap: clamp(12px, 0.78vw, 20px) clamp(10px, 0.70vw, 18px); }
.mvsplit--map .mvgrid--4,
.mvsplit--map .mvgrid--3,
.mvsplit--map .mvgrid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.mvsplit--map .mvgrid--l { grid-template-columns: minmax(0, 1fr); }

.mvsplit--map .mvgrid .g4well { height: clamp(200px, 13.28vw, 340px); }
.mvsplit--map .mvgrid .g4size { display: none; }
.mvsplit--map .mvgrid .g4size--m2 { display: block; }
.mvsplit--map .mvgrid--l .mvrow__well .g4size--m2 { display: none; }
.mvsplit--map .mvgrid--l .mvrow__well .g4size--ml { display: block; }

/* В колонке строка-гроссбух ужимает свои крайние колонки. */
.mvsplit--map .mvgrid--l .mvrow {
  grid-template-columns: clamp(26px, 1.33vw, 34px) minmax(0, clamp(150px, 9.38vw, 240px)) minmax(0, 1fr) minmax(0, clamp(170px, 10.16vw, 260px));
  padding: clamp(12px, 0.70vw, 18px);
}
.mvsplit--map .mvrow__info { padding: 0 clamp(12px, 0.78vw, 20px); }
.mvsplit--map .mvrow__address { font-size: clamp(20px, 1.09vw, 28px); }
.mvsplit--map .mvrow__value { font-size: clamp(22px, 1.25vw, 32px); }

.mvmore:not([hidden]) {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: clamp(10px, 0.47vw, 12px);
}

.mvmore__line {
  display: flex;
  align-items: center;
  gap: clamp(10px, 0.62vw, 16px);
  margin: 0;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.mvmore__rule { flex: 1; height: 1px; background: rgba(var(--ink-rgb), 0.14); }

/* Радиус 8 — радиус кнопок страницы; пилюля здесь читалась как чужая. */
.mvmore__button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(10px, 0.62vw, 16px);
  width: 100%;
  height: clamp(52px, 2.81vw, 72px);
  border: 0;
  border-radius: 8px;
  background: var(--ink);
  cursor: pointer;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--bg);
  transition: background 200ms ease;
}

.mvmore__button:hover,
.mvmore__button:focus-visible { background: var(--accent); color: var(--on-photo); }

/* --- Плита карты ------------------------------------------------------------ */
.mvmap:not([hidden]) {
  position: sticky;
  top: 24px;
  display: flex;
  flex-direction: column;
  padding: clamp(14px, 0.86vw, 22px);
  border-radius: 14px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
}

.mvtick {
  position: absolute;
  width: clamp(14px, 0.70vw, 18px);
  height: clamp(14px, 0.70vw, 18px);
  border-color: rgba(var(--ink-rgb), 0.4);
  pointer-events: none;
}

.mvtick--tl { left: 12px; top: 12px; border-left-style: solid; border-left-width: 1px; border-top-style: solid; border-top-width: 1px; }
.mvtick--tr { right: 12px; top: 12px; border-right-style: solid; border-right-width: 1px; border-top-style: solid; border-top-width: 1px; }
.mvtick--bl { left: 12px; bottom: 12px; border-left-style: solid; border-left-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; }
.mvtick--br { right: 12px; bottom: 12px; border-right-style: solid; border-right-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; }

.mvmap__head,
.mvmap__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(10px, 0.62vw, 16px);
  margin: 0;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.22em;
  text-transform: uppercase;
}

.mvmap__head { padding: 0 8px clamp(10px, 0.55vw, 14px); border-bottom: 2px solid var(--ink); }
.mvmap__title { color: var(--accent); }
.mvmap__count { color: var(--ink); }

.mvmap__foot {
  padding: clamp(12px, 0.62vw, 16px) 8px 0;
  letter-spacing: 0.18em;
  color: var(--faint);
}

.mvmap__foot--red { color: var(--accent); }

/* Холст начерчен, а не снят: крем, чертёжная сетка 80px, полоса реки, две
   оси-волоска и один красный меридиан. Тайлов и чужих знаков внутри нет. */
.mvcanvas {
  position: relative;
  height: clamp(460px, 34.38vw, 880px);
  margin-top: clamp(12px, 0.70vw, 18px);
  border-radius: 10px;
  overflow: hidden;
  background-color: var(--sheet);
  background-image:
    repeating-linear-gradient(0deg, rgba(var(--ink-rgb), 0.07) 0 1px, transparent 1px 80px),
    repeating-linear-gradient(90deg, rgba(var(--ink-rgb), 0.07) 0 1px, transparent 1px 80px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.18);
}

.mvcanvas__river {
  position: absolute;
  left: -10%;
  top: 58%;
  width: 130%;
  height: clamp(56px, 3.75vw, 96px);
  transform: rotate(-7deg);
  background: rgba(var(--ink-rgb), 0.07);
  box-shadow: inset 0 1px 0 rgba(var(--ink-rgb), 0.16), inset 0 -1px 0 rgba(var(--ink-rgb), 0.16);
}

.mvcanvas__axis { position: absolute; background: rgba(var(--ink-rgb), 0.12); }
.mvcanvas__axis--v { left: 18%; top: 0; width: 1px; height: 100%; }
.mvcanvas__axis--h { left: 0; top: 34%; width: 100%; height: 1px; }
.mvcanvas__meridian { position: absolute; left: 50%; top: 0; width: 1px; height: 100%; background: rgba(var(--accent-rgb), 0.16); }

.mvcanvas__note,
.mvcanvas__caption,
.mvcanvas__scale {
  position: absolute;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--faint);
}

.mvcanvas__note { left: 22px; top: 20px; }
.mvcanvas__caption { right: 22px; bottom: 22px; letter-spacing: 0.2em; }

.mvcanvas__scale {
  left: 22px;
  bottom: 22px;
  display: flex;
  align-items: center;
  gap: 10px;
  letter-spacing: 0.2em;
  color: var(--muted);
}

.mvcanvas__bar {
  width: clamp(80px, 4.69vw, 120px);
  height: 6px;
  border-left: 1px solid var(--muted);
  border-right: 1px solid var(--muted);
  border-bottom: 1px solid var(--muted);
}

.mvcanvas__north {
  position: absolute;
  right: 22px;
  top: 18px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  color: var(--muted);
}

.mvcanvas__north span { font-size: clamp(13px, 0.59vw, 15px); }

/* Настоящая карта: Leaflet ложится слоем поверх начерченного холста, и пока
   плитки не пришли (или сети нет), видна чертёжная подложка. Свои слои карта
   держит внутри себя (isolation), чтобы не лезть поверх меню и шторок. */
.mvcanvas__live {
  position: absolute;
  inset: 0;
  z-index: 1;
  isolation: isolate;
  background: transparent;
}

.mvcanvas--live .mvcanvas__river,
.mvcanvas--live .mvcanvas__axis,
.mvcanvas--live .mvcanvas__meridian,
.mvcanvas--live > .mvpin { display: none !important; }

.mvcanvas__note,
.mvcanvas__caption,
.mvcanvas__scale,
.mvcanvas__north { z-index: 2; }

/* На живой карте подпись уступает место кнопкам масштаба. */
.mvcanvas--live .mvcanvas__note { left: 70px; top: 26px; }
.mvcanvas--live .mvcanvas__scale { display: none; }
.mvcanvas--live .mvcanvas__caption { display: none; }

/* Плитки приглушены под кремовую палитру дома; в тёмной теме — инверсия. */
.mvcanvas__live .leaflet-tile-pane { filter: grayscale(0.55) sepia(0.28) saturate(0.6) contrast(0.92) brightness(1.04); }
[data-theme="dark"] .mvcanvas__live .leaflet-tile-pane { filter: invert(1) hue-rotate(180deg) grayscale(0.7) brightness(0.8) contrast(0.9); }

/* Ценники на настоящей карте — те же, что на чертёжной: разметка одна. */
.mvcanvas__live .leaflet-marker-icon { background: transparent; border: 0; }
.mvcanvas__live .mvpin { position: static; transform: none; }
.mvcanvas__live .leaflet-marker-icon:hover { z-index: 1000 !important; }
.mvcanvas__live .leaflet-control-attribution {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.04em;
  background: rgba(var(--bg-rgb), 0.85);
  color: var(--muted);
}
.mvcanvas__live .leaflet-control-attribution a { color: var(--muted); }
.mvcanvas__live .leaflet-control-zoom a {
  background: var(--bg);
  color: var(--ink);
  border-color: rgba(var(--ink-rgb), 0.24);
}

/* Маркер: ценник тушью с золотой точкой на ножке с пяткой; наведение красит
   его в красный, удлиняет ножку и открывает подпись «ref · адрес». */
.mvpin {
  position: absolute;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 0;
  transform: translate(-50%, -100%);
  cursor: pointer;
}

.mvpin[hidden] { display: none !important; }
.mvpin:hover { z-index: 6; }

.mvpin[data-ref="AV-1204"] { left: 33%; top: 56%; }
.mvpin[data-ref="AV-1198"] { left: 28%; top: 66%; }
.mvpin[data-ref="AV-1176"] { left: 76%; top: 58%; }
.mvpin[data-ref="AV-1211"] { left: 56%; top: 47%; }
.mvpin[data-ref="AV-1189"] { left: 46%; top: 26%; }
.mvpin[data-ref="AV-1167"] { left: 61%; top: 38%; }
.mvpin[data-ref="AV-1231"] { left: 55%; top: 78%; }
.mvpin[data-ref="AV-1225"] { left: 40%; top: 87%; }
.mvpin[data-ref="AV-1219"] { left: 52%; top: 32%; }
.mvpin[data-ref="AV-1216"] { left: 30%; top: 17%; }
.mvpin[data-ref="AV-1241"] { left: 83%; top: 47%; }
.mvpin[data-ref="AV-1221"] { left: 11%; top: 52%; }
.mvpin[data-ref="AV-1155"] { left: 70%; top: 22%; }
.mvpin[data-ref="AV-1214"] { left: 50%; top: 72%; }

.mvpin__pill {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  height: clamp(32px, 1.56vw, 40px);
  padding: 0 clamp(10px, 0.62vw, 16px);
  border-radius: 999px;
  background: var(--ink);
  box-shadow: 0 6px 16px rgba(var(--ink-rgb), 0.16);
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.08em;
  color: var(--bg);
  white-space: nowrap;
  transition: background 180ms ease, box-shadow 180ms ease;
}

.mvpin__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--gold); }
.mvpin__stem { width: 1px; height: 14px; background: rgba(var(--ink-rgb), 0.5); transition: height 180ms ease, background 180ms ease; }
.mvpin__foot { width: 9px; height: 9px; border-radius: 50%; background: var(--ink); box-shadow: 0 0 0 4px rgba(var(--bg-rgb), 0.9); }

.mvpin__label {
  display: none;
  margin-top: 6px;
  padding: 4px 10px;
  border-radius: 4px;
  background: rgba(var(--bg-rgb), 0.94);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2);
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink);
  white-space: nowrap;
}

/* Маркер горит и от наведения, и когда мышь стоит на его карточке (mvpin--on). */
.mvpin:hover .mvpin__pill,
.mvpin--on .mvpin__pill,
.mvpin:focus-within .mvpin__pill { background: var(--accent); color: var(--on-photo); box-shadow: 0 10px 24px rgba(var(--ink-rgb), 0.24); }
.mvpin:hover .mvpin__dot,
.mvpin--on .mvpin__dot { background: var(--bg); }
.mvpin:hover .mvpin__stem,
.mvpin--on .mvpin__stem { height: 22px; background: var(--accent); }
.mvpin:hover .mvpin__foot,
.mvpin--on .mvpin__foot { background: var(--accent); }
.mvpin:hover .mvpin__label,
.mvpin--on .mvpin__label { display: block; }
.mvpin--on { z-index: 6; }
.mvcanvas__live .mvpin-live--on { z-index: 1000 !important; }

/* Карточка, найденная с карты: подкладка и рамка, пока мышь на маркере. */
.mvcard--on,
.mvcard--on:hover { background: rgba(var(--accent-rgb), 0.08); box-shadow: inset 0 0 0 2px rgba(var(--accent-rgb), 0.45); border-radius: 10px; }
.mvgrid--l .mvcard--on .mvrow { box-shadow: inset 0 0 0 2px rgba(var(--accent-rgb), 0.55); }

/* --- Страницы (только в списке) --------------------------------------------- */
.mvpages[hidden] { display: none; }

.mvpager {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(16px, 1.33vw, 34px);
  align-items: center;
  padding: clamp(14px, 0.86vw, 22px);
  border-radius: 14px;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}

.mvpager__lines { display: flex; flex-direction: column; gap: 6px; margin: 0; }

.mvpager__range,
.mvpager__note {
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}

.mvpager__controls {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: clamp(8px, 0.39vw, 10px);
  margin: 0;
}

.mvpager__numbers { display: inline-flex; align-items: center; gap: clamp(8px, 0.39vw, 10px); }

.mvnum {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(44px, 2.19vw, 56px);
  height: clamp(44px, 2.19vw, 56px);
  border: 0;
  border-radius: 8px;
  background: transparent;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
  cursor: pointer;
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  color: var(--muted);
  transition: background 200ms ease, color 200ms ease;
}

.mvnum--here { background: var(--ink); box-shadow: none; color: var(--bg); }

.mvstep {
  display: inline-flex;
  align-items: center;
  gap: clamp(8px, 0.47vw, 12px);
  height: clamp(44px, 2.19vw, 56px);
  padding: 0 clamp(14px, 0.94vw, 24px);
  border: 0;
  border-radius: 8px;
  cursor: pointer;
  font-family: var(--mono);
  font-size: clamp(12px, 0.47vw, 12px);
  letter-spacing: 0.18em;
  text-transform: uppercase;
  transition: background 200ms ease, color 200ms ease;
}

.mvstep--prev { background: transparent; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3); color: var(--muted); }
.mvstep--prev:hover:not([disabled]),
.mvstep--prev:focus-visible { background: rgba(var(--ink-rgb), 0.08); color: var(--ink); }
.mvstep--next { background: var(--ink); color: var(--bg); }
.mvstep--next:hover:not([disabled]),
.mvstep--next:focus-visible { background: var(--accent); color: var(--on-photo); }
.mvstep[disabled] { background: rgba(var(--ink-rgb), 0.12); box-shadow: none; color: var(--faint); cursor: default; }
.mvstep--prev[disabled] { background: transparent; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.18); }

/* ==========================================================================
   73. Map view v1 — адаптив
   ========================================================================== */

@media (max-width: 1400px) {
  /* Разворот складывается: плита карты встаёт над списком во всю ширину. */
  .mvsplit--map { grid-template-columns: minmax(0, 1fr); }
  .mvsplit--map .mvmap:not([hidden]) { position: static; order: -1; }
  .mvsplit--map .mvcol { max-height: none; overflow: visible; padding-right: 0; }
  .mvcanvas { height: clamp(380px, 24.22vw, 620px); }
  .mvgrid--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1024px) {
  /* Порядок и плотность переносятся под переключатель, а не вылезают за край. */
  .mvbar { flex-wrap: wrap; }
  .mvbar__right { flex-wrap: wrap; max-width: 100%; }
  .mvgrid--4,
  .mvgrid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mvpager { grid-template-columns: minmax(0, 1fr); }
  .mvpager__controls { justify-content: flex-start; flex-wrap: wrap; }
}

@media (max-width: 768px) {
  .mvgrid--4,
  .mvgrid--3,
  .mvgrid--2,
  .mvsplit--map .mvgrid--2 { grid-template-columns: minmax(0, 1fr); }

  /* Гроссбух складывается: снимок над сведениями, цена внизу. */
  .mvgrid--l .mvrow,
  .mvsplit--map .mvgrid--l .mvrow { grid-template-columns: minmax(0, 1fr); gap: clamp(10px, 0.55vw, 14px); }
  .mvrow__no { display: none; }
  .mvrow__well { margin-left: 0; }
  .mvrow__info { padding: 0; }
  .mvrow__price { align-items: stretch; padding-left: 0; border-left: 0; }
  .mvrow__money { align-items: flex-start; }
  .mvpin__label { display: none; }
}

/* ==========================================================================
   74. Home detail v1 — один дом как чертёжный лист
   ========================================================================== */

/* Страница читается сверху вниз двенадцатью плитами; между ними 30px, снимки
   идут сразу за головой листа (5px) и открываются чернильной линейкой. */
.hdpage .shell {
  display: flex;
  flex-direction: column;
  gap: clamp(22px, 1.17vw, 30px);
}

/* Карточка поискового экрана целиком ведёт на лист дома (data-open, скрипт) */
article[data-open] { cursor: pointer; }

/* --- Голова листа: крошки, водяной знак, адрес, мера, цена и две кнопки --- */
.hdhead { position: relative; }
.hdcrumbs { margin-bottom: 12px; font-size: clamp(12px, 0.51vw, 13px); }
.hdhead__mark { left: 21%; }

.hdhead__row {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1580fr) minmax(0, 760fr);
  gap: clamp(30px, 3.91vw, 100px);
  align-items: end;
}

.hdhead__name {
  display: flex;
  flex-direction: column;
  gap: clamp(10px, 0.62vw, 16px);
  min-width: 0;
}

.hdhead__title {
  margin: 0;
  font-family: var(--display);
  font-weight: 400;
  font-size: clamp(44px, 4.53vw, 116px);
  line-height: 0.98;
  letter-spacing: -0.025em;
  text-wrap: balance;
}

.hdhead__measure {
  margin: 0;
  font-family: var(--mono);
  font-size: clamp(12px, 0.74vw, 19px);
  letter-spacing: 0.1em;
  color: var(--ink);
}

.hdhead__side {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: clamp(14px, 0.86vw, 22px);
  margin-bottom: 4px;
}

.hdhead__price {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(36px, 3.12vw, 80px);
  line-height: 1;
  letter-spacing: -0.02em;
}

.hdhead__acts {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
}

/* Кнопки листа: контурная и тушью; тушь на наведении краснеет. */
.hdbtn {
  display: inline-flex;
  align-items: center;
  gap: 14px;
  height: clamp(48px, 2.50vw, 64px);
  padding: 0 clamp(18px, 1.17vw, 30px);
  border: 0;
  border-radius: 8px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: background 200ms ease, color 200ms ease;
}
.hdbtn--ghost {
  background: transparent;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
  color: var(--ink);
}
.hdbtn--ghost:hover { background: rgba(var(--ink-rgb), 0.08); color: var(--ink); }
/* Эксперимент владельца (2026-09-13): все залитые кнопки листа — красные по
   умолчанию, белые на наведении (вместо туши → красный). Откат: вернуть
   var(--ink)/var(--bg) и var(--accent)/var(--c-cream). */
.hdbtn--ink { background: var(--accent); color: var(--c-cream); }
.hdbtn--ink:hover { background: var(--c-white); color: var(--c-ink-fixed); }
/* Светлая тема: все залитые кнопки чёрные, наведение красное. */
:root:not([data-theme="dark"]) .hdbtn--ink { background: var(--ink); color: var(--bg); }
:root:not([data-theme="dark"]) .hdbtn--ink:hover { background: var(--accent); color: var(--c-cream); }
.hdbtn--wide { display: flex; justify-content: space-between; height: clamp(52px, 2.66vw, 68px); padding: 0 clamp(18px, 1.02vw, 26px); margin-top: clamp(16px, 0.86vw, 22px); }
.hdbtn--64 { height: clamp(48px, 2.50vw, 64px); padding: 0 clamp(16px, 0.94vw, 24px); margin-top: clamp(16px, 0.94vw, 24px); }
.hdbtn--66 { height: clamp(50px, 2.58vw, 66px); padding: 0 clamp(16px, 0.94vw, 24px); }
.hdbtn--70 { height: clamp(52px, 2.73vw, 70px); }
.hdbtn[disabled] { background: var(--muted); color: var(--bg); cursor: default; }
.hdbtn--gap { padding: 0 clamp(16px, 1.02vw, 26px); }

/* --- Общие атомы листа ------------------------------------------------------ */
/* Кремовая плита с уголками: обследование, цитата, внутри/снаружи, ключ, докет */
.hdsheet {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: clamp(20px, 1.33vw, 34px);
  border-radius: 14px;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.28);
  overflow: hidden;
}
.hdtick {
  position: absolute;
  width: 22px;
  height: 22px;
  border-color: rgba(var(--ink-rgb), 0.42);
  pointer-events: none;
}
.hdtick--tl { left: 18px; top: 18px; border-left-style: solid; border-left-width: 1px; border-top-style: solid; border-top-width: 1px; }
.hdtick--tr { right: 18px; top: 18px; border-right-style: solid; border-right-width: 1px; border-top-style: solid; border-top-width: 1px; }
.hdtick--bl { left: 18px; bottom: 18px; border-left-style: solid; border-left-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; }
.hdtick--br { right: 18px; bottom: 18px; border-right-style: solid; border-right-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; }
.hdtick--big { width: 24px; height: 24px; border-color: rgba(var(--ink-rgb), 0.45); }
.hdtick--plan { width: 26px; height: 26px; left: 20px; top: 20px; border-color: rgba(var(--ink-rgb), 0.45); }
.hdtick--plan.hdtick--tr { left: auto; right: 20px; }
.hdtick--plan.hdtick--bl { top: auto; bottom: 20px; }
.hdtick--plan.hdtick--br { left: auto; right: 20px; top: auto; bottom: 20px; }
.hdpair .hdtick,
.hdnear .hdtick { width: 18px; height: 18px; border-color: rgba(var(--ink-rgb), 0.4); }
.hdpair .hdtick--tl,
.hdnear .hdtick--tl { left: 14px; top: 14px; }
.hdpair .hdtick--br,
.hdnear .hdtick--br { right: 14px; bottom: 14px; }
.hdportrait .hdtick { width: 20px; height: 20px; }
.hdportrait .hdtick--tl { left: 16px; top: 16px; }
.hdportrait .hdtick--bl { left: 16px; bottom: 16px; }

/* Красный подзаголовок плиты */
.hdkicker {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--accent);
}
.hdkicker--faint { color: var(--faint); letter-spacing: 0.22em; }

/* Размерная строка над колодцем: засечка — линия — текст — линия — засечка */
.hdrule {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
  white-space: nowrap;
}
.hdrule__end { width: 1px; height: 9px; background: rgba(var(--ink-rgb), 0.4); }
.hdrule__line { flex: 1; height: 1px; background: rgba(var(--ink-rgb), 0.26); }
.hdrule--band {
  gap: 16px;
  padding-bottom: clamp(14px, 0.78vw, 20px);
  letter-spacing: 0.2em;
  color: var(--ink);
}
.hdrule--band .hdrule__end { height: 11px; background: rgba(var(--ink-rgb), 0.5); }
.hdrule--band .hdrule__line { background: rgba(var(--ink-rgb), 0.3); }
.hdrule--tiny { padding: 14px 0 12px; letter-spacing: 0.16em; }
.hdrule--tiny .hdrule__end { height: 8px; }

/* Подпись пустого колодца */
.hdph {
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  text-align: center;
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--faint);
  pointer-events: none;
}

/* Снимок в колодце */
.hdphoto,
.hdnear__photo,
.hdportrait__img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Подпись-плашка на снимке: номер тушью, текст на креме */
.hdcap {
  position: absolute;
  left: 26px;
  bottom: 24px;
  display: flex;
  align-items: stretch;
  margin: 0;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 10px 26px rgba(var(--ink-rgb), 0.18);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  white-space: nowrap;
}
.hdcap__no { display: inline-flex; align-items: center; height: clamp(34px, 1.64vw, 42px); padding: 0 clamp(12px, 0.62vw, 16px); background: var(--ink); color: var(--bg); }
.hdcap__text { display: inline-flex; align-items: center; height: clamp(34px, 1.64vw, 42px); padding: 0 clamp(12px, 0.70vw, 18px); background: rgba(var(--bg-rgb), 0.96); color: var(--ink); }
.hdcap--small { left: 20px; bottom: 18px; border-radius: 5px; box-shadow: none; letter-spacing: 0.16em; }
.hdcap--small .hdcap__no { height: 34px; padding: 0 12px; text-transform: none; }
.hdcap--small .hdcap__text { height: 34px; padding: 0 14px; }
.hdcap--plan { left: 26px; top: 26px; bottom: auto; box-shadow: 0 10px 24px rgba(var(--ink-rgb), 0.16); }
.hdcap--plan .hdcap__no { height: 40px; padding: 0 15px; }
.hdcap--plan .hdcap__text { height: 40px; padding: 0 16px; }

/* Красный штамп в углу колодца */
.hdstamp {
  position: absolute;
  right: 26px;
  bottom: 24px;
  display: inline-flex;
  align-items: center;
  height: clamp(34px, 1.64vw, 42px);
  padding: 0 clamp(12px, 0.62vw, 16px);
  border-radius: 6px;
  background: rgba(var(--bg-rgb), 0.96);
  box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.4);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
  white-space: nowrap;
}
.hdstamp--plan { bottom: 26px; height: 40px; }
.hdstamp--map { right: 28px; height: 38px; }

/* Север и масштабная линейка на чертежах */
.hdnorth {
  position: absolute;
  right: 28px;
  top: 30px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  color: var(--muted);
}
.hdnorth span { font-size: clamp(13px, 0.62vw, 16px); }
.hdnorth--map { top: 20px; }
.hdnorth--map span { font-size: clamp(13px, 0.59vw, 15px); }

.hdscale {
  position: absolute;
  left: 26px;
  bottom: 26px;
  display: flex;
  align-items: center;
  gap: 16px;
  height: 40px;
  padding: 0 16px;
  border-radius: 6px;
  background: rgba(var(--bg-rgb), 0.96);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
  white-space: nowrap;
}
.hdscale__bar {
  width: clamp(60px, 4.69vw, 120px);
  height: 6px;
  border-color: var(--muted);
  border-left-style: solid; border-left-width: 1px;
  border-right-style: solid; border-right-width: 1px;
  border-bottom-style: solid; border-bottom-width: 1px;
}
.hdscale--map { left: 28px; bottom: 24px; height: 38px; }

/* Круглая красная печать */
.hdseal {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: clamp(80px, 4.38vw, 112px);
  height: clamp(80px, 4.38vw, 112px);
  border-radius: 50%;
  box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.5), inset 0 0 0 5px rgba(var(--accent-rgb), 0.12);
  text-align: center;
  font-family: var(--mono);
  font-size: 12px;
  line-height: 1.5;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent);
}
.hdseal--104 { width: clamp(80px, 4.06vw, 104px); height: clamp(80px, 4.06vw, 104px); }
.hdseal--98 { width: clamp(80px, 3.83vw, 98px); height: clamp(80px, 3.83vw, 98px); letter-spacing: 0.16em; }

/* Подпись под плитой: имя и дата слева, печать справа */
.hdsign {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(14px, 0.94vw, 24px);
  align-items: end;
  margin: clamp(16px, 0.94vw, 24px) 0 0;
  padding-top: clamp(14px, 0.86vw, 22px);
  border-top: 1px solid rgba(var(--ink-rgb), 0.2);
}
.hdsign__who { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.hdsign__name { font-family: var(--display); font-size: clamp(18px, 1.02vw, 26px); line-height: 1.1; }
.hdsign__name--24 { font-size: clamp(18px, 0.94vw, 24px); }
.hdsign__date {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}
.hdsign--key { margin-top: clamp(14px, 0.86vw, 22px); padding-top: clamp(14px, 0.78vw, 20px); gap: 20px; }

/* Строка-подвал плиты: серое слева, красное справа */
.hdfootline {
  display: flex;
  align-items: center;
  gap: clamp(12px, 0.78vw, 20px);
  margin: 0;
  padding-top: clamp(14px, 0.78vw, 20px);
  border-top: 1px solid rgba(var(--ink-rgb), 0.2);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}
.hdfootline__muted { color: var(--muted); }
.hdfootline__red { color: var(--accent); }
.hdfootline__bar { width: 1px; height: 12px; flex: none; background: rgba(var(--ink-rgb), 0.24); }
.hdfootline__gap { flex: 1; }
.hdfootline__line { flex: 1; height: 1px; background: rgba(var(--ink-rgb), 0.14); }
.hdfootline__link { display: inline-flex; align-items: center; gap: 12px; color: var(--ink); text-decoration: none; }
.hdfootline__link:hover { color: var(--accent); }
.hdfootline__link .g4arrow { font-size: clamp(14px, 0.66vw, 17px); }
.hdfootline--desc { gap: clamp(12px, 0.86vw, 22px); padding-top: clamp(14px, 0.86vw, 22px); border-top-color: rgba(var(--ink-rgb), 0.16); }
.hdfootline--plan { padding-top: 0; border-top: 0; }
.hdfootline--band { gap: clamp(12px, 0.86vw, 22px); }

/* Шапка полосы: красный заголовок, цифра тушью, примечание, дата справа */
.hdband__head {
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr) auto;
  gap: clamp(12px, 0.94vw, 24px);
  align-items: baseline;
  margin: 0;
  padding-bottom: clamp(10px, 0.55vw, 14px);
  border-bottom: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}
.hdband__head-kicker { color: var(--accent); }
.hdband__head-strong { color: var(--ink); }
.hdband__head-right { text-align: right; }

/* Пилюля состояния */
.hdpill {
  display: inline-flex;
  align-items: center;
  height: 30px;
  padding: 0 13px;
  border-radius: 4px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
  white-space: nowrap;
}
.hdpill--red { background: var(--accent); box-shadow: none; color: var(--c-cream); }

/* --- Плиты снимков ------------------------------------------------------------ */
.hdplates {
  display: flex;
  flex-direction: column;
  gap: clamp(12px, 0.70vw, 18px);
  margin-top: calc(clamp(22px, 1.17vw, 30px) * -1 + 5px);
}
.hdplates__rule { display: block; height: 2px; margin-top: 14px; background: var(--ink); }

.hdplates__top {
  display: grid;
  grid-template-columns: 34px minmax(0, 1526fr) minmax(0, 862fr);
  gap: clamp(12px, 0.70vw, 18px);
  align-items: stretch;
}

/* Подпись боком слева от плиты */
.hdside {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  margin: 0;
  padding-top: 8px;
}
.hdside__text {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--faint);
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  white-space: nowrap;
}
.hdside__text--red { color: var(--accent); }
.hdside--foot { align-items: flex-end; padding: 0 0 6px; }
.hdside--foot .hdside__text { letter-spacing: 0.28em; }

.hdhero {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0;
  min-width: 0;
}
.hdhero__well {
  position: relative;
  height: clamp(240px, 34.38vw, 880px);
  border-radius: 12px;
  background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.1) 0 2px, transparent 2px 16px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
  overflow: hidden;
  transition: box-shadow 220ms ease;
}
.hdhero__well:hover { box-shadow: inset 0 0 0 2px rgba(var(--ink-rgb), 0.5); }
.hdhero__third { position: absolute; background: rgba(var(--ink-rgb), 0.1); z-index: 1; }
.hdhero__third--v1 { left: 33.33%; top: 0; width: 1px; height: 100%; }
.hdhero__third--v2 { left: 66.66%; top: 0; width: 1px; height: 100%; }
.hdhero__third--h1 { left: 0; top: 33.33%; width: 100%; height: 1px; }
.hdhero__third--h2 { left: 0; top: 66.66%; width: 100%; height: 1px; }
.hdhero__well .hdtick,
.hdhero__well .hdcap,
.hdhero__well .hdstamp { z-index: 2; }

.hdpairs { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.hdpairs__label {
  margin: 0;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}
.hdpairs__stack { display: flex; flex-direction: column; gap: clamp(12px, 0.70vw, 18px); flex: 1; }
.hdpair {
  position: relative;
  flex: 1;
  min-height: clamp(140px, 7.81vw, 200px);
  margin: 0;
  border-radius: 12px;
  background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.1) 0 2px, transparent 2px 16px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
  overflow: hidden;
  transition: box-shadow 220ms ease;
}
.hdpair:hover { box-shadow: inset 0 0 0 2px rgba(var(--ink-rgb), 0.5); }
.hdpair .hdph { font-size: 12px; letter-spacing: 0.2em; }
.hdpair .hdtick,
.hdpair .hdcap,
.hdpair__size { z-index: 1; }
/* На снимке площадь сидит на кремовой плашке — иначе не читается */
.hdpair .hdphoto ~ .hdpair__size {
  top: 14px;
  right: 14px;
  padding: 6px 10px;
  border-radius: 4px;
  background: rgba(var(--bg-rgb), 0.94);
  color: var(--ink);
}
.hdpair__size {
  position: absolute;
  right: 20px;
  top: 16px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted);
}

.hdplates__strip {
  display: grid;
  grid-template-columns: 34px repeat(4, minmax(0, 1fr)) minmax(0, 340px);
  gap: clamp(12px, 0.70vw, 18px);
  align-items: stretch;
}
.hdfour { display: flex; flex-direction: column; gap: 10px; margin: 0; min-width: 0; }
.hdfour__well {
  position: relative;
  display: block;
  overflow: hidden;
  height: clamp(150px, 9.61vw, 246px);
  border-radius: 10px;
  background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.1) 0 2px, transparent 2px 16px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2);
  transition: box-shadow 200ms ease, transform 200ms ease;
}
.hdfour:hover .hdfour__well { box-shadow: inset 0 0 0 2px rgba(var(--ink-rgb), 0.55); transform: translateY(-4px); }
.hdfour .hdph { font-size: 12px; letter-spacing: 0.2em; }
.hdfour__no {
  position: absolute;
  z-index: 1;
  left: 14px;
  top: 12px;
  display: inline-flex;
  align-items: center;
  height: 28px;
  padding: 0 10px;
  border-radius: 4px;
  background: rgba(var(--bg-rgb), 0.94);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.18);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  color: var(--ink);
}
.hdfour__cap {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink);
}
.hdfour__size { color: var(--faint); }

/* Тушевая плита «+N · All twelve plates» */
.hdmore {
  position: relative;
  display: flex;
  cursor: pointer;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  height: clamp(150px, 9.61vw, 246px);
  padding: clamp(16px, 0.86vw, 22px);
  border-radius: 10px;
  background: var(--ink);
  color: var(--bg);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  text-decoration: none;
  overflow: hidden;
  transition: background 200ms ease;
}
.hdmore:hover { background: var(--accent); color: var(--c-cream); }
/* Эксперимент владельца (2026-09-13): плита «+N» тоже красная, белая на
   наведении — как «Book a viewing» в голове. Откат: убрать эти три строки. */
.hdmore { background: var(--accent); color: var(--c-cream); }
.hdmore:hover { background: var(--c-white); color: var(--c-ink-fixed); }
.hdmore__disc { background: rgba(var(--c-paper-rgb), 0.12); }
.hdmore:hover .hdmore__disc { background: rgba(var(--c-ink-fixed-rgb), 0.06); }
.hdmore__disc {
  position: absolute;
  right: -40px;
  top: -40px;
  width: 180px;
  height: 180px;
  border-radius: 50%;
  background: rgba(var(--c-gold-rgb), 0.12);
}
.hdmore__count { position: relative; font-family: var(--display); font-size: clamp(34px, 2.42vw, 62px); line-height: 1; letter-spacing: -0.02em; }
.hdmore__text { position: relative; display: flex; align-items: center; gap: 12px; }

/* Прозрачная ссылка поверх колодца — открывает галерею на своей плите */
.hdopen {
  position: absolute;
  inset: 0;
  z-index: 3;
  border-radius: inherit;
}
.hdopen:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }

/* Остальные пять плит раскрываются под полосой по галочке «All twelve plates» */
.hdplates__strip--rest { display: none; grid-template-columns: 34px repeat(5, minmax(0, 1fr)); }
#hd-rest:checked ~ .hdplates__strip--rest { display: grid; }
.hdmore__shut { display: none; }
#hd-rest:checked ~ .hdplates__strip .hdmore__open { display: none; }
#hd-rest:checked ~ .hdplates__strip .hdmore__shut { display: inline; }
#hd-rest:focus-visible ~ .hdplates__strip .hdmore { outline: 2px solid var(--accent); outline-offset: 2px; }
/* Малая плита, стоящая сейчас в большом колодце */
.hdpair--here,
.hdfour--here .hdfour__well { box-shadow: inset 0 0 0 2px var(--accent); }
.hdhero__well .hdhero__empty { position: absolute; inset: 0; }
.hdhero__well .hdhero__empty[hidden] { display: none !important; }
.hdhero__well .hdphoto--off { display: none !important; }
/* Смена большого снимка — плавно: гаснет, меняется, проявляется */
.hdhero__well .hdphoto,
.hdhero__well .hdhero__empty,
.hdhero__well .hdcap { transition: opacity 0.35s ease-in-out; }
.hdhero__well--fading .hdphoto,
.hdhero__well--fading .hdhero__empty,
.hdhero__well--fading .hdcap { opacity: 0; }
.hdpair,
.hdfour__well { transition-timing-function: ease-in-out; }

/* --- Размерная полоса ----------------------------------------------------------- */
.hddims {
  display: flex;
  flex-direction: column;
  padding: clamp(16px, 1.02vw, 26px) clamp(16px, 1.17vw, 30px) 0;
  border-radius: 12px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.28);
}
.hdcells {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin: 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.24);
}
.hdcell {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: clamp(14px, 0.86vw, 22px) clamp(14px, 1.02vw, 26px);
  border-right: 1px solid rgba(var(--ink-rgb), 0.14);
}
.hdcell:last-child { border-right: 0; }
.hdcell__label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}
.hdcell__value { font-family: var(--mono); font-size: clamp(12px, 0.66vw, 17px); letter-spacing: 0.06em; color: var(--ink); }

/* --- Обследование: свидетельство и реестр дефектов ------------------------------ */
.hdsurvey {
  display: grid;
  grid-template-columns: minmax(0, 760px) minmax(0, 1fr);
  gap: clamp(24px, 1.56vw, 40px);
  align-items: start;
}
.hdcert__top,
.hdquote__top,
.hdcard__top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 20px;
  margin: 0;
  padding-bottom: clamp(12px, 0.70vw, 18px);
  border-bottom: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}
.hdcert__kicker,
.hdquote__kicker,
.hdcard__kicker { color: var(--accent); }
.hdcert__sheet,
.hdquote__verbatim,
.hdcard__ref { color: var(--faint); text-align: right; }

.hdcert__grade {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: clamp(18px, 1.17vw, 30px);
  align-items: center;
  padding: clamp(16px, 1.02vw, 26px) 0;
}
.hdcert__letter { display: flex; align-items: flex-end; gap: 4px; margin: 0; }
.hdcert__big { font-family: var(--display); font-size: clamp(96px, 8.20vw, 210px); line-height: 0.78; letter-spacing: -0.04em; }
.hdcert__of { padding-bottom: clamp(12px, 1.02vw, 26px); font-family: var(--mono); font-size: clamp(12px, 0.51vw, 13px); letter-spacing: 0.1em; color: var(--faint); }
.hdcert__scale { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.hdcert__word { font-family: var(--mono); font-size: clamp(12px, 0.51vw, 13px); letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink); }
.hdgrades { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
.hdgrade {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 38px;
  border-radius: 5px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.12em;
  color: var(--faint);
}
.hdgrade--here { background: var(--ink); box-shadow: none; color: var(--bg); }
.hdcert__scalenote,
.hdcert__label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}
.hdcert__scalenote { letter-spacing: 0.2em; }

.hdcert__pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid rgba(var(--ink-rgb), 0.24);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.24);
}
.hdcert__stat {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin: 0;
  padding: clamp(14px, 0.86vw, 22px) clamp(14px, 1.02vw, 26px) clamp(14px, 0.86vw, 22px) 0;
  border-right: 1px solid rgba(var(--ink-rgb), 0.16);
}
.hdcert__stat + .hdcert__stat { padding: clamp(14px, 0.86vw, 22px) 0 clamp(14px, 0.86vw, 22px) clamp(14px, 1.02vw, 26px); border-right: 0; }
.hdcert__num { font-family: var(--display); font-size: clamp(30px, 2.19vw, 56px); line-height: 1; }
.hdcert__num--red { color: var(--accent); }
.hdcert__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }

.hdsplit {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: clamp(14px, 0.86vw, 22px) 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.16);
}
.hdsplit__bar {
  display: flex;
  height: 14px;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.18);
}
.hdsplit__part { display: block; height: 100%; }
.hdsplit__part--ink { background: var(--ink); }
.hdsplit__part--red { background: var(--accent); }
.hdsplit__part--gold { background: var(--gold); }
.hdsplit__part--faint { background: var(--faint); }
.hdw-71-6 { width: 71.6%; }
.hdw-18-6 { width: 18.6%; }
.hdw-5-4 { width: 5.4%; }
.hdw-4-4 { width: 4.4%; }
.hdsplit__keys {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted);
}
.hdsplit__key { display: flex; align-items: center; gap: 8px; }
.hdsplit__dot { width: 8px; height: 8px; flex: none; border-radius: 2px; }

.hdcert__note {
  margin: clamp(14px, 0.86vw, 22px) 0 0;
  font-size: clamp(15px, 0.74vw, 19px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--muted);
  text-wrap: pretty;
}

/* Реестр дефектов — сетка 64 | 1fr | 280 | 200 | 200 */
.hdregister { display: flex; flex-direction: column; min-width: 0; }
.hdfaults { margin: 0; padding: 0; list-style: none; }
.hdfault {
  position: relative;
  display: grid;
  grid-template-columns: clamp(40px, 2.50vw, 64px) minmax(0, 1fr) minmax(0, clamp(140px, 10.94vw, 280px)) minmax(0, clamp(110px, 7.81vw, 200px)) minmax(0, clamp(100px, 7.81vw, 200px));
  gap: clamp(12px, 0.94vw, 24px);
  align-items: center;
  margin: 0;
  padding: clamp(16px, 0.94vw, 24px) clamp(12px, 0.78vw, 20px);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.16);
  border-left: 2px solid transparent;
  transition: background 180ms ease;
}
.hdfaults .hdfault:hover { background: rgba(var(--accent-rgb), 0.05); }
.hdfault--first { border-left-color: var(--accent); }
.hdfault--advised { border-left-color: rgba(var(--ink-rgb), 0.3); }
.hdfault--head {
  align-items: end;
  padding: 0 clamp(12px, 0.78vw, 20px) 14px;
  border-bottom: 2px solid var(--ink);
  border-left: 0;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}
.hdfault--head .hdfault__est { font-size: 12px; letter-spacing: 0.22em; color: var(--faint); }
.hdfault__no {
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.1em;
  color: var(--faint);
}
.hdfault__mark { width: 14px; height: 2px; background: rgba(var(--ink-rgb), 0.45); }
.hdfault--first .hdfault__mark { background: var(--accent); }
.hdfault--minor .hdfault__mark { background: rgba(var(--ink-rgb), 0.2); }
.hdfault__what { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.hdfault__head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.hdfault__name { font-size: clamp(17px, 0.94vw, 24px); font-weight: 400; }
.hdfault__tag {
  display: inline-flex;
  align-items: center;
  height: 26px;
  padding: 0 11px;
  border-radius: 4px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
  white-space: nowrap;
}
.hdfault--first .hdfault__tag { background: var(--accent); box-shadow: none; color: var(--c-cream); }
.hdfault--minor .hdfault__tag { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22); color: var(--faint); }
.hdfault__detail { font-size: clamp(14px, 0.70vw, 18px); font-weight: 300; line-height: 1.5; color: var(--muted); text-wrap: pretty; }
.hdfault__where,
.hdfault__found { font-family: var(--mono); font-size: clamp(12px, 0.51vw, 13px); letter-spacing: 0.08em; color: var(--ink); }
.hdfault__found { color: var(--muted); }
.hdfault__est { font-family: var(--mono); font-size: clamp(12px, 0.74vw, 19px); letter-spacing: 0.06em; text-align: right; color: var(--ink); }
.hdfault__est--none { color: var(--faint); }
.hdfault--total {
  align-items: baseline;
  border-bottom: 0;
  border-left: 0;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}
.hdfault__totallabel { color: var(--ink); }
.hdfault__sum { font-family: var(--mono); font-size: clamp(12px, 0.86vw, 22px); letter-spacing: 0.06em; text-align: right; color: var(--accent); }

/* --- Описание и цитата обследователя ------------------------------------------- */
.hddesc {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 800px);
  gap: clamp(30px, 4.30vw, 110px);
  align-items: start;
}
.hddesc__copy { display: flex; flex-direction: column; min-width: 0; }
.hddesc .hdband__head { gap: clamp(12px, 0.86vw, 22px); padding-bottom: clamp(10px, 0.62vw, 16px); }
.hddesc__lede {
  margin: clamp(20px, 1.33vw, 34px) 0 0;
  max-width: 1460px;
  font-family: var(--display);
  font-size: clamp(24px, 1.80vw, 46px);
  line-height: 1.22;
  letter-spacing: -0.016em;
  color: var(--ink);
  text-wrap: pretty;
}
.hdparas { display: flex; flex-direction: column; margin-top: clamp(18px, 1.17vw, 30px); }
.hdpara {
  display: grid;
  grid-template-columns: clamp(90px, 5.86vw, 150px) minmax(0, 1fr);
  gap: clamp(16px, 1.33vw, 34px);
  align-items: start;
  padding: clamp(16px, 1.02vw, 26px) 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
}
.hdpara__label {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
}
.hdpara__dash { width: 16px; height: 2px; background: rgba(var(--ink-rgb), 0.3); }
.hdpara__text {
  margin: 0;
  max-width: 1300px;
  font-size: clamp(17px, 1.02vw, 26px);
  font-weight: 300;
  line-height: 1.62;
  color: var(--ink);
  text-wrap: pretty;
}

.hdquote { padding: clamp(20px, 1.33vw, 34px); }
.hdquote__edge { position: absolute; left: 0; top: clamp(20px, 1.33vw, 34px); bottom: clamp(20px, 1.33vw, 34px); width: 2px; background: var(--accent); }
.hdquote__top { gap: 18px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.22); }
.hdquote__text { margin: clamp(16px, 0.94vw, 24px) 0 0; }
.hdquote__text p {
  margin: 0;
  font-family: var(--display);
  font-size: clamp(22px, 1.56vw, 40px);
  line-height: 1.32;
  letter-spacing: -0.014em;
  color: var(--ink);
  text-wrap: pretty;
}
.hdquote .hdsign { margin-top: clamp(16px, 1.02vw, 26px); }
.hdquote .hdsign__name { line-height: 1.15; }
.hdquote .hdsign__date { letter-spacing: 0.18em; }
.hdnoted { display: flex; flex-direction: column; margin: clamp(16px, 0.94vw, 24px) 0 0; padding: 0; list-style: none; }
.hdnoted__row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  padding: 14px 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.14);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.1em;
  color: var(--ink);
}
.hdnoted__value { text-align: right; }
.hdnoted__value--red { color: var(--accent); }

/* --- Внутри и снаружи ------------------------------------------------------------ */
.hdio-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 1.56vw, 40px); }
.hdio { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26); }
.hdio__top,
.hdkey__top,
.hdnearby__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: clamp(14px, 0.94vw, 24px);
  align-items: end;
  margin: 0;
  padding-bottom: clamp(14px, 0.78vw, 20px);
  border-bottom: 2px solid var(--ink);
}
.hdio__title,
.hdkey__title { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.hdio__name { font-family: var(--display); font-size: clamp(30px, 2.11vw, 54px); line-height: 1; letter-spacing: -0.02em; }
.hdio__pills { display: flex; align-items: center; gap: 10px; }
.hdio__rows { display: grid; grid-template-columns: 1fr 1fr; margin: 0; padding: 0; list-style: none; }
.hdio__row {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: clamp(14px, 0.86vw, 22px) clamp(14px, 1.02vw, 26px) clamp(14px, 0.86vw, 22px) 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
  border-right: 1px solid rgba(var(--ink-rgb), 0.14);
}
.hdio__row:nth-child(even) { padding-left: clamp(14px, 1.02vw, 26px); padding-right: 0; border-right: 0; }
.hdio__head { display: flex; align-items: center; gap: 12px; }
.hdio__no { font-family: var(--mono); font-size: 12px; letter-spacing: 0.14em; color: var(--faint); }
.hdio__label { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.hdio__line { flex: 1; height: 1px; background: rgba(var(--ink-rgb), 0.14); }
.hdio__mark { width: 8px; height: 8px; flex: none; border-radius: 2px; background: rgba(var(--ink-rgb), 0.24); }
.hdio__row--fault .hdio__mark { background: var(--accent); }
.hdio__value { font-size: clamp(16px, 0.86vw, 22px); font-weight: 300; line-height: 1.45; color: var(--ink); text-wrap: pretty; }
.hdio__state { font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); }
.hdio__row--fault .hdio__state { color: var(--accent); }

/* --- План этажа и ключ ------------------------------------------------------------ */
.hdplan {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 780px);
  gap: clamp(24px, 1.56vw, 40px);
  align-items: stretch;
}
.hdplan__drawing { display: flex; flex-direction: column; gap: 12px; margin: 0; min-width: 0; }
.hdplan__drawing .hdrule { gap: 14px; letter-spacing: 0.2em; }
.hdplan__drawing .hdrule__end { background: rgba(var(--ink-rgb), 0.45); }
/* Комнаты на чертеже: невидимые зоны в координатах рисунка; загораются от
   строки ключа (наведение) и держатся после клика; зона подсвечивает строку. */
.hdzones {
  position: absolute;
  inset: 0;
  z-index: 2;
  width: 100%;
  height: 100%;
  overflow: visible;
}
.hdzone { cursor: pointer; outline: 0; }
.hdzone polygon {
  fill: rgba(var(--accent-rgb), 0);
  stroke: rgba(var(--accent-rgb), 0);
  stroke-width: 3;
  transition: fill 0.25s ease-in-out, stroke 0.25s ease-in-out;
}
.hdzone:hover polygon,
.hdzone:focus-visible polygon,
.hdzone--lit polygon,
.hdzone--on polygon { fill: rgba(var(--accent-rgb), 0.14); stroke: rgba(var(--accent-rgb), 0.8); }
.hdzone--on polygon { fill: rgba(var(--accent-rgb), 0.2); }
.hdzone__tag {
  position: absolute;
  z-index: 2;
  transform: translate(-50%, -50%);
  display: inline-flex;
  align-items: center;
  height: 32px;
  padding: 0 12px;
  border-radius: 999px;
  background: var(--accent);
  color: var(--c-cream);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  white-space: nowrap;
  opacity: 0;
  transition: opacity 0.25s ease-in-out;
  pointer-events: none;
  box-shadow: 0 10px 24px rgba(var(--ink-rgb), 0.25);
}
.hdzone__tag--lit { opacity: 1; }
.hdzone__tag--01 { left: 23.3%; top: 71.7%; }
.hdzone__tag--02 { left: 41.2%; top: 29.0%; }
.hdzone__tag--03 { left: 80.7%; top: 73.7%; }
.hdzone__tag--04 { left: 66.1%; top: 29.0%; }
.hdzone__tag--05 { left: 80.7%; top: 25.9%; }
.hdzone__tag--06 { left: 57.6%; top: 32.2%; }
.hdzone__tag--07 { left: 54.2%; top: 55.0%; }
.hdroom { position: relative; }
.hdroom__hit {
  position: absolute;
  inset: 0;
  z-index: 1;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.hdroom__hit:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.hdroom--lit,
.hdroom--on { background: rgba(var(--accent-rgb), 0.05); }
.hdroom--on { box-shadow: inset 2px 0 0 var(--accent); }
.hdroom--on .hdroom__badge { background: var(--accent); box-shadow: none; color: var(--c-cream); }
.hdroom:hover { background: rgba(var(--accent-rgb), 0.05); }

.hdplan__well .hdcap,
.hdplan__well .hdnorth,
.hdplan__well .hdscale,
.hdplan__well .hdstamp,
.hdplan__well .hdtick { z-index: 2; }
/* Чертёж — лист целиком на любой ширине: колодец держит высоту ключа (как в
   эталоне), а лист с зонами внутри него сидит по центру ровно в пропорции
   файла (2:1) на чистой бумаге; снимок заполняет лист без обрезки, и SVG-зоны
   совпадают с ним пиксель в пиксель. В тёмной теме чертёж приглушён. */
/* Владелец: лист занимает весь левый бокс, без пустот сверху и снизу, а ключ
   справа ужимается. Колодец — ровно пропорция файла (2:1), левая колонка шире,
   ключ плотнее и уже, чтобы по высоте вписаться в лист. */
/* Двойной класс — чтобы мобильные min-height у .hdplan__well не ломали пропорцию */
.hdplan__well.hdplan__well--drawn { flex: none; height: auto; min-height: 0; aspect-ratio: 1536 / 768; background: var(--sheet); }
.hdplan__sheet { position: absolute; inset: 0; z-index: 1; display: block; }
.hdphoto--plan { object-fit: fill; }
.hdplan--drawn { grid-template-columns: minmax(0, 1fr) minmax(0, clamp(300px, 24.22vw, 620px)); }
.hdplan--drawn .hdkey { padding: clamp(16px, 1.02vw, 26px); }
.hdplan--drawn .hdkey__top { padding-bottom: clamp(10px, 0.55vw, 14px); }
.hdplan--drawn .hdkey__total { font-size: clamp(24px, 1.48vw, 38px); }
.hdplan--drawn .hdroom { padding: clamp(8px, 0.39vw, 10px) 0; gap: 14px; }
.hdplan--drawn .hdroom__name { font-size: clamp(16px, 0.82vw, 21px); }
.hdplan--drawn .hdsign--key { margin-top: auto; padding-top: clamp(12px, 0.62vw, 16px); }
.hdplan--drawn .hdbtn--66 { height: clamp(48px, 2.27vw, 58px); margin-top: clamp(12px, 0.62vw, 16px); }
[data-theme="dark"] .hdphoto--plan { filter: brightness(0.92) sepia(0.12); }
.hdplan__well {
  position: relative;
  flex: 1;
  min-height: clamp(300px, 32.03vw, 820px);
  border-radius: 12px;
  background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.1) 0 2px, transparent 2px 16px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
  overflow: hidden;
}
.hdkey { padding: clamp(20px, 1.25vw, 32px); }
.hdkey__total { font-family: var(--display); font-size: clamp(26px, 1.72vw, 44px); line-height: 1; letter-spacing: -0.018em; }
.hdkey__windows { font-family: var(--mono); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--faint); text-align: right; }
.hdkey__top { gap: 20px; padding-bottom: clamp(12px, 0.70vw, 18px); }
.hdrooms { margin: 0; padding: 0; list-style: none; }
.hdroom {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) clamp(70px, 3.75vw, 96px);
  gap: 18px;
  align-items: center;
  padding: clamp(12px, 0.66vw, 17px) 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
  transition: background 180ms ease;
}
.hdroom:hover { background: rgba(var(--accent-rgb), 0.05); }
.hdroom__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 30px;
  border-radius: 4px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.08em;
  color: var(--muted);
}
.hdroom:first-child .hdroom__badge { background: var(--ink); box-shadow: none; color: var(--bg); }
.hdroom__what { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.hdroom__name { font-size: clamp(17px, 0.90vw, 23px); }
.hdroom__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.hdroom__aspect--red { color: var(--accent); }
.hdroom__aspect--faint { color: var(--faint); }
.hdroom__area { font-family: var(--mono); font-size: clamp(12px, 0.66vw, 17px); letter-spacing: 0.06em; text-align: right; }

/* --- Полосы цифр: энергия и история цены -------------------------------------- */
.hdband { display: flex; flex-direction: column; }
.hdband--price .hdband__head { gap: clamp(12px, 1.02vw, 26px); }
.hdfigs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.hdfig {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: clamp(18px, 1.09vw, 28px) clamp(14px, 1.17vw, 30px);
  border-right: 1px solid rgba(var(--ink-rgb), 0.16);
  min-width: 0;
}
.hdfig:first-child { padding-left: 0; }
.hdfig:last-child { border-right: 0; }
.hdfig__label { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--faint); }
.hdfig__value { font-family: var(--display); font-size: clamp(34px, 2.97vw, 76px); line-height: 0.95; letter-spacing: -0.024em; color: var(--ink); }
.hdfig--72 .hdfig__value { font-size: clamp(32px, 2.81vw, 72px); }
.hdfig__value--red { color: var(--accent); }
.hdfig__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }

/* --- Улица: начерченная карта с кольцами и группы пешего хода -------------------- */
.hdstreet { display: flex; flex-direction: column; gap: clamp(14px, 0.86vw, 22px); }
.hdstreet .hdband__head { gap: clamp(12px, 1.02vw, 26px); }
.hdmap {
  position: relative;
  height: clamp(420px, 29.69vw, 760px);
  border-radius: 12px;
  overflow: hidden;
  background-color: var(--sheet);
  background-image:
    repeating-linear-gradient(0deg, rgba(var(--ink-rgb), 0.07) 0 1px, transparent 1px 80px),
    repeating-linear-gradient(90deg, rgba(var(--ink-rgb), 0.07) 0 1px, transparent 1px 80px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22);
}
.hdmap__river {
  position: absolute;
  left: -8%;
  top: 68%;
  width: 130%;
  height: 86px;
  transform: rotate(-4deg);
  background: rgba(var(--ink-rgb), 0.07);
  box-shadow: inset 0 1px 0 rgba(var(--ink-rgb), 0.16), inset 0 -1px 0 rgba(var(--ink-rgb), 0.16);
}
.hdmap__rivername {
  position: absolute;
  left: -6%;
  top: 72%;
  width: 130%;
  padding-left: 120px;
  transform: rotate(-4deg);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--faint);
}
.hdmap__axis { position: absolute; background: rgba(var(--ink-rgb), 0.12); }
.hdmap__axis--v1 { left: 30%; top: 0; width: 1px; height: 100%; }
.hdmap__axis--v2 { left: 70%; top: 0; width: 1px; height: 100%; }
.hdmap__axis--h { left: 0; top: 42%; width: 100%; height: 2px; background: rgba(var(--ink-rgb), 0.18); }
.hdmap__street,
.hdmap__cross {
  position: absolute;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: var(--faint);
  white-space: nowrap;
}
.hdmap__street { left: 24px; top: calc(42% - 20px); }
.hdmap__cross { left: calc(30% + 10px); bottom: 26px; writing-mode: vertical-rl; }
.hdring {
  position: absolute;
  left: 50%;
  top: 48%;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.22);
}
.hdring__label {
  position: absolute;
  left: 50%;
  transform: translate(-50%, -140%);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
  white-space: nowrap;
}
.hdring--1 { width: clamp(184px, 17.97vw, 460px); height: clamp(184px, 17.97vw, 460px); }
.hdring__label--1 { top: calc(48% - clamp(92px, 8.98vw, 230px)); }
.hdring--2 { width: clamp(328px, 32.03vw, 820px); height: clamp(328px, 32.03vw, 820px); }
.hdring__label--2 { top: calc(48% - clamp(164px, 16.02vw, 410px)); }

/* Ценники мест: пилюля на ножке с пяткой; дом — красный и выше остальных */
.hdpin {
  position: absolute;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 0;
  transform: translate(-50%, -100%);
}
.hdpin--home { z-index: 6; }
.hdpin-x18 { left: 18%; }
.hdpin-x30 { left: 30%; }
.hdpin-x38 { left: 38%; }
.hdpin-x46 { left: 46%; }
.hdpin-x50 { left: 50%; }
.hdpin-x58 { left: 58%; }
.hdpin-x66 { left: 66%; }
.hdpin-x74 { left: 74%; }
.hdpin-x84 { left: 84%; }
.hdpin-y12 { top: 12%; }
.hdpin-y22 { top: 22%; }
.hdpin-y28 { top: 28%; }
.hdpin-y34 { top: 34%; }
.hdpin-y48 { top: 48%; }
.hdpin-y52 { top: 52%; }
.hdpin-y66 { top: 66%; }
.hdpin-y74 { top: 74%; }
.hdpin-y76 { top: 76%; }
.hdpin__pill {
  display: inline-flex;
  align-items: center;
  height: clamp(28px, 1.33vw, 34px);
  padding: 0 clamp(10px, 0.51vw, 13px);
  border-radius: 999px;
  /* Владелец: кремовые ценники на карте терялись — места тушью с белым текстом */
  background: var(--ink);
  box-shadow: 0 8px 20px rgba(var(--ink-rgb), 0.22);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--c-white);
  white-space: nowrap;
}
.hdpin__stem { width: 1px; height: 13px; background: rgba(var(--ink-rgb), 0.6); }
.hdpin__foot { width: 8px; height: 8px; border-radius: 50%; background: var(--ink); box-shadow: 0 0 0 4px rgba(var(--bg-rgb), 0.9); }
.hdpin--home .hdpin__pill {
  height: clamp(34px, 1.72vw, 44px);
  padding: 0 clamp(12px, 0.70vw, 18px);
  background: var(--accent);
  box-shadow: 0 12px 28px rgba(var(--ink-rgb), 0.26);
  font-size: clamp(12px, 0.51vw, 13px);
  color: var(--c-cream);
}
.hdpin--home .hdpin__stem { height: 22px; background: var(--accent); }
.hdpin--home .hdpin__foot { width: 11px; height: 11px; background: var(--accent); }

.hdmap__plate {
  position: absolute;
  left: 28px;
  top: 22px;
  z-index: 4;
  display: flex;
  align-items: center;
  gap: 14px;
  height: 38px;
  padding: 0 16px;
  border-radius: 6px;
  background: rgba(var(--bg-rgb), 0.96);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ink);
  white-space: nowrap;
}
.hdmap__drawn { color: var(--faint); }
.hdmap .hdscale,
.hdmap .hdstamp,
.hdmap .hdnorth { z-index: 4; }

/* Настоящая карта: Leaflet лежит поверх чертежа, пока скрипт не поднял её —
   видна начерченная плита. Кольца 400 / 800 м и метки те же, что на чертеже. */
.hdmap__live {
  position: absolute;
  inset: 0;
  z-index: 1;
  isolation: isolate;
  background: transparent;
}
.hdmap--live .hdmap__river,
.hdmap--live .hdmap__rivername,
.hdmap--live .hdmap__axis,
.hdmap--live .hdmap__street,
.hdmap--live .hdmap__cross,
.hdmap--live .hdring,
.hdmap--live .hdring__label,
.hdmap--live > .hdpin { display: none !important; }
.hdmap--live .hdmap__plate { left: 70px; }
.hdmap--live .hdscale { display: none; }
.hdmap__live .leaflet-tile-pane { filter: grayscale(0.55) sepia(0.28) saturate(0.6) contrast(0.92) brightness(1.04); }
[data-theme="dark"] .hdmap__live .leaflet-tile-pane { filter: invert(1) hue-rotate(180deg) grayscale(0.7) brightness(0.8) contrast(0.9); }
.hdmap__live .leaflet-marker-icon { background: transparent; border: 0; }
.hdmap__live .hdpin { position: static; transform: translate(-50%, -100%); }
.hdmap__live .hdpin-live--home { z-index: 600 !important; }
.hdmap__live .leaflet-marker-icon:hover { z-index: 1000 !important; }
.hdmap__live .leaflet-control-attribution {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.04em;
  background: rgba(var(--bg-rgb), 0.85);
  color: var(--muted);
}
.hdmap__live .leaflet-control-attribution a { color: var(--muted); }
.hdmap__live .leaflet-control-zoom a {
  background: var(--bg);
  color: var(--ink);
  border-color: rgba(var(--ink-rgb), 0.24);
}
.hdmap__live .hdring-live {
  fill: rgba(var(--accent-rgb), 0.05);
  stroke: rgba(var(--accent-rgb), 0.95);
  stroke-width: 2.5;
  stroke-dasharray: 9 6;
}
.hdmap__live .hdring-live__label { background: transparent; border: 0; }
.hdmap__live .hdring-live__text {
  position: absolute;
  left: 0;
  top: 0;
  display: inline-block;
  padding: 3px 8px;
  transform: translate(-50%, 6px);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
  background: rgba(var(--bg-rgb), 0.92);
  border-radius: 3px;
  white-space: nowrap;
}

.hdgroups {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(24px, 2.34vw, 60px);
  padding-top: 8px;
}
.hdgroup { display: flex; flex-direction: column; min-width: 0; }
.hdgroup__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 14px;
  align-items: end;
  margin: 0;
  padding-bottom: 12px;
  border-bottom: 2px solid var(--ink);
}
.hdgroup__title { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.hdgroup__title .hdkicker { letter-spacing: 0.22em; }
.hdgroup__best { font-family: var(--display); font-size: clamp(24px, 1.48vw, 38px); line-height: 1; letter-spacing: -0.016em; }
.hdgroup__count { font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--faint); }
.hdgroup__rows { margin: 0; padding: 0; list-style: none; }
.hdwalk {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr) clamp(60px, 3.20vw, 82px);
  gap: 14px;
  align-items: center;
  padding: clamp(12px, 0.66vw, 17px) 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.16);
  transition: background 180ms ease;
}
.hdwalk:hover { background: rgba(var(--accent-rgb), 0.04); }
.hdwalk__no { font-family: var(--mono); font-size: 12px; letter-spacing: 0.08em; color: var(--faint); }
.hdwalk__what { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.hdwalk__place { font-size: clamp(16px, 0.82vw, 21px); }
.hdwalk__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.hdwalk__time { font-family: var(--mono); font-size: clamp(12px, 0.62vw, 16px); letter-spacing: 0.06em; text-align: right; color: var(--ink); }
.hdwalk__time--near { color: var(--accent); }

/* --- Советник и докет просмотра ------------------------------------------------- */
.hdadvisor {
  display: grid;
  /* Карточка 1100: портрет 540 + текст 560 (владелец просил шире трижды) */
  grid-template-columns: minmax(0, 1100px) minmax(0, 1fr);
  gap: clamp(24px, 1.56vw, 40px);
  align-items: stretch;
}
.hdcard {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 540px) minmax(0, 1fr);
  border-radius: 14px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
  overflow: hidden;
}
.hdportrait {
  position: relative;
  min-height: clamp(320px, 21.88vw, 560px);
  background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.1) 0 2px, transparent 2px 14px);
}
.hdportrait .hdph { font-size: 12px; letter-spacing: 0.2em; }
.hdportrait__note {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 18px;
  z-index: 1;
  padding: 0 12px;
  text-align: center;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--muted);
}
.hdportrait__img ~ .hdportrait__note { color: var(--on-photo); text-shadow: 0 1px 8px rgba(var(--scrim-rgb), 0.7); }
.hdportrait .hdtick { z-index: 1; }
.hdportrait__img { object-position: 50% 30%; }
/* Тень под подписью на снимке — чтобы кремовые буквы читались на светлом */
.hdportrait--photo::after,
.hdnear__well--photo::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 42%;
  background: linear-gradient(to top, rgba(var(--scrim-rgb), 0.62), transparent);
  pointer-events: none;
}
.hdcard__body {
  display: flex;
  flex-direction: column;
  padding: clamp(18px, 1.17vw, 30px) clamp(18px, 1.17vw, 30px) clamp(18px, 1.17vw, 30px) clamp(18px, 1.25vw, 32px);
  border-left: 1px solid rgba(var(--ink-rgb), 0.2);
  min-width: 0;
}
.hdcard__top { gap: 16px; padding-bottom: clamp(12px, 0.62vw, 16px); }
.hdcard__who {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 20px;
  align-items: start;
  margin: 0;
  padding: clamp(14px, 0.86vw, 22px) 0 clamp(12px, 0.70vw, 18px);
}
.hdcard__name { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.hdcard__title { font-family: var(--display); font-size: clamp(28px, 1.88vw, 48px); line-height: 1.02; letter-spacing: -0.02em; }
.hdcard__role { font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); }
.hdcard__initials {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(64px, 3.28vw, 84px);
  height: clamp(64px, 3.28vw, 84px);
  border-radius: 50%;
  box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.5), inset 0 0 0 5px rgba(var(--accent-rgb), 0.12);
  font-family: var(--mono);
  font-size: clamp(12px, 0.82vw, 21px);
  letter-spacing: 0.08em;
  color: var(--accent);
}
.hdcard__blurb {
  margin: 0 0 clamp(14px, 0.78vw, 20px);
  font-size: clamp(15px, 0.74vw, 19px);
  font-weight: 300;
  line-height: 1.6;
  color: var(--muted);
  text-wrap: pretty;
}
.hdfacts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.2);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.2);
}
.hdfact {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: clamp(12px, 0.70vw, 18px);
  border-right: 1px solid rgba(var(--ink-rgb), 0.16);
  min-width: 0;
}
.hdfact:first-child { padding-left: 0; }
.hdfact:last-child { padding-right: 0; border-right: 0; }
.hdfact__label { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--faint); }
.hdfact__value { font-family: var(--display); font-size: clamp(20px, 1.17vw, 30px); line-height: 1; }
.hdchannels { display: flex; flex-direction: column; margin-top: auto; padding-top: clamp(12px, 0.78vw, 20px); }
.hdchannel {
  display: grid;
  grid-template-columns: clamp(80px, 4.69vw, 120px) minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  margin: 0 -12px;
  padding: clamp(12px, 0.70vw, 18px) 12px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
  border-left: 2px solid transparent;
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.08em;
  color: var(--ink);
  text-decoration: none;
  transition: background 180ms ease, color 180ms ease;
}
.hdchannel:hover { background: rgba(var(--accent-rgb), 0.05); border-left-color: var(--accent); color: var(--accent); }
.hdchannel__label { font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--faint); }
.hdchannel__value { min-width: 0; overflow-wrap: anywhere; }
.hdchannel .g4arrow { font-size: clamp(14px, 0.62vw, 16px); color: rgba(var(--ink-rgb), 0.4); }
.hdchannel:hover .g4arrow { color: var(--accent); }

.hddocket { padding: clamp(20px, 1.25vw, 32px); margin: 0; }
.hdpick {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin: 0;
  padding: clamp(16px, 0.94vw, 24px) 0;
  border: 0;
  min-width: 0;
}
.hdpick--times { padding-top: 0; }
.hdpick__head { display: flex; align-items: center; gap: 14px; margin: 0; }
.hdpick__label { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--faint); }
.hdpick__line { flex: 1; height: 1px; background: rgba(var(--ink-rgb), 0.16); }
.hdpick__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); text-align: right; }
.hdchips { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.hdchip {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: clamp(48px, 2.27vw, 58px);
  border-radius: 8px;
  background: var(--bg);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  color: var(--ink);
  cursor: pointer;
  transition: background 180ms ease, color 180ms ease;
}
.hdchip:hover { background: rgba(var(--ink-rgb), 0.06); }
.hdchip--day { gap: 5px; height: clamp(72px, 3.59vw, 92px); }
.g4pill__input:checked + .hdchip { background: var(--ink); box-shadow: none; color: var(--bg); }
.g4pill__input:focus-visible + .hdchip { outline: 2px solid var(--accent); outline-offset: 2px; }
.hdchip__week { font-family: var(--mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; }
.hdchip__date { font-family: var(--display); font-size: clamp(22px, 1.25vw, 32px); line-height: 1; }
.hdchip__open { font-family: var(--mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; }
.hdchip__time { font-family: var(--mono); font-size: clamp(12px, 0.59vw, 15px); letter-spacing: 0.06em; }

.hdfields { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; padding-bottom: clamp(14px, 0.86vw, 22px); }
.hdfield { display: flex; flex-direction: column; gap: 10px; margin: 0; min-width: 0; }
.hdfield--wide { padding-bottom: clamp(16px, 0.94vw, 24px); }
.hdfield__label { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--faint); }
.hdfield__input {
  width: 100%;
  height: clamp(50px, 2.58vw, 66px);
  padding: 0 clamp(14px, 0.78vw, 20px);
  border: 0;
  border-radius: 8px;
  background: var(--bg);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  font-family: var(--text);
  font-size: clamp(15px, 0.74vw, 19px);
  font-weight: 300;
  color: var(--ink);
}
.hdfield__input::placeholder { color: var(--faint); opacity: 1; }
.hdfield__input:focus { outline: 0; box-shadow: inset 0 0 0 2px var(--accent); }
.hddocket__foot {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 20px;
  align-items: end;
  margin-top: auto;
  padding-top: clamp(14px, 0.86vw, 22px);
  border-top: 1px solid rgba(var(--ink-rgb), 0.2);
}
.hddocket__req { display: flex; flex-direction: column; gap: 6px; margin: 0; min-width: 0; }
.hddocket__picked { font-family: var(--display); font-size: clamp(20px, 1.25vw, 32px); line-height: 1.1; color: var(--ink); }
.hddocket__confirm { font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); }

/* --- Соседи по реестру -------------------------------------------------------------- */
.hdnearby { display: flex; flex-direction: column; gap: clamp(16px, 1.02vw, 26px); }
.hdnearby__head { gap: clamp(14px, 1.17vw, 30px); padding-bottom: clamp(12px, 0.62vw, 16px); }
.hdnearby__title { font-family: var(--display); font-size: clamp(28px, 2.03vw, 52px); line-height: 1; letter-spacing: -0.02em; }
.hdnears { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(20px, 1.56vw, 40px); }
.hdnear {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: clamp(16px, 1.02vw, 26px);
  border-radius: 14px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
  color: var(--ink);
  text-decoration: none;
  min-width: 0;
  transition: box-shadow 220ms ease, transform 220ms ease;
}
.hdnear:hover { box-shadow: inset 0 0 0 2px rgba(var(--ink-rgb), 0.55); transform: translateY(-8px); }
.hdnear__top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  padding-bottom: 12px;
  border-bottom: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}
.hdnear__ref { color: var(--accent); }
.hdnear__district { color: var(--faint); }
.hdnear .hdrule { display: flex; }
.hdnear__well {
  position: relative;
  display: block;
  height: clamp(200px, 13.28vw, 340px);
  border-radius: 8px;
  background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.1) 0 2px, transparent 2px 14px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2);
  overflow: hidden;
}
.hdnear__frames,
.hdnear__status {
  position: absolute;
  bottom: 10px;
  z-index: 1;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  color: var(--muted);
}
.hdnear__frames { left: 12px; }
.hdnear__status { right: 12px; text-transform: uppercase; color: var(--ink); }
.hdnear__photo ~ .hdnear__frames,
.hdnear__photo ~ .hdnear__status { color: var(--on-photo); text-shadow: 0 1px 6px rgba(var(--scrim-rgb), 0.7); }
.hdnear__address { padding: clamp(12px, 0.70vw, 18px) 0 6px; font-family: var(--display); font-size: clamp(24px, 1.41vw, 36px); line-height: 1.06; letter-spacing: -0.016em; }
.hdnear__money { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; padding-bottom: clamp(12px, 0.62vw, 16px); }
.hdnear__price { font-family: var(--display); font-size: clamp(26px, 1.72vw, 44px); line-height: 1; letter-spacing: -0.018em; }
.hdnear__unit { font-family: var(--mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--accent); }
.hdnear__cells {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid rgba(var(--ink-rgb), 0.2);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.2);
}
.hdnear__cell { display: flex; flex-direction: column; gap: 4px; padding: 14px; border-right: 1px solid rgba(var(--ink-rgb), 0.14); min-width: 0; }
.hdnear__cell:first-child { padding-left: 0; }
.hdnear__cell:last-child { padding-right: 0; border-right: 0; }
.hdnear__label { font-family: var(--mono); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--faint); }
.hdnear__value { font-family: var(--mono); font-size: clamp(12px, 0.51vw, 13px); letter-spacing: 0.06em; color: var(--ink); }
.hdnear__foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding-top: 16px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}
.hdnear__open { display: inline-flex; align-items: center; gap: 10px; color: var(--ink); }
.hdnear__open .g4arrow { font-size: clamp(14px, 0.62vw, 16px); }

/* Тёмная тема: кремовые плашки на снимках остаются кремовыми — тушь по крему. */
[data-theme="dark"] .hdcap__text,
[data-theme="dark"] .hdstamp,
[data-theme="dark"] .hdscale,
[data-theme="dark"] .hdmap__plate,
[data-theme="dark"] .hdfour__no,
[data-theme="dark"] .hdpin__pill { background: rgba(var(--c-paper-rgb), 0.96); color: var(--c-ink-fixed); }
[data-theme="dark"] .hdmap__drawn,
[data-theme="dark"] .hdscale { color: var(--c-clay); }
[data-theme="dark"] .hdscale__bar { border-color: var(--c-clay); }
[data-theme="dark"] .hdstamp { color: var(--c-red); }
[data-theme="dark"] .hdcap__no,
[data-theme="dark"] .hdpin__foot { background: var(--c-ink-fixed); color: var(--c-cream); }
[data-theme="dark"] .hdpin__foot { box-shadow: 0 0 0 4px rgba(var(--c-paper-rgb), 0.9); }
[data-theme="dark"] .hdhero__well,
[data-theme="dark"] .hdpair,
[data-theme="dark"] .hdfour__well,
[data-theme="dark"] .hdplan__well,
[data-theme="dark"] .hdportrait,
[data-theme="dark"] .hdnear__well { background-color: rgba(var(--ink-rgb), 0.03); }


/* ==========================================================================
   Home detail v2 — вторая подача того же листа (hv*)
   Шесть плит другой формы; голова, улица, цена, соседи и атомы — общие с v1.
   ========================================================================== */

/* --- 2C Контактный лист: герой + колонка плит на линованном листе --------- */
.hvsheet { display: block; margin-top: calc(clamp(22px, 1.17vw, 30px) * -1 + 15px); }
.hvsheet__plate-wrap {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: clamp(14px, 0.86vw, 22px);
  padding: clamp(18px, 1.33vw, 34px);
  border-radius: 14px;
  background: var(--bg);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}
.hvsheet__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 24px;
  margin: 0;
  padding-bottom: clamp(10px, 0.62vw, 16px);
  border-bottom: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}
.hvsheet__kicker { color: var(--accent); }
.hvsheet__note { color: var(--faint); text-align: right; }
.hvsheet__note--open { display: none; }
#hv-sheet:checked ~ .hvsheet__plate-wrap .hvsheet__note--open { display: inline; }
#hv-sheet:checked ~ .hvsheet__plate-wrap .hvsheet__note--closed { display: none; }
.hvsheet__grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: clamp(14px, 0.86vw, 22px);
  align-items: stretch;
}
.hvsheet__hero {
  grid-column: span 4;
  height: clamp(240px, 28.98vw, 742px);
  border-radius: 10px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2);
}
.hvsheet__cap {
  left: 20px;
  bottom: 18px;
  gap: 8px;
  align-items: center;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.hvsheet__cap .hdcap__no,
.hvsheet__cap .hdcap__text { height: 32px; padding: 0 10px; background: rgba(var(--bg-rgb), 0.94); color: var(--ink); border-radius: 4px; }
.hvsheet__dot { color: var(--ink); }
.hvsheet__column { position: relative; grid-column: span 2; height: clamp(240px, 28.98vw, 742px); min-width: 0; }
.hvsheet__scroll {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-auto-rows: clamp(120px, 14.06vw, 360px);
  gap: clamp(14px, 0.86vw, 22px);
  height: 100%;
  overflow: hidden;
  scrollbar-width: thin;
}
#hv-sheet:checked ~ .hvsheet__plate-wrap .hvsheet__scroll { overflow-y: auto; padding-right: 14px; }
#hv-sheet:checked ~ .hvsheet__plate-wrap .hvsheet__plate[hidden] { display: block !important; }
.hvsheet__plate {
  position: relative;
  display: block;
  margin: 0;
  border-radius: 10px;
  background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.1) 0 2px, transparent 2px 14px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2);
  overflow: hidden;
  transition: box-shadow 200ms ease-in-out;
}
.hvsheet__plate:hover { box-shadow: inset 0 0 0 2px rgba(var(--ink-rgb), 0.5); }
.hvsheet__plate[hidden] { display: none !important; }
.hvsheet__plate .hdphoto { transition: transform 0.4s ease-in-out; }
.hvsheet__plate:hover .hdphoto { transform: scale(1.03); }
.hvsheet__no,
.hvsheet__caption {
  position: absolute;
  left: 12px;
  z-index: 1;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  color: var(--muted);
}
.hvsheet__no { top: 10px; }
.hvsheet__caption { right: 12px; bottom: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink); }
.hvsheet__plate .hdphoto ~ .hvsheet__no,
.hvsheet__plate .hdphoto ~ .hvsheet__caption { padding: 4px 8px; border-radius: 4px; background: rgba(var(--bg-rgb), 0.94); }
.hvsheet__plate .hdphoto ~ .hvsheet__caption { right: auto; max-width: calc(100% - 24px); }
.hvsheet__scrollnote {
  position: absolute;
  left: -14px;
  top: 0;
  display: none;
  align-items: center;
  justify-content: center;
  height: 100%;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
  writing-mode: vertical-rl;
}
#hv-sheet:checked ~ .hvsheet__plate-wrap .hvsheet__scrollnote { display: flex; }
.hvsheet__foot {
  display: flex;
  align-items: center;
  gap: clamp(12px, 0.86vw, 22px);
  margin: 0;
  padding-top: clamp(10px, 0.62vw, 16px);
  border-top: 1px solid rgba(var(--ink-rgb), 0.2);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}
.hvsheet__toggle {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  height: clamp(44px, 2.03vw, 52px);
  padding: 0 clamp(16px, 0.94vw, 24px);
  border-radius: 8px;
  background: var(--ink);
  color: var(--bg);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  cursor: pointer;
  transition: background 200ms ease-in-out, color 200ms ease-in-out;
}
.hvsheet__toggle:hover { background: var(--accent); color: var(--c-cream); }
[data-theme="dark"] .hvsheet__toggle { background: var(--accent); color: var(--c-cream); }
[data-theme="dark"] .hvsheet__toggle:hover { background: var(--c-white); color: var(--c-ink-fixed); }
#hv-sheet:focus-visible ~ .hvsheet__plate-wrap .hvsheet__toggle { outline: 2px solid var(--accent); outline-offset: 2px; }
.hvsheet__toggle > span { display: inline-flex; align-items: center; gap: 12px; }
.hvsheet__toggle .hvsheet__label--open { display: none; }
#hv-sheet:checked ~ .hvsheet__plate-wrap .hvsheet__toggle .hvsheet__label--open { display: inline-flex; }
#hv-sheet:checked ~ .hvsheet__plate-wrap .hvsheet__toggle .hvsheet__label--closed { display: none; }
.hvsheet__toggle .g4arrow { font-size: clamp(14px, 0.66vw, 17px); }

/* --- 3A Голая линейка: три строки на всю ширину, без плиты ------------------ */
.hvdims { display: flex; flex-direction: column; gap: 14px; }
.hdrule--bare { padding-bottom: 0; }
.hvscale { position: relative; height: 34px; margin: 0; }
.hvscale__line { position: absolute; left: 0; right: 0; top: 0; height: 1px; background: rgba(var(--ink-rgb), 0.26); }
.hvscale__tick {
  position: absolute;
  top: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  transform: translateX(-50%);
}
.hvscale__mark { width: 1px; height: 6px; background: rgba(var(--ink-rgb), 0.4); }
.hvscale__tick--big .hvscale__mark { height: 11px; }
.hvscale__label { font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; color: var(--faint); white-space: nowrap; }
.hvscale__tick--0 { left: 0.0%; }
.hvscale__tick--1 { left: 14.286%; }
.hvscale__tick--2 { left: 28.571%; }
.hvscale__tick--3 { left: 42.857%; }
.hvscale__tick--4 { left: 57.143%; }
.hvscale__tick--5 { left: 71.429%; }
.hvscale__tick--6 { left: 85.714%; }
.hvscale__tick--7 { left: 100.0%; }
.hdfootline--bare { gap: clamp(12px, 1.17vw, 30px); padding-top: 0; border-top: 0; }
.hdfootline__ink { color: var(--ink); }

/* --- 4C Дефекты плитами: шапка с полосой по цене и шесть докетов ----------- */
.hvsurvey { display: flex; flex-direction: column; gap: clamp(16px, 1.02vw, 26px); }
.hvsurvey__head {
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr) auto;
  gap: clamp(20px, 1.72vw, 44px);
  align-items: end;
  padding-bottom: clamp(14px, 0.78vw, 20px);
  border-bottom: 2px solid var(--ink);
}
.hvsurvey__grade { display: flex; flex-direction: column; gap: 12px; }
.hvsurvey__letter { display: flex; align-items: flex-end; gap: clamp(10px, 0.70vw, 18px); margin: 0; }
.hvsurvey__big { font-family: var(--display); font-size: clamp(64px, 5.16vw, 132px); line-height: 0.78; letter-spacing: -0.03em; }
.hvsurvey__word { display: flex; flex-direction: column; gap: 6px; padding-bottom: 14px; }
.hvsurvey__words { font-family: var(--display); font-size: clamp(22px, 1.33vw, 34px); line-height: 1; }
.hvsurvey__scale,
.hvsurvey__label { font-family: var(--mono); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--faint); }
.hvsurvey__stats { display: flex; gap: clamp(18px, 1.33vw, 34px); padding-bottom: 12px; }
.hvsurvey__stat { display: flex; flex-direction: column; gap: 8px; margin: 0; }
.hvsurvey__stat:first-child { padding-right: clamp(18px, 1.33vw, 34px); border-right: 1px solid rgba(var(--ink-rgb), 0.2); }
.hvsurvey__num { font-family: var(--display); font-size: clamp(28px, 1.72vw, 44px); line-height: 1; }
.hvsurvey__num--red { color: var(--accent); }
.hvsurvey__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); }
.hvsurvey__bycost { display: flex; flex-direction: column; gap: 10px; padding-bottom: 16px; min-width: 0; }
.hvdock__bar {
  display: flex;
  height: 14px;
  border-radius: 3px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.18);
}
.hvdock__seg { display: block; height: 100%; border-right: 1px solid rgba(var(--c-paper-rgb), 0.7); }
.hvdock__seg:last-child { border-right: 0; }
.hvdock__seg--first,
.hvdock--first .hvdock__fill { background: var(--accent); }
.hvdock__seg--advised,
.hvdock--advised .hvdock__fill { background: rgba(var(--ink-rgb), 0.55); }
.hvdock__seg--minor,
.hvdock--minor .hvdock__fill { background: rgba(var(--ink-rgb), 0.28); }
.hvflex-1 { flex: 1; }
.hvflex-2 { flex: 2; }
.hvflex-3 { flex: 3; }
.hvflex-4 { flex: 4; }
.hvflex-6 { flex: 6; }
.hvflex-8 { flex: 8; }
.hvflex-180 { flex: 180; }
.hvflex-290 { flex: 290; }
.hvflex-400 { flex: 400; }
.hvflex-610 { flex: 610; }
.hvflex-900 { flex: 900; }
.hvflex-1100 { flex: 1100; }
.hvflex-1340 { flex: 1340; }
.hvflex-1480 { flex: 1480; }
.hvflex-2160 { flex: 2160; }
.hvflex-3800 { flex: 3800; }
.hvflex-6200 { flex: 6200; }
.hvflex-8400 { flex: 8400; }
.hvflex-24000 { flex: 24000; }
.hvflex-44500 { flex: 44500; }
.hvflex-410000 { flex: 410000; }
.hvflex-922040 { flex: 922040; }
.hvsurvey__acts { display: flex; flex-direction: column; gap: 12px; align-items: flex-end; padding-bottom: 12px; }
.hvsurvey__published { font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--faint); text-align: right; }
.hvsurvey__acts .hdbtn { padding: 0 clamp(18px, 1.09vw, 28px); }
.hvdocks {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(14px, 0.94vw, 24px);
  margin: 0;
  padding: 0;
  list-style: none;
}
.hvdock {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: clamp(18px, 1.17vw, 30px);
  border-radius: 12px;
  background: var(--sheet);
  border-left: 3px solid rgba(var(--ink-rgb), 0.4);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  transition: box-shadow 200ms ease-in-out, transform 200ms ease-in-out;
}
.hvdock:hover { box-shadow: inset 0 0 0 2px rgba(var(--ink-rgb), 0.5); transform: translateY(-4px); }
.hvdock--first { border-left-color: var(--accent); }
.hvdock--minor { border-left-color: rgba(var(--ink-rgb), 0.18); }
.hvdock .hdtick--br { right: 16px; bottom: 16px; width: 18px; height: 18px; border-color: rgba(var(--ink-rgb), 0.32); }
.hvdock__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin: 0;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.2);
}
.hvdock__who { display: flex; align-items: center; gap: 14px; }
.hvdock__seal {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--ink);
}
.hvdock--first .hvdock__seal { background: var(--accent); box-shadow: none; color: var(--c-cream); }
.hvdock .hdfault__tag { height: 28px; padding: 0 12px; }
.hvdock--first .hdfault__tag { background: var(--accent); box-shadow: none; color: var(--c-cream); }
.hvdock--minor .hdfault__tag { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22); color: var(--faint); }
.hvdock__date { font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--faint); white-space: nowrap; }
.hvdock__name { margin: 0; font-family: var(--display); font-size: clamp(22px, 1.21vw, 31px); line-height: 1.15; letter-spacing: -0.01em; }
.hvdock__detail { margin: 0; font-size: clamp(15px, 0.70vw, 18px); font-weight: 300; line-height: 1.55; color: var(--muted); text-wrap: pretty; }
.hvdock__foot {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: auto 0 0;
  padding-top: 16px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
}
.hvdock__line { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; }
.hvdock__where { font-family: var(--mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink); }
.hvdock__est { font-family: var(--mono); font-size: clamp(12px, 0.86vw, 22px); letter-spacing: 0.04em; color: var(--ink); white-space: nowrap; }
.hvdock__est--none { color: var(--faint); }
.hvdock__gauge { display: flex; align-items: center; gap: 12px; }
.hvdock__track { flex: 1; height: 4px; border-radius: 2px; background: rgba(var(--ink-rgb), 0.12); overflow: hidden; }
.hvdock__fill { display: block; height: 100%; }
.hvdock__share { font-family: var(--mono); font-size: 12px; letter-spacing: 0.14em; color: var(--faint); white-space: nowrap; }
.hdw-3 { width: 3%; }
.hdw-4 { width: 4%; }
.hdw-5 { width: 5%; }
.hdw-9 { width: 9%; }
.hdw-11 { width: 11%; }
.hdw-19 { width: 19%; }
.hdw-28 { width: 28%; }
.hdw-30 { width: 30%; }
.hdw-34 { width: 34%; }
.hdw-41 { width: 41%; }
.hdw-44 { width: 44%; }
.hdw-50 { width: 50%; }
.hdw-75 { width: 75%; }
.hdw-79 { width: 79%; }
.hdw-83 { width: 83%; }
.hdw-89 { width: 89%; }
.hdw-90 { width: 90%; }
.hdw-100 { width: 100%; }
.hvsurvey__foot { gap: clamp(12px, 1.02vw, 26px); padding-top: clamp(12px, 0.70vw, 18px); border-top-color: rgba(var(--ink-rgb), 0.24); }
.hvsurvey__total { font-family: var(--mono); font-size: clamp(12px, 0.78vw, 20px); letter-spacing: 0.04em; color: var(--accent); }

/* --- 5B Цитата посередине: две колонки, плита цитаты, третий абзац ---------- */
.hvdesc { display: flex; flex-direction: column; gap: clamp(20px, 1.33vw, 34px); }
.hvdesc__two { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(24px, 3.12vw, 80px); }
.hvdesc__para { margin: 0; font-size: clamp(17px, 0.98vw, 25px); font-weight: 300; line-height: 1.62; color: var(--ink); text-wrap: pretty; }
.hvdesc__para--last { max-width: 1700px; }
.hvquote {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 420px);
  gap: clamp(24px, 2.34vw, 60px);
  align-items: center;
  padding: clamp(20px, 1.33vw, 34px) clamp(20px, 1.56vw, 40px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}
.hvquote .hdtick { border-color: rgba(var(--ink-rgb), 0.4); }
.hvquote__body { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.hdkicker--22 { letter-spacing: 0.22em; }
.hvquote__text { margin: 0; }
.hvquote__text p { margin: 0; font-family: var(--display); font-size: clamp(24px, 1.72vw, 44px); line-height: 1.3; letter-spacing: -0.014em; text-wrap: pretty; }
.hvquote__who { display: flex; flex-direction: column; gap: 12px; padding-left: clamp(24px, 2.34vw, 60px); border-left: 1px solid rgba(var(--ink-rgb), 0.2); }
.hvquote__name { line-height: 1.15; }
.hvquote__who .hdsign__date { letter-spacing: 0.18em; }
.hvquote__link {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-top: 6px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--ink);
  text-decoration: none;
}
.hvquote__link:hover { color: var(--accent); }
.hvquote__link .g4arrow { font-size: clamp(14px, 0.66vw, 17px); }

/* --- 6D Разворот: две страницы через среднюю линию с печатью ---------------- */
.hvfacing { display: flex; flex-direction: column; }
.hvfacing__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: clamp(12px, 1.17vw, 30px);
  align-items: baseline;
  margin: 0;
  padding-bottom: clamp(10px, 0.55vw, 14px);
  border-bottom: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}
.hvfacing__kicker { color: var(--accent); }
.hvfacing__count { color: var(--faint); }
.hvfacing__marked-note { color: var(--muted); }
.hvfacing__body {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1px 1fr;
  padding: clamp(18px, 1.17vw, 30px) 0;
  border-bottom: 2px solid var(--ink);
}
.hvpage { display: flex; flex-direction: column; min-width: 0; }
.hvpage:first-child { padding-right: clamp(20px, 2.19vw, 56px); }
.hvpage:last-child { padding-left: clamp(20px, 2.19vw, 56px); }
.hvpage__head { display: flex; flex-direction: column; gap: 12px; margin: 0; padding-bottom: clamp(14px, 0.78vw, 20px); }
.hvpage__titlerow { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; }
.hvpage__title { font-family: var(--display); font-size: clamp(28px, 1.80vw, 46px); line-height: 1; letter-spacing: -0.02em; }
.hvpage__count { font-family: var(--mono); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--faint); }
.hvpage__rows { margin: 0; padding: 0; list-style: none; }
.hvpage__row {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr);
  gap: 16px;
  align-items: baseline;
  padding: clamp(12px, 0.62vw, 16px) 0;
  border-top: 1px solid rgba(var(--ink-rgb), 0.14);
}
.hvpage__no { font-family: var(--mono); font-size: 12px; color: var(--faint); }
.hvpage__body { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.hvpage__line { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.hvpage__label { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.hvpage__state {
  display: flex;
  align-items: center;
  gap: 9px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted);
  white-space: nowrap;
}
.hvpage__mark { width: 8px; height: 8px; flex: none; border-radius: 2px; background: rgba(var(--ink-rgb), 0.24); }
.hvpage__row--fault .hvpage__state { color: var(--accent); }
.hvpage__row--fault .hvpage__mark,
.hvpage__mark--red { background: var(--accent); }
.hvpage__value { font-size: clamp(16px, 0.82vw, 21px); font-weight: 300; line-height: 1.45; text-wrap: pretty; }
.hvfacing__rule { position: relative; background: rgba(var(--ink-rgb), 0.24); }
.hvfacing__seal {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 66px;
  height: 66px;
  border-radius: 50%;
  background: var(--bg);
  box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.45), inset 0 0 0 5px rgba(var(--accent-rgb), 0.07);
  font-family: var(--mono);
  font-size: 12px;
  line-height: 1.25;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-align: center;
  color: var(--accent);
}
.hvfacing__feet {
  display: grid;
  grid-template-columns: 1fr 1px 1fr;
  margin: 0;
  padding-top: clamp(10px, 0.62vw, 16px);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}
.hvfacing__foot { display: flex; align-items: center; gap: 16px; }
.hvfacing__foot:first-child { padding-right: clamp(20px, 2.19vw, 56px); }
.hvfacing__foot:last-child { grid-column: 3; padding-left: clamp(20px, 2.19vw, 56px); }
.hvfacing__marked { display: inline-flex; align-items: center; gap: 9px; color: var(--muted); }

/* --- 7C План с булавками: две размерные линии, булавки, полосы площадей ------ */
.hvplan__drawing {
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  grid-template-rows: auto 1fr auto;
  gap: 12px;
  margin: 0;
  min-width: 0;
}
.hvplan__drawing .hdrule { gap: 14px; letter-spacing: 0.2em; }
.hvplan__drawing .hdrule__end { background: rgba(var(--ink-rgb), 0.45); }
.hvplan__vrule {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  margin: 0;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}
.hvplan__vend { width: 9px; height: 1px; background: rgba(var(--ink-rgb), 0.45); }
.hvplan__vline { flex: 1; width: 1px; background: rgba(var(--ink-rgb), 0.26); }
.hvplan__vtext { writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; }
.hvplan .hdplan__well { flex: none; min-height: clamp(300px, 32.03vw, 820px); }
.hvplan .hdplan__well--drawn { min-height: 0; aspect-ratio: 1536 / 768; }
.hvpin {
  position: absolute;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(var(--bg-rgb), 0.97);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
  transform: translate(-50%, -50%);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--ink);
}
.hvpin--south { background: var(--accent); box-shadow: 0 6px 16px rgba(var(--ink-rgb), 0.18); color: var(--c-cream); }
/* Булавка и строка ключа знают друг о друге: наведение зажигает, клик держит */
.hvpin { border: 0; padding: 0; cursor: pointer; transition: transform 0.25s ease-in-out, box-shadow 0.25s ease-in-out; }
.hvpin:hover,
.hvpin--lit,
.hvpin--on { transform: translate(-50%, -50%) scale(1.18); box-shadow: 0 0 0 4px rgba(var(--accent-rgb), 0.25), 0 8px 20px rgba(var(--ink-rgb), 0.25); z-index: 3; }
.hvpin:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.hvpin__tag {
  position: absolute;
  left: 50%;
  bottom: calc(100% + 10px);
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  height: 30px;
  /* Разрядка добавляет хвост после последней буквы — слева на столько же,
     иначе текст в пилюле кажется сдвинутым */
  padding: 0 12px 0 calc(12px + 0.14em);
  border-radius: 999px;
  background: var(--accent);
  color: var(--c-cream);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.25s ease-in-out;
  box-shadow: 0 10px 24px rgba(var(--ink-rgb), 0.25);
}
.hvpin { text-indent: 0.06em; }
.hvpin:hover .hvpin__tag,
.hvpin--lit .hvpin__tag,
.hvpin--on .hvpin__tag { opacity: 1; }
.hvroom { position: relative; transition: background 0.25s ease-in-out; }
.hvroom__hit {
  position: absolute;
  inset: 0;
  z-index: 1;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
}
.hvroom__hit:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.hvroom--lit,
.hvroom--on { background: rgba(var(--accent-rgb), 0.05); }
.hvroom--on { box-shadow: inset 2px 0 0 var(--accent); }
.hvroom--on .hdroom__badge { background: var(--accent); box-shadow: none; color: var(--c-cream); }
.hvpin-x22 { left: 22%; }
.hvpin-x40 { left: 40%; }
.hvpin-x52 { left: 52%; }
.hvpin-x57 { left: 57%; }
.hvpin-x65 { left: 65%; }
.hvpin-x81 { left: 81%; }
.hvpin-y23 { top: 23%; }
.hvpin-y27 { top: 27%; }
.hvpin-y28 { top: 28%; }
.hvpin-y52 { top: 52%; }
.hvpin-y78 { top: 78%; }
.hvplan__legend { display: inline-flex; align-items: center; gap: 9px; }
.hvroom__area { display: flex; flex-direction: column; gap: 7px; align-items: flex-end; }
.hvroom__track { width: clamp(70px, 3.75vw, 96px); height: 3px; border-radius: 2px; background: rgba(var(--ink-rgb), 0.12); overflow: hidden; }
.hvroom__bar { display: block; height: 100%; background: rgba(var(--ink-rgb), 0.45); }
.hvroom__bar--south { background: var(--accent); }

/* --- 8F Счёт одной полосой: шесть сборов слева направо ----------------------- */
.hvbill { display: flex; flex-direction: column; gap: clamp(14px, 0.86vw, 22px); }
.hvbill__head {
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr) auto;
  gap: clamp(20px, 1.72vw, 44px);
  align-items: end;
  padding-bottom: clamp(10px, 0.62vw, 16px);
  border-bottom: 2px solid var(--ink);
}
.hvbill__year { display: flex; flex-direction: column; gap: 8px; margin: 0; }
.hvbill__total { font-family: var(--display); font-size: clamp(36px, 2.81vw, 72px); line-height: 0.95; letter-spacing: -0.025em; }
.hvbill__month { display: flex; flex-direction: column; gap: 8px; margin: 0; padding-bottom: 14px; }
.hvbill__monthval { font-family: var(--display); font-size: clamp(24px, 1.48vw, 38px); line-height: 1; }
.hvbill__note { padding-bottom: 18px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--faint); }
.hvbill__class { display: flex; align-items: flex-end; gap: 14px; margin: 0; padding-bottom: 14px; }
.hvbill__letter { font-family: var(--display); font-size: clamp(32px, 2.19vw, 56px); line-height: 0.9; }
.hvbill__kwh { padding-bottom: 8px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); }
.hvbill__bar {
  display: flex;
  height: clamp(40px, 2.19vw, 56px);
  margin: 0;
  border-radius: 8px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2);
}
.hvbill__seg {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  border-right: 1px solid rgba(var(--c-paper-rgb), 0.75);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--c-cream);
  overflow: hidden;
  white-space: nowrap;
}
.hvbill__seg:last-child { border-right: 0; }
/* Шесть чернил полосы — полной плотности, чтобы кремовые подписи читались */
.hvbill__seg--accent, .hvbill__cap--accent { background-color: var(--accent); border-color: var(--accent); }
.hvbill__seg--ink, .hvbill__cap--ink { background-color: var(--c-ink-fixed); border-color: var(--c-ink-fixed); }
.hvbill__seg--b3, .hvbill__cap--b3 { background-color: var(--bill-3); border-color: var(--bill-3); }
.hvbill__seg--muted, .hvbill__cap--muted { background-color: var(--c-clay); border-color: var(--c-clay); }
.hvbill__seg--b5, .hvbill__cap--b5 { background-color: var(--bill-5); border-color: var(--bill-5); }
.hvbill__seg--b6, .hvbill__cap--b6 { background-color: var(--bill-6); border-color: var(--bill-6); }
/* Тёмная тема: тушь и тёмные чернила на ночном фоне не видны — светлые тона */
[data-theme="dark"] .hvbill__seg--ink, [data-theme="dark"] .hvbill__cap--ink { background-color: var(--plate-muted); border-color: var(--plate-muted); }
[data-theme="dark"] .hvbill__seg--b5, [data-theme="dark"] .hvbill__cap--b5 { background-color: var(--gold); border-color: var(--gold); }
[data-theme="dark"] .hvbill__seg--b3, [data-theme="dark"] .hvbill__cap--b3 { background-color: var(--bill-6); border-color: var(--bill-6); }
[data-theme="dark"] .hvbill__seg--b6, [data-theme="dark"] .hvbill__cap--b6 { background-color: var(--c-clay); border-color: var(--c-clay); }
[data-theme="dark"] .hvbill__seg--ink,
[data-theme="dark"] .hvbill__seg--b5 { color: var(--c-ink-fixed); }
.hvbill__caps { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: clamp(12px, 0.78vw, 20px); margin: 0; }
.hvbill__cap {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-top: 16px;
  border-top: 2px solid;
  background-color: transparent !important;
  min-width: 0;
}
.hvbill__label { font-family: var(--mono); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--muted); }
.hvbill__amount { font-family: var(--display); font-size: clamp(22px, 1.33vw, 34px); line-height: 1; }
.hvbill__basis { font-family: var(--mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--faint); }

/* --- 11B Советник одной лентой: портрет · карточка · докет ------------------ */
.hvadv { display: flex; flex-direction: column; gap: clamp(14px, 0.78vw, 20px); }
.hvadv__head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  gap: clamp(12px, 1.17vw, 30px);
  align-items: baseline;
  margin: 0;
  padding-bottom: clamp(10px, 0.55vw, 14px);
  border-bottom: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
}
.hvadv__kicker { color: var(--accent); }
.hvadv__ref { color: var(--faint); }
.hvadv__reply { color: var(--muted); }
.hvadv__slot { color: var(--ink); }
.hvadv__band {
  display: grid;
  grid-template-columns: minmax(0, 440px) minmax(0, 1fr) minmax(0, 740px);
  gap: clamp(20px, 1.41vw, 36px);
  align-items: stretch;
}
.hvadv__portrait {
  min-height: clamp(320px, 17.97vw, 460px);
  border-radius: 12px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
  overflow: hidden;
}
.hvadv__portrait .hdtick { width: 18px; height: 18px; }
.hvadv__portrait .hdtick--tl { left: 14px; top: 14px; }
.hvadv__portrait .hdtick--tr { right: 14px; top: 14px; }
.hvadv__portrait .hdportrait__note { display: none; }
.hvadv__plate {
  position: absolute;
  left: 18px;
  right: 18px;
  bottom: 18px;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.hvadv__office {
  display: inline-flex;
  align-items: center;
  height: 34px;
  padding: 0 13px;
  border-radius: 5px;
  background: rgba(var(--bg-rgb), 0.96);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted);
}
.hvadv__initials {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 58px;
  height: 58px;
  border-radius: 50%;
  background: rgba(var(--bg-rgb), 0.96);
  box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.5), inset 0 0 0 4px rgba(var(--accent-rgb), 0.1);
  font-family: var(--mono);
  font-size: clamp(12px, 0.59vw, 15px);
  letter-spacing: 0.08em;
  color: var(--accent);
}
.hvadv__card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding-right: clamp(20px, 1.41vw, 36px);
  border-right: 1px solid rgba(var(--ink-rgb), 0.2);
}
.hvadv__name { font-family: var(--display); font-size: clamp(32px, 2.27vw, 58px); line-height: 1; letter-spacing: -0.022em; }
.hvadv__role { margin-top: 12px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); }
.hvadv__blurb { margin: clamp(14px, 0.86vw, 22px) 0 clamp(16px, 0.94vw, 24px); max-width: 560px; font-size: clamp(15px, 0.78vw, 20px); font-weight: 300; line-height: 1.6; color: var(--muted); text-wrap: pretty; }
.hvadv__facts .hdfact__value { font-size: clamp(20px, 1.25vw, 32px); }
.hvadv__channels { display: flex; flex-direction: column; margin-top: auto; padding-top: clamp(12px, 0.78vw, 20px); }
.hvchannel {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  margin: 0 -12px;
  padding: clamp(12px, 0.62vw, 16px) 12px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
  border-left: 2px solid transparent;
  font-family: var(--mono);
  font-size: clamp(12px, 0.55vw, 14px);
  letter-spacing: 0.08em;
  color: var(--ink);
  text-decoration: none;
  transition: border-color 180ms ease-in-out, color 180ms ease-in-out;
}
.hvchannel:hover { border-left-color: var(--accent); color: var(--accent); }
.hvchannel__value { min-width: 0; overflow-wrap: anywhere; }
.hvchannel__label { font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--faint); }
.hvadv__docket { padding: clamp(20px, 1.25vw, 32px); border-radius: 12px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26); }
.hvadv__docket .hdtick--br { right: 16px; bottom: 16px; width: 20px; height: 20px; border-color: rgba(var(--ink-rgb), 0.34); }
.hvadv__pick { padding: clamp(14px, 0.86vw, 22px) 0 0; gap: 12px; }
.hvadv__pick .hdpick__head { padding-bottom: 12px; }
.hvadv__chips { gap: 12px; }
.hdchip__open--soft { opacity: 0.7; }
.hvadv__docket .hddocket__foot { margin-top: auto; padding-top: clamp(14px, 0.86vw, 22px); }
.hvadv__docket .hdpick + .hddocket__foot { margin-top: clamp(14px, 0.86vw, 22px); }


/* ==========================================================================
   Home detail v3 — колонка содержимого и липкая боковая (hw*)
   Голова и плиты на всю ширину; ниже разворот 1840 / 560. Плиты v2 (hvdims,
   hvdesc) и атомы листа общие.
   ========================================================================== */
.hwpage .shell { gap: 0; }
.hwpage .hdhead { margin-bottom: 15px; }
.hwsplit {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 560px);
  gap: clamp(24px, 1.56vw, 40px);
  align-items: start;
  margin-top: clamp(22px, 1.17vw, 30px);
}
.hwflow { display: flex; flex-direction: column; gap: clamp(32px, 2.34vw, 60px); min-width: 0; }
/* Каждая плита после первой открывается линейкой ровно в 60 от соседей */
.hwsec { padding-top: clamp(32px, 2.34vw, 60px); border-top: 1px solid rgba(var(--ink-rgb), 0.22); }
.hwsec--first,
.hwsec--norule { padding-top: 0; border-top: 0; }
.hwflow .hdnearby { margin-top: 0; }
.hdband__head-muted { color: var(--muted); }
.hdkicker--muted { color: var(--muted); }
.hdroom__badge--ink { background: var(--ink); box-shadow: none; color: var(--bg); }

/* --- 2J Индекс и просмотр ------------------------------------------------------ */
.hwplates {
  display: grid;
  grid-template-columns: minmax(0, 660px) minmax(0, 1fr);
  gap: clamp(20px, 1.41vw, 36px);
  align-items: stretch;
  margin-top: 0;
}
.hwindex { padding: clamp(18px, 1.17vw, 30px) clamp(18px, 1.25vw, 32px); border-radius: 12px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26); }
.hwindex__top { padding-bottom: clamp(12px, 0.70vw, 18px); gap: 18px; }
.hwindex__title { font-family: var(--display); font-size: clamp(26px, 1.64vw, 42px); line-height: 1; letter-spacing: -0.018em; }
.hwindex__counter { font-family: var(--mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); white-space: nowrap; }
.hwindex__rows { margin: 0; padding: 0; list-style: none; }
.hwindex__row {
  box-sizing: border-box;
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) 80px;
  gap: 18px;
  align-items: center;
  width: calc(100% + 24px);
  margin: 0 -12px;
  padding: 14px 12px;
  border: 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
  border-left: 2px solid transparent;
  background: transparent;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
  transition: background 160ms ease-in-out, color 160ms ease-in-out;
}
.hwindex__row:hover { background: rgba(var(--accent-rgb), 0.05); }
.hwindex__row--on { background: var(--ink); border-left-color: var(--accent); color: var(--bg); }
.hwindex__row--on:hover { background: var(--ink); }
.hwindex__row:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.hwindex__no { font-family: var(--mono); font-size: 12px; letter-spacing: 0.08em; color: var(--faint); }
.hwindex__row--on .hwindex__no { color: var(--bg); }
.hwindex__caption { font-size: clamp(15px, 0.74vw, 19px); font-weight: 300; }
.hwindex__size { font-family: var(--mono); font-size: 12px; letter-spacing: 0.06em; text-align: right; color: var(--muted); }
.hwindex__size--none { color: var(--faint); }
.hwindex__row--on .hwindex__size { color: rgba(var(--bg-rgb), 0.7); }
.hwindex__foot { padding-top: 18px; border-top: 0; gap: 18px; }
.hwviewer { display: flex; flex-direction: column; gap: 12px; margin: 0; min-width: 0; }
.hwviewer__dim { gap: 12px; letter-spacing: 0.2em; }
.hwviewer__well { flex: 1; height: auto; min-height: clamp(260px, 32.03vw, 820px); }
.hwviewer__half { top: 50%; }
.hwviewer__cap { left: 24px; bottom: 22px; }
.hwviewer__note { right: 24px; bottom: 22px; }
.hwviewer__steps { position: absolute; right: 24px; top: 24px; z-index: 2; display: flex; gap: 10px; }
.hwviewer__step {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  border: 0;
  border-radius: 6px;
  background: rgba(var(--bg-rgb), 0.96);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
  color: var(--ink);
  cursor: pointer;
  transition: background 180ms ease-in-out, color 180ms ease-in-out;
}
.hwviewer__step:hover { background: var(--ink); color: var(--bg); }
.hwviewer__step:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.hwviewer__step .g4arrow { font-size: clamp(15px, 0.74vw, 19px); }

/* --- 13B Здание ---------------------------------------------------------------------- */
.hwbd { display: flex; flex-direction: column; }
.hwbd__head { gap: clamp(12px, 1.02vw, 26px); letter-spacing: 0.2em; }
.hwbd__band { grid-template-columns: repeat(6, minmax(0, 1fr)); border-bottom: 1px solid rgba(var(--ink-rgb), 0.2); }
.hwbd__fig { padding: clamp(16px, 0.94vw, 24px) clamp(12px, 0.86vw, 22px); }
.hwbd__value { font-size: clamp(28px, 2.03vw, 52px); line-height: 1; letter-spacing: -0.02em; }
.hwbd__table { display: flex; flex-direction: column; margin-top: clamp(16px, 1.02vw, 26px); }
.hwbd__cols,
.hwbd__row,
.hwbd__foot {
  display: grid;
  grid-template-columns: clamp(56px, 3.52vw, 90px) minmax(0, 1fr) minmax(0, clamp(130px, 8.59vw, 220px)) minmax(0, clamp(110px, 7.81vw, 200px));
  gap: clamp(14px, 1.09vw, 28px);
  align-items: baseline;
  margin: 0;
}
.hwbd__cols {
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.26);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}
.hwbd__right { text-align: right; }
.hwbd__rows { margin: 0; padding: 0; list-style: none; }
.hwbd__row {
  box-sizing: border-box;
  align-items: center;
  width: calc(100% + 24px);
  margin: 0 -12px;
  padding: clamp(12px, 0.70vw, 18px) 12px;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
  border-left: 2px solid transparent;
  transition: background 160ms ease-in-out;
}
.hwbd__row:hover { background: rgba(var(--accent-rgb), 0.05); }
.hwbd__row--pending { border-left-color: var(--accent); }
.hwbd__year { font-family: var(--mono); font-size: clamp(12px, 0.51vw, 13px); letter-spacing: 0.06em; color: var(--faint); }
.hwbd__what { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.hwbd__title { font-size: clamp(16px, 0.86vw, 22px); }
.hwbd__detail { font-size: clamp(14px, 0.66vw, 17px); font-weight: 300; line-height: 1.45; color: var(--muted); text-wrap: pretty; }
.hwbd__tag { height: 28px; padding: 0 12px; letter-spacing: 0.16em; justify-self: start; }
.hwbd__row--pending .hwbd__tag { background: var(--accent); box-shadow: none; color: var(--c-cream); }
.hwbd__cost { font-family: var(--mono); font-size: clamp(12px, 0.66vw, 17px); letter-spacing: 0.06em; text-align: right; color: var(--ink); }
.hwbd__row--pending .hwbd__cost { color: var(--accent); }
.hwbd__foot {
  padding-top: 16px;
  border-top: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}
.hwbd__total { font-size: clamp(12px, 0.74vw, 19px); letter-spacing: 0.04em; text-align: right; color: var(--accent); }

/* --- 15B Документы -------------------------------------------------------------------- */
.hwdocs-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(20px, 1.56vw, 40px); }
.hwdocs { padding: clamp(18px, 1.17vw, 30px) clamp(18px, 1.25vw, 32px); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26); }
.hwdocs__top { padding-bottom: clamp(12px, 0.70vw, 18px); gap: 20px; }
.hwdocs__title { font-family: var(--display); font-size: clamp(26px, 1.72vw, 44px); line-height: 1; letter-spacing: -0.018em; }
.hwdocs__pill {
  display: inline-flex;
  align-items: center;
  height: 28px;
  padding: 0 12px;
  border-radius: 4px;
  background: var(--ink);
  color: var(--bg);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  white-space: nowrap;
}
/* «On request» — на контуре 0.45 и цветом muted: faint не читается (2.5:1) */
.hwdocs__pill--out { background: transparent; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.45); color: var(--muted); }
.hwdocs__list { margin: 0; padding: 0; list-style: none; }
.hwdoc {
  box-sizing: border-box;
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  width: calc(100% + 24px);
  margin: 0 -12px;
  padding: clamp(12px, 0.70vw, 18px) 12px;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
  border-left: 2px solid transparent;
  color: var(--ink);
  text-decoration: none;
  transition: background 160ms ease-in-out, border-color 160ms ease-in-out;
}
.hwdoc:hover { background: rgba(var(--accent-rgb), 0.05); border-left-color: var(--accent); }
.hwdoc__no { font-family: var(--mono); font-size: 12px; letter-spacing: 0.08em; color: var(--faint); }
.hwdoc__what { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.hwdoc__title { font-size: clamp(16px, 0.82vw, 21px); }
.hwdoc__by { font-family: var(--mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.hwdoc__meta { font-family: var(--mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink); white-space: nowrap; }
.hwdoc__meta--out { color: var(--muted); }
.hwdocs__foot { margin-top: 18px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--faint); }

/* --- 6E Реестр одной таблицей -------------------------------------------------------- */
.hwreg { display: flex; flex-direction: column; gap: clamp(14px, 0.86vw, 22px); }
.hwreg__head { padding-bottom: clamp(12px, 0.70vw, 18px); }
.hwreg__title { font-family: var(--display); font-size: clamp(30px, 2.11vw, 54px); line-height: 1; letter-spacing: -0.02em; }
.hwreg__stats { padding-bottom: 10px; }
.hwreg__num { font-size: clamp(26px, 1.56vw, 40px); }
.hwreg__bar-wrap { padding-bottom: 14px; }
.hwreg__bar { display: flex; height: 12px; border-radius: 3px; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.18); }
.hwreg__sound { display: block; background: rgba(var(--ink-rgb), 0.45); }
.hwreg__marked { display: block; background: var(--accent); }
.hwreg__open { margin-bottom: 10px; padding: 0 clamp(16px, 1.02vw, 26px); }
.hwreg__table { display: flex; flex-direction: column; }
.hwreg__cols,
.hwreg__row,
.hwreg__foot {
  display: grid;
  grid-template-columns: clamp(40px, 2.50vw, 64px) clamp(90px, 5.00vw, 128px) minmax(0, clamp(120px, 8.20vw, 210px)) minmax(0, 1fr) minmax(0, clamp(120px, 7.42vw, 190px));
  gap: clamp(14px, 1.09vw, 28px);
  align-items: baseline;
  margin: 0;
}
.hwreg__cols {
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.28);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--faint);
}
.hwreg__rows { margin: 0; padding: 0; list-style: none; }
.hwreg__row {
  box-sizing: border-box;
  align-items: center;
  width: calc(100% + 24px);
  margin: 0 -12px;
  padding: clamp(12px, 0.70vw, 18px) 12px;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
  border-left: 2px solid transparent;
  transition: background 160ms ease-in-out;
}
.hwreg__row:hover { background: rgba(var(--accent-rgb), 0.05); }
.hwreg__row--fault { border-left-color: var(--accent); }
.hwreg__no { font-family: var(--mono); font-size: 12px; letter-spacing: 0.08em; color: var(--faint); }
.hwreg__side {
  display: inline-flex;
  align-items: center;
  height: 26px;
  padding: 0 11px;
  border-radius: 4px;
  background: var(--ink);
  color: var(--bg);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  justify-self: start;
}
.hwreg__side--out { background: transparent; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.28); color: var(--muted); }
.hwreg__label { font-family: var(--mono); font-size: clamp(12px, 0.51vw, 13px); letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink); }
.hwreg__value { font-size: clamp(16px, 0.82vw, 21px); font-weight: 300; line-height: 1.45; color: var(--muted); text-wrap: pretty; }
.hwreg__state {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
  text-align: right;
}
.hwreg__mark { width: 9px; height: 9px; flex: none; border-radius: 2px; background: rgba(var(--ink-rgb), 0.24); }
.hwreg__row--fault .hwreg__state { color: var(--accent); }
.hwreg__row--fault .hwreg__mark { background: var(--accent); }
.hwreg__foot {
  grid-template-columns: clamp(40px, 2.50vw, 64px) auto auto minmax(0, 1fr) auto;
  padding-top: 18px;
  border-top: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}
.hwreg__foot-red { text-align: right; color: var(--accent); }

/* --- 7E План на всю колонку ------------------------------------------------------------ */
.hwplan { display: flex; flex-direction: column; gap: clamp(12px, 0.70vw, 18px); }
.hwplan__head { grid-template-columns: auto minmax(0, 1fr) auto auto; gap: clamp(12px, 1.17vw, 30px); letter-spacing: 0.2em; }
.hwplan__pdf { color: var(--ink); text-decoration: none; }
.hwplan__pdf:hover { color: var(--accent); }
.hwplan__pdf .g4arrow { font-size: clamp(13px, 0.59vw, 15px); }
.hwplan .hdrule { gap: 14px; letter-spacing: 0.2em; }
.hwplan .hdrule__end { background: rgba(var(--ink-rgb), 0.45); }
.hwplan .hdplan__well { flex: none; min-height: clamp(300px, 35.16vw, 900px); }
.hwplan .hdplan__well--drawn { min-height: 0; aspect-ratio: 1536 / 768; }
.hwplan .hdplan__well .hdtick--plan { left: 22px; top: 22px; }
.hwplan .hdplan__well .hdtick--plan.hdtick--tr { left: auto; right: 22px; }
.hwplan .hdplan__well .hdtick--plan.hdtick--bl { top: auto; bottom: 22px; }
.hwplan .hdplan__well .hdtick--plan.hdtick--br { left: auto; right: 22px; top: auto; bottom: 22px; }
.hwkeys { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: clamp(12px, 0.78vw, 20px); margin: 0; padding: 0; list-style: none; }
.hwkey {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding-top: 14px;
  border-top: 2px solid rgba(var(--ink-rgb), 0.45);
  min-width: 0;
  transition: background 0.25s ease-in-out;
}
.hwkey--red { border-top-color: var(--accent); }
.hwkey--faint { border-top-color: rgba(var(--ink-rgb), 0.24); }
.hwkey__head { display: flex; align-items: center; gap: 10px; }
.hwkey__room { font-size: clamp(15px, 0.74vw, 19px); }
.hwkey__area { font-family: var(--display); font-size: clamp(22px, 1.25vw, 32px); line-height: 1; }
.hwkey.hvroom--lit,
.hwkey.hvroom--on { background: rgba(var(--accent-rgb), 0.05); box-shadow: none; }
.hwkey.hvroom--on { border-top-color: var(--accent); }
.hwkey.hvroom--on .hdroom__badge { background: var(--accent); box-shadow: none; color: var(--c-cream); }

/* --- 8F Счёт с выбором сбора ------------------------------------------------------------ */
.hwbill { display: flex; flex-direction: column; gap: clamp(14px, 0.78vw, 20px); }
.hwbill__head { padding-bottom: clamp(10px, 0.62vw, 16px); }
.hwbill__total { font-size: clamp(36px, 2.97vw, 76px); letter-spacing: -0.028em; }
.hwbill__stats { padding-bottom: 14px; }
.hwbill__class { padding-bottom: 18px; }
.hwbill__grades { grid-template-columns: repeat(7, minmax(0, 1fr)); }
.hwbill__grades .hdgrade { height: 36px; }
.hwbill__chart { display: flex; flex-direction: column; gap: 8px; }
.hwbill__bar { height: clamp(40px, 2.27vw, 58px); }
.hwbill__seg { border-top: 0; border-bottom: 0; border-left: 0; padding: 0; cursor: pointer; transition: box-shadow 180ms ease-in-out; }
.hwbill__seg--on { box-shadow: inset 0 0 0 3px var(--bg); }
.hwbill__seg:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.hwscale { height: 26px; }
.hwscale .hvscale__mark { height: 5px; }
.hwscale .hvscale__tick--big .hvscale__mark { height: 9px; }
.hwscale .hvscale__tick { gap: 5px; }
.hwscale .hvscale__label { letter-spacing: 0.14em; }
.hwscale__tick--0 { left: 0.0%; }
.hwscale__tick--1 { left: 12.5%; }
.hwscale__tick--2 { left: 25.0%; }
.hwscale__tick--3 { left: 37.5%; }
.hwscale__tick--4 { left: 50.0%; }
.hwscale__tick--5 { left: 62.5%; }
.hwscale__tick--6 { left: 75.0%; }
.hwscale__tick--7 { left: 87.5%; }
.hwscale__tick--8 { left: 100.0%; }
.hwscale__tick--start { transform: none; align-items: flex-start; }
.hwscale__tick--end { left: auto; right: 0; transform: none; align-items: flex-end; }
.hwbill__readout {
  display: grid;
  grid-template-columns: auto auto auto minmax(0, 1fr) auto;
  gap: clamp(12px, 1.17vw, 30px);
  align-items: baseline;
  margin: 0;
  padding: 16px 20px;
  border-radius: 8px;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
}
.hwbill__selno { color: var(--accent); }
.hwbill__sellabel,
.hwbill__selamount { font-family: var(--display); font-size: clamp(18px, 1.02vw, 26px); line-height: 1; letter-spacing: 0; text-transform: none; }
.hwbill__selamount { color: var(--accent); }
.hwbill__seldetail { font-family: var(--text); font-size: clamp(14px, 0.62vw, 16px); letter-spacing: 0; text-transform: none; color: var(--muted); }
.hwbill__selshare { color: var(--faint); text-align: right; }
.hwbill__cards { gap: clamp(12px, 0.78vw, 20px); }
.hwbill__card {
  box-sizing: border-box;
  align-items: flex-start;
  width: 100%;
  padding: 16px 14px 18px;
  border-right: 0;
  border-bottom: 0;
  border-left: 0;
  border-radius: 0 0 8px 8px;
  text-align: left;
  cursor: pointer;
  transition: background 180ms ease-in-out, color 180ms ease-in-out;
}
.hwbill__card:hover { background-color: rgba(var(--accent-rgb), 0.05) !important; }
.hwbill__card:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.hwbill__cardhead { display: flex; align-items: center; justify-content: space-between; gap: 10px; width: 100%; }
.hwbill__no { font-family: var(--mono); font-size: 12px; letter-spacing: 0.1em; color: var(--faint); }
.hwbill__amount { font-size: clamp(22px, 1.41vw, 36px); }
.hwbill__monthly { color: var(--muted); }
.hwbill__card--on,
.hwbill__card--on:hover { background-color: var(--ink) !important; }
.hwbill__card--on .hvbill__label,
.hwbill__card--on .hwbill__amount { color: var(--bg); }
.hwbill__card--on .hwbill__no,
.hwbill__card--on .hvbill__basis { color: rgba(var(--bg-rgb), 0.65); }
.hwbill__card--on .hwbill__monthly { color: rgba(var(--bg-rgb), 0.85); }
.hwbill__foot { gap: clamp(12px, 1.02vw, 26px); padding-top: 18px; border-top-color: rgba(var(--ink-rgb), 0.22); }

/* --- 10C История ценой в четыре засечки -------------------------------------------------- */
.hwph { display: flex; flex-direction: column; gap: clamp(16px, 1.02vw, 26px); }
.hwph__head { grid-template-columns: auto minmax(0, 1fr) auto; gap: clamp(12px, 1.17vw, 30px); padding-bottom: clamp(10px, 0.62vw, 16px); }
.hwph__line { position: relative; height: clamp(170px, 8.20vw, 210px); padding: 0 20px; }
.hwph__rule { position: absolute; left: 20px; right: 20px; top: clamp(92px, 4.38vw, 112px); height: 2px; background: rgba(var(--ink-rgb), 0.26); }
.hwph__tick {
  position: absolute;
  top: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  transform: translateX(-50%);
  text-align: center;
}
.hwph__tick--1 { left: 33.333%; }
.hwph__tick--2 { left: 66.667%; }
.hwph__tick--start { left: 20px; transform: none; align-items: flex-start; text-align: left; }
.hwph__tick--end { left: auto; right: 20px; transform: none; align-items: flex-end; text-align: right; }
.hwph__asking { font-family: var(--display); font-size: clamp(24px, 1.56vw, 40px); line-height: 1; letter-spacing: -0.018em; }
.hwph__tick--moved .hwph__asking { color: var(--accent); }
.hwph__event { font-family: var(--mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); }
.hwph__stem { width: 1px; height: 26px; background: rgba(var(--ink-rgb), 0.4); }
.hwph__dot { width: 9px; height: 9px; border-radius: 50%; background: var(--ink); box-shadow: 0 0 0 4px var(--bg); }
.hwph__tick--moved .hwph__dot { width: 12px; height: 12px; background: var(--accent); }
.hwph__date { font-family: var(--mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--faint); }
.hwph__compare {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(16px, 1.56vw, 40px);
  margin: 0;
  padding-top: 14px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.2);
}
.hwph__cmp { display: flex; flex-direction: column; gap: 8px; }
.hwph__cmpval { font-family: var(--display); font-size: clamp(28px, 2.03vw, 52px); line-height: 1; }
.hwph__cmpval--red { color: var(--accent); }

/* --- 14B Что нужно, чтобы купить ------------------------------------------------------ */
.hwwt-sec { display: flex; flex-direction: column; gap: clamp(14px, 0.94vw, 24px); }
.hwwts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(14px, 0.94vw, 24px); margin: 0; padding: 0; list-style: none; }
.hwwt {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: clamp(18px, 1.09vw, 28px);
  border-radius: 12px;
  background: var(--sheet);
  border-top: 2px solid rgba(var(--ink-rgb), 0.3);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
  transition: box-shadow 200ms ease-in-out;
}
.hwwt:hover { box-shadow: inset 0 0 0 2px rgba(var(--ink-rgb), 0.5); }
.hwwt--red { border-top-color: var(--accent); }
.hwwt__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 16px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.2); }
.hwwt__seal { width: 36px; height: 36px; }
.hwwt--red .hwwt__seal { background: var(--accent); box-shadow: none; color: var(--c-cream); }
.hwwt__name { font-family: var(--display); font-size: clamp(22px, 1.33vw, 34px); line-height: 1.1; letter-spacing: -0.015em; }
.hwwt__money { display: flex; flex-direction: column; gap: 6px; margin-top: auto; padding-top: 16px; border-top: 1px solid rgba(var(--ink-rgb), 0.16); }
.hwwt__sum { font-family: var(--display); font-size: clamp(24px, 1.48vw, 38px); line-height: 1; color: var(--ink); }
.hwwt__sum--red { color: var(--accent); }
.hwwt__sum--none { color: var(--faint); }
.hwwt__link { display: inline-flex; align-items: center; gap: 10px; color: var(--ink); text-decoration: none; }
.hwwt__link:hover { color: var(--accent); }

/* --- Боковая: липкая колонка из четырёх плит ------------------------------------------ */
.hwside {
  position: sticky;
  top: 20px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  min-width: 0;
}
/* Рельс тушью: ночная плита, сетка 60px, золотые уголки */
.hwrail {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: clamp(20px, 1.25vw, 32px);
  border-radius: 14px;
  background: var(--c-night);
  color: var(--c-cream);
  overflow: hidden;
}
.hwrail__grid {
  position: absolute;
  inset: 0;
  background-image:
    repeating-linear-gradient(0deg, rgba(var(--c-cream-rgb), 0.05) 0 1px, transparent 1px 60px),
    repeating-linear-gradient(90deg, rgba(var(--c-cream-rgb), 0.05) 0 1px, transparent 1px 60px);
}
.hwtick { position: absolute; width: 20px; height: 20px; border-color: rgba(var(--c-gold-rgb), 0.5); pointer-events: none; }
.hwtick--tl { left: 16px; top: 16px; border-left-style: solid; border-left-width: 1px; border-top-style: solid; border-top-width: 1px; }
.hwtick--tr { right: 16px; top: 16px; border-right-style: solid; border-right-width: 1px; border-top-style: solid; border-top-width: 1px; }
.hwtick--bl { left: 16px; bottom: 16px; border-left-style: solid; border-left-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; }
.hwtick--br { right: 16px; bottom: 16px; border-right-style: solid; border-right-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; }
.hwrail > :not(.hwtick):not(.hwrail__grid) { position: relative; }
.hwrail__top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin: 0;
  padding-bottom: 18px;
  border-bottom: 2px solid rgba(var(--c-cream-rgb), 0.45);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}
.hwrail__ref { color: var(--gold); }
.hwrail__sheet { color: rgba(var(--c-cream-rgb), 0.55); }
.hwrail__rule { margin-top: 22px; color: rgba(var(--c-cream-rgb), 0.45); }
.hwrail__rule .hdrule__end { height: 8px; background: rgba(var(--c-cream-rgb), 0.4); }
.hwrail__rule .hdrule__line { background: rgba(var(--c-cream-rgb), 0.22); }
.hwrail__price { margin: 12px 0 0; font-family: var(--display); font-size: clamp(40px, 3.05vw, 78px); line-height: 1; letter-spacing: -0.028em; color: var(--gold); }
.hwrail__unit {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin: 12px 0 0;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(var(--c-cream-rgb), 0.6);
}
.hwrail__median { color: rgba(var(--c-cream-rgb), 0.4); text-align: right; }
.hwrail__measure { margin: 22px 0 0; font-family: var(--display); font-size: clamp(20px, 1.17vw, 30px); line-height: 1.25; }
.hwrail__verdict {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 18px;
  align-items: center;
  margin: 24px 0 0;
  padding: 20px;
  border-radius: 10px;
  background: rgba(var(--c-cream-rgb), 0.06);
  box-shadow: inset 0 0 0 1px rgba(var(--c-gold-rgb), 0.3);
}
.hwrail__grade {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(60px, 2.97vw, 76px);
  height: clamp(60px, 2.97vw, 76px);
  border-radius: 8px;
  background: var(--gold);
  color: var(--c-night);
  font-family: var(--display);
  font-size: clamp(30px, 1.72vw, 44px);
  line-height: 1;
}
.hwrail__verdicttext { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.hwrail__factlabel { font-family: var(--mono); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: rgba(var(--c-cream-rgb), 0.5); }
.hwrail__word { font-size: clamp(15px, 0.70vw, 18px); font-weight: 300; }
.hwrail__faults { font-family: var(--mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gold); }
.hwrail__facts { display: flex; flex-direction: column; margin: 0; }
.hwrail__fact {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 16px;
  align-items: baseline;
  padding: 14px 0;
  border-bottom: 1px solid rgba(var(--c-cream-rgb), 0.14);
}
.hwrail__factval { font-family: var(--mono); font-size: clamp(12px, 0.59vw, 15px); letter-spacing: 0.06em; color: var(--c-cream); text-align: right; }
.hwrail__factval--gold { color: var(--gold); }
.hwrail__acts { display: flex; flex-direction: column; gap: 12px; margin: 26px 0 0; }
.hwrail__btn {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  height: clamp(52px, 2.66vw, 68px);
  padding: 0 clamp(18px, 1.02vw, 26px);
  border-radius: 8px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  text-decoration: none;
  transition: background 200ms ease-in-out, color 200ms ease-in-out;
}
.hwrail__btn--gold { background: var(--gold); color: var(--c-night); }
.hwrail__btn--gold:hover { background: var(--c-cream); color: var(--c-night); }
.hwrail__btn--ghost { box-shadow: inset 0 0 0 1px rgba(var(--c-cream-rgb), 0.35); color: var(--c-cream); }
.hwrail__btn--ghost:hover { background: rgba(var(--c-cream-rgb), 0.1); color: var(--c-cream); }
.hwrail__advisor {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  margin: 26px 0 0;
  padding-top: 20px;
  border-top: 1px solid rgba(var(--c-cream-rgb), 0.18);
}
.hwrail__seal {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 58px;
  height: 58px;
  border-radius: 50%;
  box-shadow: inset 0 0 0 1px rgba(var(--c-gold-rgb), 0.6), inset 0 0 0 4px rgba(var(--c-gold-rgb), 0.14);
  font-family: var(--mono);
  font-size: clamp(12px, 0.55vw, 14px);
  letter-spacing: 0.08em;
  color: var(--gold);
}
/* Печать советника — её портрет в золотом кольце, когда снимок есть */
.hwrail__seal--photo { position: relative; overflow: hidden; }
.hwrail__face { position: absolute; inset: 3px; width: calc(100% - 6px); height: calc(100% - 6px); border-radius: 50%; object-fit: cover; object-position: 50% 25%; }
.hwrail__who { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.hwrail__name { font-family: var(--display); font-size: clamp(18px, 0.94vw, 24px); line-height: 1.1; }
.hwrail__phone { font-family: var(--mono); font-size: 12px; letter-spacing: 0.08em; color: rgba(var(--c-cream-rgb), 0.6); text-decoration: none; }
.hwrail__phone:hover { color: var(--gold); }
.hwrail__walked { font-family: var(--mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; text-align: right; color: rgba(var(--c-cream-rgb), 0.45); }

/* Улица — начерченная плитка 340 */
.hwstreet {
  position: relative;
  height: 340px;
  border-radius: 12px;
  background: var(--bg);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  overflow: hidden;
}
.hwstreet__grid {
  position: absolute;
  inset: 0;
  background-image:
    repeating-linear-gradient(0deg, rgba(var(--ink-rgb), 0.06) 0 1px, transparent 1px 60px),
    repeating-linear-gradient(90deg, rgba(var(--ink-rgb), 0.06) 0 1px, transparent 1px 60px);
}
.hwstreet__river { position: absolute; left: -6%; top: 62%; width: 112%; height: 40px; transform: rotate(-7deg); background: rgba(var(--ink-rgb), 0.08); }
.hwstreet__rivername { position: absolute; left: 6%; top: 70%; transform: rotate(-7deg); font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--faint); }
.hwstreet__ring { position: absolute; left: 44%; top: 42%; width: 180px; height: 180px; transform: translate(-50%, -50%); border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.28); }
.hwstreet__home,
.hwstreet__pin {
  position: absolute;
  transform: translate(-50%, -50%);
  display: inline-flex;
  align-items: center;
  height: 28px;
  padding: 0 11px;
  border-radius: 999px;
  background: rgba(var(--bg-rgb), 0.96);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink);
  white-space: nowrap;
}
.hwstreet__home { left: 44%; top: 42%; z-index: 1; height: 34px; padding: 0 14px; background: var(--accent); box-shadow: none; color: var(--c-cream); letter-spacing: 0.16em; }
.hwsb-x20 { left: 20%; }
.hwsb-x22 { left: 22%; }
.hwsb-x70 { left: 70%; }
.hwsb-x74 { left: 74%; }
.hwsb-y24 { top: 24%; }
.hwsb-y30 { top: 30%; }
.hwsb-y62 { top: 62%; }
.hwsb-y76 { top: 76%; }
/* Настоящая карта поверх начерченной плитки — как на большой плите улицы */
.hwstreet__live { position: absolute; inset: 0; z-index: 1; isolation: isolate; background: transparent; }
.hwstreet--live .hwstreet__grid,
.hwstreet--live .hwstreet__river,
.hwstreet--live .hwstreet__rivername,
.hwstreet--live .hwstreet__ring,
.hwstreet--live > .hwstreet__home,
.hwstreet--live > .hwstreet__pin { display: none !important; }
.hwstreet--live .hwstreet__scale { display: none; }
.hwstreet__label,
.hwstreet__nearest { z-index: 2; }
.hwstreet--live .hwstreet__label { padding: 4px 8px; border-radius: 4px; background: rgba(var(--bg-rgb), 0.92); }
.hwstreet__live .leaflet-tile-pane { filter: grayscale(0.55) sepia(0.28) saturate(0.6) contrast(0.92) brightness(1.04); }
[data-theme="dark"] .hwstreet__live .leaflet-tile-pane { filter: invert(1) hue-rotate(180deg) grayscale(0.7) brightness(0.8) contrast(0.9); }
.hwstreet__live .leaflet-marker-icon { background: transparent; border: 0; }
.hwstreet__live .hwstreet__home,
.hwstreet__live .hwstreet__pin { position: static; transform: translate(-50%, -50%); }
.hwstreet__live .hwstreet__pin { height: 24px; padding: 0 8px; letter-spacing: 0.08em; }
.hwstreet__live .hwstreet-live--home { z-index: 600 !important; }
.hwstreet__live .leaflet-control-attribution { font-family: var(--mono); font-size: 10px; letter-spacing: 0.04em; background: rgba(var(--bg-rgb), 0.85); color: var(--muted); }
.hwstreet__live .leaflet-control-attribution a { color: var(--muted); }
.hwstreet__live .hdring-live { fill: rgba(var(--accent-rgb), 0.05); stroke: rgba(var(--accent-rgb), 0.7); stroke-width: 1.2; stroke-dasharray: 6 5; }
.hwstreet__label { position: absolute; left: 18px; top: 16px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--muted); }
.hwstreet__nearest {
  position: absolute;
  left: 18px;
  bottom: 16px;
  display: inline-flex;
  align-items: center;
  height: 32px;
  padding: 0 12px;
  border-radius: 5px;
  background: rgba(var(--bg-rgb), 0.96);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink);
}
.hwstreet__scale { position: absolute; right: 18px; bottom: 16px; display: flex; align-items: center; gap: 10px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); }
.hwstreet__bar { width: 60px; height: 5px; border-color: var(--muted); border-left-style: solid; border-left-width: 1px; border-right-style: solid; border-right-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; }

/* Докет просмотра в боковой */
.hwsb__docket { padding: clamp(18px, 1.09vw, 28px) clamp(18px, 1.17vw, 30px); border-radius: 12px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26); }
.hwsb__top { padding-bottom: 14px; }
.hwsb__pick { padding: 20px 0 14px; gap: 0; }
.hwsb__pick--hours { padding: 0 0 20px; }
.hwsb__days,
.hwmg__chips { gap: 10px; }
.hwsb__hours { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.hwsb__day { height: clamp(64px, 3.05vw, 78px); gap: 4px; }
.hwsb__date { font-size: clamp(20px, 1.02vw, 26px); }
.hwsb__hour { height: 54px; }
.hwsb__hour .hdchip__time { font-size: clamp(12px, 0.51vw, 13px); }
.hwsb__req {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 16px;
  align-items: center;
  margin: 0;
  padding-top: 18px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.2);
}
.hwsb__seal {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  border-radius: 50%;
  box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.5), inset 0 0 0 4px rgba(var(--accent-rgb), 0.12);
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.08em;
  color: var(--accent);
}
.hwsb__picked { font-size: clamp(18px, 0.94vw, 24px); line-height: 1.15; }
.hwsb__submit { height: clamp(52px, 2.58vw, 66px); margin-top: 18px; padding: 0 clamp(16px, 0.94vw, 24px); }
.hwsb__confirm { margin-top: 12px; }

/* Банк */
.hwmg { padding: clamp(18px, 1.09vw, 28px) clamp(18px, 1.17vw, 30px); border-radius: 12px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26); }
.hwmg .hdtick--br { right: 14px; bottom: 14px; width: 18px; height: 18px; border-color: rgba(var(--ink-rgb), 0.32); }
.hwmg__pick { padding: 20px 0 0; gap: 10px; }
.hwmg__chip { height: 52px; }
.hwmg__chip .hdchip__time { font-size: clamp(12px, 0.51vw, 13px); }
.hwmg__monthly { display: flex; flex-direction: column; gap: 6px; margin: 22px 0 0; padding-top: 18px; border-top: 1px solid rgba(var(--ink-rgb), 0.2); }
.hwmg__label { font-family: var(--mono); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--faint); }
.hwmg__pay { font-family: var(--display); font-size: clamp(34px, 2.27vw, 58px); line-height: 1; letter-spacing: -0.025em; color: var(--accent); }
.hwmg__two { display: grid; grid-template-columns: 1fr 1fr; margin: 18px 0 0; border-top: 1px solid rgba(var(--ink-rgb), 0.16); border-bottom: 1px solid rgba(var(--ink-rgb), 0.16); }
.hwmg__cell { display: flex; flex-direction: column; gap: 5px; padding: 16px 16px 16px 0; border-right: 1px solid rgba(var(--ink-rgb), 0.16); min-width: 0; }
.hwmg__cell:last-child { padding: 16px 0 16px 16px; border-right: 0; }
.hwmg__cellval { font-family: var(--display); font-size: clamp(18px, 1.02vw, 26px); line-height: 1; }
.hwmg__link { height: clamp(48px, 2.34vw, 60px); margin-top: 18px; padding: 0 clamp(16px, 0.86vw, 22px); font-size: 12px; }
.hwmg__basis { margin-top: 12px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--faint); }


/* ==========================================================================
   Home detail v4 — рельс миниатюр, срочность, разрез дома, конторы, гроссбухи,
   рельс покупки, ветка вопросов, докет с портретом (hx*)
   ========================================================================== */
.hxpage .hdhead { margin-bottom: 15px; }

/* --- 2K Рельс миниатюр ----------------------------------------------------------- */
.hxplates { display: flex; flex-direction: column; gap: clamp(14px, 0.78vw, 20px); margin-top: 0; }
.hxplates__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 24px;
  margin: 0;
  padding-bottom: clamp(10px, 0.62vw, 16px);
  border-bottom: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.hxplates__lead { display: flex; align-items: baseline; gap: 20px; flex-wrap: wrap; }
.hxplates__note { color: var(--faint); }
.hxplates__counter { color: var(--ink); white-space: nowrap; }
.hxplates__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 560px); gap: clamp(20px, 1.56vw, 40px); align-items: start; }
.hxviewer__well { min-height: clamp(260px, 34.38vw, 880px); }
.hxrail { display: flex; flex-direction: column; gap: 14px; padding: 0; border-radius: 0; background: transparent; box-shadow: none; overflow: visible; }
.hxrail__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  margin: 0;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.3);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}
.hxrail__kicker { color: var(--accent); }
.hxrail__scroll { color: var(--faint); }
.hxrail__list {
  display: flex;
  flex-direction: column;
  gap: 10px;
  height: clamp(420px, 33.75vw, 864px);
  margin: 0;
  padding: 0 10px 0 0;
  list-style: none;
  overflow-y: auto;
  scroll-snap-type: y proximity;
  scrollbar-width: thin;
}
.hxrail__row {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  padding: 10px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
  scroll-snap-align: start;
  transition: background 160ms ease-in-out;
}
.hxrail__row:hover { background: rgba(var(--accent-rgb), 0.04); }
.hxrail__row--on { background: rgba(var(--accent-rgb), 0.07); }
.hxrail__row:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.hxrail__frame {
  position: relative;
  display: block;
  height: clamp(160px, 11.72vw, 300px);
  border-radius: 8px;
  background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.1) 0 2px, transparent 2px 14px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2);
  overflow: hidden;
  transition: box-shadow 160ms ease-in-out;
}
.hxrail__row--on .hxrail__frame { box-shadow: inset 0 0 0 2px var(--accent); }
.hxrail__frame .hdph { font-size: 12px; letter-spacing: 0.2em; }
.hxrail__no {
  position: absolute;
  left: 12px;
  top: 10px;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  height: 26px;
  padding: 0 10px;
  border-radius: 4px;
  background: rgba(var(--bg-rgb), 0.94);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  color: var(--ink);
}
.hxrail__cap {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted);
}
.hxrail__row--on .hxrail__caption { color: var(--accent); }
.hxrail__size { color: var(--faint); }

/* --- 4G Обследование: полоса «по срокам» и три колонки ---------------------------- */
.hxsurvey { display: flex; flex-direction: column; gap: clamp(16px, 1.09vw, 28px); }
.hxsurvey__head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: clamp(20px, 1.56vw, 40px);
  align-items: end;
  padding-bottom: clamp(14px, 0.86vw, 22px);
  border-bottom: 2px solid var(--ink);
}
.hxsurvey__grade { display: flex; align-items: flex-end; gap: 20px; }
.hxsurvey__plate {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: clamp(72px, 3.75vw, 96px);
  height: clamp(72px, 3.75vw, 96px);
  border-radius: 12px;
  background: var(--ink);
  color: var(--bg);
  font-family: var(--display);
  font-size: clamp(40px, 2.27vw, 58px);
  line-height: 1;
}
.hxsurvey__words { display: flex; flex-direction: column; gap: 8px; }
.hxsurvey__word { font-family: var(--display); font-size: clamp(26px, 1.72vw, 44px); line-height: 1; letter-spacing: -0.02em; }
.hxsurvey__split { font-family: var(--mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); }
.hxband { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.hxband__rule { letter-spacing: 0.18em; }
.hxband__rule .hdrule__end { height: 8px; }
.hxband__bar { display: flex; height: clamp(48px, 2.73vw, 70px); border-radius: 8px; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); }
/* Доли полосы равны деньгам — без min-width, малая доля остаётся малой */
.hxband__seg { display: flex; align-items: center; justify-content: center; min-width: 0; padding: 0; overflow: hidden; border-right: 1px solid rgba(var(--c-paper-rgb), 0.55); }
.hxband__seg:last-child { border-right: 0; }
.hxband__seg--red { background: var(--accent); color: var(--c-cream); }
.hxband__seg--ink { background: var(--ink); color: var(--bg); }
.hxband__seg--faint { background: rgba(var(--ink-rgb), 0.22); color: var(--ink); }
.hxw-41-2 { flex: 41.2 1 0; }
.hxw-49-0 { flex: 49.0 1 0; }
.hxw-9-8 { flex: 9.8 1 0; }
.hxband__value { font-family: var(--mono); font-size: clamp(12px, 0.59vw, 15px); letter-spacing: 0.06em; white-space: nowrap; }
.hxband__keys { display: flex; flex-wrap: wrap; gap: 20px; margin-top: 10px; }
.hxband__key { display: inline-flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); }
.hxband__dot { width: 9px; height: 9px; flex: none; border-radius: 2px; }
.hxsurvey__repairs { display: flex; flex-direction: column; gap: 6px; align-items: flex-end; margin: 0; text-align: right; }
.hxsurvey__sum { font-family: var(--display); font-size: clamp(30px, 2.11vw, 54px); line-height: 1; letter-spacing: -0.025em; color: var(--accent); }
.hxbuckets { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(14px, 1.02vw, 26px); align-items: start; }
.hxbucket {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: clamp(18px, 1.17vw, 30px) clamp(16px, 1.09vw, 28px) clamp(16px, 1.09vw, 28px);
  border-radius: 14px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.18);
}
.hxbucket--red { background: rgba(var(--accent-rgb), 0.05); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.3); }
.hxbucket__head { display: flex; flex-direction: column; gap: 12px; margin: 0; padding-bottom: 18px; border-bottom: 2px solid var(--ink); }
.hxbucket--red .hxbucket__head { border-bottom-color: var(--accent); }
.hxbucket--faint .hxbucket__head { border-bottom-color: var(--faint); }
.hxbucket__title { display: flex; align-items: center; gap: 14px; }
.hxbucket__seal { width: 40px; height: 40px; }
.hxbucket--red .hxbucket__seal { background: var(--accent); box-shadow: none; color: var(--c-cream); }
.hxbucket--faint .hxbucket__seal { color: var(--faint); }
.hxbucket__name { font-family: var(--display); font-size: clamp(22px, 1.17vw, 30px); line-height: 1; letter-spacing: -0.015em; }
.hxbucket--red .hxbucket__name,
.hxbucket--red .hxbucket__money { color: var(--accent); }
.hxbucket--faint .hxbucket__name,
.hxbucket--faint .hxbucket__money { color: var(--faint); }
.hxbucket__row { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
.hxbucket__when { display: flex; flex-direction: column; gap: 4px; }
.hxbucket__date { font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); }
.hxbucket__note,
.hxbucket__share { font-family: var(--mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--faint); }
.hxbucket__sum { display: flex; flex-direction: column; gap: 2px; align-items: flex-end; text-align: right; }
.hxbucket__money { font-family: var(--display); font-size: clamp(22px, 1.25vw, 32px); line-height: 1; }
.hxbucket__list { display: flex; flex-direction: column; gap: 14px; margin: 0; padding: 0; list-style: none; }
.hxfault {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: clamp(16px, 0.94vw, 24px);
  border-radius: 12px;
  background: var(--sheet);
  border-left: 3px solid var(--ink);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
  transition: box-shadow 200ms ease-in-out;
}
.hxfault:hover { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24), 0 16px 34px rgba(var(--ink-rgb), 0.12); }
.hxfault--red { border-left-color: var(--accent); }
.hxfault--faint { border-left-color: var(--faint); }
.hxfault__meta {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}
.hxfault__est { font-size: clamp(12px, 0.70vw, 18px); letter-spacing: 0.04em; text-transform: none; color: var(--ink); white-space: nowrap; }
.hxfault--red .hxfault__est { color: var(--accent); }
.hxfault__est--none { color: var(--faint); }
.hxfault__name { font-size: clamp(17px, 0.90vw, 23px); color: var(--ink); }
.hxfault__detail { font-size: clamp(14px, 0.66vw, 17px); font-weight: 300; line-height: 1.5; color: var(--muted); text-wrap: pretty; }
.hxfault__foot { display: flex; flex-direction: column; gap: 7px; padding-top: 12px; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
.hxfault__track { display: block; height: 5px; border-radius: 3px; background: rgba(var(--ink-rgb), 0.1); overflow: hidden; }
.hxfault__fill { display: block; height: 100%; background: var(--ink); }
.hxfault--red .hxfault__fill { background: var(--accent); }
.hxfault--faint .hxfault__fill { background: var(--faint); }
.hxfault__line { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--faint); }
.hxsurvey__foot { gap: 20px; letter-spacing: 0.18em; }
.hxsurvey__pdf { color: var(--ink); text-decoration: none; }
.hxsurvey__pdf:hover { color: var(--accent); }

/* --- 13C Здание разрезом: рейка, фасад, запись дома, потрачено ------------------------ */
.hxbd { display: flex; flex-direction: column; gap: clamp(14px, 0.86vw, 22px); }
.hxbd__head { gap: clamp(12px, 1.02vw, 26px); }
.hxbd__grid { display: grid; grid-template-columns: clamp(100px, 5.86vw, 150px) minmax(0, 1fr) minmax(0, 620px); gap: clamp(14px, 1.02vw, 26px); align-items: stretch; }
.hxstaff { display: flex; flex-direction: column; gap: 10px; }
/* Рейка повторяет вертикаль фасада (строка подписи, колодец, строка подвала) — отметки совпадают с этажами */
.hxstaff__label,
.hxfacade .hdrule,
.hxstaff__foot,
.hxfacade__foot { height: 16px; line-height: 16px; white-space: nowrap; }
.hxstaff__label { text-align: right; font-family: var(--mono); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--faint); }
.hxstaff__scale { position: relative; flex: 1; min-height: clamp(420px, 32.03vw, 820px); }
.hxstaff__tick { position: absolute; right: 0; display: flex; align-items: center; gap: 10px; transform: translateY(-50%); }
.hxstaff__tick--0 { top: 0.0%; }
.hxstaff__tick--1 { top: 13.91%; }
.hxstaff__tick--2 { top: 27.15%; }
.hxstaff__tick--3 { top: 40.4%; }
.hxstaff__tick--4 { top: 54.7%; }
.hxstaff__tick--5 { top: 67.95%; }
.hxstaff__tick--6 { top: 82.78%; }
.hxstaff__tick--7 { top: 100.0%; }
.hxstaff__mm { font-family: var(--mono); font-size: 12px; letter-spacing: 0.1em; text-align: right; color: var(--muted); white-space: nowrap; }
.hxstaff__mark { width: 14px; height: 1px; background: rgba(var(--ink-rgb), 0.4); }
.hxstaff__foot { font-family: var(--mono); font-size: 12px; color: transparent; }
.hxfacade { display: flex; flex-direction: column; gap: 10px; margin: 0; min-width: 0; }
.hxfacade .hdrule { gap: 14px; letter-spacing: 0.2em; }
.hxfacade__well {
  position: relative;
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: clamp(420px, 32.03vw, 820px);
  border-radius: 12px;
  background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.1) 0 2px, transparent 2px 16px);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.28);
  overflow: hidden;
}
.hdtick--facade { width: 22px; height: 22px; left: 16px; top: 14px; border-color: rgba(var(--ink-rgb), 0.45); }
.hdtick--facade.hdtick--tr { left: auto; right: 16px; }
.hdtick--facade.hdtick--bl { top: auto; bottom: 14px; }
.hdtick--facade.hdtick--br { left: auto; right: 16px; top: auto; bottom: 14px; }
.hxstorey {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr) auto;
  gap: 18px;
  align-items: center;
  min-height: 0;
  padding: 0 22px;
  background: rgba(var(--c-paper-rgb), 0.34);
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.22);
}
.hxstorey:last-child { border-bottom: 0; }
.hxflex-1 { flex: 1 1 0; }
.hxflex-1-05 { flex: 1.05 1 0; }
.hxflex-1-08 { flex: 1.08 1 0; }
.hxflex-1-12 { flex: 1.12 1 0; }
.hxflex-1-3 { flex: 1.3 1 0; }
.hxstorey--here { background: rgba(var(--accent-rgb), 0.92); color: var(--c-cream); }
.hxstorey__level { font-family: var(--mono); font-size: 12px; letter-spacing: 0.14em; color: var(--faint); }
.hxstorey__what { display: flex; align-items: baseline; gap: 16px; min-width: 0; }
.hxstorey__name { font-family: var(--display); font-size: clamp(20px, 1.17vw, 30px); line-height: 1; letter-spacing: -0.015em; }
.hxstorey__use { font-family: var(--mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.hxstorey__meta { font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--faint); text-align: right; }
.hxstorey--here .hxstorey__level { color: rgba(var(--c-cream-rgb), 0.72); }
.hxstorey--here .hxstorey__name,
.hxstorey--here .hxstorey__meta { color: var(--c-cream); }
.hxstorey--here .hxstorey__use { color: rgba(var(--c-cream-rgb), 0.86); }
.hxfacade__foot { display: flex; align-items: center; gap: 14px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--faint); }
.hxbd__side { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.hxrecord { padding: clamp(20px, 1.25vw, 32px); overflow: visible; }
.hxrecord__top { display: flex; flex-direction: column; gap: 8px; margin: 0; padding-bottom: 18px; border-bottom: 2px solid var(--ink); }
.hxrecord__title { font-family: var(--display); font-size: clamp(26px, 1.56vw, 40px); line-height: 1; letter-spacing: -0.018em; }
.hxrecord__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--faint); }
.hxrecord__rows { display: flex; flex-direction: column; margin: 0; }
.hxrecord__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; align-items: baseline; padding: 14px 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.hxrecord__label { font-family: var(--mono); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--faint); }
.hxrecord__value { font-family: var(--mono); font-size: clamp(12px, 0.59vw, 15px); letter-spacing: 0.06em; text-align: right; color: var(--ink); }
.hxrecord__value--red { color: var(--accent); }
.hxtanti { display: flex; flex-direction: column; gap: 10px; margin: 22px 0 0; }
.hxtanti__line { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.hxtanti__pct { font-family: var(--mono); font-size: clamp(12px, 0.66vw, 17px); letter-spacing: 0.04em; color: var(--accent); }
.hxtanti__track { display: block; height: 8px; border-radius: 4px; background: rgba(var(--ink-rgb), 0.12); overflow: hidden; }
.hxtanti__fill { display: block; width: 4.12%; height: 100%; background: var(--accent); }
.hxtanti__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--faint); }
.hxspent {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: clamp(18px, 1.17vw, 30px) clamp(18px, 1.25vw, 32px);
  border-radius: 14px;
  background: var(--c-ink-fixed);
  color: var(--c-cream);
}
.hxspent__top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin: 0;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(var(--c-cream-rgb), 0.2);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}
.hxspent__kicker { color: var(--gold); }
.hxspent__total { font-size: clamp(12px, 0.78vw, 20px); letter-spacing: 0.04em; }
.hxspent__bar { display: flex; height: 12px; border-radius: 6px; overflow: hidden; background: rgba(var(--c-cream-rgb), 0.14); }
.hxspent__seg { display: block; height: 100%; }
.hxspent__seg--ink { background: var(--c-cream); }
.hxspent__seg--red { background: var(--accent); }
.hxspent__keys { display: flex; flex-wrap: wrap; gap: 22px; margin: 0; }
.hxspent__key { display: inline-flex; align-items: center; gap: 9px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(var(--c-cream-rgb), 0.76); }
.hxspent__dot { width: 9px; height: 9px; flex: none; border-radius: 2px; }
.hxspent__share {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin: 0;
  padding-top: 14px;
  border-top: 1px solid rgba(var(--c-cream-rgb), 0.16);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: rgba(var(--c-cream-rgb), 0.6);
}
.hxspent__mine { font-size: clamp(12px, 0.78vw, 20px); letter-spacing: 0.04em; color: var(--gold); }
.hxspent__btn { height: clamp(50px, 2.50vw, 64px); margin-top: 6px; padding: 0 clamp(16px, 0.94vw, 24px); }

/* --- 15G Документы по конторам ---------------------------------------------------------- */
.hxdocs { display: flex; flex-direction: column; gap: clamp(16px, 1.02vw, 26px); }
.hxdocs__head { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: clamp(16px, 1.33vw, 34px); align-items: end; padding-bottom: clamp(14px, 0.78vw, 20px); border-bottom: 2px solid var(--ink); }
.hxdocs__lead { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.hxdocs__title { font-family: var(--display); font-size: clamp(30px, 2.19vw, 56px); line-height: 1; letter-spacing: -0.022em; }
.hxdocs__foot { font-size: clamp(15px, 0.74vw, 19px); font-weight: 300; color: var(--muted); text-wrap: pretty; }
.hxdocs__count { display: flex; flex-direction: column; gap: 6px; align-items: flex-end; margin: 0; text-align: right; }
.hxdocs__word { font-family: var(--display); font-size: clamp(28px, 1.88vw, 48px); line-height: 1; letter-spacing: -0.025em; }
.hxdocs__all { height: clamp(48px, 2.34vw, 60px); padding: 0 clamp(16px, 0.94vw, 24px); }
.hxcustody { display: flex; flex-direction: column; gap: 10px; }
.hxcustody__bar { display: flex; height: clamp(48px, 2.58vw, 66px); border-radius: 8px; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); }
.hxcustody__seg { display: flex; flex-direction: column; justify-content: center; gap: 5px; min-width: 0; padding: 0 16px; overflow: hidden; border-right: 1px solid rgba(var(--c-paper-rgb), 0.55); }
.hxcustody__seg:last-child { border-right: 0; }
.hxcustody__seg--red { background: var(--accent); color: var(--c-cream); }
.hxcustody__seg--ink { background: var(--ink); color: var(--bg); }
.hxcustody__seg--faint { background: rgba(var(--ink-rgb), 0.16); color: var(--ink); }
.hxcustody__name { font-family: var(--mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hxcustody__value { font-family: var(--mono); font-size: 12px; letter-spacing: 0.1em; opacity: 0.8; white-space: nowrap; }
.hxcustody__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--faint); }
.hxoffices { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(12px, 0.78vw, 20px); align-items: start; }
.hxoffice {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: clamp(16px, 0.94vw, 24px) clamp(14px, 0.86vw, 22px);
  border-radius: 12px;
  border-top: 2px solid rgba(var(--ink-rgb), 0.3);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.18);
  min-width: 0;
}
.hxoffice--pub { border-top-color: var(--accent); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26); }
.hxoffice__head { display: flex; flex-direction: column; gap: 7px; margin: 0; padding-bottom: 16px; border-bottom: 2px solid var(--ink); }
.hxoffice__line { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 7px; }
.hxoffice__seal {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.4), 0 0 0 5px rgba(var(--ink-rgb), 0.06);
  font-family: var(--display);
  font-size: clamp(16px, 0.78vw, 20px);
  letter-spacing: 0.04em;
  color: var(--muted);
}
.hxoffice--pub .hxoffice__seal { background: var(--accent); box-shadow: 0 0 0 5px rgba(var(--accent-rgb), 0.12); color: var(--c-cream); }
.hxoffice__no { font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--faint); }
.hxoffice__name { font-family: var(--display); font-size: clamp(20px, 1.02vw, 26px); line-height: 1.08; letter-spacing: -0.012em; }
.hxoffice__role { font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); }
.hxoffice__note { font-size: clamp(14px, 0.62vw, 16px); font-weight: 300; line-height: 1.4; color: var(--faint); text-wrap: pretty; }
.hxoffice__list { display: flex; flex-direction: column; margin: 0; padding: 0; list-style: none; }
.hxpaper { display: flex; flex-direction: column; gap: 9px; padding: 16px 0; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
.hxpaper:first-child { border-top: 0; }
.hxpaper__line { display: flex; align-items: baseline; gap: 12px; }
.hxpaper__no { font-family: var(--mono); font-size: 12px; letter-spacing: 0.1em; color: var(--faint); }
.hxpaper__title { font-size: clamp(15px, 0.74vw, 19px); line-height: 1.25; color: var(--ink); }
.hxpaper__title--out { color: var(--muted); }
.hxpaper__meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.hxpaper__date { font-family: var(--mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--faint); }
.hxoffice__foot {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: auto 0 0;
  padding-top: 14px;
  border-top: 1px solid rgba(var(--ink-rgb), 0.16);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
}
.hxdocs__basis { margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--faint); }

/* --- 6A Два гроссбуха ----------------------------------------------------------------------- */
.hxio { display: flex; flex-direction: column; gap: clamp(16px, 1.09vw, 28px); }
.hxio__head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 460px); gap: clamp(20px, 1.72vw, 44px); align-items: end; padding-bottom: clamp(14px, 0.86vw, 22px); border-bottom: 2px solid var(--ink); }
.hxio__lead { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.hxio__title { font-family: var(--display); font-size: clamp(30px, 2.11vw, 54px); line-height: 1; letter-spacing: -0.022em; }
.hxio__split { font-family: var(--mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); }
.hxio__bars { display: flex; flex-direction: column; gap: 10px; }
.hxio__bar { display: flex; height: 44px; border-radius: 6px; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22); }
.hxledger__sound { display: block; background: rgba(var(--ink-rgb), 0.42); }
.hxledger__faults { display: block; background: var(--accent); }
.hxio__keys { display: flex; align-items: center; justify-content: space-between; gap: 18px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--faint); }
.hxio__key { display: inline-flex; align-items: center; gap: 9px; }
.hxio__key--red { color: var(--accent); }
.hxio__dot { width: 9px; height: 9px; flex: none; border-radius: 2px; background: rgba(var(--ink-rgb), 0.42); }
.hxio__dot--red { background: var(--accent); }
.hxledgers { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(24px, 2.73vw, 70px); align-items: stretch; }
.hxledger { display: flex; flex-direction: column; min-width: 0; }
.hxledger__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin: 0; padding-bottom: 18px; border-bottom: 2px solid var(--ink); }
.hxledger__title { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.hxledger__name { font-family: var(--display); font-size: clamp(26px, 1.64vw, 42px); line-height: 1; letter-spacing: -0.02em; }
.hxledger__pills { display: flex; flex-direction: column; gap: 9px; align-items: flex-end; }
.hxledger__pillrow { display: flex; gap: 10px; }
.hxledger__bar { display: flex; width: clamp(140px, 8.20vw, 210px); height: 8px; border-radius: 4px; overflow: hidden; background: rgba(var(--ink-rgb), 0.1); }
.hxledger__rows { margin: 0; padding: 0; list-style: none; }
/* Строки без отрицательных полей — линейки ровно по шапке и подвалу */
.hxledger__row {
  display: grid;
  grid-template-columns: 46px clamp(110px, 6.64vw, 170px) minmax(0, 1fr) auto;
  gap: 20px;
  align-items: baseline;
  padding: clamp(14px, 0.78vw, 20px) 12px;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
  border-left: 2px solid transparent;
  transition: background 160ms ease-in-out;
}
.hxledger__row:hover { background: rgba(var(--ink-rgb), 0.035); }
.hxledger__row--fault { border-left-color: var(--accent); }
.hxledger__no { font-family: var(--mono); font-size: 12px; letter-spacing: 0.1em; color: var(--faint); }
.hxledger__label { font-family: var(--mono); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--faint); }
.hxledger__row--fault .hxledger__label { color: var(--accent); }
.hxledger__value { font-size: clamp(16px, 0.78vw, 20px); font-weight: 300; line-height: 1.5; color: var(--ink); text-wrap: pretty; }
.hxledger__chip {
  display: inline-flex;
  align-items: center;
  height: 28px;
  padding: 0 12px;
  border-radius: 4px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--faint);
  white-space: nowrap;
}
.hxledger__row--fault .hxledger__chip { background: var(--accent); box-shadow: none; color: var(--c-cream); }
.hxledger__foot { display: flex; align-items: center; gap: 16px; margin: auto 0 0; padding-top: 18px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--faint); }

/* --- 14E Рельс покупки на двенадцать недель ---------------------------------------------- */
.hxwt { display: flex; flex-direction: column; gap: clamp(14px, 0.86vw, 22px); }
.hxwt__head { grid-template-columns: auto minmax(0, 1fr) auto; gap: clamp(14px, 1.33vw, 34px); padding-bottom: 12px; }
.hxwt__allin { font-size: clamp(12px, 0.66vw, 17px); letter-spacing: 0.04em; text-transform: uppercase; color: var(--ink); text-align: right; }
.hxwt__rail { position: relative; height: clamp(170px, 7.27vw, 186px); }
.hxwt__rule { position: absolute; left: 0; right: 0; top: 64px; height: 2px; background: rgba(var(--ink-rgb), 0.26); }
/* Десять дней на отказ — заштрихованная полоса на самой линейке, не четвёртая колонка */
.hxwt__walk {
  position: absolute;
  left: 16.7%;
  width: 11.6%;
  top: 54px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 11px;
  /* Кремовая подложка, чтобы линейка не читалась зачёркиванием подписи */
  background: linear-gradient(rgba(var(--accent-rgb), 0.14), rgba(var(--accent-rgb), 0.14)), var(--bg);
  box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.45);
  overflow: hidden;
}
.hxwt__walklabel { font-family: var(--mono); font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; white-space: nowrap; color: var(--accent); }
.hxrail-mark {
  position: absolute;
  top: 65px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: var(--ink);
  box-shadow: 0 0 0 5px var(--bg);
  transform: translate(-50%, -50%);
}
.hxwt-x16-7 { left: 16.7%; }
.hxrail-mark--start { left: 0; transform: translate(0, -50%); }
.hxrail-mark--end { left: auto; right: 0; transform: translate(0, -50%); }
/* Промежуточный этап стоит от своей засечки вправо: моно 12px шире, чем в
   макете, и центровка над засечкой наезжала бы на «The offer» */
.hxstage { position: absolute; top: 0; display: flex; flex-direction: column; gap: 9px; max-width: 340px; align-items: flex-start; text-align: left; }
.hxstage--start { left: 0; }
.hxstage--end { left: auto; right: 0; align-items: flex-end; text-align: right; }
.hxstage:not(.hxstage--start):not(.hxstage--end) { margin-left: 14px; }
.hxstage__top { display: flex; flex-direction: column; gap: 3px; }
.hxstage__name { font-family: var(--display); font-size: clamp(20px, 1.05vw, 27px); line-height: 1.05; letter-spacing: -0.015em; }
.hxstage__when,
.hxstage__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--faint); }
.hxstage__money { display: flex; flex-direction: column; gap: 3px; margin-top: 38px; }
.hxstage__sum { font-family: var(--mono); font-size: clamp(12px, 0.74vw, 19px); letter-spacing: 0.04em; color: var(--ink); }
.hxstage__sum--none { color: var(--faint); }
.hxsplit { display: flex; flex-direction: column; gap: 9px; }
.hxsplit__bar { display: flex; height: 34px; border-radius: 6px; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2); }
.hxsplit__seg { display: flex; align-items: center; min-width: 0; padding: 0 12px; overflow: hidden; font-family: var(--mono); font-size: 12px; letter-spacing: 0.1em; white-space: nowrap; }
.hxsplit__seg--red { background: var(--accent); color: var(--c-cream); }
.hxsplit__seg--ink { background: var(--ink); color: var(--bg); }
.hxsplit__keys { display: flex; align-items: center; gap: 22px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--faint); }
.hxsplit__key { display: inline-flex; align-items: center; gap: 9px; }
.hxsplit__cash { color: var(--muted); }
.hxwt__foot { display: flex; align-items: center; gap: 18px; margin: 0; padding-top: 12px; border-top: 1px solid rgba(var(--ink-rgb), 0.18); font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; }
.hxwt__red { display: inline-flex; align-items: center; gap: 9px; color: var(--accent); }

/* --- 16D Вопросы и заметки ---------------------------------------------------------------- */
.hxrv { display: grid; grid-template-columns: minmax(0, 700px) minmax(0, 1fr); gap: clamp(20px, 1.72vw, 44px); align-items: start; }
.hxrv__left { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.hxslip { padding: clamp(18px, 1.17vw, 30px) clamp(18px, 1.25vw, 32px); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26); overflow: visible; }
.hxslip__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin: 0; padding-bottom: 18px; border-bottom: 2px solid var(--ink); }
.hxslip__lead { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.hxslip__title { font-family: var(--display); font-size: clamp(24px, 1.41vw, 36px); line-height: 1.05; letter-spacing: -0.018em; }
.hxslip__topicnote { font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; text-align: right; color: var(--faint); white-space: nowrap; }
.hxslip__topics { margin: 20px 0 0; padding: 0; border: 0; min-width: 0; }
.hxslip__label { display: block; font-family: var(--mono); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--faint); }
.hxtopics { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
.hxtopic {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  height: 46px;
  padding: 0 18px;
  border-radius: 999px;
  background: var(--bg);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--muted);
  cursor: pointer;
  transition: background 180ms ease-in-out, color 180ms ease-in-out;
}
.hxtopic:hover { background: rgba(var(--accent-rgb), 0.05); }
.hxtopic__count { font-size: 12px; letter-spacing: 0.06em; color: var(--faint); }
.g4pill__input:checked + .hxtopic { background: var(--ink); box-shadow: none; color: var(--bg); }
.g4pill__input:checked + .hxtopic .hxtopic__count { color: var(--gold); }
.g4pill__input:focus-visible + .hxtopic { outline: 2px solid var(--accent); outline-offset: 2px; }
.hxslip__field { display: flex; flex-direction: column; gap: 8px; margin: 22px 0 0; }
.hxslip__field + .hxslip__field { margin-top: 16px; }
.hxslip__text,
.hxslip__input {
  box-sizing: border-box;
  width: 100%;
  padding: 18px 20px;
  border: 0;
  border-radius: 10px;
  background: var(--bg);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
  font-family: var(--text);
  font-size: clamp(15px, 0.74vw, 19px);
  font-weight: 300;
  line-height: 1.5;
  color: var(--ink);
}
.hxslip__text { min-height: 140px; resize: vertical; }
.hxslip__input { height: 58px; padding: 0 18px; font-size: clamp(15px, 0.70vw, 18px); }
.hxslip__text::placeholder,
.hxslip__input::placeholder { color: var(--faint); opacity: 1; }
.hxslip__text:focus,
.hxslip__input:focus { outline: 0; box-shadow: inset 0 0 0 2px var(--accent); }
.hxslip__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--faint); }
.hxslip__send {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  width: 100%;
  height: clamp(52px, 2.66vw, 68px);
  margin-top: 20px;
  padding: 0 clamp(18px, 1.02vw, 26px);
  border: 0;
  border-radius: 8px;
  background: var(--ink);
  color: rgba(var(--bg-rgb), 0.72);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  text-align: left;
  cursor: pointer;
  transition: background 200ms ease-in-out, color 200ms ease-in-out;
}
.hxslip__send--ready { background: var(--accent); color: var(--c-cream); }
.hxslip__send--ready:hover { background: var(--accent-deep); }
.hxpreview { display: flex; flex-direction: column; gap: 14px; padding: clamp(16px, 1.02vw, 26px) clamp(18px, 1.17vw, 30px); border-radius: 14px; background: var(--bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2); }
.hxpreview__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin: 0; padding-bottom: 12px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.18); font-family: var(--mono); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--faint); }
.hxpreview__kicker { color: var(--accent); }
.hxpreview__body { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 18px; align-items: start; margin: 0; }
.hxpreview__text { font-size: clamp(16px, 0.78vw, 20px); font-weight: 300; line-height: 1.5; color: var(--ink); text-wrap: pretty; }
.hxpreview__text--empty,
.hxpreview__name--empty { color: var(--faint); }
.hxthread { display: flex; flex-direction: column; min-width: 0; }
.hxthread__head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  gap: 24px;
  align-items: baseline;
  margin: 0;
  padding-bottom: 16px;
  border-bottom: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
}
.hxthread__list { margin: 0; padding: 0; list-style: none; }
.hxnote {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  gap: 20px;
  align-items: start;
  padding: 20px 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
  border-left: 2px solid transparent;
}
/* Ответ — сдвинут на 38px и несёт документ, откуда взят */
.hxnote--reply { padding-left: 38px; border-left-color: rgba(var(--ink-rgb), 0.22); }
.hxnote[hidden] { display: none !important; }
.hxnote__seal {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--muted);
}
.hxnote__seal--red { background: var(--accent); box-shadow: none; color: var(--c-cream); }
/* Аватар вместо печати, где он есть в наборе: снимок 76×76 в тот же круг */
.hxnote__seal--photo { padding: 0; background: transparent; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3); overflow: hidden; }
.hxnote__avatar { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 50%; }
.hxnote__body { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.hxnote__text { font-size: clamp(16px, 0.78vw, 20px); font-weight: 300; line-height: 1.5; color: var(--ink); text-wrap: pretty; }
.hxnote__meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; font-family: var(--mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--faint); }
.hxnote__who { color: var(--muted); }
.hxnote__topic--red { color: var(--accent); }
.hxnote__tag {
  display: inline-flex;
  align-items: center;
  height: 28px;
  padding: 0 12px;
  border-radius: 4px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
  white-space: nowrap;
}
.hxnote__tag--red { background: var(--accent); box-shadow: none; color: var(--c-cream); }
.hxnote__tag--dark { background: var(--ink); box-shadow: none; color: var(--bg); }
.hxthread__foot { display: flex; align-items: center; gap: 18px; margin: 0; padding-top: 16px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; }
.hxthread__all { display: inline-flex; align-items: center; gap: 10px; color: var(--ink); text-decoration: none; }
.hxthread__all:hover { color: var(--accent); }

/* --- SF Докет советника с портретом ------------------------------------------------------- */
.hxadv {
  display: flex;
  flex-direction: column;
  margin: 0;
  border-radius: 14px;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.28), 0 26px 60px rgba(var(--ink-rgb), 0.1);
  overflow: hidden;
}
.hxadv__band { position: relative; height: clamp(360px, 21.88vw, 560px); background: var(--c-night); color: var(--c-cream); overflow: hidden; }
.hxadv__img { object-position: 50% 30%; }
.hxtick { position: absolute; z-index: 1; width: 26px; height: 26px; border-color: rgba(var(--c-cream-rgb), 0.7); pointer-events: none; }
.hxtick--tl { left: 18px; top: 18px; border-left-style: solid; border-left-width: 1px; border-top-style: solid; border-top-width: 1px; }
.hxtick--tr { right: 18px; top: 18px; border-right-style: solid; border-right-width: 1px; border-top-style: solid; border-top-width: 1px; }
.hxtick--bl { left: 18px; bottom: 18px; border-left-style: solid; border-left-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; }
.hxtick--br { right: 18px; bottom: 18px; border-right-style: solid; border-right-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; }
.hxadv__plate {
  position: absolute;
  left: 32px;
  top: 32px;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  height: 30px;
  padding: 0 12px;
  border-radius: 5px;
  background: rgba(var(--c-paper-rgb), 0.95);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--c-red);
}
.hxadv__wax {
  position: absolute;
  right: 30px;
  top: 28px;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  background: rgba(var(--c-paper-rgb), 0.92);
  box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.55), inset 0 0 0 5px rgba(var(--accent-rgb), 0.12);
  transform: rotate(-7deg);
  font-family: var(--mono);
  font-size: 12px;
  line-height: 1.2;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-align: center;
  color: var(--c-red);
}
.hxadv__initials { font-family: var(--display); font-size: clamp(18px, 0.86vw, 22px); letter-spacing: 0.04em; text-transform: none; }
.hxadv__scrim {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  padding: 26px 32px;
  background: linear-gradient(to top, rgba(var(--c-night-rgb), 0.92) 0%, rgba(var(--c-night-rgb), 0.62) 52%, rgba(var(--c-night-rgb), 0) 100%);
}
.hxadv__who { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.hxadv__name { font-family: var(--display); font-size: clamp(26px, 1.56vw, 40px); line-height: 1; letter-spacing: -0.018em; color: var(--c-cream); }
.hxadv__role { font-family: var(--mono); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold); }
.hxadv__since { font-family: var(--mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(var(--c-cream-rgb), 0.66); white-space: nowrap; }
.hxadv__measure { padding: 16px clamp(18px, 1.25vw, 32px) 0; letter-spacing: 0.18em; }
.hxadv__measure .hdrule__end { height: 8px; }
.hxadv__body { display: flex; flex-direction: column; padding: 22px clamp(18px, 1.25vw, 32px) clamp(18px, 1.17vw, 30px); }
.hxadv__quote { margin: 0; font-family: var(--display); font-style: italic; font-size: clamp(17px, 0.86vw, 22px); line-height: 1.38; color: var(--ink); text-wrap: pretty; }
.hxadv__price { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px; align-items: end; margin-top: 26px; padding-top: 22px; border-top: 2px solid var(--ink); }
.hxadv__faults { max-width: 150px; }
.hxadv__pricecol { display: flex; flex-direction: column; gap: 6px; }
.hxadv__sum { font-family: var(--display); font-size: clamp(34px, 2.27vw, 58px); line-height: 1; letter-spacing: -0.025em; }
.hxadv__unit { font-family: var(--mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.hxadv__gradecol { display: flex; flex-direction: column; gap: 6px; align-items: flex-end; }
.hxadv__grade {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 56px;
  height: 56px;
  border-radius: 8px;
  background: var(--ink);
  color: var(--bg);
  font-family: var(--display);
  font-size: clamp(22px, 1.17vw, 30px);
  line-height: 1;
}
.hxadv__faults { font-family: var(--mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; text-align: right; color: var(--accent); }
.hxadv__pick { padding: 0; gap: 12px; margin-top: 24px; }
.hxadv__hours { padding: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--faint); }
.hxadv__pick .hdchips { margin-top: 0; }
.hxadv__acts { display: flex; flex-direction: column; gap: 12px; margin: 18px 0 0; }
.hxadv__book { height: clamp(52px, 2.73vw, 70px); margin-top: 0; padding: 0 clamp(16px, 1.02vw, 26px); }
.hxadv__phone { height: clamp(48px, 2.42vw, 62px); margin-top: 0; padding: 0 clamp(16px, 1.02vw, 26px); }
.hxadv__confirm { margin-top: 14px; }

/* ==========================================================================
   Home detail v5 — боковая от плит, шкала оценок, разрез с лестницей, полка
   документов, разворот, живой план, счёт по месяцам, выписка, форма (hy*)
   ========================================================================== */
.hypage .hdhead { margin-bottom: 0; }
.hysplit { margin-top: 15px; }   /* владелец: галерея ближе к голове, как на v3/v4 */
.hyplates { margin-top: 0; }
.hyplates__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 420px); gap: clamp(18px, 1.17vw, 30px); }
.hyrail__frame { height: clamp(140px, 8.59vw, 220px); }
.hyplates .hxrail__list { height: clamp(420px, 33.75vw, 864px); }

/* --- 4D Шкала оценок: пять равных долей, дом — тёмная, стрелка сверху ------------------ */
.hysv__sheet {
  display: flex;
  flex-direction: column;
  padding: clamp(20px, 1.33vw, 34px) clamp(18px, 1.25vw, 32px) clamp(18px, 1.17vw, 30px);
  border-radius: 14px;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.28);
}
.hysv__head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: clamp(18px, 1.33vw, 34px);
  align-items: end;
  padding-bottom: 24px;
  border-bottom: 2px solid var(--ink);
}
.hysv__grade { display: flex; align-items: flex-end; gap: 20px; }
.hysv__plate {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: clamp(72px, 4.06vw, 104px);
  height: clamp(72px, 4.06vw, 104px);
  border-radius: 14px;
  background: var(--ink);
  color: var(--bg);
  font-family: var(--display);
  font-size: clamp(40px, 2.42vw, 62px);
  line-height: 1;
}
.hysv__words { display: flex; flex-direction: column; gap: 9px; }
.hysv__word { font-family: var(--display); font-size: clamp(26px, 1.64vw, 42px); line-height: 1; letter-spacing: -0.022em; }
.hysv__split { font-family: var(--mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); }
.hysv__right { display: flex; align-items: flex-end; justify-content: flex-end; gap: clamp(18px, 1.33vw, 34px); flex-wrap: wrap; }
.hysv__repairs { display: flex; flex-direction: column; gap: 6px; align-items: flex-end; margin: 0; }
.hysv__sum { font-family: var(--display); font-size: clamp(32px, 2.03vw, 52px); line-height: 1; letter-spacing: -0.026em; color: var(--accent); }
.hysv__pdf { height: clamp(48px, 2.34vw, 60px); padding: 0 clamp(16px, 0.94vw, 24px); }
.hysv__gauge { position: relative; margin-top: clamp(40px, 2.03vw, 52px); }
.hysv__bar {
  position: relative;
  display: flex;
  height: clamp(84px, 4.38vw, 112px);
  border-radius: 10px;
  overflow: hidden;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}
.hysv__seg {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 7px;
  flex: 1 1 0;
  min-width: 0;
  height: 100%;
  padding: 0 clamp(10px, 0.86vw, 22px);
  border-right: 1px solid rgba(var(--ink-rgb), 0.2);
}
.hysv__seg:last-child { border-right: 0; }
.hysv__seg--here { background: var(--ink); }
.hysv__letter { font-family: var(--display); font-size: clamp(30px, 1.95vw, 50px); line-height: 1; color: rgba(var(--ink-rgb), 0.32); }
.hysv__seg--here .hysv__letter { color: var(--bg); }
.hysv__segwords { display: flex; flex-direction: column; gap: 3px; font-family: var(--mono); font-size: 12px; text-transform: uppercase; }
.hysv__segword { letter-spacing: 0.18em; color: var(--faint); }
.hysv__segnote { letter-spacing: 0.14em; color: rgba(var(--ink-rgb), 0.34); }
.hysv__seg--here .hysv__segword { color: var(--gold); }
.hysv__seg--here .hysv__segnote { color: rgba(var(--bg-rgb), 0.68); }
/* Стрелка «This home» стоит над серединой доли дома: (i × 20 + 10) % */
.hysv__here {
  position: absolute;
  left: 30%;
  top: -34px;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--accent);
  white-space: nowrap;
}
.hysv__arrow { width: 0; height: 0; border-left: 6px solid transparent; border-right: 6px solid transparent; border-top: 8px solid var(--accent); }
.hysv__moves { display: flex; align-items: stretch; margin: 28px 0 0; padding-top: 22px; border-top: 1px solid rgba(var(--ink-rgb), 0.2); }
.hysv__move { display: flex; flex-direction: column; gap: 6px; flex: 1 1 0; min-width: 0; padding: 0 26px; border-right: 1px solid rgba(var(--ink-rgb), 0.18); }
.hysv__move:first-child { padding-left: 0; }
.hysv__move:last-child { padding-right: 0; border-right: 0; }
.hysv__movelabel { font-family: var(--mono); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--faint); }
.hysv__movevalue { font-family: var(--display); font-size: clamp(22px, 1.25vw, 32px); line-height: 1; letter-spacing: -0.018em; }
.hysv__movevalue--red { color: var(--accent); }
.hysv__movenote { font-family: var(--mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.hysv__cols,
.hysv__row {
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) clamp(120px, 7.81vw, 200px) clamp(110px, 6.64vw, 170px) clamp(100px, 5.86vw, 150px);
  gap: clamp(12px, 0.78vw, 20px);
}
.hysv__cols {
  align-items: baseline;
  margin: 30px 0 0;
  padding-bottom: 14px;
  border-bottom: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--faint);
}
.hysv__cols-est { text-align: right; }
.hysv__rows { margin: 0; padding: 0; list-style: none; }
.hysv__row { align-items: center; padding: 18px 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.hysv__no { font-family: var(--mono); font-size: 12px; letter-spacing: 0.1em; color: var(--faint); }
.hysv__what { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.hysv__line { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.hysv__mark { width: 14px; height: 2px; background: rgba(var(--ink-rgb), 0.45); }
.hysv__row--first .hysv__mark { background: var(--accent); }
.hysv__row--minor .hysv__mark { background: rgba(var(--ink-rgb), 0.2); }
.hysv__fault { font-family: var(--display); font-size: clamp(17px, 0.86vw, 22px); }
.hysv__tag {
  display: inline-flex;
  align-items: center;
  height: 26px;
  padding: 0 11px;
  border-radius: 4px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
}
.hysv__row--first .hysv__tag { background: var(--accent); box-shadow: none; color: var(--c-cream); }
.hysv__row--minor .hysv__tag { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22); color: var(--faint); }
.hysv__detail { font-size: clamp(15px, 0.66vw, 17px); font-weight: 300; color: var(--muted); text-wrap: pretty; }
.hysv__where { font-family: var(--mono); font-size: 12px; letter-spacing: 0.08em; color: var(--ink); }
.hysv__found { font-family: var(--mono); font-size: 12px; letter-spacing: 0.08em; color: var(--muted); }
.hysv__est { font-family: var(--mono); font-size: clamp(12px, 0.66vw, 17px); letter-spacing: 0.06em; text-align: right; color: var(--ink); }
.hysv__est--none { color: var(--faint); }
.hysv__foot { display: flex; align-items: center; gap: 18px; margin: 0; padding-top: 18px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; }

/* --- 13A Здание разрезом: этажи пропорцией, лестница штрихом, лента решений --------------- */
.hybd { display: flex; flex-direction: column; gap: 26px; }
.hybd__head {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: clamp(18px, 1.33vw, 34px);
  align-items: end;
  padding-bottom: 20px;
  border-bottom: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.hybd__lead { display: flex; flex-direction: column; gap: 10px; margin: 0; }
.hybd__built { font-family: var(--display); font-size: clamp(40px, 2.81vw, 72px); line-height: 0.95; letter-spacing: -0.028em; }
.hybd__syndic { color: var(--faint); }
.hybd__sharenote { color: var(--ink); }
.hybd__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 620px); gap: clamp(20px, 1.56vw, 40px); align-items: start; }
.hybd__section { display: flex; flex-direction: column; gap: 12px; margin: 0; min-width: 0; }
.hybd__section .hdrule { letter-spacing: 0.18em; }
.hybd__well {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: clamp(480px, 29.69vw, 760px);
  border-radius: 10px;
  background: var(--bg);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.28);
  overflow: hidden;
}
.hybd__storey {
  position: relative;
  display: grid;
  grid-template-columns: clamp(96px, 5.86vw, 150px) 58px minmax(0, 1fr) auto;
  gap: 16px;
  align-items: center;
  padding: 0 20px 0 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.2);
}
.hybd__storey:last-child { border-bottom: 0; }
.hybd__storey--here { background: rgba(var(--accent-rgb), 0.9); }
.hybd__level { padding-left: 20px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.14em; color: var(--faint); }
.hybd__stair { height: 100%; background: repeating-linear-gradient(135deg, rgba(var(--ink-rgb), 0.12) 0 2px, transparent 2px 9px); border-right: 1px solid rgba(var(--ink-rgb), 0.24); }
.hybd__storey--here .hybd__stair { background: repeating-linear-gradient(135deg, rgba(var(--ink-rgb), 0.22) 0 2px, transparent 2px 9px); }
.hybd__use { font-size: clamp(15px, 0.74vw, 19px); font-weight: 300; color: var(--muted); }
.hybd__meta { font-family: var(--mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--faint); }
.hybd__storey--here .hybd__level { color: rgba(var(--c-cream-rgb), 0.7); }
.hybd__storey--here .hybd__use { color: rgba(var(--c-cream-rgb), 0.86); }
.hybd__storey--here .hybd__meta { color: var(--c-cream); }
.hytick { position: absolute; width: 20px; height: 20px; border-color: rgba(var(--ink-rgb), 0.4); pointer-events: none; }
.hytick--tl { left: 14px; top: 12px; border-left-style: solid; border-left-width: 1px; border-top-style: solid; border-top-width: 1px; }
.hytick--br { right: 14px; bottom: 12px; border-right-style: solid; border-right-width: 1px; border-bottom-style: solid; border-bottom-width: 1px; }
.hybd__legend { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; font-family: var(--mono); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--faint); }
.hybd__key { display: inline-flex; align-items: center; gap: 9px; }
.hybd__key--home { color: var(--muted); }
.hybd__swatch--home { width: 9px; height: 9px; border-radius: 2px; background: var(--accent); }
.hybd__swatch--stair { width: 14px; height: 9px; background: repeating-linear-gradient(135deg, rgba(var(--ink-rgb), 0.3) 0 2px, transparent 2px 7px); }
.hybd__spine { display: flex; flex-direction: column; min-width: 0; }
.hybd__spinehead {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 20px;
  align-items: end;
  margin: 0;
  padding-bottom: 16px;
  border-bottom: 2px solid var(--ink);
}
.hybd__spinelead { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.hybd__spinetitle { font-family: var(--display); font-size: clamp(24px, 1.48vw, 38px); line-height: 1; letter-spacing: -0.018em; }
.hybd__total { font-family: var(--display); font-size: clamp(22px, 1.33vw, 34px); line-height: 1; letter-spacing: -0.02em; }
.hybd__decs { margin: 0; padding: 0; list-style: none; }
.hybd__dec {
  display: grid;
  grid-template-columns: 13px 78px minmax(0, 1fr) clamp(110px, 5.86vw, 150px);
  gap: 20px;
  align-items: start;
  padding: 20px 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
}
.hybd__dot { width: 13px; height: 13px; margin-top: 8px; border-radius: 50%; background: var(--ink); box-shadow: 0 0 0 4px var(--bg); }
.hybd__year { font-family: var(--mono); font-size: clamp(12px, 0.59vw, 15px); letter-spacing: 0.06em; color: var(--ink); }
.hybd__body { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.hybd__line { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.hybd__what { font-family: var(--display); font-size: clamp(17px, 0.82vw, 21px); }
.hybd__tag {
  display: inline-flex;
  align-items: center;
  height: 26px;
  padding: 0 11px;
  border-radius: 4px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.28);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--muted);
}
.hybd__detail { font-size: clamp(15px, 0.66vw, 17px); font-weight: 300; line-height: 1.45; color: var(--muted); text-wrap: pretty; }
.hybd__track { display: block; height: 5px; border-radius: 3px; background: rgba(var(--ink-rgb), 0.1); overflow: hidden; }
.hybd__fill { display: block; height: 100%; background: rgba(var(--ink-rgb), 0.45); }
.hybd__money { display: flex; flex-direction: column; gap: 4px; align-items: flex-end; }
.hybd__cost { font-family: var(--mono); font-size: clamp(12px, 0.66vw, 17px); letter-spacing: 0.06em; color: var(--ink); }
.hybd__share { font-family: var(--mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; text-align: right; color: var(--faint); }
.hybd__dec--pending .hybd__dot,
.hybd__dec--pending .hybd__fill,
.hybd__dec--pending .hybd__tag { background: var(--accent); }
.hybd__dec--pending .hybd__tag { box-shadow: none; color: var(--c-cream); }
.hybd__dec--pending .hybd__year,
.hybd__dec--pending .hybd__cost { color: var(--accent); }
.hybd__spinefoot { display: flex; align-items: center; gap: 20px; margin: 0; padding-top: 16px; border-top: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--faint); }

/* --- 15H Полка: корешок — девять пикселей на страницу, линейка слева ------------------------ */
.hydc { display: flex; flex-direction: column; gap: 22px; }
.hydc__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 440px) auto;
  gap: clamp(18px, 1.33vw, 34px);
  align-items: end;
  padding-bottom: 20px;
  border-bottom: 2px solid var(--ink);
}
.hydc__lead { display: flex; flex-direction: column; gap: 9px; margin: 0; min-width: 0; }
.hydc__title-big { font-family: var(--display); font-size: clamp(28px, 1.88vw, 48px); line-height: 1; letter-spacing: -0.022em; }
.hydc__split { display: flex; flex-direction: column; gap: 9px; }
.hydc__bar { display: flex; height: 34px; border-radius: 6px; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22); }
.hydc__seg { display: flex; align-items: center; height: 100%; padding: 0 14px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; white-space: nowrap; overflow: hidden; }
.hydc__seg--ink { background: var(--ink); color: var(--bg); }
.hydc__seg--faint { background: rgba(var(--ink-rgb), 0.18); color: var(--ink); }
.hyw-62-5 { width: 62.5%; }
.hyw-37-5 { width: 37.5%; }
.hydc__keys { display: flex; align-items: center; gap: 20px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--faint); }
.hydc__key { display: inline-flex; align-items: center; gap: 9px; }
.hydc__dot { width: 9px; height: 9px; padding: 0; border-radius: 2px; }
.hydc__all { height: clamp(48px, 2.34vw, 60px); padding: 0 clamp(16px, 0.94vw, 24px); }
.hydc__shelf,
.hydc__board,
.hydc__caps { display: grid; grid-template-columns: clamp(60px, 4.06vw, 104px) minmax(0, 1fr); gap: 20px; }
.hydc__shelf { align-items: end; }
.hydc__ruler { position: relative; height: 330px; }
.hydc__rulerlabel { position: absolute; right: 0; top: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--faint); }
.hydc__tick { position: absolute; right: 0; transform: translateY(50%); display: flex; align-items: center; gap: 10px; }
.hydc__ticklabel { font-family: var(--mono); font-size: 12px; letter-spacing: 0.08em; color: var(--muted); }
.hydc__tickrule { width: 11px; height: 1px; background: rgba(var(--ink-rgb), 0.28); }
.hydc__tick--big .hydc__tickrule { width: 18px; background: rgba(var(--ink-rgb), 0.45); }
.hytk-306 { bottom: 306px; }
.hytk-270 { bottom: 270px; }
.hytk-180 { bottom: 180px; }
.hytk-90 { bottom: 90px; }
.hytk-0 { bottom: 0px; }
.hydc__spines { display: flex; align-items: flex-end; gap: 12px; }
.hydc__spine {
  position: relative;
  box-sizing: border-box;
  flex: 1 1 0;
  min-width: 0;
  border-radius: 4px 4px 0 0;
  background: var(--ink);
  box-shadow: 0 -10px 24px rgba(var(--ink-rgb), 0.12);
}
.hydc__spine--first { background: var(--accent); }
.hydc__spine--out { background: repeating-linear-gradient(135deg, rgba(var(--ink-rgb), 0.14) 0 2px, transparent 2px 9px); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.32); }
.hysp-10 { height: 10px; }
.hysp-18 { height: 18px; }
.hysp-54 { height: 54px; }
.hysp-81 { height: 81px; }
.hysp-99 { height: 99px; }
.hysp-306 { height: 306px; }
.hydc__chip {
  position: absolute;
  left: 50%;
  top: -30px;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  height: 24px;
  min-width: 34px;
  padding: 0 9px;
  border-radius: 3px;
  background: rgba(var(--bg-rgb), 0.94);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.1em;
  white-space: nowrap;
  color: var(--ink);
}
.hydc__spine--out .hydc__chip { background: transparent; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3); color: var(--muted); }
.hydc__board { align-items: start; row-gap: 14px; }
.hydc__board::before { content: ""; }
.hydc__plank { grid-column: 2; display: block; height: 10px; border-radius: 2px; background: var(--ink); box-shadow: 0 14px 28px rgba(var(--ink-rgb), 0.18); }
.hydc__scale { grid-column: 2; display: flex; align-items: center; gap: 18px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--faint); }
/* Подписи под корешками: та же линейка слева (104 + 20), восемь колонок по 12 */
.hydc__caps { grid-template-columns: calc(clamp(60px, 4.06vw, 104px) + 8px) repeat(8, minmax(0, 1fr)); gap: 12px; margin: 4px 0 0; padding: 0; list-style: none; }
.hydc__caps::before { content: ""; }
.hydc__cap { display: flex; flex-direction: column; gap: 8px; align-items: center; text-align: center; min-width: 0; }
.hydc__seal {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  box-sizing: border-box;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--bg);
}
.hydc__cap--out .hydc__seal { background: transparent; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.35); color: var(--faint); }
.hydc__capno { font-family: var(--mono); font-size: 12px; letter-spacing: 0.1em; color: var(--faint); }
.hydc__title { font-size: clamp(14px, 0.62vw, 16px); font-weight: 300; line-height: 1.3; color: var(--ink); text-wrap: pretty; }
.hydc__cap--out .hydc__title { color: var(--muted); }
.hydc__by { font-family: var(--mono); font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; line-height: 1.5; color: var(--muted); }
.hydc__pages { font-family: var(--mono); font-size: 12px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--accent); }
.hydc__cap--out .hydc__pages { color: var(--faint); }

/* --- 6D Разворот: две страницы, корешок посередине с сургучом листа ------------------------- */
.hyio { display: flex; flex-direction: column; gap: 22px; }
.hyio__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 420px);
  gap: clamp(20px, 1.56vw, 40px);
  align-items: end;
  padding-bottom: 20px;
  border-bottom: 2px solid var(--ink);
}
.hyio__lead { display: flex; flex-direction: column; gap: 9px; margin: 0; min-width: 0; }
.hyio__title { font-family: var(--display); font-size: clamp(30px, 2.03vw, 52px); line-height: 1; letter-spacing: -0.022em; }
.hyio__split { display: flex; flex-direction: column; gap: 10px; }
.hyio__splitbar { display: flex; height: 40px; border-radius: 6px; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22); }
.hyio__sound { background: rgba(var(--ink-rgb), 0.45); }
.hyio__faults { background: var(--accent); }
.hyio__keys { display: flex; align-items: center; justify-content: space-between; gap: 18px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--faint); }
.hyio__key { display: inline-flex; align-items: center; gap: 9px; }
.hyio__key--red { color: var(--accent); }
.hyio__dot { width: 9px; height: 9px; flex: none; border-radius: 2px; background: rgba(var(--ink-rgb), 0.45); }
.hyio__dot--red { background: var(--accent); }
.hyio__spread { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(24px, 2.50vw, 64px); align-items: stretch; }
.hyio__gutter { position: absolute; left: 50%; top: 0; bottom: 0; width: 1px; transform: translateX(-50%); background: rgba(var(--ink-rgb), 0.26); pointer-events: none; }
.hyio__wax {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 1;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  width: 78px;
  height: 78px;
  border-radius: 50%;
  background: var(--bg);
  box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.5), inset 0 0 0 6px rgba(var(--accent-rgb), 0.08);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-align: center;
  line-height: 1.3;
  color: var(--accent);
  pointer-events: none;
}
.hyio__waxno { font-family: var(--display); font-size: clamp(18px, 0.86vw, 22px); letter-spacing: 0.02em; }
.hyio__page {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 28px clamp(16px, 1.17vw, 30px) 32px;
  border-radius: 10px;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22), 0 18px 40px rgba(var(--ink-rgb), 0.07);
}
.hyio__pagehead { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin: 0; padding-bottom: 14px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--faint); }
.hyio__kicker { color: var(--accent); }
.hyio__pagetitle { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin: 0; padding-bottom: 18px; border-bottom: 2px solid var(--ink); }
.hyio__name { font-family: var(--display); font-size: clamp(26px, 1.64vw, 42px); line-height: 1; letter-spacing: -0.02em; }
.hyio__pills { display: flex; flex-direction: column; gap: 9px; align-items: flex-end; }
.hyio__pillrow { display: flex; gap: 10px; }
.hyio__bar { display: flex; width: 190px; max-width: 100%; height: 8px; border-radius: 4px; overflow: hidden; background: rgba(var(--ink-rgb), 0.1); }
.hyio__rows { margin: 0; padding: 0; list-style: none; }
.hyio__row {
  box-sizing: border-box;
  display: grid;
  grid-template-columns: 46px clamp(110px, 6.64vw, 170px) minmax(0, 1fr) auto;
  gap: clamp(12px, 0.78vw, 20px);
  align-items: baseline;
  padding: 20px 12px;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
  border-left: 2px solid transparent;
  transition: background 160ms ease-in-out;
}
.hyio__row:hover { background: rgba(var(--ink-rgb), 0.035); }
.hyio__row--fault { border-left-color: var(--accent); }
.hyio__no { font-family: var(--mono); font-size: 12px; letter-spacing: 0.1em; color: var(--faint); }
.hyio__label { font-family: var(--mono); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--faint); }
.hyio__row--fault .hyio__label { color: var(--accent); }
.hyio__value { font-size: clamp(16px, 0.78vw, 20px); font-weight: 300; line-height: 1.45; color: var(--ink); text-wrap: pretty; }
.hyio__chip {
  display: inline-flex;
  align-items: center;
  height: 28px;
  padding: 0 12px;
  border-radius: 4px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--faint);
}
.hyio__row--fault .hyio__chip { background: var(--accent); box-shadow: none; color: var(--c-cream); }
.hyio__pagefoot { display: flex; align-items: center; gap: 16px; margin: 0; padding-top: 20px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--faint); }
.hyio__folio { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3); font-family: var(--display); font-size: clamp(14px, 0.62vw, 16px); color: var(--ink); }
.hyio__foot { display: flex; align-items: center; gap: 18px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--faint); }

/* --- 7E Живой план: метровая линейка, булавки-кнопки, карточки, читальная плита ------------ */
.hyfp { display: flex; flex-direction: column; gap: clamp(12px, 0.70vw, 18px); }
.hyfp__scale { position: relative; height: 34px; margin: 0; }
.hyfp__scaleline { position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: rgba(var(--ink-rgb), 0.26); }
.hyfp__tick { position: absolute; top: 0; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 5px; }
.hyfp__ticklabel { font-family: var(--mono); font-size: 12px; letter-spacing: 0.14em; color: var(--muted); }
.hyfp__tickmark { width: 1px; height: 7px; background: rgba(var(--ink-rgb), 0.28); }
.hyfp__tick--big .hyfp__tickmark { height: 11px; background: rgba(var(--ink-rgb), 0.45); }
.hyfp__tick--0 { transform: none; align-items: flex-start; }
.hyfp__tick--0 { left: 0.0%; }
.hyfp__tick--1 { left: 13.99%; }
.hyfp__tick--2 { left: 27.97%; }
.hyfp__tick--3 { left: 41.96%; }
.hyfp__tick--4 { left: 55.94%; }
.hyfp__tick--5 { left: 69.93%; }
.hyfp__tick--6 { left: 83.92%; }
.hyfp__tick--7 { left: 97.9%; }
.hyfp__well { min-height: clamp(300px, 33.59vw, 860px); }
.hyfp__well .hdph { font-size: 13px; letter-spacing: 0.24em; }
.hypin {
  position: absolute;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: rgba(var(--bg-rgb), 0.97);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
  transform: translate(-50%, -50%);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.06em;
  text-indent: 0.06em;
  color: var(--ink);
  cursor: pointer;
  transition: width 180ms ease-in-out, height 180ms ease-in-out, background 180ms ease-in-out, box-shadow 180ms ease-in-out;
}
.hypin:hover { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3), 0 0 0 4px rgba(var(--accent-rgb), 0.25); }
.hypin--on { z-index: 3; width: 46px; height: 46px; background: var(--accent); box-shadow: 0 12px 28px rgba(var(--accent-rgb), 0.35); font-size: clamp(12px, 0.51vw, 13px); color: var(--c-cream); }
.hypin:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.hycall {
  position: absolute;
  z-index: 3;
  transform: translateX(-50%);
  display: inline-flex;
  align-items: center;
  height: 34px;
  padding: 0 14px;
  border-radius: 6px;
  background: var(--c-ink-fixed);
  color: var(--c-cream);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  white-space: nowrap;
  pointer-events: none;
}
.hycall[hidden] { display: none; }
.hycall-y29 { top: 29%; }
.hycall-y33 { top: 33%; }
.hycall-y34 { top: 34%; }
.hycall-y58 { top: 58%; }
.hycall-y84 { top: 84%; }
.hyfp__bar { position: absolute; left: 28px; bottom: 46px; z-index: 2; width: 13.99%; height: 9px; border-left: 1px solid var(--muted); border-right: 1px solid var(--muted); border-bottom: 1px solid var(--muted); }
.hyfp__barnote { position: absolute; left: 28px; bottom: 22px; z-index: 2; font-family: var(--mono); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--muted); }
.hyfp__below { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 520px); gap: clamp(18px, 1.41vw, 36px); align-items: start; }
.hyrooms { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 12px; margin: 0; padding: 0; list-style: none; }
.hyroom {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  padding: 16px 14px 18px;
  border: 0;
  border-top: 2px solid var(--muted);
  border-radius: 0 0 8px 8px;
  background: transparent;
  color: var(--ink);
  text-align: left;
  cursor: pointer;
  transition: background 180ms ease-in-out, border-color 180ms ease-in-out;
}
.hyroom--red { border-top-color: var(--accent); }
.hyroom--faint { border-top-color: var(--faint); }
.hyroom:hover { background: rgba(var(--accent-rgb), 0.05); }
.hyroom--on { padding-top: 14px; border-top: 4px solid var(--ink); background: rgba(var(--accent-rgb), 0.07); }
.hyroom:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.hyroom__head { display: flex; align-items: center; gap: 10px; }
.hyroom__badge { width: 28px; height: 28px; border-radius: 4px; }
.hyroom--on .hyroom__badge { background: var(--accent); box-shadow: none; color: var(--c-cream); }
.hyroom__name { font-family: var(--display); font-size: clamp(14px, 0.66vw, 17px); }
.hyroom--on .hyroom__name { color: var(--accent); }
.hyroom__area { font-family: var(--display); font-size: clamp(20px, 1.09vw, 28px); line-height: 1; }
.hyread {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: clamp(16px, 1.02vw, 26px) clamp(18px, 1.17vw, 30px);
  border-radius: 12px;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
}
.hyread__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin: 0; padding-bottom: 12px; border-bottom: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--faint); }
.hyread__no { color: var(--accent); }
.hyread__title { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin: 0; }
.hyread__name { font-family: var(--display); font-size: clamp(24px, 1.48vw, 38px); line-height: 1.05; letter-spacing: -0.02em; }
.hyread__area { font-family: var(--display); font-size: clamp(24px, 1.48vw, 38px); line-height: 1; color: var(--accent); }
.hyread__rule { padding: 0; letter-spacing: 0.18em; }
.hyread__rule > span:nth-child(3) { color: var(--muted); }
.hyread__rule .hdrule__end { height: 8px; }
.hyread__note { margin: 0; font-size: clamp(15px, 0.74vw, 19px); font-weight: 300; line-height: 1.5; color: var(--ink); text-wrap: pretty; }
.hyread__foot { display: flex; align-items: center; gap: 14px; margin: 0; padding-top: 12px; border-top: 1px solid rgba(var(--ink-rgb), 0.16); font-family: var(--mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); }

/* --- 8F Счёт по месяцам: читальная плита слева, двенадцать столбцов справа ----------------- */
.hyec { display: flex; flex-direction: column; gap: 20px; }
.hyec__total { font-size: clamp(36px, 2.66vw, 68px); }
.hyec__pick {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 760px);
  gap: clamp(18px, 1.33vw, 34px);
  align-items: stretch;
  padding: clamp(16px, 1.02vw, 26px) clamp(18px, 1.09vw, 28px);
  border-radius: 10px;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22);
}
.hyec__pick[hidden] { display: none; }
.hyec__read { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.hyec__readhead { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; margin: 0; padding-bottom: 12px; border-bottom: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--faint); }
.hyec__readno { color: var(--accent); }
.hyec__readtitle { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin: 0; }
.hyec__readlabel { font-family: var(--display); font-size: clamp(22px, 1.41vw, 36px); line-height: 1.05; letter-spacing: -0.02em; }
.hyec__readamount { font-family: var(--display); font-size: clamp(22px, 1.41vw, 36px); line-height: 1; color: var(--accent); }
.hyec__readdetail { margin: 0; font-size: clamp(15px, 0.74vw, 19px); font-weight: 300; line-height: 1.5; color: var(--muted); text-wrap: pretty; }
.hyec__move { display: flex; align-items: center; gap: 12px; margin: 0; padding-top: 12px; border-top: 1px solid rgba(var(--ink-rgb), 0.16); font-family: var(--mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; line-height: 1.5; color: var(--ink); }
.hyec__chart { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.hyec__charthead { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--faint); }
.hyec__peaknote { color: var(--muted); text-align: right; }
.hyec__months { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 8px; align-items: end; height: 174px; margin: 0; }
.hyec__month { display: flex; flex-direction: column; justify-content: flex-end; gap: 8px; height: 100%; }
.hyec__value { font-family: var(--mono); font-size: 12px; letter-spacing: 0.06em; text-align: center; color: var(--muted); }
.hyec__bar { display: block; width: 100%; border-radius: 3px 3px 0 0; background: rgba(var(--ink-rgb), 0.42); }
.hyec__bar--peak { background: var(--accent); }
.hyh-12 { height: 12px; }
.hyh-16 { height: 16px; }
.hyh-23 { height: 23px; }
.hyh-31 { height: 31px; }
.hyh-59 { height: 59px; }
.hyh-62 { height: 62px; }
.hyh-68 { height: 68px; }
.hyh-73 { height: 73px; }
.hyh-79 { height: 79px; }
.hyh-84 { height: 84px; }
.hyh-90 { height: 90px; }
.hyh-91 { height: 91px; }
.hyh-99 { height: 99px; }
.hyh-101 { height: 101px; }
.hyh-112 { height: 112px; }
.hyh-115 { height: 115px; }
.hyh-117 { height: 117px; }
.hyh-122 { height: 122px; }
.hyh-123 { height: 123px; }
.hyh-150 { height: 150px; }
.hyec__names { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 8px; margin: 0; padding-top: 8px; border-top: 1px solid rgba(var(--ink-rgb), 0.22); }
.hyec__name { font-family: var(--mono); font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; text-align: center; color: var(--faint); }
.hyec__name--peak { color: var(--accent); }

/* --- 10E Выписка из реестра: печать, четыре записи, полоса дней -------------------------------- */
.hyph { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 480px); gap: clamp(20px, 1.56vw, 40px); align-items: stretch; }
.hyph__extract {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-width: 0;
  padding: clamp(18px, 1.17vw, 30px) clamp(18px, 1.33vw, 34px) clamp(18px, 1.25vw, 32px);
  border-radius: 12px;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
}
.hyph__seal {
  position: absolute;
  right: 26px;
  top: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: 94px;
  height: 94px;
  padding: 10px;
  border-radius: 50%;
  transform: rotate(-8deg);
  box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.55), inset 0 0 0 5px rgba(var(--accent-rgb), 0.1);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-align: center;
  line-height: 1.3;
  color: var(--accent);
}
.hyph__head { display: flex; flex-direction: column; gap: 7px; margin: 0; padding-bottom: 16px; padding-right: 120px; border-bottom: 2px solid var(--ink); }
.hyph__title { font-family: var(--display); font-size: clamp(22px, 1.41vw, 36px); line-height: 1; letter-spacing: -0.018em; }
.hyph__source { font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--faint); }
.hyph__rows { margin: 0; padding: 0; list-style: none; }
.hyph__row { display: flex; align-items: center; gap: 16px; padding: 16px 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.12); }
.hyph__row--moved { border-bottom-color: rgba(var(--ink-rgb), 0.2); }
.hyph__dot { width: 9px; height: 9px; flex: none; border-radius: 50%; background: var(--ink); }
.hyph__row--moved .hyph__dot { width: 12px; height: 12px; background: var(--accent); }
.hyph__no { font-family: var(--mono); font-size: 12px; letter-spacing: 0.1em; color: var(--faint); }
.hyph__date { font-family: var(--mono); font-size: 12px; letter-spacing: 0.1em; color: var(--muted); white-space: nowrap; }
.hyph__event { font-size: clamp(16px, 0.78vw, 20px); font-weight: 300; white-space: nowrap; }
.hyph__leader { flex: 1; height: 1px; background: repeating-linear-gradient(90deg, rgba(var(--ink-rgb), 0.3) 0 2px, transparent 2px 7px); }
.hyph__track { display: block; width: 150px; flex: none; height: 7px; border-radius: 4px; background: rgba(var(--ink-rgb), 0.1); overflow: hidden; }
.hyph__level { display: block; height: 100%; background: rgba(var(--ink-rgb), 0.42); }
.hyph__row--moved .hyph__level { background: var(--accent); }
.hylv-37-5 { width: 37.5%; }
.hylv-75-0 { width: 75.0%; }
.hyph__change { font-family: var(--mono); font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; white-space: nowrap; color: var(--faint); }
.hyph__row--moved .hyph__change { color: var(--accent); }
.hyph__asking { font-family: var(--mono); font-size: clamp(12px, 0.66vw, 17px); letter-spacing: 0.06em; white-space: nowrap; }
.hyph__days { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: clamp(16px, 1.17vw, 30px); align-items: end; padding-top: 20px; }
.hyph__dayswords { display: flex; flex-direction: column; gap: 9px; margin: 0; min-width: 0; }
.hyph__daysbar { position: relative; display: block; height: 12px; border-radius: 6px; background: rgba(var(--ink-rgb), 0.1); }
.hyph__daysfill { display: block; height: 100%; width: 100%; border-radius: 6px; background: rgba(var(--ink-rgb), 0.42); }
.hyph__median { position: absolute; left: 76.1%; top: -5px; bottom: -5px; width: 2px; background: var(--accent); }
.hyph__daysline { font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); }
.hyph__now { font-family: var(--display); font-size: clamp(28px, 1.72vw, 44px); line-height: 1; letter-spacing: -0.024em; color: var(--accent); }
.hyph__dark {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 16px;
  min-width: 0;
  padding: clamp(18px, 1.09vw, 28px) clamp(18px, 1.17vw, 30px);
  border-radius: 12px;
  background: var(--c-ink-fixed);
  color: var(--c-cream);
}
.hyph__darkhead { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin: 0; padding-bottom: 14px; border-bottom: 1px solid rgba(var(--c-cream-rgb), 0.2); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; }
.hyph__darkkicker { color: var(--gold); }
.hyph__darkwhere { color: rgba(var(--c-cream-rgb), 0.6); }
.hyph__cmps { display: flex; flex-direction: column; margin: 0; }
.hyph__cmp { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; align-items: baseline; padding: 12px 0; border-bottom: 1px solid rgba(var(--c-cream-rgb), 0.12); }
.hyph__cmpwords { display: flex; flex-direction: column; gap: 4px; min-width: 0; font-family: var(--mono); font-size: 12px; text-transform: uppercase; }
.hyph__cmplabel { letter-spacing: 0.2em; color: rgba(var(--c-cream-rgb), 0.62); }
.hyph__cmpnote { letter-spacing: 0.14em; color: rgba(var(--c-cream-rgb), 0.45); }
.hyph__cmpval { font-family: var(--display); font-size: clamp(22px, 1.33vw, 34px); line-height: 1; color: var(--c-cream); }
.hyph__cmpval--gold { color: var(--gold); }
.hyph__note { margin: 0; font-size: clamp(15px, 0.66vw, 17px); font-weight: 300; line-height: 1.55; color: rgba(var(--c-cream-rgb), 0.78); text-wrap: pretty; }

/* --- 16G Вопросы: статистика, лента с фильтром, форма с живым слипом --------------------------- */
.hyrv { display: flex; flex-direction: column; gap: 26px; }
.hyrv__stats { display: flex; align-items: stretch; flex-wrap: wrap; margin: 0; padding-bottom: 22px; border-bottom: 2px solid var(--ink); }
.hyrv__stat { display: flex; flex-direction: column; gap: 6px; padding: 0 28px; border-right: 1px solid rgba(var(--ink-rgb), 0.18); }
.hyrv__stat:first-child { padding-left: 0; }
.hyrv__stat:last-child { border-right: 0; }
.hyrv__statval { font-family: var(--display); font-size: clamp(28px, 1.80vw, 46px); line-height: 1; letter-spacing: -0.024em; }
.hyrv__statval--red { color: var(--accent); }
.hyrv__threadhead { border-bottom: 1px solid rgba(var(--ink-rgb), 0.22); }
.hyrv__topics { margin: 0; padding: 18px 0 4px; }
.hyrv__compose { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 620px); gap: clamp(20px, 1.56vw, 40px); align-items: stretch; }
.hyslip { padding: clamp(20px, 1.25vw, 32px) clamp(20px, 1.33vw, 34px) clamp(20px, 1.33vw, 34px); overflow: visible; }
.hyslip__head { display: flex; flex-direction: column; gap: 9px; margin: 0; padding-bottom: 20px; border-bottom: 2px solid var(--ink); }
.hyslip__title { font-family: var(--display); font-size: clamp(26px, 1.80vw, 46px); line-height: 1; letter-spacing: -0.022em; }
.hyslip__step { margin: 22px 0 0; padding: 0; border: 0; min-width: 0; }
.hyslip__label { display: block; padding: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.24em; text-transform: uppercase; color: var(--faint); }
.hyslip__kinds,
.hyslip__abouts { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 12px; }
.hyslip__abouts { gap: 10px; }
.hyslip__kind,
.hyslip__about {
  display: inline-flex;
  align-items: center;
  height: 56px;
  padding: 0 26px;
  border-radius: 999px;
  background: var(--bg);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
  cursor: pointer;
  transition: background 180ms ease-in-out, color 180ms ease-in-out;
}
.hyslip__about { height: 44px; padding: 0 18px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); }
.hyslip__kind:hover,
.hyslip__about:hover { background: rgba(var(--accent-rgb), 0.05); }
.g4pill__input:checked + .hyslip__kind { background: var(--ink); box-shadow: none; color: var(--bg); }
.g4pill__input:checked + .hyslip__about { background: var(--accent); box-shadow: none; color: var(--c-cream); }
.g4pill__input:focus-visible + .hyslip__kind,
.g4pill__input:focus-visible + .hyslip__about { outline: 2px solid var(--accent); outline-offset: 2px; }
.hyslip__field { display: flex; flex-direction: column; gap: 8px; margin: 22px 0 0; }
.hyslip__text { min-height: 160px; padding: 20px 22px; }
.hyslip__pair { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 18px; }
.hyslip__pair .hyslip__field { margin-top: 0; }
.hyslip__input { height: 60px; padding: 0 20px; }
.hyslip__viewed { position: relative; display: flex; align-items: center; gap: 14px; margin: 18px 0 0; }
.hyslip__check { position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; pointer-events: none; }
.hyslip__box {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 30px;
  height: 30px;
  border-radius: 6px;
  background: var(--bg);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3);
  font-family: var(--mono);
  font-size: clamp(12px, 0.51vw, 13px);
  color: var(--faint);
  cursor: pointer;
  transition: background 180ms ease-in-out;
}
.hyslip__check:checked + .hyslip__box { background: var(--ink); box-shadow: none; color: var(--bg); }
.hyslip__check:checked + .hyslip__box::after { content: "\2713"; }
.hyslip__check:focus-visible + .hyslip__box { outline: 2px solid var(--accent); outline-offset: 2px; }
.hyslip__viewedlabel { font-family: var(--mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); cursor: pointer; }
.hyslip__send { padding: 0 clamp(18px, 1.02vw, 26px); }
.hyslip__note { margin-top: 14px; }
.hyrv__side { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.hyslip__preview { gap: 16px; padding: clamp(16px, 1.09vw, 28px) clamp(18px, 1.17vw, 30px); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22); }
.hyslip__body { display: grid; grid-template-columns: 42px minmax(0, 1fr) auto; gap: 18px; align-items: start; margin: 0; }
.hyslip__seal { width: 42px; height: 42px; }
.hyslip__body .hxpreview__text { font-size: clamp(16px, 0.82vw, 21px); }
.hyslip__answer { display: grid; grid-template-columns: 42px minmax(0, 1fr); gap: 18px; align-items: start; margin: 0; padding-top: 16px; border-top: 1px dashed rgba(var(--ink-rgb), 0.28); }
.hyslip__answer .hxnote__body { gap: 6px; }
.hyslip__who { font-family: var(--display); font-size: clamp(17px, 0.86vw, 22px); line-height: 1.2; color: var(--ink); }
.hyslip__answernote { font-family: var(--mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--faint); }
.hyrv__pledges {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  flex: 1;
  padding: clamp(18px, 1.09vw, 28px) clamp(18px, 1.25vw, 32px);
  border-radius: 14px;
  background: var(--c-ink-fixed);
  color: var(--c-cream);
}
.hyrv__pledgehead { padding-bottom: 14px; border-bottom: 1px solid rgba(var(--c-cream-rgb), 0.2); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--gold); }
.hyrv__pledge { display: flex; flex-direction: column; gap: 5px; padding: 16px 0; border-bottom: 1px solid rgba(var(--c-cream-rgb), 0.12); }
.hyrv__pledgelabel { font-family: var(--display); font-size: clamp(18px, 0.90vw, 23px); line-height: 1.1; }
.hyrv__pledgenote { font-family: var(--mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; line-height: 1.5; color: rgba(var(--c-cream-rgb), 0.62); }

/* ==========================================================================
   Home detail v6 — одна плита и просмотрщик, описание с источниками, разворот
   с ценой, пять цифр против района, история по дням, подпись советника (hz*)
   ========================================================================== */

.hzflow { margin-top: clamp(32px, 2.34vw, 60px); padding-top: clamp(32px, 2.34vw, 60px); border-top: 1px solid rgba(var(--ink-rgb), 0.22); }
.hzflow > .hwsec:first-child { padding-top: 0; border-top: 0; }
.hzflow .hdnearby { padding-top: clamp(32px, 2.34vw, 60px); border-top: 1px solid rgba(var(--ink-rgb), 0.22); }

/* --- 2L Одна плита: кнопка, открывает просмотрщик ------------------------------------------ */
.hzplates { display: flex; flex-direction: column; gap: 22px; margin-top: 0; }
.hzpage .hdhead { margin-bottom: 15px; }
.hzplate__dim { padding: 0; letter-spacing: 0.18em; }
.hzplate {
  display: block;
  width: 100%;
  height: clamp(260px, 40.62vw, 1040px);
  padding: 0;
  border: 0;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22);
  color: var(--ink);
  text-align: left;
  cursor: zoom-in;
}
.hzplate:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.hzplate .hdhero__third { background: rgba(var(--ink-rgb), 0.12); }
.hzplate .hdph { font-size: clamp(12px, 0.55vw, 14px); letter-spacing: 0.26em; }
.hzplate__cap { left: 28px; bottom: 26px; box-shadow: 0 12px 30px rgba(var(--ink-rgb), 0.2); }
.hzplate__cap .hdcap__no,
.hzplate__cap .hdcap__text { height: 46px; }
.hzplate__cap .hdcap__no { padding: 0 18px; }
.hzplate__cap .hdcap__text { padding: 0 20px; }
.hzplate__note { right: 28px; bottom: 26px; height: 46px; padding: 0 18px; }
.hzplate__open {
  position: absolute;
  right: 28px;
  top: 26px;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  height: 46px;
  padding: 0 18px;
  border-radius: 6px;
  background: rgba(var(--bg-rgb), 0.96);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--c-ink-fixed);
  transition: background 180ms ease-in-out, color 180ms ease-in-out;
}
.hzplate:hover .hzplate__open { background: var(--c-ink-fixed); color: var(--c-cream); }

/* --- LA Просмотрщик: плёнка, лист 2320 = плита | карточка советника 560 ------------------------ */
.hzpop {
  position: fixed;
  inset: 0;
  z-index: 80;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding: clamp(16px, 3.12vw, 80px) clamp(12px, 2.34vw, 60px);
  background: rgba(var(--c-ink-fixed-rgb), 0.55);
  overflow-y: auto;
  overscroll-behavior: contain;
}
.hzpop[hidden] { display: none; }
.hzpop__shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 560px);
  align-items: stretch;
  width: 100%;
  max-width: 2320px;
  border-radius: 14px;
  background: var(--sheet);
  overflow: hidden;
  box-shadow: 0 40px 120px rgba(var(--c-ink-fixed-rgb), 0.4);
}
.hzpop__view { display: flex; flex-direction: column; min-width: 0; padding: clamp(16px, 1.17vw, 30px) clamp(16px, 1.25vw, 32px) clamp(16px, 1.02vw, 26px); }
.hzpop__head { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin: 0; padding-bottom: 18px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.2); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; }
.hzpop__ref { color: var(--accent); }
.hzpop__count { color: var(--faint); text-align: right; }
.hzpop__dim { margin-top: 18px; padding: 0; letter-spacing: 0.18em; }
.hzpop__dim .hdrule__end { height: 8px; }
.hzpop__frame { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 14px; align-items: stretch; margin-top: 12px; }
.hzpop__vrule { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; }
.hzpop__vend { width: 8px; height: 1px; background: rgba(var(--ink-rgb), 0.45); }
.hzpop__vline { flex: 1; width: 1px; background: rgba(var(--ink-rgb), 0.26); }
.hzpop__vtext { font-family: var(--mono); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--faint); writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap; }
.hzpop__well { height: clamp(240px, 32.03vw, 820px); border-radius: 10px; }
.hzpop__well .hdph { font-size: clamp(12px, 0.51vw, 13px); letter-spacing: 0.26em; }
.hzpop__cap { left: 26px; bottom: 26px; box-shadow: 0 12px 30px rgba(var(--ink-rgb), 0.2); }
.hzpop__cap .hdcap__no,
.hzpop__cap .hdcap__text { height: 44px; }
.hzpop__note { right: 26px; bottom: 26px; height: 44px; }
.hzpop__nav { display: flex; align-items: center; gap: 18px; margin: 20px 0 0; }
.hzpop__arrow {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 54px;
  height: 54px;
  border: 0;
  border-radius: 50%;
  background: rgba(var(--bg-rgb), 0.96);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  color: var(--ink);
  font-family: var(--text);
  font-size: clamp(16px, 0.74vw, 19px);
  cursor: pointer;
  transition: background 180ms ease-in-out, color 180ms ease-in-out;
}
.hzpop__arrow:hover { background: var(--ink); color: var(--bg); }
.hzpop__arrow:focus-visible,
.hzpop__close:focus-visible,
.hzpop__tick:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.hzpop__ticks { display: flex; gap: 8px; flex: 1; }
.hzpop__tick { flex: 1; height: 4px; padding: 0; border: 0; border-radius: 2px; background: rgba(var(--ink-rgb), 0.22); cursor: pointer; transition: background 160ms ease-in-out; }
.hzpop__tick:hover { background: rgba(var(--ink-rgb), 0.45); }
.hzpop__tick--on,
.hzpop__tick--on:hover { background: var(--accent); }
.hzpop__hint .g4arrow { font-family: var(--text); font-size: clamp(12px, 0.55vw, 14px); }
.hzpop__hint { font-family: var(--mono); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--faint); white-space: nowrap; }
.hzpop__side { display: flex; flex-direction: column; min-width: 0; padding: clamp(16px, 1.17vw, 30px) clamp(16px, 1.25vw, 32px) clamp(16px, 1.02vw, 26px); background: var(--bg); border-left: 1px solid rgba(var(--ink-rgb), 0.18); }
.hzpop__sidehead { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin: 0; padding-bottom: 18px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.2); }
.hzpop__close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 50%;
  background: transparent;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34);
  color: var(--ink);
  font-family: var(--text);
  font-size: clamp(13px, 0.59vw, 15px);
  cursor: pointer;
  transition: background 180ms ease-in-out, color 180ms ease-in-out;
}
.hzpop__close:hover { background: var(--accent); box-shadow: none; color: var(--c-cream); }
.hzpop__portrait { position: relative; height: clamp(200px, 10.94vw, 280px); margin-top: 20px; border-radius: 10px; background: var(--c-night); color: var(--c-cream); overflow: hidden; }
.hzpop__portrait .hxtick { width: 20px; height: 20px; border-color: rgba(var(--c-cream-rgb), 0.6); }
.hzpop__portrait .hxtick--tl { left: 16px; top: 14px; }
.hzpop__portrait .hxtick--br { right: 16px; bottom: 14px; }
.hzpop__portrait .hdph { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: rgba(var(--c-cream-rgb), 0.6); }
.hzpop__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 50%; }
.hzpop__scrim {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 22px;
  background: linear-gradient(to top, rgba(20, 17, 16, 0.94) 0%, rgba(20, 17, 16, 0.55) 55%, rgba(20, 17, 16, 0) 100%);
  pointer-events: none;
}
.hzpop__who { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.hzpop__name { font-family: var(--display); font-size: clamp(22px, 1.17vw, 30px); line-height: 1; letter-spacing: -0.016em; color: var(--c-cream); }
.hzpop__role { font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold); }
.hzpop__phone { font-family: var(--mono); font-size: 12px; letter-spacing: 0.1em; color: rgba(var(--c-cream-rgb), 0.78); white-space: nowrap; }
.hzpop__strip {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 22px 0 0;
  padding: 14px 18px;
  border-radius: 8px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.28);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--muted);
}
.hzpop__strip--red { background: var(--accent); box-shadow: none; color: var(--c-cream); }
.hzpop__quote { margin: 18px 0 0; font-family: var(--display); font-style: italic; font-size: clamp(17px, 0.82vw, 21px); line-height: 1.4; color: var(--ink); text-wrap: pretty; }
.hzpop__facts { display: flex; flex-direction: column; margin: 20px 0 0; padding-top: 6px; border-top: 1px solid rgba(var(--ink-rgb), 0.18); }
.hzpop__fact { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px; align-items: baseline; padding: 13px 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.hzpop__factlabel { font-family: var(--mono); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--faint); }
.hzpop__factval { font-family: var(--mono); font-size: clamp(12px, 0.59vw, 15px); letter-spacing: 0.04em; color: var(--ink); }
.hzpop__factval--red { color: var(--accent); }
.hzpop__acts { display: flex; flex-direction: column; gap: 12px; margin: auto 0 0; padding-top: 20px; }
.hzpop__ask { height: clamp(50px, 2.50vw, 64px); margin-top: 0; }
.hzpop__book { height: clamp(48px, 2.34vw, 60px); margin-top: 0; }
.hzpop__seller { font-family: var(--mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); }
body.hzpop-open { overflow: hidden; }

/* --- 5C Описание с источниками: два абзаца, цитата, двор с ценой ----------------------------- */
.hzdesc { display: flex; flex-direction: column; gap: clamp(20px, 1.25vw, 32px); }
.hzdesc__head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: clamp(18px, 1.56vw, 40px);
  align-items: end;
  padding-bottom: 20px;
  border-bottom: 2px solid var(--ink);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
}
.hzdesc__lead { display: flex; flex-direction: column; gap: 9px; margin: 0; min-width: 0; }
.hzdesc__lede { font-family: var(--display); font-size: clamp(26px, 1.80vw, 46px); line-height: 1.1; letter-spacing: -0.02em; text-transform: none; text-wrap: pretty; }
.hzdesc__words { color: var(--faint); }
.hzdesc__date { color: var(--muted); }
.hzdesc__two { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(30px, 3.12vw, 80px); }
.hzdesc__para { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.hzdesc__paratop { display: flex; align-items: baseline; gap: 14px; margin: 0; }
.hzdesc__no { font-family: var(--mono); font-size: 12px; letter-spacing: 0.1em; color: var(--faint); }
.hzdesc__no--red { color: var(--accent); }
.hzdesc__text { margin: 0; font-size: clamp(17px, 0.98vw, 25px); font-weight: 300; line-height: 1.62; color: var(--ink); text-wrap: pretty; }
.hzdesc__source { font-family: var(--mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--faint); }
.hzdesc__quote {
  position: relative;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) minmax(0, 420px);
  gap: clamp(20px, 1.72vw, 44px);
  align-items: center;
  padding: clamp(20px, 1.41vw, 36px) clamp(20px, 1.56vw, 40px);
  border-radius: 14px;
  background: var(--sheet);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26);
  border-left: 3px solid var(--accent);
}
.hzdesc__quote .hdtick { width: 22px; height: 22px; border-color: rgba(var(--ink-rgb), 0.4); }
.hzdesc__quote .hdtick--tl { left: 18px; top: 18px; }
.hzdesc__quote .hdtick--br { right: 18px; bottom: 18px; }
.hzdesc__seal {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.55), inset 0 0 0 6px rgba(var(--accent-rgb), 0.1);
  font-family: var(--display);
  font-size: clamp(22px, 1.17vw, 30px);
  color: var(--accent);
}
.hzdesc__quotebody { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.hzdesc__quotetext { margin: 0; font-family: var(--display); font-size: clamp(24px, 1.64vw, 42px); line-height: 1.3; letter-spacing: -0.014em; text-wrap: pretty; }
.hzdesc__surveyor { font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); }
.hzdesc__noteds { display: flex; flex-direction: column; padding-left: clamp(20px, 1.72vw, 44px); border-left: 1px solid rgba(var(--ink-rgb), 0.2); }
.hzdesc__noted { display: flex; flex-direction: column; gap: 5px; padding: 13px 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.hzdesc__notedlabel { font-family: var(--mono); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--faint); }
.hzdesc__notedval { font-family: var(--display); font-size: clamp(18px, 0.94vw, 24px); line-height: 1.1; }
.hzdesc__notedval--red { color: var(--accent); }
.hzdesc__read { display: inline-flex; align-items: center; gap: 12px; margin-top: 16px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--ink); text-decoration: none; }
.hzdesc__read:hover { color: var(--accent); }
.hzdesc__court { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 420px); gap: clamp(24px, 2.34vw, 60px); align-items: start; }
.hzdesc__para--court { padding-left: 30px; border-left: 2px solid var(--accent); }
.hzdesc__tag {
  display: inline-flex;
  align-items: center;
  height: 26px;
  padding: 0 11px;
  border-radius: 4px;
  background: var(--accent);
  color: var(--c-cream);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  white-space: nowrap;
}
.hzdesc__courtfoot { padding-top: 34px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; line-height: 1.7; color: var(--faint); }

/* --- 6D Разворот с ценой на странице: пятая колонка сметы, стопка листов ---------------------- */
.hzio__head { grid-template-columns: minmax(0, 1fr) minmax(0, 460px); gap: clamp(20px, 1.72vw, 44px); }
.hzio__title { font-size: clamp(30px, 2.11vw, 54px); }
.hzio__spread { gap: clamp(24px, 2.89vw, 74px); }
.hzio__page {
  padding: 30px clamp(16px, 1.25vw, 32px) 34px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22), 6px 6px 0 0 var(--sheet), 6px 6px 0 1px rgba(var(--ink-rgb), 0.14), 12px 12px 0 0 var(--sheet), 12px 12px 0 1px rgba(var(--ink-rgb), 0.1), 0 22px 44px rgba(var(--ink-rgb), 0.08);
}
.hzio__page .hyio__name { font-size: clamp(26px, 1.80vw, 46px); }
.hzio__bar { width: 210px; }
.hzio__row { grid-template-columns: 46px clamp(110px, 6.64vw, 170px) minmax(0, 1fr) auto clamp(80px, 4.69vw, 120px); }
.hzio__cost { font-family: var(--mono); font-size: clamp(12px, 0.55vw, 14px); letter-spacing: 0.04em; text-align: right; }
.hzio__cost--red { color: var(--accent); }
.hzio__cost--muted { color: var(--muted); }
.hzio__cost--faint { color: rgba(var(--ink-rgb), 0.28); }
.hzio__pagefoot { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 20px; align-items: end; margin: 0; padding-top: 20px; }
.hzio__priced { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.hzio__sum { font-family: var(--display); font-size: clamp(22px, 1.33vw, 34px); line-height: 1; letter-spacing: -0.02em; color: var(--accent); }
.hzio__pricednote { font-family: var(--mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); }
.hzio__foot { font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); }

/* --- 8B Пять цифр против района ------------------------------------------------------------ */
.hzec { display: flex; flex-direction: column; }
.hzec__head { letter-spacing: 0.22em; }
.hzec__figs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); }
.hzec__fig { display: flex; flex-direction: column; gap: 12px; min-width: 0; padding: clamp(16px, 1.02vw, 26px) clamp(14px, 1.09vw, 28px); border-right: 1px solid rgba(var(--ink-rgb), 0.16); }
.hzec__fig:first-child { padding-left: 0; }
.hzec__fig:last-child { padding-right: 0; border-right: 0; }
.hzec__value { font-family: var(--display); font-size: clamp(36px, 2.81vw, 72px); line-height: 0.95; letter-spacing: -0.024em; }
.hzec__value--red { color: var(--accent); }
.hzec__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--muted); }
.hzec__bars { display: flex; flex-direction: column; gap: 7px; padding-top: 12px; border-top: 1px solid rgba(var(--ink-rgb), 0.16); }
.hzec__row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: center; }
.hzec__track { display: block; height: 7px; border-radius: 4px; background: rgba(var(--ink-rgb), 0.08); overflow: hidden; }
.hzec__fill { display: block; height: 100%; background: rgba(var(--ink-rgb), 0.5); }
.hzec__fill--red { background: var(--accent); }
.hzec__fill--theirs { background: rgba(var(--ink-rgb), 0.25); }
.hzec__mine,
.hzec__theirs { font-family: var(--mono); font-size: 12px; letter-spacing: 0.06em; white-space: nowrap; color: var(--ink); }
.hzec__theirs { color: var(--faint); }
.hzec__cmp {
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  height: 24px;
  padding: 0 10px;
  border-radius: 4px;
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  white-space: nowrap;
  color: var(--muted);
}
.hzec__cmp--worse { box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.45); color: var(--accent); }
.hzec__grades { grid-template-columns: repeat(7, minmax(0, 1fr)); max-width: 760px; margin-top: 26px; }
.hzec__grade { height: 44px; border-radius: 6px; color: rgba(var(--ink-rgb), 0.4); }
.hzec__grade.hdgrade--here { color: var(--bg); }
.hzec__comparenote { margin-top: 10px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--faint); }
.hzec__foot { display: flex; align-items: center; gap: 22px; margin: 22px 0 0; padding-top: 20px; border-top: 1px solid rgba(var(--ink-rgb), 0.2); font-family: var(--mono); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--faint); }

/* --- 10C История по настоящим дням: засечки на day/71, вторая с длинной ножкой -------------------- */
.hzph__tick--1 { left: 9.86%; }
.hzph__tick--2 { left: 45.07%; }
.hzph__text { display: flex; flex-direction: column; gap: 8px; align-items: center; white-space: nowrap; }
.hwph__tick--start .hzph__text { align-items: flex-start; }
.hwph__tick--end .hzph__text { align-items: flex-end; }
.hzph__tick--offset { top: -4px; }
.hzph__tick--offset .hzph__text { transform: translateX(128px); }
.hzph__tick--offset .hwph__stem { height: 34px; }

/* --- 11B Советник: портрет 640, подпись, чего не делает, полоса часов ------------------------------ */
.hzadv__band { grid-template-columns: minmax(0, 640px) minmax(0, 1fr) minmax(0, 740px); }
.hzadv__portrait { min-height: clamp(320px, 21.88vw, 560px); }
/* Владелец: средняя карточка в рамке, как докет справа */
.hzadv .hvadv__card { padding: clamp(20px, 1.25vw, 32px); border-right: 0; border-radius: 12px; background: var(--sheet); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.26); }
.hzadv .hvadv__channels { padding-bottom: 0; }
.hzadv__statement { display: flex; flex-direction: column; gap: 14px; margin: 0; padding: 24px 0; }
.hzadv__quote { font-family: var(--display); font-style: italic; font-size: clamp(20px, 1.17vw, 30px); line-height: 1.35; letter-spacing: -0.012em; color: var(--ink); text-wrap: pretty; }
.hzadv__signed { display: flex; align-items: center; gap: 14px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--faint); }
.hzadv__sigline { width: 120px; height: 1px; background: rgba(var(--ink-rgb), 0.4); }
.hzadv__wonts { display: flex; flex-direction: column; padding-bottom: 22px; }
.hzadv__wonthead { display: flex; align-items: center; gap: 14px; margin: 0; padding-bottom: 4px; }
.hzadv__wontlist { margin: 0; padding: 0; list-style: none; }
.hzadv__wont { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 14px; align-items: baseline; padding: 13px 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.hzadv__wont:last-child { border-bottom: 0; }
.hzadv__wontno { display: inline-flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.1em; color: var(--accent); }
.hzadv__dash { width: 12px; height: 2px; background: var(--accent); }
.hzadv__wonttext { font-size: clamp(15px, 0.74vw, 19px); font-weight: 300; line-height: 1.45; color: var(--muted); text-wrap: pretty; }
.hzadv__hours { display: flex; flex-direction: column; gap: 9px; padding-top: 20px; }
.hzadv__strip { display: flex; flex-direction: column; gap: 9px; }
.hzadv__strip[hidden] { display: none; }
.hzadv__bars { display: flex; align-items: flex-end; gap: 7px; height: 30px; }
.hzadv__hour { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; flex: 1 1 0; min-width: 0; }
.hzadv__bar { display: block; width: 100%; height: 26px; border-radius: 3px; background: var(--ink); }
.hzadv__bar--busy { height: 14px; background: repeating-linear-gradient(135deg, rgba(var(--ink-rgb), 0.22) 0 2px, transparent 2px 7px); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); }
.hzadv__labels { display: flex; gap: 7px; }
.hzadv__hourlabel { flex: 1 1 0; min-width: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.06em; text-align: center; color: var(--ink); }
.hzadv__hourlabel--busy { color: var(--faint); }
.hzadv__hoursnote { font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--faint); }

/* --- 16D Вопросы: пара поле|имя, три шага, открытые в красной плите, линейка ответов ------------- */
.hzrv { grid-template-columns: minmax(0, 820px) minmax(0, 1fr); gap: clamp(20px, 1.95vw, 50px); }
.hzslip__pair { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 260px); gap: 14px; align-items: start; margin-top: 22px; }
.hzslip__pair .hxslip__field { margin-top: 0; }
.hzslip__text { min-height: 152px; }
.hzrv__steps { display: flex; align-items: stretch; margin: 0; padding-top: 14px; border-top: 1px dashed rgba(var(--ink-rgb), 0.28); }
.hzrv__step { display: flex; flex-direction: column; gap: 4px; flex: 1 1 0; min-width: 0; padding: 0 14px; border-right: 1px solid rgba(var(--ink-rgb), 0.16); }
.hzrv__step:first-child { padding-left: 0; }
.hzrv__step:last-child { padding-right: 0; border-right: 0; }
.hzrv__steplabel { font-family: var(--mono); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--accent); }
.hzrv__stepnote { font-family: var(--mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; line-height: 1.5; color: var(--faint); }
.hzrv__openplate { display: flex; flex-direction: column; margin-top: 18px; padding: 18px 22px; border-radius: 10px; background: rgba(var(--accent-rgb), 0.05); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.3); }
.hzrv__openhead { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin: 0; padding-bottom: 6px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--faint); }
.hzrv__opens { margin: 0; padding: 0; list-style: none; }
.hzrv__open { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto auto; gap: 16px; align-items: center; padding: 14px 0; border-bottom: 1px solid rgba(var(--accent-rgb), 0.2); }
.hzrv__open:last-child { border-bottom: 0; }
.hzrv__openno { font-family: var(--mono); font-size: 12px; letter-spacing: 0.1em; color: var(--accent); }
.hzrv__openq { font-size: clamp(15px, 0.74vw, 19px); font-weight: 300; line-height: 1.4; color: var(--ink); text-wrap: pretty; }
.hzrv__opento,
.hzrv__openago { font-family: var(--mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; white-space: nowrap; color: var(--muted); }
.hzrv__openago { color: var(--faint); }
.hzrv__rule { display: flex; flex-direction: column; gap: 8px; padding: 20px 0 16px; }
.hzrv__marks { display: flex; align-items: flex-end; gap: 8px; height: 52px; }
.hzrv__mark { display: flex; flex-direction: column; align-items: center; justify-content: flex-end; flex: 1 1 0; min-width: 0; }
.hzrv__markbar { display: block; width: 100%; border-radius: 3px 3px 0 0; background: rgba(var(--ink-rgb), 0.45); }
.hzrv__markbar--slow { background: var(--accent); }
.hzh-5 { height: 5px; }
.hzh-7 { height: 7px; }
.hzh-16 { height: 16px; }
.hzh-46 { height: 46px; }
.hzrv__marklabels { display: flex; gap: 8px; }
.hzrv__marklabel { flex: 1 1 0; min-width: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.06em; text-align: center; color: var(--faint); }
.hzrv__marklabel--slow { color: var(--accent); }
.hzrv__rulenote { font-family: var(--mono); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--faint); }

/* ==========================================================================
   75. Home detail v1 — адаптив
   ========================================================================== */
/* Ключ рядом с планом живёт только на широком экране: уже 1680 он тесен
   (переносы, сплющенная печать) — уходит под план на всю ширину. */
/* v6: на 1920 средняя карточка советника ужимается до 348px — владелец просил
   на пятую часть шире: портрет и докет отдают по 40px */
@media (max-width: 2000px) {
  .hzadv__band { grid-template-columns: minmax(0, 540px) minmax(0, 1fr) minmax(0, 640px); }
}

@media (max-width: 1680px) {
  .hdplan,
  .hdplan--drawn { grid-template-columns: minmax(0, 1fr); }
  .hdplan--drawn .hdkey { padding: clamp(20px, 1.25vw, 32px); }
  .hdplan--drawn .hdroom { padding: clamp(12px, 0.66vw, 17px) 0; gap: 18px; }
  .hdplan--drawn .hdsign--key { margin-top: clamp(14px, 0.86vw, 22px); }
}

@media (max-width: 1400px) {
  .hdhead__row { grid-template-columns: minmax(0, 1fr); gap: clamp(16px, 0.94vw, 24px); }
  .hdhead__side { align-items: flex-start; margin-bottom: 0; }
  .hdhead__mark { left: 50%; }
  .hdplates__top { grid-template-columns: 34px minmax(0, 1fr); }
  .hdpairs { grid-column: 2; }
  .hdpairs__stack { flex-direction: row; }
  .hdpair { min-height: clamp(160px, 14.06vw, 360px); }
  .hdplates__strip { grid-template-columns: 34px repeat(2, minmax(0, 1fr)); }
  .hdplates__strip .hdside { grid-row: 1 / span 3; }
  .hdmore { grid-column: 2 / -1; height: auto; min-height: clamp(140px, 7.81vw, 200px); }
  .hdsurvey,
  .hddesc,
  .hdplan,
  .hdadvisor { grid-template-columns: minmax(0, 1fr); }
  .hdquote { order: 1; }
  .hdfault { grid-template-columns: clamp(40px, 2.50vw, 64px) minmax(0, 1fr) minmax(0, clamp(120px, 8.59vw, 220px)) minmax(0, clamp(100px, 6.25vw, 160px)) minmax(0, clamp(90px, 5.47vw, 140px)); }
  .hdfigs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .hdfig:nth-child(3n) { border-right: 0; }
  .hdfig:nth-child(n + 4) { border-top: 1px solid rgba(var(--ink-rgb), 0.16); }
  .hdfig:nth-child(4) { padding-left: 0; }
  .hdgroups { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(20px, 1.56vw, 40px); }
  .hdnears { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hdnear:last-child { grid-column: 1 / -1; }
  /* v2 */
  .hvsheet__grid { grid-template-columns: minmax(0, 1fr); }
  .hvsheet__hero { grid-column: auto; height: clamp(240px, 21.88vw, 560px); }
  .hvsheet__column { grid-column: auto; height: auto; }
  .hvsheet__scroll { grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: clamp(120px, 10.16vw, 260px); height: auto; max-height: clamp(300px, 23.44vw, 600px); }
  .hvsheet__scrollnote { display: none !important; }
  .hvsurvey__head { grid-template-columns: auto minmax(0, 1fr); row-gap: clamp(16px, 0.94vw, 24px); }
  .hvsurvey__acts { grid-column: 1 / -1; flex-direction: row; align-items: center; justify-content: space-between; }
  .hvdocks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hvquote { grid-template-columns: minmax(0, 1fr); }
  .hvquote__who { padding-left: 0; padding-top: clamp(14px, 0.86vw, 22px); border-left: 0; border-top: 1px solid rgba(var(--ink-rgb), 0.2); }
  .hvbill__head { grid-template-columns: auto auto minmax(0, 1fr); }
  .hvbill__note { grid-column: 1 / -1; padding-bottom: 0; }
  .hvbill__caps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .hvadv__band { grid-template-columns: minmax(0, 440px) minmax(0, 1fr); }
  .hvadv__docket { grid-column: 1 / -1; }
  /* v3: боковая уходит под содержимое и раскладывается в две колонки */
  .hwsplit { grid-template-columns: minmax(0, 1fr); }
  .hwside { position: static; display: grid; grid-template-columns: 1fr 1fr; align-items: start; }
  .hwplates { grid-template-columns: minmax(0, 1fr); }
  .hwviewer__well { min-height: clamp(260px, 24.22vw, 620px); }
  .hwbd__band { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .hwbd__band .hdfig:nth-child(3n) { border-right: 0; }
  .hwbd__band .hdfig:nth-child(n + 4) { border-top: 1px solid rgba(var(--ink-rgb), 0.16); }
  .hwkeys { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .hwbill__cards { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .hwbill__readout { grid-template-columns: auto auto minmax(0, 1fr); }
  .hwbill__seldetail,
  .hwbill__selshare { grid-column: 1 / -1; text-align: left; }
  .hwwts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hwreg__head,
  .hwbill__head { grid-template-columns: auto minmax(0, 1fr); }
  .hwreg__open { grid-column: 1 / -1; justify-self: start; }
  /* v4 */
  .hxplates__grid { grid-template-columns: minmax(0, 1fr); }
  .hxrail__list { flex-direction: row; height: auto; padding: 0 0 10px; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x proximity; }
  .hxrail__list > li { flex: 0 0 clamp(200px, 11.72vw, 300px); }
  .hxrail__frame { height: clamp(140px, 7.81vw, 200px); }
  .hxviewer__well { min-height: clamp(260px, 24.22vw, 620px); }
  .hxsurvey__head { grid-template-columns: minmax(0, 1fr) auto; }
  .hxband { grid-column: 1 / -1; }
  .hxbuckets { grid-template-columns: minmax(0, 1fr); }
  .hxbd__grid { grid-template-columns: clamp(80px, 4.69vw, 120px) minmax(0, 1fr); }
  .hxbd__side { grid-column: 1 / -1; flex-direction: row; }
  .hxbd__side > * { flex: 1; }
  /* v5 */
  .hyplates__grid { grid-template-columns: minmax(0, 1fr); }
  .hyplates .hxrail__list { height: auto; }
  .hyrail__frame { height: clamp(140px, 7.81vw, 200px); }
  .hysv__head { grid-template-columns: minmax(0, 1fr); }
  .hysv__right { justify-content: flex-start; }
  .hysv__repairs { align-items: flex-start; }
  .hybd__grid { grid-template-columns: minmax(0, 1fr); }
  .hydc__head { grid-template-columns: minmax(0, 1fr) minmax(0, 360px); }
  .hydc__all { grid-column: 1 / -1; justify-self: start; }
  .hyio__spread { grid-template-columns: minmax(0, 1fr); gap: 40px; }
  .hyio__gutter { display: none; }
  .hyio__wax { top: 50%; }
  .hyfp__below { grid-template-columns: minmax(0, 1fr); }
  .hyrooms { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .hyec__pick { grid-template-columns: minmax(0, 1fr); }
  .hyph { grid-template-columns: minmax(0, 1fr); }
  .hyrv__compose { grid-template-columns: minmax(0, 1fr); }
  /* v6 */
  .hzpop__shell { grid-template-columns: minmax(0, 1fr); }
  .hzpop__side { border-left: 0; border-top: 1px solid rgba(var(--ink-rgb), 0.18); }
  .hzdesc__quote { grid-template-columns: auto minmax(0, 1fr); }
  .hzdesc__noteds { grid-column: 1 / -1; padding-left: 0; border-left: 0; }
  .hzec__figs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .hzec__fig:nth-child(3n) { border-right: 0; }
  .hzec__fig:nth-child(n + 4) { border-top: 1px solid rgba(var(--ink-rgb), 0.16); }
  .hzec__fig:nth-child(4) { padding-left: 0; }
  .hzadv__band { grid-template-columns: minmax(0, 1fr); }
  .hzrv { grid-template-columns: minmax(0, 1fr); }
  .hxoffices { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .hxledgers { grid-template-columns: minmax(0, 1fr); }
  .hxrv { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 1024px) {
  .hdband__head { grid-template-columns: auto minmax(0, 1fr); }
  .hdband__head-right { grid-column: 1 / -1; text-align: left; }
  .hdband__head-note { grid-column: 1 / -1; }
  .hdio-grid { grid-template-columns: minmax(0, 1fr); }
  .hdcard { grid-template-columns: minmax(0, 1fr); }
  .hdportrait { min-height: clamp(320px, 17.97vw, 460px); }
  .hdcard__body { border-left: 0; border-top: 1px solid rgba(var(--ink-rgb), 0.2); }
  .hdfault,
  .hdfault--head,
  .hdfault--total { grid-template-columns: clamp(40px, 2.50vw, 64px) minmax(0, 1fr) minmax(0, clamp(90px, 5.47vw, 140px)); }
  .hdfault--head span:nth-child(3),
  .hdfault--head span:nth-child(4),
  .hdfault--total span:nth-child(3),
  .hdfault--total span:nth-child(4) { display: none; }
  /* «Где» и «когда» уходят под описание, оценка остаётся в своём столбце. */
  .hdfaults .hdfault { row-gap: 6px; }
  .hdfault__no { grid-row: 1 / span 3; grid-column: 1; }
  .hdfault__what { grid-row: 1; grid-column: 2; }
  .hdfault__est { grid-row: 1; grid-column: 3; }
  .hdfault__where { grid-row: 2; grid-column: 2; }
  .hdfault__found { grid-row: 3; grid-column: 2; }
  .hdmap { height: clamp(420px, 24.22vw, 620px); }
  .hdring--2 { display: none; }
  .hdring__label--2 { display: none; }
  .hdnears { grid-template-columns: minmax(0, 1fr); }
  /* v2 */
  .hvsheet__scroll { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .hvfacing__body,
  .hvfacing__feet { grid-template-columns: minmax(0, 1fr); }
  .hvfacing__rule { height: 1px; margin: clamp(18px, 1.17vw, 30px) 0; }
  .hvpage:first-child,
  .hvfacing__foot:first-child { padding-right: 0; }
  .hvpage:last-child,
  .hvfacing__foot:last-child { grid-column: auto; padding-left: 0; }
  .hvfacing__foot:last-child { margin-top: 10px; }
  .hvadv__band { grid-template-columns: minmax(0, 1fr); }
  .hvadv__card { padding-right: 0; border-right: 0; }
  .hzadv .hvadv__card { padding-right: clamp(20px, 1.25vw, 32px); }
  .hvadv__head { grid-template-columns: auto minmax(0, 1fr); }
  .hvadv__reply,
  .hvadv__slot { grid-column: 1 / -1; }
  /* v3 */
  .hwside { grid-template-columns: minmax(0, 1fr); }
  .hwdocs-grid { grid-template-columns: minmax(0, 1fr); }
  .hwbd__cols,
  .hwreg__cols { display: none; }
  .hwbd__row,
  .hwbd__foot { grid-template-columns: clamp(56px, 3.52vw, 90px) minmax(0, 1fr); row-gap: 8px; }
  .hwbd__tag,
  .hwbd__cost { grid-column: 2; text-align: left; }
  .hwbd__foot span:nth-child(3) { display: none; }
  .hwreg__row,
  .hwreg__foot { grid-template-columns: clamp(40px, 2.50vw, 64px) minmax(0, 1fr); row-gap: 8px; }
  .hwreg__label,
  .hwreg__value,
  .hwreg__state { grid-column: 2; }
  .hwreg__state { justify-content: flex-start; text-align: left; }
  .hwreg__foot span:nth-child(3),
  .hwreg__foot span:nth-child(4) { display: none; }
  .hwreg__foot-red { grid-column: 2; text-align: left; }
  .hwph__compare { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hwph__event { max-width: 160px; }
  .hwplan__head { grid-template-columns: auto minmax(0, 1fr); }
  .hwplan__pdf { grid-column: 1 / -1; }
  /* v4 */
  .hxdocs__head { grid-template-columns: minmax(0, 1fr) auto; }
  .hxdocs__all { grid-column: 1 / -1; justify-self: start; }
  .hxoffices { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hxio__head { grid-template-columns: minmax(0, 1fr); }
  .hxbd__side { flex-direction: column; }
  .hxthread__head { grid-template-columns: auto minmax(0, 1fr); }
  .hxthread__head > :nth-child(3),
  .hxthread__head > :nth-child(4) { grid-column: auto; }
  /* v5 */
  .hysv__cols { display: none; }
  .hysv__row { grid-template-columns: 54px minmax(0, 1fr); }
  .hysv__where,
  .hysv__found,
  .hysv__est { grid-column: 2; text-align: left; }
  .hysv__moves { flex-wrap: wrap; gap: 16px; }
  .hysv__move { flex: 1 1 200px; padding: 0; border-right: 0; }
  .hybd__head { grid-template-columns: minmax(0, 1fr); }
  .hybd__storey { grid-template-columns: clamp(96px, 5.86vw, 150px) 40px minmax(0, 1fr); }
  .hybd__meta { grid-column: 3; }
  .hydc__head { grid-template-columns: minmax(0, 1fr); }
  .hydc__caps { grid-template-columns: clamp(60px, 4.06vw, 104px) repeat(4, minmax(0, 1fr)); }
  .hydc__caps::before { grid-row: 1 / span 2; }
  .hyio__head { grid-template-columns: minmax(0, 1fr); }
  .hyio__row { grid-template-columns: 46px minmax(0, 1fr); }
  .hyio__value,
  .hyio__chip { grid-column: 2; }
  .hyio__chip { justify-self: start; }
  .hyrv__stat { flex: 1 1 200px; }
  .hyslip__pair { grid-template-columns: minmax(0, 1fr); }
  /* v6 */
  .hzdesc__head { grid-template-columns: minmax(0, 1fr); }
  .hzdesc__two,
  .hzdesc__court { grid-template-columns: minmax(0, 1fr); }
  .hzdesc__courtfoot { padding-top: 0; }
  .hzio__row { grid-template-columns: 46px minmax(0, 1fr) auto; }
  .hzio__row .hyio__value { grid-column: 1 / -1; }
  .hzio__row .hyio__chip { grid-column: 2; }
  .hzio__row .hzio__cost { grid-column: 3; }
  .hzio__pagefoot { grid-template-columns: minmax(0, 1fr) auto; }
  .hzio__foot { grid-column: 1 / -1; }
  .hzslip__pair { grid-template-columns: minmax(0, 1fr); }
  .hzph__tick--offset .hzph__text { transform: translateX(clamp(60px, 5.00vw, 128px)); }
  .hzplate__open { display: none; }
}

@media (max-width: 768px) {
  .hdpage .shell { gap: clamp(20px, 0.94vw, 24px); }
  .hdplates__strip--rest { grid-template-columns: minmax(0, 1fr); }
  .hdhead__acts { flex-wrap: wrap; }
  .hdplates__top,
  .hdplates__strip { grid-template-columns: minmax(0, 1fr); }
  .hdside { display: none; }
  .hdpairs { grid-column: auto; }
  .hdpairs__stack { flex-direction: column; }
  .hdpair { min-height: clamp(160px, 9.38vw, 240px); }
  .hdmore { grid-column: auto; }
  .hdhero__well { height: auto; aspect-ratio: 1526 / 880; }
  .hdcells { grid-template-columns: 1fr 1fr; }
  .hdcell:nth-child(2) { border-right: 0; }
  .hdcell:nth-child(n + 3) { border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
  .hdcert__grade { grid-template-columns: minmax(0, 1fr); }
  .hdcert__of { padding-bottom: 8px; }
  .hdcert__pair { grid-template-columns: minmax(0, 1fr); }
  .hdcert__stat { padding-right: 0; border-right: 0; }
  .hdcert__stat + .hdcert__stat { padding-left: 0; border-top: 1px solid rgba(var(--ink-rgb), 0.16); }
  .hdsign { grid-template-columns: minmax(0, 1fr); }
  .hdsign .hdseal { justify-self: start; }
  .hdpara { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .hdfootline { flex-wrap: wrap; row-gap: 8px; }
  .hdfootline__gap { display: none; }
  .hdfootline__bar { display: none; }
  .hdio__top,
  .hdkey__top,
  .hdnearby__head { grid-template-columns: minmax(0, 1fr); align-items: start; }
  .hdio__rows { grid-template-columns: minmax(0, 1fr); }
  .hdio__row { padding-right: 0; border-right: 0; }
  .hdio__row:nth-child(even) { padding-left: 0; }
  .hdplan__well { min-height: clamp(300px, 20.31vw, 520px); }
  .hdzone__tag { height: 26px; padding: 0 8px; letter-spacing: 0.08em; }
  /* На маленьком чертеже плашки закрывают комнаты: остаётся только этаж */
  .hdplan__well--drawn .hdscale,
  .hdplan__well--drawn .hdstamp--plan,
  .hdplan__well--drawn .hdnorth { display: none; }
  .hdplan__well--drawn .hdcap--plan { left: 10px; top: 10px; }
  .hdplan__well--drawn .hdcap--plan .hdcap__no,
  .hdplan__well--drawn .hdcap--plan .hdcap__text { height: 30px; padding: 0 10px; }
  .hdfigs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hdfig:nth-child(3n) { border-right: 1px solid rgba(var(--ink-rgb), 0.16); }
  .hdfig:nth-child(2n) { border-right: 0; }
  .hdfig:nth-child(n + 3) { border-top: 1px solid rgba(var(--ink-rgb), 0.16); }
  .hdfig:nth-child(4) { padding-left: clamp(14px, 1.17vw, 30px); }
  .hdfig:nth-child(3),
  .hdfig:nth-child(5) { padding-left: 0; }
  .hdgroups { grid-template-columns: minmax(0, 1fr); }
  .hdmap { height: clamp(420px, 20.31vw, 520px); }
  .hdmap__cross,
  .hdmap__rivername { display: none; }
  /* На телефоне у мест остаются одни минуты — названия читаются в группах ниже */
  .hdpin__place { display: none; }
  .hdchips { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hdfields { grid-template-columns: minmax(0, 1fr); }
  .hddocket__foot { grid-template-columns: minmax(0, 1fr); }
  .hdnear__cells { grid-template-columns: 1fr 1fr; }
  .hdnear__cell:nth-child(2) { border-right: 0; padding-right: 0; }
  .hdnear__cell:nth-child(3) { padding-left: 0; }
  .hdnear__cell:nth-child(n + 3) { border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
  /* v2 */
  .hvsheet__head { flex-direction: column; align-items: flex-start; gap: 8px; }
  .hvsheet__note { text-align: left; }
  .hvsheet__scroll { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: clamp(120px, 7.81vw, 200px); }
  .hvsheet__foot { flex-wrap: wrap; row-gap: 10px; }
  .hvsheet__foot .hdfootline__gap { display: none; }
  .hvsheet__toggle { width: 100%; justify-content: center; }
  .hvscale__tick:not(.hvscale__tick--big) .hvscale__label { display: none; }
  .hvsurvey__head { grid-template-columns: minmax(0, 1fr); }
  .hvsurvey__acts { flex-direction: column; align-items: flex-start; }
  .hvdocks { grid-template-columns: minmax(0, 1fr); }
  .hvdesc__two { grid-template-columns: minmax(0, 1fr); }
  .hvfacing__head { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .hvpage__line { flex-wrap: wrap; }
  .hvplan__drawing { grid-template-columns: minmax(0, 1fr); }
  .hvplan__vrule { display: none; }
  .hvplan__drawing > span:first-child { display: none; }
  .hvbill__head { grid-template-columns: minmax(0, 1fr); }
  .hvbill__month,
  .hvbill__class { padding-bottom: 0; }
  .hvbill__caps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hvbill__seg { font-size: 0; }
  /* v3 */
  .hwplates { gap: clamp(16px, 0.94vw, 24px); }
  .hwindex__row { grid-template-columns: 40px minmax(0, 1fr) 64px; gap: 10px; }
  .hwbd__band { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hwbd__band .hdfig:nth-child(3n) { border-right: 1px solid rgba(var(--ink-rgb), 0.16); }
  .hwbd__band .hdfig:nth-child(2n) { border-right: 0; }
  .hwbd__band .hdfig:nth-child(n + 3) { border-top: 1px solid rgba(var(--ink-rgb), 0.16); }
  .hwbd__band .hdfig:nth-child(odd) { padding-left: 0; }
  .hwkeys { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hwbill__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hwbill__grades { grid-template-columns: repeat(7, minmax(0, 1fr)); }
  .hwwts { grid-template-columns: minmax(0, 1fr); }
  .hwph__line { height: auto; padding: 0; }
  .hwph__rule { display: none; }
  .hwph__tick,
  .hwph__tick--start,
  .hwph__tick--end { position: static; transform: none; align-items: flex-start; text-align: left; padding: 12px 0; border-top: 1px solid rgba(var(--ink-rgb), 0.16); }
  .hwph__stem,
  .hwph__dot { display: none; }
  .hwph__compare { grid-template-columns: minmax(0, 1fr); }
  .hwreg__head,
  .hwbill__head { grid-template-columns: minmax(0, 1fr); }
  .hwbill__readout { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .hwsb__days { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .hwmg__two { grid-template-columns: minmax(0, 1fr); }
  .hwmg__cell { padding: 12px 0; border-right: 0; }
  .hwmg__cell:last-child { padding: 12px 0; border-top: 1px solid rgba(var(--ink-rgb), 0.16); }
  .hwwt .hvdock__date { white-space: normal; text-align: right; }
  /* v4 */
  .hxplates__head { flex-direction: column; align-items: flex-start; gap: 8px; }
  .hxsurvey__head { grid-template-columns: minmax(0, 1fr); }
  .hxsurvey__grade { flex-wrap: wrap; }
  .hxsurvey__repairs { align-items: flex-start; text-align: left; }
  .hxbd__grid { grid-template-columns: minmax(0, 1fr); }
  .hxstaff { display: none; }
  .hxstorey { grid-template-columns: 34px minmax(0, 1fr); gap: 10px; padding: 0 14px; }
  .hxstorey__what { flex-direction: column; gap: 4px; }
  .hxstorey__meta { display: none; }
  .hxfacade__well { min-height: clamp(420px, 21.88vw, 560px); }
  .hxfacade__foot { height: auto; line-height: 1.4; white-space: normal; flex-wrap: wrap; }
  .hxfacade__foot .hdfootline__line { display: none; }
  .hxfacade .hdrule { height: auto; white-space: normal; }
  .hxoffices { grid-template-columns: minmax(0, 1fr); }
  .hxcustody__name { font-size: 0; }
  .hxledger__row { grid-template-columns: 34px minmax(0, 1fr); row-gap: 6px; padding-left: 8px; padding-right: 8px; }
  .hxledger__value,
  .hxledger__chip { grid-column: 2; }
  .hxledger__chip { justify-self: start; }
  .hxledger__head { flex-direction: column; align-items: flex-start; }
  .hxledger__pills { align-items: flex-start; }
  .hxwt__rail { height: auto; display: flex; flex-direction: column; gap: 14px; }
  .hxwt__rule,
  .hxwt__walk,
  .hxrail-mark { display: none; }
  .hxstage,
  .hxstage--start,
  .hxstage--end { position: static; transform: none; max-width: none; align-items: flex-start; text-align: left; padding: 12px 0; border-top: 1px solid rgba(var(--ink-rgb), 0.16); }
  .hxstage__money { margin-top: 8px; }
  .hxsplit__keys { flex-wrap: wrap; }
  .hxsplit__keys .hdfootline__line { display: none; }
  .hxwt__foot { flex-wrap: wrap; }
  .hxwt__foot .hdfootline__line { display: none; }
  .hxslip__head { flex-direction: column; align-items: flex-start; }
  .hxslip__topicnote { text-align: left; white-space: normal; }
  .hxthread__head { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .hxnote { grid-template-columns: 38px minmax(0, 1fr); }
  .hxnote__tag { grid-column: 2; justify-self: start; }
  .hxnote--reply { padding-left: 14px; }
  .hxadv__scrim { flex-direction: column; align-items: flex-start; }
  .hxadv__price { grid-template-columns: minmax(0, 1fr); }
  .hxadv__gradecol { align-items: flex-start; }
  .hxadv__faults { text-align: left; }
  .hwbill__seg { font-size: 0; }
  /* v5 */
  .hysv__bar { height: auto; flex-direction: column; }
  .hysv__seg { flex-direction: row; align-items: center; gap: 14px; padding: 12px 16px; border-right: 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.2); }
  .hysv__seg:last-child { border-bottom: 0; }
  .hysv__letter { width: 48px; }
  .hysv__here { left: auto; right: 0; top: -30px; transform: none; }
  .hysv__gauge { margin-top: 44px; }
  .hybd__storey { grid-template-columns: 96px 24px minmax(0, 1fr); gap: 10px; }
  .hybd__level { padding-left: 12px; }
  .hybd__dec { grid-template-columns: 13px 60px minmax(0, 1fr); }
  .hybd__money { grid-column: 3; align-items: flex-start; }
  .hybd__tag { height: auto; min-height: 26px; padding-block: 4px; white-space: normal; line-height: 1.3; }
  .hybd__share { text-align: left; }
  .hydc__shelf,
  .hydc__board,
  .hydc__caps { grid-template-columns: 60px minmax(0, 1fr); }
  .hydc__caps { grid-template-columns: 60px repeat(2, minmax(0, 1fr)); }
  .hydc__caps::before { grid-row: 1 / span 4; }
  .hydc__spines { gap: 6px; }
  .hyio__pagetitle { flex-direction: column; align-items: flex-start; }
  .hyio__pills { align-items: flex-start; }
  .hyrooms { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hyec__months { height: 120px; }
  .hyec__value { display: none; }
  .hyec__name { font-size: 12px; letter-spacing: 0; }
  .hyph__row { flex-wrap: wrap; }
  .hyph__event { white-space: normal; }
  .hyph__leader { display: none; }
  .hyph__head { padding-right: 0; }
  .hyph__seal { position: static; transform: none; margin-bottom: 14px; }
  .hyph__days { grid-template-columns: minmax(0, 1fr); }
  .hyfp__barnote { display: none; }
  .hyfp__bar { bottom: 22px; }
  /* v6 */
  .hzec__figs { grid-template-columns: minmax(0, 1fr); }
  .hzec__fig { padding-left: 0; padding-right: 0; border-right: 0; border-top: 1px solid rgba(var(--ink-rgb), 0.16); }
  .hzec__fig:first-child { border-top: 0; }
  .hzpop { padding: 0; }
  .hzpop__shell { border-radius: 0; }
  .hzpop__frame { grid-template-columns: minmax(0, 1fr); }
  .hzpop__vrule { display: none; }
  .hzpop__hint { display: none; }
  .hzrv__open { grid-template-columns: 34px minmax(0, 1fr); }
  .hzrv__opento,
  .hzrv__openago { grid-column: 2; }
  .hzrv__steps { flex-direction: column; gap: 12px; }
  .hzrv__step { padding: 0; border-right: 0; }
  .hzadv__hourlabel { font-size: 12px; letter-spacing: 0; }
  .hzplate__cap { left: 12px; bottom: 12px; }
  .hzplate__note { right: 12px; bottom: 60px; }
  .hzdesc__paratop { flex-wrap: wrap; }
  .hzdesc__tag { height: auto; min-height: 26px; padding-block: 4px; white-space: normal; line-height: 1.3; }
  .hvdock__top { flex-wrap: wrap; gap: 8px; }
}

@media (max-width: 480px) {
  .hdhead__acts { flex-direction: column; align-items: stretch; }
  .hdrule { white-space: normal; text-align: center; }
  .hdrule > span:nth-child(3) { min-width: 0; }
  .hdbtn { justify-content: center; height: auto; min-height: 48px; padding-block: 12px; white-space: normal; line-height: 1.4; }
  .hdbtn--wide { justify-content: space-between; text-align: left; }
  .hdcap,
  .hdcap--small,
  .hdcap--plan { left: 12px; bottom: 12px; }
  .hdcap--plan { top: 12px; bottom: auto; }
  .hdcap { max-width: calc(100% - 24px); }
  .hdcap__text { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
  .hdstamp,
  .hdstamp--plan,
  .hdstamp--map { right: 12px; bottom: 12px; }
  .hdscale,
  .hdscale--map { left: 12px; bottom: 60px; }
  .hdhero__well .hdstamp { bottom: 60px; }
  .hdfault,
  .hdfault--head,
  .hdfault--total { grid-template-columns: clamp(36px, 1.88vw, 48px) minmax(0, 1fr); }
  .hdfault--head .hdfault__est,
  .hdfault__sum { grid-column: 2; text-align: left; }
  .hdfault__est { grid-row: 4; grid-column: 2; text-align: left; }
  .hdfault__no { grid-row: 1 / span 4; }
  .hdfault--total { grid-template-columns: 0 minmax(0, 1fr); gap: 8px; }
  .hdpin:not(.hdpin--home) .hdpin__pill { height: 26px; padding: 0 8px; letter-spacing: 0.06em; }
  .hdmap__street { display: none; }
  .hdmap__plate { height: 32px; padding: 0 10px; gap: 8px; }
  .hdmap__drawn { display: none; }
  .hdchips { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ==========================================================================
   76. Agent detail — один советник на одном листе
   ========================================================================== */

/* Между плитами только линейка в 60px сверху и снизу — единственный ритм страницы */
.adpage .shell { display: flex; flex-direction: column; }
.adpage .pagehead { margin-bottom: clamp(32px, 2.34vw, 60px); }
.adrule { height: 1px; margin: clamp(32px, 2.34vw, 60px) 0; border: 0; background: rgba(var(--ink-rgb), 0.14); }
.adw-14 { width: 14%; }
.adw-21 { width: 21%; }
.adw-29 { width: 29%; }
.adw-36 { width: 36%; }
.adw-40 { width: 40%; }
.adw-44 { width: 44%; }
.adw-48 { width: 48%; }
.adw-59 { width: 59%; }
.adw-62 { width: 62%; }
.adw-65 { width: 65%; }
.adw-96 { width: 96%; }
.adw-100 { width: 100%; }

/* --- Общие атомы: заголовок плиты, кикер, цифры, кнопки-пилюли, уголки ------------------ */
.adsec__head { display: flex; align-items: flex-end; justify-content: space-between; gap: clamp(24px, 2.34vw, 60px); padding-bottom: 22px; border-bottom: 2px solid var(--ink); }
.adsec__lead { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.adsec__title { margin: 0; font-family: var(--display); font-weight: 400; font-size: clamp(40px, 3.28vw, 84px); line-height: 0.98; letter-spacing: -0.024em; }
.adsec__title em { font-style: italic; color: var(--accent); }
.adsec__title--80 { font-size: clamp(38px, 3.12vw, 80px); }
.adsec__title--76 { font-size: clamp(36px, 2.97vw, 76px); }
.adsec__title--62 { font-size: clamp(32px, 2.42vw, 62px); line-height: 1; }
.adsec__aside { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); white-space: nowrap; }
.adkicker { display: flex; align-items: center; gap: 18px; margin: 0; font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.24em; color: var(--accent); }
.adkicker__line { width: 70px; height: 1px; background: rgba(var(--ink-rgb), 0.24); }
.adkicker__note { color: var(--muted); }
.adkicker__solo { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.24em; color: var(--accent); }
.adstats { display: flex; align-items: flex-end; gap: clamp(24px, 1.95vw, 50px); margin: 0; }
.adstat { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.adstat__value { font-family: var(--display); font-size: clamp(32px, 2.19vw, 56px); line-height: 1; letter-spacing: -0.02em; }
.adstat__value--50 { font-size: clamp(30px, 1.95vw, 50px); }
.adstat__value--red { color: var(--accent); }
.adstat__label { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.2em; color: var(--faint); }
.adbtn {
  display: inline-flex;
  align-items: center;
  gap: 18px;
  height: clamp(50px, 2.42vw, 62px);
  padding: 0 clamp(22px, 1.33vw, 34px);
  border-radius: 999px;
  font-family: var(--mono); font-size: 12px; text-transform: uppercase;
  font-size: clamp(12px, 0.51vw, 13px);
  letter-spacing: 0.2em;
  white-space: nowrap;
  text-decoration: none;
  transition: background 200ms ease-in-out, color 200ms ease-in-out, box-shadow 200ms ease-in-out;
}
.adbtn--ink { background: var(--ink); color: var(--bg); }
.adbtn--ink:hover { background: var(--accent); color: var(--c-cream); }
.adbtn--outline { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3); color: var(--ink); }
.adbtn--outline:hover { box-shadow: inset 0 0 0 1px var(--accent); color: var(--accent); }
.adbtn--red { box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.5); color: var(--accent); }
.adbtn--red:hover { background: rgba(var(--accent-rgb), 0.07); }
.adbtn--cream { background: rgba(var(--bg-rgb), 0.94); color: var(--ink); }
.adbtn--cream:hover { background: var(--ink); color: var(--bg); }
.adbtn--between { justify-content: space-between; width: 100%; }
.adbtn--58 { height: clamp(46px, 2.27vw, 58px); padding: 0 clamp(18px, 1.02vw, 26px); }
.adbtn--56 { height: clamp(46px, 2.19vw, 56px); padding: 0 clamp(16px, 0.94vw, 24px); font-size: 12px; letter-spacing: 0.18em; }
.adbtn__rule { width: 26px; height: 1px; background: currentColor; }
.adbtn .g4arrow { font-size: clamp(15px, 0.70vw, 18px); }
.adlink { display: inline-flex; align-items: center; gap: 14px; font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.2em; color: var(--ink); text-decoration: none; transition: color 180ms ease-in-out; }
.adlink:hover { color: var(--accent); }
.adlink .g4arrow { font-size: clamp(14px, 0.66vw, 17px); }
.adtick { position: absolute; z-index: 2; width: 22px; height: 22px; border-color: rgba(var(--ink-rgb), 0.4); pointer-events: none; }
.adtick--tl { left: 44px; top: 44px; border-top: 1px solid; border-left: 1px solid; }
.adtick--tr { right: 44px; top: 44px; border-top: 1px solid; border-right: 1px solid; }
.adtick--br { right: 44px; bottom: 44px; border-bottom: 1px solid; border-right: 1px solid; }
.adpill { display: inline-flex; align-items: center; gap: 10px; height: 40px; padding: 0 18px; border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2); font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.18em; color: var(--muted); }
.adpill--bare { height: auto; padding: 0; box-shadow: none; gap: 9px; letter-spacing: 0.18em; color: var(--faint); }
.adpill__dot { width: 5px; height: 5px; border-radius: 50%; background: var(--gold); }
.adfoot { display: flex; align-items: center; gap: 22px; margin: 0; padding-top: 22px; font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.2em; color: var(--faint); }
.adfoot__red { color: var(--accent); }
.adfoot__line { flex: 1; height: 1px; background: rgba(var(--ink-rgb), 0.14); }
.adphoto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.adpage .hdph { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; text-align: center; }
.adledger { display: flex; flex-direction: column; margin: 0; }
.adledger__row { display: flex; align-items: baseline; gap: 12px; padding: 11px 0; border-bottom: 1px dotted rgba(var(--ink-rgb), 0.28); font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.16em; }
.adledger__k { color: var(--faint); }
.adledger__lead { flex: 1; }
.adledger__v { color: var(--ink); text-align: right; }
.adledger__v--red { color: var(--accent); }
.adledger__v--muted { color: var(--muted); }

/* --- 01 Голова: портрет 860×720 с печатью и подписью, имя, цитата, гроссбух ---------------- */
.adhero { display: grid; grid-template-columns: minmax(0, 860px) minmax(0, 1fr); gap: clamp(40px, 5.08vw, 130px); align-items: stretch; }
.adhero__plate { position: relative; min-height: clamp(360px, 28.12vw, 720px); }
.adhero__dim { position: absolute; left: 0; right: 0; top: -40px; display: flex; align-items: center; gap: 12px; margin: 0; font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.24em; color: var(--faint); }
.adhero__dimend { width: 1px; height: 10px; background: rgba(var(--ink-rgb), 0.3); }
.adhero__dimline { flex: 1; height: 1px; background: rgba(var(--ink-rgb), 0.2); }
.adhero__well { position: absolute; inset: 0; display: block; border-radius: 10px; background: var(--sheet) repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.07) 0 2px, transparent 2px 12px); overflow: hidden; }
.adhero__inner { position: absolute; inset: 22px; border-radius: 6px; box-shadow: inset 0 0 0 1.5px rgba(var(--ink-rgb), 0.26); pointer-events: none; }
.adhero__plate--photo .adhero__inner { box-shadow: inset 0 0 0 1.5px rgba(var(--c-cream-rgb), 0.35); }
.adhero__plate--photo .adtick { border-color: rgba(var(--c-cream-rgb), 0.7); }
.adhero__seal { top: 40px; right: 40px; }
.adhero__shot { position: absolute; left: 40px; bottom: 40px; display: flex; align-items: center; gap: 14px; margin: 0; font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.24em; color: var(--muted); }
.adhero__plate--photo .adhero__shot { color: var(--c-cream); text-shadow: 0 1px 8px rgba(var(--scrim-rgb), 0.7); }
.adhero__shotline { width: 56px; height: 1px; background: rgba(var(--ink-rgb), 0.4); }
.adhero__plate--photo .adhero__shotline { background: rgba(var(--c-cream-rgb), 0.6); }
.adsign {
  position: absolute;
  right: -90px;
  bottom: -30px;
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 10px;
  width: clamp(260px, 16.41vw, 420px);
  margin: 0;
  padding: 26px 30px;
  border-radius: 12px;
  background: var(--bg);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22), 0 24px 60px rgba(var(--shadow-warm-rgb), 0.12);
}
.adsign__kicker { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.26em; color: var(--faint); }
.adsign__name { font-family: var(--display); font-style: italic; font-size: clamp(30px, 1.80vw, 46px); line-height: 1; letter-spacing: -0.01em; }
.adsign__rule { height: 1px; background: rgba(var(--ink-rgb), 0.22); }
.adsign__note { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.adhero__body { display: flex; flex-direction: column; min-width: 0; }
.adhero__kicker { display: flex; align-items: center; gap: 20px; margin: 0; font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.28em; color: var(--accent); }
.adhero__kickline { width: 70px; height: 1px; background: rgba(var(--ink-rgb), 0.24); }
.adhero__place { color: var(--muted); }
.adhero__ticks { display: flex; align-items: flex-end; gap: 5px; height: 14px; margin-left: 8px; }
.adhero__tick { width: 2px; height: 7px; background: rgba(var(--ink-rgb), 0.24); }
.adhero__tick--first { height: 14px; background: var(--accent); }
.adhero__of { color: var(--faint); }
.adhero__name { margin: 26px 0 0; font-family: var(--display); font-weight: 400; font-size: clamp(44px, 3.75vw, 96px); line-height: 1; letter-spacing: -0.03em; white-space: nowrap; }
.adhero__name em { font-style: italic; color: var(--accent); }
.adhero__bar { display: block; height: 2px; margin-top: 34px; background: var(--ink); }
.adhero__quote { margin: 34px 0 0; max-width: 1000px; font-family: var(--display); font-style: italic; font-size: clamp(24px, 1.56vw, 40px); line-height: 1.24; letter-spacing: -0.012em; text-wrap: balance; }
.adhero__text { margin: 30px 0 0; max-width: 1000px; font-size: clamp(16px, 0.78vw, 20px); font-weight: 300; line-height: 1.72; color: var(--muted); text-wrap: pretty; }
.adhero__streets { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin: 30px 0 0; }
.adhero__foot { display: flex; flex-direction: column; margin-top: auto; padding-top: clamp(28px, 2.03vw, 52px); }
.addesk { display: flex; flex-direction: column; }
.addesk__row {
  display: grid;
  grid-template-columns: 90px minmax(0, 1fr) clamp(160px, 11.72vw, 300px) clamp(140px, 10.16vw, 260px);
  gap: clamp(16px, 1.56vw, 40px);
  align-items: baseline;
  padding: 22px 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.12);
  transition: background 200ms ease-in-out;
}
.addesk__row:first-child { border-top: 1px solid rgba(var(--ink-rgb), 0.22); }
.addesk__row:hover { background: rgba(var(--accent-rgb), 0.05); }
.addesk__no { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.22em; color: var(--faint); }
.addesk__no--red { color: var(--accent); }
.addesk__label { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.22em; color: var(--muted); }
.addesk__note { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.18em; color: var(--faint); }
.addesk__value { justify-self: end; font-family: var(--display); font-size: clamp(30px, 2.03vw, 52px); line-height: 1; }
.addesk__value--mono { font-family: var(--mono); font-size: clamp(12px, 0.55vw, 14px); letter-spacing: 0.18em; }
.adavail { display: flex; align-items: center; gap: 20px; margin: 30px 0 0; padding: 16px 22px; border-radius: 10px; background: var(--modal-bg); font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.adavail__free { display: inline-flex; align-items: center; gap: 10px; color: var(--accent); }
.adavail__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--accent); }
.adavail__bar { width: 1px; height: 12px; background: rgba(var(--ink-rgb), 0.22); }
.adavail__gap { flex: 1; }
.adavail__desk { color: var(--ink); }
.adhero__acts { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin: 26px 0 0; }
.adhero__signline { margin-left: auto; font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.22em; color: var(--faint); }

/* --- 02 Обязательства: пять плит, каждая датирована --------------------------------------- */
.adpledge__head { padding-bottom: 26px; }
.adclauses { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 24px; margin: 36px 0 0; padding: 0; list-style: none; }
.adclause {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 20px;
  min-width: 0;
  padding: 34px 30px 30px;
  border-radius: 12px;
  background: var(--modal-field);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14);
  transition: box-shadow 240ms ease-in-out, transform 240ms ease-in-out, background 240ms ease-in-out;
}
.adclause--broken { box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.34); }
.adclause:hover { box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.55), 0 26px 60px rgba(var(--shadow-warm-rgb), 0.12); transform: translateY(-8px); background: var(--c-white); }
[data-theme="dark"] .adclause:hover { background: var(--plate-raised); }
.adclause__inner { position: absolute; inset: 14px; border-radius: 7px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.08); pointer-events: none; }
.adclause__top { position: relative; display: flex; align-items: center; justify-content: space-between; margin: 0; }
.adclause__no { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.24em; color: var(--accent); }
.adclause__stamp { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.4), inset 0 0 0 4px rgba(var(--accent-rgb), 0.14); font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.1em; color: var(--accent); }
.adclause__title { position: relative; margin: 0; font-family: var(--display); font-size: clamp(22px, 1.41vw, 36px); line-height: 1.14; letter-spacing: -0.012em; text-wrap: pretty; }
.adclause__body { position: relative; margin: 0; font-size: clamp(15px, 0.66vw, 17px); font-weight: 300; line-height: 1.6; color: var(--muted); text-wrap: pretty; }
.adclause__foot { position: relative; display: flex; flex-direction: column; gap: 14px; margin-top: auto; padding-top: 20px; border-top: 1px solid rgba(var(--ink-rgb), 0.16); font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.18em; }
.adclause__line { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.adclause__k { color: var(--faint); }
.adclause__count { font-family: var(--display); font-size: clamp(22px, 1.25vw, 32px); letter-spacing: 0; text-transform: none; }
.adclause__meter { display: flex; flex-direction: column; gap: 7px; }
.adclause__pct { color: var(--ink); }
.adclause__track { position: relative; height: 4px; border-radius: 999px; background: rgba(var(--ink-rgb), 0.12); overflow: hidden; }
.adclause__fill { position: absolute; left: 0; top: 0; bottom: 0; background: var(--ink); }
.adclause--broken .adclause__pct,
.adclause--broken .adclause__flag { color: var(--accent); }
.adclause--broken .adclause__fill { background: var(--accent); }
.adclause__v { color: var(--ink); }
.adclause__flag { display: flex; align-items: center; gap: 10px; color: var(--muted); }
.adclause__flagdot { width: 6px; height: 6px; border-radius: 50%; background: var(--gold); }
.adclause--broken .adclause__flagdot { background: var(--accent); }
.adclause__remedy { color: var(--accent); text-wrap: pretty; }
.adpledge__foot { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 700px); gap: clamp(24px, 2.34vw, 60px); align-items: center; margin-top: 34px; padding-top: 24px; border-top: 2px solid var(--ink); }
.adpledge__signed { display: flex; align-items: center; gap: 28px; min-width: 0; }
.adfiled { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; flex: none; width: 118px; height: 118px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.55), inset 0 0 0 7px rgba(var(--accent-rgb), 0.18); color: var(--accent); }
.adfiled__top { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.24em; }
.adfiled__date { font-family: var(--display); font-size: clamp(17px, 0.82vw, 21px); line-height: 1; letter-spacing: 0.01em; }
.adpledge__sig { display: flex; flex-direction: column; gap: 8px; margin: 0; min-width: 0; }
.adpledge__signame { font-family: var(--display); font-style: italic; font-size: clamp(34px, 2.34vw, 60px); line-height: 1; }
.adpledge__sigrule { width: 280px; max-width: 100%; height: 1px; background: rgba(var(--ink-rgb), 0.34); }
.adpledge__sigline { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.adpledge__right { display: flex; flex-direction: column; gap: 16px; }
.adpledge__note { margin: 0; font-size: clamp(15px, 0.70vw, 18px); font-weight: 300; line-height: 1.66; color: var(--muted); text-wrap: pretty; }
.adpledge__acts { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin: 0; }
.adpledge__acts .adbtn { padding: 0 32px; font-size: 12px; }

/* --- 03 Её дома: индекс статусов на линейке, ряд 600-px колонок со снапом ------------------ */
.adhomes { margin: 0 calc(var(--gutter) * -1); }
.adhomes__head { padding: 0 var(--gutter) 22px; }
.adtabs { display: flex; align-items: flex-end; gap: clamp(20px, 1.72vw, 44px); }
.adtab { display: flex; align-items: baseline; gap: 8px; padding-bottom: 6px; border-bottom: 2px solid transparent; font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); white-space: nowrap; cursor: pointer; transition: color 200ms ease-in-out, border-color 200ms ease-in-out; }
.adtab__count { font-size: 12px; color: var(--faint); }
.g4pill__input:checked + .adtab { border-bottom-color: var(--accent); color: var(--accent); }
.g4pill__input:checked + .adtab .adtab__count { color: var(--accent); }
.g4pill__input:focus-visible + .adtab { outline: 2px solid var(--accent); outline-offset: 4px; }
.adhomes__row {
  display: flex;
  gap: 40px;
  margin: 0;
  padding: 36px var(--gutter) 20px;
  list-style: none;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-padding-left: var(--gutter);
  scrollbar-width: thin;
}
.adhome { display: flex; flex: 0 0 clamp(300px, 23.44vw, 600px); flex-direction: column; gap: 24px; box-sizing: border-box; scroll-snap-align: start; }
.adhome[hidden] { display: none; }
.adhome__plate { position: relative; height: clamp(220px, 17.19vw, 440px); border-radius: 12px; background: var(--sheet) repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.07) 0 2px, transparent 2px 12px); overflow: hidden; }
.adhome__inner { position: absolute; inset: 16px; border-radius: 6px; box-shadow: inset 0 0 0 1px rgba(var(--c-cream-rgb), 0.35); pointer-events: none; }
.adhome__status { position: absolute; top: 18px; left: 18px; display: inline-flex; align-items: center; height: 36px; padding: 0 16px; border-radius: 999px; font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.22em; }
.adhome__status--red { background: var(--accent); color: var(--c-cream); }
.adhome__status--cream { background: rgba(var(--bg-rgb), 0.92); color: var(--ink); }
.adhome__status--dark { background: rgba(var(--c-night-rgb), 0.82); color: var(--c-cream); }
.adhome__edge { position: absolute; left: 18px; right: 18px; bottom: 18px; display: flex; align-items: center; justify-content: space-between; gap: 12px; font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.2em; color: var(--c-cream); text-shadow: 0 1px 8px rgba(var(--c-night-rgb), 0.85); }
.adhome__plate:not(.adhome__plate--photo) .adhome__edge { color: var(--muted); text-shadow: none; }
.adhome__title { display: flex; align-items: baseline; gap: 16px; margin: 0; }
.adhome__no { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.22em; color: var(--accent); }
.adhome__address { font-family: var(--display); font-size: clamp(26px, 1.64vw, 42px); line-height: 1.06; letter-spacing: -0.02em; text-wrap: pretty; }
.adhome__measure { margin: -10px 0 0; font-family: var(--mono); font-size: clamp(12px, 0.51vw, 13px); letter-spacing: 0.1em; color: var(--muted); }
.adhome__price { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; margin: -8px 0 0; padding-top: 16px; border-top: 2px solid var(--ink); }
.adhome__sum { font-family: var(--display); font-size: clamp(30px, 2.03vw, 52px); line-height: 1; letter-spacing: -0.022em; }
.adhome__sqm { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.16em; color: var(--accent); }
.adhome .adledger { margin-top: -10px; }
.adhome .adlink { margin-top: -18px; }
.adhomes__foot { display: flex; align-items: center; gap: 20px; margin: 0; padding: 0 var(--gutter); font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.22em; color: var(--faint); }
.adhomes__footline { width: 70px; height: 1px; background: rgba(var(--ink-rgb), 0.3); }
.adhomes__note { color: var(--muted); }

/* --- 04 Часы: сетка недели, час — кнопка; плита выбранного часа справа ---------------------- */
.adhours { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 700px); gap: clamp(28px, 3.52vw, 90px); align-items: stretch; }
.adweek { display: flex; flex-direction: column; min-width: 0; }
.adhours__head { gap: 40px; }
.adswitch { display: flex; align-items: center; gap: 12px; margin: 0; }
.adswitch__pill { display: inline-flex; align-items: center; height: 44px; padding: 0 20px; border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.18em; color: var(--ink); white-space: nowrap; }
.adswitch__pill--faint { color: var(--faint); }
.adswitch__pill--on { background: var(--ink); box-shadow: none; color: var(--bg); }
.adweek__grid { display: grid; grid-template-columns: clamp(64px, 4.69vw, 120px) repeat(6, minmax(0, 1fr)); gap: 10px; margin: 26px 0 0; padding: 0; border: 0; min-width: 0; }
.adweek__day { display: flex; flex-direction: column; gap: 6px; padding-bottom: 12px; border-bottom: 2px solid rgba(var(--ink-rgb), 0.14); font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.2em; color: var(--ink); }
.adweek__day--today { border-bottom-color: var(--accent); color: var(--accent); }
.adweek__dayname { display: flex; align-items: baseline; gap: 8px; }
.adweek__today { font-size: 12px; color: var(--accent); }
.adweek__daydate { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; color: var(--faint); }
.adweek__free { color: var(--ink); }
.adweek__free--tight { color: var(--accent); }
.adweek__time { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-family: var(--mono); font-size: 12px; text-transform: uppercase; font-size: 12px; letter-spacing: 0.16em; text-transform: none; color: var(--muted); }
.adweek__timetick { width: 14px; height: 1px; background: rgba(var(--ink-rgb), 0.2); }
.adweek__time--now { color: var(--accent); }
.adweek__time--now .adweek__timetick { background: var(--accent); }
.adcell {
  position: relative;
  display: flex;
  align-items: center;
  gap: 9px;
  height: 52px;
  padding: 0 14px;
  border-radius: 8px;
  overflow: hidden;
  font-family: var(--mono); font-size: 12px; text-transform: uppercase;
  letter-spacing: 0.16em;
  transition: background 180ms ease-in-out, color 180ms ease-in-out;
}
.adcell__bar { flex: none; width: 4px; height: 0; border-radius: 2px; background: rgba(var(--ink-rgb), 0.22); }
.adcell__label { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.adcell--free { background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2); color: var(--ink); cursor: pointer; }
.adcell--free:hover { background: rgba(var(--accent-rgb), 0.08); color: var(--accent); }
.adcell--busy { background: rgba(var(--ink-rgb), 0.06); color: var(--faint); cursor: default; }
.adcell--busy .adcell__bar { height: 22px; }
.g4pill__input:checked + .adcell--free { background: var(--accent); box-shadow: none; color: var(--c-cream); }
.g4pill__input:checked + .adcell--free .adcell__bar { height: 22px; background: var(--c-cream); }
.g4pill__input:focus-visible + .adcell--free { outline: 2px solid var(--accent); outline-offset: 2px; }
.adweek__legend { display: flex; align-items: center; gap: 26px; margin: 24px 0 0; font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.adweek__key { display: inline-flex; align-items: center; gap: 10px; }
.adweek__swatch { width: 16px; height: 16px; border-radius: 4px; }
.adweek__swatch--free { background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2); }
.adweek__swatch--busy { background: rgba(var(--ink-rgb), 0.14); }
.adweek__swatch--pick { background: var(--accent); }
.adweek__legendline { flex: 1; height: 1px; background: rgba(var(--ink-rgb), 0.14); }
.adweek__freetotal { color: var(--accent); }
.adpick { display: flex; flex-direction: column; gap: 26px; align-self: stretch; padding: clamp(22px, 1.72vw, 44px); border-radius: 14px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2); }
.adpick__kicker { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.26em; color: var(--accent); }
.adpick__title { font-family: var(--display); font-size: clamp(34px, 2.81vw, 72px); line-height: 1.02; letter-spacing: -0.024em; }
.adpick__note { margin: 0; font-size: clamp(15px, 0.74vw, 19px); font-weight: 300; line-height: 1.7; color: var(--muted); text-wrap: pretty; }
.adpick__rows { display: flex; flex-direction: column; margin: 0; }
.adpick__row { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; padding: 15px 0; border-top: 1px solid rgba(var(--ink-rgb), 0.14); font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.18em; }
.adpick__k { color: var(--faint); }
.adpick__v { text-align: right; }
.adpick__alts { display: flex; flex-direction: column; gap: 12px; }
.adpick__altlabel { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.24em; color: var(--faint); }
.adpick__altrow { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; }
.adalt { display: inline-flex; align-items: center; height: 44px; padding: 0 18px; border: 0; border-radius: 999px; background: transparent; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.16em; text-transform: none; color: var(--ink); white-space: nowrap; cursor: pointer; transition: background 180ms ease-in-out, color 180ms ease-in-out; }
.adalt:hover { background: rgba(var(--accent-rgb), 0.08); color: var(--accent); }
.adpick__book { margin-top: auto; height: clamp(50px, 2.42vw, 62px); padding: 0 28px; font-size: 12px; }
.adpick__answer { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.2em; color: var(--faint); text-wrap: pretty; }

/* --- 05 Год в цифрах: две колонки по три строки, двойная полоса против медианы ------------- */
.adnums { display: grid; grid-template-columns: minmax(0, 620px) minmax(0, 1fr); gap: clamp(32px, 3.91vw, 100px); align-items: stretch; }
.adnums__lead { display: flex; flex-direction: column; gap: 14px; }
.adnums__foot { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.18em; color: var(--faint); text-wrap: pretty; }
.adnums__audit { display: flex; align-items: center; gap: 18px; margin: auto 0 0; padding-top: 22px; border-top: 1px solid rgba(var(--ink-rgb), 0.16); font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.18em; color: var(--muted); text-wrap: pretty; }
.adchecked { display: grid; place-items: center; flex: none; width: 64px; height: 64px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.5), inset 0 0 0 4px rgba(var(--accent-rgb), 0.16); font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.18em; color: var(--accent); }
.adnums__table { display: flex; flex-direction: column; min-width: 0; }
.adnums__cols,
.adnums__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(24px, 3.12vw, 80px); }
.adnums__cols { padding-bottom: 12px; border-bottom: 2px solid var(--ink); }
.adline__cols,
.adline { display: grid; grid-template-columns: 50px minmax(0, 1fr) clamp(90px, 5.86vw, 150px) clamp(90px, 5.47vw, 140px); gap: 20px; }
.adline__cols { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.2em; color: var(--faint); }
.adline__colend { justify-self: end; }
.adline { align-items: center; padding: 16px 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.12); transition: background 200ms ease-in-out; }
.adline:hover { background: rgba(var(--accent-rgb), 0.04); }
.adline__no { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.2em; color: var(--accent); }
.adline__body { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.adline__label { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.18em; color: var(--ink); }
.adline__track { position: relative; height: 4px; border-radius: 999px; background: rgba(var(--ink-rgb), 0.1); overflow: hidden; }
.adline__city,
.adline__self { position: absolute; left: 0; top: 0; bottom: 0; }
.adline__city { background: rgba(var(--ink-rgb), 0.28); }
.adline__self { background: var(--accent); }
.adline__citylabel { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.16em; color: var(--faint); }
.adline__move { justify-self: end; font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.16em; color: var(--accent); }
.adline__move--held { color: var(--muted); }
.adline__value { justify-self: end; font-family: var(--display); font-size: clamp(26px, 1.72vw, 44px); line-height: 1; letter-spacing: -0.02em; }

/* --- 06 Кварталы: гроссбух слева, карта справа (Leaflet поверх штрихованной плиты) ---------- */
.adquarters { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 820px); gap: clamp(32px, 3.91vw, 100px); align-items: stretch; }
.adquarters__list { display: flex; flex-direction: column; min-width: 0; }
.adquarters__head { padding-bottom: 20px; }
.adqs { margin: 0; padding: 0; list-style: none; }
.adq {
  position: relative;
  display: grid;
  grid-template-columns: 80px minmax(0, 1fr) clamp(140px, 10.16vw, 260px) clamp(110px, 7.81vw, 200px);
  gap: clamp(16px, 1.56vw, 40px);
  align-items: center;
  padding: 30px 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
  transition: background 200ms ease-in-out;
}
.adq:hover,
.adq--on { background: rgba(var(--accent-rgb), 0.05); }
.adq__hit { position: absolute; inset: 0; z-index: 1; padding: 0; border: 0; background: transparent; cursor: pointer; }
.adq__hit:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.adq__pin { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: rgba(var(--bg-rgb), 0.92); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3); font-family: var(--mono); font-size: 12px; text-transform: uppercase; text-transform: none; color: var(--ink); transition: background 200ms ease-in-out; }
.adq--on .adq__pin { background: var(--accent); box-shadow: none; color: var(--c-cream); }
.adq__body { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.adq__name { font-family: var(--display); font-size: clamp(26px, 1.72vw, 44px); line-height: 1.06; letter-spacing: -0.02em; }
.adq__note { font-size: clamp(15px, 0.70vw, 18px); font-weight: 300; line-height: 1.6; color: var(--muted); text-wrap: pretty; }
.adq__track { position: relative; height: 4px; border-radius: 999px; background: rgba(var(--ink-rgb), 0.1); overflow: hidden; }
.adq__share { position: absolute; left: 0; top: 0; bottom: 0; background: rgba(var(--ink-rgb), 0.28); }
.adq--on .adq__share { background: var(--accent); }
.adq__meta { display: flex; flex-direction: column; gap: 6px; font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.18em; color: var(--faint); }
.adq__walked { color: var(--muted); }
.adq__figs { justify-self: end; display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
.adq__homes { font-family: var(--display); font-size: clamp(28px, 1.80vw, 46px); line-height: 1; letter-spacing: -0.02em; }
.adq__median { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.18em; color: var(--faint); }
.admap { position: relative; align-self: stretch; min-height: clamp(360px, 27.34vw, 700px); border-radius: 12px; background: var(--sheet) repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.07) 0 2px, transparent 2px 12px); overflow: hidden; isolation: isolate; }
.admap__live { position: absolute; inset: 0; z-index: 0; }
.admap__inner { position: absolute; inset: 18px; z-index: 2; border-radius: 6px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); pointer-events: none; }
.admap .adtick { left: 34px; top: 34px; width: 20px; height: 20px; }
.admap .adtick--tr { left: auto; right: 34px; }
.admap__north { position: absolute; top: 34px; right: 66px; z-index: 2; font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.24em; color: var(--muted); }
.admap__ph { position: absolute; inset: 0; }
.admap--live .admap__ph { display: none; }
.admap__pins { position: absolute; inset: 0; z-index: 2; }
.admap--live .admap__pins { display: none; }
.admap__pin--0 { left: 20%; top: 22%; }
.admap__pin--1 { left: 46%; top: 40%; }
.admap__pin--2 { left: 24%; top: 54%; }
.admap__pin--3 { left: 62%; top: 18%; }
.admap__pin { position: absolute; display: flex; align-items: center; gap: 10px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.admap__pinno { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; background: rgba(var(--bg-rgb), 0.92); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3); font-family: var(--mono); font-size: 12px; text-transform: uppercase; text-transform: none; color: var(--ink); transition: background 200ms ease-in-out; }
.admap__pin--on .admap__pinno { background: var(--accent); box-shadow: none; color: var(--c-cream); }
.admap__pinname { display: inline-flex; align-items: center; height: 28px; padding: 0 12px; border-radius: 999px; background: rgba(var(--bg-rgb), 0.92); font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); white-space: nowrap; }
.admap__pin--on .admap__pinname { color: var(--accent); }
/* Булавки Leaflet — те же кнопки, положенные на карту по координатам */
.admap__marker { background: transparent; border: 0; }
.admap__marker .admap__pin { position: static; transform: translate(-20px, -20px); }
/* Одеон стоит вплотную к Сен-Жермен и Севр-Бабилон — его имя под булавкой, не справа */
.admap__pin--up { flex-direction: column; align-items: center; gap: 6px; }
.admap__marker .admap__pin--up { transform: translate(-20px, -20px); }
.admap__marker:has(.admap__pin--up) { z-index: 1000 !important; }
.admap__scale { position: absolute; right: 26px; top: 210px; z-index: 2; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.admap--live .admap__scale { padding: 6px 10px; border-radius: 6px; background: rgba(var(--bg-rgb), 0.85); color: var(--ink); }
.admap--live .admap__cadastre { color: var(--muted); }
.admap__scale > span:first-child { display: flex; align-items: center; gap: 10px; }
.admap__scalebar { width: 50px; height: 1px; background: rgba(var(--ink-rgb), 0.45); }
.admap__cadastre { color: var(--faint); }
.admap__plate {
  position: absolute;
  left: 22px;
  right: 22px;
  bottom: 22px;
  z-index: 3;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 22px 24px;
  border-radius: 10px;
  background: rgba(var(--bg-rgb), 0.94);
  color: var(--ink);
}
.admap__platekicker { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.24em; color: var(--accent); }
.admap__platename { font-family: var(--display); font-size: clamp(26px, 1.64vw, 42px); line-height: 1.04; letter-spacing: -0.02em; }
.admap__platequote { font-family: var(--display); font-style: italic; font-size: clamp(17px, 0.86vw, 22px); line-height: 1.4; color: var(--muted); text-wrap: pretty; }
.admap__platefacts { display: flex; align-items: center; gap: 18px; padding-top: 12px; border-top: 1px solid rgba(var(--ink-rgb), 0.16); font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.18em; color: var(--muted); }
.admap__platehomes { color: var(--ink); }
.admap__platebar { width: 1px; height: 12px; background: rgba(var(--ink-rgb), 0.22); }
.admap__plategap { flex: 1; }
.admap__platewalked { color: var(--accent); }
.admap .leaflet-container { font-family: var(--mono); background: var(--sheet); }
.admap .leaflet-control-attribution { font-size: 10px; background: rgba(var(--c-paper-rgb), 0.8); color: var(--c-clay); }
.admap .leaflet-tile-pane { filter: saturate(0.55) sepia(0.25) brightness(1.02); }
[data-theme="dark"] .admap .leaflet-tile-pane { filter: saturate(0.3) sepia(0.3) brightness(0.55) contrast(1.05); }

/* --- 07 Письма: открытое письмо на плите, реестр справа ---------------------------------------- */
.adletters { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 820px); gap: clamp(32px, 3.91vw, 100px); align-items: stretch; }
.adopen { position: relative; display: flex; flex-direction: column; gap: 24px; padding: clamp(24px, 1.88vw, 48px); border-radius: 14px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2); overflow: hidden; }
.adopen .adtick { width: 20px; height: 20px; border-color: rgba(var(--ink-rgb), 0.3); }
.adopen .adtick--tl { left: 26px; top: 26px; }
.adopen .adtick--br { right: 26px; bottom: 26px; }
.adopen__head { display: flex; align-items: center; gap: 18px; margin: 0; padding-bottom: 18px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.2); font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.24em; color: var(--accent); }
.adopen__headline { flex: 1; height: 1px; background: rgba(var(--ink-rgb), 0.2); }
.adopen__meta { color: var(--muted); }
.adopen__quote { margin: 0; font-family: var(--display); font-style: italic; font-size: clamp(26px, 2.03vw, 52px); line-height: 1.26; letter-spacing: -0.014em; text-wrap: pretty; }
.adopen__long { margin: 0; font-size: clamp(16px, 0.78vw, 20px); font-weight: 300; line-height: 1.72; color: var(--muted); text-wrap: pretty; }
.adopen__deal { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; margin: 0; padding-top: 22px; border-top: 1px solid rgba(var(--ink-rgb), 0.16); }
.adopen__cell { display: flex; flex-direction: column; gap: 7px; }
.adopen__k { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.24em; color: var(--faint); }
.adopen__v { font-family: var(--mono); font-size: clamp(12px, 0.51vw, 13px); letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink); text-wrap: pretty; }
.adopen__foot { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; margin-top: auto; padding-top: 26px; border-top: 2px solid var(--ink); }
.adopen__sig { display: flex; flex-direction: column; gap: 8px; margin: 0; }
.adopen__signame { font-family: var(--display); font-style: italic; font-size: clamp(30px, 2.27vw, 58px); line-height: 1; }
.adopen__sigrule { width: 240px; max-width: 100%; height: 1px; background: rgba(var(--ink-rgb), 0.34); }
.adopen__role { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.adopen__nav { display: flex; align-items: center; gap: 16px; margin: 0; }
.adopen__step { display: grid; place-items: center; width: 46px; height: 46px; padding: 0; border: 0; border-radius: 50%; background: transparent; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.28); color: var(--ink); font-family: var(--text); font-size: clamp(15px, 0.70vw, 18px); cursor: pointer; transition: background 200ms ease-in-out, color 200ms ease-in-out; }
.adopen__step:hover { background: rgba(var(--ink-rgb), 0.07); }
.adopen__step--ink { background: var(--ink); box-shadow: none; color: var(--bg); }
.adopen__step--ink:hover { background: var(--accent); color: var(--c-cream); }
.adopen__step:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.adopen__seal { display: grid; place-items: center; flex: none; width: 110px; height: 110px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.5), inset 0 0 0 6px rgba(var(--accent-rgb), 0.16); font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.18em; text-align: center; line-height: 1.7; color: var(--accent); }
.adregister { display: flex; flex-direction: column; min-width: 0; }
.adregister__head { margin: 0; padding-bottom: 16px; border-bottom: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.2em; color: var(--faint); }
.adregister__list { margin: 0; padding: 0; list-style: none; }
.adletter {
  position: relative;
  display: grid;
  grid-template-columns: 62px minmax(0, 1fr) clamp(100px, 6.64vw, 170px);
  gap: 24px;
  align-items: center;
  padding: 24px 0;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
  transition: background 200ms ease-in-out;
}
.adletter:hover,
.adletter--on { background: rgba(var(--accent-rgb), 0.05); }
.adletter__hit { position: absolute; inset: 0; z-index: 1; padding: 0; border: 0; background: transparent; cursor: pointer; }
.adletter__hit:focus-visible { outline: 2px solid var(--accent); outline-offset: -2px; }
.adletter__av { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); font-family: var(--mono); font-size: clamp(12px, 0.51vw, 13px); letter-spacing: 0.06em; color: var(--muted); transition: background 200ms ease-in-out; }
.adletter--on .adletter__av { background: var(--accent); box-shadow: none; color: var(--c-cream); }
.adletter__av--photo { overflow: hidden; }
.adletter__img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 50%; transition: opacity 200ms ease-in-out; }
.adletter--on .adletter__av--photo { box-shadow: 0 0 0 3px var(--accent); }
.adletter__body { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.adletter__line { display: flex; align-items: baseline; gap: 12px; }
.adletter__no { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.22em; color: var(--faint); }
.adletter--on .adletter__no { color: var(--accent); }
.adletter__name { font-family: var(--display); font-size: clamp(22px, 1.25vw, 32px); line-height: 1.08; }
.adletter__excerpt { font-family: var(--display); font-style: italic; font-size: clamp(15px, 0.74vw, 19px); line-height: 1.4; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.adletter__address { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.16em; color: var(--faint); }
.adletter__right { justify-self: end; display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }
.adletter__date { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.18em; color: var(--muted); }
.adletter__arrow { font-size: clamp(14px, 0.66vw, 17px); color: rgba(var(--ink-rgb), 0.28); }
.adletter--on .adletter__arrow { color: var(--accent); }
.adregister__foot { margin: 0; padding-top: 20px; font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.2em; color: var(--accent); text-wrap: pretty; }

/* --- 08 Заметки: печатный указатель ------------------------------------------------------------ */
.adnotes { display: grid; grid-template-columns: minmax(0, 560px) minmax(0, 1fr); gap: clamp(32px, 3.91vw, 100px); align-items: start; }
.adnotes__lead { display: flex; flex-direction: column; gap: 16px; }
.adnotes__table { display: flex; flex-direction: column; min-width: 0; }
.adnotes__cols,
.adnote { display: grid; grid-template-columns: 60px minmax(0, 1fr) clamp(120px, 8.59vw, 220px) clamp(100px, 7.03vw, 180px); gap: clamp(14px, 1.25vw, 32px); }
.adnotes__cols { margin: 0; padding-bottom: 14px; border-bottom: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.2em; color: var(--faint); }
.adnote { align-items: baseline; padding: 22px 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.12); transition: background 200ms ease-in-out; }
.adnote:hover { background: rgba(var(--accent-rgb), 0.04); }
.adnote__no { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.2em; color: var(--accent); }
.adnote__body { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.adnote__title { font-family: var(--display); font-size: clamp(22px, 1.25vw, 32px); line-height: 1.12; letter-spacing: -0.014em; text-wrap: pretty; }
.adnote__meta { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.16em; color: var(--faint); }
.adnote__quarter { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.16em; color: var(--muted); }
.adnote__figure { justify-self: end; font-family: var(--display); font-size: clamp(24px, 1.56vw, 40px); line-height: 1; letter-spacing: -0.018em; }
.adnotes__all { margin-top: 20px; }

/* --- 09 Контора и команда: широкая плита 2440×620, четыре конторы ---------------------------- */
.adoffice__plate { position: relative; height: clamp(320px, 24.22vw, 620px); border-radius: 14px; background: var(--sheet) repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.07) 0 2px, transparent 2px 12px); overflow: hidden; }
.adoffice__inner { position: absolute; inset: 20px; z-index: 2; border-radius: 8px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22); pointer-events: none; }
.adoffice__plate .adtick { left: 34px; top: 34px; }
.adoffice__plate .adtick--tr { left: auto; right: 34px; }
/* На снимке верхняя строка читается только на тёмной вуали сверху */
.adoffice__plate--photo::before { content: ""; position: absolute; left: 0; right: 0; top: 0; z-index: 1; height: 160px; background: linear-gradient(180deg, rgba(var(--c-night-rgb), 0.62) 0%, rgba(var(--c-night-rgb), 0) 100%); pointer-events: none; }
.adoffice__plate--photo .adoffice__inner { box-shadow: inset 0 0 0 1px rgba(var(--c-cream-rgb), 0.35); }
.adoffice__plate--photo .adtick { border-color: rgba(var(--c-cream-rgb), 0.7); }
.adoffice__top { position: absolute; top: 34px; left: 80px; right: 80px; z-index: 2; display: flex; align-items: center; gap: 26px; margin: 0; font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.22em; color: var(--muted); }
.adoffice__plate--photo .adoffice__top { color: var(--c-cream); text-shadow: 0 1px 8px rgba(var(--scrim-rgb), 0.7); }
.adoffice__open { display: inline-flex; align-items: center; gap: 10px; color: var(--accent); }
.adoffice__plate--photo .adoffice__open { color: var(--c-cream); }
.adoffice__topline { flex: 1; height: 1px; background: rgba(var(--ink-rgb), 0.24); }
.adoffice__plate--photo .adoffice__topline { background: rgba(var(--c-cream-rgb), 0.4); }
.adoffice__card { position: absolute; left: 26px; bottom: 26px; z-index: 2; display: flex; flex-direction: column; gap: 14px; padding: clamp(18px, 1.25vw, 32px) clamp(20px, 1.41vw, 36px); border-radius: 12px; background: rgba(var(--bg-rgb), 0.94); color: var(--ink); }
.adoffice__kicker { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.26em; color: var(--accent); }
.adoffice__address { font-family: var(--display); font-size: clamp(28px, 2.27vw, 58px); line-height: 1.02; letter-spacing: -0.024em; }
.adoffice__hours { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.18em; color: var(--muted); }
.adoffice__way { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; margin: 0; padding-top: 14px; border-top: 1px solid rgba(var(--ink-rgb), 0.18); }
.adoffice__card .adpill--bare { color: var(--muted); }
.adoffice__side { position: absolute; right: 26px; bottom: 26px; z-index: 2; display: flex; flex-direction: column; align-items: flex-end; gap: 14px; }
.adoffice__transports { display: flex; align-items: center; gap: 12px; margin: 0; }
.adoffice__transport { display: inline-flex; align-items: center; height: 30px; padding: 0 13px; border-radius: 999px; background: rgba(var(--bg-rgb), 0.92); font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.2em; color: var(--ink); white-space: nowrap; }
.adoffice__acts { display: flex; align-items: center; gap: 12px; margin: 0; }
.adteam { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(24px, 2.34vw, 60px); margin-top: 36px; padding-top: 24px; border-top: 2px solid var(--ink); }
.adperson { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.adperson__head { display: flex; align-items: baseline; gap: 12px; font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.22em; color: var(--accent); }
.adperson__role { color: var(--muted); }
.adperson__headline { flex: 1; height: 1px; background: rgba(var(--ink-rgb), 0.16); }
.adperson__name { font-family: var(--display); font-size: clamp(24px, 1.56vw, 40px); line-height: 1.06; letter-spacing: -0.018em; text-wrap: pretty; }
.adperson__note { font-size: clamp(15px, 0.66vw, 17px); font-weight: 300; line-height: 1.62; color: var(--muted); text-wrap: pretty; }
.adperson__foot { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-top: auto; padding-top: 14px; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
.adperson__since { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.18em; color: var(--faint); }
.adperson__count { font-family: var(--display); font-size: clamp(24px, 1.56vw, 40px); line-height: 1; letter-spacing: -0.018em; }
.adoffice__foot { padding-top: 24px; }

/* --- 10 Вопросы: две открытые в плитах, отвеченные строками, чипы темы и форма в строку -------- */
.adask__head { padding-bottom: 20px; }
.adopenqs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; margin: 32px 0 0; padding: 0; list-style: none; }
.adopenq { display: flex; flex-direction: column; gap: 16px; padding: clamp(20px, 1.41vw, 36px); border-radius: 12px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.4); }
.adopenq__top { display: flex; align-items: center; gap: 14px; margin: 0; font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.2em; color: var(--accent); }
.adopenq__state { display: inline-flex; align-items: center; gap: 9px; }
.adopenq__topline { flex: 1; height: 1px; background: rgba(var(--accent-rgb), 0.3); }
.adopenq__waiting { color: var(--muted); }
.adopenq__q { margin: 0; font-family: var(--display); font-size: clamp(24px, 1.56vw, 40px); line-height: 1.14; letter-spacing: -0.018em; text-wrap: pretty; }
.adopenq__a { margin: 0; font-size: clamp(15px, 0.70vw, 18px); font-weight: 300; line-height: 1.66; color: var(--muted); text-wrap: pretty; }
.adopenq__clock { display: flex; flex-direction: column; gap: 8px; margin: 0; padding-top: 10px; }
.adopenq__clockline { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.2em; color: var(--faint); }
.adopenq__clocklabel { color: var(--accent); }
.adopenq__track { position: relative; height: 6px; border-radius: 999px; background: rgba(var(--ink-rgb), 0.12); overflow: hidden; }
.adopenq__fill { position: absolute; left: 0; top: 0; bottom: 0; width: 100%; background: var(--accent); }
.adopenq__foot { display: flex; align-items: center; gap: 14px; margin: 0; padding-top: 14px; border-top: 1px solid rgba(var(--accent-rgb), 0.26); }
.adopenq__who { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.18em; color: var(--muted); }
.adopenq__gap { flex: 1; }
.adopenq__follow { display: inline-flex; align-items: center; gap: 12px; height: 44px; padding: 0 18px; border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.18em; white-space: nowrap; color: var(--ink); text-decoration: none; transition: background 200ms ease-in-out, color 200ms ease-in-out; }
.adopenq__follow:hover { background: rgba(var(--accent-rgb), 0.08); color: var(--accent); }
.adanswered { display: flex; flex-direction: column; margin-top: 26px; }
.adans__cols,
.adans { display: grid; grid-template-columns: 70px minmax(0, 1fr) clamp(200px, 20.31vw, 520px) clamp(90px, 7.03vw, 180px) 60px; gap: clamp(14px, 1.41vw, 36px); }
.adans__cols { margin: 0; padding-bottom: 12px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.22); font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.2em; color: var(--faint); }
.adans { align-items: baseline; padding: 18px 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.12); transition: background 200ms ease-in-out; }
.adans:hover { background: rgba(var(--accent-rgb), 0.04); }
.adans__no { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.2em; color: var(--faint); }
.adans__q { font-family: var(--mono); font-size: clamp(12px, 0.51vw, 13px); letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink); min-width: 0; }
.adans__excerpt { font-family: var(--display); font-style: italic; font-size: clamp(15px, 0.74vw, 19px); line-height: 1.4; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.adans__in { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.16em; color: var(--accent); }
.adans__arrow { justify-self: end; font-size: clamp(14px, 0.66vw, 17px); color: rgba(var(--ink-rgb), 0.3); }
.adform { margin-top: 34px; }
.adform__topics { display: flex; align-items: center; gap: 14px; margin: 0; padding: 0; border: 0; min-width: 0; }
.adform__ask { float: left; padding: 0; margin-right: 14px; font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.24em; color: var(--accent); white-space: nowrap; }
.adtopics { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.adtopic { display: inline-flex; align-items: center; height: 44px; padding: 0 18px; border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.16em; white-space: nowrap; color: var(--ink); cursor: pointer; transition: background 180ms ease-in-out, color 180ms ease-in-out; }
.adtopic:hover { background: rgba(var(--accent-rgb), 0.06); }
.g4pill__input:checked + .adtopic { background: var(--ink); box-shadow: none; color: var(--bg); }
.g4pill__input:focus-visible + .adtopic { outline: 2px solid var(--accent); outline-offset: 2px; }
.adform__row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 420px) minmax(0, 420px) minmax(0, 300px); gap: 20px; align-items: stretch; margin-top: 20px; }
.adfield { display: flex; flex-direction: column; gap: 8px; padding: 20px 24px; border-radius: 10px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.18); }
.adfield:focus-within { box-shadow: inset 0 0 0 2px var(--accent); }
.adfield__label { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.24em; color: var(--muted); }
.adfield__input { width: 100%; padding: 0; border: 0; background: transparent; font-family: var(--text); font-size: clamp(16px, 0.74vw, 19px); color: var(--ink); outline: 0; }
.adfield__input::placeholder { color: var(--faint); opacity: 1; }
/* Владелец: кнопка той же высоты и формы, что поля рядом — плита, не пилюля */
.adform__send { height: auto; min-height: clamp(52px, 2.58vw, 66px); padding: 0 28px; border: 0; border-radius: 10px; font-size: 12px; cursor: pointer; }
.adask__foot { margin: 0; padding-top: 18px; font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.18em; color: var(--faint); }

/* --- 11 Другие советники: четыре карточки и панель к списку ------------------------------------- */
.adothers__grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 26px; margin-top: 34px; }
.adother {
  display: flex;
  flex-direction: column;
  min-width: 0;
  border-radius: 12px;
  background: var(--modal-field);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16);
  color: var(--ink);
  text-decoration: none;
  overflow: hidden;
  transition: box-shadow 240ms ease-in-out, transform 240ms ease-in-out;
}
.adother:hover { box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.45), 0 28px 60px rgba(var(--shadow-warm-rgb), 0.12); transform: translateY(-8px); }
.adother__plate { position: relative; height: clamp(240px, 16.41vw, 420px); background: var(--sheet) repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.07) 0 2px, transparent 2px 12px); }
.adother__veil { position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(var(--c-night-rgb), 0) 58%, rgba(var(--c-night-rgb), 0.78) 100%); pointer-events: none; }
.adother__tick { left: 14px; top: 14px; width: 16px; height: 16px; border-color: rgba(var(--c-cream-rgb), 0.7); }
.adother__no { position: absolute; top: 16px; right: 16px; z-index: 2; display: inline-flex; align-items: center; height: 30px; padding: 0 13px; border-radius: 999px; background: rgba(var(--bg-rgb), 0.92); font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.2em; color: var(--accent); }
.adother__edge { position: absolute; left: 18px; right: 18px; bottom: 16px; z-index: 2; display: flex; align-items: center; justify-content: space-between; gap: 12px; font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.2em; color: var(--c-cream); }
.adother__body { display: flex; flex-direction: column; flex: 1; gap: 12px; padding: 28px 28px 30px; }
.adother__name { font-family: var(--display); font-size: clamp(22px, 1.41vw, 36px); line-height: 1.08; letter-spacing: -0.018em; }
.adother__note { font-size: clamp(14px, 0.62vw, 16px); font-weight: 300; line-height: 1.6; color: var(--muted); text-wrap: pretty; }
.adother__rows { display: flex; flex-direction: column; margin-top: auto; padding-top: 14px; }
.adother__row { display: flex; align-items: baseline; gap: 12px; padding: 10px 0; border-top: 1px solid rgba(var(--ink-rgb), 0.14); font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.16em; color: var(--ink); }
.adother__sheet { display: inline-flex; align-items: center; gap: 12px; margin-top: 6px; font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.18em; color: var(--ink); transition: color 180ms ease-in-out; }
.adother:hover .adother__sheet { color: var(--accent); }
.adback { display: flex; flex-direction: column; gap: 18px; min-width: 0; padding: 34px 30px; border-radius: 12px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.18); color: var(--ink); text-decoration: none; transition: background 240ms ease-in-out; }
.adback:hover { background: var(--sheet-strong); }
.adback__kicker { font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.24em; color: var(--accent); }
.adback__title { font-family: var(--display); font-size: clamp(30px, 2.27vw, 58px); line-height: 0.98; letter-spacing: -0.026em; }
.adback__title em { font-style: italic; color: var(--accent); }
.adback__note { font-size: clamp(14px, 0.62vw, 16px); font-weight: 300; line-height: 1.6; color: var(--muted); text-wrap: pretty; }
.adback__rows { display: flex; flex-direction: column; margin-top: auto; }
.adback__row { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding: 11px 0; border-top: 1px solid rgba(var(--ink-rgb), 0.16); font-family: var(--mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.16em; color: var(--faint); }
.adback__v { color: var(--ink); }

/* ==========================================================================
   77. Agent detail — адаптив
   ========================================================================== */
@media (max-width: 1680px) {
  .adhero { grid-template-columns: minmax(0, 620px) minmax(0, 1fr); gap: clamp(30px, 3.52vw, 90px); }
  .adhero__name { white-space: normal; }
  .adsign { right: -40px; }
  .adclauses { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .adhours { grid-template-columns: minmax(0, 1fr) minmax(0, 520px); gap: clamp(24px, 2.34vw, 60px); }
  .adnums { grid-template-columns: minmax(0, 420px) minmax(0, 1fr); }
  .adquarters,
  .adletters { grid-template-columns: minmax(0, 1fr) minmax(0, 620px); gap: clamp(24px, 2.34vw, 60px); }
  .adnotes { grid-template-columns: minmax(0, 420px) minmax(0, 1fr); }
  .adothers__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .adform__row { grid-template-columns: minmax(0, 1fr) minmax(0, 320px) minmax(0, 320px) minmax(0, 240px); }
}

@media (max-width: 1280px) {
  .adhero { grid-template-columns: minmax(0, 1fr); gap: 80px; }
  .adhero__plate { margin-top: 40px; }
  .adsign { right: 20px; }
  .adsec__head { flex-direction: column; align-items: flex-start; gap: 24px; }
  .adsec__aside { white-space: normal; }
  .adstats { gap: 32px; }
  .adstat { align-items: flex-start; }
  .adnums__cols,
  .adnums__grid { grid-template-columns: minmax(0, 1fr); }
  .adnums__cols > :nth-child(2) { display: none; }
  .adhours,
  .adnums,
  .adquarters,
  .adletters,
  .adnotes { grid-template-columns: minmax(0, 1fr); }
  .adweek__grid { grid-template-columns: 64px repeat(6, minmax(0, 1fr)); gap: 6px; }
  .adcell__label { display: none; }
  .adcell { padding: 0 10px; }
  .adteam { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .adopenqs { grid-template-columns: minmax(0, 1fr); }
  .adans__cols { display: none; }
  .adans { grid-template-columns: 50px minmax(0, 1fr) 90px; }
  .adans__excerpt { grid-column: 2; white-space: normal; }
  .adans__arrow { display: none; }
  .adform__row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .adform__row .adfield:first-child { grid-column: 1 / -1; }
  .adothers__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 768px) {
  .adhero__kicker { flex-wrap: wrap; row-gap: 8px; }
  .adhero__ticks { display: none; }
  .addesk__row { grid-template-columns: 50px minmax(0, 1fr) auto; gap: 14px; }
  .addesk__note { grid-column: 2; }
  .addesk__value { grid-row: 1 / span 2; grid-column: 3; align-self: center; }
  .adavail { flex-wrap: wrap; row-gap: 10px; }
  .adavail__bar { display: none; }
  .adhero__signline { margin-left: 0; }
  .adsign { position: static; width: auto; margin-top: 14px; }
  .adclauses { grid-template-columns: minmax(0, 1fr); }
  .adpledge__foot { grid-template-columns: minmax(0, 1fr); }
  .adhomes__row { padding-top: 28px; padding-bottom: 16px; gap: 20px; }
  .adtabs { flex-wrap: wrap; gap: 16px; }
  .adweek__grid { grid-template-columns: 52px repeat(6, minmax(0, 1fr)); gap: 4px; }
  .adweek__daydate,
  .adweek__today { display: none; }
  .adweek__dayname { font-size: 12px; letter-spacing: 0.06em; }
  .adcell { height: 40px; padding: 0 6px; justify-content: center; }
  .adweek__time { font-size: 12px; letter-spacing: 0; }
  .adweek__legend { flex-wrap: wrap; row-gap: 10px; }
  .adline,
  .adline__cols { grid-template-columns: 40px minmax(0, 1fr) auto; }
  .adline__value { grid-column: 3; }
  .adline__move { grid-column: 2; justify-self: start; }
  .adq { grid-template-columns: 50px minmax(0, 1fr); gap: 14px; }
  .adq__meta,
  .adq__figs { grid-column: 2; }
  .adq__figs { justify-self: start; align-items: flex-start; }
  .adletter { grid-template-columns: 52px minmax(0, 1fr); }
  .adletter__right { grid-column: 2; justify-self: start; align-items: flex-start; }
  .adopen__deal { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .adopen__foot { flex-direction: column; align-items: flex-start; gap: 24px; }
  .adnotes__cols { display: none; }
  .adnote { grid-template-columns: 40px minmax(0, 1fr); }
  .adnote__quarter,
  .adnote__figure { grid-column: 2; justify-self: start; }
  .adoffice__top { left: 34px; right: 34px; flex-wrap: wrap; }
  .adoffice__side { position: static; align-items: flex-start; margin-top: 16px; }
  .adoffice__transports,
  .adoffice__acts { flex-wrap: wrap; }
  .adoffice__card { position: static; margin: 0 20px; }
  .adoffice__plate { display: flex; flex-direction: column; justify-content: flex-end; height: auto; min-height: clamp(320px, 24.22vw, 620px); padding: 90px 0 20px; }
  .adoffice__plate .adphoto { z-index: 0; }
  .adoffice__card,
  .adoffice__side { position: relative; z-index: 2; }
  .adoffice__side { margin: 16px 20px 0; }
  .adteam { grid-template-columns: minmax(0, 1fr); }
  .adform__row { grid-template-columns: minmax(0, 1fr); }
  .adform__topics { flex-direction: column; align-items: flex-start; }
  .adothers__grid { grid-template-columns: minmax(0, 1fr); }
  .adfoot,
  .adask__foot { flex-wrap: wrap; row-gap: 8px; }
  .adfoot__line { display: none; }
}

@media (max-width: 480px) {
  .adhero__acts .adbtn { width: 100%; justify-content: center; }
  .adhero__seal { top: 20px; right: 20px; }
  .adtick--tl { left: 24px; top: 24px; }
  .adtick--br { right: 24px; bottom: 24px; }
  .adpledge__acts .adbtn { width: 100%; justify-content: center; }
  .adpledge__signed { flex-direction: column; align-items: flex-start; }
  .adhome { flex-basis: 84vw; }
  .adswitch { flex-wrap: wrap; }
  .adpick { padding: 20px; }
  .adnums__audit { flex-wrap: wrap; }
  .admap__plate { left: 12px; right: 12px; bottom: 12px; padding: 16px; }
  .admap__platefacts { flex-wrap: wrap; row-gap: 8px; }
  .admap__scale { display: none; }
  .adopen__nav { flex-wrap: wrap; }
  .adopenq__foot { flex-wrap: wrap; row-gap: 12px; }
  .adopenq__gap { display: none; }
  .adask__foot { white-space: normal; }
  .adans { grid-template-columns: 40px minmax(0, 1fr); }
  .adans__in { grid-column: 2; }
}

/* ==========================================================================
   78. User overview — кабинет покупателя: картотека и одиннадцать плит
   ========================================================================== */
.uopage .pagehead { margin-bottom: 20px; }
.uobody { display: grid; grid-template-columns: minmax(0, 420px) minmax(0, 1fr); gap: 30px; align-items: start; }
.uoflow { display: flex; flex-direction: column; min-width: 0; }
.uorule { height: 1px; margin: clamp(32px, 2.34vw, 60px) 0; border: 0; background: rgba(var(--ink-rgb), 0.14); }
.uow-0 { width: 0%; }
.uow-12 { width: 12%; }
.uow-18 { width: 18%; }
.uow-26 { width: 26%; }
.uow-34 { width: 34%; }
.uow-38 { width: 38%; }
.uow-46 { width: 46%; }
.uow-62 { width: 62%; }
.uow-78 { width: 78%; }
.uow-82 { width: 82%; }
.uow-100 { width: 100%; }

/* --- Атомы: кикер, голова плиты, сводка, точка, полоса, пилюли, гроссбух, аватар, печать ---- */
.uokicker { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.uosec__head { display: flex; align-items: flex-end; gap: 40px; padding-bottom: 22px; border-bottom: 2px solid var(--ink); }
.uosec__lead { display: flex; flex-direction: column; gap: 14px; flex: 1; min-width: 0; }
.uosec__title { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(34px, 2.50vw, 64px); }
.uosec__title em,
.uosell__title em,
.uofile__name em { font-style: italic; color: var(--accent); }
.uosec__aside { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); text-align: right; line-height: 1.7; }
.uosummary { display: flex; align-items: center; gap: 20px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.uosummary__red { display: inline-flex; align-items: center; gap: 9px; color: var(--accent); }
.uosummary__line { flex: 1; height: 1px; background: rgba(var(--ink-rgb), 0.14); }
.uodot { flex: none; width: 7px; height: 7px; border-radius: 50%; background: var(--accent); }
.uodot--6 { width: 6px; height: 6px; }
.uodot--8 { width: 8px; height: 8px; }
.uobar-v { flex: none; width: 1px; height: 12px; background: rgba(var(--ink-rgb), 0.24); }
.uobar-v--11 { height: 11px; }
.uobar { position: relative; display: block; height: 5px; border-radius: 999px; background: rgba(var(--ink-rgb), 0.12); overflow: hidden; }
.uobar--6 { height: 6px; }
.uobar__fill { position: absolute; inset: 0 auto 0 0; background: rgba(var(--ink-rgb), 0.55); }
.uobar__fill--red { background: var(--accent); }
.uofoot { display: flex; align-items: center; gap: 18px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.uolink { display: inline-flex; align-items: center; gap: 10px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); text-decoration: none; transition: color 180ms ease-in-out; }
.uolink:hover { color: var(--ink); }
.uolink .g4arrow { font-size: clamp(13px, 0.59vw, 15px); }
.uopill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  height: clamp(46px, 2.11vw, 54px);
  padding: 0 clamp(18px, 1.02vw, 26px);
  border: 0;
  border-radius: 999px;
  font-family: var(--text);
  font-size: clamp(14px, 0.59vw, 15px);
  white-space: nowrap;
  text-decoration: none;
  cursor: pointer;
  transition: background 200ms ease-in-out, color 200ms ease-in-out, box-shadow 200ms ease-in-out;
}
.uopill--ink { background: var(--ink); color: var(--bg); }
.uopill--ink:hover { background: var(--accent); color: var(--c-cream); }
.uopill--red { background: var(--accent); color: var(--c-cream); }
.uopill--red:hover { background: var(--ink); color: var(--bg); }
.uopill--outline { background: transparent; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); color: var(--ink); }
.uopill--outline:hover { box-shadow: inset 0 0 0 1px var(--accent); color: var(--accent); }
.uopill--46 { height: 46px; }
.uopill--50 { height: 50px; }
.uopill--54 { height: 54px; }
.uopill--56 { height: 56px; padding: 0 clamp(20px, 1.17vw, 30px); font-size: clamp(14px, 0.62vw, 16px); }
.uopill--62 { height: clamp(50px, 2.42vw, 62px); font-size: clamp(14px, 0.62vw, 16px); }
.uopill--full { width: 100%; }
.uopill .g4arrow { font-size: clamp(14px, 0.62vw, 16px); }
.uoledger { display: flex; flex-direction: column; gap: 10px; margin: 0; }
.uoledger__row { display: flex; align-items: baseline; gap: 10px; font-size: clamp(14px, 0.62vw, 16px); color: var(--muted); }
.uoledger__row--tight { font-size: clamp(13px, 0.59vw, 15px); }
.uoledger__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--faint); }
.uoledger__lead { flex: 1; border-bottom: 1px dotted rgba(var(--ink-rgb), 0.3); }
.uoledger__v { color: var(--ink); text-align: right; }
.uoav { position: relative; display: block; flex: none; width: 52px; height: 52px; border-radius: 50%; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.18); }
.uoav--hatch { background: repeating-linear-gradient(45deg, var(--sheet) 0 6px, var(--sheet-strong) 6px 12px); }
.uoav__img { display: block; width: 100%; height: 100%; object-fit: cover; }
.uoav--56 { width: 56px; height: 56px; }
.uoav--64 { width: 64px; height: 64px; }
.uoav--104 { width: 104px; height: 104px; }
.uoseal {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: none;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  background: rgba(var(--bg-rgb), 0.9);
  box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.5), inset 0 0 0 6px rgba(var(--accent-rgb), 0.16);
  font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase;
  letter-spacing: 0.14em;
  text-align: center;
  line-height: 1.6;
  color: var(--accent);
}
.uoseal--92 { width: 92px; height: 92px; }
.uoswitch { position: relative; display: inline-flex; align-items: center; gap: 12px; cursor: pointer; }
.uoswitch__input { position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; pointer-events: none; }
.uoswitch__state { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.uoswitch__on { display: none; color: var(--accent); }
.uoswitch__track { position: relative; width: 56px; height: 30px; border-radius: 999px; background: rgba(var(--ink-rgb), 0.18); transition: background 200ms ease-in-out; }
.uoswitch__knob { position: absolute; top: 3px; left: 3px; width: 24px; height: 24px; border-radius: 50%; background: var(--bg); transition: left 200ms ease-in-out; }
.uoswitch__input:checked ~ .uoswitch__state .uoswitch__on { display: inline; }
.uoswitch__input:checked ~ .uoswitch__state .uoswitch__off { display: none; }
.uoswitch__input:checked ~ .uoswitch__track { background: var(--accent); }
.uoswitch__input:checked ~ .uoswitch__track .uoswitch__knob { left: 29px; }
.uoswitch__input:focus-visible ~ .uoswitch__track { outline: 2px solid var(--accent); outline-offset: 3px; }
.uophoto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.uopage .hdph { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; text-align: center; padding: 12px; }

/* --- Боковая: картотека на рельсе, липкая от 40px ------------------------------------------- */
.uoside { position: sticky; top: 40px; display: flex; flex-direction: column; gap: 26px; padding-top: 34px; }
.uoside__tick { position: absolute; top: 34px; left: 0; width: 22px; height: 22px; border-top: 1.5px solid rgba(var(--ink-rgb), 0.3); border-left: 1.5px solid rgba(var(--ink-rgb), 0.3); pointer-events: none; }
.uoside__file { display: flex; flex-direction: column; gap: 20px; padding: 6px 0 22px 16px; border-bottom: 2px solid var(--ink); }
.uoside__fileline { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.uoside__opened { color: var(--faint); }
.uoside__who { display: flex; align-items: center; gap: 16px; margin: 0; }
.uoside__avatar { position: relative; display: block; flex: none; width: 64px; height: 64px; line-height: 0; }
.uoside__badge { position: absolute; right: -2px; bottom: -2px; width: 16px; height: 16px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 3px var(--sheet); }
.uoside__names { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.uoside__name { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.25vw, 32px); line-height: 1; }
.uoside__buying { font-size: clamp(13px, 0.55vw, 14px); color: var(--muted); }
.uoside__alert { display: flex; align-items: center; gap: 12px; margin: 0; padding: 12px 14px; border-radius: 9px; background: rgba(var(--accent-rgb), 0.07); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.26); }
.uoside__alerttext { font-size: clamp(14px, 0.59vw, 15px); color: var(--accent); }
.uoside__gap { flex: 1; }
.uoside__both { display: inline-flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--accent); text-decoration: none; white-space: nowrap; }
.uonav { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 0 14px; margin-left: -1px; }
.uonav__rail { border-left: 1px solid rgba(var(--ink-rgb), 0.2); }
.uonav__group { display: flex; align-items: center; gap: 14px; padding: 22px 16px 8px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.24em; color: var(--muted); }
.uonav__groupline { flex: 1; height: 1px; background: rgba(var(--ink-rgb), 0.14); }
.uonav__seg { display: flex; align-items: center; border-left: 1px solid rgba(var(--ink-rgb), 0.2); }
.uonav__dash { width: 11px; height: 1px; background: rgba(var(--ink-rgb), 0.24); }
.uonav__seg--on { margin-left: -1px; border-left: 2px solid var(--accent); }
.uonav__seg--on .uonav__dash { width: 18px; height: 2px; background: var(--accent); }
.uonav__item {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 16px;
  align-items: baseline;
  padding: 13px 16px;
  border-radius: 9px;
  color: var(--ink);
  font-size: clamp(16px, 0.70vw, 18px);
  text-decoration: none;
  transition: background 180ms ease-in-out, color 180ms ease-in-out;
}
.uonav__item:hover { background: rgba(var(--ink-rgb), 0.05); color: var(--accent); }
.uonav__item--on,
.uonav__item--on:hover { background: rgba(var(--accent-rgb), 0.06); color: var(--accent); }
.uonav__words { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.uonav__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.18em; color: var(--faint); }
.uonav__item--on .uonav__sub { color: rgba(var(--accent-rgb), 0.72); }
.uonav__count { font-family: var(--mono); font-size: 12px; letter-spacing: 0.14em; color: var(--muted); white-space: nowrap; }
.uonav__count--red,
.uonav__item--on .uonav__count { color: var(--accent); }
.uoside__adv { display: flex; flex-direction: column; gap: 16px; padding: 22px; border-radius: 12px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); }
.uoside__advhead { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.24em; color: var(--muted); }
.uoside__desk { display: inline-flex; align-items: center; gap: 7px; color: var(--accent); white-space: nowrap; }
.uoside__advwho { display: flex; align-items: center; gap: 14px; margin: 0; }
.uoside__advnames { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.uoside__advname { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 0.98vw, 25px); line-height: 1; }
.uoside__advline { font-size: clamp(13px, 0.55vw, 14px); color: var(--muted); }
.uoside__advacts { display: flex; gap: 10px; margin: 0; }
.uoside__write { flex: 1; padding: 0 14px; }
.uoside__foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0; padding-top: 4px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--faint); }
.uoside__foot a { color: var(--muted); text-decoration: none; }
.uoside__foot a:hover { color: var(--accent); }

/* --- 01 Дело: строка дела, имя 104, четыре факта, советник и две красные карточки ---------- */
.uofile { display: flex; flex-direction: column; gap: 36px; }
.uofile__line { display: flex; align-items: center; gap: 20px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.uofile__red { color: var(--accent); }
.uofile__lineline { flex: 1; height: 1px; background: rgba(var(--ink-rgb), 0.14); }
.uofile__head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: clamp(24px, 2.34vw, 60px); align-items: end; padding-bottom: 26px; border-bottom: 2px solid var(--ink); }
.uofile__lead { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.uofile__name { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(44px, 4.06vw, 104px); }
.uofile__stand { margin: 0; max-width: 1000px; font-size: clamp(16px, 0.78vw, 20px); line-height: 1.7; color: var(--muted); text-wrap: pretty; }
.uodue { display: flex; align-items: center; gap: 20px; margin: 0; padding: 14px 26px 14px 14px; border-radius: 999px; box-shadow: inset 0 0 0 1.5px rgba(var(--accent-rgb), 0.34); }
.uodue__disc { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 52px; height: 52px; border-radius: 50%; background: var(--accent); font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.17vw, 30px); line-height: 1; padding-bottom: 0.14em; color: var(--c-cream); }   /* цифра Playfair сидит низко — приподнята */
.uodue__words { display: flex; flex-direction: column; gap: 5px; }
.uodue__kicker { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.uodue__note { font-size: clamp(14px, 0.62vw, 16px); }
.uofacts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.uofact { display: flex; flex-direction: column; gap: 9px; padding: 26px clamp(16px, 1.17vw, 30px) 30px; border-left: 1px solid rgba(var(--ink-rgb), 0.14); transition: background 180ms ease-in-out; }
.uofact:first-child { border-left: 0; }
.uofact:hover { background: rgba(var(--accent-rgb), 0.05); }
.uofact__head { display: flex; align-items: baseline; gap: 12px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--faint); }
.uofact__label { color: var(--muted); }
.uofact__value { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(30px, 2.03vw, 52px); }
.uofact__note { font-size: clamp(14px, 0.62vw, 16px); color: var(--muted); }
.uofile__bottom { display: grid; grid-template-columns: minmax(0, 660px) minmax(0, 1fr); gap: clamp(20px, 1.95vw, 50px); align-items: stretch; }
.uoadv { display: flex; flex-direction: column; gap: 20px; padding: 28px 30px; border-radius: 12px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); }
.uoadv__head { display: flex; align-items: center; gap: 14px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.uoadv__gap { flex: 1; }
.uoadv__who { display: flex; align-items: center; gap: 22px; margin: 0; }
.uoadv__portrait { position: relative; display: block; flex: none; width: 104px; height: 104px; line-height: 0; }
.uoadv__badge { position: absolute; right: -4px; bottom: -4px; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 50%; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.5); font-family: var(--mono); font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--accent); }
.uoadv__names { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.uoadv__name { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.48vw, 38px); }
.uoadv__line { font-size: clamp(14px, 0.66vw, 17px); color: var(--muted); }
.uoadv__acts { display: flex; gap: 12px; flex-wrap: wrap; margin: auto 0 0; }
.uoacts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.uoact {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 28px;
  border-radius: 12px;
  background: rgba(var(--accent-rgb), 0.06);
  box-shadow: inset 0 0 0 1.5px rgba(var(--accent-rgb), 0.34);
  color: var(--ink);
  text-decoration: none;
  transition: background 200ms ease-in-out, transform 200ms ease-in-out, box-shadow 200ms ease-in-out;
}
.uoact:hover { background: rgba(var(--accent-rgb), 0.12); transform: translateY(-4px); box-shadow: inset 0 0 0 1.5px rgba(var(--accent-rgb), 0.55), 0 22px 46px rgba(var(--shadow-warm-rgb), 0.1); }
.uoact__top { display: flex; align-items: center; gap: 12px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.uoact__gap { flex: 1; }
.uoact__title { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.48vw, 38px); color: var(--accent); }
.uoact__detail { font-size: clamp(14px, 0.66vw, 17px); line-height: 1.5; }
.uoact__foot { display: flex; flex-direction: column; gap: 10px; margin-top: auto; padding-top: 16px; border-top: 1px solid rgba(var(--accent-rgb), 0.22); }
.uoact__due { display: flex; align-items: center; gap: 10px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.uoact__due .g4arrow { font-size: clamp(14px, 0.62vw, 16px); }

/* --- 02 Что ждёт: четыре карточки, одна просрочена ------------------------------------------ */
.uowaiting { display: flex; flex-direction: column; gap: 32px; }
.uowaits { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; align-items: stretch; margin: 0; padding: 0; list-style: none; }
.uowait {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 30px 28px 28px;
  border-radius: 12px;
  background: var(--modal-field);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14);
  transition: transform 220ms ease-in-out, box-shadow 220ms ease-in-out, background 220ms ease-in-out;
}
.uowait:hover { transform: translateY(-6px); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14), 0 26px 56px rgba(var(--shadow-warm-rgb), 0.12); }
.uowait--over { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1.5px rgba(var(--accent-rgb), 0.34); }
.uowait--over:hover { box-shadow: inset 0 0 0 1.5px rgba(var(--accent-rgb), 0.5), 0 26px 56px rgba(var(--shadow-warm-rgb), 0.12); }
.uowait__tick { position: absolute; top: 22px; right: 22px; width: 18px; height: 18px; border-top: 1.5px solid rgba(var(--ink-rgb), 0.22); border-right: 1.5px solid rgba(var(--ink-rgb), 0.22); pointer-events: none; }
.uowait--over .uowait__tick { border-color: rgba(var(--accent-rgb), 0.45); }
.uowait__state { display: flex; align-items: center; gap: 10px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--faint); }
.uowait__status { color: var(--muted); }
.uowait--over .uowait__state,
.uowait--over .uowait__status { color: var(--accent); }
.uowait__title { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.48vw, 38px); }
.uowait--over .uowait__title { color: var(--accent); }
.uowait__detail { font-size: clamp(14px, 0.66vw, 17px); line-height: 1.55; }
.uowait__sub { font-size: clamp(13px, 0.59vw, 15px); line-height: 1.5; color: var(--muted); }
.uowait__foot { display: flex; flex-direction: column; gap: 11px; margin-top: auto; padding-top: 18px; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
.uowait--over .uowait__foot { border-top-color: rgba(var(--accent-rgb), 0.22); }
.uowait__left { display: flex; align-items: baseline; gap: 12px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.uowait--over .uowait__left { color: var(--accent); }
.uowait__due { font-size: clamp(13px, 0.59vw, 15px); color: var(--muted); }
.uowait--over .uowait__due { color: var(--accent); }
.uowait__foot .uopill { margin-top: 6px; }

/* --- 03 Сохранённые: ряд 600-px колонок со снапом ------------------------------------------- */
.uosaveds { display: flex; flex-direction: column; gap: 40px; }
.uosaveds__row { display: flex; gap: 40px; margin: 0; padding: 10px 0 20px; list-style: none; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: thin; }
.uosaved { display: flex; flex: 0 0 clamp(300px, 23.44vw, 600px); flex-direction: column; gap: 22px; box-sizing: border-box; scroll-snap-align: start; }
.uosaved__plate { position: relative; height: clamp(210px, 16.41vw, 420px); border-radius: 12px; overflow: hidden; background: var(--sheet) repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.07) 0 2px, transparent 2px 12px); }
.uosaved__inner { position: absolute; inset: 16px; border-radius: 6px; box-shadow: inset 0 0 0 1px rgba(var(--c-cream-rgb), 0.35); pointer-events: none; }
.uosaved__status { position: absolute; top: 18px; left: 18px; display: inline-flex; align-items: center; height: 36px; padding: 0 16px; border-radius: 999px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; }
.uosaved__status--red { background: var(--accent); color: var(--c-cream); }
.uosaved__status--cream { background: var(--bg); color: var(--ink); }
.uosaved__status--dark { background: rgba(var(--c-night-rgb), 0.82); color: var(--c-cream); }
.uosaved__saved { position: absolute; bottom: 18px; left: 18px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--c-cream); text-shadow: 0 1px 6px rgba(var(--c-deep-rgb), 0.6); }
.uosaved__plate:not(.uosaved__plate--photo) .uosaved__saved { color: var(--muted); text-shadow: none; }
.uosaved__title { display: flex; flex-direction: column; gap: 7px; margin: 0; }
.uosaved__no { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--faint); }
.uosaved__address { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(26px, 1.64vw, 42px); }
.uosaved__measure { font-size: clamp(14px, 0.66vw, 17px); color: var(--muted); }
.uosaved__price { display: flex; align-items: baseline; gap: 18px; margin: 0; padding-top: 16px; border-top: 2px solid var(--ink); }
.uosaved__sum { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(30px, 1.95vw, 50px); }
.uosaved__gap { flex: 1; }
.uosaved__change { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); text-align: right; }
.uosaved__change--red { color: var(--accent); }

/* --- 04 Изменения: две колонки сверху вниз, четыре итога ------------------------------------ */
.uochanges { display: flex; flex-direction: column; gap: 30px; }
.uochanges__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 clamp(24px, 2.73vw, 70px); }
.uochanges__col { display: flex; flex-direction: column; min-width: 0; }
.uochange {
  display: grid;
  grid-template-columns: clamp(70px, 4.06vw, 104px) clamp(110px, 5.86vw, 150px) minmax(0, 1fr) clamp(120px, 7.42vw, 190px);
  gap: 18px;
  align-items: center;
  padding: 20px 14px;
  margin: 0 -14px;
  border-bottom: 1px solid rgba(var(--ink-rgb), 0.14);
  color: var(--ink);
  text-decoration: none;
  transition: background 180ms ease-in-out;
}
.uochange:hover { background: rgba(var(--accent-rgb), 0.04); }
.uochange__when { display: flex; flex-direction: column; gap: 4px; }
.uochange__date { font-size: clamp(14px, 0.66vw, 17px); }
.uochange__hour { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--faint); }
.uotag { display: inline-flex; align-items: center; gap: 9px; height: 30px; padding: 0 14px; border-radius: 999px; justify-self: start; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.18em; color: var(--muted); }
.uotag__dot { width: 6px; height: 6px; border-radius: 50%; background: rgba(var(--ink-rgb), 0.3); }
.uotag--red { box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.45); color: var(--accent); }
.uotag--red .uotag__dot { background: var(--accent); }
.uochange__what { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.uochange__home { font-size: clamp(15px, 0.74vw, 19px); }
.uochange__detail { font-size: clamp(13px, 0.59vw, 15px); color: var(--muted); }
.uochange__fig { display: flex; flex-direction: column; gap: 4px; text-align: right; }
.uochange__value { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 1.02vw, 26px); }
.uochange__value--red { color: var(--accent); }
.uochange__state { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--faint); }
.uototals { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 2px solid var(--ink); }
.uototal { display: flex; flex-direction: column; gap: 7px; padding: 22px clamp(14px, 1.02vw, 26px); border-left: 1px solid rgba(var(--ink-rgb), 0.14); }
.uototal:first-child { border-left: 0; }
.uototal__label { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.uototal__value { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.48vw, 38px); }
.uototal__value--red { color: var(--accent); }
.uototal__note { font-size: clamp(13px, 0.59vw, 15px); color: var(--muted); }

/* --- 05 Поиски: три карточки, третья на паузе -------------------------------------------------- */
.uosearches { display: flex; flex-direction: column; gap: 30px; }
.uosearches__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; align-items: stretch; margin: 0; padding: 0; list-style: none; }
.uosearch {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding: 32px 30px 28px;
  border-radius: 12px;
  background: var(--modal-field);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14);
  transition: transform 220ms ease-in-out, box-shadow 220ms ease-in-out, background 220ms ease-in-out;
}
.uosearch:hover { transform: translateY(-6px); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14), 0 26px 56px rgba(var(--shadow-warm-rgb), 0.12); }
.uosearch--off { background: transparent; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.1); }
.uosearch__meta { display: flex; align-items: center; gap: 12px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--faint); }
.uosearch__title { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.48vw, 38px); color: var(--ink); text-decoration: none; }
.uosearch__title:hover { color: var(--accent); }
.uosearch--off .uosearch__title { color: var(--muted); }
.uochips { display: flex; flex-wrap: wrap; gap: 8px; }
.uochip { display: inline-flex; align-items: center; height: 36px; padding: 0 16px; border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.18); font-size: clamp(13px, 0.55vw, 14px); color: var(--muted); }
.uosearch__foot { display: flex; flex-direction: column; gap: 12px; margin-top: auto; padding-top: 20px; border-top: 2px solid var(--ink); }
.uosearch__figs { display: flex; align-items: flex-end; gap: 16px; }
.uosearch__new,
.uosearch__mail { display: flex; flex-direction: column; gap: 6px; }
.uosearch__mail { text-align: right; }
.uosearch__newlabel { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--faint); }
.uosearch__newline { display: flex; align-items: baseline; gap: 10px; }
.uosearch__count { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(32px, 2.19vw, 56px); color: var(--accent); }
.uosearch--off .uosearch__count { color: var(--muted); }
.uosearch__since { font-size: clamp(13px, 0.59vw, 15px); color: var(--muted); }
.uosearch__gap { flex: 1; }
.uosearch__freq { font-size: clamp(14px, 0.66vw, 17px); }
.uosearch--off .uobar__fill { background: rgba(var(--ink-rgb), 0.3); }
.uosearch__lines { display: flex; flex-direction: column; gap: 4px; font-size: clamp(13px, 0.59vw, 15px); color: var(--muted); }
.uosearch__line2 { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--faint); }
.uosearch__act { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: center; padding-top: 16px; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }

/* --- 06 Просмотры: шесть дней с часами-пилюлями, прошлые визиты и удержанный час ---------------- */
.uoviewings { display: flex; flex-direction: column; gap: 30px; }
.uoweek { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
.uoday { display: flex; flex-direction: column; gap: 12px; padding: 20px 18px 18px; border-radius: 10px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); }
.uoday--held { background: rgba(var(--accent-rgb), 0.08); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.4); }
.uoday__name { display: flex; align-items: baseline; gap: 10px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--faint); }
.uoday--held .uoday__name { color: var(--accent); }
.uoday__today { color: var(--accent); }
.uoday__line { display: flex; align-items: baseline; gap: 10px; }
.uoday__date { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(30px, 1.88vw, 48px); }
.uoday--held .uoday__date,
.uoday--held .uoday__state { color: var(--accent); }
.uoday__state { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.uoday__note { font-size: clamp(13px, 0.59vw, 15px); color: var(--muted); }
.uoday__hours { display: flex; flex-wrap: wrap; gap: 7px; min-height: 40px; padding-top: 12px; border-top: 1px solid rgba(var(--ink-rgb), 0.12); }
.uoday--held .uoday__hours { border-top-color: rgba(var(--accent-rgb), 0.22); }
.uohour { display: inline-flex; align-items: center; height: 34px; padding: 0 13px; border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2); font-family: var(--mono); font-size: 12px; letter-spacing: 0.1em; color: var(--ink); cursor: pointer; transition: background 180ms ease-in-out, color 180ms ease-in-out; }
.uohour:hover { background: rgba(var(--accent-rgb), 0.08); color: var(--accent); }
.uohour--held { background: var(--accent); box-shadow: none; color: var(--c-cream); cursor: default; }
.g4pill__input:checked + .uohour { background: var(--ink); box-shadow: none; color: var(--bg); }
.g4pill__input:focus-visible + .uohour { outline: 2px solid var(--accent); outline-offset: 2px; }
.uohour__none { padding-top: 8px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--faint); }
.uoviewings__below { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 620px); gap: clamp(24px, 2.34vw, 60px); align-items: stretch; }
.uopasts { display: flex; flex-direction: column; }
.uopasts__cols,
.uopast { display: grid; grid-template-columns: 70px minmax(0, 1fr) clamp(130px, 8.98vw, 230px) clamp(110px, 7.81vw, 200px) 40px; gap: 20px; }
.uopasts__cols { margin: 0; padding-bottom: 14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.16); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.uopast { align-items: center; padding: 22px 14px; margin: 0 -14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); color: var(--ink); text-decoration: none; transition: background 180ms ease-in-out; }
.uopast:hover { background: rgba(var(--accent-rgb), 0.04); }
.uopast__thumb { position: relative; display: block; width: 70px; height: 70px; border-radius: 8px; background: repeating-linear-gradient(45deg, var(--sheet) 0 6px, var(--sheet-strong) 6px 12px); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.18); overflow: hidden; }
.uopast__what { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.uopast__home { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 1.25vw, 32px); }
.uopast__note { font-size: clamp(13px, 0.59vw, 15px); color: var(--muted); }
.uopast__when,
.uopast__report { display: flex; flex-direction: column; gap: 4px; }
.uopast__date { font-size: clamp(14px, 0.66vw, 17px); }
.uopast__who { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--faint); }
.uopast__state { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.uopast__state--red { color: var(--accent); }
.uopast__pages { font-size: clamp(13px, 0.59vw, 15px); color: var(--muted); }
.uopast__arrow { text-align: right; font-size: clamp(15px, 0.70vw, 18px); color: rgba(var(--ink-rgb), 0.4); }
.uopasts__foot { margin-top: 18px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.uoheld { display: flex; flex-direction: column; gap: 18px; padding: clamp(18px, 1.25vw, 32px); border-radius: 14px; background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1.5px rgba(var(--accent-rgb), 0.34); }
.uoheld__kicker { display: flex; align-items: center; gap: 12px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.uoheld__top { display: grid; grid-template-columns: minmax(0, 200px) minmax(0, 1fr); gap: 26px; align-items: center; }
.uoheld__photo { position: relative; display: block; height: 150px; border-radius: 10px; background: repeating-linear-gradient(45deg, var(--sheet) 0 6px, var(--sheet-strong) 6px 12px); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.18); overflow: hidden; }
.uoheld__words { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.uoheld__day { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.56vw, 40px); }
.uoheld__hours { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-style: italic; font-size: clamp(20px, 1.17vw, 30px); color: var(--accent); }
.uoheld__address { font-size: clamp(14px, 0.66vw, 17px); }
.uoheld__rows { display: flex; flex-direction: column; gap: 8px; margin: 0; padding-top: 16px; border-top: 1px solid rgba(var(--accent-rgb), 0.22); }
.uoheld__row { display: flex; align-items: baseline; gap: 12px; font-size: clamp(14px, 0.62vw, 16px); }
.uoheld__k { flex: 0 0 150px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--faint); }
.uoheld__acts { display: flex; gap: 12px; margin: auto 0 0; }
.uoheld__confirm { flex: 1; }

/* --- 07 Письма: последнее письмо и реестр ---------------------------------------------------------- */
.uomessages { display: flex; flex-direction: column; gap: 30px; }
.uomessages__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 720px); gap: clamp(24px, 2.73vw, 70px); align-items: stretch; }
.uoletter { position: relative; display: flex; flex-direction: column; gap: 24px; padding: clamp(20px, 1.56vw, 40px); border-radius: 14px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.uoletter__tick { position: absolute; width: 20px; height: 20px; pointer-events: none; }
.uoletter__tick--tr { top: 22px; right: 22px; border-top: 1.5px solid rgba(var(--ink-rgb), 0.24); border-right: 1.5px solid rgba(var(--ink-rgb), 0.24); }
.uoletter__tick--bl { bottom: 22px; left: 22px; border-bottom: 1.5px solid rgba(var(--ink-rgb), 0.24); border-left: 1.5px solid rgba(var(--ink-rgb), 0.24); }
.uoletter__head { display: flex; align-items: center; gap: 16px; margin: 0; padding-bottom: 18px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.uoletter__quote { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-style: italic; font-size: clamp(22px, 1.41vw, 36px); line-height: 1.42; letter-spacing: 0; text-wrap: pretty; }
.uoletter__body { margin: 0; font-size: clamp(15px, 0.74vw, 19px); line-height: 1.75; color: var(--muted); text-wrap: pretty; }
.uoletter__strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; padding: 18px 0; border-top: 1px solid rgba(var(--ink-rgb), 0.14); border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.uoletter__cell { display: flex; flex-direction: column; gap: 6px; padding: 0 24px; border-left: 1px solid rgba(var(--ink-rgb), 0.14); }
.uoletter__cell:first-child { padding-left: 0; border-left: 0; }
.uoletter__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--faint); }
.uoletter__v { font-size: clamp(14px, 0.66vw, 17px); }
.uoletter__sig { display: flex; align-items: center; gap: 20px; margin: 0; }
.uoletter__signames { display: flex; flex-direction: column; gap: 5px; }
.uoletter__signame { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-style: italic; font-size: clamp(26px, 1.56vw, 40px); line-height: 1; letter-spacing: 0; }
.uoletter__signline { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.uoletter__reply { display: flex; flex-direction: column; gap: 14px; margin-top: auto; padding-top: 22px; border-top: 2px solid var(--ink); }
.uoletter__field { box-sizing: border-box; width: 100%; min-height: 96px; padding: 20px; border: 0; border-radius: 10px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); font-family: var(--text); font-size: clamp(15px, 0.66vw, 17px); color: var(--ink); resize: vertical; }
.uoletter__field::placeholder { color: var(--faint); opacity: 1; }
.uoletter__field:focus { outline: 0; box-shadow: inset 0 0 0 2px var(--accent); }
.uoletter__acts { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin: 0; }
.uoletter__promise { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.uoregister { display: flex; flex-direction: column; min-width: 0; }
.uoregister__head { display: flex; align-items: center; gap: 14px; margin: 0; padding-bottom: 14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.16); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.uoreg { display: grid; grid-template-columns: 52px minmax(0, 1fr) 40px; gap: 18px; align-items: center; padding: 22px 14px; margin: 0 -14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); color: var(--ink); text-decoration: none; transition: background 180ms ease-in-out; }
.uoreg:hover { background: rgba(var(--accent-rgb), 0.04); }
.uoreg__body { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.uoreg__meta { display: flex; align-items: baseline; gap: 12px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--faint); }
.uoreg__gap { flex: 1; }
.uoreg__state { color: var(--muted); }
.uoreg__state--red { color: var(--accent); }
.uoreg__excerpt { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-style: italic; font-size: clamp(16px, 0.82vw, 21px); line-height: 1.4; letter-spacing: 0; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.uoreg__arrow { text-align: right; font-size: clamp(15px, 0.70vw, 18px); color: rgba(var(--ink-rgb), 0.4); }
.uoregister__all { padding: 18px 0; }
.uoanswers { display: flex; flex-direction: column; gap: 12px; margin-top: auto; padding: 24px; border-radius: 12px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); }
.uoanswers__head { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.uoanswers__row { display: flex; align-items: baseline; gap: 12px; }
.uoanswers__k { font-size: clamp(14px, 0.62vw, 16px); color: var(--muted); }
.uoanswers__v { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.17vw, 30px); }
.uoanswers__v--red { color: var(--accent); }
.uoanswers__foot { padding-top: 12px; border-top: 1px solid rgba(var(--ink-rgb), 0.14); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }

/* --- 08 Документы: пять папок на полке ------------------------------------------------------------- */
.uodocs { display: flex; flex-direction: column; gap: 28px; }
.uodocs__grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 22px; align-items: stretch; }
.uodoc {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 28px 24px 24px;
  border-radius: 12px;
  background: var(--modal-field);
  box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14);
  color: var(--ink);
  text-decoration: none;
  transition: transform 220ms ease-in-out, box-shadow 220ms ease-in-out, background 220ms ease-in-out;
}
.uodoc:hover { transform: translateY(-6px); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14), 0 26px 56px rgba(var(--shadow-warm-rgb), 0.12); }
.uodoc--sign { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.34); }
.uodoc__tab { position: absolute; top: 0; right: 26px; width: 42px; height: 34px; border-radius: 0 0 6px 6px; background: rgba(var(--ink-rgb), 0.16); }
.uodoc--sign .uodoc__tab { background: var(--accent); }
.uodoc__meta { display: flex; align-items: center; gap: 10px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--faint); }
.uodoc__kind { color: var(--muted); }
.uodoc--sign .uodoc__meta,
.uodoc--sign .uodoc__kind,
.uodoc--sign .uodoc__title,
.uodoc--sign .uodoc__read { color: var(--accent); }
.uodoc__title { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.25vw, 32px); }
.uodoc__home { font-size: clamp(14px, 0.62vw, 16px); }
.uodoc__sum { font-size: clamp(13px, 0.59vw, 15px); line-height: 1.5; color: var(--muted); }
.uodoc__foot { display: flex; flex-direction: column; gap: 8px; margin-top: auto; padding-top: 16px; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
.uodoc--sign .uodoc__foot { border-top-color: rgba(var(--accent-rgb), 0.22); }
.uodoc__read { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.uodoc__foot .uopill { margin-top: 4px; }

/* --- 09 Вопросы: две открытые, две отвеченные ------------------------------------------------------- */
.uoquestions { display: flex; flex-direction: column; gap: 40px; }
.uoqs { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; margin: 0; padding: 0; list-style: none; }
.uoq { display: flex; flex-direction: column; gap: 20px; padding: clamp(18px, 1.25vw, 32px); border-radius: 14px; background: var(--modal-bg); box-shadow: inset 0 0 0 1.5px rgba(var(--accent-rgb), 0.4); }
.uoq__top { display: flex; align-items: center; gap: 12px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.uoq__state { color: var(--accent); }
.uoq__q { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.56vw, 40px); }
.uoq__now { font-size: clamp(14px, 0.66vw, 17px); color: var(--muted); }
.uoq__clock { display: flex; flex-direction: column; gap: 10px; padding-top: 18px; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
.uoq__clockline { display: flex; align-items: center; gap: 14px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.uoq__clockline--red { color: var(--accent); }
.uoqas { display: flex; flex-direction: column; }
.uoqa { display: grid; grid-template-columns: 60px minmax(0, 620px) minmax(0, 1fr) clamp(120px, 9.38vw, 240px) 60px; gap: 26px; align-items: center; padding: 22px 14px; margin: 0 -14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); color: var(--ink); text-decoration: none; transition: background 180ms ease-in-out; }
.uoqa:hover { background: rgba(var(--accent-rgb), 0.04); }
.uoqa__no { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--faint); }
.uoqa__q { font-size: clamp(15px, 0.74vw, 19px); }
.uoqa__a { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-style: italic; font-size: clamp(16px, 0.86vw, 22px); line-height: 1.4; letter-spacing: 0; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.uoqa__in { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); text-align: right; }
.uoqa__arrow { text-align: right; font-size: clamp(16px, 0.78vw, 20px); color: rgba(var(--ink-rgb), 0.4); }

/* --- 10 Продать: одна лента --------------------------------------------------------------------------- */
.uosell { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 420px); gap: clamp(24px, 2.73vw, 70px); align-items: center; padding: clamp(22px, 1.72vw, 44px) clamp(22px, 1.88vw, 48px); border-radius: 14px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); }
.uosell__words { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.uosell__title { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(30px, 2.19vw, 56px); }
.uosell__facts { display: flex; gap: 40px; flex-wrap: wrap; margin: 0; }
.uosell__fact { display: flex; flex-direction: column; gap: 6px; }
.uosell__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.uosell__v { font-size: clamp(15px, 0.74vw, 19px); }
.uosell__acts { display: flex; flex-direction: column; gap: 14px; margin: 0; }
.uosell__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); text-align: center; }

/* --- 11 Профиль: гроссбух контактов и писем, плита обязательства ------------------------------------ */
.uoprofile { display: flex; flex-direction: column; gap: 28px; }
.uoprofile__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 640px); gap: clamp(24px, 2.73vw, 70px); align-items: stretch; }
.uoprofile__ledger { display: flex; flex-direction: column; min-width: 0; }
.uocontact__cols,
.uocontact { display: grid; grid-template-columns: 50px clamp(110px, 8.59vw, 220px) minmax(0, 1fr) clamp(140px, 11.72vw, 300px) clamp(80px, 5.08vw, 130px); gap: 24px; }
.uocontact__cols { margin: 0; padding-bottom: 12px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.16); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.uocontact__colend { justify-self: end; }
.uocontact,
.uoletterrow { align-items: center; padding: 20px 14px; margin: 0 -14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); transition: background 180ms ease-in-out; }
.uocontact:hover,
.uoletterrow:hover { background: rgba(var(--accent-rgb), 0.04); }
.uocontact__no { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--faint); }
.uocontact__line { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.uocontact__what { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.uocontact__value { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 1.25vw, 32px); overflow-wrap: anywhere; }
.uocontact__note { font-size: clamp(13px, 0.59vw, 15px); color: var(--muted); }
.uocontact__when { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--faint); }
.uocontact__change { justify-self: end; }
.uoprofile__send { display: flex; align-items: center; gap: 14px; margin: 0; padding: 26px 0 12px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.uoletterrow { display: grid; grid-template-columns: 50px minmax(0, 1fr) clamp(120px, 10.16vw, 260px) clamp(120px, 10.16vw, 260px) clamp(80px, 5.08vw, 130px); gap: 24px; }
.uoletterrow__what { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.uoletterrow__title { font-size: clamp(16px, 0.78vw, 20px); }
.uoletterrow--off .uoletterrow__title { color: var(--muted); }
.uoletterrow__cell { display: flex; flex-direction: column; gap: 4px; }
.uoletterrow__v { font-size: clamp(14px, 0.62vw, 16px); }
.uoletterrow__switch { justify-self: end; }
.uoprofile__foot { padding-top: 18px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.uounder { position: relative; display: flex; flex-direction: column; gap: 20px; padding: clamp(20px, 1.48vw, 38px); border-radius: 14px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); }
.uounder .uowait__tick { width: 20px; height: 20px; }
.uounder__kicker { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.uounder__quote { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-style: italic; font-size: clamp(24px, 1.64vw, 42px); line-height: 1.32; letter-spacing: 0; }
.uounder__text { margin: 0; font-size: clamp(14px, 0.66vw, 17px); line-height: 1.65; color: var(--muted); }
.uounder__rows { display: flex; flex-direction: column; gap: 11px; margin: 0; padding-top: 20px; border-top: 2px solid var(--ink); }
.uounder__row { display: flex; align-items: baseline; gap: 12px; font-size: clamp(14px, 0.66vw, 17px); }
.uounder__k { flex: 0 0 clamp(110px, 7.03vw, 180px); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--faint); }
.uounder__n { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(18px, 1.02vw, 26px); }
.uounder__seal { display: flex; align-items: center; gap: 18px; margin: 0; padding-top: 18px; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
.uounder__sealwords { display: flex; flex-direction: column; gap: 4px; }
.uounder__avava { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-style: italic; font-size: clamp(22px, 1.25vw, 32px); line-height: 1; letter-spacing: 0; }
.uounder__opened { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.uounder__acts { display: flex; flex-direction: column; gap: 10px; margin: auto 0 0; }
.uounder__close { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); text-align: center; text-decoration: none; }
.uounder__close:hover { color: var(--accent); }

/* ==========================================================================
   79. User overview — адаптив
   ========================================================================== */
@media (max-width: 1680px) {
  .uobody { grid-template-columns: minmax(0, 340px) minmax(0, 1fr); gap: 30px; }
  .uofile__bottom { grid-template-columns: minmax(0, 1fr); }
  .uowaits { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .uodocs__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .uoviewings__below,
  .uomessages__grid,
  .uoprofile__grid { grid-template-columns: minmax(0, 1fr); }
  .uoqa { grid-template-columns: 60px minmax(0, 1fr) clamp(120px, 9.38vw, 240px) 60px; }
  .uoqa__a { grid-column: 2 / span 3; white-space: normal; }
}

@media (max-width: 1400px) {
  /* Боковая уходит наверх строкой вкладок */
  .uobody { grid-template-columns: minmax(0, 1fr); }
  .uoside { position: static; padding-top: 0; }
  .uoside__tick { display: none; }
  .uoside__file { padding-left: 0; }
  .uonav { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
  .uonav__rail,
  .uonav__seg,
  .uonav__group { display: none; }
  .uonav__item { display: inline-flex; align-items: baseline; gap: 10px; padding: 10px 16px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); border-radius: 999px; font-size: clamp(14px, 0.62vw, 16px); }
  .uonav__sub { display: none; }
  .uoside__adv,
  .uoside__foot { display: none; }
  .uoweek { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .uosearches__grid { grid-template-columns: minmax(0, 1fr); }
  .uochanges__grid { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .uochanges__col + .uochanges__col .uochange:first-child { border-top: 0; }
}

@media (max-width: 1100px) {
  .uosec__head { flex-direction: column; align-items: flex-start; gap: 18px; }
  .uosec__aside { text-align: left; }
  .uofile__head { grid-template-columns: minmax(0, 1fr); }
  .uodue { justify-self: start; }
  .uofacts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .uofact:nth-child(odd) { border-left: 0; }
  .uofact:nth-child(n + 3) { border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
  .uoacts { grid-template-columns: minmax(0, 1fr); }
  .uowaits { grid-template-columns: minmax(0, 1fr); }
  .uototals { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .uototal:nth-child(odd) { border-left: 0; }
  .uototal:nth-child(n + 3) { border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
  .uodocs__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .uoqs { grid-template-columns: minmax(0, 1fr); }
  .uosell { grid-template-columns: minmax(0, 1fr); }
  .uoletter__strip { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .uoletter__cell { padding: 0; border-left: 0; }
  .uosummary,
  .uofoot,
  .uofile__line { flex-wrap: wrap; row-gap: 8px; }
  .uosummary__line,
  .uofile__lineline { display: none; }
  .uocontact__cols { display: none; }
  .uocontact { grid-template-columns: 50px minmax(0, 1fr) auto; }
  .uocontact__line { grid-column: 2; }
  .uocontact__what { grid-column: 2; }
  .uocontact__when { grid-column: 2; }
  .uocontact__change { grid-column: 3; grid-row: 1; }
  .uoletterrow { grid-template-columns: 50px minmax(0, 1fr) auto; }
  .uoletterrow__cell { grid-column: 2; }
  .uoletterrow__switch { grid-column: 3; grid-row: 1; }
  .uopasts__cols { display: none; }
  .uopast { grid-template-columns: 70px minmax(0, 1fr); }
  .uopast__when,
  .uopast__report { grid-column: 2; }
  .uopast__arrow { display: none; }
  .uochange { grid-template-columns: clamp(70px, 4.06vw, 104px) minmax(0, 1fr); }
  .uochange__what,
  .uochange__fig { grid-column: 2; }
  .uochange__fig { text-align: left; }
}

@media (max-width: 640px) {
  .uoweek { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .uoheld__top { grid-template-columns: minmax(0, 1fr); }
  .uoheld__acts,
  .uoletter__acts,
  .uoadv__acts,
  .uoside__advacts { flex-direction: column; }
  .uoheld__acts .uopill,
  .uoletter__acts .uopill,
  .uoadv__acts .uopill { width: 100%; }
  .uoheld__k { flex-basis: 110px; }
  .uodocs__grid { grid-template-columns: minmax(0, 1fr); }
  .uototals { grid-template-columns: minmax(0, 1fr); }
  .uototal { border-left: 0; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
  .uofacts { grid-template-columns: minmax(0, 1fr); }
  .uofact { border-left: 0; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
  .uosaved { flex-basis: 84vw; }
  .uosearch__figs { flex-wrap: wrap; }
  .uodue { padding-right: 18px; }
  .uoside__alert { flex-wrap: wrap; }
  .uoside__foot { flex-wrap: wrap; }
  .uoqa { grid-template-columns: 40px minmax(0, 1fr); }
  .uoqa__a,
  .uoqa__in { grid-column: 2; text-align: left; }
  .uoqa__arrow { display: none; }
  .uounder__row { flex-wrap: wrap; }
  .uounder__k { flex-basis: 100%; }
  .uounder__seal { flex-wrap: wrap; }
  .uoletter__sig { flex-wrap: wrap; }
}

/* ==========================================================================
   80. Saved properties — список сохранённых: десять плит на общей боковой
   ========================================================================== */
.sdw-11 { width: 11%; }
.sdw-33 { width: 33%; }
.sdw-56 { width: 56%; }
.sdpage .uodot--5 { width: 5px; height: 5px; }
.sdred { color: var(--accent); }
.sdmeta { display: flex; align-items: center; gap: 12px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.sdinner { position: absolute; inset: 14px; border-radius: 4px; box-shadow: inset 0 0 0 1px rgba(var(--c-cream-rgb), 0.35); pointer-events: none; }
.sdinner--14 { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.sdpill { position: absolute; top: 16px; left: 16px; display: inline-flex; align-items: center; gap: 8px; height: 32px; padding: 0 14px; border-radius: 999px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.18em; white-space: nowrap; }
.sdpill--right { left: auto; right: 16px; }
.sdpill--30 { top: 14px; left: 14px; height: 30px; padding: 0 13px; }
.sdpill--red { background: var(--accent); color: var(--c-cream); }
.sdpill--cream { background: var(--bg); color: var(--ink); }
.sdpill--redink { color: var(--accent); }
.sdpill--night { background: rgba(var(--c-night-rgb), 0.8); color: var(--c-cream); }
.sdpill--muted { background: var(--muted); color: var(--bg); }
.sdpill__dot { width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.sdpill48 { height: 48px; padding: 0 clamp(18px, 0.94vw, 24px); }
.sdpill52 { height: 52px; padding: 0 clamp(18px, 1.02vw, 26px); font-size: clamp(14px, 0.62vw, 16px); }
.sdpill60 { height: clamp(52px, 2.34vw, 60px); padding: 0 clamp(22px, 1.25vw, 32px); font-size: clamp(15px, 0.66vw, 17px); }
.sdchip { display: inline-flex; align-items: center; height: 34px; padding: 0 14px; border: 0; border-radius: 999px; background: transparent; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.18); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.18em; color: var(--muted); cursor: pointer; transition: box-shadow 180ms ease-in-out, color 180ms ease-in-out; }
.sdchip:hover { box-shadow: inset 0 0 0 1px var(--accent); color: var(--accent); }
.sdchip--40 { height: 40px; padding: 0 18px; letter-spacing: 0.22em; color: var(--ink); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2); }
.sdnote { margin: 0; padding: 14px 16px; border-radius: 9px; background: var(--modal-bg); font-family: var(--display); font-style: italic; font-size: clamp(16px, 0.78vw, 20px); line-height: 1.45; color: var(--ink); }
.sdnote--18 { padding: 12px 14px; font-size: clamp(15px, 0.70vw, 18px); }
.sdledger--survey .uoledger__row { font-size: clamp(14px, 0.62vw, 16px); }
.sdledger--redsurvey .uoledger__v { color: var(--accent); }
.sdpage .uoledger { gap: 7px; }
.sdpage .uoledger--tight { gap: 6px; }
.sdpage .uoledger__k { color: var(--muted); }

/* --- 01 Голова списка: строка дела, заголовок 76 с красной плитой, пять цифр -------------- */
.sdhead { display: flex; flex-direction: column; gap: 26px; }
.sdfile { display: flex; align-items: center; gap: 20px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.sdfile__tick { flex: none; width: 16px; height: 16px; border-top: 1.5px solid rgba(var(--ink-rgb), 0.4); border-left: 1.5px solid rgba(var(--ink-rgb), 0.4); }
.sdfile__line { flex: 1; height: 1px; background: rgba(var(--ink-rgb), 0.2); }
.sdhead__row { display: grid; grid-template-columns: minmax(0, 1fr) clamp(360px, 26.95vw, 690px); gap: clamp(30px, 2.73vw, 70px); align-items: end; padding-bottom: 26px; border-bottom: 2px solid var(--ink); }
.sdhead__lead { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.sdhead__title { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(38px, 2.97vw, 76px); }
.sdhead__title em,
.sdcompare__title em,
.sdadvisor__title em { font-style: italic; color: var(--accent); }
.sdhead__stand { margin: 0; font-size: clamp(16px, 0.78vw, 20px); line-height: 1.6; color: var(--muted); }
.sddecision { display: flex; align-items: center; gap: 20px; padding: 22px 26px; border-radius: 14px; background: rgba(var(--accent-rgb), 0.08); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.34); color: var(--ink); text-decoration: none; transition: transform 220ms ease-in-out, box-shadow 220ms ease-in-out, background 220ms ease-in-out; }
.sddecision:hover { transform: translateY(-4px); box-shadow: inset 0 0 0 1.5px rgba(var(--accent-rgb), 0.5), 0 22px 46px rgba(var(--shadow-warm-rgb), 0.1); }
.sddecision__disc { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 58px; height: 58px; border-radius: 50%; background: var(--accent); color: var(--c-cream); font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: 30px; line-height: 1; padding-bottom: 0.1em; }
.sddecision__body { display: flex; flex-direction: column; gap: 8px; flex: 1; min-width: 0; }
.sddecision__title { font-size: clamp(16px, 0.78vw, 20px); color: var(--accent); }
.sddecision__row { display: flex; align-items: baseline; gap: 10px; min-width: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.16em; color: var(--muted); white-space: nowrap; }
.sddecision__home { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.sddecision__lead { min-width: 14px; }
.sddecision__kind { color: var(--ink); }
.sddecision__lead { flex: 1; border-bottom: 1px dotted rgba(var(--accent-rgb), 0.35); }
.sddecision__kind,
.sddecision__fig { flex: none; }
.sddecision__fig { color: var(--accent); }
.sddecision__see { display: inline-flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); white-space: nowrap; }
.sdfigs { display: flex; align-items: stretch; }
.sdfig { display: flex; flex: 1; flex-direction: column; gap: 9px; min-width: 0; padding: 6px clamp(16px, 1.17vw, 30px); border-left: 1px solid rgba(var(--ink-rgb), 0.16); }
.sdfig:first-child { padding-left: 0; border-left: 0; }
.sdfig__label { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.sdfig__value { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(26px, 1.80vw, 46px); white-space: nowrap; }
.sdfig__note { font-size: clamp(13px, 0.59vw, 15px); color: var(--muted); }
.sdfig .uobar { height: 3px; margin-top: 4px; border-radius: 2px; }
.sdfig__blank { height: 7px; }
.sdhead .uofoot { padding-top: 18px; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }

/* --- 02 Что сдвинулось: две красные карточки 340 + текст --------------------------------- */
.sdalerts,
.sdgrid,
.sdfolders,
.sdchanges,
.sdnotes,
.sdremoved,
.sdsimilar { display: flex; flex-direction: column; gap: 26px; }
.sdalerts__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; }
.sdalert { display: grid; grid-template-columns: clamp(200px, 13.28vw, 340px) minmax(0, 1fr); border-radius: 14px; overflow: hidden; background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.34); cursor: pointer; transition: transform 220ms ease-in-out, box-shadow 220ms ease-in-out, background 220ms ease-in-out; }
.sdalert:hover { transform: translateY(-6px); box-shadow: inset 0 0 0 1.5px rgba(var(--accent-rgb), 0.5), 0 26px 54px rgba(var(--shadow-warm-rgb), 0.12); }
.sdalert__plate { position: relative; min-height: clamp(260px, 16.41vw, 420px); background: repeating-linear-gradient(45deg, var(--sheet) 0 6px, var(--sheet-strong) 6px 12px); }
.sdalert__dark { position: absolute; left: 16px; right: 16px; bottom: 16px; display: flex; flex-direction: column; gap: 3px; padding: 12px 16px; border-radius: 10px; background: rgba(var(--c-night-rgb), 0.82); color: var(--c-cream); }
.sdalert__big { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.17vw, 30px); line-height: 1; }
.sdalert__bignote { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.18em; color: var(--plate-muted); }
.sdalert__body { display: flex; flex-direction: column; gap: 14px; padding: 28px 30px; min-width: 0; }
.sdalert__when { display: flex; align-items: center; gap: 12px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.sdalert__whenline { flex: 1; height: 1px; background: rgba(var(--accent-rgb), 0.22); }
.sdalert__who { display: flex; flex-direction: column; gap: 6px; margin: 0; }
.sdalert__home { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(26px, 1.64vw, 42px); }
.sdalert__measure { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.sdalert__figure { display: flex; align-items: baseline; gap: 14px; margin: 0; padding: 16px 0; border-top: 2px solid rgba(var(--accent-rgb), 0.35); border-bottom: 1px solid rgba(var(--accent-rgb), 0.25); }
.sdalert__fig { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.48vw, 38px); color: var(--accent); white-space: nowrap; }
.sdalert__figlead { flex: 1; border-bottom: 1px dotted rgba(var(--accent-rgb), 0.35); }
.sdalert__fignote { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); text-align: right; }
.sdalert__text { margin: 0; font-size: clamp(14px, 0.66vw, 17px); line-height: 1.55; color: var(--muted); }
.sdalert__acts { display: flex; align-items: center; gap: 12px; margin: auto 0 0; padding-top: 4px; }

/* --- 03 Список: три карточки в ряд, снимок 600×340, заметка, меню карточки ---------------- */
.sdgrid__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; }
.sdhome { display: flex; flex-direction: column; border-radius: 14px; overflow: hidden; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); cursor: pointer; transition: transform 220ms ease-in-out, box-shadow 220ms ease-in-out, background 220ms ease-in-out; }
.sdhome:hover { transform: translateY(-6px); box-shadow: inset 0 0 0 1.5px rgba(var(--ink-rgb), 0.24), 0 26px 54px rgba(var(--shadow-warm-rgb), 0.12); }
.sdhome__plate { position: relative; height: clamp(200px, 13.28vw, 340px); background: repeating-linear-gradient(45deg, var(--sheet) 0 6px, var(--sheet-strong) 6px 12px); }
.sdhome__body { display: flex; flex: 1; flex-direction: column; gap: 14px; padding: 26px 28px 24px; }
.sdhome__address { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(26px, 1.56vw, 40px); }
.sdhome__link { color: inherit; text-decoration: none; }
.sdhome__link:hover { color: var(--accent); }
.sdhome__price { display: flex; align-items: baseline; gap: 16px; margin: 0; padding-top: 14px; border-top: 2px solid var(--ink); }
.sdhome__sum { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(28px, 1.72vw, 44px); }
.sdhome__change { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); white-space: nowrap; }
.sdhome__foot { display: flex; align-items: center; gap: 10px; margin: auto 0 0; padding-top: 14px; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
.sdchips { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

/* --- 04 Папки: три вкладки-папки и «начать ещё одну» ------------------------------------- */
.sdfolders__row { display: flex; align-items: stretch; gap: 20px; margin-top: 22px; }
.sdfolder { position: relative; display: flex; flex: 1; flex-direction: column; gap: 15px; min-width: 0; padding: 34px 30px 26px; border-radius: 4px 14px 14px 14px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); transition: transform 220ms ease-in-out, box-shadow 220ms ease-in-out, background 220ms ease-in-out; }
.sdfolder:hover { transform: translateY(-6px); box-shadow: inset 0 0 0 1.5px rgba(var(--ink-rgb), 0.24), 0 26px 54px rgba(var(--shadow-warm-rgb), 0.12); }
.sdfolder--red { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.34); }
.sdfolder--red:hover { box-shadow: inset 0 0 0 1.5px rgba(var(--accent-rgb), 0.5), 0 26px 54px rgba(var(--shadow-warm-rgb), 0.12); }
.sdfolder__tab { position: absolute; top: -22px; left: 0; display: inline-flex; align-items: center; gap: 10px; height: 34px; padding: 0 20px; border-radius: 8px 8px 0 0; background: var(--ink); color: var(--bg); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; }
.sdfolder--red .sdfolder__tab { background: var(--accent); color: var(--c-cream); }
.sdfolder__tabline { width: 1px; height: 11px; background: rgba(var(--c-cream-rgb), 0.4); }
.sdfolder .uowait__tick { top: 18px; right: 18px; }
.sdfolder--red .uowait__tick { border-color: rgba(var(--accent-rgb), 0.4); }
.sdfolder__head { display: flex; align-items: baseline; gap: 16px; margin: 0; }
.sdfolder__name { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(28px, 1.80vw, 46px); }
.sdfolder__n { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(30px, 1.95vw, 50px); }
.sdfolder--red .sdfolder__n { color: var(--accent); }
.sdfolder__desc { margin: 0; font-size: clamp(14px, 0.66vw, 17px); line-height: 1.55; color: var(--muted); }
.sdfolder__thumbs { display: flex; align-items: center; gap: 3px; margin: 0; }
.sdtab { position: relative; display: block; flex: none; width: 88px; height: 66px; border-radius: 8px; overflow: hidden; box-shadow: 0 0 0 3px var(--modal-field); }
.sdfolder--red .sdtab { box-shadow: 0 0 0 3px var(--sheet); }
.sdtab--hatch { background: repeating-linear-gradient(45deg, var(--sheet) 0 6px, var(--sheet-strong) 6px 12px); }
.sdtab--more { display: inline-flex; align-items: center; justify-content: center; width: 66px; background: var(--ink); color: var(--bg); font-size: 13px; }
.sdfolder__rows { display: flex; flex-direction: column; gap: 8px; margin: 0; padding-top: 12px; border-top: 2px solid var(--ink); }
.sdfolder--red .sdfolder__rows { border-top-color: rgba(var(--accent-rgb), 0.35); }
.sdfolder__row { display: flex; align-items: baseline; gap: 12px; font-size: clamp(14px, 0.66vw, 17px); }
.sdfolder__dot { flex: none; width: 5px; height: 5px; border-radius: 50%; background: rgba(var(--ink-rgb), 0.3); }
.sdfolder--red .sdfolder__dot { background: var(--accent); }
.sdfolder__addr { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sdfolder__lead { flex: 1; border-bottom: 1px dotted rgba(var(--ink-rgb), 0.25); }
.sdfolder__why { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); white-space: nowrap; }
.sdfolder__sum { white-space: nowrap; color: var(--ink); }
.sdfolder__state { display: flex; align-items: center; gap: 10px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.sdfolder__state .uodot { background: rgba(var(--ink-rgb), 0.3); }
.sdfolder--red .sdfolder__state { color: var(--accent); }
.sdfolder--red .sdfolder__state .uodot { background: var(--accent); }
.sdfolder__acts { display: flex; align-items: center; gap: 12px; margin: auto 0 0; padding-top: 14px; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
.sdfolder--red .sdfolder__acts { border-top-color: rgba(var(--accent-rgb), 0.22); }
.sdfolder__when { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); white-space: nowrap; }
.sdfolder__new { display: flex; flex: none; flex-direction: column; align-items: center; justify-content: center; gap: 14px; width: clamp(200px, 10.94vw, 280px); border-radius: 14px; box-shadow: inset 0 0 0 1.5px rgba(var(--ink-rgb), 0.2); color: var(--ink); text-decoration: none; transition: background 200ms ease-in-out, color 200ms ease-in-out; }
.sdfolder__new:hover,
.sdslip__new:hover { background: rgba(var(--accent-rgb), 0.05); color: var(--accent); }
.sdfolder__plus { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: 32px; }
.sdfolder__newlabel { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); text-align: center; line-height: 1.7; }

/* --- 05 Сравнение: слова слева, «что покажет таблица» справа 640 ------------------------- */
.sdcompare { display: grid; grid-template-columns: minmax(0, 1fr) clamp(360px, 25.00vw, 640px); border-radius: 14px; overflow: hidden; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); }
.sdcompare__words { display: flex; flex-direction: column; gap: 16px; padding: clamp(22px, 1.33vw, 34px) clamp(22px, 1.48vw, 38px); min-width: 0; }
.sdcompare__title { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(30px, 2.03vw, 52px); }
.sdcompare__text { margin: 0; font-size: clamp(15px, 0.74vw, 19px); line-height: 1.6; color: var(--muted); }
.sdpicks { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 6px 0 0; }
.sdpick { display: inline-flex; align-items: center; gap: 10px; height: 46px; padding: 0 18px; border-radius: 999px; background: var(--bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); font-size: clamp(14px, 0.62vw, 16px); white-space: nowrap; }
.sdpick__no { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.sdpick--more { background: transparent; box-shadow: inset 0 0 0 1.5px rgba(var(--ink-rgb), 0.2); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); text-decoration: none; transition: box-shadow 180ms ease-in-out, color 180ms ease-in-out; }
.sdpick--more:hover { box-shadow: inset 0 0 0 1.5px var(--accent); color: var(--accent); }
.sdcompare__table { display: flex; flex-direction: column; gap: 12px; padding: clamp(22px, 1.33vw, 34px) clamp(22px, 1.48vw, 38px); background: var(--modal-field); border-left: 1px solid rgba(var(--ink-rgb), 0.14); }
.sdcompare__label { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.sdcompare__table .uoledger { gap: 12px; }
.sdcompare__v { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(18px, 0.94vw, 24px); text-align: right; }
.sdcompare__go { margin-top: auto; padding-top: 0; }
.sdcompare__table .sdcompare__go { margin-top: 12px; }

/* --- 06 Изменения: фильтры-пилюли и рельс с точками ---------------------------------------- */
.sdfilters { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 0; }
.sdfilter { display: inline-flex; align-items: center; height: 42px; padding: 0 20px; border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2); font-size: clamp(14px, 0.59vw, 15px); color: var(--ink); cursor: pointer; transition: background 180ms ease-in-out, color 180ms ease-in-out, box-shadow 180ms ease-in-out; }
.sdfilter:hover { box-shadow: inset 0 0 0 1px var(--accent); color: var(--accent); }
.g4pill__input:checked + .sdfilter { background: var(--ink); color: var(--bg); box-shadow: none; }
.g4pill__input:focus-visible + .sdfilter { outline: 2px solid var(--accent); outline-offset: 3px; }
.sdfilters__read { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.sdrail { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 0 24px; }
.sdrail__seg { position: relative; border-left: 1px solid rgba(var(--ink-rgb), 0.2); }
.sdrail__dot { position: absolute; top: 26px; left: -5px; width: 10px; height: 10px; border-radius: 50%; background: var(--bg); box-shadow: 0 0 0 1.5px rgba(var(--ink-rgb), 0.35); }
.sdrail__dot--red { background: var(--accent); box-shadow: 0 0 0 1.5px var(--accent); }
.sdrail__seg[hidden],
.sdchange[hidden] { display: none; }
.sdchange { display: grid; grid-template-columns: minmax(0, 1fr) clamp(160px, 11.72vw, 300px) clamp(120px, 9.38vw, 240px); gap: 26px; align-items: center; padding: 20px 16px; border-radius: 11px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); color: var(--ink); text-decoration: none; transition: transform 220ms ease-in-out, box-shadow 220ms ease-in-out; }
.sdchange:hover { transform: translateX(5px); box-shadow: inset 0 0 0 1.5px rgba(var(--ink-rgb), 0.22); }
.sdchange--red { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.3); }
.sdchange--red:hover { box-shadow: inset 0 0 0 1.5px rgba(var(--accent-rgb), 0.5); }
.sdchange__who { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.sdchange__kind { display: flex; align-items: center; gap: 12px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.sdchange--red .sdchange__type { color: var(--accent); }
.sdchange__home { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.25vw, 32px); }
.sdchange__what { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.sdchange__title { font-size: clamp(15px, 0.70vw, 18px); }
.sdchange__detail { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.sdchange__fig { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.25vw, 32px); text-align: right; }
.sdchange--red .sdchange__fig { color: var(--accent); }

/* --- 07 Заметки: пять листков и «написать заметку» ---------------------------------------- */
.sdnotes__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.sdslip { display: flex; flex-direction: column; gap: 14px; padding: 28px 30px; border-radius: 14px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); transition: transform 220ms ease-in-out, box-shadow 220ms ease-in-out, background 220ms ease-in-out; }
.sdslip:hover { transform: translateY(-5px); box-shadow: inset 0 0 0 1.5px rgba(var(--ink-rgb), 0.22), 0 22px 46px rgba(var(--shadow-warm-rgb), 0.1); }
.sdslip__home { display: flex; flex-direction: column; gap: 5px; margin: 0; padding-bottom: 12px; border-bottom: 2px solid var(--ink); }
.sdslip__addr { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.33vw, 34px); }
.sdslip__measure { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.sdslip__quote { margin: 0; font-family: var(--display); font-style: italic; font-size: clamp(18px, 1.02vw, 26px); line-height: 1.5; }
.sdslip__foot { display: flex; align-items: center; gap: 12px; margin: auto 0 0; padding-top: 14px; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
.sdslip__state { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.sdslip__new { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; min-height: 220px; border-radius: 14px; box-shadow: inset 0 0 0 1.5px rgba(var(--ink-rgb), 0.2); color: var(--ink); text-decoration: none; transition: background 200ms ease-in-out, color 200ms ease-in-out; }
.sdslip__plus { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: 34px; }

/* --- 08 Ушедшие: четыре карточки под вуалью со штампом ------------------------------------ */
.sdremoved__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.sdgone { display: flex; flex-direction: column; border-radius: 14px; overflow: hidden; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); transition: transform 220ms ease-in-out, box-shadow 220ms ease-in-out, background 220ms ease-in-out; }
.sdgone:hover { transform: translateY(-6px); box-shadow: inset 0 0 0 1.5px rgba(var(--ink-rgb), 0.24), 0 26px 54px rgba(var(--shadow-warm-rgb), 0.12); }
.sdgone__plate { position: relative; height: 210px; background: repeating-linear-gradient(45deg, var(--sheet) 0 6px, var(--sheet-strong) 6px 12px); }
.sdgone__plate .uophoto { opacity: 0.5; }
.sdgone__veil { position: absolute; inset: 0; background: rgba(var(--bg-rgb), 0.4); }
.sdstamp { position: absolute; right: 16px; bottom: 16px; display: inline-flex; align-items: center; justify-content: center; width: 78px; height: 78px; border-radius: 50%; transform: rotate(-12deg); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.18em; }
.sdstamp--night { color: var(--c-night); box-shadow: inset 0 0 0 1.5px var(--c-night), inset 0 0 0 5px transparent, inset 0 0 0 6px rgba(var(--c-night-rgb), 0.5); }
.sdstamp--red { color: var(--accent); box-shadow: inset 0 0 0 1.5px var(--accent), inset 0 0 0 5px transparent, inset 0 0 0 6px rgba(var(--accent-rgb), 0.5); }
.sdstamp--muted { color: var(--muted); box-shadow: inset 0 0 0 1.5px var(--muted), inset 0 0 0 5px transparent, inset 0 0 0 6px rgba(var(--ink-rgb), 0.35); }
[data-theme="dark"] .sdstamp--night { color: var(--ink); box-shadow: inset 0 0 0 1.5px var(--ink), inset 0 0 0 5px transparent, inset 0 0 0 6px rgba(var(--ink-rgb), 0.5); }
[data-theme="dark"] .sdpill--night { background: rgba(var(--bg-rgb), 0.85); color: var(--ink); }
.sdgone__body { display: flex; flex: 1; flex-direction: column; gap: 12px; padding: 24px 26px; }
.sdgone__who { display: flex; flex-direction: column; gap: 5px; margin: 0; }
.sdgone__addr { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.25vw, 32px); }
.sdgone__measure,
.sdgone__fignote { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.sdgone__figure { display: flex; align-items: baseline; gap: 12px; margin: 0; padding-top: 12px; border-top: 2px solid var(--ink); }
.sdgone__fig { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.33vw, 34px); white-space: nowrap; }
.sdgone__text { margin: 0; font-size: clamp(14px, 0.62vw, 16px); line-height: 1.5; color: var(--muted); }
.sdgone__back { margin-top: auto; }
.sdgone__body .sdgone__back { margin-top: auto; }

/* --- 09 Советник: одна полоса ------------------------------------------------------------- */
.sdadvisor { display: flex; align-items: center; gap: clamp(20px, 1.33vw, 34px); padding: clamp(22px, 1.25vw, 32px) clamp(22px, 1.41vw, 36px); border-radius: 14px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); }
.sdadvisor__words { display: flex; flex: 1; flex-direction: column; gap: 10px; min-width: 0; }
.sdadvisor__state { display: inline-flex; align-items: center; gap: 12px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.sdadvisor__title { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(28px, 1.80vw, 46px); }
.sdadvisor__text { margin: 0; max-width: 60ch; font-size: clamp(15px, 0.70vw, 18px); line-height: 1.6; color: var(--muted); }
.sdadvisor__act { display: flex; flex: none; flex-direction: column; align-items: flex-end; gap: 10px; }
.sdadvisor__last { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); white-space: nowrap; }

/* --- 10 Похожие: ряд 600-px колонок со снапом --------------------------------------------- */
.sdsimilar__row { display: flex; gap: 26px; margin: 0; padding: 0 0 20px; list-style: none; overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-left: 0; scrollbar-width: thin; }
.sdlike { flex: 0 0 clamp(300px, 23.44vw, 600px); scroll-snap-align: start; }
.sdlike__link { display: flex; flex-direction: column; gap: 16px; color: var(--ink); text-decoration: none; }
.sdlike__plate { position: relative; display: block; height: clamp(220px, 15.62vw, 400px); border-radius: 12px; overflow: hidden; background: repeating-linear-gradient(45deg, var(--sheet) 0 6px, var(--sheet-strong) 6px 12px); }
.sdlike__addr { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(26px, 1.56vw, 40px); transition: color 180ms ease-in-out; }
.sdlike__link:hover .sdlike__addr { color: var(--accent); }
.sdlike__price { display: flex; align-items: baseline; gap: 16px; padding-top: 12px; border-top: 2px solid var(--ink); }
.sdlike__sum { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(28px, 1.64vw, 42px); }
.sdlike__lead { flex: 1; border-bottom: 1px dotted rgba(var(--ink-rgb), 0.25); }
.sdlike__metre { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); white-space: nowrap; }
.sdlike .sdledger--survey .uoledger__row { font-size: clamp(14px, 0.66vw, 17px); }
.sdlike__why { font-family: var(--display); font-style: italic; font-size: clamp(16px, 0.82vw, 21px); line-height: 1.45; color: var(--muted); }


/* ==========================================================================
   81. Saved properties — адаптив
   ========================================================================== */
@media (max-width: 1680px) {
  .sdalerts__grid { grid-template-columns: minmax(0, 1fr); }
  .sdgrid__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sdfolders__row { flex-wrap: wrap; }
  .sdfolder { flex-basis: calc(50% - 10px); }
  .sdfolder__new { flex: 1 1 calc(50% - 10px); min-height: 220px; }
  .sdnotes__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sdremoved__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .sdcompare { grid-template-columns: minmax(0, 1fr) clamp(300px, 20.31vw, 520px); }
}

@media (max-width: 1100px) {
  .sdhead__row { grid-template-columns: minmax(0, 1fr); }
  .sdfigs { flex-wrap: wrap; }
  .sdfig { flex: 1 1 30%; }
  .sdfig:nth-child(n + 4) { margin-top: 16px; }
  .sdfig:nth-child(4) { padding-left: 0; border-left: 0; }
  .sdcompare { grid-template-columns: minmax(0, 1fr); }
  .sdcompare__table { border-left: 0; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
  .sdchange { grid-template-columns: minmax(0, 1fr) auto; gap: 12px 20px; }
  .sdchange__what { grid-column: 1 / -1; }
  .sdchange__fig { font-size: clamp(20px, 1.02vw, 26px); }
  .sdfile,
  .sdfilters { flex-wrap: wrap; row-gap: 8px; }
  .sdfile__line { display: none; }
  .sdadvisor { flex-wrap: wrap; }
  .sdadvisor__act { align-items: flex-start; }
}

@media (max-width: 900px) {
  .sdalert { grid-template-columns: minmax(0, 1fr); }
  .sdalert__plate { min-height: clamp(220px, 11.72vw, 300px); }
  .sdgrid__cards,
  .sdnotes__grid,
  .sdremoved__grid { grid-template-columns: minmax(0, 1fr); }
  .sdfolder,
  .sdfolder__new { flex-basis: 100%; }
  .sdfolder__new { width: auto; }
}

@media (max-width: 640px) {
  .sdfig { flex-basis: 100%; padding-left: 0; border-left: 0; }
  .sdfig:nth-child(n + 2) { margin-top: 0; padding-top: 14px; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
  .sddecision { flex-wrap: wrap; }
  .sddecision__body { flex-basis: calc(100% - 78px); }
  .sddecision__row { white-space: normal; flex-wrap: wrap; }
  .sdalert__acts,
  .sdfolder__acts { flex-wrap: wrap; }
  .sdalert__acts .uopill { width: 100%; }
  .sdalert__figure { flex-wrap: wrap; }
  .sdalert__fignote { flex-basis: 100%; text-align: left; }
  .sdhome__foot,
  .sdhome__price,
  .sdfolder__thumbs { flex-wrap: wrap; }
  .sdhome__change { white-space: normal; }
  .sdfolder__thumbs { row-gap: 8px; }
  .sdadvisor__last { white-space: normal; }
  .sdfolder__row { flex-wrap: wrap; }
  .sdfolder__addr { flex-basis: 100%; }
  .sdfolder__lead { display: none; }
  .sdslip__foot,
  .sdalert__when { flex-wrap: wrap; }
  .sdlike { flex-basis: 84vw; }
  .sdadvisor__act { width: 100%; }
  .sdadvisor__act .uopill { width: 100%; }
  .sdchange__fig { text-align: left; }
  .sdrail { grid-template-columns: 14px minmax(0, 1fr); gap: 0 14px; }
}

/* ==========================================================================
   82. Saved searches — четыре поиска, узкий поиск и форма нового
   ========================================================================== */
.ssw-5 { width: 5%; }
.ssw-18 { width: 18%; }
.ssw-25 { width: 25%; }
.ssw-37 { width: 37%; }
.ssw-50 { width: 50%; }
.ssw-75 { width: 75%; }
.ssw-100 { width: 100%; }
.ssbig { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 1.02vw, 26px); }
.uopill--44 { height: 44px; padding: 0 20px; font-size: clamp(14px, 0.59vw, 15px); }
.uopill--58 { height: 58px; font-size: clamp(14px, 0.62vw, 16px); }
.uoav--86 { width: 86px; height: 86px; }
.uobar--4 { height: 4px; border-radius: 2px; }
.sdchip--42 { height: 42px; padding: 0 20px; letter-spacing: 0.22em; color: var(--ink); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22); }
.sslink { padding: 0; border: 0; background: none; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); cursor: pointer; white-space: nowrap; }
.sslink:hover { color: var(--accent); }
.sspage .uoswitch__state { letter-spacing: 0.22em; }
.ssfield__label { display: flex; align-items: baseline; gap: 12px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.ssfield__line { flex: 1; height: 1px; background: rgba(var(--ink-rgb), 0.16); align-self: center; }
.ssform__foot { display: block; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); text-align: center; line-height: 1.7; }

/* --- 01 Голова: заголовок 88 и красная плита с двумя строками ------------------------------- */
.sshead__title { font-size: clamp(42px, 3.44vw, 88px); }
.ssdec__body { gap: 6px; }
.ssdec__line { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); line-height: 1.6; }

/* --- 02 Новое с пятницы: ряд 600 с плитой «Found by» ---------------------------------------- */
.ssfound { position: absolute; left: 16px; right: 16px; bottom: 16px; display: flex; align-items: center; gap: 10px; padding: 11px 15px; border-radius: 10px; background: rgba(var(--c-night-rgb), 0.82); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.16em; color: var(--plate-muted); }
.ssfound__name { color: var(--c-cream); text-align: right; }
.ssnew__when { margin-top: 2px; }

/* --- 03 Поиски: две карточки в ряд с переключателем ----------------------------------------- */
.sslist,
.ssyields,
.ssnarrow,
.ssform,
.ssletters,
.sscontexts { display: flex; flex-direction: column; gap: 26px; }
.ssnarrow { gap: 28px; }
.sslist__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.sssearch { display: flex; flex-direction: column; gap: 16px; padding: 30px 32px; border-radius: 14px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); transition: transform 220ms ease-in-out, box-shadow 220ms ease-in-out, background 220ms ease-in-out; }
.sssearch:hover { transform: translateY(-5px); box-shadow: inset 0 0 0 1.5px rgba(var(--ink-rgb), 0.24), 0 22px 46px rgba(var(--shadow-warm-rgb), 0.1); }
.sssearch--red { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.34); }
.sssearch--red:hover { box-shadow: inset 0 0 0 1.5px rgba(var(--accent-rgb), 0.5), 0 22px 46px rgba(var(--shadow-warm-rgb), 0.1); }
.sssearch--off { background: transparent; }
.sssearch--red .sdmeta { color: var(--accent); }
.sssearch__head { display: flex; align-items: baseline; gap: 18px; margin: 0; padding-bottom: 12px; border-bottom: 2px solid var(--ink); }
.sssearch__name { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(26px, 1.64vw, 42px); }
.sssearch--off .sssearch__name { color: var(--muted); }
.sssearch__count { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; }
.sssearch__n { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(30px, 1.88vw, 48px); }
.sssearch--red .sssearch__n { color: var(--accent); }
.sssearch__nlabel { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); white-space: nowrap; }
.sschips { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; }
.sschip { display: inline-flex; align-items: center; height: 36px; padding: 0 16px; border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.18); font-size: clamp(14px, 0.59vw, 15px); color: var(--ink); }
.sssearch--off .sschip { color: var(--muted); }
.sssearch__state { margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.sssearch__acts { display: flex; align-items: center; gap: 10px; margin: auto 0 0; padding-top: 16px; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }

/* --- 04 Что нашёл каждый: четыре плотные карточки ------------------------------------------- */
.ssyields__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.ssyield { display: flex; flex-direction: column; gap: 14px; padding: 28px 30px; border-radius: 14px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); transition: transform 220ms ease-in-out, box-shadow 220ms ease-in-out, background 220ms ease-in-out; }
.ssyield:hover { transform: translateY(-5px); box-shadow: inset 0 0 0 1.5px rgba(var(--ink-rgb), 0.24), 0 22px 46px rgba(var(--shadow-warm-rgb), 0.1); }
.ssyield--red { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.34); }
.ssyield--red .sdmeta { color: var(--accent); }
.ssyield--off { background: transparent; }
.ssyield__name { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.25vw, 32px); }
.ssyield--off .ssyield__name { color: var(--muted); }
.ssyield__found { display: flex; align-items: baseline; gap: 12px; margin: 0; padding-top: 12px; border-top: 2px solid var(--ink); }
.ssyield__n { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(32px, 2.11vw, 54px); }
.ssyield--red .ssyield__n { color: var(--accent); }
.ssyield__nlabel { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.ssyield__go { margin-top: auto; }
.ssyield .ssyield__go { margin-top: auto; }

/* --- 05 Слишком узко: фраза 46, красная полоса «+9», таблица послаблений --------------------- */
.ssnarrow__kicker { display: inline-flex; align-items: center; gap: 12px; }
.sssentence { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.80vw, 46px); line-height: 1.5; letter-spacing: 0; }
.ssword { color: inherit; text-decoration: none; border-bottom: 2px solid rgba(var(--accent-rgb), 0.5); transition: color 180ms ease-in-out, border-color 180ms ease-in-out; }
.ssword:hover { color: var(--accent); border-color: var(--accent); }
.ssbest { display: grid; grid-template-columns: minmax(0, 1fr) clamp(300px, 21.88vw, 560px); border-radius: 14px; overflow: hidden; background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.34); }
.ssbest__words { display: flex; flex-direction: column; gap: 16px; padding: clamp(22px, 1.17vw, 30px) clamp(22px, 1.33vw, 34px); min-width: 0; }
.ssbest__label { display: flex; align-items: center; gap: 14px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.ssbest__labelline { flex: 1; height: 1px; background: rgba(var(--accent-rgb), 0.25); }
.ssbest__change { display: flex; align-items: center; flex-wrap: wrap; gap: 20px; margin: 0; }
.ssbest__from,
.ssbest__to { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.48vw, 38px); }
.ssbest__to,
.ssbest__arrow { color: var(--accent); }
.ssbest__arrow { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.25vw, 32px); }
.ssbest__bars { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.ssbar { position: relative; display: block; height: 4px; border-radius: 2px; background: rgba(var(--ink-rgb), 0.14); overflow: hidden; }
.ssbar--34 { width: 34px; }
.ssbar--140 { width: 140px; }
.ssbar--red { background: rgba(var(--accent-rgb), 0.18); }
.ssbar__fill { position: absolute; inset: 0 auto 0 0; background: rgba(var(--ink-rgb), 0.45); }
.ssbar__fill--red { background: var(--accent); }
.ssbest__facts { padding-top: 14px; border-top: 1px solid rgba(var(--accent-rgb), 0.25); }
.ssbest__facts .uoledger__row { font-size: clamp(14px, 0.66vw, 17px); }
.ssbest__facts .uoledger__lead { border-bottom-color: rgba(var(--accent-rgb), 0.35); }
.ssbest__plus { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; padding: clamp(22px, 1.17vw, 30px) clamp(22px, 1.33vw, 34px); background: rgba(var(--accent-rgb), 0.08); border-left: 1px solid rgba(var(--accent-rgb), 0.25); text-align: center; }
.ssbest__big { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(48px, 3.75vw, 96px); color: var(--accent); }
.ssbest__bignote,
.ssbest__small { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); line-height: 1.7; }
.ssbest__cta { margin-top: 6px; }
.ssloosens { display: flex; flex-direction: column; }
.ssloosens__head,
.ssloosen { display: grid; grid-template-columns: minmax(0, 1fr) clamp(200px, 15.62vw, 400px) clamp(180px, 13.28vw, 340px) clamp(70px, 4.69vw, 120px) clamp(90px, 5.08vw, 130px); gap: 24px; align-items: center; }
.ssloosens__head { margin: 0; padding-bottom: 12px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.16); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.ssloosen { padding: 18px 14px; margin: 0 -14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); color: var(--ink); text-decoration: none; transition: background 180ms ease-in-out; }
.ssloosen:hover { background: rgba(var(--accent-rgb), 0.05); }
.ssloosen__what { font-size: clamp(16px, 0.82vw, 21px); }
.ssloosen__fromto { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.ssloosen__to { color: var(--ink); }
.ssloosen__adds { font-size: clamp(14px, 0.62vw, 16px); color: var(--muted); }
.ssloosen__n { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.25vw, 32px); color: var(--accent); }
.ssloosen .sdchip { justify-self: start; }

/* --- 06 Новый поиск: форма слева, живой счётчик 104 справа --------------------------------- */
.ssform__plate { display: grid; grid-template-columns: minmax(0, 1fr) clamp(300px, 17.97vw, 460px); border-radius: 14px; overflow: hidden; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); }
.ssform__fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 34px; align-content: start; padding: clamp(22px, 1.33vw, 34px) clamp(22px, 1.48vw, 38px); min-width: 0; }
.ssfield { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.ssfield--range { gap: 10px; }
.ssfield--only { grid-column: 1 / -1; gap: 6px; padding-top: 18px; border-top: 2px solid var(--ink); }
.ssqchips { display: flex; flex-wrap: wrap; gap: 9px; margin: 0; }
.ssqchip { display: inline-flex; align-items: center; gap: 9px; height: 44px; padding: 0 20px; border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2); font-size: clamp(14px, 0.62vw, 16px); color: var(--ink); white-space: nowrap; cursor: pointer; transition: background 180ms ease-in-out, color 180ms ease-in-out, box-shadow 180ms ease-in-out; }
.ssqchip:hover { box-shadow: inset 0 0 0 1px var(--accent); color: var(--accent); }
.ssqchip__n { font-family: var(--mono); font-size: 12px; letter-spacing: 0.1em; color: var(--muted); }
.g4pill__input:checked + .ssqchip { background: var(--ink); color: var(--bg); box-shadow: none; }
.g4pill__input:checked + .ssqchip .ssqchip__n { color: var(--bg); opacity: 0.8; }
.g4pill__input:focus-visible + .ssqchip { outline: 2px solid var(--accent); outline-offset: 3px; }
.ssfield__value { font-family: var(--display); font-size: clamp(20px, 1.09vw, 28px); letter-spacing: 0; text-transform: none; color: var(--ink); white-space: nowrap; }
.ssfield__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.ssrange { position: relative; display: block; height: 20px; margin: 6px 0 2px; }
.ssrange__track { position: absolute; left: 0; right: 0; top: 8px; height: 4px; border-radius: 2px; background: rgba(var(--ink-rgb), 0.14); }
.ssrange__fill { position: absolute; top: 0; height: 4px; border-radius: 2px; background: var(--accent); }
.ssrange__input { position: absolute; inset: 0; width: 100%; height: 20px; margin: 0; background: transparent; pointer-events: none; -webkit-appearance: none; appearance: none; }
.ssrange__input::-webkit-slider-runnable-track { height: 20px; background: transparent; }
.ssrange__input::-moz-range-track { height: 20px; background: transparent; }
.ssrange__input::-webkit-slider-thumb { width: 20px; height: 20px; border: 0; border-radius: 50%; background: var(--bg); box-shadow: inset 0 0 0 1.5px var(--accent); pointer-events: auto; cursor: pointer; -webkit-appearance: none; appearance: none; }
.ssrange__input::-moz-range-thumb { width: 20px; height: 20px; border: 0; border-radius: 50%; background: var(--bg); box-shadow: inset 0 0 0 1.5px var(--accent); pointer-events: auto; cursor: pointer; }
.ssrange__input:focus-visible { outline: none; }
.ssrange__input:focus-visible::-webkit-slider-thumb { box-shadow: inset 0 0 0 1.5px var(--accent), 0 0 0 3px rgba(var(--accent-rgb), 0.3); }
.ssonlys { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 34px; }
.ssonly { position: relative; display: flex; align-items: center; gap: 14px; padding: 14px 16px; margin: 0 -16px; border-radius: 10px; cursor: pointer; transition: background 180ms ease-in-out; }
.ssonly__input { position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; pointer-events: none; }
.ssonly__box { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 26px; height: 26px; border-radius: 7px; box-shadow: inset 0 0 0 1.5px rgba(var(--ink-rgb), 0.28); color: transparent; font-size: 14px; transition: background 180ms ease-in-out, color 180ms ease-in-out; }
.ssonly__words { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.ssonly__title { font-size: clamp(15px, 0.70vw, 18px); color: var(--muted); }
.ssonly__sub,
.ssonly__cost { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.ssonly__cost { white-space: nowrap; }
.ssonly__input:checked ~ .ssonly__box { background: var(--accent); box-shadow: none; color: var(--c-cream); }
.ssonly:has(.ssonly__input:checked) { background: rgba(var(--accent-rgb), 0.05); }
.ssonly__input:checked ~ .ssonly__words .ssonly__title { color: var(--ink); }
.ssonly__input:checked ~ .ssonly__cost { color: var(--accent); }
.ssonly__input:focus-visible ~ .ssonly__box { outline: 2px solid var(--accent); outline-offset: 3px; }
.ssform__side { display: flex; flex-direction: column; gap: 18px; padding: clamp(22px, 1.33vw, 34px) clamp(22px, 1.25vw, 32px); background: var(--modal-field); border-left: 1px solid rgba(var(--ink-rgb), 0.14); }
.sscount { display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 30px 28px; border-radius: 14px; background: rgba(var(--accent-rgb), 0.08); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.34); }
.sscount__n { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(56px, 4.06vw, 104px); color: var(--accent); }
.sscount__label { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); text-align: center; }
.sscount__facts { width: 100%; padding-top: 14px; border-top: 1px solid rgba(var(--accent-rgb), 0.25); }
.sscount__facts .uoledger__lead { border-bottom-color: rgba(var(--accent-rgb), 0.35); }
.sscount__see { margin-top: 6px; box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.45); color: var(--accent); }
.sswrite { display: flex; flex-direction: column; gap: 10px; margin-top: auto; }
.ssfreqs { display: flex; flex-direction: column; gap: 7px; }
.ssfreq { position: relative; display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 9px; color: var(--ink); cursor: pointer; transition: background 180ms ease-in-out, color 180ms ease-in-out; }
.ssfreq__input { position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; pointer-events: none; }
.ssfreq__dot { flex: none; width: 8px; height: 8px; border-radius: 50%; box-shadow: inset 0 0 0 1.5px rgba(var(--ink-rgb), 0.28); }
.ssfreq__words { display: flex; flex-direction: column; gap: 3px; }
.ssfreq__title { font-size: clamp(15px, 0.66vw, 17px); }
.ssfreq__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.ssfreq:has(.ssfreq__input:checked) { background: rgba(var(--accent-rgb), 0.07); color: var(--accent); }
.ssfreq__input:checked ~ .ssfreq__dot { background: var(--accent); box-shadow: none; }
.ssfreq__input:focus-visible ~ .ssfreq__dot { outline: 2px solid var(--accent); outline-offset: 4px; }
.sswrite .uopill { margin-top: 4px; }

/* --- 07 Письма: неделя точками, таблица частот и плита правил ------------------------------- */
.ssweek { display: inline-flex; align-items: center; gap: 7px; }
.ssday { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2); font-family: var(--mono); font-size: 12px; color: var(--muted); }
.ssday--on { background: var(--accent); box-shadow: none; color: var(--c-cream); }
.ssletters__grid { display: grid; grid-template-columns: minmax(0, 1fr) clamp(340px, 26.56vw, 680px); gap: clamp(30px, 2.73vw, 70px); align-items: stretch; }
.ssletters__table { display: flex; flex-direction: column; min-width: 0; }
.ssletters__head,
.ssletter { display: grid; grid-template-columns: 50px minmax(0, 1fr) clamp(230px, 16.41vw, 420px) clamp(110px, 5.86vw, 150px); gap: 24px; align-items: center; }
.ssletters__head { margin: 0; padding-bottom: 12px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.16); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.ssletter { padding: 22px 14px; margin: 0 -14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); transition: background 180ms ease-in-out; }
.ssletter:hover { background: rgba(var(--accent-rgb), 0.05); }
.ssletter__no { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.ssletter__who { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.ssletter__name { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.17vw, 30px); }
.ssletter--off .ssletter__name { color: var(--muted); }
.ssletter__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.ssletter__freq { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.ssseg { display: inline-flex; align-items: center; align-self: flex-start; max-width: 100%; height: 44px; padding: 4px; border-radius: 999px; background: var(--bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.ssseg__pill { display: inline-flex; align-items: center; height: 36px; padding: 0 clamp(10px, 0.70vw, 18px); border-radius: 999px; font-size: clamp(13px, 0.59vw, 15px); color: var(--muted); white-space: nowrap; cursor: pointer; transition: background 180ms ease-in-out, color 180ms ease-in-out; }
.ssseg__pill:hover { color: var(--accent); }
.g4pill__input:checked + .ssseg__pill { background: var(--accent); color: var(--c-cream); }
.g4pill__input:focus-visible + .ssseg__pill { outline: 2px solid var(--accent); outline-offset: 3px; }
.ssletter__switch { justify-self: end; }
.ssletters__note { margin: 0; padding-top: 16px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.ssrules { display: flex; flex-direction: column; gap: 16px; padding: clamp(22px, 1.25vw, 32px) clamp(22px, 1.33vw, 34px); border-radius: 14px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); }
.ssrules__list { display: flex; flex-direction: column; gap: 2px; }
.ssrule { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 14px 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.12); }
.ssrule__words { display: flex; flex-direction: column; gap: 4px; }
.ssrule__title { font-size: clamp(15px, 0.70vw, 18px); }
.ssrule__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.ssrule__instead { font-size: clamp(13px, 0.59vw, 15px); color: var(--muted); }
.ssrules__foot { display: flex; flex-direction: column; gap: 12px; margin-top: auto; padding-top: 16px; border-top: 2px solid var(--ink); }
.ssrules__quote { margin: 0; font-family: var(--display); font-style: italic; font-size: clamp(19px, 1.09vw, 28px); line-height: 1.4; }
.ssrules__acts { display: flex; align-items: center; gap: 12px; margin: 0; }
.ssrules__pause { flex: 1; }

/* --- 08 Удалённые: красная плита 700 и строки остальных ------------------------------------ */
.sshistory { display: grid; grid-template-columns: clamp(340px, 27.34vw, 700px) minmax(0, 1fr); gap: clamp(30px, 2.73vw, 70px); align-items: start; }
.ssback { display: flex; flex-direction: column; gap: 18px; padding: clamp(22px, 1.33vw, 34px) clamp(22px, 1.41vw, 36px); border-radius: 14px; background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.34); }
.ssback__kicker { display: flex; align-items: center; gap: 12px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.ssback__name { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(28px, 1.80vw, 46px); }
.ssback__line { margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.ssback__figure { display: flex; align-items: baseline; gap: 16px; margin: 0; padding: 18px 0; border-top: 2px solid var(--ink); border-bottom: 1px solid rgba(var(--accent-rgb), 0.25); }
.ssback__n { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(36px, 2.50vw, 64px); color: var(--accent); }
.ssback__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); line-height: 1.7; }
.ssback__why { margin: 0; font-family: var(--display); font-style: italic; font-size: clamp(17px, 0.86vw, 22px); line-height: 1.45; }
.ssback__acts { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin: auto 0 0; }
.sshistory__rest { display: flex; flex-direction: column; min-width: 0; }
.sshistory__head { margin-bottom: 4px; }
.sshistory__title { font-size: clamp(30px, 2.19vw, 56px); }
.ssgone { display: grid; grid-template-columns: minmax(0, 1fr) clamp(140px, 9.38vw, 240px) clamp(120px, 8.98vw, 230px) auto; gap: 26px; align-items: center; padding: 20px 14px; margin: 0 -14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); transition: background 180ms ease-in-out; }
.ssgone:hover { background: rgba(var(--accent-rgb), 0.05); }
.ssgone__who { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.ssgone__name { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.25vw, 32px); }
.ssgone__why { font-family: var(--display); font-style: italic; font-size: clamp(15px, 0.70vw, 18px); color: var(--muted); }
.ssgone__when { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); line-height: 1.7; }
.ssgone__today { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 1.17vw, 30px); }

/* --- 09 Советник: портрет 86, три цифры, поле «в одну фразу» ------------------------------- */
.ssadvisor { display: grid; grid-template-columns: minmax(0, 1fr) clamp(360px, 29.69vw, 760px); border-radius: 14px; overflow: hidden; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); }
.ssadvisor__words { display: flex; flex-direction: column; gap: 16px; padding: clamp(22px, 1.33vw, 34px) clamp(22px, 1.48vw, 38px); min-width: 0; }
.ssadvisor__who { display: flex; align-items: center; gap: 16px; margin: 0; }
.ssadvisor__names { display: flex; flex-direction: column; gap: 5px; }
.ssadvisor__name { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.48vw, 38px); }
.ssadvisor__line { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.ssadvisor__title { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(28px, 1.88vw, 48px); }
.ssadvisor__title em,
.sshead__title em { font-style: italic; color: var(--accent); }
.ssadvisor__text { margin: 0; font-size: clamp(15px, 0.70vw, 18px); line-height: 1.6; color: var(--muted); }
.ssadvisor__facts { padding-top: 14px; border-top: 2px solid var(--ink); }
.ssadvisor__facts .uoledger__row { font-size: clamp(14px, 0.66vw, 17px); }
.ssadvisor__ask { display: flex; flex-direction: column; gap: 14px; padding: clamp(22px, 1.33vw, 34px) clamp(22px, 1.48vw, 38px); background: var(--modal-field); border-left: 1px solid rgba(var(--ink-rgb), 0.14); }
.ssbrief { display: block; width: 100%; box-sizing: border-box; padding: 22px 24px; border: 0; border-radius: 11px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); font-family: var(--display); font-style: italic; font-size: clamp(17px, 0.94vw, 24px); line-height: 1.55; color: var(--ink); resize: vertical; caret-color: var(--accent); }
.ssbrief::placeholder { color: var(--muted); }
.ssbrief:focus { outline: none; box-shadow: inset 0 0 0 1.5px var(--accent); }
.ssadvisor__send { margin-top: auto; }
.ssadvisor__ask .ssadvisor__send { margin-top: auto; }

/* --- 10 Что ищут другие: три тихие карточки ------------------------------------------------ */
.sscontexts__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.sscontext { display: flex; flex-direction: column; gap: 14px; padding: 30px 32px; border-radius: 14px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.sscontext--you { background: var(--modal-bg); }
.sscontext__quarter { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.48vw, 38px); }
.sscontext__shape { margin: 0; padding-bottom: 12px; border-bottom: 2px solid var(--ink); font-family: var(--display); font-style: italic; font-size: clamp(17px, 0.94vw, 24px); line-height: 1.45; }
.sscontext__you { margin: auto 0 0; padding-top: 14px; border-top: 1px solid rgba(var(--ink-rgb), 0.14); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }


/* ==========================================================================
   83. Saved searches — адаптив
   ========================================================================== */
@media (max-width: 1680px) {
  .ssyields__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ssletters__grid { grid-template-columns: minmax(0, 1fr); }
  .sshistory { grid-template-columns: minmax(0, 1fr); }
  .ssadvisor { grid-template-columns: minmax(0, 1fr) clamp(300px, 20.31vw, 520px); }
  .ssform__plate { grid-template-columns: minmax(0, 1fr) clamp(280px, 15.62vw, 400px); }
}

@media (max-width: 1100px) {
  .sslist__grid,
  .sscontexts__grid,
  .ssform__plate,
  .ssadvisor { grid-template-columns: minmax(0, 1fr); }
  .ssform__side { order: -1; border-left: 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
  .ssadvisor__ask { border-left: 0; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
  .ssbest { grid-template-columns: minmax(0, 1fr); }
  .ssbest__plus { border-left: 0; border-top: 1px solid rgba(var(--accent-rgb), 0.25); }
  .ssloosens__head { display: none; }
  .ssloosen { grid-template-columns: minmax(0, 1fr) auto; gap: 8px 20px; }
  .ssloosen__fromto,
  .ssloosen__adds { grid-column: 1 / -1; }
  .ssloosen .sdchip { grid-column: 2; grid-row: 1; }
  .ssloosen__what { grid-column: 1; grid-row: 1; }
  .ssloosen__n { grid-column: 1; grid-row: 2; justify-self: start; }
  .ssloosen__fromto { grid-row: 3; }
  .ssloosen__adds { grid-row: 4; }
  .ssletters__head { display: none; }
  .ssletter { grid-template-columns: 40px minmax(0, 1fr) auto; gap: 14px 16px; }
  .ssletter__freq { grid-column: 2 / -1; }
  .ssgone { grid-template-columns: minmax(0, 1fr) auto; gap: 10px 20px; }
  .ssgone__when,
  .ssgone__today { grid-column: 1; }
  .ssgone .uopill { grid-column: 2; grid-row: 1 / span 3; align-self: center; }
}

@media (max-width: 900px) {
  .ssyields__grid { grid-template-columns: minmax(0, 1fr); }
  .ssform__fields { grid-template-columns: minmax(0, 1fr); }
  .ssonlys { grid-template-columns: minmax(0, 1fr); }
  .sssearch__acts,
  .ssrules__acts { flex-wrap: wrap; }
  .ssrules__acts .uopill { width: 100%; flex-basis: 100%; }
}

@media (max-width: 640px) {
  .sssearch__head { flex-wrap: wrap; }
  .sssearch__count { align-items: flex-start; }
  .ssseg { height: auto; flex-wrap: wrap; gap: 4px; padding: 4px; border-radius: 22px; }
  .ssback__acts .uopill,
  .sssearch__acts .uopill { width: 100%; }
  .ssletter { grid-template-columns: minmax(0, 1fr) auto; }
  .ssletter__no { display: none; }
  .ssletter__freq { grid-column: 1 / -1; }
  .ssbest__bars .uoside__gap { flex-basis: 100%; }
  .ssbest__change { gap: 12px; }
  .sssentence { font-size: clamp(22px, 1.17vw, 30px); }
  .ssonly { flex-wrap: wrap; }
  .ssfield__label { flex-wrap: wrap; }
}

/* ==========================================================================
   84. Price alerts — сторожа цен: было → стало, квартал за год, что пропущено
   ========================================================================== */
.pww-0 { width: 0%; }
.pww-10 { width: 10%; }
.pww-20 { width: 20%; }
.pww-64 { width: 64%; }
.pww-80 { width: 80%; }
.pww-90 { width: 90%; }
.pww-100 { width: 100%; }
.pwdot--faint { background: rgba(var(--ink-rgb), 0.3); }
.pwmove { display: inline-flex; align-items: baseline; gap: 20px; }
.pwmove__was { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.41vw, 36px); color: var(--muted); text-decoration: line-through; }
.pwmove__arrow { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 1.09vw, 28px); color: var(--accent); }
.pwmove__now { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(28px, 1.88vw, 48px); }
.pwmove--main .pwmove__was { font-size: clamp(20px, 1.17vw, 30px); }
.pwmove--main .pwmove__arrow { font-size: clamp(18px, 0.86vw, 22px); }
.pwmove--main .pwmove__now { font-size: clamp(30px, 2.03vw, 52px); }
.pwmove--small { gap: 10px; }
.pwmove--small .pwmove__was { font-size: clamp(17px, 0.86vw, 22px); }
.pwmove--small .pwmove__arrow { font-size: clamp(15px, 0.70vw, 18px); }
.pwmove--small .pwmove__now { font-size: clamp(20px, 1.09vw, 28px); }

/* --- 02 Продажа: две плиты цен, Free и €890 ------------------------------------------------ */
.pwselling,
.pwfireds,
.pwlist,
.pwnew,
.pwmoves,
.pwquarter,
.pwmeaning,
.pwletters { display: flex; flex-direction: column; gap: 26px; }
.pwlist { gap: 24px; }
.pwnew { gap: 20px; }
.pwmeaning { gap: 22px; }
.pwletters { gap: 28px; }
.pwselling__kicker { display: inline-flex; align-items: center; gap: 14px; }
.pwselling__used { color: var(--muted); }
.pwsell__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; align-items: stretch; }
.pwsell { position: relative; display: flex; flex-direction: column; gap: 16px; padding: clamp(22px, 1.41vw, 36px) clamp(22px, 1.48vw, 38px); border-radius: 14px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.pwsell--free { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.34); }
.pwsell .uowait__tick { top: 20px; right: 20px; border-color: rgba(var(--accent-rgb), 0.4); }
.pwsell__kicker { display: flex; align-items: center; gap: 12px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pwsell__head { display: flex; align-items: baseline; gap: 18px; margin: 0; padding-bottom: 12px; border-bottom: 2px solid var(--ink); }
.pwsell--free .pwsell__head { border-bottom-color: rgba(var(--accent-rgb), 0.35); }
.pwsell__big { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(48px, 3.75vw, 96px); }
.pwsell__notes { display: flex; flex-direction: column; gap: 4px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pwsell__rows { display: flex; flex-direction: column; gap: 2px; }
.pwsell__row { display: grid; grid-template-columns: minmax(0, 1fr) clamp(120px, 6.64vw, 170px); gap: 16px; align-items: baseline; padding: 13px 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.pwsell--free .pwsell__row { border-bottom-color: rgba(var(--accent-rgb), 0.22); }
.pwsell__what,
.pwsell__cost { display: flex; flex-direction: column; gap: 3px; }
.pwsell__cost { text-align: right; }
.pwsell__item { font-size: clamp(15px, 0.70vw, 18px); }
.pwsell__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pwsell__price { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.pwsell__promises { padding-top: 4px; }
.pwsell__promises .uoledger__row { font-size: clamp(14px, 0.66vw, 17px); }
.pwsell__acts { display: flex; flex-direction: column; gap: 10px; margin: auto 0 0; }

/* --- 03 Сработали: две широкие красные карточки ------------------------------------------ */
.pwfireds__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; }
.pwfired { display: flex; flex-direction: column; gap: 16px; padding: 30px 32px; border-radius: 14px; background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.34); cursor: pointer; transition: transform 220ms ease-in-out, box-shadow 220ms ease-in-out, background 220ms ease-in-out; }
.pwfired:hover { transform: translateY(-5px); box-shadow: inset 0 0 0 1.5px rgba(var(--accent-rgb), 0.5), 0 22px 46px rgba(var(--shadow-warm-rgb), 0.1); }
.pwfired__ago { color: var(--muted); }
.pwfired__who { display: flex; flex-direction: column; gap: 6px; margin: 0; }
.pwfired__home { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(26px, 1.72vw, 44px); }
.pwfired__measure,
.pwfired__alert { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pwfired__figure { display: flex; align-items: baseline; flex-wrap: wrap; gap: 20px; margin: 0; padding: 18px 0; border-top: 2px solid rgba(var(--accent-rgb), 0.35); border-bottom: 1px solid rgba(var(--accent-rgb), 0.25); }
.pwfired__cut { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.pwfired__cutsum { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.41vw, 36px); color: var(--accent); white-space: nowrap; }
.pwfired__pct { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.pwfired__below { margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.pwfired__text { margin: 0; font-size: clamp(14px, 0.66vw, 17px); line-height: 1.55; color: var(--muted); }
.pwfired__acts { display: flex; align-items: center; gap: 12px; margin: auto 0 0; padding-top: 16px; border-top: 1px solid rgba(var(--accent-rgb), 0.22); }
.pwfired__alert { white-space: nowrap; }

/* --- 04 Все сторожа: гроссбух в семь колонок и итоги ---------------------------------------- */
.pwtable { display: flex; flex-direction: column; }
.pwtable__head,
.pwalert { display: grid; grid-template-columns: 50px clamp(90px, 5.08vw, 130px) minmax(0, 1fr) clamp(170px, 12.89vw, 330px) clamp(120px, 8.20vw, 210px) clamp(160px, 11.33vw, 290px) clamp(110px, 5.86vw, 150px); gap: 22px; align-items: center; }
.pwtable__head { margin: 0; padding-bottom: 12px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.16); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pwalert { padding: 22px 14px; margin: 0 -14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); transition: background 180ms ease-in-out; }
.pwalert:hover { background: rgba(var(--accent-rgb), 0.05); }
.pwalert--red { background: rgba(var(--accent-rgb), 0.04); }
.pwalert--red:hover { background: rgba(var(--accent-rgb), 0.07); }
.pwalert[hidden] { display: none; }
.pwalert__no { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pwalert--red .pwalert__no { color: var(--accent); }
.pwkind { display: inline-flex; align-items: center; gap: 8px; height: 30px; padding: 0 13px; border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.18); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); white-space: nowrap; justify-self: start; }
.pwkind__dot { width: 6px; height: 6px; border-radius: 50%; background: rgba(var(--ink-rgb), 0.3); }
.pwkind--red { color: var(--accent); }
.pwkind--red .pwkind__dot { background: var(--accent); }
.pwalert__what,
.pwalert__rule,
.pwalert__last { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.pwalert__name { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 1.17vw, 30px); }
.pwalert--off .pwalert__name { color: var(--muted); }
.pwalert__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pwalert__ruletext { font-size: clamp(15px, 0.70vw, 18px); }
.pwalert__freq { font-size: clamp(14px, 0.62vw, 16px); color: var(--muted); }
.pwalert__lastline { font-size: clamp(14px, 0.62vw, 16px); }
.pwalert__rate { display: flex; align-items: center; gap: 9px; margin-top: 2px; }
.pwalert__rate .uobar { flex: 1; }
.pwalert__switch { justify-self: end; }
.pwtable__add { display: flex; align-items: center; gap: 12px; padding: 22px 14px; margin: 0 -14px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); text-decoration: none; transition: color 180ms ease-in-out; }
.pwtable__add:hover { color: var(--accent); }
.pwtable__plus { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); font-family: var(--text); font-size: 14px; }
.pwtotals { display: flex; align-items: stretch; padding-top: 18px; border-top: 2px solid var(--ink); }
.pwtotal { display: flex; flex: 1; flex-direction: column; gap: 7px; padding: 0 clamp(16px, 1.17vw, 30px); border-left: 1px solid rgba(var(--ink-rgb), 0.16); }
.pwtotal:first-child { padding-left: 0; border-left: 0; }
.pwtotal__label { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pwtotal__value { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(26px, 1.56vw, 40px); white-space: nowrap; }

/* --- 05 Новый сторож: одна полоса из пяти полей ------------------------------------------- */
.pwnew__band { display: flex; align-items: center; flex-wrap: wrap; gap: 20px; padding: 22px 26px; border-radius: 14px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); }
.pwfield { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.pwfield__label { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pwfield__pick { position: relative; display: block; }
.pwfield__select { width: 100%; max-width: 100%; padding: 0 22px 0 0; border: 0; background: transparent; font-family: var(--text); font-size: clamp(15px, 0.74vw, 19px); color: var(--ink); white-space: nowrap; cursor: pointer; -webkit-appearance: none; appearance: none; }
.pwfield__pick::after { content: ""; position: absolute; right: 4px; top: 50%; width: 7px; height: 7px; border-right: 1.5px solid var(--accent); border-bottom: 1.5px solid var(--accent); transform: translateY(-70%) rotate(45deg); pointer-events: none; }
.pwfield__select:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; border-radius: 4px; }
.pwfield__bar { width: 1px; height: 34px; background: rgba(var(--ink-rgb), 0.16); }
.pwnew__count { display: inline-flex; align-items: center; gap: 14px; height: 62px; padding: 0 20px; border-radius: 999px; background: rgba(var(--accent-rgb), 0.08); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.34); }
.pwnew__n { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(26px, 1.48vw, 38px); color: var(--accent); }
.pwnew__times { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); line-height: 1.5; }
.pwnew__go { height: 62px; padding: 0 28px; font-size: clamp(14px, 0.62vw, 16px); }

/* --- 06 Движение: четыре карточки, было → стало шагами ------------------------------------- */
.pwmoves__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.pwmovecard { display: flex; flex-direction: column; gap: 14px; padding: 28px 30px; border-radius: 14px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); cursor: pointer; transition: transform 220ms ease-in-out, box-shadow 220ms ease-in-out, background 220ms ease-in-out; }
.pwmovecard:hover { transform: translateY(-4px); box-shadow: inset 0 0 0 1.5px rgba(var(--ink-rgb), 0.24), 0 20px 42px rgba(var(--shadow-warm-rgb), 0.1); }
.pwmovecard--red { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.34); }
.pwmovecard--red:hover { box-shadow: inset 0 0 0 1.5px rgba(var(--accent-rgb), 0.5), 0 20px 42px rgba(var(--shadow-warm-rgb), 0.1); }
.pwmovecard__head { display: flex; align-items: baseline; gap: 16px; margin: 0; }
.pwmovecard__home { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.41vw, 36px); }
.pwmovecard__price { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(26px, 1.56vw, 40px); white-space: nowrap; }
.pwmovecard__delta { margin: 0; padding-bottom: 10px; border-bottom: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pwmovecard--red .pwmovecard__delta { border-bottom-color: rgba(var(--accent-rgb), 0.35); }
.pwsteps { display: flex; flex-direction: column; gap: 8px; }
.pwstep { display: flex; align-items: baseline; gap: 12px; font-size: clamp(14px, 0.66vw, 17px); }
.pwstep__date { flex: 0 0 clamp(80px, 4.30vw, 110px); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pwmovecard__open { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 4px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ink); text-decoration: none; }
.pwmovecard__open:hover { color: var(--accent); }

/* --- 07 Квартал за год: легенда, SVG-график, пять цифр ------------------------------------ */
.pwlegend { display: flex; align-items: center; flex-wrap: wrap; gap: 24px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pwlegend__item { display: inline-flex; align-items: center; gap: 9px; }
.pwlegend__line { width: 22px; height: 2.5px; }
.pwlegend__line--red { background: var(--accent); }
.pwlegend__line--dash { background: repeating-linear-gradient(90deg, rgba(var(--ink-rgb), 0.5) 0 6px, transparent 6px 11px); }
.pwchart { margin: 0; padding: 30px 32px 22px; border-radius: 14px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.pwchart__grid { display: grid; grid-template-columns: 86px minmax(0, 1fr); gap: 0 16px; }
.pwchart__axis { display: flex; flex-direction: column; justify-content: space-between; height: clamp(260px, 14.84vw, 380px); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pwchart__plot { position: relative; min-width: 0; }
.pwchart__svg { display: block; width: 100%; height: clamp(260px, 14.84vw, 380px); }
.pwchart__rule { stroke: rgba(var(--ink-rgb), 0.12); stroke-width: 1; }
.pwchart__guide { stroke: rgba(var(--ink-rgb), 0.06); stroke-width: 1; }
.pwchart__band { fill: rgba(var(--accent-rgb), 0.06); }
.pwchart__line6 { fill: none; stroke: rgba(var(--ink-rgb), 0.5); stroke-width: 2.5; stroke-dasharray: 6 5; }
.pwchart__line7 { fill: none; stroke: var(--accent); stroke-width: 3; }
.pwchart__dot7 { fill: rgba(var(--accent-rgb), 0.5); }
.pwchart__dot6 { fill: rgba(var(--ink-rgb), 0.35); }
.pwchart__dot7.pwchart__dot--last { fill: var(--accent); }
.pwchart__dot6.pwchart__dot--last { fill: var(--ink); }
.pwchart__months { display: flex; justify-content: space-between; margin-top: 10px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pwqfigs { padding-top: 18px; border-top: 2px solid var(--ink); }
.pwqfig { gap: 8px; }
.pwqfig__value { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.64vw, 42px); white-space: nowrap; }
.pwqfig__blank { height: 5px; }

/* --- 08 Что значит снижение: две плиты-утверждения ----------------------------------------- */
.pwmeaning__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; }
.pwmean { display: flex; flex-direction: column; gap: 16px; padding: clamp(22px, 1.33vw, 34px) clamp(22px, 1.41vw, 36px); border-radius: 14px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); }
.pwmean--red { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.34); }
.pwmean__kicker { margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pwmean__figure { display: flex; align-items: baseline; flex-wrap: wrap; gap: 18px; margin: 0; }
.pwmean__n { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(48px, 3.59vw, 92px); }
.pwmean__nlabel { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pwmean__text { margin: 0; padding-top: 14px; border-top: 2px solid var(--ink); font-size: clamp(15px, 0.74vw, 19px); line-height: 1.6; }
.pwmean--red .pwmean__text { border-top-color: rgba(var(--accent-rgb), 0.35); }
.pwmean__count { margin-top: auto; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }

/* --- 09 Что пропущено: красная плита 720 и две строки ------------------------------------- */
.pwmissedsec { grid-template-columns: clamp(340px, 28.12vw, 720px) minmax(0, 1fr); }
.pwmissed__figure { align-items: baseline; flex-wrap: wrap; }
.pwmissed__mainsum { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.41vw, 36px); color: var(--accent); white-space: nowrap; }
.pwmissed__text { margin: 0; font-size: clamp(15px, 0.70vw, 18px); line-height: 1.6; color: var(--muted); }
.pwmissed { display: grid; grid-template-columns: minmax(0, 1fr) clamp(170px, 10.94vw, 280px) clamp(120px, 8.59vw, 220px) auto; gap: 26px; align-items: center; padding: 20px 14px; margin: 0 -14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); transition: background 180ms ease-in-out; }
.pwmissed:hover { background: rgba(var(--accent-rgb), 0.05); }
.pwmissed__who,
.pwmissed__cut { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.pwmissed__home { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.25vw, 32px); }
.pwmissed__home--muted { color: var(--muted); }
.pwmissed__sub,
.pwmissed__status { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pwmissed__status:not(.sdred) { color: var(--ink); }
.pwmissed__note { font-size: clamp(14px, 0.62vw, 16px); color: var(--muted); }
.pwmissed__cutsum { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 1.02vw, 26px); color: var(--accent); white-space: nowrap; }

/* --- 10 Письма: фраза 44, строки по сторожам, полоса «Going away?» -------------------------- */
.pwsentence { font-size: clamp(24px, 1.72vw, 44px); }
.pwword { white-space: nowrap; }
.pwletters__table { display: flex; flex-direction: column; }
.pwletters__head { display: flex; align-items: center; gap: 14px; margin: 0; padding-bottom: 12px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.16); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pwletter { display: grid; grid-template-columns: minmax(0, 1fr) clamp(240px, 16.80vw, 430px) clamp(150px, 10.94vw, 280px) clamp(110px, 5.86vw, 150px); gap: 26px; align-items: center; padding: 20px 14px; margin: 0 -14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); transition: background 180ms ease-in-out; }
.pwletter:hover { background: rgba(var(--accent-rgb), 0.05); }
.pwletter__who { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.pwletter__name { font-size: clamp(16px, 0.82vw, 21px); }
.pwletter--off .pwletter__name { color: var(--muted); }
.pwletter__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); line-height: 1.7; }
.pwletter__switch { justify-self: end; }
.pwhold { display: flex; align-items: center; gap: 24px; padding: 26px 30px; border-radius: 14px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); }
.pwhold__quote { margin: 0; font-family: var(--display); font-style: italic; font-size: clamp(20px, 1.17vw, 30px); line-height: 1.3; }
.pwhold__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); text-align: right; }

/* --- 11 Советник: что она нашла в прошлый раз ------------------------------------------------ */
.pwfound__home { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.25vw, 32px); }
.pwfound__note { margin: 0; padding: 22px 24px; border-radius: 11px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.pwfound__note p { margin: 0; font-family: var(--display); font-style: italic; font-size: clamp(17px, 0.94vw, 24px); line-height: 1.55; }
.pwfound__sig { display: flex; align-items: center; gap: 12px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }


/* ==========================================================================
   85. Price alerts — адаптив
   ========================================================================== */
@media (max-width: 1680px) {
  .pwtable__head { display: none; }
  .pwalert { grid-template-columns: 40px auto minmax(0, 1fr) auto; gap: 12px 20px; }
  .pwalert__rule,
  .pwalert__freq,
  .pwalert__last { grid-column: 3 / span 2; }
  .pwalert__switch { grid-column: 4; grid-row: 1; }
  .pwmissedsec { grid-template-columns: minmax(0, 1fr); }
  .pwletter { grid-template-columns: minmax(0, 1fr) auto; gap: 12px 20px; }
  .pwletter .ssseg,
  .pwletter__vol { grid-column: 1 / -1; }
  .pwletter__switch { grid-column: 2; grid-row: 1; }
  .pwchart__grid { grid-template-columns: 70px minmax(0, 1fr); }
}

@media (max-width: 1100px) {
  .pwsell__grid,
  .pwfireds__grid,
  .pwmoves__grid,
  .pwmeaning__grid { grid-template-columns: minmax(0, 1fr); }
  .pwtotals { flex-wrap: wrap; }
  .pwtotal { flex-basis: 45%; }
  .pwtotal:nth-child(3) { padding-left: 0; border-left: 0; }
  .pwtotal:nth-child(n + 3) { margin-top: 16px; }
  .pwnew__band { gap: 16px 24px; }
  .pwfield__bar { display: none; }
  .pwfield { flex: 1 1 40%; }
  .pwnew__count,
  .pwnew__go { flex: 1 1 40%; justify-content: center; }
  .pwqfigs { flex-wrap: wrap; }
  .pwqfig { flex: 1 1 30%; }
  .pwqfig:nth-child(4) { padding-left: 0; border-left: 0; }
  .pwqfig:nth-child(n + 4) { margin-top: 16px; }
  .pwmissed { grid-template-columns: minmax(0, 1fr) auto; gap: 10px 20px; }
  .pwmissed .pwmove,
  .pwmissed__cut { grid-column: 1; }
  .pwmissed .uopill { grid-column: 2; grid-row: 1 / span 3; align-self: center; }
  .pwhold { flex-wrap: wrap; }
  .pwhold__note { text-align: left; }
  .pwlegend .uosummary__line { display: none; }
}

@media (max-width: 640px) {
  .pwsell__head,
  .pwfired__acts,
  .pwmovecard__head,
  .pwfired__figure { flex-wrap: wrap; }
  .pwfired__acts .uopill,
  .pwhold .uopill { width: 100%; }
  .pwfired__cut { align-items: flex-start; }
  .pwfired__alert { white-space: normal; }
  .pwtotal { flex-basis: 100%; padding-left: 0; border-left: 0; }
  .pwtotal:nth-child(n + 2) { margin-top: 0; padding-top: 12px; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
  .pwqfig { flex-basis: 100%; padding-left: 0; border-left: 0; }
  .pwqfig:nth-child(n + 2) { margin-top: 0; padding-top: 14px; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
  .pwalert { grid-template-columns: minmax(0, 1fr) auto; }
  .pwalert__no { display: none; }
  .pwkind { grid-column: 1; }
  .pwalert__what,
  .pwalert__rule,
  .pwalert__freq,
  .pwalert__last { grid-column: 1 / -1; }
  .pwalert__switch { grid-column: 2; grid-row: 1; }
  .pwchart__grid { grid-template-columns: 56px minmax(0, 1fr); gap: 0 8px; }
  .pwchart { padding: 20px 16px 16px; }
  .pwchart__months span:nth-child(even) { display: none; }
  .pwsentence { font-size: clamp(21px, 1.09vw, 28px); }
  .pwword { white-space: normal; }
  .pwfield { flex-basis: 100%; }
  .pwnew__count,
  .pwnew__go { flex-basis: 100%; }
  .pwmove { gap: 10px; }
  .pwmove--big .pwmove__now { font-size: clamp(26px, 1.56vw, 40px); }
  .pwsell__row { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .pwsell__cost { text-align: left; }
  .pwmissed__figure { gap: 12px; }
}

/* ==========================================================================
   86. Viewings — час просят, не берут: следующий час, неделя сеткой, отчёты
   ========================================================================== */
.vww-11 { width: 11%; }
.vww-14 { width: 14%; }
.vww-22 { width: 22%; }
.vww-33 { width: 33%; }
.vww-42 { width: 42%; }
.vww-44 { width: 44%; }
.vww-68 { width: 68%; }
.uoav--48 { width: 48px; height: 48px; }
.uoav--44 { width: 44px; height: 44px; }
.uoav--76 { width: 76px; height: 76px; }
.sdinner--26 { inset: 26px; }
.vwline--red { background: rgba(var(--accent-rgb), 0.22); }
.vwwho { display: flex; align-items: center; gap: 13px; }
.vwwho__av { display: block; line-height: 0; }
.vwwho__words { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.vwwho__name { font-size: clamp(15px, 0.66vw, 17px); }
.vwwho__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.vwwho--big { gap: 16px; }
.vwwho--big .vwwho__name { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.33vw, 34px); }
.vwwho--dark .vwwho__sub { color: var(--plate-muted); }
.vwwho--foot { margin-top: auto; padding-top: 14px; border-top: 2px solid var(--ink); }
.vwsig { display: flex; align-items: flex-end; gap: 16px; padding-top: 14px; border-top: 1px solid rgba(var(--ink-rgb), 0.16); }
.vwsig__words { display: flex; flex-direction: column; gap: 4px; }
.vwsig__name { font-family: var(--display); font-style: italic; font-size: clamp(22px, 1.17vw, 30px); color: var(--accent); }
.vwsig__cap,
.vwsig__date { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.vwquote { margin: 0; font-family: var(--display); font-style: italic; line-height: 1.45; }
.vwquote--22 { font-size: clamp(16px, 0.86vw, 22px); line-height: 1.4; }
.vwquote--26 { font-size: clamp(18px, 1.02vw, 26px); }
.vwquote--28 { font-size: clamp(19px, 1.09vw, 28px); }
.vwquote--30 { font-size: clamp(20px, 1.17vw, 30px); line-height: 1.5; }
.vwthumb { position: relative; display: block; flex: none; border-radius: 8px; overflow: hidden; background: repeating-linear-gradient(45deg, var(--sheet) 0 6px, var(--sheet-strong) 6px 12px); }
.vwthumb--68 { width: 68px; height: 50px; }
.vwthumb--88 { width: 88px; height: 66px; }
.vwthumb--140 { width: 140px; height: 100px; border-radius: 10px; }
.vwread { display: inline-flex; align-items: center; gap: 8px; height: 32px; padding: 0 14px; border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); white-space: nowrap; }
.vwread__dot { width: 5px; height: 5px; border-radius: 50%; background: rgba(var(--ink-rgb), 0.35); }
.vwread--red { background: var(--accent); box-shadow: none; color: var(--c-cream); }
.vwread--red .vwread__dot { background: var(--c-cream); }
.vwread--26 { height: 26px; padding: 0 12px; }
.vwmore { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 6px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ink); text-decoration: none; }
.vwmore:hover { color: var(--accent); }
.vwbullet { display: flex; align-items: baseline; gap: 12px; font-size: clamp(15px, 0.70vw, 18px); line-height: 1.5; }
.vwbullet--17 { gap: 11px; font-size: clamp(14px, 0.66vw, 17px); }
.vwbullet__dot { flex: none; width: 6px; height: 6px; border-radius: 50%; background: rgba(var(--ink-rgb), 0.4); transform: translateY(-3px); }
.vwbullet__dot--red { background: var(--accent); }
.vwbullet__dot--5 { width: 5px; height: 5px; }
.vwpill { display: inline-flex; align-items: center; gap: 9px; height: 34px; padding: 0 14px; border-radius: 999px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.18em; white-space: nowrap; }
.vwpill--red { padding: 0 16px; background: var(--accent); color: var(--c-cream); }
.vwpill--cream { background: rgba(var(--bg-rgb), 0.9); color: var(--ink); }
.vwpill--night { background: rgba(var(--c-night-rgb), 0.8); color: var(--c-cream); }
.vwalt { display: inline-flex; align-items: center; gap: 9px; height: 42px; padding: 0 17px; border: 0; border-radius: 999px; background: transparent; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2); font-family: var(--text); font-size: clamp(14px, 0.59vw, 15px); color: var(--ink); white-space: nowrap; text-decoration: none; cursor: pointer; transition: background 180ms ease-in-out, color 180ms ease-in-out, box-shadow 180ms ease-in-out; }
.vwalt:hover { box-shadow: inset 0 0 0 1px var(--accent); color: var(--accent); }
.vwalt__day { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.vwalt--46 { height: 46px; padding: 0 18px; gap: 10px; font-size: clamp(14px, 0.62vw, 16px); }
.vwalt--on { background: var(--accent); color: var(--c-cream); box-shadow: none; }
.vwalt--on .vwalt__day { color: var(--c-cream); }
.vwalt--on:hover { background: var(--ink); color: var(--bg); box-shadow: none; }
.vwalts__row { display: flex; flex-wrap: wrap; gap: 9px; }

/* --- 01 Голова: плита с полосой срока ------------------------------------------------------ */
.vwdec__when { display: flex; align-items: center; gap: 10px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.vwdec__bar { width: 70px; background: rgba(var(--accent-rgb), 0.2); }

/* --- 02 Следующий час: снимок 1930×440, три колонки, полоса действий ------------------------ */
.vwnext,
.vwweek,
.vwbook,
.vwreports,
.vwnotes,
.vwchecklist,
.vwcancelled,
.vwsecond { display: flex; flex-direction: column; gap: 22px; }
.vwweek,
.vwreports,
.vwcancelled { gap: 24px; }
.vwbook,
.vwchecklist { gap: 18px; }
.vwnotes { gap: 26px; }
.vwsecond { gap: 20px; }
.vwhero { display: flex; flex-direction: column; border-radius: 14px; overflow: hidden; background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.34); }
.vwhero__plate { position: relative; height: clamp(300px, 17.19vw, 440px); background: repeating-linear-gradient(45deg, var(--sheet) 0 6px, var(--sheet-strong) 6px 12px); }
.vwhero__pills { position: absolute; left: 26px; top: 26px; display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.vwhero__photos { position: absolute; right: 26px; top: 26px; }
.vwhero__dark { position: absolute; left: 26px; right: 26px; bottom: 26px; display: flex; align-items: flex-end; flex-wrap: wrap; gap: 20px 26px; padding: 20px 24px; border-radius: 12px; background: rgba(var(--c-night-rgb), 0.84); color: var(--c-cream); }
.vwhero__words { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.vwhero__meta { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--plate-muted); }
.vwhero__when { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px 20px; }
.vwhero__day { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(30px, 2.03vw, 52px); line-height: 1; }
.vwhero__hour { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(26px, 1.72vw, 44px); line-height: 1; color: var(--gold); }
.vwhero__cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.vwhero__col { display: flex; flex-direction: column; gap: 12px; padding: clamp(22px, 1.25vw, 32px) clamp(22px, 1.33vw, 34px); border-left: 1px solid rgba(var(--accent-rgb), 0.22); }
.vwhero__col:first-child { gap: 14px; border-left: 0; }
.vwhero__col .ssfield__label { align-items: center; }
.vwrow { display: flex; align-items: baseline; gap: 12px; font-size: clamp(14px, 0.62vw, 16px); }
.vwrow__k { flex: 0 0 clamp(80px, 4.30vw, 110px); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.vwbring { display: flex; align-items: baseline; gap: 11px; font-size: clamp(14px, 0.62vw, 16px); }
.vwbring .uodot { transform: translateY(-3px); }
.vwbring__words { display: flex; flex-direction: column; gap: 2px; }
.vwbring__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.vwhero__acts { display: flex; align-items: center; gap: 12px; padding: 24px clamp(22px, 1.33vw, 34px); border-top: 2px solid rgba(var(--accent-rgb), 0.35); }
.vwcancel { padding: 0 24px; letter-spacing: 0.22em; }
.vwhero__bar { width: 1px; height: 30px; background: rgba(var(--accent-rgb), 0.25); }
.vwhero__warn { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); text-align: right; line-height: 1.7; }

/* --- 03 Неделя: 120 + 6 колонок, клетки 56 в трёх состояниях ------------------------------ */
.vwgrid__plate { padding: 26px 28px 22px; border-radius: 14px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.vwgrid { display: grid; grid-template-columns: clamp(64px, 4.69vw, 120px) repeat(6, minmax(0, 1fr)); gap: 8px; }
.vwday { display: flex; flex-direction: column; gap: 5px; padding: 0 4px 12px; border-bottom: 2px solid var(--ink); }
.vwday--held { border-bottom-color: rgba(var(--accent-rgb), 0.4); }
.vwday__top { display: flex; align-items: baseline; gap: 9px; }
.vwday__name,
.vwday__note,
.vwday__today,
.vwday__free { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.vwday__today { color: var(--accent); }
.vwday__date { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 1.17vw, 30px); }
.vwday__free { display: flex; align-items: center; gap: 8px; white-space: nowrap; }
.vwday__free .uobar { flex: 1; }
.vwhour { display: flex; align-items: center; height: 56px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.vwhour--lunch { position: relative; }
.vwhour--lunch::after { content: ""; position: absolute; left: 0; right: -9999px; bottom: -4px; height: 1px; background: rgba(var(--ink-rgb), 0.16); pointer-events: none; }
.vwgrid { overflow: hidden; }
.vwcell { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px; height: 56px; border-radius: 10px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ink); text-decoration: none; }
.vwcell--away { background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.05), rgba(var(--ink-rgb), 0.05) 6px, transparent 6px 12px); }
.vwcell--free { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2); cursor: pointer; transition: box-shadow 180ms ease-in-out, background 180ms ease-in-out, color 180ms ease-in-out; }
.vwcell--free:hover { box-shadow: inset 0 0 0 1.5px var(--accent); background: rgba(var(--accent-rgb), 0.05); color: var(--accent); }
.vwcell__ask { display: none; letter-spacing: 0.14em; }
.g4pill__input:checked + .vwcell--free { background: var(--ink); color: var(--bg); box-shadow: none; }
.g4pill__input:checked + .vwcell--free .vwcell__free { display: none; }
.g4pill__input:checked + .vwcell--free .vwcell__ask { display: inline; }
.g4pill__input:focus-visible + .vwcell--free { outline: 2px solid var(--accent); outline-offset: 2px; }
.vwcell--held { background: var(--accent); color: var(--c-cream); }
.vwcell__sub { font-size: 12px; letter-spacing: 0.14em; text-transform: none; }
.vwlegend { display: flex; align-items: center; flex-wrap: wrap; gap: 22px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.vwlegend__item { display: inline-flex; align-items: center; gap: 9px; }
.vwlegend__sw { width: 16px; height: 16px; border-radius: 5px; }
.vwlegend__sw--held { background: var(--accent); }
.vwlegend__sw--free { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2); }
.vwlegend__sw--away { background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.14), rgba(var(--ink-rgb), 0.14) 4px, transparent 4px 8px); }

/* --- 04 Заказ часа: полоса из четырёх полей ---------------------------------------------- */
.vwbook__live { display: inline-flex; align-items: center; gap: 9px; }
.vwbook__band { display: flex; align-items: stretch; flex-wrap: wrap; gap: 0; padding: 22px 26px; border-radius: 14px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); }
.vwfield { display: flex; align-items: center; gap: 16px; padding: 0 26px; min-width: 0; }
.vwfield:first-child { padding-left: 0; }
.vwfield__words { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.vwfield__label { display: inline-flex; align-items: center; gap: 9px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.vwfield__select { font-size: clamp(16px, 0.78vw, 20px); }
.vwfield__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); white-space: nowrap; }
.vwfield__bar { width: 1px; align-self: stretch; background: rgba(var(--ink-rgb), 0.16); }
.vwbook__go { display: flex; flex-direction: column; justify-content: center; gap: 8px; padding-left: 26px; border-left: 1px solid rgba(var(--ink-rgb), 0.16); }
.vwalts { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin: 0; }
.vwalts__label { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); white-space: nowrap; }

/* --- 05 Прошлые: три строки и красная плита непрочитанного -------------------------------- */
.vwpasts { display: grid; grid-template-columns: minmax(0, 1fr) clamp(320px, 23.44vw, 600px); gap: clamp(30px, 2.73vw, 70px); align-items: start; }
.vwpasts__list { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.vwpasts__rows { display: flex; flex-direction: column; }
.vwpast { display: grid; grid-template-columns: minmax(0, 1fr) clamp(120px, 7.42vw, 190px) clamp(110px, 5.86vw, 150px); gap: 24px; align-items: center; padding: 20px 14px; margin: 0 -14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); color: var(--ink); text-decoration: none; transition: background 180ms ease-in-out; }
.vwpast:hover { background: rgba(var(--accent-rgb), 0.05); }
.vwpast__who { display: flex; align-items: center; gap: 14px; min-width: 0; }
.vwpast__words,
.vwpast__verdict { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.vwpast__home { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 1.09vw, 28px); }
.vwpast__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.vwpast__verdict { gap: 3px; font-size: clamp(14px, 0.62vw, 16px); }
.vwpast .vwread { justify-self: start; }
.vwunread { display: flex; flex-direction: column; gap: 16px; padding: 30px 32px; border-radius: 14px; background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.3); }
.vwunread__kicker { margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.vwunread__home { display: flex; flex-direction: column; gap: 5px; margin: 0; padding-bottom: 12px; border-bottom: 2px solid rgba(var(--accent-rgb), 0.35); }
.vwunread__addr { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(26px, 1.64vw, 42px); }
.vwunread__signed { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.vwunread__cta { margin-top: auto; }

/* --- 06 Отчёты: два подписанных листа ------------------------------------------------------ */
.vwreports__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; }
.vwreport { display: flex; flex-direction: column; gap: 18px; padding: clamp(22px, 1.33vw, 34px) clamp(22px, 1.41vw, 36px); border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.vwreport--red { background: rgba(var(--accent-rgb), 0.05); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.3); }
.vwreport__top { display: flex; align-items: flex-start; gap: 20px; margin: 0; }
.vwreport__id { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.vwreport__home { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(26px, 1.64vw, 42px); }
.vwreport__line,
.vwreport__pages { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); white-space: nowrap; }
.vwreport__block { display: flex; flex-direction: column; gap: 11px; padding-top: 14px; border-top: 1px solid rgba(var(--ink-rgb), 0.16); }
.vwreport__block--liked { border-top: 2px solid var(--ink); }
.vwreport__label { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.vwfaults { display: flex; flex-direction: column; gap: 8px; padding: 18px 20px; border-radius: 11px; background: rgba(var(--accent-rgb), 0.07); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.1); }
.vwfault { display: flex; align-items: baseline; gap: 12px; font-size: clamp(14px, 0.66vw, 17px); }
.vwfault__where { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); white-space: nowrap; }
.vwreport__cta { margin-top: auto; }

/* --- 07 Две записи: три колонки в одном кольце ------------------------------------------- */
.vwnotes__band { display: grid; grid-template-columns: minmax(0, 1fr) clamp(260px, 16.41vw, 420px) minmax(0, 1fr); border-radius: 14px; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.vwnotes__yours,
.vwnotes__differ,
.vwnotes__hers { display: flex; flex-direction: column; gap: 14px; padding: clamp(22px, 1.25vw, 32px) clamp(22px, 1.33vw, 34px); min-width: 0; }
.vwnotes__yours { background: var(--modal-bg); }
.vwnotes__differ { padding: clamp(22px, 1.25vw, 32px) clamp(22px, 1.17vw, 30px); background: rgba(var(--accent-rgb), 0.06); border-left: 1px solid rgba(var(--ink-rgb), 0.14); }
.vwnotes__hers { background: var(--modal-field); }
.vwnotes__edit { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); text-decoration: none; }
.vwnotes__edit:hover { color: var(--ink); }
.vwnotes__foot { margin-top: auto; padding-top: 12px; border-top: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.vwdiff { display: flex; flex-direction: column; gap: 4px; padding-bottom: 12px; border-bottom: 1px solid rgba(var(--accent-rgb), 0.22); }
.vwdiff__what { font-size: clamp(15px, 0.70vw, 18px); line-height: 1.45; }
.vwdiff__counter { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.vwnotes__ask { margin-top: auto; }
.vwlink--ink { color: var(--muted); }

/* --- 08 Список: два столбца галочек и «Keep it» ------------------------------------------- */
.vwcheck__band { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)) clamp(200px, 11.72vw, 300px); border-radius: 14px; overflow: hidden; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); }
.vwcheck__col { display: flex; flex-direction: column; gap: 11px; padding: 26px 28px; border-left: 1px solid rgba(var(--ink-rgb), 0.14); }
.vwcheck__col:first-child { border-left: 0; }
.vwcheck { position: relative; display: flex; align-items: center; gap: 13px; cursor: pointer; }
.vwcheck__box { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 22px; height: 22px; border-radius: 7px; box-shadow: inset 0 0 0 1.5px rgba(var(--ink-rgb), 0.28); color: transparent; font-size: 12px; transition: background 180ms ease-in-out, color 180ms ease-in-out; }
.vwcheck__text { font-size: clamp(15px, 0.70vw, 18px); transition: color 180ms ease-in-out; }
.ssonly__input:checked ~ .vwcheck__box { background: var(--accent); box-shadow: none; color: var(--c-cream); }
.ssonly__input:checked ~ .vwcheck__text { color: var(--muted); text-decoration: line-through; }
.ssonly__input:focus-visible ~ .vwcheck__box { outline: 2px solid var(--accent); outline-offset: 3px; }
.vwcheck__keep { display: flex; flex-direction: column; gap: 10px; padding: 26px 28px; background: var(--modal-field); border-left: 1px solid rgba(var(--ink-rgb), 0.14); }
.vwcheck__saved { margin-top: auto; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }

/* --- 09 Перенесённые: три карточки со штампом ---------------------------------------------- */
.vwcancelled__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.vwmoved { position: relative; display: flex; flex-direction: column; gap: 14px; padding: 30px 32px; border-radius: 12px; overflow: hidden; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.vwmoved--red { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.3); }
.vwstamp { position: absolute; top: 22px; right: -14px; display: inline-flex; align-items: center; height: 30px; padding: 0 30px; background: rgba(var(--ink-rgb), 0.12); transform: rotate(3deg); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.vwstamp--red { background: var(--accent); color: var(--c-cream); }
.vwmoved__who { display: flex; flex-direction: column; gap: 5px; margin: 0; padding-bottom: 12px; border-bottom: 2px solid var(--ink); }
.vwmoved--red .vwmoved__who { border-bottom-color: rgba(var(--accent-rgb), 0.35); }
.vwmoved__home { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.41vw, 36px); }
.vwmoved__measure,
.vwmoved__waslabel { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.vwmoved__was { display: flex; flex-direction: column; gap: 5px; margin: 0; }
.vwmoved__hour { font-size: clamp(15px, 0.74vw, 19px); color: var(--muted); }
.vwmoved__by { margin: 0; }
.vwmoved__why { margin: 0; font-size: clamp(15px, 0.70vw, 18px); line-height: 1.5; }
.vwmoved__rows { padding-top: 12px; border-top: 1px solid rgba(var(--ink-rgb), 0.16); }
.vwmoved--red .vwmoved__rows .uoledger__v:last-child { color: inherit; }
.vwmoved__cta { margin-top: auto; }

/* --- 10 Второй просмотр: красная полоса и две строки -------------------------------------- */
.vwsecond__band { display: flex; align-items: center; flex-wrap: wrap; gap: 20px 26px; padding: 26px 30px; border-radius: 14px; background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.3); }
.vwsecond__words { display: flex; flex-direction: column; gap: 6px; min-width: 0; max-width: 60ch; }
.vwsecond__why { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.vwsecond__addr { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.48vw, 38px); }
.vwsecond__hours { display: flex; flex-direction: column; gap: 5px; text-align: right; }
.vwsecond__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.vwsecond__list { font-size: clamp(15px, 0.70vw, 18px); white-space: nowrap; }
.vwsecond__rows { display: flex; flex-direction: column; }
.vwsecond__row { display: grid; grid-template-columns: minmax(0, 1fr) clamp(140px, 9.38vw, 240px) clamp(110px, 6.25vw, 160px); gap: 24px; align-items: center; padding: 18px 14px; margin: 0 -14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); transition: background 180ms ease-in-out; }
.vwsecond__row:hover { background: rgba(var(--accent-rgb), 0.05); }
.vwsecond__who { display: flex; align-items: baseline; flex-wrap: wrap; gap: 6px 14px; min-width: 0; }
.vwsecond__home { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 1.09vw, 28px); }

/* --- 11 Советник: её свободные часы и подпись ---------------------------------------------- */
.vwadvisor { grid-template-columns: minmax(0, 1fr) clamp(340px, 27.34vw, 700px); }
.vwadvisor .ssadvisor__words { gap: 18px; padding: clamp(22px, 1.48vw, 38px) clamp(22px, 1.56vw, 40px); }
.vwadvisor__state { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.vwadvisor__name { font-size: clamp(22px, 1.25vw, 32px); }
.vwadvisor__title { font-size: clamp(30px, 2.27vw, 58px); }
.vwadvisor__text { font-size: clamp(15px, 0.78vw, 20px); color: var(--ink); }
.vwadvisor .ssadvisor__facts .uoledger__row { gap: 14px; font-size: clamp(15px, 0.70vw, 18px); }
.vwadvisor .ssadvisor__facts .ssbig { font-size: clamp(20px, 1.09vw, 28px); }
.vwadvisor__book { gap: 16px; padding: clamp(22px, 1.48vw, 38px) clamp(22px, 1.56vw, 40px); }
.vwadvisor__quote { padding-top: 14px; border-top: 2px solid var(--ink); }
.vwadvisor .vwsig { padding-top: 0; border-top: 0; }
.vwadvisor .vwsig__name { color: var(--ink); }


/* ==========================================================================
   87. Viewings — адаптив
   ========================================================================== */
@media (max-width: 1680px) {
  .vwpasts { grid-template-columns: minmax(0, 1fr); }
  .vwcancelled__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vwnotes__band { grid-template-columns: minmax(0, 1fr) clamp(240px, 13.28vw, 340px) minmax(0, 1fr); }
  .vwadvisor { grid-template-columns: minmax(0, 1fr) clamp(300px, 20.31vw, 520px); }
}

@media (max-width: 1400px) {
  .vwbook__band { gap: 16px 0; }
  .vwbook__go { flex-basis: 100%; padding: 16px 0 0; border-left: 0; border-top: 1px solid rgba(var(--ink-rgb), 0.16); }
}

@media (max-width: 1100px) {
  .vwhero__cols,
  .vwreports__grid,
  .vwnotes__band,
  .vwcancelled__grid,
  .vwadvisor { grid-template-columns: minmax(0, 1fr); }
  .vwhero__col { border-left: 0; border-top: 1px solid rgba(var(--accent-rgb), 0.22); }
  .vwnotes__differ,
  .vwcheck__col,
  .vwcheck__keep { border-left: 0; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
  .vwcheck__band { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vwcheck__keep { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; align-items: center; }
  .vwcheck__saved { margin: 0; flex-basis: 100%; }
  .vwhero__acts { flex-wrap: wrap; }
  .vwhero__warn { flex-basis: 100%; text-align: left; }
  .vwhero__bar { display: none; }
  .vwfield { flex: 1 1 40%; padding: 0; }
  .vwfield__bar { display: none; }
  .vwbook__band { gap: 18px 26px; }
  .vwpast { grid-template-columns: minmax(0, 1fr) auto; gap: 10px 20px; }
  .vwpast__verdict { grid-column: 1; }
  .vwpast .vwread { grid-column: 2; grid-row: 1; }
  .vwsecond__row { grid-template-columns: minmax(0, 1fr) auto; gap: 8px 20px; }
  .vwsecond__row .vwsecond__sub { grid-column: 1; }
  .vwsecond__row .uolink { grid-column: 2; grid-row: 1 / span 2; }
  .vwsecond__hours { text-align: left; }
  .vwgrid { grid-template-columns: clamp(64px, 4.69vw, 120px) repeat(6, minmax(0, 1fr)); gap: 6px; }
  .vwday__note { display: none; }
  .vwday__free { flex-direction: column; align-items: stretch; gap: 4px; }
  .vwcell__sub { display: none; }
  .vwday__top { flex-wrap: wrap; gap: 4px 8px; }
}

@media (max-width: 760px) {
  /* Неделя: шесть столбцов дней из пилюль часов (вариант 3A) */
  .vwgrid__plate { min-width: 0; padding: 18px 16px; overflow-x: auto; }
  .vwgrid { grid-template-columns: 52px repeat(6, minmax(72px, 1fr)); gap: 6px; min-width: 520px; }
  .vwhour { height: 46px; font-size: 12px; letter-spacing: 0.1em; }
  .vwcell { height: 46px; border-radius: 999px; }
  .vwcell--free { font-size: 12px; letter-spacing: 0.1em; }
  .vwday { padding: 0 0 8px; }
  .vwday__date { font-size: 20px; }
  .vwhour--lunch::after { display: none; }
}

@media (max-width: 640px) {
  .vwhero__pills,
  .vwhero__photos { position: static; }
  .vwhero__plate { display: flex; flex-direction: column; gap: 10px; height: auto; min-height: 0; padding: 16px; }
  .vwhero__plate .uophoto { position: static; width: 100%; height: auto; aspect-ratio: 16 / 9; border-radius: 8px; }
  .vwhero__plate .sdinner { display: none; }
  .vwhero__dark { position: static; }
  .vwhero__acts .uopill,
  .vwbook__go .uopill,
  .vwsecond__band .uopill { width: 100%; }
  .vwbook__go { display: flex; }
  .vwfield { flex-basis: 100%; }
  .vwcheck__band { grid-template-columns: minmax(0, 1fr); }
  .vwcheck__keep .uopill { flex: 1; }
  .vwsig { flex-wrap: wrap; }
  .vwfault { flex-wrap: wrap; }
  .vwfault .uoledger__lead { display: none; }
  .vwfault__where { white-space: normal; }
  .vwpill { white-space: normal; height: auto; min-height: 34px; padding-top: 6px; padding-bottom: 6px; }
  .vwsecond__band { padding: 20px; }
  .vwsecond__list { white-space: normal; }
  .vwmoved { padding: 26px 22px; }
  .vwstamp { top: 14px; }
  .vwreport__top { flex-wrap: wrap; }
  .vwlegend { gap: 12px; }
  .vwfield__sub,
  .vwreport__line,
  .vwreport__pages,
  .vwfault__where,
  .vwalt,
  .vwhero__meta { white-space: normal; }
  .vwpast__who { flex-wrap: wrap; }
  .vwreport__top { flex-direction: column; gap: 8px; }
  .vwhero__dark { padding: 16px; }
}

/* ==========================================================================
   88. Messages — тред, люди и одна машина, файлы, обещания в письме
   ========================================================================== */
.mxw-61 { width: 61%; }
.mxw-100 { width: 100%; }
.uoav--40 { width: 40px; height: 40px; }
.uoav--60 { width: 60px; height: 60px; }
.uoav--72 { width: 72px; height: 72px; }
.mxmono { display: inline-flex; align-items: center; justify-content: center; flex: none; border-radius: 50%; }
.mxmono--ink { background: var(--ink); color: var(--bg); font-family: var(--display); font-size: 19px; }
.mxmono--org { background: rgba(var(--ink-rgb), 0.07); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.12em; color: var(--muted); }
.mxmono--av { overflow: hidden; background: var(--c-night); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2); }
.mxmono--av img { display: block; width: 100%; height: 100%; }
.mxmono--40 { width: 40px; height: 40px; font-size: 16px; }
.mxmono--44 { width: 44px; height: 44px; }
.mxmono--48 { width: 48px; height: 48px; }
.mxmono--52 { width: 52px; height: 52px; }
.mxmono--56 { width: 56px; height: 56px; }
.mxmono--64 { width: 64px; height: 64px; font-size: 24px; }
.mxpill { display: inline-flex; align-items: center; gap: 9px; height: 28px; padding: 0 13px; border-radius: 999px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); white-space: nowrap; }
.mxpill--red,
.mxpill--overdue { background: var(--accent); color: var(--c-cream); }
.mxpill--tint { background: rgba(var(--accent-rgb), 0.14); color: var(--accent); }
.mxpill--kept { height: 30px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22); }
.mxpill--pending { height: 30px; box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.34); color: var(--accent); }
.mxpill--overdue { height: 30px; }
.mxpill__dot { width: 5px; height: 5px; border-radius: 50%; background: currentColor; opacity: 0.6; }
.mxnew { display: inline-flex; align-items: center; height: 20px; padding: 0 9px; border-radius: 999px; background: var(--accent); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.18em; color: var(--c-cream); }
.mxnew--22 { height: 22px; padding: 0 10px; }
.mxdisc { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: var(--accent); font-family: var(--mono); font-size: 12px; color: var(--c-cream); }
.mxfile { display: flex; align-items: center; gap: 13px; padding: 14px 16px; margin: 0 -16px; border-radius: 10px; color: var(--ink); text-decoration: none; transition: background 180ms ease-in-out; }
.mxfile:hover { background: rgba(var(--accent-rgb), 0.06); }
.mxfile--attach { margin: 0; padding: 13px 18px; background: var(--bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.mxfile--attach:hover { background: rgba(var(--accent-rgb), 0.07); }
.mxfile__icon { flex: none; width: 15px; height: 19px; border: 1px solid rgba(var(--ink-rgb), 0.45); border-radius: 2px; }
.mxfile__icon--sm { width: 12px; height: 15px; border-color: currentColor; }
.mxfile__words { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.mxfile__name { font-size: clamp(15px, 0.66vw, 17px); }
.mxfile__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.mxfile__open { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.vwread--30 { height: 30px; padding: 0 13px; }

/* --- 01 Голова: красная плита с двумя строками и пять цифр ------------------------------- */
.mxdec { display: flex; flex-direction: column; gap: 14px; padding: 28px 30px; border-radius: 12px; background: rgba(var(--accent-rgb), 0.07); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.34); color: var(--ink); text-decoration: none; transition: transform 220ms ease-in-out, box-shadow 220ms ease-in-out, background 220ms ease-in-out; }
.mxdec:hover { transform: translateY(-4px); box-shadow: inset 0 0 0 1.5px rgba(var(--accent-rgb), 0.5), 0 22px 46px rgba(var(--shadow-warm-rgb), 0.1); }
.mxdec__top { display: flex; align-items: center; gap: 16px; }
.mxdec__words { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.mxdec__kicker { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.mxdec__title { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.25vw, 32px); }
.mxdec__rows { display: flex; flex-direction: column; gap: 9px; padding-top: 12px; border-top: 1px solid rgba(var(--accent-rgb), 0.28); }
.mxdec__row { display: flex; align-items: baseline; gap: 12px; font-size: clamp(14px, 0.66vw, 17px); }
.mxdec__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); white-space: nowrap; }
.mxdec__see { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.mxfigs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(16px, 1.33vw, 34px); padding-top: 18px; border-top: 2px solid var(--ink); }
.mxfig { display: flex; flex-direction: column; gap: 9px; }
.mxfig__label,
.mxfig__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.mxfig__value { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(28px, 1.95vw, 50px); white-space: nowrap; }

/* --- 02 Ждут вас: две красные карточки ---------------------------------------------------- */
.mxwaiting,
.mxthread,
.mxthreads,
.mxbyhome,
.mxquestions,
.mxfiles,
.mxpromises,
.mxhours { display: flex; flex-direction: column; gap: 24px; }
.mxbyhome,
.mxquestions,
.mxfiles { gap: 22px; }
.mxsystem { display: flex; flex-direction: column; gap: 20px; }
.mxwaiting__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; }
.mxwait { display: flex; flex-direction: column; gap: 16px; padding: clamp(22px, 1.25vw, 32px) clamp(22px, 1.33vw, 34px); border-radius: 12px; background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); transition: transform 220ms ease-in-out, box-shadow 220ms ease-in-out, background 220ms ease-in-out; }
.mxwait:hover { transform: translateY(-5px); box-shadow: inset 0 0 0 1.5px rgba(var(--accent-rgb), 0.5), 0 24px 50px rgba(var(--shadow-warm-rgb), 0.11); }
.mxwait__top { display: flex; align-items: flex-start; gap: 16px; margin: 0; }
.mxwait__words { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.mxwait__kicker { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.mxwait__name { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.48vw, 38px); }
.mxwait__role,
.mxwait__aboutlabel,
.mxwait__written { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.mxwait__about { display: flex; flex-direction: column; gap: 6px; margin: 0; padding-top: 14px; border-top: 2px solid rgba(var(--accent-rgb), 0.35); }
.mxwait__home { font-size: clamp(15px, 0.74vw, 19px); }
.mxwait__quote { font-size: clamp(18px, 1.05vw, 27px); }
.mxwait__rows { padding-top: 14px; border-top: 1px solid rgba(var(--accent-rgb), 0.25); }
.mxwait__rows .uoledger__row { font-size: clamp(14px, 0.66vw, 17px); }
.mxwait__acts { display: flex; align-items: center; gap: 14px; margin: auto 0 0; }
.mxwait__written { text-align: right; line-height: 1.7; white-space: nowrap; }

/* --- 03 Тред: голова, письма с квитанциями, ответ --------------------------------------- */
.mxthread__head { display: flex; align-items: center; flex-wrap: wrap; gap: 20px; padding: 20px 26px; border-radius: 12px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); }
.mxthread__who { display: flex; flex-direction: column; gap: 4px; }
.mxthread__name { font-size: clamp(16px, 0.78vw, 20px); }
.mxthread__state { display: inline-flex; align-items: center; gap: 9px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.mxthread__bar { width: 1px; height: 38px; background: rgba(var(--ink-rgb), 0.16); }
.mxthread__fig { display: flex; flex-direction: column; gap: 4px; }
.mxthread__figlabel { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.mxthread__figvalue { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 1.02vw, 26px); }
.mxthread__about { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); text-align: right; }
.sdchip--46 { height: 46px; padding: 0 20px; letter-spacing: 0.22em; color: var(--ink); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); text-decoration: none; }
.sdchip--48 { height: 48px; padding: 0 22px; letter-spacing: 0.22em; color: var(--ink); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); text-decoration: none; }
.mxletters { display: flex; flex-direction: column; gap: 26px; padding: clamp(22px, 1.33vw, 34px) clamp(18px, 1.41vw, 36px); border-radius: 14px; background: var(--bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.mxletters__top { display: flex; align-items: center; gap: 18px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.mxday { display: flex; align-items: center; gap: 16px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.mxday__line { flex: 1; height: 1px; background: rgba(var(--ink-rgb), 0.14); }
.mxday--unread { color: var(--accent); }
.mxday--unread .mxday__line { background: rgba(var(--accent-rgb), 0.35); }
.mxmsg { display: flex; align-items: flex-start; gap: 16px; }
.mxmsg--mine { flex-direction: row-reverse; }
.mxmsg__body { display: flex; flex-direction: column; align-items: flex-start; gap: 7px; max-width: 76%; min-width: 0; }
.mxmsg--mine .mxmsg__body { align-items: flex-end; }
.mxmsg__meta { display: flex; align-items: center; gap: 12px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.uobar-v--9 { height: 9px; }
.mxbubble { display: block; padding: 22px 26px; border-radius: 14px 14px 14px 4px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); font-size: clamp(15px, 0.74vw, 19px); line-height: 1.6; }
.mxmsg--mine .mxbubble { border-radius: 14px 14px 4px 14px; background: var(--modal-bg); }
.mxmsg--unread .mxbubble { padding-top: 18px; background: rgba(var(--accent-rgb), 0.07); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.mxquote { display: flex; flex-direction: column; gap: 4px; margin: 0 0 14px; padding: 12px 16px; border-left: 2px solid var(--accent); border-radius: 9px; background: rgba(var(--ink-rgb), 0.04); }
.mxquote__who { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.mxquote__text { font-size: clamp(14px, 0.66vw, 17px); line-height: 1.5; color: var(--muted); }
.mxmsg__files { display: flex; flex-direction: column; gap: 7px; width: 100%; }
.mxmsg__receipt { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.mxcomposer { display: flex; flex-direction: column; gap: 12px; padding: 26px 28px; border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.mxquicks { display: flex; flex-wrap: wrap; gap: 9px; margin: 0; }
.mxquick { display: inline-flex; align-items: center; height: 42px; padding: 0 18px; border: 0; border-radius: 999px; background: transparent; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2); font-family: var(--text); font-size: clamp(14px, 0.62vw, 16px); color: var(--ink); white-space: nowrap; cursor: pointer; transition: background 180ms ease-in-out, color 180ms ease-in-out, box-shadow 180ms ease-in-out; }
.mxquick:hover { background: rgba(var(--accent-rgb), 0.08); color: var(--accent); }
.mxquick--on { background: rgba(var(--accent-rgb), 0.1); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.34); color: var(--accent); }
.mxdraft { display: block; width: 100%; min-height: 128px; box-sizing: border-box; padding: 20px 22px; border: 0; border-radius: 10px; background: var(--bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); font-family: var(--text); font-size: clamp(15px, 0.74vw, 19px); line-height: 1.6; color: var(--ink); resize: vertical; caret-color: var(--accent); }
.mxdraft:focus { outline: none; box-shadow: inset 0 0 0 1.5px var(--accent); }
.mxcomposer__acts { display: flex; align-items: center; gap: 12px; margin: 0; }
.mxattach { gap: 10px; }
.mxcomposer__foot { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }

/* --- 04 Все треды: четыре карточки и полоса машины --------------------------------------- */
.mxthreads__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.mxthreadcard { display: flex; flex-direction: column; gap: 13px; padding: 28px 30px; border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); color: var(--ink); text-decoration: none; transition: transform 220ms ease-in-out, box-shadow 220ms ease-in-out, background 220ms ease-in-out; }
.mxthreadcard:hover { transform: translateY(-5px); box-shadow: inset 0 0 0 1.5px rgba(var(--ink-rgb), 0.24), 0 24px 50px rgba(var(--shadow-warm-rgb), 0.11); }
.mxthreadcard--red { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.mxthreadcard--red:hover { box-shadow: inset 0 0 0 1.5px rgba(var(--accent-rgb), 0.5), 0 24px 50px rgba(var(--shadow-warm-rgb), 0.11); }
.mxthreadcard__top { display: flex; align-items: flex-start; gap: 14px; }
.mxthreadcard__who { display: flex; flex-direction: column; gap: 5px; padding-bottom: 12px; border-bottom: 2px solid var(--ink); }
.mxthreadcard--red .mxthreadcard__who { border-bottom-color: rgba(var(--accent-rgb), 0.35); }
.mxthreadcard__name { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.17vw, 30px); }
.mxthreadcard__role { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.mxthreadcard__foot { display: flex; flex-direction: column; gap: 7px; margin-top: auto; padding-top: 14px; border-top: 1px solid rgba(var(--ink-rgb), 0.16); }
.mxthreadcard__open { display: inline-flex; align-items: center; gap: 8px; margin-top: 4px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); text-decoration: none; }
.mxsystemrow { display: flex; align-items: center; flex-wrap: wrap; gap: 20px; padding: 22px 28px; border-radius: 12px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); color: var(--ink); text-decoration: none; transition: background 180ms ease-in-out; }
.mxsystemrow:hover { background: rgba(var(--accent-rgb), 0.05); }
.mxsystemrow__words { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.mxsystemrow__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.mxsystemrow__text { font-size: clamp(15px, 0.74vw, 19px); }

/* --- 05 По домам: вкладки-адреса и полоса 1fr/520 ------------------------------------------ */
.mxtabs { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; }
.mxtab { display: inline-flex; align-items: center; gap: 12px; height: 52px; padding: 0 22px; border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2); font-size: clamp(15px, 0.66vw, 17px); color: var(--ink); white-space: nowrap; cursor: pointer; transition: background 180ms ease-in-out, color 180ms ease-in-out, box-shadow 180ms ease-in-out; }
.mxtab:hover { box-shadow: inset 0 0 0 1px var(--accent); color: var(--accent); }
.mxtab__n { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.18em; color: var(--muted); }
.mxtab__badge { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 50%; background: var(--c-cream); font-family: var(--mono); font-size: 12px; color: var(--accent); }
.g4pill__input:checked + .mxtab { background: var(--accent); color: var(--c-cream); box-shadow: none; }
.g4pill__input:checked + .mxtab .mxtab__n { color: var(--c-cream); }
.g4pill__input:focus-visible + .mxtab { outline: 2px solid var(--accent); outline-offset: 3px; }
.mxhome { display: grid; grid-template-columns: minmax(0, 1fr) clamp(300px, 20.31vw, 520px); border-radius: 14px; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.3); }
.mxhome__letters { display: flex; flex-direction: column; gap: 16px; padding: clamp(22px, 1.25vw, 32px) clamp(22px, 1.33vw, 34px); background: rgba(var(--accent-rgb), 0.05); min-width: 0; }
.mxhome__top { display: flex; align-items: center; gap: 16px; margin: 0; }
.mxthumb--110 { width: 110px; height: 80px; border-radius: 10px; }
.mxhome__words { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.mxhome__kicker { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.mxhome__addr { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(26px, 1.64vw, 42px); }
.mxhome__measure { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.mxhome__list { display: flex; flex-direction: column; gap: 10px; padding-top: 12px; border-top: 2px solid rgba(var(--accent-rgb), 0.35); }
.mxhl { display: flex; flex-direction: column; gap: 4px; padding-bottom: 10px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.mxhl__top { display: flex; align-items: baseline; gap: 12px; }
.mxhl__who { font-size: clamp(15px, 0.70vw, 18px); }
.mxhl__when { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.mxhl__quote { font-size: clamp(16px, 0.82vw, 21px); }
.mxhome__all { margin-top: auto; }
.mxhome__files { display: flex; flex-direction: column; gap: 14px; padding: clamp(22px, 1.25vw, 32px) clamp(22px, 1.17vw, 30px); background: var(--modal-field); border-left: 1px solid rgba(var(--ink-rgb), 0.14); }
.mxhome__facts { display: flex; flex-direction: column; gap: 8px; padding-top: 14px; border-top: 2px solid var(--ink); }
.mxhome__fact { display: flex; flex-direction: column; gap: 3px; }
.mxhome__factk { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.mxhome__factv { font-size: clamp(14px, 0.66vw, 17px); }
.mxhome__cta { margin-top: auto; }

/* --- 06 Публичные вопросы: гроссбух в пять колонок ---------------------------------------- */
.mxqs { display: flex; flex-direction: column; }
.mxqs__head,
.mxq { display: grid; grid-template-columns: 70px minmax(0, 1.4fr) clamp(150px, 9.77vw, 250px) minmax(0, 1fr) clamp(130px, 7.81vw, 200px); gap: 24px; align-items: start; }
.mxqs__head { margin: 0; padding-bottom: 12px; border-bottom: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.mxqs__right { text-align: right; }
.mxq { padding: 24px 14px; margin: 0 -14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); transition: background 180ms ease-in-out; }
.mxq:hover { background: rgba(var(--accent-rgb), 0.05); }
.mxq__no,
.mxq__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.mxq__what,
.mxq__answer { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.mxq__text { font-family: var(--display); font-size: clamp(18px, 0.98vw, 25px); line-height: 1.4; }
.mxq__none { font-size: clamp(15px, 0.70vw, 18px); line-height: 1.5; color: var(--accent); }
.mxq__standing { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; text-align: right; }
.mxq__page { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); text-decoration: none; }
.vwquote--21 { font-size: clamp(16px, 0.82vw, 21px); }

/* --- 07 Файлы: итоги, фильтры, гроссбух с нарисованным листом --------------------------- */
.mxtotals { display: flex; align-items: center; flex-wrap: wrap; gap: 0; margin: 0; padding: 20px 26px; border-radius: 12px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); }
.mxtotal { display: flex; flex-direction: column; gap: 5px; }
.mxtotal__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.mxtotal__v { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.25vw, 32px); white-space: nowrap; }
.mxtotal__bar { width: 1px; height: 40px; margin: 0 clamp(14px, 1.09vw, 28px); background: rgba(var(--ink-rgb), 0.16); }
.mxfilter { gap: 10px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.22em; }
.mxfilter__n { font-family: var(--mono); font-size: 12px; letter-spacing: 0.14em; color: var(--muted); }
.g4pill__input:checked + .mxfilter { background: var(--accent); color: var(--c-cream); }
.g4pill__input:checked + .mxfilter .mxfilter__n { color: var(--c-cream); }
.mxftable { display: flex; flex-direction: column; }
.mxftable__head,
.mxfrow { display: grid; grid-template-columns: 56px 70px minmax(0, 1.25fr) clamp(150px, 9.77vw, 250px) clamp(140px, 8.98vw, 230px) clamp(100px, 5.86vw, 150px) clamp(90px, 5.08vw, 130px); gap: 22px; align-items: center; }
.mxftable__head { margin: 0; padding-bottom: 12px; border-bottom: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.mxfrow { padding: 20px 14px; margin: 0 -14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); color: var(--ink); text-decoration: none; transition: background 180ms ease-in-out; }
.mxfrow:hover { background: rgba(var(--accent-rgb), 0.05); }
.mxfrow--red { background: rgba(var(--accent-rgb), 0.04); }
.mxfrow[hidden] { display: none; }
.mxfrow__no,
.mxfrow__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.mxsheet { position: relative; display: block; width: 44px; height: 56px; border-radius: 3px; background: var(--c-paper); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.28); }
.mxsheet--red { box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.4); }
.mxsheet__fold { position: absolute; top: 0; right: 0; width: 13px; height: 13px; background: rgba(var(--ink-rgb), 0.1); border-left: 1px solid rgba(var(--ink-rgb), 0.28); border-bottom: 1px solid rgba(var(--ink-rgb), 0.28); }
.mxsheet--red .mxsheet__fold { background: rgba(var(--accent-rgb), 0.18); border-color: rgba(var(--accent-rgb), 0.4); }
.mxsheet__rule { position: absolute; left: 8px; right: 8px; height: 1px; background: rgba(var(--c-ink-fixed-rgb), 0.2); }
.mxsheet__rule:nth-child(2) { top: 22px; }
.mxsheet__rule:nth-child(3) { top: 29px; }
.mxsheet__rule:nth-child(4) { top: 36px; }
.mxsheet__rule:nth-child(5) { top: 43px; }
.mxsheet__n { position: absolute; bottom: 4px; left: 0; right: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.06em; text-align: center; color: var(--c-clay); }
.mxsheet--red .mxsheet__n { color: var(--c-red); }
.mxfrow__file,
.mxfrow__cell { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.mxfrow__name { display: flex; align-items: baseline; flex-wrap: wrap; gap: 11px; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 1.09vw, 28px); }
.mxfrow__main { font-size: clamp(14px, 0.66vw, 17px); }
.mxfrow__pages { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; text-align: right; }
.mxfrow__pages .mxfrow__main { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 1.02vw, 26px); }
.mxfrow__open { display: inline-flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }

/* --- 08 Обещания: рельс с узлами и карточки ---------------------------------------------- */
.mxrail { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 26px; }
.mxrail__seg { position: relative; }
.mxrail__seg::before { content: ""; position: absolute; left: 10px; top: 0; bottom: -26px; width: 1px; background: rgba(var(--ink-rgb), 0.2); }
.mxrail__seg:nth-last-child(2)::before { bottom: 0; }
.mxrail__node { position: absolute; left: 5px; top: 34px; width: 12px; height: 12px; border-radius: 50%; }
.mxrail__node--kept { background: rgba(var(--ink-rgb), 0.4); }
.mxrail__node--overdue { background: var(--accent); }
.mxrail__node--pending { box-shadow: inset 0 0 0 1.5px var(--accent); }
.mxpromise { display: flex; flex-direction: column; gap: 12px; padding: 26px 30px; border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); transition: transform 220ms ease-in-out; }
.mxpromise:hover { transform: translateX(5px); }
.mxpromise--red { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.mxpromise__top { display: flex; align-items: center; gap: 14px; margin: 0; }
.mxpromise__due { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.mxpromise__foot { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin: 0; padding-top: 14px; border-top: 1px solid rgba(var(--ink-rgb), 0.16); }
.mxpromise__result { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; text-align: right; }
.mxpromise__what { font-size: clamp(14px, 0.66vw, 17px); }
.mxpromise__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }

/* --- 09 Когда писать: её часы слева, ваша сторона справа ---------------------------------- */
.mxhours__band { display: grid; grid-template-columns: minmax(0, 1fr) clamp(320px, 24.22vw, 620px); border-radius: 14px; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.mxhours__hers { display: flex; flex-direction: column; gap: 18px; padding: clamp(22px, 1.33vw, 34px) clamp(22px, 1.41vw, 36px); background: var(--modal-bg); min-width: 0; }
.mxhours__who { display: flex; align-items: center; gap: 16px; margin: 0; }
.mxhours__words { display: flex; flex-direction: column; gap: 5px; }
.mxhours__state { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.mxhours__name { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.41vw, 36px); }
.mxhours__line { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.mxweek { display: flex; gap: 10px; padding-top: 16px; border-top: 2px solid var(--ink); }
.mxwday { display: flex; flex: 1; flex-direction: column; align-items: center; gap: 8px; min-width: 0; }
.mxwday__cell { display: flex; align-items: center; justify-content: center; width: 100%; height: 56px; border-radius: 10px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ink); }
.mxwday__cell--open { background: rgba(var(--accent-rgb), 0.1); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.3); }
.mxwday__cell--closed { background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.05), rgba(var(--ink-rgb), 0.05) 6px, transparent 6px 12px); color: var(--muted); }
.mxwday__name,
.mxwday__end { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.mxwday__name { color: var(--ink); }
.mxwday__name--muted { color: var(--muted); }
.mxhrules { display: flex; flex-direction: column; gap: 9px; padding-top: 14px; border-top: 1px solid rgba(var(--ink-rgb), 0.16); }
.mxhrule { display: flex; align-items: baseline; gap: 12px; font-size: clamp(15px, 0.70vw, 18px); }
.mxhrule__k { flex: none; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); white-space: nowrap; }
.mxphone { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; margin: auto 0 0; padding: 20px 24px; border-radius: 11px; background: rgba(var(--accent-rgb), 0.07); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.3); }
.mxphone__words { display: flex; flex-direction: column; gap: 4px; }
.mxphone__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.mxphone__n { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.25vw, 32px); }
.mxphone__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.mxhours__yours { display: flex; flex-direction: column; gap: 16px; padding: clamp(22px, 1.33vw, 34px) clamp(22px, 1.41vw, 36px); background: var(--modal-field); border-left: 1px solid rgba(var(--ink-rgb), 0.14); }
.mxyours { display: flex; flex-direction: column; }
.mxyours__row { display: flex; align-items: center; gap: 18px; padding: 14px 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.mxyours__words { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.mxyours__title { font-size: clamp(15px, 0.74vw, 19px); }
.mxyours__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.mxhours__quote { margin-top: auto; padding-top: 14px; border-top: 2px solid var(--ink); }

/* --- 10 Письма системы: штрихованная полоса и три строки ----------------------------------- */
.mxmachine { display: flex; align-items: center; flex-wrap: wrap; gap: 26px; padding: 22px 26px; border-radius: 12px; background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.035), rgba(var(--ink-rgb), 0.035) 8px, transparent 8px 16px); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.mxmachine__words { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.mxmachine__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.mxmachine__text { font-size: clamp(15px, 0.74vw, 19px); }
.mxsysrows { display: flex; flex-direction: column; }
.mxsysrow { display: grid; grid-template-columns: clamp(110px, 6.64vw, 170px) minmax(0, 1fr) clamp(110px, 6.64vw, 170px); gap: 22px; align-items: center; padding: 17px 14px; margin: 0 -14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); color: var(--ink); text-decoration: none; transition: background 180ms ease-in-out; }
.mxsysrow:hover { background: rgba(var(--accent-rgb), 0.05); }
.mxsysrow__kind,
.mxsysrow__when { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.mxsysrow__text { font-size: clamp(15px, 0.70vw, 18px); }

/* --- 11 Советник: медиана 104 и её линия -------------------------------------------------- */
.mxadv { display: grid; grid-template-columns: clamp(300px, 20.31vw, 520px) minmax(0, 1fr); border-radius: 14px; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.3); }
.mxadv__median { display: flex; flex-direction: column; gap: 12px; padding: clamp(22px, 1.48vw, 38px) clamp(22px, 1.56vw, 40px); background: rgba(var(--accent-rgb), 0.07); }
.mxadv__kicker { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.mxadv__big { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(52px, 4.06vw, 104px); color: var(--accent); }
.mxadv__to { margin: 0; padding-top: 12px; border-top: 2px solid rgba(var(--accent-rgb), 0.35); font-size: clamp(16px, 0.86vw, 22px); line-height: 1.5; }
.mxadv__to strong { font-weight: 500; }
.mxadv__facts { display: flex; flex-direction: column; gap: 8px; margin-top: auto; padding-top: 14px; border-top: 1px solid rgba(var(--accent-rgb), 0.25); }
.mxadv__fact { display: flex; align-items: baseline; gap: 12px; }
.mxadv__factk { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.mxadv__factv { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(18px, 0.94vw, 24px); }
.mxadv__her { display: flex; flex-direction: column; gap: 16px; padding: clamp(22px, 1.48vw, 38px) clamp(22px, 1.56vw, 40px); background: var(--modal-bg); min-width: 0; }
.mxadv__who { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; margin: 0; }
.mxadv__names,
.mxadv__phone { display: flex; flex-direction: column; gap: 5px; }
.mxadv__phone { align-items: flex-end; text-align: right; }
.mxadv__name { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.33vw, 34px); }
.mxadv__line { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.mxadv__number { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.17vw, 30px); }
.mxadv__quote { padding-top: 14px; border-top: 2px solid var(--ink); font-size: clamp(22px, 1.33vw, 34px); line-height: 1.4; }
.mxadv__sig { display: flex; align-items: flex-end; gap: 16px; margin: 0; }
.mxadv__acts { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin: auto 0 0; }
.mxadv__out { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); text-align: right; line-height: 1.7; }


/* ==========================================================================
   89. Messages — адаптив
   ========================================================================== */
@media (max-width: 1680px) {
  .mxthreads__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mxftable__head { display: none; }
  .mxfrow { grid-template-columns: 44px minmax(0, 1fr) auto; gap: 10px 20px; }
  .mxfrow__no { display: none; }
  .mxfrow__cell { grid-column: 2; }
  .mxfrow__pages { grid-column: 3; grid-row: 1; }
  .mxqs__head { display: none; }
  .mxq { grid-template-columns: minmax(0, 1fr) auto; gap: 12px 20px; }
  .mxq__no { display: none; }
  .mxq .vwwho,
  .mxq__answer { grid-column: 1; }
  .mxq__standing { grid-column: 2; grid-row: 1; }
  .mxhours__band { grid-template-columns: minmax(0, 1fr) clamp(300px, 17.97vw, 460px); }
}

@media (max-width: 1100px) {
  .mxfigs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .mxwaiting__grid,
  .mxhome,
  .mxhours__band,
  .mxadv,
  .mxthreads__grid { grid-template-columns: minmax(0, 1fr); }
  .mxhome__files,
  .mxhours__yours { border-left: 0; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
  .mxmsg__body { max-width: 92%; }
  .mxthread__bar { display: none; }
  .mxthread__about { flex-basis: 100%; text-align: left; }
  .mxq__standing { grid-column: 1; grid-row: auto; align-items: flex-start; text-align: left; }
  .mxq { grid-template-columns: minmax(0, 1fr); }
  .mxwait__acts { flex-wrap: wrap; }
  .mxwait__written { flex-basis: 100%; text-align: left; }
  .mxweek { overflow-x: auto; }
  .mxwday { flex: 0 0 72px; }
  .mxsysrow { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .mxtotals { gap: 14px 0; }
  .mxtotals .uoside__gap { flex-basis: 100%; }
}

@media (max-width: 640px) {
  .mxfigs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mxfig__value { font-size: clamp(26px, 1.56vw, 40px); }
  .mxdec__row { flex-wrap: wrap; }
  .mxdec__row .uoledger__lead { display: none; }
  .mxdec__note { white-space: normal; }
  .mxwait__top { flex-wrap: wrap; }
  .mxwait__acts .uopill,
  .mxadv__acts .uopill,
  .mxcomposer__acts .uopill,
  .mxphone .uopill,
  .mxmachine .uopill { width: 100%; }
  .mxcomposer__acts { flex-wrap: wrap; }
  .mxletters { gap: 20px; }
  .mxmsg { gap: 10px; }
  .mxmsg__body { max-width: 100%; }
  .mxbubble { padding: 16px 18px; }
  .mxthread__head { padding: 16px 18px; }
  .mxfrow { grid-template-columns: minmax(0, 1fr); }
  .mxsheet { display: none; }
  .mxfrow__cell,
  .mxfrow__pages { grid-column: 1; grid-row: auto; align-items: flex-start; text-align: left; }
  .mxfrow__file { grid-column: 1; }
  .mxtotal__bar { margin: 0 12px; }
  .mxadv__out { flex-basis: 100%; text-align: left; }
  .mxadv__phone { align-items: flex-start; text-align: left; }
  .mxpromise__foot .uoside__gap { flex-basis: 100%; }
  .mxpromise__result { align-items: flex-start; text-align: left; }
  .mxrail { grid-template-columns: 14px minmax(0, 1fr); gap: 20px 12px; }
  .mxrail__seg::before { left: 6px; bottom: -20px; }
  .mxrail__node { left: 1px; }
  .mxhl__top { flex-wrap: wrap; }
  .mxhrule { flex-wrap: wrap; }
  .mxhrule__k { flex-basis: 100%; }
  .mxtab { height: auto; min-height: 44px; padding: 8px 16px; white-space: normal; }
  .mxquick { white-space: normal; height: auto; min-height: 42px; padding: 8px 16px; }
  .mxpromise__top,
  .mxthread__head { flex-wrap: wrap; }
  .mxpill,
  .mxdec__note { white-space: normal; }
  .mxpromise { padding: 22px 18px; }
}

/* ==========================================================================
   90. Documents — бумаги: подпись, папки, индекс, чего нет, отчёты, синдикат
   ========================================================================== */
.dpw-65 { width: 65%; }
.dpw-93 { width: 93%; }
.dpw-100 { width: 100%; }
.mxdisc--28 { width: 28px; height: 28px; font-size: 11px; }
.mxpill--ring { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22); }
.mxpill--26 { height: 26px; padding: 0 12px; }
.mxdec__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.mxdec__v { white-space: nowrap; }
.dpsheet--empty { background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.05), rgba(var(--ink-rgb), 0.05) 5px, transparent 5px 10px); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2); }
.dpsheet--empty .mxsheet__n { letter-spacing: 0.22em; }
.dpsign,
.dpfolders,
.dpindex,
.dpmissings,
.dpsurveys,
.dpsyndicate,
.dplegals,
.dpsignatures { display: flex; flex-direction: column; gap: 24px; }
.dpindex { gap: 22px; }

/* --- 02 Ждёт подписи: 1.3fr / 1fr ------------------------------------------------------- */
.dpsign__grid { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 26px; }
.dpsign__paper { display: flex; flex-direction: column; gap: 16px; padding: clamp(22px, 1.33vw, 34px) clamp(22px, 1.41vw, 36px); border-radius: 12px; background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.34); }
.dpsign__top { display: flex; align-items: flex-start; gap: 18px; margin: 0; }
.dpsign__words { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.dpsign__kicker { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.dpsign__name { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(26px, 1.72vw, 44px); }
.dpsign__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.dpsign__meaning { display: flex; flex-direction: column; gap: 6px; margin: 0; padding-top: 14px; border-top: 2px solid rgba(var(--accent-rgb), 0.35); }
.dpsign__quote { font-size: clamp(18px, 1.05vw, 27px); }
.dpsign__rows { padding-top: 14px; border-top: 1px solid rgba(var(--accent-rgb), 0.25); }
.dpsign__rows .uoledger__row,
.dpsign__promises .uoledger__row { font-size: clamp(14px, 0.66vw, 17px); }
.dpsign__acts { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin: auto 0 0; }
.dpsign__advice { display: flex; flex-direction: column; gap: 14px; padding: clamp(22px, 1.25vw, 32px) clamp(22px, 1.33vw, 34px); border-radius: 12px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); }
.dpsign__advicequote { padding-bottom: 14px; border-bottom: 2px solid var(--ink); }
.dpsign__promises { padding-top: 14px; border-top: 1px solid rgba(var(--ink-rgb), 0.16); }
.dpsign__read { margin-top: auto; }

/* --- 03 По домам: четыре папки ------------------------------------------------------------ */
.dpfolders__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.dpfolder { display: flex; flex-direction: column; gap: 12px; padding: 28px 30px; border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); transition: transform 220ms ease-in-out, box-shadow 220ms ease-in-out, background 220ms ease-in-out; }
.dpfolder:hover { transform: translateY(-4px); box-shadow: inset 0 0 0 1.5px rgba(var(--ink-rgb), 0.24), 0 22px 46px rgba(var(--shadow-warm-rgb), 0.1); }
.dpfolder--red { background: rgba(var(--accent-rgb), 0.05); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.3); }
.dpfolder__who { display: flex; flex-direction: column; gap: 5px; margin: 0; padding-bottom: 12px; border-bottom: 2px solid var(--ink); }
.dpfolder--red .dpfolder__who { border-bottom-color: rgba(var(--accent-rgb), 0.35); }
.dpfolder__addr { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.17vw, 30px); }
.dpfolder__sub,
.dpfolder__pages,
.dpfolder__pp { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.dpfolder__count { display: flex; align-items: baseline; gap: 14px; margin: 0; }
.dpfolder__n { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(26px, 1.48vw, 38px); }
.dpfolder__pages { line-height: 1.7; }
.dpfolder__list { display: flex; flex-direction: column; gap: 8px; padding-top: 12px; border-top: 1px solid rgba(var(--ink-rgb), 0.16); }
.dpfolder__row { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; font-size: clamp(14px, 0.62vw, 16px); color: var(--ink); text-decoration: none; }
.dpfolder__row:hover { color: var(--accent); }
.dpfolder__pp { white-space: nowrap; }
.dpfolder__open { margin-top: auto; padding-top: 6px; }

/* --- 04 Индекс: семь колонок ---------------------------------------------------------------- */
.dptable__head,
.dprow { grid-template-columns: 52px 66px minmax(0, 1.2fr) clamp(140px, 8.98vw, 230px) clamp(140px, 8.98vw, 230px) clamp(110px, 7.03vw, 180px) clamp(90px, 4.30vw, 110px); }

/* --- 05 Чего нет: четыре карточки с пустым листом ----------------------------------------- */
.dpmissings__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.dpmissing { display: flex; flex-direction: column; gap: 12px; padding: 28px 30px; border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.dpmissing--red { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.dpmissing__who { display: flex; flex-direction: column; gap: 5px; margin: 0; padding-bottom: 12px; border-bottom: 2px solid var(--ink); }
.dpmissing--red .dpmissing__who { border-bottom-color: rgba(var(--accent-rgb), 0.35); }
.dpmissing__name { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.17vw, 30px); }
.dpmissing__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.dpmissing__why { margin: 0; font-size: clamp(14px, 0.66vw, 17px); line-height: 1.5; }
.dpmissing__rows { padding-top: 12px; border-top: 1px solid rgba(var(--ink-rgb), 0.16); }
.dpmissing__rows .uoledger__row { font-size: clamp(14px, 0.66vw, 17px); }
.dpmissing__cta { margin-top: auto; }

/* --- 06 Отчёты инспектора: два листа с дефектами ------------------------------------------- */
.dpsurveys__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; }
.dpsurvey { display: flex; flex-direction: column; gap: 15px; padding: clamp(22px, 1.25vw, 32px) clamp(22px, 1.33vw, 34px); border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.dpsurvey--red { background: rgba(var(--accent-rgb), 0.05); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.3); }
.dpsurvey__top { display: flex; align-items: flex-start; gap: 18px; margin: 0; }
.dpsurvey__words { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.dpsurvey__no,
.dpsurvey__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.dpsurvey__home { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(26px, 1.56vw, 40px); }
.dpfaults { display: flex; flex-direction: column; gap: 9px; padding-top: 14px; border-top: 2px solid var(--ink); }
.dpsurvey--red .dpfaults { border-top-color: rgba(var(--accent-rgb), 0.35); }
.dpfault { display: grid; grid-template-columns: minmax(0, 1fr) clamp(140px, 8.98vw, 230px); gap: 14px; align-items: baseline; }
.dpfault__words { display: flex; flex-direction: column; gap: 2px; }
.dpfault__name { font-size: clamp(15px, 0.74vw, 19px); }
.dpfault__kind { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.dpfault__cost { font-size: clamp(15px, 0.78vw, 20px); text-align: right; }
.dpsurvey__who { padding-top: 14px; border-top: 1px solid rgba(var(--ink-rgb), 0.16); }
.dpsurvey__version { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.dpsurvey__acts { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin: auto 0 0; }

/* --- 07 Синдикат: пять лет и плита сборов ------------------------------------------------- */
.dpsyndicate__grid { display: grid; grid-template-columns: minmax(0, 1fr) clamp(300px, 20.31vw, 520px); gap: clamp(30px, 2.73vw, 70px); align-items: start; }
.dpyears { display: flex; flex-direction: column; min-width: 0; }
.dpyears__head,
.dpyear,
.dpyears__total { display: grid; grid-template-columns: 90px clamp(130px, 8.98vw, 230px) minmax(0, 1fr) clamp(130px, 7.81vw, 200px) clamp(130px, 7.81vw, 200px); gap: 22px; align-items: center; }
.dpyears__head { margin: 0; padding-bottom: 12px; border-bottom: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.dpyear { padding: 22px 14px; margin: 0 -14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); transition: background 180ms ease-in-out; }
.dpyear:hover { background: rgba(var(--accent-rgb), 0.06); }
.dpyear--red { background: rgba(var(--accent-rgb), 0.05); }
.dpyear__y { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.25vw, 32px); }
.dpyear__meeting { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.dpyear__voted { font-size: clamp(15px, 0.70vw, 18px); line-height: 1.45; }
.dpyear__share { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(18px, 0.94vw, 24px); }
.dpyear__standing { justify-self: end; }
.dpyears__total { margin: 0; padding: 20px 14px; margin: 0 -14px; }
.dpyears__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.dpyears__sum { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.17vw, 30px); color: var(--accent); }
.dpcharges { display: flex; flex-direction: column; gap: 16px; padding: 30px 32px; border-radius: 14px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); }
.dpcharges__bars { display: flex; flex-direction: column; gap: 11px; padding-bottom: 14px; border-bottom: 2px solid var(--ink); }
.dpcharge { display: flex; align-items: center; gap: 14px; }
.dpcharge__k { flex: 0 0 clamp(120px, 7.03vw, 180px); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.dpcharge .uobar { flex: 1; }
.dpcharge__v { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(17px, 0.86vw, 22px); white-space: nowrap; }
.dpcharges__sig { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.dpcharges__cta { margin-top: auto; }

/* --- 08 Юридические: три карточки с цепочкой подписей -------------------------------------- */
.dplegals__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.dplegal { display: flex; flex-direction: column; gap: 13px; padding: 30px 32px; border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.dplegal--red { background: rgba(var(--accent-rgb), 0.05); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.3); }
.dplegal__who { display: flex; flex-direction: column; gap: 5px; margin: 0; padding-bottom: 12px; border-bottom: 2px solid var(--ink); }
.dplegal--red .dplegal__who { border-bottom-color: rgba(var(--accent-rgb), 0.35); }
.dplegal__name { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.33vw, 34px); }
.dplegal__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.dpchain { display: flex; flex-direction: column; gap: 10px; }
.dpstep { display: flex; align-items: baseline; gap: 12px; }
.dpstep__dot { flex: none; width: 8px; height: 8px; border-radius: 50%; background: rgba(var(--ink-rgb), 0.35); transform: translateY(-2px); }
.dpstep__dot--red { background: var(--accent); }
.dpstep__words { display: flex; flex-direction: column; gap: 2px; }
.dpstep__what { font-size: clamp(14px, 0.66vw, 17px); }
.dpstep__state { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.dplegal__rows { margin-top: auto; padding-top: 12px; border-top: 1px solid rgba(var(--ink-rgb), 0.16); }
.dplegal__rows .uoledger__row { font-size: clamp(14px, 0.66vw, 17px); }
.dplegal .dplegal__rows { margin-top: auto; }

/* --- 09 Подписи: гроссбух в пять колонок и полоса «never» ---------------------------------- */
.dpsigs { display: flex; flex-direction: column; }
.dpsigs__head,
.dpsig { display: grid; grid-template-columns: 56px clamp(180px, 12.50vw, 320px) minmax(0, 1fr) clamp(160px, 11.33vw, 290px) clamp(120px, 6.64vw, 170px); gap: 24px; align-items: center; }
.dpsigs__head { margin: 0; padding-bottom: 12px; border-bottom: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.dpsig { padding: 24px 14px; margin: 0 -14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); transition: background 180ms ease-in-out; }
.dpsig:hover { background: rgba(var(--accent-rgb), 0.05); }
.dpsig__no,
.dpsig__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.dpsig__what,
.dpsig__when { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.dpsig__name { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 1.09vw, 28px); }
.dpsig__meant { font-size: clamp(15px, 0.70vw, 18px); line-height: 1.5; }
.dpsig__date { font-size: clamp(14px, 0.62vw, 16px); }
.dpsig__copy { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; text-align: right; }
.dpsig__hand { font-family: var(--display); font-style: italic; font-size: clamp(20px, 1.02vw, 26px); }
.dpnever { display: flex; align-items: center; flex-wrap: wrap; gap: 26px; padding: 24px 28px; border-radius: 12px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); }
.dpnever__words { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.dpnever__text { font-size: clamp(15px, 0.74vw, 19px); }

/* --- 10 Хранение: слова слева, доступ справа ----------------------------------------------- */
.dpkeeping { display: grid; grid-template-columns: minmax(0, 1fr) clamp(320px, 24.22vw, 620px); border-radius: 14px; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.dpkeeping__words { display: flex; flex-direction: column; gap: 18px; padding: clamp(22px, 1.41vw, 36px) clamp(22px, 1.48vw, 38px); background: var(--modal-bg); min-width: 0; }
.dpkeeping__title { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(30px, 2.19vw, 56px); }
.dpkeeping__title em { font-style: italic; color: var(--accent); }
.dpkeeping__text { margin: 0; font-size: clamp(15px, 0.78vw, 20px); line-height: 1.6; }
.dpkeeping__rows { padding-top: 14px; border-top: 2px solid var(--ink); }
.dpkeeping__rows .uoledger__row { font-size: clamp(14px, 0.66vw, 17px); }
.dpkeeping__acts { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin: auto 0 0; }
.dpkeeping__access { display: flex; flex-direction: column; gap: 16px; padding: clamp(22px, 1.41vw, 36px) clamp(22px, 1.48vw, 38px); background: var(--modal-field); border-left: 1px solid rgba(var(--ink-rgb), 0.14); }
.dpaccesses { display: flex; flex-direction: column; gap: 12px; padding-bottom: 14px; border-bottom: 2px solid var(--ink); }
.dpaccess { display: flex; align-items: baseline; gap: 14px; }
.dpaccess__dot { flex: none; width: 8px; height: 8px; border-radius: 50%; background: rgba(var(--ink-rgb), 0.25); transform: translateY(-2px); }
.dpaccess__dot--on { background: var(--accent); }
.dpaccess__words { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.dpaccess__top { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 12px; }
.dpaccess__who { font-size: clamp(15px, 0.74vw, 19px); }
.dpaccess__what,
.dpaccess__sub,
.dpkeeping__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.dpkeeping__note { margin-top: auto; }

/* --- 11 Советник: пилюли «объясни бумагу» -------------------------------------------------- */
.dpask { height: 44px; }
.g4pill__input:checked + .dpask { background: rgba(var(--accent-rgb), 0.1); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.34); color: var(--accent); }
.g4pill__input:focus-visible + .dpask { outline: 2px solid var(--accent); outline-offset: 3px; }
.dpadvisor__acts { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin: auto 0 0; }


/* ==========================================================================
   91. Documents — адаптив
   ========================================================================== */
@media (max-width: 1680px) {
  .dpfolders__grid,
  .dpmissings__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .dptable__head { display: none; }
  .dprow { grid-template-columns: 44px minmax(0, 1fr) auto; gap: 10px 20px; }
  .dprow .mxfrow__no { display: none; }
  .dprow .mxfrow__cell { grid-column: 2; }
  .dprow .mxfrow__pages { grid-column: 3; grid-row: 1; }
  .dprow__about { display: none; }
  .dpsigs__head { display: none; }
  .dpsig { grid-template-columns: minmax(0, 1fr) auto; gap: 10px 20px; }
  .dpsig__no { display: none; }
  .dpsig__meant,
  .dpsig__when { grid-column: 1; }
  .dpsig__copy { grid-column: 2; grid-row: 1; }
  .dpyears__head { display: none; }
  .dpyear,
  .dpyears__total { grid-template-columns: 70px minmax(0, 1fr) auto; gap: 8px 20px; }
  .dpyear__voted { grid-column: 2; }
  .dpyear__share { grid-column: 2; }
  .dpyear__standing { grid-column: 3; grid-row: 1; }
  .dpyears__total .dpyears__k:nth-child(3) { grid-column: 2; }
  .dpyears__total .dpyears__sum { grid-column: 2; }
  .dpyears__total .dpyears__k:last-child { grid-column: 3; grid-row: 1; }
}

@media (max-width: 1100px) {
  .dpsign__grid,
  .dpsurveys__grid,
  .dplegals__grid,
  .dpsyndicate__grid,
  .dpkeeping { grid-template-columns: minmax(0, 1fr); }
  .dpkeeping__access { border-left: 0; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
  .dprow__from { display: none; }
}

@media (max-width: 900px) {
  .dpfolders__grid,
  .dpmissings__grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 640px) {
  .dprow { grid-template-columns: minmax(0, 1fr); }
  .dprow .mxsheet { display: none; }
  .dprow .mxfrow__file,
  .dprow .mxfrow__cell,
  .dprow .mxfrow__pages { grid-column: 1; grid-row: auto; align-items: flex-start; text-align: left; }
  .dprow__filed { display: none; }
  .dpsign__top,
  .dpsurvey__top { flex-wrap: wrap; }
  .dpsign__acts .uopill,
  .dpsurvey__acts .uopill,
  .dpkeeping__acts .uopill,
  .dpadvisor__acts .uopill,
  .dpnever .uopill { width: 100%; }
  .dpsig { grid-template-columns: minmax(0, 1fr); }
  .dpsig__copy { grid-column: 1; grid-row: auto; align-items: flex-start; text-align: left; }
  .dpyear,
  .dpyears__total { grid-template-columns: minmax(0, 1fr); }
  .dpyear__voted,
  .dpyear__share,
  .dpyear__standing,
  .dpyears__total .dpyears__k,
  .dpyears__total .dpyears__sum { grid-column: 1; grid-row: auto; justify-self: start; }
  .dpyears__total .mxqs__right { text-align: left; }
  .dpfault { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .dpfault__cost { text-align: left; }
  .mxdec__v { white-space: normal; }
  .dpcharge { flex-wrap: wrap; }
  .dpcharge__k { flex-basis: 100%; }
}

/* ==========================================================================
   92. Sell my home — рельс из пяти шагов, панели формы и плиты вокруг
   ========================================================================== */
.sddecision__disc--26 { font-size: 26px; }
.smfig__value { font-size: clamp(26px, 1.72vw, 44px); }
.smsig { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.uoav--120 { width: 120px; height: 120px; }

/* --- 02 Рельс и панели ---------------------------------------------------------------------- */
.smform { display: flex; flex-direction: column; gap: 30px; }
.smform__rail { display: flex; flex-direction: column; gap: 18px; }
.smtabs { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border-radius: 14px; overflow: hidden; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.smtab { display: flex; flex-direction: column; align-items: flex-start; gap: 7px; padding: 26px 28px; border: 0; border-left: 1px solid rgba(var(--ink-rgb), 0.14); border-bottom: 2px solid transparent; background: transparent; font-family: var(--text); text-align: left; color: var(--ink); cursor: pointer; transition: background 180ms ease-in-out, color 180ms ease-in-out; }
.smtab:first-child { border-left: 0; }
.smtab:hover { background: rgba(var(--accent-rgb), 0.05); }
.smtab--on { background: rgba(var(--accent-rgb), 0.07); border-bottom-color: var(--accent); color: var(--accent); }
.smtab:focus-visible { outline: 2px solid var(--accent); outline-offset: -4px; }
.smtab__top { display: flex; align-items: center; gap: 12px; }
.smtab__disc { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 34px; height: 34px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); font-family: var(--mono); font-size: 13px; color: var(--muted); }
.smtab__tick { display: none; }
.smtab--on .smtab__disc { background: var(--accent); box-shadow: none; color: var(--c-cream); }
.smtab--done .smtab__disc { background: var(--ink); box-shadow: none; color: var(--bg); }
.smtab--done .smtab__n { display: none; }
.smtab--done .smtab__tick { display: inline; }
.smtab__name { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(18px, 1.09vw, 28px); }
.smtab__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.smtab--on .smtab__note { color: var(--accent); }
.smform__panels { display: flex; flex-direction: column; gap: 30px; }
.smpanel { display: flex; flex-direction: column; border-radius: 14px; overflow: hidden; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); }
.smpanel[hidden] { display: none; }
.smpanel__head { display: flex; align-items: flex-end; gap: 30px; padding: clamp(22px, 1.17vw, 30px) clamp(22px, 1.41vw, 36px) 22px; border-bottom: 2px solid var(--ink); }
.smpanel__words { display: flex; flex-direction: column; gap: 9px; }
.smpanel__step { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.smpanel__title { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(28px, 1.80vw, 46px); }
.smpanel__aside { max-width: 52ch; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); text-align: right; line-height: 1.7; }
.smpanel__body { display: flex; flex-direction: column; gap: 26px; padding: clamp(22px, 1.25vw, 32px) clamp(22px, 1.41vw, 36px) clamp(22px, 1.33vw, 34px); }
.smpanel__foot { margin: 0; padding: 18px clamp(22px, 1.41vw, 36px); border-top: 1px solid rgba(var(--ink-rgb), 0.14); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.smgrid { display: grid; gap: 26px; }
.smgrid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.smgrid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.smgrid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.smfield { display: flex; flex-direction: column; gap: 9px; min-width: 0; }
.smfield__label,
.smfield__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.sminput { display: flex; align-items: center; box-sizing: border-box; width: 100%; height: 62px; padding: 0 20px; border: 0; border-radius: 10px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.18); font-family: var(--text); font-size: clamp(15px, 0.74vw, 19px); color: var(--ink); }
.sminput::placeholder { color: var(--faint); }
.sminput:focus,
.sminput:focus-within { outline: none; box-shadow: inset 0 0 0 1.5px var(--accent); }
.sminput--ro { color: var(--muted); }
.smtextarea { display: block; height: auto; min-height: 180px; padding: 20px; line-height: 1.6; resize: vertical; caret-color: var(--accent); }
.sminput--money { gap: 6px; }
.sminput__cur { color: var(--muted); }
.sminput__bare { flex: 1; min-width: 0; border: 0; background: transparent; font-family: var(--text); font-size: inherit; color: var(--ink); }
.sminput__bare:focus { outline: none; }
.smseg { display: inline-flex; align-items: center; align-self: flex-start; gap: 6px; height: 62px; padding: 0 6px; border-radius: 999px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.18); }
.smseg__pill { display: inline-flex; align-items: center; height: 50px; padding: 0 22px; border-radius: 999px; font-size: clamp(14px, 0.66vw, 17px); color: var(--muted); white-space: nowrap; cursor: pointer; transition: background 180ms ease-in-out, color 180ms ease-in-out; }
.smseg__pill:hover { color: var(--accent); }
.g4pill__input:checked + .smseg__pill { background: var(--accent); color: var(--c-cream); }
.g4pill__input:focus-visible + .smseg__pill { outline: 2px solid var(--accent); outline-offset: 3px; }
.smvaluation { display: flex; align-items: center; flex-wrap: wrap; gap: 20px; padding: 22px 26px; border-radius: 12px; background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.3); }
.smvaluation__words { display: flex; flex-direction: column; gap: 5px; min-width: 0; flex: 1 1 60%; }
.smvaluation__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.smvaluation__text { font-size: clamp(15px, 0.74vw, 19px); line-height: 1.5; }
.smvaluation__text strong { font-weight: 500; }
.smform__nav { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; }
.smform__progress { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.smform__nav .uopill[hidden] { display: none; }
.smnext--last { background: var(--accent); color: var(--c-cream); }
.smnext--last:hover { background: var(--ink); color: var(--bg); }

/* --- Шаг 2: зона сброса, миниатюры, комнаты ---------------------------------------------- */
.smmedia { display: grid; grid-template-columns: minmax(0, 1fr) clamp(320px, 21.88vw, 560px); gap: 34px; align-items: start; }
.smmedia__left { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.smdrop { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; min-height: 280px; padding: 36px; border-radius: 12px; background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.035), rgba(var(--ink-rgb), 0.035) 8px, transparent 8px 16px); box-shadow: inset 0 0 0 1.5px rgba(var(--ink-rgb), 0.18); text-align: center; cursor: pointer; transition: background 180ms ease-in-out, box-shadow 180ms ease-in-out; }
.smdrop:hover,
.smdrop:focus-within { box-shadow: inset 0 0 0 1.5px var(--accent); }
.smdrop--paper { min-height: 190px; padding: 28px; gap: 12px; }
.smdrop__glyph { position: relative; width: 52px; height: 40px; border: 1.5px solid rgba(var(--ink-rgb), 0.4); border-radius: 5px; }
.smdrop__hill { position: absolute; left: 8px; bottom: 7px; width: 16px; height: 12px; background: rgba(var(--ink-rgb), 0.18); }
.smdrop__sun { position: absolute; right: 9px; top: 9px; width: 9px; height: 9px; border-radius: 50%; background: rgba(var(--ink-rgb), 0.2); }
.smdrop__title { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.25vw, 32px); }
.smdrop__title--sm { font-size: clamp(20px, 1.02vw, 26px); }
.smdrop__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); line-height: 1.7; }
.smthumbs { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
.smthumb { position: relative; display: block; height: 96px; border-radius: 9px; overflow: hidden; background: repeating-linear-gradient(45deg, var(--sheet) 0 6px, var(--sheet-strong) 6px 12px); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.smthumb__first { position: absolute; top: 8px; left: 8px; }
.smthumb .hdph { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.smrooms { display: flex; flex-direction: column; gap: 13px; padding: 28px 30px; border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.smrooms__list { display: flex; flex-direction: column; gap: 13px; }
.smroom { position: relative; display: flex; align-items: center; gap: 13px; cursor: pointer; }
.smroom__box { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 22px; height: 22px; border-radius: 6px; box-shadow: inset 0 0 0 1.5px rgba(var(--ink-rgb), 0.3); color: transparent; font-size: 12px; transition: background 180ms ease-in-out, color 180ms ease-in-out; }
.smroom--red .smroom__box { box-shadow: inset 0 0 0 1.5px rgba(var(--accent-rgb), 0.45); }
.ssonly__input:checked ~ .smroom__box { background: var(--ink); box-shadow: none; color: var(--bg); }
.ssonly__input:focus-visible ~ .smroom__box { outline: 2px solid var(--accent); outline-offset: 3px; }
.smroom__words { display: flex; flex-direction: column; gap: 2px; }
.smroom__name { font-size: clamp(15px, 0.70vw, 18px); }
.smroom__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.smroom--red .smroom__name,
.smroom--red .smroom__sub { color: var(--accent); }
.smroom--red:has(.ssonly__input:checked) .smroom__name,
.smroom--red:has(.ssonly__input:checked) .smroom__sub { color: inherit; }
.smroom--red:has(.ssonly__input:checked) .smroom__sub { color: var(--muted); }
.smrooms__quote { margin-top: auto; padding-top: 14px; border-top: 2px solid var(--ink); }
.vwquote--24 { font-size: clamp(17px, 0.94vw, 24px); }

/* --- Шаг 3: карта с меткой и плитой «круг 150 м», окрестности ------------------------------ */
.smwhere { display: grid; grid-template-columns: minmax(0, 1fr) clamp(300px, 20.31vw, 520px); gap: 34px; align-items: start; }
.smmap { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.smmap__plate { position: relative; height: clamp(280px, 16.41vw, 420px); border-radius: 12px; overflow: hidden; background: var(--sheet-strong); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); isolation: isolate; }
.smmap__live { position: absolute; inset: 0; }
.smmap__live .leaflet-container { width: 100%; height: 100%; font-family: var(--mono); background: var(--sheet); }
.smmap__live .leaflet-control-attribution { font-size: 10px; background: rgba(var(--c-paper-rgb), 0.8); color: var(--c-clay); }
.smmap__pin { position: absolute; left: 50%; top: 50%; width: 26px; height: 26px; margin: -34px 0 0 -13px; border-radius: 50% 50% 50% 0; background: var(--accent); box-shadow: 0 0 0 3px rgba(var(--c-paper-rgb), 0.9); transform: rotate(-45deg); z-index: 2; }
.smmap__plate--live .smmap__pin { display: none; }
.smmarker { background: transparent; border: 0; }
.smmarker__pin { display: block; width: 26px; height: 26px; margin: -30px 0 0 -13px; border-radius: 50% 50% 50% 0; background: var(--accent); box-shadow: 0 0 0 3px rgba(var(--c-paper-rgb), 0.9); transform: rotate(-45deg); cursor: grab; }
.smmap__kind { position: absolute; left: 16px; top: 16px; display: inline-flex; gap: 4px; padding: 4px; border-radius: 999px; background: rgba(var(--bg-rgb), 0.92); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); z-index: 1000; }
.smmap__type { display: inline-flex; align-items: center; height: 32px; padding: 0 14px; border-radius: 999px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); cursor: pointer; }
.g4pill__input:checked + .smmap__type { background: var(--ink); color: var(--bg); }
.smmap__public { position: absolute; left: 16px; right: 16px; bottom: 16px; display: flex; flex-direction: column; gap: 4px; padding: 14px 18px; border-radius: 10px; background: rgba(var(--bg-rgb), 0.92); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); z-index: 1000; }
.smmap__publick { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.smmap__publicv { font-size: clamp(14px, 0.66vw, 17px); }
.smring { stroke: var(--accent); stroke-width: 1.5; fill: var(--accent); fill-opacity: 0.08; }
[data-theme="dark"] .smmap__live .leaflet-tile-pane { filter: saturate(0.3) sepia(0.3) brightness(0.55) contrast(1.05); }
.smaround { display: flex; flex-direction: column; gap: 13px; padding: 28px 30px; border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }

/* --- Шаг 5: четыре группы галочек ---------------------------------------------------------- */
.smgroups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 34px 60px; }
.smgroup { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.smgroup__count { color: var(--accent); }
.smchecks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 15px 26px; }
.smcheck { position: relative; display: flex; align-items: center; gap: 13px; cursor: pointer; }
.smcheck__box,
.smopen__box,
.smconsent__box { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 26px; height: 26px; border-radius: 7px; box-shadow: inset 0 0 0 1.5px rgba(var(--ink-rgb), 0.28); color: transparent; font-size: 13px; transition: background 180ms ease-in-out, color 180ms ease-in-out; }
.smcheck__text { font-size: clamp(15px, 0.70vw, 18px); }
.ssonly__input:checked ~ .smcheck__box { background: var(--accent); box-shadow: none; color: var(--c-cream); }
.ssonly__input:focus-visible ~ .smcheck__box,
.ssonly__input:focus-visible ~ .smconsent__box { outline: 2px solid var(--accent); outline-offset: 3px; }
.smrules .smfield__sub { margin-top: -2px; }

/* --- 03 Что публикуем ------------------------------------------------------------------------ */
.smpublish,
.smtimeline { display: flex; flex-direction: column; gap: 24px; }
.smpub__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 60px; }
.smpub__col { display: flex; flex-direction: column; min-width: 0; }
.smpub { display: grid; grid-template-columns: 24px minmax(0, 1fr) clamp(100px, 5.08vw, 130px); gap: 16px; align-items: start; padding: 18px 14px; margin: 0 -14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.smpub__dot { width: 10px; height: 10px; margin-top: 8px; border-radius: 50%; box-shadow: inset 0 0 0 1.5px rgba(var(--ink-rgb), 0.3); }
.smpub__dot--on { background: rgba(var(--ink-rgb), 0.4); box-shadow: none; }
.smpub__dot--red { background: var(--accent); }
.smpub__words { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.smpub__what { font-size: clamp(15px, 0.70vw, 18px); }
.smpub__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.smpub .mxpill { justify-self: end; }
.smcannot { display: flex; align-items: center; flex-wrap: wrap; gap: 26px; padding: 24px 30px; border-radius: 12px; background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.3); }
.smcannot__words { display: flex; flex: 1 1 60%; flex-direction: column; gap: 6px; min-width: 0; }
.smcannot__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.smcannot__title { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(26px, 1.56vw, 40px); }
.smcannot__text { font-size: clamp(14px, 0.66vw, 17px); line-height: 1.55; color: var(--muted); }
.smcannot__fig { display: flex; flex-direction: column; align-items: flex-end; gap: 5px; text-align: right; }
.smcannot__figk { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.smcannot__n { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(32px, 2.11vw, 54px); color: var(--accent); }

/* --- 04 Что дальше: рельс из mx* с плоскими карточками ------------------------------------- */
.smnode--grey { box-shadow: inset 0 0 0 1.5px rgba(var(--ink-rgb), 0.3); }
.smstep { display: flex; align-items: center; flex-wrap: wrap; gap: 26px; padding: 24px 30px; border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.smstep--red { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.3); }
.smstep__no { flex: 0 0 34px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.smstep__words { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.smstep__title { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.25vw, 32px); }
.smstep__sub { font-size: clamp(14px, 0.66vw, 17px); line-height: 1.5; color: var(--muted); }
.smstep__when { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); text-align: right; white-space: nowrap; }

/* --- 05 Бумаги: список и зона сброса ------------------------------------------------------- */
.smpapers { display: grid; grid-template-columns: minmax(0, 1fr) clamp(320px, 21.88vw, 560px); gap: clamp(30px, 2.73vw, 70px); align-items: start; }
.smpapers__list { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.smpapers__rows { display: flex; flex-direction: column; }
.smpaper { display: grid; grid-template-columns: minmax(0, 1fr) clamp(130px, 8.59vw, 220px) clamp(100px, 5.86vw, 150px); gap: 24px; align-items: center; padding: 19px 14px; margin: 0 -14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.smpaper__words { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.smpaper__name { font-size: clamp(15px, 0.74vw, 19px); }
.smpaper__sub,
.smpaper__who { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.smpaper .mxpill { justify-self: end; }
.smpapers__drop { display: flex; flex-direction: column; gap: 16px; padding: 30px 32px; border-radius: 14px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); }

/* --- 06 Просмотры: слова слева, сетка часов справа ----------------------------------------- */
.smviewings { display: grid; grid-template-columns: minmax(0, 1fr) clamp(320px, 24.22vw, 620px); border-radius: 14px; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.smviewings__words { display: flex; flex-direction: column; gap: 18px; padding: clamp(22px, 1.41vw, 36px) clamp(22px, 1.48vw, 38px); background: var(--modal-bg); min-width: 0; }
.smviewings__title { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(30px, 2.19vw, 56px); }
.smviewings__title em,
.smadv__title em,
.smsubmit__title em { font-style: italic; color: var(--accent); }
.smviewings__text { margin: 0; font-size: clamp(15px, 0.78vw, 20px); line-height: 1.6; }
.smviewings__rules { padding-top: 14px; border-top: 2px solid var(--ink); }
.smviewings__rules .uoledger__row { font-size: clamp(14px, 0.66vw, 17px); }
.smviewings__hours { display: flex; flex-direction: column; gap: 16px; padding: clamp(22px, 1.41vw, 36px) clamp(22px, 1.48vw, 38px); background: var(--modal-field); border-left: 1px solid rgba(var(--ink-rgb), 0.14); }
.smhours { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.smhour { display: flex; flex-direction: column; gap: 5px; padding: 16px 14px; border-radius: 10px; background: rgba(var(--accent-rgb), 0.07); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.28); }
.smhour--no { background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.05), rgba(var(--ink-rgb), 0.05) 6px, transparent 6px 12px); box-shadow: none; }
.smhour__day { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.smhour__v { font-size: clamp(14px, 0.66vw, 17px); }
.smhour--no .smhour__v { color: var(--muted); }
.smviewings__quote { margin-top: auto; padding-top: 14px; border-top: 2px solid var(--ink); }

/* --- 07 Советник: одна широкая строка ---------------------------------------------------- */
.smadv { display: flex; align-items: center; flex-wrap: wrap; gap: clamp(20px, 1.33vw, 34px); padding: clamp(22px, 1.25vw, 32px) clamp(22px, 1.41vw, 36px); border-radius: 14px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); }
.smadv__words { display: flex; flex: 1 1 40%; flex-direction: column; gap: 10px; min-width: 0; }
.smadv__title { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(26px, 1.80vw, 46px); }
.smadv__text { margin: 0; max-width: 62ch; font-size: clamp(15px, 0.70vw, 18px); line-height: 1.6; color: var(--muted); }
.smadv__figs { display: flex; gap: clamp(18px, 1.33vw, 34px); }
.smadv__fig { display: flex; flex-direction: column; gap: 5px; }
.smadv__figk { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.smadv__figv { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(26px, 1.56vw, 40px); }
.smadv__act { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; }

/* --- 08 Отправить: слова слева, «что открыто» справа --------------------------------------- */
.smsubmit__grid { display: grid; grid-template-columns: minmax(0, 1fr) clamp(320px, 25.00vw, 640px); border-radius: 14px; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.smsubmit__words { display: flex; flex-direction: column; gap: 18px; padding: clamp(22px, 1.41vw, 36px) clamp(22px, 1.48vw, 38px); background: rgba(var(--accent-rgb), 0.06); min-width: 0; }
.smsubmit__title { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(30px, 2.19vw, 56px); }
.smsubmit__text { margin: 0; font-size: clamp(15px, 0.78vw, 20px); line-height: 1.6; }
.smsubmit__rows { padding-top: 14px; border-top: 2px solid rgba(var(--accent-rgb), 0.35); }
.smsubmit__rows .uoledger__row { font-size: clamp(14px, 0.66vw, 17px); }
.smsubmit__acts { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin: auto 0 0; }
.smsubmit__open { display: flex; flex-direction: column; gap: 16px; padding: clamp(22px, 1.41vw, 36px) clamp(22px, 1.48vw, 38px); background: var(--modal-field); border-left: 1px solid rgba(var(--accent-rgb), 0.2); }
.smopens { display: flex; flex-direction: column; gap: 12px; padding-bottom: 14px; border-bottom: 2px solid var(--ink); }
.smopen { display: flex; align-items: flex-start; gap: 14px; }
.smopen__box { width: 24px; height: 24px; box-shadow: inset 0 0 0 1.5px rgba(var(--accent-rgb), 0.45); }
.smopen__box--on { background: var(--ink); box-shadow: none; color: var(--bg); }
.smopen__words { display: flex; flex-direction: column; gap: 3px; }
.smopen__title { font-size: clamp(15px, 0.70vw, 18px); }
.smopen__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.smconsent { position: relative; display: flex; align-items: flex-start; gap: 14px; cursor: pointer; }
.smconsent__text { font-size: clamp(14px, 0.66vw, 17px); line-height: 1.5; }
.smconsent__text a { color: var(--accent); }
.ssonly__input:checked ~ .smconsent__box { background: var(--accent); box-shadow: none; color: var(--c-cream); }
.smsubmit__foot { margin-top: auto; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }


/* ==========================================================================
   93. Sell my home — адаптив
   ========================================================================== */
@media (max-width: 1680px) {
  .smmedia,
  .smwhere { grid-template-columns: minmax(0, 1fr) clamp(300px, 16.41vw, 420px); }
  .smpapers { grid-template-columns: minmax(0, 1fr); }
  .smgrid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1400px) {
  .smtabs { display: flex; overflow-x: auto; scrollbar-width: thin; }
  .smtab { flex: 0 0 auto; min-width: 200px; }
}

@media (max-width: 1100px) {
  .smmedia,
  .smwhere,
  .smgroups,
  .smpub__grid,
  .smviewings,
  .smsubmit__grid,
  .smgrid--3 { grid-template-columns: minmax(0, 1fr); }
  .smpub__grid { gap: 0; }
  .smviewings__hours,
  .smsubmit__open { border-left: 0; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
  .smpanel__head { flex-direction: column; align-items: flex-start; gap: 14px; }
  .smpanel__aside { text-align: left; }
  .smchecks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .smthumbs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .smadv__figs { flex-basis: 100%; }
  .smadv__act { align-items: flex-start; }
  .smpaper { grid-template-columns: minmax(0, 1fr) auto; gap: 8px 20px; }
  .smpaper__who { grid-column: 1; }
  .smpaper .mxpill { grid-column: 2; grid-row: 1; }
  .smstep__when { flex-basis: 100%; text-align: left; white-space: normal; }
}

@media (max-width: 640px) {
  .smgrid--2,
  .smgrid--4,
  .smchecks,
  .smhours { grid-template-columns: minmax(0, 1fr); }
  .smseg { height: auto; flex-wrap: wrap; padding: 6px; border-radius: 22px; }
  .smseg__pill { height: 42px; padding: 0 16px; }
  .smthumbs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .smform__nav .uopill,
  .smsubmit__acts .uopill,
  .smvaluation .uopill,
  .smadv__act .uopill { width: 100%; }
  .smvaluation__words,
  .smcannot__words { flex-basis: 100%; }
  .smcannot__fig { align-items: flex-start; text-align: left; }
  .smpub { grid-template-columns: 24px minmax(0, 1fr); }
  .smpub .mxpill { grid-column: 2; justify-self: start; }
  .smmap__public { position: static; margin-top: 8px; }
  .smmap__plate { height: clamp(240px, 11.72vw, 300px); }
  .smpanel__body { padding: 22px 18px; }
  .smpanel__foot { padding: 14px 18px; }
  .smdrop { padding: 24px 16px; min-height: 0; }
  .smsubmit__foot { margin-top: 0; }
}

/* ==========================================================================
   94. Profile and settings — ваш файл: кто вы, как связаться, письма, приватность
   ========================================================================== */
.acw-78 { width: 78%; }
.uoav--132 { width: 132px; height: 132px; }
.uoav--112 { width: 112px; height: 112px; }
.uobar--5 { height: 5px; border-radius: 3px; }
.acfig__value { font-size: clamp(22px, 1.33vw, 34px); white-space: normal; }
.acform { display: flex; flex-direction: column; gap: 26px; }
.acrows { display: flex; flex-direction: column; }
.acrow { display: flex; align-items: center; gap: 18px; padding: 15px 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.acrows--top .acrow:first-child { border-top: 2px solid var(--ink); }
.acrow__words { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.acrow__title { font-size: clamp(15px, 0.74vw, 19px); }
.acrow__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.acrow--locked .acrow__title { color: var(--muted); }
.uoswitch--locked { cursor: not-allowed; }
.uoswitch--locked .uoswitch__track { background: rgba(var(--ink-rgb), 0.1); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.uoswitch--locked .uoswitch__knob { background: rgba(var(--ink-rgb), 0.18); }

/* --- 01 Голова: портрет 132, имя 72, плита «at a glance» ----------------------------------- */
.achead__row { grid-template-columns: minmax(0, 1fr) clamp(340px, 25.78vw, 660px); }
.achead__lead { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.achead__who { display: flex; align-items: center; gap: 28px; }
.achead__portrait { display: block; flex: none; line-height: 0; }
.achead__portrait .uoav { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2); }
.achead__names { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.achead__name { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(36px, 2.81vw, 72px); }
.achead__name em { font-style: italic; color: var(--accent); }
.achead__acts { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin: 0; }
.achead__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.achead__pick { box-sizing: border-box; }
.visually-hidden:focus-visible + .achead__pick,
#ac-portrait-file:focus-visible ~ .sslink { outline: 2px solid var(--accent); outline-offset: 3px; }
.acglance { display: flex; flex-direction: column; gap: 14px; padding: 28px 30px; border-radius: 12px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); }
.acglance__rows { padding-top: 12px; border-top: 2px solid var(--ink); }
.acglance__rows .uoledger__row { font-size: clamp(14px, 0.66vw, 17px); }

/* --- 02, 07 Поля -------------------------------------------------------------------------- */
.acidentity,
.acdevices,
.acsearch { display: flex; flex-direction: column; gap: 24px; }
.acfor { display: flex; align-items: center; flex-wrap: wrap; gap: 26px; padding: 24px 28px; border-radius: 12px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); }
.acfor__words { display: flex; flex: 1 1 60%; flex-direction: column; gap: 6px; min-width: 0; }
.acfor__text { font-size: clamp(15px, 0.74vw, 19px); line-height: 1.5; }

/* --- 03 Как связаться: три ячейки на сетке, матрица каналов, кто знает ------------------- */
.accontact { display: flex; flex-direction: column; gap: 24px; }
.accells { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; align-items: start; }
.accell { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto 62px auto; gap: 9px 14px; align-items: center; }
.accell__label { grid-column: 1 / -1; }
.accell__input { grid-column: 1; grid-row: 2; }
.accell__sub { grid-column: 1 / -1; grid-row: 3; }
.acstamp { grid-column: 2; grid-row: 2; display: flex; flex-direction: column; align-items: flex-end; gap: 3px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); text-align: right; white-space: nowrap; }
.acstamp__k { color: var(--accent); }
.accell__add { grid-column: 2; grid-row: 2; height: 62px; padding: 0 26px; }
.acchannels { display: grid; grid-template-columns: minmax(0, 1fr) clamp(300px, 20.31vw, 520px); border-radius: 14px; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.acmatrix { display: flex; flex-direction: column; padding: clamp(22px, 1.17vw, 30px) clamp(22px, 1.25vw, 32px); background: var(--modal-field); min-width: 0; }
.acmatrix__head,
.acmatrix__row { display: grid; grid-template-columns: minmax(0, 1fr) clamp(70px, 5.08vw, 130px) clamp(90px, 5.08vw, 130px) clamp(110px, 6.64vw, 170px) clamp(100px, 5.86vw, 150px); gap: 20px; align-items: center; }
.acmatrix__head { margin: 0; padding-bottom: 12px; border-bottom: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.acmatrix__row { padding: 16px 14px; margin: 0 -14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.acmatrix__row--red { background: rgba(var(--accent-rgb), 0.05); }
.acmatrix__what { display: flex; align-items: baseline; gap: 12px; font-size: clamp(14px, 0.66vw, 17px); }
.acmatrix__row--red .acmatrix__what { color: var(--accent); }
.acmatrix__no { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.acmatrix__when,
.acmatrix__often { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.acbox { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 7px; box-shadow: inset 0 0 0 1.5px rgba(var(--ink-rgb), 0.24); cursor: pointer; transition: background 180ms ease-in-out; }
.acbox__tick { color: transparent; font-size: 12px; transition: color 180ms ease-in-out; }
.acbox .ssonly__input:checked ~ .acbox__tick { color: var(--bg); }
.acbox:has(.ssonly__input:checked) { background: var(--ink); box-shadow: none; }
.acbox--red:has(.ssonly__input:checked) { background: var(--accent); }
.acbox--red .ssonly__input:checked ~ .acbox__tick { color: var(--c-cream); }
.acbox:has(.ssonly__input:disabled) { cursor: not-allowed; box-shadow: inset 0 0 0 1.5px rgba(var(--accent-rgb), 0.35); }
.acbox:has(.ssonly__input:focus-visible) { outline: 2px solid var(--accent); outline-offset: 3px; }
.acbox--key { width: 16px; height: 16px; border-radius: 5px; background: var(--ink); box-shadow: none; cursor: default; }
.acbox--key.acbox--red { background: var(--accent); }
.acbox--key.acbox--empty { background: transparent; box-shadow: inset 0 0 0 1.5px rgba(var(--ink-rgb), 0.24); }
.acmatrix__legend { display: flex; align-items: center; flex-wrap: wrap; gap: 18px; margin: 0; padding-top: 16px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.acmatrix__key { display: inline-flex; align-items: center; gap: 8px; }
.acwho { display: flex; flex-direction: column; gap: 14px; padding: clamp(22px, 1.17vw, 30px) clamp(22px, 1.25vw, 32px); background: var(--modal-bg); border-left: 1px solid rgba(var(--ink-rgb), 0.14); }
.acwho .dpaccesses { padding-bottom: 0; border-bottom: 0; }
.acwho__written { padding-top: 12px; border-top: 2px solid var(--ink); }
.acwho__written .uoledger__v { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 1.02vw, 26px); }
.acwho__quote { margin-top: auto; padding-top: 14px; border-top: 1px solid rgba(var(--ink-rgb), 0.16); }
.acwho__sig { margin-top: 0; padding-top: 0; border-top: 0; }

/* --- 04 Вход: пароль слева, второй шаг справа ------------------------------------------- */
.acpassword { display: grid; grid-template-columns: minmax(0, 1fr) clamp(320px, 23.44vw, 600px); gap: clamp(30px, 2.73vw, 70px); align-items: start; }
.acpassword__form { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.acstrength { display: flex; flex-direction: column; gap: 9px; justify-content: flex-end; }
.acstrength .uobar { margin-top: 12px; }
.acstrength__word { font-size: clamp(13px, 0.59vw, 15px); color: var(--accent); }
.acpassword__acts { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin: 0; }
.actwofa { display: flex; flex-direction: column; gap: 16px; padding: 30px 32px; border-radius: 14px; background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.actwofa__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.actwofa__title { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(26px, 1.56vw, 40px); }
.actwofa__text { font-size: clamp(15px, 0.70vw, 18px); line-height: 1.6; color: var(--muted); }
.actwofa__rows { padding-top: 14px; border-top: 2px solid rgba(var(--accent-rgb), 0.35); }
.actwofa__rows .uoledger__row { font-size: clamp(14px, 0.66vw, 17px); }
.actwofa__acts { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin: auto 0 0; }

/* --- 05 Устройства: гроссбух в пять колонок ----------------------------------------------- */
.acdevices__table { display: flex; flex-direction: column; }
.acdevices__head,
.acdevice { display: grid; grid-template-columns: 56px clamp(160px, 11.72vw, 300px) minmax(0, 1fr) clamp(130px, 8.59vw, 220px) clamp(120px, 7.42vw, 190px); gap: 24px; align-items: center; }
.acdevices__head { margin: 0; padding-bottom: 12px; border-bottom: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.acdevice { padding: 22px 14px; margin: 0 -14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.acdevice--red { background: rgba(var(--accent-rgb), 0.05); }
.acdevice__no,
.acdevice__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.acdevice__who { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.acdevice__name { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 1.09vw, 28px); }
.acdevice__what,
.acdevice__last { font-size: clamp(14px, 0.66vw, 17px); }
.acdevice__act { justify-self: end; text-align: right; }

/* --- 06 Письма: десять переключателей слева, правила и «Going away» справа --------------- */
.acletters { display: grid; grid-template-columns: minmax(0, 1fr) clamp(320px, 24.22vw, 620px); border-radius: 14px; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.acletters__kinds { display: flex; flex-direction: column; gap: 18px; padding: clamp(22px, 1.33vw, 34px) clamp(22px, 1.41vw, 36px); background: var(--modal-bg); min-width: 0; }
.acletters__kinds .uosec__head { padding-bottom: 18px; }
.acletters__rules { display: flex; flex-direction: column; gap: 16px; padding: clamp(22px, 1.33vw, 34px) clamp(22px, 1.41vw, 36px); background: var(--modal-field); border-left: 1px solid rgba(var(--ink-rgb), 0.14); }
.acaway { display: flex; align-items: center; gap: 12px; }
.acaway .sminput { flex: 1; }
.acpause { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; margin: auto 0 0; padding-top: 16px; border-top: 2px solid var(--ink); }
.acpause__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); text-align: right; line-height: 1.7; }

/* --- 08 Приватность: пять переключателей слева, что храним справа ------------------------- */
.acprivacy { display: grid; grid-template-columns: minmax(0, 1fr) clamp(320px, 24.22vw, 620px); border-radius: 14px; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.acprivacy__words { display: flex; flex-direction: column; gap: 18px; padding: clamp(22px, 1.41vw, 36px) clamp(22px, 1.48vw, 38px); background: var(--modal-bg); min-width: 0; }
.acprivacy__title { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(30px, 2.19vw, 56px); }
.acprivacy__title em { font-style: italic; color: var(--accent); }
.acprivacy__text { margin: 0; font-size: clamp(15px, 0.78vw, 20px); line-height: 1.6; }
.achold { display: flex; flex-direction: column; gap: 16px; padding: clamp(22px, 1.41vw, 36px) clamp(22px, 1.48vw, 38px); background: var(--modal-field); border-left: 1px solid rgba(var(--ink-rgb), 0.14); }
.achold__rows { padding-top: 12px; border-top: 2px solid var(--ink); }
.achold__k { font-family: var(--text); font-size: clamp(14px, 0.66vw, 17px); letter-spacing: 0; text-transform: none; color: var(--ink); }
.achold__v { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.achold__acts { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin: auto 0 0; }
.achold__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); line-height: 1.7; }

/* --- 09 Советник: одна строка ----------------------------------------------------------- */
.acadv__title { font-size: clamp(28px, 1.88vw, 48px); }
.acadv__acts { display: flex; flex: none; align-items: center; flex-wrap: wrap; gap: 12px; }
.acadv .smadv__words { flex: 1 1 30%; }
.acadv .smadv__text { max-width: 48ch; }

/* --- 10 Закрытие: две двери на сетке, жалоба справа --------------------------------------- */
.acclose { display: grid; grid-template-columns: minmax(0, 1fr) clamp(320px, 23.44vw, 600px); gap: clamp(30px, 2.73vw, 70px); align-items: stretch; }
.acclose__left { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.acdoors { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.acdoor { display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto auto; gap: 12px; padding: 28px 30px; border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.acdoor--red { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.acdoor__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.acdoor__title { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.33vw, 34px); }
.acdoor__text { font-size: clamp(14px, 0.66vw, 17px); line-height: 1.55; color: var(--muted); }
.acdoor__rows { padding-top: 12px; border-top: 2px solid var(--ink); }
.acdoor--red .acdoor__rows { border-top-color: rgba(var(--accent-rgb), 0.35); }
.acdoor__rows .uoledger__row { font-size: clamp(14px, 0.62vw, 16px); }
.accomplain { display: flex; flex-direction: column; gap: 16px; padding: 30px 32px; border-radius: 14px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); }
.accomplain__rows { padding-top: 14px; border-top: 2px solid var(--ink); }
.accomplain__rows .uoledger__row { font-size: clamp(14px, 0.66vw, 17px); }
.accomplain__acts { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin: auto 0 0; }


/* ==========================================================================
   95. Profile and settings — адаптив
   ========================================================================== */
@media (max-width: 1680px) {
  .achead__row { grid-template-columns: minmax(0, 1fr); }
  .acchannels { grid-template-columns: minmax(0, 1fr) clamp(300px, 16.41vw, 420px); }
  .acmatrix__head,
  .acmatrix__row { grid-template-columns: minmax(0, 1fr) 40px 40px clamp(100px, 5.86vw, 150px); }
  .acmatrix__often { display: none; }
  .acdevices__head { display: none; }
  .acdevice { grid-template-columns: minmax(0, 1fr) auto; gap: 8px 20px; }
  .acdevice__no,
  .acdevice__what { display: none; }
  .acdevice__act { grid-column: 2; grid-row: 1 / span 2; }
}

@media (max-width: 1100px) {
  .accells,
  .acchannels,
  .acpassword,
  .acletters,
  .acprivacy,
  .acclose,
  .acdoors { grid-template-columns: minmax(0, 1fr); }
  .acwho,
  .acletters__rules,
  .achold { border-left: 0; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
  .smgrid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .achead__who { flex-wrap: wrap; }
  .acadv .smadv__figs { flex-basis: 100%; }
  .acpause__note { flex-basis: 100%; text-align: left; }
}

@media (max-width: 640px) {
  .smgrid--3 { grid-template-columns: minmax(0, 1fr); }
  .acmatrix__head { display: none; }
  .acmatrix__row { grid-template-columns: 40px 40px minmax(0, 1fr); }
  .acmatrix__what { grid-column: 1 / -1; }
  .acmatrix__when { grid-column: 3; }
  .accell { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto; }
  .accell__input,
  .acstamp,
  .accell__add { grid-column: 1; grid-row: auto; }
  .acstamp { flex-direction: row; gap: 12px; text-align: left; white-space: normal; }
  .acaway { flex-wrap: wrap; }
  .acaway .uopill,
  .acpassword__acts .uopill,
  .actwofa__acts .uopill,
  .achold__acts .uopill,
  .accomplain__acts .uopill,
  .acadv__acts .uopill,
  .acpause .uopill,
  .achead__acts .uopill { width: 100%; }
  .acrow { flex-wrap: wrap; }
  .acrow .uoswitch { flex-basis: 100%; }
  .achead__name { font-size: clamp(32px, 1.88vw, 48px); }
  .acadv__acts { flex: 1 1 100%; }
  .acadv__acts .uopill { flex: 1 1 100%; }
}

/* ==========================================================================
   96. Agent overview — ваш стол: тёмный рельс, день, покупатели, дома, неделя, обещание
   ========================================================================== */
.aow-6 { width: 6%; }
.aow-70 { width: 70%; }
.aow-82 { width: 82%; }
.aow-89 { width: 89%; }
.aow-95 { width: 95%; }
.aow-100 { width: 100%; }
.aopage .uobody { align-items: stretch; }
.aorail__wrap { align-self: stretch; padding-top: 34px; }
.aorail { position: sticky; top: 40px; }
.aorail { display: flex; flex-direction: column; gap: 20px; padding: clamp(22px, 1.17vw, 30px) clamp(20px, 1.09vw, 28px); border-radius: 14px; background: var(--c-night); color: var(--c-cream); box-shadow: inset 0 0 0 1px rgba(var(--c-cream-rgb), 0.18); }
.aorail__head { display: flex; flex-direction: column; gap: 13px; padding-bottom: 16px; border-bottom: 2px solid rgba(var(--c-cream-rgb), 0.28); }
.aorail__who { display: flex; align-items: center; gap: 16px; margin: 0; }
.uoav--58 { width: 58px; height: 58px; }
.aorail__av { box-shadow: none; }
.aorail__names { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.aorail__name { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.09vw, 28px); color: var(--c-cream); }
.aorail__state { display: inline-flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--gold); }
.aorail__dot { width: 6px; height: 6px; border-radius: 50%; background: var(--gold); }
.aorail__desk { display: flex; white-space: nowrap; align-items: center; gap: 12px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(var(--c-cream-rgb), 0.78); }
.aorail__deskline { flex: 1; height: 1px; background: rgba(var(--c-cream-rgb), 0.18); }
.aorail__counts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.aorail__count { display: flex; flex-direction: column; gap: 3px; padding-left: 14px; border-left: 1px solid rgba(var(--c-cream-rgb), 0.18); }
.aorail__count:first-child { padding-left: 0; border-left: 0; }
.aorail__countk { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(var(--c-cream-rgb), 0.78); }
.aorail__countv { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 0.94vw, 24px); color: var(--c-cream); }
.aorail__needs { display: flex; flex-direction: column; gap: 9px; padding: 18px; border-radius: 11px; background: rgba(201, 169, 110, 0.12); box-shadow: inset 0 0 0 1px rgba(201, 169, 110, 0.45); color: inherit; text-decoration: none; transition: background 180ms ease-in-out; }
.aorail__needs:hover { background: rgba(201, 169, 110, 0.18); }
.aorail__needshead { display: flex; align-items: center; gap: 11px; }
.aorail__needsdisc { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 30px; height: 30px; border-radius: 50%; background: var(--gold); color: var(--c-night); font-family: var(--mono); font-size: 12px; }
.aorail__needstitle { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--gold); }
.aorail__needsarrow { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(var(--c-cream-rgb), 0.78); }
.aorail__needlist { display: flex; flex-direction: column; gap: 6px; }
.aorail__need { display: flex; align-items: baseline; gap: 10px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(var(--c-cream-rgb), 0.78); }
.aorail__needdot { flex: none; width: 4px; height: 4px; margin-top: 5px; border-radius: 50%; background: var(--gold); }
.aorail__needwhat { font-family: var(--text); font-size: clamp(14px, 0.59vw, 15px); letter-spacing: 0; text-transform: none; color: var(--c-cream); }
.aorail__needlead { flex: 1; border-bottom: 1px dotted rgba(var(--c-cream-rgb), 0.24); }
.aorail__needwho { white-space: nowrap; }
.aonav { display: flex; flex-direction: column; gap: 19px; }
.aonav__group { display: flex; flex-direction: column; gap: 7px; }
.aonav__title { display: flex; align-items: baseline; gap: 10px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(var(--c-cream-rgb), 0.78); }
.aonav__titleline { flex: 1; height: 1px; background: rgba(var(--c-cream-rgb), 0.12); }
.aonav__rows { display: grid; grid-template-columns: auto minmax(0, 1fr); }
.aonav__seg { display: flex; align-items: center; border-left: 1px solid rgba(var(--c-cream-rgb), 0.18); }
.aonav__dash { width: 11px; height: 1px; background: rgba(var(--c-cream-rgb), 0.26); }
.aonav__seg--on { border-left: 2px solid var(--gold); }
.aonav__seg--on .aonav__dash { width: 18px; height: 2px; background: var(--gold); }
.aonav__item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: baseline; padding: 13px 16px; border-radius: 9px; color: var(--c-cream); font-size: clamp(15px, 0.70vw, 18px); text-decoration: none; transition: background 180ms ease-in-out, color 180ms ease-in-out; }
.aonav__item:hover { background: rgba(var(--c-cream-rgb), 0.07); color: var(--gold); }
.aonav__item--on { background: rgba(201, 169, 110, 0.12); color: var(--gold); }
.aonav__words { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.aonav__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(var(--c-cream-rgb), 0.78); }
.aonav__sub--gold { color: var(--gold); }
.aonav__count { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(var(--c-cream-rgb), 0.78); white-space: nowrap; }
.aonav__count--gold { color: var(--gold); }
.aoweek,
.aodoing { display: flex; flex-direction: column; gap: 10px; padding: 18px; border-radius: 11px; background: rgba(var(--c-cream-rgb), 0.05); box-shadow: inset 0 0 0 1px rgba(var(--c-cream-rgb), 0.18); }
.aodoing { gap: 11px; padding: 20px; }
.aorail__label { display: flex; align-items: baseline; gap: 11px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(var(--c-cream-rgb), 0.78); }
.aorail__label .uoside__gap { height: 1px; background: rgba(var(--c-cream-rgb), 0.18); align-self: center; }
.aoweek .aorail__label span:last-child { color: var(--gold); }
.aoweek__row { display: flex; gap: 6px; }
.aoweek__day { display: flex; flex: 1; flex-direction: column; align-items: center; gap: 5px; min-width: 0; }
.aoweek__cell { display: flex; align-items: flex-end; justify-content: center; width: 100%; height: 34px; padding-bottom: 6px; border-radius: 7px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; }
.aoweek__cell--booked { background: var(--gold); color: var(--c-night); }
.aoweek__cell--free { background: rgba(201, 169, 110, 0.16); color: rgba(var(--c-cream-rgb), 0.78); }
.aoweek__cell--away { background: repeating-linear-gradient(45deg, rgba(var(--c-cream-rgb), 0.07), rgba(var(--c-cream-rgb), 0.07) 5px, transparent 5px 10px); color: rgba(var(--c-cream-rgb), 0.5); }
.aoweek__name { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(var(--c-cream-rgb), 0.78); }
.aodoing__rows { display: flex; flex-direction: column; gap: 11px; }
.aodoing__row { display: flex; flex-direction: column; gap: 5px; }
.aodoing__top { display: flex; align-items: baseline; gap: 11px; font-size: clamp(14px, 0.62vw, 16px); color: var(--c-cream); }
.aodoing__top .uoside__gap { border-bottom: 1px dotted rgba(var(--c-cream-rgb), 0.26); align-self: stretch; margin-bottom: 4px; }
.aodoing__v { font-family: var(--display); font-size: clamp(18px, 0.86vw, 22px); }
.aodoing__row--gold .aodoing__v { color: var(--gold); }
.aodoing__bar { position: relative; display: block; height: 3px; border-radius: 2px; background: rgba(var(--c-cream-rgb), 0.14); overflow: hidden; }
.aodoing__fill { position: absolute; inset: 0 auto 0 0; border-radius: 2px; background: rgba(var(--c-cream-rgb), 0.45); }
.aodoing__fill--gold { background: var(--gold); }
.aorail__foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: rgba(var(--c-cream-rgb), 0.55); }
.aorail__foot a { color: rgba(var(--c-cream-rgb), 0.85); text-decoration: none; }
.aorail__foot a:hover { color: var(--gold); }
.aorail__link { display: inline-flex; align-items: center; gap: 8px; margin-top: 2px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--gold); text-decoration: none; }

/* --- плиты справа: общее ------------------------------------------------------------------ */
.aopage .uoflow > section { display: flex; flex-direction: column; gap: 24px; }
.aopage .uosec__head { margin: 0; }
.aopage .uoledger__row { font-size: clamp(14px, 0.66vw, 17px); color: var(--ink); }
.aopage .uoledger__k { color: var(--ink); }
.aopage .uoledger__v { color: var(--muted); }
.aopage .uoledger__v.sdred { color: var(--accent); }
.aopage .uobar { height: 3px; border-radius: 2px; }
.aoredcard { border-radius: 12px; background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.aopaper { border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }

/* --- 01 День ------------------------------------------------------------------------------- */
.aotoday__grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 26px; }
.aonext { display: grid; grid-template-columns: clamp(180px, 11.72vw, 300px) minmax(0, 1fr); border-radius: 12px; overflow: hidden; background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); cursor: pointer; }
.aonext__photo { position: relative; display: block; min-height: 300px; background: repeating-linear-gradient(45deg, var(--sheet) 0 6px, var(--sheet-strong) 6px 12px); }
.aonext__body { display: flex; flex-direction: column; gap: 13px; padding: clamp(20px, 1.17vw, 30px) clamp(20px, 1.25vw, 32px); min-width: 0; }
.aonext__when { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.aonext__home { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(26px, 1.56vw, 40px); }
.aonext__measure { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); padding-bottom: 12px; border-bottom: 2px solid rgba(var(--accent-rgb), 0.35); }
.aonext__home + .aonext__measure { margin-top: -8px; }
.aonext__buyer .vwwho__name { font-size: clamp(15px, 0.70vw, 18px); }
.aonext__rows { padding-top: 12px; border-top: 1px solid rgba(var(--accent-rgb), 0.25); }
.aonext__acts { display: flex; flex-wrap: wrap; gap: 12px; margin: auto 0 0; padding-top: 6px; }
.aorest__col { display: flex; flex-direction: column; gap: 14px; padding: clamp(20px, 1.17vw, 30px) clamp(20px, 1.25vw, 32px); border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.aorests { display: flex; flex-direction: column; }
.aorest { display: flex; flex-direction: column; gap: 5px; padding: 16px 14px; margin: 0 -14px; border-radius: 10px; color: inherit; text-decoration: none; transition: background 180ms ease-in-out; }
.aorest:hover { background: rgba(var(--ink-rgb), 0.05); }
.aorest__top { display: flex; align-items: baseline; gap: 12px; min-width: 0; }
.aorest__hour { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 1.09vw, 28px); }
.aorest__home { font-size: clamp(15px, 0.70vw, 18px); }
.aorest__survey { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); white-space: nowrap; }
.aorest__who { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.aocounts { display: flex; flex-direction: column; gap: 8px; margin-top: auto; padding-top: 14px; border-top: 2px solid var(--ink); }
.aocount { display: flex; align-items: baseline; gap: 12px; font-size: clamp(14px, 0.66vw, 17px); }
.aocount::after { content: ""; order: 1; flex: 1; border-bottom: 1px dotted rgba(var(--ink-rgb), 0.25); }
.aocount__k { order: 0; }
.aocount__v { order: 2; color: var(--muted); }
.aocount__v.sdred { color: var(--accent); }

/* --- 02 Ждёт вас --------------------------------------------------------------------------- */
.aoneeds__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.aoneed { display: flex; flex-direction: column; gap: 12px; padding: clamp(20px, 1.17vw, 30px) clamp(20px, 1.25vw, 32px); border-radius: 12px; background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.aoneed .sdmeta { color: var(--accent); }
.aoneed__title { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.25vw, 32px); }
.aoneed__who { font-size: clamp(15px, 0.70vw, 18px); }
.aoneed__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); padding-bottom: 12px; border-bottom: 2px solid rgba(var(--accent-rgb), 0.35); }
.aoneed__text { font-size: clamp(15px, 0.70vw, 18px); line-height: 1.55; }
.aoneed__cta { margin-top: auto; }

/* --- 03 Покупатели ------------------------------------------------------------------------- */
.aobuyers__table { display: flex; flex-direction: column; }
.aobuyers__head,
.aobuyer { display: grid; grid-template-columns: 56px clamp(200px, 11.72vw, 300px) clamp(140px, 8.59vw, 220px) clamp(130px, 7.81vw, 200px) minmax(0, 1fr) clamp(130px, 7.81vw, 200px); gap: 24px; align-items: center; }
.aobuyers__head { margin: 0; padding-bottom: 12px; border-bottom: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.aobuyers__head span:last-child { text-align: right; }
.aobuyer { padding: 22px 14px; margin: 0 -14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); color: inherit; text-decoration: none; transition: background 180ms ease-in-out; }
.aobuyer:hover { background: rgba(var(--ink-rgb), 0.04); }
.aobuyer--red { background: rgba(var(--accent-rgb), 0.05); }
.aobuyer--red:hover { background: rgba(var(--accent-rgb), 0.08); }
.aobuyer__no { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.aobuyer .vwwho__name { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 1.02vw, 26px); }
.aobuyer__cell { font-size: clamp(14px, 0.66vw, 17px); }
.aobuyer__cell + .aobuyer__cell { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.aobuyer__stand { font-size: clamp(14px, 0.66vw, 17px); }
.aobuyer__next { display: inline-flex; align-items: center; justify-content: flex-end; gap: 8px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); text-align: right; }

/* --- 04 Дома: полоса 600 × 320 --------------------------------------------------------------- */
.aohomes__row { display: flex; gap: 24px; margin: 0; padding: 0 0 14px; list-style: none; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: thin; }
.aohome { display: flex; flex: 0 0 clamp(300px, 23.44vw, 600px); flex-direction: column; border-radius: 12px; overflow: hidden; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); scroll-snap-align: start; cursor: pointer; }
.aohome--red { background: rgba(var(--accent-rgb), 0.05); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.3); }
.aohome__plate { position: relative; display: block; height: clamp(180px, 12.50vw, 320px); background: repeating-linear-gradient(45deg, var(--sheet) 0 6px, var(--sheet-strong) 6px 12px); }
.aohome__plate .uophoto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.aohome__plate .sdinner { inset: 0; border-radius: 6px; box-shadow: inset 0 0 0 1px rgba(var(--c-cream-rgb), 0.3); }
.sdpill--28 { height: 28px; padding: 0 13px; }
.aohome__dark { position: absolute; bottom: 16px; left: 16px; display: inline-flex; align-items: center; height: 28px; padding: 0 13px; border-radius: 999px; background: rgba(var(--c-night-rgb), 0.9); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--c-cream); white-space: nowrap; }
.aohome__words { display: flex; flex-direction: column; gap: 5px; padding: 24px 26px 0; }
.aohome__no { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.aohome__addr { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.25vw, 32px); }
.aohome__measure { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.aohome__price { display: flex; align-items: baseline; gap: 14px; margin: 14px 26px 0; padding-top: 14px; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
.aohome__sum { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.41vw, 36px); }
.aohome__move { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); white-space: nowrap; }
.aohome__move.sdred { color: var(--accent); }
.aohome__rows { padding: 16px 26px 0; gap: 7px; }
.aohome__rows .uoledger__row { font-size: clamp(14px, 0.62vw, 16px); }
.aohome__rows .uoledger__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.aohome__why { padding: 12px 26px 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.aohome__acts { display: flex; align-items: center; gap: 10px; margin-top: auto; padding: 18px 26px 26px; }
.aohome__acts .uopill { font-size: clamp(14px, 0.59vw, 15px); }
.aohome__acts .sslink { padding: 0 20px; }

/* --- 05 Отчёты: 680 + 1fr ------------------------------------------------------------------- */
.aopage section.aoreports { display: grid; grid-template-columns: clamp(320px, 26.56vw, 680px) minmax(0, 1fr); gap: clamp(24px, 2.73vw, 70px); align-items: stretch; }
.aoreports__card { display: flex; flex-direction: column; gap: 16px; padding: clamp(22px, 1.33vw, 34px) clamp(22px, 1.41vw, 36px); border-radius: 14px; background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.34); }
.aoreports__title { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(30px, 1.95vw, 50px); }
.aoreports__title em { font-style: italic; color: var(--accent); }
.aolate { display: flex; flex: 1; flex-direction: column; gap: 14px; padding-top: 16px; border-top: 2px solid rgba(var(--accent-rgb), 0.35); }
.aolate__home { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.33vw, 34px); }
.aolate__when { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); margin-top: -9px; }
.aolate__text { font-size: clamp(15px, 0.74vw, 19px); line-height: 1.55; }
.aolate__rows { padding-top: 14px; border-top: 1px solid rgba(var(--accent-rgb), 0.25); gap: 9px; }
.aolate__rows .uoledger__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.aolate__acts { display: flex; flex-wrap: wrap; gap: 12px; margin: auto 0 0; padding-top: 4px; }
.aowritten { display: flex; flex-direction: column; gap: 16px; padding: clamp(22px, 1.25vw, 32px) clamp(22px, 1.33vw, 34px); border-radius: 14px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.aobars { display: flex; flex-direction: column; gap: 11px; padding-bottom: 16px; border-bottom: 2px solid var(--ink); }
.aobar { display: flex; flex-direction: column; gap: 5px; }
.aobar__top { display: flex; align-items: baseline; gap: 12px; font-size: clamp(14px, 0.66vw, 17px); }
.aobar__top .uoside__gap { border-bottom: 1px dotted rgba(var(--ink-rgb), 0.25); align-self: stretch; margin-bottom: 4px; }
.aobar__v { font-family: var(--display); font-size: clamp(18px, 0.94vw, 24px); }
.aowritten__quote { margin: 0; }
.aowritten__note { margin-top: auto; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }

/* --- 06 Неделя ------------------------------------------------------------------------------- */
.aocell--half { height: 42px; }
.aopage .vwday__name.sdred,
.aopage .vwday__date.sdred { color: var(--accent); }
.aopage .vwlegend .uolink { margin-left: auto; }

/* --- 07 Цены --------------------------------------------------------------------------------- */
.aoprices__table { display: flex; flex-direction: column; }
.aoprices__head,
.aoprice { display: grid; grid-template-columns: 56px clamp(100px, 5.86vw, 150px) clamp(180px, 11.72vw, 300px) minmax(0, 1fr) clamp(120px, 7.42vw, 190px) clamp(110px, 7.42vw, 190px); gap: 22px; align-items: center; }
.aoprices__head { margin: 0; padding-bottom: 12px; border-bottom: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.aoprice { padding: 22px 14px; margin: 0 -14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.aoprice--red { background: rgba(var(--accent-rgb), 0.05); }
.aoprice__no { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.aoprice__when { font-size: clamp(14px, 0.62vw, 16px); }
.aoprice__home { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 1.09vw, 28px); }
.aoprice__move { display: flex; align-items: baseline; flex-wrap: wrap; gap: 14px; }
.aoprice__was { font-family: var(--display); font-size: clamp(17px, 0.86vw, 22px); color: var(--muted); }
.aoprice__arrow { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.aoprice__now { font-family: var(--display); font-size: clamp(20px, 1.09vw, 28px); }
.aoprice__delta { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.aoprice__delta.sdred { color: var(--accent); }
.aoprice__why { font-size: clamp(14px, 0.62vw, 16px); line-height: 1.45; }
.aoprice__stand { display: flex; justify-content: flex-end; }
.aopage .mxpill--red { background: var(--accent); color: var(--c-cream); }
.aopage .mxpill--ring { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22); }

/* --- 08 Обещание: 1fr + 620 ------------------------------------------------------------------ */
.aopage section.aopledge { display: grid; grid-template-columns: minmax(0, 1fr) clamp(300px, 24.22vw, 620px); gap: 0; border-radius: 14px; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.aopledge__words { display: flex; flex-direction: column; gap: 16px; padding: clamp(22px, 1.41vw, 36px) clamp(22px, 1.48vw, 38px); background: var(--modal-bg); }
.aopledge__words .uosec__head { padding-bottom: 0; border-bottom: 0; }
.aopledge__words .uosec__title { font-size: clamp(30px, 1.95vw, 50px); }
.aopromises { display: flex; flex-direction: column; gap: 13px; padding-top: 16px; border-top: 2px solid var(--ink); }
.aopromise { display: flex; flex-direction: column; gap: 6px; }
.aopromise__top { display: flex; align-items: baseline; gap: 12px; }
.aopromise__top .uoside__gap { border-bottom: 1px dotted rgba(var(--ink-rgb), 0.22); align-self: stretch; margin-bottom: 4px; }
.aopromise__top .mxpill { flex: none; }
.aopromise__what { font-size: clamp(15px, 0.74vw, 19px); }
.aopromise__result { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.aopromise__result.sdred { color: var(--accent); }
.aopledge__public { display: flex; flex-direction: column; gap: 16px; padding: clamp(22px, 1.41vw, 36px) clamp(22px, 1.48vw, 38px); background: var(--modal-field); border-left: 1px solid rgba(var(--ink-rgb), 0.14); }
.aobesides { display: flex; flex-direction: column; gap: 11px; padding-bottom: 16px; border-bottom: 2px solid var(--ink); }
.aobeside { display: flex; align-items: baseline; gap: 12px; font-size: clamp(14px, 0.66vw, 17px); }
.aobeside::after { content: ""; order: 1; flex: 1; border-bottom: 1px dotted rgba(var(--ink-rgb), 0.25); }
.aobeside__k { order: 0; }
.aobeside__v { order: 2; font-family: var(--display); font-size: clamp(19px, 1.02vw, 26px); }
.aobeside__v.sdred { color: var(--accent); }
.aopledge__quote { margin: 0; }
.aopledge__acts { display: flex; flex-wrap: wrap; gap: 12px; margin: auto 0 0; padding-top: 6px; }

/* --- 09 Публичная страница ------------------------------------------------------------------- */
.aopublic__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.aocard { display: flex; flex-direction: column; gap: 14px; padding: clamp(20px, 1.17vw, 30px) clamp(20px, 1.25vw, 32px); border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.aocard--red { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.aocard:last-child { background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); }
.aocard__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.aocard__title { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.25vw, 32px); padding-bottom: 12px; border-bottom: 2px solid var(--ink); }
.aocard--red .aocard__title { border-bottom-color: rgba(var(--accent-rgb), 0.35); }
.aocard__big { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(40px, 2.50vw, 64px); padding-bottom: 12px; border-bottom: 2px solid var(--ink); }
.aocard .vwquote { margin: 0; }
.aocard__rows { gap: 8px; }
.aocard__rows .uoledger__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.aocard__cta,
.aocard__link,
.aocard__sig { margin-top: auto; }

/* --- 10 Стол: 1fr + 560 ---------------------------------------------------------------------- */
.aopage section.aotable { display: grid; grid-template-columns: minmax(0, 1fr) clamp(280px, 21.88vw, 560px); gap: clamp(24px, 2.73vw, 70px); align-items: stretch; }
.aotable__list { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.aoteam__rows { display: flex; flex-direction: column; }
.aoteam { display: grid; grid-template-columns: 56px clamp(180px, 11.72vw, 300px) minmax(0, 1fr) clamp(120px, 7.81vw, 200px); gap: 24px; align-items: center; padding: 20px 14px; margin: 0 -14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.aoteam:first-child { background: rgba(var(--accent-rgb), 0.05); }
.aoteam__no { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.aoteam .vwwho__name { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 1.02vw, 26px); }
.aoteam__owes { font-size: clamp(14px, 0.66vw, 17px); }
.aoteam__stand { display: flex; justify-content: flex-end; }
.aooffice { display: flex; flex-direction: column; gap: 16px; padding: clamp(20px, 1.17vw, 30px) clamp(20px, 1.25vw, 32px); border-radius: 14px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); }
.aooffice__addr { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.33vw, 34px); }
.aooffice__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); margin-top: -11px; padding-bottom: 14px; border-bottom: 2px solid var(--ink); }
.aooffice__rows { gap: 9px; }
.aooffice__rows .uoledger__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.aooffice__quote { margin: auto 0 0; padding-top: 14px; border-top: 1px solid rgba(var(--ink-rgb), 0.16); }

/* --- тёмная тема: рельс и так ночной; крем на снимках остаётся кремом ----------------------- */
[data-theme="dark"] .aorail { box-shadow: inset 0 0 0 1px rgba(var(--c-cream-rgb), 0.24); }
[data-theme="dark"] .aohome__dark { background: rgba(var(--c-night-rgb), 0.92); }

/* ==========================================================================
   97. Agent overview — адаптив
   ========================================================================== */
@media (max-width: 1500px) {
  .aotoday__grid,
  .aoneeds__grid,
  .aopublic__grid { grid-template-columns: minmax(0, 1fr); }
  .aopage section.aoreports,
  .aopage section.aotable,
  .aopage section.aopledge { grid-template-columns: minmax(0, 1fr); }
  .aopledge__public { border-left: 0; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
}

@media (max-width: 1100px) {
  .aorail__wrap { padding-top: 0; }
  .aorail { position: static; }
  .aobuyers__head,
  .aoprices__head { display: none; }
  .aobuyer { grid-template-columns: 40px minmax(0, 1fr) minmax(0, 1fr); }
  .aobuyer .vwwho { grid-column: 2 / -1; }
  .aobuyer__cell,
  .aobuyer__stand,
  .aobuyer__next { grid-column: 2 / -1; }
  .aobuyer__next { justify-content: flex-start; text-align: left; }
  .aoprice { grid-template-columns: 40px minmax(0, 1fr) auto; }
  .aoprice__when { grid-column: 2; }
  .aoprice__home,
  .aoprice__move,
  .aoprice__why { grid-column: 2 / -1; }
  .aoprice__stand { grid-column: 3; grid-row: 1; }
  .aoteam { grid-template-columns: 40px minmax(0, 1fr) auto; }
  .aoteam__owes { grid-column: 2 / -1; }
  .aoteam__stand { grid-column: 3; grid-row: 1; }
}

@media (max-width: 640px) {
  .aorail { gap: 16px; }
  .aonav__item { padding: 11px 12px; }
  .aorail__needwho { white-space: normal; }
  .aorail__desk { flex-wrap: wrap; white-space: normal; }
  .aorail__desk span:first-child { flex-basis: 100%; }
  .aorail__deskline { display: none; }
  .aonext { grid-template-columns: minmax(0, 1fr); }
  .aonext__photo { min-height: 0; height: 220px; }
  .aonext__acts .uopill,
  .aolate__acts .uopill,
  .aopledge__acts .uopill { width: 100%; }
  .aorest__top { flex-wrap: wrap; }
  .aorest__survey { white-space: normal; }
  .aobuyer,
  .aoprice,
  .aoteam { padding: 16px 10px; margin: 0 -10px; }
  .aohome { flex-basis: min(300px, 82vw); }
  .aohome__acts { flex-wrap: wrap; }
  .aohome__acts .sslink { padding: 0; }
  .aohome__move { white-space: normal; }
  .aoweek__cell { height: 30px; }
  .aoteam { grid-template-columns: 40px minmax(0, 1fr); }
  .aoteam .vwwho { grid-column: 2; }
  .aoteam__stand { grid-column: 2; grid-row: auto; justify-content: flex-start; }
  .aopage .vwlegend .uolink { margin-left: 0; flex-basis: 100%; }
}

/* ==========================================================================
   98. Agent today — ваш день: полоса, следующий час, таймлайн, долги, отчёт, конец дня
   ========================================================================== */
.uopill--48 { height: 48px; padding: 0 24px; font-size: clamp(14px, 0.62vw, 16px); }
.uopill--52 { height: 52px; padding: 0 26px; font-size: clamp(14px, 0.62vw, 16px); }
.mxpill--30 { height: 30px; padding: 0 14px; }
.vwquote--25 { font-size: clamp(18px, 0.98vw, 25px); }
.mxmono--60 { width: 60px; height: 60px; font-size: 16px; }
.atpage .uoflow > section { display: flex; flex-direction: column; gap: 24px; }
.atpage .uosec__head { margin: 0; }
.atpage .uoledger__row { font-size: clamp(14px, 0.66vw, 17px); color: var(--ink); }
.atpage .uoledger__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.atpage .uoledger__v { color: var(--ink); }
.atpage .uoledger__v.sdred { color: var(--accent); }

/* --- 01 День: строка файла, 1fr + 620, пять цифр на одной линейке ---------------------------- */
.atband { gap: 20px; }
.atfile { display: flex; align-items: center; gap: 16px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.atfile__tick { flex: none; width: 9px; height: 9px; border-top: 1px solid rgba(var(--ink-rgb), 0.4); border-left: 1px solid rgba(var(--ink-rgb), 0.4); }
.atband__row { display: grid; grid-template-columns: minmax(0, 1fr) clamp(300px, 24.22vw, 620px); gap: clamp(24px, 2.34vw, 60px); align-items: end; padding-bottom: 24px; border-bottom: 2px solid var(--ink); }
.atband__lead { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.atband__title { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(40px, 3.28vw, 84px); }
.atband__title em,
.atclose__title em { font-style: italic; color: var(--accent); }
.atband__text { margin: 0; font-size: clamp(16px, 0.78vw, 20px); line-height: 1.55; }
.atlate { display: flex; flex-direction: column; gap: 12px; padding: 26px 28px; border-radius: 12px; background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.atlate__head { display: flex; align-items: center; gap: 13px; margin: 0; }
.atlate__disc { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 40px; height: 40px; border-radius: 50%; background: var(--accent); color: var(--c-cream); font-family: var(--display); font-size: 22px; line-height: 1; font-variant-numeric: lining-nums; }
.atlate__label { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.atlate__rows { gap: 7px; padding-top: 12px; border-top: 1px solid rgba(var(--accent-rgb), 0.25); }
.atlate__link { margin-top: 0; }
.atfigs { align-items: center; }
.atfig { flex: none; gap: 6px; padding: 0 30px; }
.atfig .sdfig__value { font-size: clamp(24px, 1.48vw, 38px); }
.atfig .sdfig__value.sdred { color: var(--accent); }
.atfigs .uopill { margin-left: 30px; }

/* --- 02 Следующий час: 440 + 1fr, одна красная карта ----------------------------------------- */
.atnext__card { display: grid; grid-template-columns: clamp(220px, 17.19vw, 440px) minmax(0, 1fr); border-radius: 14px; overflow: hidden; background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); cursor: pointer; }
.atnext__photo { position: relative; display: block; min-height: clamp(300px, 20.31vw, 520px); background: repeating-linear-gradient(45deg, var(--sheet) 0 6px, var(--sheet-strong) 6px 12px); }
.atnext__photo .uophoto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.atnext__inner { inset: 14px; border-radius: 8px; box-shadow: inset 0 0 0 1px rgba(var(--c-cream-rgb), 0.3); }
.atnext__pill { top: 20px; left: 20px; }
.atnext__body { display: flex; flex-direction: column; gap: 16px; padding: clamp(22px, 1.41vw, 36px) clamp(22px, 1.56vw, 40px); min-width: 0; }
.atnext__hour { display: flex; align-items: baseline; flex-wrap: wrap; gap: 16px; margin: 0; }
.atnext__time { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(34px, 2.19vw, 56px); }
.atnext__hoursub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.atnext__home { display: flex; flex-direction: column; gap: 5px; margin: 0; padding-bottom: 14px; border-bottom: 2px solid rgba(var(--accent-rgb), 0.35); }
.atnext__addr { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(26px, 1.64vw, 42px); }
.atnext__measure { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.atnext__who { display: flex; align-items: center; gap: 15px; margin: 0; }
.atnext__who .vwwho__name { font-size: clamp(22px, 1.17vw, 30px); }
.atnext__who .mxpill { flex: none; }
.atnext__brief { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; padding-top: 16px; border-top: 1px solid rgba(var(--accent-rgb), 0.25); }
.atnext__col { display: flex; flex-direction: column; gap: 9px; min-width: 0; }
.atnext__item { display: flex; align-items: baseline; gap: 11px; font-size: clamp(14px, 0.66vw, 17px); }
.atnext__dot { flex: none; width: 6px; height: 6px; margin-top: 8px; border-radius: 50%; background: var(--accent); }
.atnext__rows { gap: 8px; padding-top: 16px; border-top: 1px solid rgba(var(--accent-rgb), 0.25); }
.atnext__acts { display: flex; flex-wrap: wrap; gap: 12px; margin: auto 0 0; padding-top: 4px; }

/* --- 03 Часы: 130 + 22 + 1fr, узел на каждой строке -------------------------------------------- */
.atline { display: grid; grid-template-columns: clamp(70px, 5.08vw, 130px) 22px minmax(0, 1fr); }
.athour { display: flex; flex-direction: column; gap: 3px; padding: 20px 0; }
.athour__time { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 1.17vw, 30px); }
.athour__to { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.athour--past { opacity: 0.55; }
.athour--next { padding: 26px 0; }
.athour--next .athour__time { font-size: clamp(24px, 1.48vw, 38px); color: var(--accent); }
.athour--travel { padding: 10px 0; }
.atnode { display: flex; flex-direction: column; align-items: center; }
.atnode__line { flex: 1; width: 1px; background: rgba(var(--ink-rgb), 0.18); }
.atnode__line--off { background: transparent; }
.atnode__dot { flex: none; width: 10px; height: 10px; border-radius: 50%; background: rgba(var(--ink-rgb), 0.5); }
.atnode--past .atnode__dot { background: rgba(var(--ink-rgb), 0.25); }
.atnode--next .atnode__dot { width: 14px; height: 14px; background: var(--accent); }
.atnode--free .atnode__dot { background: transparent; box-shadow: inset 0 0 0 1.5px rgba(var(--ink-rgb), 0.3); }
.atrow { display: flex; align-items: center; gap: 16px; padding: 20px 0 20px 22px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.12); min-width: 0; }
.atrow--past { opacity: 0.55; }
.atrow--next { padding: 26px 0 26px 22px; background: rgba(var(--accent-rgb), 0.05); border-radius: 0 10px 10px 0; }
.atrow--travel { gap: 12px; padding: 10px 0 10px 22px; border-bottom: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.atrow__travelline { flex: 1; height: 1px; background: rgba(var(--ink-rgb), 0.1); }
.atrow__thumb { position: relative; display: block; flex: none; width: 84px; height: 62px; border-radius: 8px; overflow: hidden; background: repeating-linear-gradient(45deg, var(--sheet) 0 6px, var(--sheet-strong) 6px 12px); }
.atrow__thumb .uophoto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.atrow__thumb .hdph { display: none; }
.atrow__words { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.atrow__title { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(19px, 1.09vw, 28px); }
.atrow--next .atrow__title,
.atrow--booked .atrow__title { font-size: clamp(20px, 1.17vw, 30px); }
.atrow--free .atrow__title { color: var(--muted); }
.atrow__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.atrow__sub.sdred { color: var(--accent); }
.atrow__right { display: flex; flex-direction: column; align-items: flex-end; gap: 6px; text-align: right; }
.atrow__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.atrow__note.sdred { color: var(--accent); }
.atrow__open { margin-top: 0; }
.atrow__offer { flex: none; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.22em; color: var(--ink); }

/* --- 04 Долги дня: 52 + 1fr + 260 + 200 ------------------------------------------------------ */
.atowed__rows { display: flex; flex-direction: column; }
.atowed { display: grid; grid-template-columns: 52px minmax(0, 1fr) clamp(160px, 10.16vw, 260px) clamp(140px, 7.81vw, 200px); gap: 24px; align-items: center; padding: 24px 16px; margin: 0 -16px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); color: inherit; text-decoration: none; transition: background 180ms ease-in-out; }
.atowed:hover { background: rgba(var(--ink-rgb), 0.04); }
.atowed--red { background: rgba(var(--accent-rgb), 0.05); }
.atowed--red:hover { background: rgba(var(--accent-rgb), 0.08); }
.atowed__no { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.atowed__what,
.atowed__who { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.atowed__title { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 1.17vw, 30px); }
.atowed__sub,
.atowed__when { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.atowed__sub.sdred { color: var(--accent); }
.atowed__name { font-size: clamp(14px, 0.66vw, 17px); }
.atowed__act { display: flex; justify-content: flex-start; }
.atowed__act .uopill { white-space: nowrap; }

/* --- 05 Отчёт: 1fr + 520 в одном красном кольце ---------------------------------------------- */
.atreport__form { display: grid; grid-template-columns: minmax(0, 1fr) clamp(280px, 20.31vw, 520px); border-radius: 14px; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.atreport__sheet { display: flex; flex-direction: column; gap: 22px; padding: clamp(22px, 1.33vw, 34px) clamp(22px, 1.41vw, 36px); background: rgba(var(--accent-rgb), 0.06); min-width: 0; }
.atreport__home { display: flex; align-items: baseline; flex-wrap: wrap; gap: 14px; margin: 0; padding-bottom: 14px; border-bottom: 2px solid rgba(var(--accent-rgb), 0.35); }
.atreport__addr { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.33vw, 34px); }
.atreport__seen { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.atreport__pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.attext { min-height: 120px; padding: 16px 18px; font-size: clamp(15px, 0.70vw, 18px); line-height: 1.5; }
.attext::placeholder { color: var(--muted); }
.atchips { display: flex; flex-wrap: wrap; gap: 9px; }
.atchip { position: relative; display: inline-flex; align-items: center; gap: 9px; height: 44px; padding: 0 18px; border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2); font-size: clamp(14px, 0.62vw, 16px); cursor: pointer; transition: background 180ms ease-in-out, box-shadow 180ms ease-in-out; }
.atchip:hover { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.4); }
.atchip__dot { display: none; width: 6px; height: 6px; border-radius: 50%; background: var(--accent); }
.atchip:has(.ssonly__input:checked) { background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.35); }
.atchip:has(.ssonly__input:checked) .atchip__dot { display: block; }
.atchip:has(.ssonly__input:focus-visible) { outline: 2px solid var(--accent); outline-offset: 2px; }
.atreport__side { display: flex; flex-direction: column; gap: 16px; padding: clamp(22px, 1.33vw, 34px) clamp(22px, 1.41vw, 36px); background: var(--modal-field); border-left: 1px solid rgba(var(--ink-rgb), 0.14); }
.atreport__before { gap: 9px; padding-bottom: 16px; border-bottom: 2px solid var(--ink); }
.atreport__quote,
.atclose__quote { margin: 0; }
.atsign { display: flex; flex-direction: column; gap: 9px; margin: 0; padding-top: 16px; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
.atsign__label,
.atsign__when { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.atsign__name { font-family: var(--display); font-style: italic; font-size: clamp(22px, 1.17vw, 30px); }
.atreport__acts,
.atclose__acts { display: flex; flex-direction: column; gap: 10px; margin: auto 0 0; padding-top: 4px; }
.atreport__acts .uopill,
.atclose__acts .uopill { border: 0; cursor: pointer; font-family: var(--text); }

/* --- 06 Конец дня: 1fr + 560 в одном кольце -------------------------------------------------- */
.atpage section.atclose { display: grid; grid-template-columns: minmax(0, 1fr) clamp(280px, 21.88vw, 560px); gap: 0; border-radius: 14px; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.atclose__words { display: flex; flex-direction: column; gap: 18px; padding: clamp(22px, 1.33vw, 34px) clamp(22px, 1.41vw, 36px); background: var(--modal-bg); min-width: 0; }
.atclose__title { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(30px, 1.95vw, 50px); }
.atclose__text { margin: 0; font-size: clamp(15px, 0.74vw, 19px); line-height: 1.55; }
.atmoves { display: flex; flex-direction: column; gap: 11px; padding-top: 16px; border-top: 2px solid var(--ink); }
.atmove { display: flex; flex-direction: column; gap: 5px; }
.atmove__top { display: flex; align-items: baseline; gap: 12px; }
.atmove__top .uoside__gap { border-bottom: 1px dotted rgba(var(--ink-rgb), 0.22); align-self: stretch; margin-bottom: 4px; }
.atmove__what { font-size: clamp(15px, 0.74vw, 19px); }
.atmove__age { font-family: var(--display); font-size: clamp(19px, 1.02vw, 26px); }
.atmove__age.sdred { color: var(--accent); }
.atmove__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.atmove__sub.sdred { color: var(--accent); }
.atclose__side { display: flex; flex-direction: column; gap: 16px; padding: clamp(22px, 1.33vw, 34px) clamp(22px, 1.41vw, 36px); background: var(--modal-field); border-left: 1px solid rgba(var(--ink-rgb), 0.14); }
.atclose__acts .uopill:disabled { opacity: 0.45; cursor: not-allowed; }
.atclose__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); text-align: center; }

/* ==========================================================================
   99. Agent today — адаптив
   ========================================================================== */
@media (max-width: 1500px) {
  .atband__row { grid-template-columns: minmax(0, 1fr); }
  .atfigs { flex-wrap: wrap; row-gap: 18px; }
  .atfigs .uopill { margin-left: 0; flex-basis: 100%; }
  .atnext__card { grid-template-columns: minmax(0, 1fr); }
  .atnext__photo { min-height: 0; height: clamp(220px, 16.41vw, 420px); }
  .atreport__form,
  .atpage section.atclose { grid-template-columns: minmax(0, 1fr); }
  .atreport__side,
  .atclose__side { border-left: 0; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
}

@media (max-width: 1100px) {
  .atowed { grid-template-columns: 40px minmax(0, 1fr); }
  .atowed__who,
  .atowed__act { grid-column: 2; }
  .atrow__thumb { display: none; }
  .atreport__pair { grid-template-columns: minmax(0, 1fr); }
  .atnext__brief { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 640px) {
  .atfile { flex-wrap: wrap; }
  .atlate { min-width: 0; padding: 20px 18px; }
  .atlate .uoledger__row { flex-wrap: wrap; }
  .atlate .uoledger__lead { flex-basis: 20px; }
  .atfile .uosummary__line { display: none; }
  .atfig { flex: 1 1 40%; padding: 0 14px; }
  .atfig:first-child { padding-left: 0; }
  .atnext__acts .uopill { width: 100%; }
  .atline { grid-template-columns: 62px 14px minmax(0, 1fr); }
  .atrow { flex-wrap: wrap; padding-left: 12px; }
  .atrow--next { padding-left: 12px; }
  .atrow__right { flex-basis: 100%; align-items: flex-start; text-align: left; }
  .atrow__offer { flex-basis: 100%; }
  .atowed { padding: 16px 10px; margin: 0 -10px; }
  .atowed__act .uopill { width: 100%; }
  .atnext__who { flex-wrap: wrap; }
  .atnext__who .mxpill { flex-basis: 100%; justify-content: center; }
}

/* ==========================================================================
   100. Agent your buyers — четырнадцать людей, кто дольше ждёт — первый
   ========================================================================== */
.vwquote--27 { font-size: clamp(19px, 1.05vw, 27px); }
.mxpill--28 { height: 28px; padding: 0 13px; }
.mxmono--72 { width: 72px; height: 72px; font-size: 18px; }
.atlate__disc--44 { width: 44px; height: 44px; font-size: 20px; }
.abband__row { grid-template-columns: minmax(0, 1fr) clamp(300px, 25.00vw, 640px); }

/* --- 02 Ждут вас: две равные красные карты, пять рядов, кнопки на одной высоте ---------------- */
.abwaiting__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.abwait { display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto auto; gap: 14px; padding: clamp(20px, 1.17vw, 30px) clamp(20px, 1.33vw, 34px); border-radius: 12px; background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.abwait__who,
.abcold__who { display: flex; align-items: center; gap: 15px; margin: 0; }
.abwait__who .vwwho__name { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.33vw, 34px); }
.abwait__who .mxpill,
.abcold__who .mxpill { flex: none; }
.abwait__when { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); padding-bottom: 12px; border-bottom: 2px solid rgba(var(--accent-rgb), 0.35); }
.abwait__quote { margin: 0; }
.abwait__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.abwait__acts,
.abopen__acts { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }
.abopen__acts { margin-top: auto; }

/* --- 03 Таблица: пилюли-фильтры на radio, семь колонок ------------------------------------------ */
.abfilters { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.abfilter { position: relative; display: inline-flex; cursor: pointer; }
.abfilter__pill { display: inline-flex; align-items: center; gap: 10px; height: 42px; padding: 0 18px; border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ink); white-space: nowrap; transition: background 180ms ease-in-out, color 180ms ease-in-out, box-shadow 180ms ease-in-out; }
.abfilter:hover .abfilter__pill { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.4); }
.abfilter__count { letter-spacing: 0.14em; color: var(--muted); }
.abfilter .ssonly__input:checked ~ .abfilter__pill { background: var(--accent); color: var(--c-cream); box-shadow: none; }
.abfilter .ssonly__input:checked ~ .abfilter__pill .abfilter__count { color: var(--c-cream); }
.abfilter .ssonly__input:focus-visible ~ .abfilter__pill { outline: 2px solid var(--accent); outline-offset: 2px; }
.abfilters__need { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.abtable__list { display: flex; flex-direction: column; }
.abtable__head,
.abrow { display: grid; grid-template-columns: 52px clamp(200px, 11.72vw, 300px) clamp(160px, 10.16vw, 260px) clamp(120px, 7.03vw, 180px) minmax(0, 1fr) clamp(130px, 7.81vw, 200px) clamp(80px, 4.69vw, 120px); gap: 22px; align-items: center; }
.abtable__head { margin: 0; padding-bottom: 12px; border-bottom: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.abrow__right { text-align: right; }
.abrow { padding: 20px 14px; margin: 0 -14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); color: inherit; text-decoration: none; transition: background 180ms ease-in-out; }
.abrow:hover { background: rgba(var(--ink-rgb), 0.04); }
.abrow--red { background: rgba(var(--accent-rgb), 0.05); }
.abrow--red:hover { background: rgba(var(--accent-rgb), 0.08); }
.abrow[hidden] { display: none; }
.abrow__no { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.abrow .vwwho__name { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 1.02vw, 26px); }
.abrow__budget { font-size: clamp(14px, 0.62vw, 16px); }
.abrow__list { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.abrow__stands { font-size: clamp(14px, 0.66vw, 17px); }
.abrow__next { display: block; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ink); }
.abrow__next .g4arrow { margin-left: 8px; }
.abrow__wait { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); white-space: nowrap; }
.abrow--red .abrow__stands,
.abrow--red .abrow__next,
.abrow--red .abrow__wait { color: var(--accent); }
.abtable__empty { margin: 0; padding: 26px 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }

/* --- 04 Одна папка: 480 + 1fr в одном кольце 14 ---------------------------------------------- */
.abopen__shell { display: grid; grid-template-columns: clamp(260px, 18.75vw, 480px) minmax(0, 1fr); border-radius: 14px; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.abopen__file { display: flex; flex-direction: column; gap: 16px; padding: clamp(22px, 1.33vw, 34px) clamp(22px, 1.41vw, 36px); background: var(--modal-bg); min-width: 0; }
.abopen__who { margin: 0; }
.abopen__who .vwwho__name { font-size: clamp(24px, 1.41vw, 36px); }
.abopen__rows { gap: 9px; padding-top: 16px; border-top: 2px solid var(--ink); }
.abopen__words { display: flex; flex-direction: column; gap: 9px; margin: 0; padding-top: 16px; border-top: 1px solid rgba(var(--ink-rgb), 0.16); }
.abopen__desk { display: flex; flex-direction: column; gap: 22px; padding: clamp(22px, 1.33vw, 34px) clamp(22px, 1.41vw, 36px); background: var(--modal-field); border-left: 1px solid rgba(var(--ink-rgb), 0.14); min-width: 0; }
.abopen__homes,
.abopen__letters { display: flex; flex-direction: column; gap: 12px; }
.abopen__letters { gap: 11px; padding-top: 16px; border-top: 2px solid var(--ink); }
.abhomes { display: flex; gap: 14px; }
.abhome { display: flex; flex: 1; flex-direction: column; gap: 8px; min-width: 0; color: inherit; text-decoration: none; }
.abhome__thumb { position: relative; display: block; width: 160px; max-width: 100%; height: 110px; border-radius: 8px; overflow: hidden; background: repeating-linear-gradient(45deg, var(--sheet) 0 6px, var(--sheet-strong) 6px 12px); }
.abhome__thumb .uophoto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.abhome__thumb .hdph { display: none; }
.abhome__words { display: flex; flex-direction: column; gap: 3px; }
.abhome__addr { font-size: clamp(14px, 0.66vw, 17px); }
.abhome__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.abhome__note.sdred { color: var(--accent); }
.abletters { display: flex; flex-direction: column; }
.abletter { display: flex; flex-direction: column; gap: 5px; padding: 14px 16px; margin: 0 -16px; border-radius: 10px; }
.abletter--red { background: rgba(var(--accent-rgb), 0.06); }
.abletter__top { display: flex; align-items: baseline; gap: 12px; }
.abletter__dir,
.abletter__when { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.abletter__dir.sdred { color: var(--accent); }
.abletter__text { font-size: clamp(15px, 0.70vw, 18px); line-height: 1.5; }

/* --- 05 Без часа: три карты, четыре ряда, кнопки на одной высоте ----------------------------- */
.abcold__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.abcold { display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto; gap: 14px; padding: clamp(20px, 1.17vw, 30px) clamp(20px, 1.25vw, 32px); border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.abcold--red { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.abcold__who .vwwho__name { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.17vw, 30px); }
.abcold__last { display: flex; align-items: baseline; gap: 12px; padding-bottom: 12px; border-bottom: 2px solid var(--ink); }
.abcold--red .abcold__last { border-bottom-color: rgba(var(--accent-rgb), 0.35); }
.abcold__lastk { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.abcold__lastv { font-size: clamp(14px, 0.66vw, 17px); }
.abcold__lastv.sdred { color: var(--accent); }
.abcold__body { display: flex; flex-direction: column; gap: 8px; }
.abcold__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.abcold__note.sdred { color: var(--accent); }
.abcold__text { font-size: clamp(15px, 0.70vw, 18px); line-height: 1.55; }
.atnext__dot--ink { background: rgba(var(--ink-rgb), 0.4); }

/* ==========================================================================
   101. Agent your buyers — адаптив
   ========================================================================== */
@media (max-width: 1500px) {
  .abband__row { grid-template-columns: minmax(0, 1fr); }
  .abwaiting__grid,
  .abcold__grid { grid-template-columns: minmax(0, 1fr); }
  .abopen__shell { grid-template-columns: minmax(0, 1fr); }
  .abopen__desk { border-left: 0; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
  .abtable__head { display: none; }
  .abrow { grid-template-columns: 40px minmax(0, 1fr) minmax(0, 1fr); }
  .abrow .vwwho { grid-column: 2 / -1; }
  .abrow__budget,
  .abrow__list,
  .abrow__stands,
  .abrow__next { grid-column: 2 / -1; }
  .abrow__wait { grid-column: 2 / -1; text-align: left; }
}

@media (max-width: 640px) {
  .abwait__acts .uopill,
  .abopen__acts .uopill { width: 100%; }
  .abwait__who,
  .abcold__who { flex-wrap: wrap; }
  .abhomes { flex-direction: column; }
  .abhome { flex-direction: row; align-items: center; }
  .abhome__thumb { flex: none; width: 96px; height: 66px; }
  .abrow { padding: 16px 10px; margin: 0 -10px; }
  .abletter { margin: 0 -10px; padding: 12px 10px; }
  .abfilters .uosummary__line { display: none; }
  .abfilters__need { flex-basis: 100%; }
}

/* ==========================================================================
   102. Agent listings — девять домов, что ждёт советника — первым
   ========================================================================== */
.uolink--ink { color: var(--ink); }
.uolink--ink:hover { color: var(--accent); }
.alpage .uoledger__row { font-size: clamp(14px, 0.66vw, 17px); color: var(--ink); }
.alpage .uoledger__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.alpage .uoledger__v.sdred { color: var(--accent); }
.alpage .uoflow > section { display: flex; flex-direction: column; gap: 30px; }
.alpage .uosec__head { margin: 0; }
.alfoot { gap: 20px; padding-top: 20px; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
.altable .alfoot { padding-top: 6px; border-top: 0; }

/* --- 01 Полоса: строка файла, 1fr + 640, пять цифр по 64 ------------------------------------- */
.alband { gap: 38px; }
.alfile { position: relative; display: flex; align-items: center; gap: 18px; margin: 0; padding-left: 22px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.alfile__tick { position: absolute; left: 0; top: 50%; width: 14px; height: 1px; background: var(--ink); }
.alfile__tick::before { content: ""; position: absolute; left: 0; top: -6px; width: 1px; height: 12px; background: var(--ink); }
.alfile .uobar-v { height: 11px; }
.alband__row { display: grid; grid-template-columns: minmax(0, 1fr) clamp(300px, 25.00vw, 640px); gap: clamp(24px, 3.12vw, 80px); align-items: end; padding-bottom: 40px; border-bottom: 2px solid var(--ink); }
.alband__lead { display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.alband__kicker { color: var(--muted); }
.alband__title { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(40px, 3.28vw, 84px); text-wrap: balance; }
.alband__title em { font-style: italic; color: var(--accent); }
.alband__text { margin: 0; max-width: 1000px; font-size: clamp(16px, 0.82vw, 21px); font-weight: 300; line-height: 1.6; color: var(--muted); }
.alband__ink { color: var(--ink); }
.alplate { gap: 20px; padding: 30px 32px; }
.alplate__rows { gap: 9px; border-top: 0; padding-top: 0; }
.alfigs { display: flex; align-items: flex-end; gap: clamp(24px, 2.34vw, 60px); }
.alfig { display: flex; flex-direction: column; gap: 8px; position: relative; }
.alfig + .alfig::before { content: ""; position: absolute; left: calc(clamp(24px, 2.34vw, 60px) / -2); bottom: 0; width: 1px; height: 58px; background: rgba(var(--ink-rgb), 0.14); }
.alfig__label { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.alfig__label.sdred { color: var(--accent); }
.alfig__value { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(36px, 2.50vw, 64px); line-height: 1; }
.alfig__value.sdred { color: var(--accent); }
.alband__add { gap: 16px; }
.alband__dash { display: block; width: 26px; height: 1px; background: currentColor; opacity: 0.9; }
.uopill--outline .alband__dash { opacity: 0.4; }

/* --- 02 Ждут вас: три карты, пять рядов ------------------------------------------------------ */
.alwaiting__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.alwait { display: grid; grid-template-rows: auto auto auto minmax(0, 1fr) auto; gap: 20px; padding: clamp(20px, 1.17vw, 30px); border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.alwait--red { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.alwait__home { display: flex; align-items: center; gap: 18px; margin: 0; }
.alwait__thumb,
.alrow__thumb { position: relative; display: block; flex: none; border-radius: 8px; overflow: hidden; background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.1) 0 2px, transparent 2px 12px), var(--sheet); }
.alwait__thumb { width: 84px; height: 62px; }
.alwait__thumb .uophoto,
.alrow__thumb .uophoto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.alwait__thumb .hdph,
.alrow__thumb .hdph { display: none; }
.alwait__words { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.alwait__addr { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.33vw, 34px); }
.alwait__meta,
.alwait__reason,
.alwait__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.alwait__note.sdred { color: var(--accent); }
.alwait__state { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin: 0; padding-bottom: 18px; border-bottom: 2px solid rgba(var(--ink-rgb), 0.22); }
.alwait--red .alwait__state { border-bottom-color: var(--accent); }
.alwait__quote { margin: 0; }
.alwait__acts { display: flex; align-items: center; flex-wrap: wrap; gap: 22px; margin: 0; }
.alwait__acts .uopill { gap: 14px; }
.alwait__acts .alband__dash { width: 24px; }
.alwait__open { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); text-decoration: none; transition: color 180ms ease-in-out; }
.alwait__open:hover { color: var(--accent); }

/* --- 03 Таблица: семь колонок, фильтры ------------------------------------------------------- */
.alfilter__pill { gap: 12px; padding: 0 22px; font-family: var(--text); font-size: clamp(13px, 0.59vw, 15px); letter-spacing: 0; text-transform: none; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); }
.alfilter__pill .abfilter__count { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.18em; }
.alfilter .ssonly__input:checked ~ .alfilter__pill .abfilter__count { color: var(--c-cream); }
.altable__list { display: flex; flex-direction: column; }
.altable__head,
.alrow { display: grid; grid-template-columns: 52px clamp(200px, 13.28vw, 340px) clamp(120px, 7.42vw, 190px) clamp(130px, 8.20vw, 210px) clamp(110px, 6.64vw, 170px) minmax(0, 1fr) clamp(90px, 5.08vw, 130px); gap: 22px; align-items: center; }
.altable__head { margin: 0; padding-bottom: 16px; border-bottom: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); align-items: baseline; }
.alrow { padding: 20px 14px; margin: 0 -14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); color: inherit; text-decoration: none; transition: background 180ms ease-in-out; }
.alrow:hover { background: rgba(var(--ink-rgb), 0.04); }
.alrow--red:hover { background: rgba(var(--accent-rgb), 0.05); }
.alrow[hidden] { display: none; }
.alrow__no { font-family: var(--mono); font-size: 13px; color: var(--muted); }
.alrow__home { display: flex; align-items: center; gap: 16px; min-width: 0; }
.alrow__thumb { width: 64px; height: 48px; }
.alrow__words { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.alrow__addr { font-size: clamp(15px, 0.74vw, 19px); }
.alrow__where { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.alrow__price { display: flex; flex-direction: column; gap: 3px; }
.alrow__sum { font-family: var(--display); font-size: clamp(18px, 0.94vw, 24px); }
.alrow__cut { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.18em; color: var(--muted); }
.alrow__survey { font-size: clamp(14px, 0.66vw, 17px); }
.alrow__hours,
.alrow__next { font-size: clamp(14px, 0.66vw, 17px); color: var(--muted); }
.alrow__wait { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.18em; color: var(--muted); white-space: nowrap; }
.alrow__survey--red,
.alrow--red .alrow__no,
.alrow--red .alrow__next,
.alrow--red .alrow__wait { color: var(--accent); }

/* ==========================================================================
   103. Agent listings — адаптив
   ========================================================================== */
@media (max-width: 1500px) {
  .alband__row { grid-template-columns: minmax(0, 1fr); }
  .alfigs { flex-wrap: wrap; row-gap: 20px; }
  .alfigs .uoside__gap { flex-basis: 100%; }
  .alwaiting__grid { grid-template-columns: minmax(0, 1fr); }
  .altable__head { display: none; }
  .alrow { grid-template-columns: 40px minmax(0, 1fr) minmax(0, 1fr); }
  .alrow__home { grid-column: 2 / -1; }
  .alrow__price,
  .alrow__survey,
  .alrow__hours,
  .alrow__next,
  .alrow__wait { grid-column: 2 / -1; text-align: left; }
}

@media (max-width: 640px) {
  .alfile { flex-wrap: wrap; }
  .alfile .uobar-v { display: none; }
  .alfig + .alfig::before { display: none; }
  .alfig { flex: 1 1 40%; }
  .alband__add { width: 100%; justify-content: center; }
  .alwait__acts .uopill { width: 100%; }
  .alrow { padding: 16px 10px; margin: 0 -10px; }
  .alfoot { flex-wrap: wrap; }
  .alfoot .uobar-v { display: none; }
}

/* ==========================================================================
   104. Agent add a home — новый лист в шесть шагов; на пол только с обследованием
   ========================================================================== */
.uopill--60 { height: 60px; padding: 0 clamp(22px, 1.25vw, 32px); font-size: clamp(14px, 0.62vw, 16px); }
.smtabs--6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.smtabs--6 .smtab { padding: 26px 24px; }
.smtabs--6 .smtab__name { font-size: clamp(17px, 1.02vw, 26px); }
.smgrid--5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.ahgrid--211 { grid-template-columns: 2fr 1fr 1fr; }
.ahpage .smfield__sub.sdred { color: var(--accent); }
.ahpage .smseg__pill { padding: 0 20px; }
.smseg__pill--tight { padding: 0 18px; }
.ahselect { position: relative; gap: 14px; padding-right: 20px; }
.ahselect__el { flex: 1; min-width: 0; height: 100%; padding: 0; border: 0; background: transparent; appearance: none; -webkit-appearance: none; font-family: var(--text); font-size: inherit; color: var(--ink); cursor: pointer; }
.ahselect__el:focus { outline: none; }
.ahselect__chev { flex: none; margin-top: -8px; font-size: 18px; color: var(--muted); pointer-events: none; }
.ahro { background: var(--sheet); }
.ahsub .ahro--grey { height: 56px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.ahplate { display: flex; align-items: center; flex-wrap: wrap; gap: 20px; padding: 22px 26px; border-radius: 12px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.ahplate--red { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.3); }
.ahplate--big { gap: 22px; padding: 26px 30px; }
.ahplate--flush { border-radius: 0; box-shadow: none; padding: 26px clamp(22px, 1.41vw, 36px); }
.ahplate__words { display: flex; flex: 1 1 60%; flex-direction: column; gap: 5px; min-width: 0; }
.ahplate__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.ahplate__k--muted { color: var(--muted); }
.ahplate__text { font-size: clamp(15px, 0.74vw, 19px); line-height: 1.5; }
.ahplate__text strong { font-weight: 500; }
.ahplate__acts { display: flex; flex-wrap: wrap; gap: 14px; }
.ahplate .uopill { white-space: nowrap; border: 0; cursor: pointer; font-family: var(--text); }
.ahplate .uopill:disabled { opacity: 0.45; cursor: not-allowed; }
.ahpublish__note { margin-top: -14px; }

/* --- шаг 2: чипы бумаг ------------------------------------------------------------------------- */
.ahchips { display: flex; flex-wrap: wrap; gap: 10px; }
.ahchip { display: inline-flex; align-items: center; gap: 12px; height: 48px; padding: 0 20px; border-radius: 999px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.18); font-size: clamp(14px, 0.66vw, 17px); }
.ahchip__disc { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 50%; background: var(--ink); color: var(--bg); font-family: var(--mono); font-size: 11px; }
.ahchip--miss { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); color: var(--accent); }
.ahchip--miss .ahchip__disc { background: transparent; box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.5); color: var(--accent); }

/* --- шаг 3: серая подпанель аренды --------------------------------------------------------------- */
.ahsub { display: flex; flex-direction: column; gap: 18px; padding: 26px; border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }

/* --- шаг 4: удобства --------------------------------------------------------------------------- */
.ahamen__bar { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; padding: 22px clamp(22px, 1.41vw, 36px); border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.ahamen__line { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.ahamen__views { gap: 10px; }
.ahgroups { display: flex; flex-direction: column; }
.ahgroup { display: grid; grid-template-columns: clamp(150px, 8.98vw, 230px) minmax(0, 1fr); gap: 26px; align-items: baseline; padding: 24px clamp(22px, 1.41vw, 36px); border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.ahgroup--grey { background: rgba(var(--ink-rgb), 0.03); }
.ahgroup[hidden] { display: none; }
.ahgroup__words { display: flex; flex-direction: column; gap: 7px; }
.ahgroup__name { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ink); }
.ahgroup__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.ahgroup__note.sdred { color: var(--accent); }
.ahgroup__chips { display: flex; flex-wrap: wrap; gap: 10px; }
.ahtick { position: relative; display: inline-flex; align-items: center; gap: 11px; height: 46px; padding: 0 19px; border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); font-size: clamp(14px, 0.66vw, 17px); color: var(--muted); cursor: pointer; transition: background 160ms ease-in-out, color 160ms ease-in-out, box-shadow 160ms ease-in-out; }
.ahtick:hover { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.35); }
.ahtick[hidden] { display: none; }
.ahtick__disc { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 21px; height: 21px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); font-family: var(--mono); font-size: 11px; color: transparent; }
.ahtick:has(.ssonly__input:checked) { background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.18); color: var(--ink); }
.ahtick:has(.ssonly__input:checked) .ahtick__disc { background: var(--ink); box-shadow: none; color: var(--bg); }
.ahtick:has(.ssonly__input:focus-visible) { outline: 2px solid var(--accent); outline-offset: 2px; }
.ahgroup--grey .ahtick { color: var(--faint); }
.ahgroup--grey .ahtick:has(.ssonly__input:checked) { color: var(--ink); }

/* --- шаг 5: снимки 4×2 --------------------------------------------------------------------------- */
.ahdesc { min-height: 170px; }
.ahphotos { display: flex; flex-direction: column; gap: 12px; }
.ahphotos__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.ahphoto { position: relative; display: block; height: clamp(140px, 7.81vw, 200px); border-radius: 10px; overflow: hidden; background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.1) 0 2px, transparent 2px 12px), var(--sheet); }
.ahphoto .uophoto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ahphoto .hdph { display: none; }
.ahphoto__cover { top: 12px; left: 12px; height: 26px; padding: 0 12px; }
.ahphoto__cap { position: absolute; left: 12px; bottom: 12px; max-width: calc(100% - 24px); display: inline-flex; align-items: center; height: 26px; padding: 0 12px; border-radius: 999px; background: rgba(var(--c-night-rgb), 0.82); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.18em; color: var(--c-cream); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ahphotos__foot { display: flex; align-items: center; flex-wrap: wrap; gap: 18px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); cursor: pointer; }
.ahfile { gap: 14px; }
.ahfile--empty .ahfile__name { color: var(--muted); }
.ahfile__name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ahfile__act { flex: none; border: 0; background: transparent; padding: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); cursor: pointer; }

/* --- шаг 6: чек-лист ----------------------------------------------------------------------------- */
.ahchecks { display: flex; flex-direction: column; border-radius: 12px; overflow: hidden; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.ahchecks__head { display: flex; align-items: center; gap: 18px; margin: 0; padding: 22px 26px; border-bottom: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.ahcheck { display: flex; align-items: center; gap: 16px; padding: 20px 26px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); font-size: clamp(15px, 0.74vw, 19px); }
.ahcheck:last-child { border-bottom: 0; }
.ahcheck__disc { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 26px; height: 26px; border-radius: 50%; background: var(--ink); color: var(--bg); font-family: var(--mono); font-size: 12px; }
.ahcheck__text { flex: 1; min-width: 0; }
.ahcheck__state { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.ahcheck--red { color: var(--accent); }
.ahcheck--red .ahcheck__disc { background: transparent; box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.5); color: var(--accent); }
.ahcheck--red .ahcheck__state { color: var(--accent); }
.ahcheck--ok { color: var(--ink); }
.ahcheck--ok .ahcheck__disc { background: var(--ink); box-shadow: none; color: var(--bg); }
.ahcheck--ok .ahcheck__state { color: var(--muted); }

/* ==========================================================================
   105. Agent add a home — адаптив
   ========================================================================== */
@media (max-width: 1500px) {
  .smgrid--5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ahgrid--211 { grid-template-columns: minmax(0, 1fr); }
  .ahphotos__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .smtabs--6 { display: flex; overflow-x: auto; scrollbar-width: thin; }
  .smtabs--6 .smtab { flex: 0 0 auto; min-width: 200px; }
}

@media (max-width: 1100px) {
  .ahgroup { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .smgrid--5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 640px) {
  .smgrid--5 { grid-template-columns: minmax(0, 1fr); }
  .ahphotos__grid { grid-template-columns: minmax(0, 1fr); }
  .ahplate .uopill,
  .ahplate__acts,
  .ahplate__acts .uopill { width: 100%; }
  .ahamen__views { flex-basis: 100%; }
  .ahcheck { flex-wrap: wrap; }
  .ahcheck__state { flex-basis: 100%; padding-left: 42px; }
  .ahtick { height: auto; min-height: 42px; padding: 8px 14px; }
}

/* ==========================================================================
   106. Agent price moves — цена владельца, тишина советника, старая цифра не стирается
   ========================================================================== */
.mxpill--ink { background: var(--ink); color: var(--bg); }
.pmpage .uoledger__row { font-size: clamp(14px, 0.66vw, 17px); color: var(--ink); }
.pmpage .uoledger__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pmpage .uoledger__v.sdred { color: var(--accent); }
.pmpage .uoflow > section { display: flex; flex-direction: column; gap: 30px; }
.pmpage .uosec__head { margin: 0; }
.pmpair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }

/* --- 02 Что снизили: шесть рядов, денежная строка ------------------------------------------------ */
.pmcut,
.pmdue { display: grid; gap: 20px; padding: clamp(20px, 1.17vw, 30px); border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.pmcut { grid-template-rows: auto auto auto auto minmax(0, 1fr) auto; }
.pmdue { grid-template-rows: auto auto auto minmax(0, 1fr) auto auto; background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.pmmoney { display: flex; align-items: baseline; flex-wrap: wrap; gap: 18px; margin: 0; padding-bottom: 18px; border-bottom: 2px solid var(--ink); }
.pmmoney__old { font-family: var(--display); font-size: clamp(20px, 1.17vw, 30px); color: var(--muted); }
.pmmoney__arrow { font-family: var(--mono); font-size: 14px; color: var(--muted); }
.pmmoney__new { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(28px, 1.72vw, 44px); line-height: 1; }
.pmmoney .mxpill { flex: none; }
.pmcut__rows { gap: 9px; }
.pmcut__quote { margin: 0; }
.pmsince { display: flex; flex-direction: column; gap: 9px; padding-top: 2px; }
.pmfigs { display: flex; align-items: baseline; flex-wrap: wrap; gap: 28px; }
.pmfigs--34 { gap: 34px; }
.pmfig { display: flex; flex-direction: column; gap: 3px; }
.pmfig__v { font-family: var(--display); font-size: clamp(22px, 1.17vw, 30px); }
.pmfig__v.sdred { color: var(--accent); }
.pmfig__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.alwait__state--red { border-bottom-color: var(--accent); }

/* --- 04 Таблица: восемь колонок ------------------------------------------------------------------- */
.pmtable__list { display: flex; flex-direction: column; }
.pmtable__head,
.pmrow { display: grid; grid-template-columns: 52px clamp(180px, 11.72vw, 300px) clamp(110px, 7.03vw, 180px) clamp(100px, 6.64vw, 170px) clamp(70px, 4.30vw, 110px) clamp(80px, 4.69vw, 120px) clamp(90px, 5.47vw, 140px) minmax(0, 1fr); gap: 20px; align-items: center; }
.pmtable__head { margin: 0; padding-bottom: 16px; border-bottom: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); align-items: baseline; }
.pmrow { padding: 20px 14px; margin: 0 -14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); color: inherit; text-decoration: none; transition: background 180ms ease-in-out; }
.pmrow:hover { background: rgba(var(--ink-rgb), 0.04); }
.pmrow--red:hover { background: rgba(var(--accent-rgb), 0.05); }
.pmrow[hidden] { display: none; }
.pmrow__no { font-family: var(--mono); font-size: 13px; color: var(--muted); }
.pmrow__price { font-family: var(--display); font-size: clamp(18px, 0.94vw, 24px); }
.pmrow__first { font-size: clamp(14px, 0.66vw, 17px); }
.pmrow__first s { color: var(--muted); }
.pmrow__change { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.14em; color: rgba(var(--ink-rgb), 0.28); }
.pmrow--cut .pmrow__change { color: var(--ink); }
.pmrow__days,
.pmrow__hours,
.pmrow__next { font-size: clamp(14px, 0.66vw, 17px); color: var(--muted); }
.pmrow--red .pmrow__no,
.pmrow--red .pmrow__days,
.pmrow--red .pmrow__next { color: var(--accent); }

/* --- 05 Один дом целиком: 480 + 1fr ---------------------------------------------------------------- */
.pmhistory__shell { display: grid; grid-template-columns: clamp(260px, 18.75vw, 480px) minmax(0, 1fr); border-radius: 14px; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.pmhistory__file { display: flex; flex-direction: column; gap: 22px; padding: clamp(22px, 1.25vw, 32px); background: var(--modal-bg); min-width: 0; }
.pmhistory__thumb { position: relative; display: block; width: 100%; height: 180px; border-radius: 10px; overflow: hidden; background: repeating-linear-gradient(45deg, rgba(var(--ink-rgb), 0.1) 0 2px, transparent 2px 12px), var(--sheet); }
.pmhistory__thumb .uophoto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pmhistory__thumb .hdph { display: none; }
.pmhistory__who { display: flex; flex-direction: column; gap: 7px; margin: 0; }
.pmhistory__addr { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.41vw, 36px); }
.pmhistory__rows { gap: 9px; padding-top: 18px; border-top: 2px solid var(--ink); }
.pmhistory__quote { margin: 0; }
.pmhistory__file > .alwait__meta { margin-top: -14px; }
.pmhistory__record { display: flex; flex-direction: column; padding: clamp(22px, 1.25vw, 32px) clamp(22px, 1.33vw, 34px); background: var(--modal-field); border-left: 1px solid rgba(var(--ink-rgb), 0.16); min-width: 0; }
.pmhistory__label { padding-bottom: 18px; border-bottom: 2px solid var(--ink); }
.pmmove { display: grid; grid-template-columns: clamp(100px, 5.86vw, 150px) 20px minmax(0, 1fr) clamp(120px, 8.20vw, 210px); gap: 22px; align-items: baseline; padding: 22px 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.pmmove__when { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.18em; color: var(--muted); }
.pmmove__when.sdred { color: var(--accent); }
.pmmove__dot { display: block; width: 11px; height: 11px; border-radius: 50%; }
.pmmove__dot--red { background: var(--accent); }
.pmmove__dot--ink { background: var(--ink); }
.pmmove__dot--ring { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.4); }
.pmmove__words { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.pmmove__text { font-size: clamp(15px, 0.74vw, 19px); }
.pmmove__text strong { font-weight: 500; }
.pmmove__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pmmove__right { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); text-align: right; }
.pmhistory__foot { display: flex; align-items: center; flex-wrap: wrap; gap: 22px; margin: auto 0 0; padding-top: 26px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pmhistory__foot .uopill { gap: 14px; font-family: var(--text); font-size: clamp(14px, 0.62vw, 16px); letter-spacing: 0; text-transform: none; }

/* --- 06 Три правила -------------------------------------------------------------------------------- */
.pmrules { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.pmrule { display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto; gap: 18px; padding: clamp(20px, 1.17vw, 30px); border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.pmrule--red { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.pmrule__disc { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; background: var(--ink); color: var(--bg); font-family: var(--display); font-size: 22px; line-height: 1; font-variant-numeric: lining-nums; }
.pmrule--red .pmrule__disc { background: var(--accent); color: var(--c-cream); }
.pmrule__title { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.33vw, 34px); line-height: 1.05; }
.pmrule__text { margin: 0; font-size: clamp(15px, 0.74vw, 19px); line-height: 1.6; color: var(--muted); }
.pmrule__foot { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pmrule__foot.sdred { color: var(--accent); }
.pmrule__plate { gap: 22px; padding: 26px 30px; }
.pmrule__plate .uopill { gap: 14px; }

/* ==========================================================================
   107. Agent price moves — адаптив
   ========================================================================== */
@media (max-width: 1500px) {
  .pmpair,
  .pmrules,
  .pmhistory__shell { grid-template-columns: minmax(0, 1fr); }
  .pmhistory__record { border-left: 0; border-top: 1px solid rgba(var(--ink-rgb), 0.16); }
  .pmtable__head { display: none; }
  .pmrow { grid-template-columns: 40px minmax(0, 1fr) minmax(0, 1fr); }
  .pmrow .alrow__words { grid-column: 2 / -1; }
  .pmrow__price,
  .pmrow__first,
  .pmrow__change,
  .pmrow__days,
  .pmrow__hours,
  .pmrow__next { grid-column: 2 / -1; }
}

@media (max-width: 640px) {
  .pmmove { grid-template-columns: 20px minmax(0, 1fr); }
  .pmmove__dot { grid-column: 1; grid-row: 1; align-self: center; }
  .pmmove__when { grid-column: 2; grid-row: 1; }
  .pmmove__words,
  .pmmove__right { grid-column: 2; text-align: left; }
  .pmrow { padding: 16px 10px; margin: 0 -10px; }
  .pmhistory__foot .uopill { width: 100%; }
}

/* ==========================================================================
   108. Agent viewings — свободный час это час, который ты ещё не отдал
   ========================================================================== */
.avpage .uoledger__row { font-size: clamp(14px, 0.66vw, 17px); color: var(--ink); }
.avpage .uoledger__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.avpage .uoledger__v.sdred { color: var(--accent); }
.avpage .uoflow > section { display: flex; flex-direction: column; gap: 30px; }
.avpage .uosec__head { margin: 0; }

/* --- 02 Три часа недели ------------------------------------------------------------------------ */
.avweek__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.avhour { display: grid; grid-template-rows: auto auto auto minmax(0, 1fr) auto auto; gap: 18px; padding: clamp(20px, 1.17vw, 30px); border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.avhour--red { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.avhour__top { display: flex; align-items: baseline; gap: 16px; margin: 0; }
.avhour__time { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(28px, 1.72vw, 44px); line-height: 1; }
.avhour__top .mxpill { flex: none; align-self: center; }
.avhour__count { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.avhour__who { display: flex; align-items: center; gap: 16px; margin: 0; padding-bottom: 16px; border-bottom: 2px solid var(--ink); }
.avhour--red .avhour__who { border-bottom-color: var(--accent); }
.avhour__name { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.17vw, 30px); }
.avhour__rows { gap: 8px; }
.avhour__quote { margin: 0; }

/* --- 03 Сетка недели и композитор ------------------------------------------------------------------ */
.avfree__form { display: flex; flex-direction: column; gap: 30px; }
.avgrid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 12px; }
.avday { display: flex; flex-direction: column; gap: 9px; padding: 20px 16px; border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); min-width: 0; }
.avday--today { background: rgba(var(--accent-rgb), 0.05); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.avday--closed { background: rgba(var(--ink-rgb), 0.03); }
.avday__head { display: flex; flex-direction: column; gap: 3px; padding-bottom: 12px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.avday__name { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ink); }
.avday__date { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 1.02vw, 26px); line-height: 1; }
.avday--today .avday__name,
.avday--today .avday__date { color: var(--accent); }
.avday__foot { padding-top: 6px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.avslot { position: relative; display: flex; align-items: center; gap: 9px; height: 44px; padding: 0 13px; border-radius: 9px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22); color: var(--ink); transition: background 160ms ease-in-out, color 160ms ease-in-out, box-shadow 160ms ease-in-out; }
.avslot__time { font-family: var(--mono); font-size: 12px; letter-spacing: 0.12em; }
.avslot__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.avslot--free { cursor: pointer; }
.avslot--free:hover { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.45); }
.avslot__picked { display: none; }
.avslot--free:has(.ssonly__input:checked) { background: var(--accent); color: var(--c-cream); box-shadow: none; }
.avslot--free:has(.ssonly__input:checked) .avslot__free { display: none; }
.avslot--free:has(.ssonly__input:checked) .avslot__picked { display: inline; }
.avslot--free:has(.ssonly__input:focus-visible) { outline: 2px solid var(--accent); outline-offset: 2px; }
.avslot--booked { background: var(--ink); color: var(--bg); box-shadow: none; }
.avslot--off { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.1); color: var(--faint); }
.avcompose { display: grid; grid-template-columns: minmax(0, 1fr) clamp(280px, 20.31vw, 520px); gap: 24px; align-items: stretch; }
.avwho { display: flex; flex-direction: column; gap: 16px; padding: clamp(20px, 1.09vw, 28px) clamp(20px, 1.17vw, 30px); border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); min-width: 0; }
.avbuyers { display: flex; flex-wrap: wrap; gap: 12px; }
.avbuyer { position: relative; display: inline-flex; cursor: pointer; }
.avbuyer__pill { display: inline-flex; align-items: center; gap: 14px; height: 56px; padding: 0 22px; border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.22); color: var(--ink); transition: background 160ms ease-in-out, color 160ms ease-in-out; }
.avbuyer:hover .avbuyer__pill { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.45); }
.avbuyer__name { font-size: clamp(15px, 0.70vw, 18px); }
.avbuyer__wait { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--accent); }
.avbuyer .ssonly__input:checked ~ .avbuyer__pill { background: var(--ink); color: var(--bg); box-shadow: none; }
.avbuyer .ssonly__input:checked ~ .avbuyer__pill .avbuyer__wait { color: var(--gold); }
.avbuyer .ssonly__input:focus-visible ~ .avbuyer__pill { outline: 2px solid var(--accent); outline-offset: 2px; }
.avwho__match { margin: 0; font-size: clamp(15px, 0.74vw, 19px); line-height: 1.6; color: var(--muted); }
.avpanel { display: flex; flex-direction: column; gap: 18px; padding: clamp(20px, 1.09vw, 28px) clamp(20px, 1.17vw, 30px); border-radius: 12px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); transition: background 180ms ease-in-out; }
.avpanel--sent { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.avpanel__label { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.avpanel--ready .avpanel__label,
.avpanel--sent .avpanel__label { color: var(--accent); }
.avpanel__title { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.41vw, 36px); line-height: 1.05; }
.avpanel__body { font-size: clamp(15px, 0.70vw, 18px); line-height: 1.55; color: var(--muted); }
.avpanel__acts { display: flex; align-items: center; flex-wrap: wrap; gap: 18px; margin: 0; }
.avpanel__send { gap: 14px; border: 0; cursor: pointer; font-family: var(--text); color: var(--muted); }
.avpanel__send:disabled { cursor: not-allowed; }
.avpanel--ready .avpanel__send { background: var(--accent); color: var(--c-cream); box-shadow: none; }
.avpanel--sent .avpanel__send { background: transparent; color: var(--ink); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); }
.avpanel__clear { border: 0; background: transparent; padding: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); cursor: pointer; }
.avpanel__clear[hidden] { display: none; }

/* --- 04 Все девятнадцать ----------------------------------------------------------------------------- */
.avall__list { display: flex; flex-direction: column; }
.avall__head,
.avrow { display: grid; grid-template-columns: 52px clamp(90px, 5.86vw, 150px) clamp(170px, 11.72vw, 300px) clamp(140px, 9.38vw, 240px) clamp(120px, 7.81vw, 200px) minmax(0, 1fr); gap: 22px; align-items: center; }
.avall__head { margin: 0; padding-bottom: 16px; border-bottom: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); align-items: baseline; }
.avrow { padding: 18px 14px; margin: 0 -14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); color: inherit; text-decoration: none; transition: background 180ms ease-in-out; }
.avrow:hover { background: rgba(var(--ink-rgb), 0.04); }
.avrow--red:hover { background: rgba(var(--accent-rgb), 0.05); }
.avrow[hidden] { display: none; }
.avrow__no { font-family: var(--mono); font-size: 13px; color: var(--muted); }
.avrow__date { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.14em; color: var(--muted); }
.avrow__home { font-size: clamp(15px, 0.74vw, 19px); }
.avrow__who { font-size: clamp(14px, 0.66vw, 17px); }
.avrow__report,
.avrow__after { font-size: clamp(14px, 0.66vw, 17px); color: var(--muted); }
.avrow--offer .avrow__after { color: var(--ink); }
.avrow--red .avrow__no,
.avrow--red .avrow__report { color: var(--accent); }

/* --- 05 Один час целиком: красное кольцо ---------------------------------------------------------- */
.avone__shell { display: grid; grid-template-columns: clamp(260px, 18.75vw, 480px) minmax(0, 1fr); border-radius: 14px; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.avone__file { display: flex; flex-direction: column; gap: 20px; padding: clamp(22px, 1.25vw, 32px); background: rgba(var(--accent-rgb), 0.06); min-width: 0; }
.avone__thumb { height: 170px; }
.avone__rows { gap: 9px; padding-top: 16px; border-top: 2px solid var(--accent); }
.avone__file > .alwait__meta { margin-top: -12px; }
.avone__record { border-left: 0; }
.avstep { display: grid; grid-template-columns: clamp(100px, 6.64vw, 170px) minmax(0, 1fr) clamp(110px, 7.42vw, 190px); gap: 22px; align-items: baseline; padding: 20px 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.avstep:last-of-type { border-bottom: 0; }
.avstep__when { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.18em; color: var(--muted); }
.avstep__text { font-size: clamp(15px, 0.74vw, 19px); }
.avstep__right { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); text-align: right; }
.avstep__right.sdred { color: var(--accent); }
.avowed { display: flex; flex-direction: column; gap: 12px; margin-top: 26px; padding: 24px 26px; border-radius: 12px; background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.avowed__label { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.avowed__row { display: flex; align-items: baseline; gap: 12px; font-size: clamp(15px, 0.74vw, 19px); }
.avowed__lead { flex: 1; border-bottom: 1px dotted rgba(var(--accent-rgb), 0.4); }

/* --- 06 Четыре правила ---------------------------------------------------------------------------- */
.avrules { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.avrule { gap: 16px; padding: clamp(20px, 1.09vw, 28px); }
.pmrule__disc--42 { width: 42px; height: 42px; font-size: 21px; }
.avrule__title { font-size: clamp(22px, 1.17vw, 30px); }
.avrule__text { font-size: clamp(15px, 0.70vw, 18px); }

/* ==========================================================================
   109. Agent viewings — адаптив
   ========================================================================== */
@media (max-width: 1500px) {
  .avweek__grid,
  .avcompose,
  .avone__shell { grid-template-columns: minmax(0, 1fr); }
  .avrules { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .avone__record { border-top: 1px solid rgba(var(--accent-rgb), 0.32); }
  .avgrid { display: flex; overflow-x: auto; scrollbar-width: thin; padding-bottom: 8px; }
  .avday { flex: 0 0 clamp(150px, 7.81vw, 200px); }
  .avall__head { display: none; }
  .avrow { grid-template-columns: 40px minmax(0, 1fr) minmax(0, 1fr); }
  .avrow__home,
  .avrow__who,
  .avrow__report,
  .avrow__after { grid-column: 2 / -1; }
}

@media (max-width: 640px) {
  .avrules { grid-template-columns: minmax(0, 1fr); }
  .avstep { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .avstep__right { text-align: left; }
  .avrow { padding: 16px 10px; margin: 0 -10px; }
  .avhour__top { flex-wrap: wrap; }
  .avpanel__send { width: 100%; justify-content: center; }
  .avbuyer,
  .avbuyer__pill { width: 100%; }
  .avbuyer__pill { justify-content: space-between; }
}

/* ==========================================================================
   110. Agent availability — открытые часы это обещание; причины остаются на столе
   ========================================================================== */
.aapage .uoledger__row { font-size: clamp(14px, 0.66vw, 17px); color: var(--ink); }
.aapage .uoledger__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.aapage .uoledger__v.sdred { color: var(--accent); }
.aapage .uoflow > section { display: flex; flex-direction: column; gap: 30px; }
.aapage .uosec__head { margin: 0; }

/* --- 02 Стандартная неделя ------------------------------------------------------------------------ */
.aaweek__form { display: flex; flex-direction: column; gap: 30px; }
.aaweek__bar { margin: 0; }
.aabtn { border: 0; background: transparent; cursor: pointer; font-family: var(--text); }
.aabtn--ink { background: var(--ink); color: var(--bg); box-shadow: none; }
.aabtn:hover { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.45); }
.aabtn--ink:hover { box-shadow: none; background: var(--accent); color: var(--c-cream); }
.aagrid { display: grid; grid-template-columns: clamp(70px, 4.30vw, 110px) repeat(7, minmax(0, 1fr)); gap: 10px; align-items: start; }
.aagrid__hours { display: flex; flex-direction: column; gap: 10px; padding-top: 46px; }
.aagrid__hour { display: flex; align-items: center; height: 52px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.14em; color: var(--muted); }
.aaday { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.aaday__head { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; height: 36px; padding: 0; border: 0; background: transparent; text-align: left; cursor: pointer; }
.aaday__name { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ink); transition: color 150ms ease-in-out; }
.aaday--closed .aaday__name { color: var(--faint); }
.aaday__head:hover .aaday__name { color: var(--accent); }
.aaday__head:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.aaday__count { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.aacell { position: relative; display: flex; align-items: center; justify-content: center; height: 52px; border-radius: 9px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--faint); transition: background 150ms ease-in-out, color 150ms ease-in-out, box-shadow 150ms ease-in-out; }
.aacell--free { cursor: pointer; }
.aacell--free:hover { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.3); }
.aacell__open { display: none; }
.aacell--free:has(.ssonly__input:checked) { background: rgba(var(--accent-rgb), 0.1); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); color: var(--accent); }
.aacell--free:has(.ssonly__input:checked) .aacell__open { display: inline; }
.aacell--free:has(.ssonly__input:focus-visible) { outline: 2px solid var(--accent); outline-offset: 2px; }
.aacell--booked { background: var(--ink); color: var(--bg); box-shadow: none; }
.aacell--desk { color: var(--muted); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2); }
.aacards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.aacard { display: flex; flex-direction: column; gap: 10px; padding: 26px 28px; border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.aacard--change { background: var(--modal-bg); }
.aacard--dirty { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.aacard__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.aacard--change .aacard__k { color: var(--muted); }
.aacard--dirty .aacard__k { color: var(--accent); }
.aacard__text { font-size: clamp(15px, 0.74vw, 19px); line-height: 1.55; color: var(--muted); }

/* --- 03 Исключения ------------------------------------------------------------------------------ */
.aaexc__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.aaexc { display: grid; grid-template-rows: auto auto auto minmax(0, 1fr) auto; gap: 18px; padding: clamp(20px, 1.17vw, 30px); border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.aaexc--red { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.aaexc__state { padding-bottom: 0; border-bottom: 0; }
.aaexc__dates { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.41vw, 36px); line-height: 1.05; }
.aaexc__rows { gap: 8px; }
.aaexc__text { margin: 0; font-size: clamp(15px, 0.74vw, 19px); line-height: 1.6; color: var(--muted); }

/* --- 04 Что видит покупатель -------------------------------------------------------------------------- */
.aabuyer__grid { display: grid; grid-template-columns: minmax(0, 1fr) clamp(280px, 21.88vw, 560px); gap: 24px; align-items: start; }
.aabuyer__ask { display: flex; flex-direction: column; gap: 20px; padding: clamp(22px, 1.25vw, 32px); border-radius: 14px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); min-width: 0; }
.aabweek { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.aabday { display: flex; flex-direction: column; gap: 9px; min-width: 0; }
.aabday__head { display: flex; flex-direction: column; gap: 2px; padding-bottom: 10px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.aabday--today .aabday__head { border-bottom-color: rgba(var(--accent-rgb), 0.4); }
.aabday__name { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--ink); }
.aabday__date { font-family: var(--display); font-size: clamp(18px, 0.94vw, 24px); line-height: 1; }
.aabday--today .aabday__name,
.aabday--today .aabday__date { color: var(--accent); }
.aabslot { display: flex; align-items: center; justify-content: center; height: 46px; border-radius: 9px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.16em; text-transform: uppercase; }
.aabslot--past { background: rgba(var(--ink-rgb), 0.03); color: var(--faint); letter-spacing: 0.2em; }
.aabslot--mine { background: var(--ink); color: var(--bg); }
.aabslot--ask { box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); color: var(--accent); }
.aabuyer__line { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.aabuyer__acts { display: flex; align-items: center; flex-wrap: wrap; gap: 20px; margin: 0; padding-top: 4px; }
.aabuyer__acts .uopill { gap: 14px; }
.aabuyer__answer { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.aalist { display: flex; flex-direction: column; border-radius: 14px; overflow: hidden; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.aalist__head { padding: 26px 28px; border-bottom: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.aalist__head--mid { padding: 22px 28px; border-top: 2px solid var(--ink); border-bottom: 0; }
.aalist__row { display: flex; align-items: center; gap: 16px; padding: 20px 28px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); font-size: clamp(15px, 0.70vw, 18px); }
.aalist__row:last-child { border-bottom: 0; padding-bottom: 26px; }
.aalist__disc { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 24px; height: 24px; border-radius: 50%; font-family: var(--mono); font-size: 11px; }
.aalist__disc--no { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); color: var(--muted); }
.aalist__disc--yes { background: var(--ink); color: var(--bg); }

/* --- 05 Пять настроек ------------------------------------------------------------------------------ */
.aasettings { display: flex; flex-direction: column; border-radius: 14px; overflow: hidden; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.aasetting { display: grid; grid-template-columns: clamp(200px, 13.28vw, 340px) minmax(0, 1fr) clamp(180px, 11.72vw, 300px); gap: 30px; align-items: center; padding: 26px 30px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.aasetting:last-of-type { border-bottom: 0; }
.aasetting__words { display: flex; flex-direction: column; gap: 5px; }
.aasetting__label { font-size: clamp(16px, 0.82vw, 21px); }
.aasetting__sub { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.aaseg { height: 58px; justify-self: start; background: var(--modal-bg); }
.aaseg__pill { height: 46px; padding: 0 20px; }
.aasetting__note { font-size: clamp(14px, 0.66vw, 17px); color: var(--muted); text-align: right; }

/* ==========================================================================
   111. Agent availability — адаптив
   ========================================================================== */
@media (max-width: 1500px) {
  .aacards,
  .aaexc__grid,
  .aabuyer__grid { grid-template-columns: minmax(0, 1fr); }
  .aagrid { display: flex; overflow-x: auto; scrollbar-width: thin; padding-bottom: 8px; }
  .aagrid__hours { flex: 0 0 70px; position: sticky; left: 0; background: var(--bg); z-index: 1; }
  .aaday { flex: 0 0 clamp(120px, 5.86vw, 150px); }
  .aasetting { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .aasetting__note { text-align: left; }
}

@media (max-width: 640px) {
  .aaweek__bar .abfilter__pill { width: 100%; justify-content: center; }
  .aaweek__bar .uosummary__line { display: none; }
  .aabweek { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .aabuyer__acts .uopill { width: 100%; }
  .aaseg { height: auto; flex-wrap: wrap; padding: 6px; border-radius: 22px; }
  .aaseg__pill { height: 42px; padding: 0 16px; }
}

/* ==========================================================================
   112. Agent reports — пока не подписал, часа не было; один текст, два читателя
   ========================================================================== */
.rppage .uoledger__row { font-size: clamp(14px, 0.66vw, 17px); color: var(--ink); }
.rppage .uoledger__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.rppage .uoledger__v.sdred { color: var(--accent); }
.rppage .uoflow > section { display: flex; flex-direction: column; gap: 30px; }
.rppage .uosec__head { margin: 0; }

/* --- документ --------------------------------------------------------------------------------- */
.rpdoc { display: flex; flex-direction: column; border-radius: 14px; overflow: hidden; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); min-width: 0; }
.rpdoc--red { box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.rpdoc--read { background: var(--modal-field); }
.rpdoc__head { display: flex; align-items: flex-end; gap: 24px; padding: clamp(20px, 1.09vw, 28px) clamp(22px, 1.25vw, 32px) 20px; border-bottom: 2px solid var(--accent); }
.rpdoc__head--ink { border-bottom-color: var(--ink); }
.rpdoc__words { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.rpdoc__prov,
.rpdoc__who { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.rpdoc__prov.sdred { color: var(--accent); }
.rpdoc__who { padding-bottom: 6px; text-align: right; }
.rpdoc__addr { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(26px, 1.56vw, 40px); }
.rpdoc__body { display: flex; flex-direction: column; gap: 26px; padding: clamp(20px, 1.09vw, 28px) clamp(22px, 1.25vw, 32px) clamp(22px, 1.25vw, 32px); }
.rpdoc__body--read { padding: clamp(20px, 1.17vw, 30px) clamp(22px, 1.33vw, 34px) clamp(22px, 1.33vw, 34px); }
.rppart { display: flex; flex-direction: column; gap: 9px; }
.rppart__label { display: flex; align-items: center; gap: 16px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.rppart__label--red { color: var(--accent); }
.rppart__line { flex: 1; height: 1px; background: rgba(var(--ink-rgb), 0.14); }
.rppart__label--red .rppart__line { background: rgba(var(--accent-rgb), 0.3); }
.rptext { min-height: 120px; padding: 20px; font-size: clamp(15px, 0.74vw, 19px); line-height: 1.6; }
.rptext--short { min-height: 96px; }

/* --- вопросы с воротами ----------------------------------------------------------------------- */
.rpq { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 16px; align-items: start; padding: 20px; border-radius: 10px; background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); cursor: pointer; transition: background 160ms ease-in-out, box-shadow 160ms ease-in-out; }
.rpq + .rpq { margin-top: 10px; }
.rpq__disc { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; margin-top: 3px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.5); font-family: var(--mono); font-size: 12px; color: var(--accent); }
.rpq__yes { display: none; }
.rpq__words { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.rpq__quote { font-family: var(--display); font-style: italic; font-size: clamp(18px, 0.94vw, 24px); line-height: 1.4; }
.rpq__answer { font-size: clamp(15px, 0.70vw, 18px); line-height: 1.55; color: var(--muted); }
.rpq__answer--yes { display: none; }
.rpq:has(.ssonly__input:checked) { background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.18); }
.rpq:has(.ssonly__input:checked) .rpq__disc { background: var(--ink); box-shadow: none; color: var(--bg); }
.rpq:has(.ssonly__input:checked) .rpq__no,
.rpq:has(.ssonly__input:checked) .rpq__answer--no { display: none; }
.rpq:has(.ssonly__input:checked) .rpq__yes,
.rpq:has(.ssonly__input:checked) .rpq__answer--yes { display: inline; }
.rpq:has(.ssonly__input:focus-visible) { outline: 2px solid var(--accent); outline-offset: 2px; }
.rptasks { display: flex; flex-direction: column; gap: 10px; }
.rptask { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; padding: 16px 20px; border-radius: 10px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.18); font-size: clamp(15px, 0.70vw, 18px); }
.rptask__owner,
.rptask__when { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.rptask__when--done { color: var(--ink); }

/* --- правая колонка: подпись, читатели, заметка ---------------------------------------------- */
.rpwrite__grid { display: grid; grid-template-columns: minmax(0, 1fr) clamp(280px, 20.31vw, 520px); gap: 24px; align-items: start; }
.rpside { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.rpsign { display: flex; flex-direction: column; gap: 16px; padding: clamp(20px, 1.09vw, 28px) clamp(20px, 1.17vw, 30px); border-radius: 12px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); transition: background 180ms ease-in-out; }
.rpsign--blocked { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.rpsign--signed { background: var(--modal-field); }
.rpsign__label { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.rpsign--signed .rpsign__label { color: var(--muted); }
.rpsign__title { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.33vw, 34px); line-height: 1.05; }
.rpsign__body { font-size: clamp(15px, 0.70vw, 18px); line-height: 1.55; color: var(--muted); }
.rpsign__btn { align-self: flex-start; gap: 16px; border: 0; cursor: pointer; font-family: var(--text); color: var(--muted); }
.rpsign__btn:disabled { cursor: not-allowed; }
.rpsign--ready .rpsign__btn { background: var(--accent); color: var(--c-cream); box-shadow: none; }
.rpsign--signed .rpsign__btn { color: var(--ink); }
.rpreaders,
.rprecord { display: flex; flex-direction: column; border-radius: 12px; overflow: hidden; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.rprecord { background: var(--modal-bg); }
.rpreaders__head { display: flex; align-items: center; gap: 18px; padding: 22px 26px; border-bottom: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.rpreader { display: flex; align-items: center; gap: 16px; padding: 20px 26px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); font-size: clamp(15px, 0.70vw, 18px); }
.rpreader:last-child { border-bottom: 0; }
.rpreader--none { color: var(--muted); }
.rpreader__disc { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 24px; height: 24px; border-radius: 50%; background: var(--ink); color: var(--bg); font-family: var(--mono); font-size: 11px; }
.rpreader__disc--ring { background: transparent; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); color: var(--muted); }
.rpreader__name { flex: 1 1 auto; }
.rpreader__when { flex: 0 1 46%; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); text-align: right; }
.rpnote { display: flex; flex-direction: column; gap: 11px; padding: 26px 30px; border-radius: 12px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.rpnote--field { background: var(--modal-field); }
.rpnote__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.rpnote__text { font-size: clamp(15px, 0.70vw, 18px); line-height: 1.55; color: var(--muted); }
.rpnote__text em { font-family: var(--display); font-style: italic; font-size: 1.15em; color: var(--ink); }

/* --- 03 Таблица восемнадцати ----------------------------------------------------------------- */
.rpsigned__list { display: flex; flex-direction: column; }
.rpsigned__head,
.rprow { display: grid; grid-template-columns: 52px clamp(90px, 5.47vw, 140px) clamp(160px, 10.94vw, 280px) clamp(140px, 8.98vw, 230px) clamp(100px, 6.25vw, 160px) clamp(120px, 8.20vw, 210px) minmax(0, 1fr); gap: 20px; align-items: center; }
.rpsigned__head { margin: 0; padding-bottom: 16px; border-bottom: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); align-items: baseline; }
.rprow { padding: 18px 14px; margin: 0 -14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); color: inherit; text-decoration: none; transition: background 180ms ease-in-out; }
.rprow:hover { background: rgba(var(--ink-rgb), 0.04); }
.rprow[hidden] { display: none; }
.rprow__no { font-family: var(--mono); font-size: 13px; color: var(--muted); }
.rprow__date { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.14em; color: var(--muted); }
.rprow__home { font-size: clamp(15px, 0.74vw, 19px); }
.rprow__who { font-size: clamp(14px, 0.66vw, 17px); }
.rprow__took,
.rprow__read,
.rprow__q { font-size: clamp(14px, 0.66vw, 17px); color: var(--muted); }
.rprow--late .rprow__no,
.rprow--late .rprow__took { color: var(--accent); }
.rprow--unread .rprow__read { color: var(--accent); }

/* --- 04 Один, как его читают ----------------------------------------------------------------- */
.rpone__grid { display: grid; grid-template-columns: minmax(0, 1fr) clamp(260px, 18.75vw, 480px); gap: 24px; align-items: start; }
.rpread__part { display: flex; flex-direction: column; gap: 10px; }
.rpread__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.rpread__text { font-size: clamp(16px, 0.78vw, 20px); line-height: 1.6; }
.rpamend { display: flex; flex-direction: column; gap: 12px; padding: 24px 26px; border-radius: 12px; background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.rpamend__head { display: flex; align-items: center; gap: 16px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--accent); }
.rpamend__line { flex: 1; height: 1px; background: rgba(var(--accent-rgb), 0.3); }
.rpamend__sig { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.rprecord__row { display: flex; align-items: baseline; gap: 12px; padding: 18px 26px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.rprecord__row:last-child { border-bottom: 0; }
.rprecord__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.rprecord__v { font-size: clamp(14px, 0.66vw, 17px); }

/* ==========================================================================
   113. Agent reports — адаптив
   ========================================================================== */
@media (max-width: 1500px) {
  .rpwrite__grid,
  .rpone__grid { grid-template-columns: minmax(0, 1fr); }
  .rpwrite__grid .rpside { order: -1; }
  .rpsigned__head { display: none; }
  .rprow { grid-template-columns: 40px minmax(0, 1fr) minmax(0, 1fr); }
  .rprow__home,
  .rprow__who,
  .rprow__took,
  .rprow__read,
  .rprow__q { grid-column: 2 / -1; }
}

@media (max-width: 640px) {
  .rpdoc__head { flex-direction: column; align-items: flex-start; gap: 12px; }
  .rpdoc__who { text-align: left; }
  .rpsign__btn { width: 100%; justify-content: center; }
  .rpreader { flex-wrap: wrap; }
  .rpreader__when { flex-basis: 100%; text-align: left; padding-left: 40px; }
  .rprow { padding: 16px 10px; margin: 0 -10px; }
}

/* ==========================================================================
   114. Agent documents — бумага, которая есть и не показана, хуже той, которой нет
   ========================================================================== */
.pgpage .uoledger__row { font-size: clamp(14px, 0.62vw, 16px); color: var(--ink); }
.pgpage .uoledger__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.pgpage .uoledger__v.sdred { color: var(--accent); }
.pgpage .uoflow > section { display: flex; flex-direction: column; gap: 30px; }
.pgpage .uosec__head { margin: 0; }

/* --- 02 Четыре карты ------------------------------------------------------------------------------- */
.pgmiss__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; }
.pgmiss { display: grid; grid-template-rows: auto auto auto minmax(0, 1fr) auto; gap: 16px; padding: clamp(20px, 1.09vw, 28px); border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.pgmiss--red { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.pgmiss__state { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin: 0; }
.pgmiss__scale { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pgmiss__name { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.17vw, 30px); line-height: 1.05; }
.pgmiss__rows { gap: 7px; }
.pgmiss__text { margin: 0; font-size: clamp(15px, 0.70vw, 18px); line-height: 1.6; color: var(--muted); }
.pgmiss__cta { justify-self: start; gap: 14px; }
.uopill--50 { height: 50px; padding: 0 22px; font-size: clamp(14px, 0.62vw, 16px); }

/* --- 03 Реестр ------------------------------------------------------------------------------------- */
.pgtable__list { display: flex; flex-direction: column; }
.pgtable__head,
.pgrow { display: grid; grid-template-columns: 52px clamp(150px, 10.16vw, 260px) clamp(170px, 11.72vw, 300px) clamp(100px, 7.03vw, 180px) clamp(100px, 6.64vw, 170px) clamp(170px, 11.72vw, 300px) minmax(0, 1fr); gap: 20px; align-items: center; }
.pgtable__head { margin: 0; padding-bottom: 16px; border-bottom: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); align-items: baseline; }
.pgrow { padding: 18px 14px; margin: 0 -14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); color: inherit; text-decoration: none; transition: background 180ms ease-in-out; }
.pgrow:hover { background: rgba(var(--ink-rgb), 0.04); }
.pgrow--gone:hover { background: rgba(var(--accent-rgb), 0.05); }
.pgrow[hidden] { display: none; }
.pgrow__no { font-family: var(--mono); font-size: 13px; color: var(--muted); }
.pgrow__name { font-size: clamp(15px, 0.74vw, 19px); }
.pgrow__home { font-size: clamp(14px, 0.66vw, 17px); }
.pgrow__dated,
.pgrow__valid { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.14em; color: var(--muted); }
.pgrow__who,
.pgrow__state { font-size: clamp(14px, 0.66vw, 17px); color: var(--muted); }
.pgrow--gone .pgrow__no,
.pgrow--gone .pgrow__name,
.pgrow--gone .pgrow__valid,
.pgrow--gone .pgrow__state,
.pgrow--exp .pgrow__valid,
.pgrow--exp .pgrow__state { color: var(--accent); }

/* --- 04 Матрица ------------------------------------------------------------------------------------ */
.pgwho { display: flex; flex-direction: column; border-radius: 14px; overflow: hidden; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.pgwho__row { display: grid; grid-template-columns: minmax(0, 1fr) repeat(4, clamp(70px, 5.86vw, 150px)) clamp(150px, 10.16vw, 260px); gap: 18px; align-items: center; margin: 0; padding: 18px 30px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.pgwho__head { padding: 22px 30px 16px; border-bottom: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pgwho__center { text-align: center; }
.pgwho__row--desk { background: rgba(var(--ink-rgb), 0.03); }
.pgwho__name { font-size: clamp(15px, 0.74vw, 19px); }
.pgwho__cell { display: flex; justify-content: center; }
.pgwho__disc { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); font-family: var(--mono); font-size: 12px; color: var(--muted); }
.pgwho__disc--yes { background: var(--ink); box-shadow: none; color: var(--bg); }
.pgwho__disc--22 { width: 22px; height: 22px; font-size: 10px; }
.pgwho__when { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.pgwho__legend { display: flex; align-items: center; flex-wrap: wrap; gap: 20px; margin: 0; padding: 22px 30px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pgwho__key { display: inline-flex; align-items: center; gap: 10px; }
.pgwho__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.pgnote--red { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.pgnote--red .rpnote__k { color: var(--accent); }

/* ==========================================================================
   115. Agent documents — адаптив
   ========================================================================== */
@media (max-width: 1500px) {
  .pgmiss__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pgwho__cards { grid-template-columns: minmax(0, 1fr); }
  .pgtable__head { display: none; }
  .pgrow { grid-template-columns: 40px minmax(0, 1fr) minmax(0, 1fr); }
  .pgrow__name,
  .pgrow__home,
  .pgrow__who,
  .pgrow__state { grid-column: 2 / -1; }
  .pgrow__dated { grid-column: 2; }
  .pgrow__valid { grid-column: 3; }
  .pgwho { overflow-x: auto; }
  .pgwho__row { min-width: 900px; }
  .pgwho__legend { min-width: 0; }
}

@media (max-width: 640px) {
  .pgmiss__grid { grid-template-columns: minmax(0, 1fr); }
  .pgrow { padding: 16px 10px; margin: 0 -10px; }
  .pgmiss__cta { justify-self: stretch; }
}

/* ==========================================================================
   116. Agent public page — четыре абзаца пишешь ты, остальное считается
   ========================================================================== */
.pbw-100 { width: 100%; }
.pbw-53 { width: 53%; }
.pbw-31 { width: 31%; }
.pbw-17 { width: 17%; }
.pbw-8 { width: 8%; }
.pbpage .uoledger__row { font-size: clamp(14px, 0.66vw, 17px); color: var(--ink); }
.pbpage .uoledger__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pbpage .uoflow > section { display: flex; flex-direction: column; gap: 30px; }
.pbpage .uosec__head { margin: 0; }
.alband__row--40 { gap: clamp(24px, 1.56vw, 40px); }
.alband__text--full { max-width: none; }
.pgwho__disc--24 { width: 24px; height: 24px; font-size: 11px; }

/* --- 02 Одиннадцать цифр -------------------------------------------------------------------------- */
.pbfig__list { display: flex; flex-direction: column; }
.pbfig__head,
.pbrow { display: grid; grid-template-columns: 52px clamp(200px, 13.28vw, 340px) clamp(120px, 7.81vw, 200px) minmax(0, 1fr) clamp(150px, 8.59vw, 220px); gap: 20px; align-items: center; }
.pbfig__head { margin: 0; padding-bottom: 16px; border-bottom: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); align-items: baseline; }
.pbrow { padding: 18px 14px; margin: 0 -14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); color: inherit; text-decoration: none; transition: background 180ms ease-in-out; }
.pbrow:hover { background: rgba(var(--ink-rgb), 0.04); }
.pbrow__no { font-family: var(--mono); font-size: 13px; color: var(--muted); }
.pbrow__label { font-size: clamp(15px, 0.74vw, 19px); }
.pbrow__value { font-family: var(--display); font-size: clamp(20px, 1.09vw, 28px); }
.pbrow__value.sdred { color: var(--accent); }
.pbrow__source { font-size: clamp(14px, 0.66vw, 17px); color: var(--muted); }
.pbrow__can { display: inline-flex; align-items: center; gap: 12px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }

/* --- 03 Редактор на вкладках ---------------------------------------------------------------------- */
.pbwords__grid { display: grid; grid-template-columns: minmax(0, 1fr) clamp(280px, 20.31vw, 520px); gap: 24px; align-items: stretch; }
.pbeditor { display: flex; flex-direction: column; border-radius: 14px; overflow: hidden; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); min-width: 0; }
.pbeditor__head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px; align-items: end; padding: clamp(20px, 1.09vw, 28px) clamp(22px, 1.33vw, 34px) 20px; border-bottom: 2px solid var(--ink); }
.pbeditor__words { display: flex; flex-direction: column; gap: 9px; min-width: 0; }
.pbeditor__by,
.pbeditor__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.pbeditor__note { text-align: right; }
.pbeditor__title { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(26px, 1.56vw, 40px); line-height: 1.05; }
.pbtabs { display: flex; align-items: stretch; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.pbtab { display: flex; flex: 1; flex-direction: column; align-items: flex-start; gap: 5px; padding: 18px 24px; border: 0; border-left: 1px solid rgba(var(--ink-rgb), 0.14); background: transparent; font-family: var(--text); text-align: left; color: var(--ink); cursor: pointer; transition: background 180ms ease-in-out, color 180ms ease-in-out, box-shadow 180ms ease-in-out; }
.pbtab:first-child { border-left: 0; }
.pbtab:hover { background: rgba(var(--accent-rgb), 0.04); }
.pbtab--on { background: rgba(var(--accent-rgb), 0.07); box-shadow: inset 0 -2px 0 0 var(--accent); color: var(--accent); }
.pbtab:focus-visible { outline: 2px solid var(--accent); outline-offset: -4px; }
.pbtab__ord { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pbtab--on .pbtab__ord { color: var(--accent); }
.pbtab__name { font-size: clamp(15px, 0.70vw, 18px); }
.pbeditor__body { display: flex; flex: 1; flex-direction: column; gap: 18px; padding: clamp(20px, 1.17vw, 30px) clamp(22px, 1.33vw, 34px) clamp(22px, 1.33vw, 34px); }
.pbfield__label { display: flex; align-items: center; gap: 14px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pbfield__line { flex: 1; height: 1px; background: rgba(var(--ink-rgb), 0.14); }
.pbtext { flex: 1; min-height: 180px; padding: 22px 24px; font-size: clamp(16px, 0.78vw, 20px); line-height: 1.6; }
.pbtext[hidden] { display: none; }
.pbeditor__hint { font-size: clamp(14px, 0.66vw, 17px); color: var(--muted); }
.pbeditor__acts { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin: 0; }
.pbeditor__acts .uopill { border: 0; cursor: pointer; font-family: var(--text); gap: 14px; }
.pbeditor__acts .alband__dash { width: 20px; }
.pbphoto { display: flex; flex-direction: column; gap: 16px; padding: 28px 30px; border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.pbphoto__frame { position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; border-radius: 10px; overflow: hidden; background: repeating-linear-gradient(45deg, var(--sheet) 0 6px, var(--sheet-strong) 6px 12px); }
.pbphoto__frame .uophoto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pbphoto__frame .hdph { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; text-align: center; padding: 12px; }
.pbnos { display: flex; flex-direction: column; }
.pbno { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 14px; align-items: center; padding: 13px 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); font-size: clamp(15px, 0.70vw, 18px); }
.pbno:last-child { border-bottom: 0; }
.pbno__disc { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%; background: var(--accent); color: var(--c-cream); font-family: var(--mono); font-size: 10px; }

/* --- 04 Как читают ---------------------------------------------------------------------------------- */
.pbseen__grid { display: grid; grid-template-columns: minmax(0, 1fr) clamp(280px, 21.88vw, 560px); gap: 24px; align-items: stretch; }
.pbseen__grid .rpside .pbnot { flex: 1; }
.pbsources { display: flex; flex-direction: column; padding: clamp(20px, 1.17vw, 30px) clamp(22px, 1.33vw, 34px); border-radius: 14px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.pbsources__head { display: flex; align-items: center; gap: 14px; margin: 0; padding-bottom: 18px; border-bottom: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pbsrc { display: grid; grid-template-columns: clamp(160px, 11.72vw, 300px) clamp(60px, 3.52vw, 90px) minmax(0, 1fr); gap: 20px; align-items: center; padding: 20px 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.pbsrc__label { font-size: clamp(15px, 0.74vw, 19px); }
.pbsrc__count { font-family: var(--display); font-size: clamp(20px, 1.09vw, 28px); line-height: 1; }
.pbsrc__bar { display: flex; align-items: center; gap: 16px; min-width: 0; }
.pbsrc__fill { height: 8px; border-radius: 999px; background: var(--ink); }
.pbsrc__fill--red { background: var(--accent); }
.pbsrc__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); white-space: nowrap; }
.pbsources__foot { display: flex; align-items: center; flex-wrap: wrap; gap: 20px; margin: auto 0 0; padding-top: 20px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pbasks { display: flex; flex-direction: column; }
.pbask { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: center; padding: 14px 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); font-size: clamp(15px, 0.70vw, 18px); }
.pbask:last-child { border-bottom: 0; }
.pbask__n { font-family: var(--mono); font-size: 12px; letter-spacing: 0.14em; color: var(--muted); }

/* ==========================================================================
   117. Agent public page — адаптив
   ========================================================================== */
@media (max-width: 1500px) {
  .pbwords__grid,
  .pbseen__grid { grid-template-columns: minmax(0, 1fr); }
  .pbfig__head { display: none; }
  .pbrow { grid-template-columns: 40px minmax(0, 1fr) auto; }
  .pbrow__label { grid-column: 2; }
  .pbrow__value { grid-column: 3; grid-row: 1; }
  .pbrow__source,
  .pbrow__can { grid-column: 2 / -1; }
  .pbsrc { grid-template-columns: minmax(0, 1fr) auto; }
  .pbsrc__bar { grid-column: 1 / -1; }
}

@media (max-width: 640px) {
  .pbtabs { flex-wrap: wrap; }
  .pbtab { flex: 1 1 50%; border-left: 0; }
  .pbeditor__head { grid-template-columns: minmax(0, 1fr); }
  .pbeditor__note { text-align: left; }
  .pbeditor__acts .uopill { width: 100%; justify-content: center; }
  .pbsrc__note { white-space: normal; }
}

/* ==========================================================================
   118. Agent pledge — править нельзя, можно только провалить
   ========================================================================== */
.pdpage .uoledger__row { font-size: clamp(14px, 0.66vw, 17px); color: var(--ink); }
.pdpage .uoledger__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pdpage .uoflow > section { display: flex; flex-direction: column; gap: 30px; }
.pdpage .uosec__head { margin: 0; }
.pdplate__quote { margin: 0; padding-top: 4px; }
.pdplate__rows { padding-top: 14px; border-top: 1px solid rgba(var(--accent-rgb), 0.25); }

/* --- 02 Шесть строк ------------------------------------------------------------------------------ */
.pdlines { display: flex; flex-direction: column; gap: 20px; }
.pdline { display: grid; grid-template-columns: auto minmax(0, 1fr) clamp(240px, 16.41vw, 420px); gap: 30px; align-items: start; padding: clamp(20px, 1.17vw, 30px); border-radius: 14px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.pdline--fail { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.pdline__disc { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; background: var(--ink); color: var(--bg); font-family: var(--display); font-size: 24px; line-height: 1; font-variant-numeric: lining-nums; }
.pdline--fail .pdline__disc { background: var(--accent); color: var(--c-cream); }
.pdline__words { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.pdline__text { font-family: var(--display); font-style: italic; font-size: clamp(21px, 1.17vw, 30px); line-height: 1.4; }
.pdline__src { display: flex; align-items: center; gap: 14px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pdline__srcline { flex: 1; height: 1px; background: rgba(var(--ink-rgb), 0.14); }
.pdline__srclink { display: inline-flex; align-items: center; gap: 8px; color: var(--ink); text-decoration: none; transition: color 180ms ease-in-out; }
.pdline__srclink:hover { color: var(--accent); }
.pdline__check { font-size: clamp(15px, 0.70vw, 18px); line-height: 1.6; color: var(--muted); }
.pdverdict { display: flex; flex-direction: column; gap: 16px; padding: 22px 24px; border-radius: 12px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.pdline--fail .pdverdict { background: var(--sheet); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.pdverdict__top { display: flex; align-items: center; gap: 12px; margin: 0; }
.pdverdict__mark { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; background: var(--ink); color: var(--bg); font-family: var(--mono); font-size: 11px; }
.pdline--risk .pdverdict__mark { background: transparent; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34); color: var(--muted); }
.pdline--fail .pdverdict__mark { background: var(--accent); color: var(--c-cream); }
.pdverdict__state { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pdline--fail .pdverdict__state { color: var(--accent); }
.pdverdict__fig { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(26px, 1.56vw, 40px); line-height: 1; }
.pdline--fail .pdverdict__fig { color: var(--accent); }
.pdverdict__note { font-size: clamp(14px, 0.66vw, 17px); line-height: 1.6; color: var(--muted); }

/* --- 03 Лестница ---------------------------------------------------------------------------------- */
.pdfail__grid { display: grid; grid-template-columns: minmax(0, 1fr) clamp(280px, 21.88vw, 560px); gap: 24px; align-items: stretch; }
.pdfail__grid .rpside .pdnot { flex: 1; }
.pdladder { display: flex; flex-direction: column; padding: clamp(20px, 1.17vw, 30px) clamp(22px, 1.33vw, 34px); border-radius: 14px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.pdladder__head { display: flex; align-items: center; gap: 14px; margin: 0; padding-bottom: 18px; border-bottom: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pdstep { display: grid; grid-template-columns: auto minmax(0, 1fr) clamp(120px, 8.59vw, 220px); gap: 22px; align-items: center; padding: 22px 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.pdstep:last-of-type { border-bottom: 0; }
.pdstep__disc { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); font-family: var(--mono); font-size: 12px; color: var(--muted); }
.pdstep--done .pdstep__disc { background: var(--accent); box-shadow: none; color: var(--c-cream); }
.pdstep__words { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.pdstep__title { font-size: clamp(16px, 0.78vw, 20px); }
.pdstep__sub { font-size: clamp(14px, 0.66vw, 17px); color: var(--muted); }
.pdstep__when { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); text-align: right; }
.pdstep__when.sdred { color: var(--accent); }
.pdladder__foot { display: flex; align-items: center; flex-wrap: wrap; gap: 20px; margin: auto 0 0; padding-top: 22px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pdreads .vwquote { margin: 0; }

/* --- 04 Провалы за год ------------------------------------------------------------------------------ */
.pdyear__list { display: flex; flex-direction: column; }
.pdyear__head,
.pdrow { display: grid; grid-template-columns: 52px clamp(100px, 6.25vw, 160px) clamp(50px, 3.52vw, 90px) clamp(160px, 11.72vw, 300px) minmax(0, 1fr) clamp(90px, 7.03vw, 180px) clamp(120px, 7.81vw, 200px); gap: 20px; align-items: center; }
.pdyear__head { margin: 0; padding-bottom: 16px; border-bottom: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); align-items: baseline; }
.pdrow { padding: 20px 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.pdrow--open { background: rgba(var(--accent-rgb), 0.06); }
.pdrow__no { font-family: var(--mono); font-size: 13px; color: var(--ink); }
.pdrow__when { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.14em; color: var(--ink); }
.pdrow__disc { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: var(--ink); color: var(--bg); font-family: var(--mono); font-size: 11px; }
.pdrow__what { font-size: clamp(15px, 0.70vw, 18px); }
.pdrow__who,
.pdrow__cleared { font-size: clamp(14px, 0.66vw, 17px); color: var(--muted); }
.pdrow__stood { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(19px, 1.02vw, 26px); line-height: 1; }
.pdrow--open .pdrow__no,
.pdrow--open .pdrow__when,
.pdrow--open .pdrow__what,
.pdrow--open .pdrow__stood,
.pdrow--open .pdrow__cleared { color: var(--accent); }
.pdrow--open .pdrow__disc { background: var(--accent); color: var(--c-cream); }
.pdsums { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.pdsum { display: flex; flex-direction: column; gap: 9px; padding: 26px 30px; border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.pdsum--red { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.pdsum__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pdsum--red .pdsum__k { color: var(--accent); }
.pdsum__v { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(28px, 1.80vw, 46px); line-height: 1; }
.pdsum--red .pdsum__v { color: var(--accent); }
.pdsum__note { font-size: clamp(14px, 0.66vw, 17px); line-height: 1.6; color: var(--muted); }

/* ==========================================================================
   119. Agent pledge — адаптив
   ========================================================================== */
@media (max-width: 1500px) {
  .pdline { grid-template-columns: auto minmax(0, 1fr); }
  .pdverdict { grid-column: 1 / -1; }
  .pdfail__grid { grid-template-columns: minmax(0, 1fr); }
  .pdsums { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pdyear__head { display: none; }
  .pdrow { grid-template-columns: 40px minmax(0, 1fr) auto; padding: 16px 10px; margin: 0 -10px; }
  .pdrow__when { grid-column: 2; }
  .pdrow__line { grid-column: 3; grid-row: 1; }
  .pdrow__what,
  .pdrow__who,
  .pdrow__cleared { grid-column: 2 / -1; }
  .pdrow__stood { grid-column: 2 / -1; }
}

@media (max-width: 640px) {
  .pdsums { grid-template-columns: minmax(0, 1fr); }
  .pdstep { grid-template-columns: auto minmax(0, 1fr); }
  .pdstep__when { grid-column: 2; text-align: left; }
  .pdline { gap: 18px; }
}

/* ==========================================================================
   120. Agent messages — неотвеченное письмо это ответ; один тред на обе стороны
   ========================================================================== */
.ltpage .uoledger__row { font-size: clamp(14px, 0.66vw, 17px); color: var(--ink); }
.ltpage .uoledger__k { font-family: var(--text); font-size: clamp(14px, 0.66vw, 17px); letter-spacing: 0; text-transform: none; color: var(--ink); }
.ltpage .uoledger__v { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.ltpage .uoledger__v.sdred { color: var(--accent); }
.ltpage .uoflow > section { display: flex; flex-direction: column; gap: 30px; }
.ltpage .uosec__head { margin: 0; }

/* --- 02 Четыре карты ----------------------------------------------------------------------------- */
.ltwait__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.ltwait { display: grid; grid-template-rows: auto auto auto minmax(0, 1fr) auto; gap: 18px; padding: clamp(20px, 1.17vw, 30px) clamp(20px, 1.25vw, 32px); border-radius: 14px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.ltwait--red { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.ltwait__state { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin: 0; }
.ltwait__note,
.ltwait__role,
.ltwait__prov { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.ltwait__who { display: flex; align-items: baseline; flex-wrap: wrap; gap: 16px; margin: 0; }
.ltwait__name { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.33vw, 34px); line-height: 1.05; }
.ltwait__quote { margin: 0; padding: 20px 22px; border-radius: 10px; background: var(--modal-bg); font-family: var(--display); font-style: italic; font-size: clamp(18px, 0.94vw, 24px); line-height: 1.45; }
.ltwait--red .ltwait__quote { background: var(--modal-field); }
.ltwait__acts { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }
.ltwait__acts .uopill { gap: 12px; }
.ltwait__acts .alband__dash { width: 20px; }

/* --- 03 Тред ---------------------------------------------------------------------------------------- */
.ltthread__grid { display: grid; grid-template-columns: minmax(0, 1fr) clamp(280px, 20.31vw, 520px); gap: 24px; align-items: start; }
.ltpanel { display: flex; flex-direction: column; border-radius: 14px; overflow: hidden; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); min-width: 0; }
.ltpanel__head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px; align-items: end; padding: clamp(20px, 1.09vw, 28px) clamp(22px, 1.33vw, 34px) 20px; border-bottom: 2px solid var(--ink); }
.ltpanel__words { display: flex; flex-direction: column; gap: 9px; min-width: 0; }
.ltpanel__kicker,
.ltpanel__wait { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.ltpanel__wait { text-align: right; }
.ltpanel__title { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(26px, 1.56vw, 40px); line-height: 1.05; }
.ltpanel__body { display: flex; flex-direction: column; gap: 22px; padding: clamp(20px, 1.09vw, 28px) clamp(22px, 1.33vw, 34px); }
.ltletter { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 18px; align-items: start; }
.ltletter--you { grid-template-columns: minmax(0, 1fr) auto; }
.ltletter__disc { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background: var(--ink); color: var(--bg); font-family: var(--mono); font-size: 11px; letter-spacing: 0.1em; }
.ltletter__disc--ring { background: transparent; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); color: var(--muted); }
.ltletter--open .ltletter__disc { background: var(--accent); color: var(--c-cream); }
.ltletter__words { display: flex; flex-direction: column; gap: 9px; min-width: 0; }
.ltletter--you .ltletter__words { align-items: flex-end; text-align: right; }
.ltletter__prov { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.ltletter__prov.sdred { color: var(--accent); }
.ltletter__body { padding: 18px 22px; border-radius: 10px; background: var(--modal-bg); font-size: clamp(15px, 0.74vw, 19px); line-height: 1.6; text-align: left; }
.ltletter--you .ltletter__body { background: var(--sheet); }
.ltletter--open .ltletter__body { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.ltevent { display: flex; align-items: center; gap: 16px; padding: 16px 22px; border-radius: 10px; background: var(--modal-bg); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.ltevent__line { flex: 1; height: 1px; background: rgba(var(--ink-rgb), 0.14); }
.ltevent__link { display: inline-flex; align-items: center; gap: 8px; color: var(--ink); text-decoration: none; transition: color 180ms ease-in-out; }
.ltevent__link:hover { color: var(--accent); }
.ltcompose { display: flex; flex-direction: column; gap: 14px; padding: 22px; border-radius: 10px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.14); }
.lttext { min-height: 130px; padding: 18px 20px; font-size: clamp(15px, 0.74vw, 19px); line-height: 1.6; }
.lttext::placeholder { color: var(--faint); }
.ltcompose__acts { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 0; }
.ltdraft .abfilter__pill { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); }
.ltdraft .ssonly__input:checked ~ .abfilter__pill { background: var(--ink); color: var(--bg); }
.ltsend { gap: 14px; border: 0; cursor: pointer; font-family: var(--text); color: var(--faint); }
.ltsend:disabled { cursor: not-allowed; }
.ltcompose--ready .ltsend { background: var(--accent); color: var(--c-cream); box-shadow: none; }
.ltcompose--sent .ltsend { color: var(--muted); }
.ltcompose--sent .lttext { color: var(--ink); }
.ltstate { min-height: 0; }
.ltstate__title { color: var(--accent); }
.rpsign--signed .ltstate__title { color: var(--ink); }
.lthas { display: flex; flex-direction: column; }
.lthas__row { display: grid; grid-template-columns: 24px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 13px 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); font-size: clamp(15px, 0.70vw, 18px); }
.lthas__row:last-child { border-bottom: 0; }
.lthas__disc { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%; background: var(--ink); color: var(--bg); font-family: var(--mono); font-size: 10px; }
.lthas__disc--no { background: var(--accent); color: var(--c-cream); }
.lthas__disc--ring { background: transparent; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); color: var(--muted); }
.lthas__st { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.lthas__text.sdred,
.lthas__st.sdred { color: var(--accent); }

/* --- 04 Все треды ------------------------------------------------------------------------------------ */
.ltall__list { display: flex; flex-direction: column; }
.ltall__head,
.ltrow { display: grid; grid-template-columns: 52px clamp(150px, 9.38vw, 240px) clamp(90px, 5.08vw, 130px) clamp(160px, 11.72vw, 300px) minmax(0, 1fr) clamp(80px, 7.03vw, 180px) clamp(100px, 6.64vw, 170px); gap: 20px; align-items: center; }
.ltall__head { margin: 0; padding-bottom: 16px; border-bottom: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); align-items: baseline; }
.ltrow { padding: 18px 14px; margin: 0 -14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); color: inherit; text-decoration: none; transition: background 180ms ease-in-out; }
.ltrow:hover { background: rgba(var(--ink-rgb), 0.04); }
.ltrow--wait:hover { background: rgba(var(--accent-rgb), 0.05); }
.ltrow[hidden] { display: none; }
.ltrow__no { font-family: var(--mono); font-size: 13px; color: var(--muted); }
.ltrow__who { font-size: clamp(15px, 0.74vw, 19px); }
.ltrow__kind { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.14em; color: var(--muted); }
.ltrow__about { font-size: clamp(14px, 0.66vw, 17px); }
.ltrow__last,
.ltrow__took { font-size: clamp(14px, 0.66vw, 17px); color: var(--muted); }
.ltrow__count { font-family: var(--mono); font-size: 13px; color: var(--muted); }
.ltrow--wait .ltrow__no,
.ltrow--wait .ltrow__who,
.ltrow--wait .ltrow__last,
.ltrow--wait .ltrow__took,
.ltrow--slow .ltrow__took { color: var(--accent); }

/* ==========================================================================
   121. Agent messages — адаптив
   ========================================================================== */
@media (max-width: 1500px) {
  .ltwait__grid,
  .ltthread__grid { grid-template-columns: minmax(0, 1fr); }
  .ltthread__grid .rpside { order: -1; }
  .ltall__head { display: none; }
  .ltrow { grid-template-columns: 40px minmax(0, 1fr) auto; }
  .ltrow__who { grid-column: 2; }
  .ltrow__kind { grid-column: 3; grid-row: 1; }
  .ltrow__about,
  .ltrow__last,
  .ltrow__took { grid-column: 2 / -1; }
  .ltrow__count { grid-column: 2; }
}

@media (max-width: 640px) {
  .ltwait__acts .uopill { width: 100%; justify-content: center; }
  .ltpanel__head { grid-template-columns: minmax(0, 1fr); }
  .ltpanel__wait { text-align: left; }
  .ltletter,
  .ltletter--you { grid-template-columns: minmax(0, 1fr); }
  .ltletter--you .ltletter__disc { order: -1; }
  .ltsend { width: 100%; justify-content: center; }
  .ltevent { flex-wrap: wrap; }
  .ltrow { padding: 16px 10px; margin: 0 -10px; }
  .lthas__row { grid-template-columns: 24px minmax(0, 1fr); }
  .lthas__st { grid-column: 2; }
}

/* ==========================================================================
   122. Agent profile — четырнадцать настоящих настроек; девять перечислены, потому что их нет
   ========================================================================== */
.pspage .uoledger__row { font-size: clamp(14px, 0.66vw, 17px); color: var(--ink); }
.pspage .uoledger__k { font-family: var(--text); font-size: clamp(14px, 0.66vw, 17px); letter-spacing: 0; text-transform: none; color: var(--ink); }
.pspage .uoledger__v { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--muted); }
.pspage .uoledger__v.sdred { color: var(--accent); }
.pspage .uoflow > section { display: flex; flex-direction: column; gap: 30px; }
.pspage .uosec__head { margin: 0; }

/* --- 02 Кто вы ---------------------------------------------------------------------------------------- */
.pswho__grid { display: grid; grid-template-columns: minmax(0, 1fr) clamp(300px, 20.31vw, 520px); gap: 30px; align-items: stretch; }
.pspanel { display: flex; flex-direction: column; border-radius: 14px; overflow: hidden; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); min-width: 0; }
.pspanel__head { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 20px; align-items: end; padding: clamp(20px, 1.09vw, 28px) clamp(22px, 1.33vw, 34px) 20px; border-bottom: 2px solid var(--ink); }
.pspanel__words { display: flex; flex-direction: column; gap: 9px; min-width: 0; }
.pspanel__kicker,
.pspanel__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.pspanel__note { text-align: right; }
.pspanel__title { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(26px, 1.56vw, 40px); line-height: 1.05; }
.pspanel__body { display: flex; flex-direction: column; justify-content: space-between; flex: 1; gap: 26px; padding: clamp(20px, 1.17vw, 30px) clamp(22px, 1.33vw, 34px) clamp(22px, 1.33vw, 34px); }
.pspanel__foot { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin: 0; padding-top: 6px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.pspanel__foot .uopill { gap: 14px; font-family: var(--text); font-size: clamp(14px, 0.62vw, 16px); letter-spacing: 0; text-transform: none; }
.pspanel__foot .alband__dash { width: 20px; }
.psheld { color: var(--muted); }
.psheld--red { box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); color: var(--accent); }
.psphoto { box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.psphoto__head { display: flex; align-items: center; gap: 14px; margin: 0; }
.psphoto__pick { width: max-content; cursor: pointer; }
.pspapers { flex: 1; }
.pspapers .lthas__row { font-size: clamp(14px, 0.62vw, 16px); }

/* --- 03 Как платят ------------------------------------------------------------------------------------- */
.psfees { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.psfee { display: flex; flex-direction: column; gap: 11px; padding: clamp(20px, 1.09vw, 28px) clamp(22px, 1.17vw, 30px); border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); min-width: 0; }
.psfee--red { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.psfee__k,
.psfee__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.psfee__v { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(34px, 2.03vw, 52px); line-height: 1; letter-spacing: -0.02em; }
.psfee--red .psfee__v { color: var(--accent); }
.pswork__grid { display: grid; grid-template-columns: minmax(0, 1fr) clamp(300px, 21.88vw, 560px); gap: 30px; align-items: stretch; }
.pssales { display: flex; flex-direction: column; padding: clamp(20px, 1.17vw, 30px) clamp(22px, 1.33vw, 34px); border-radius: 14px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); min-width: 0; }
.pssales__head { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.pssales__row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; padding: 26px 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.pssale { display: flex; flex-direction: column; gap: 9px; min-width: 0; }
.pssale__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.pssale__v { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(26px, 1.56vw, 40px); line-height: 1; }
.pssales__text { display: flex; flex-direction: column; gap: 14px; padding-top: 26px; }
.pssales__foot { display: flex; align-items: center; gap: 14px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.pspaid .smfield { margin-top: 4px; }
.sminput--ro { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.18); }

/* --- 04 Четырнадцать ------------------------------------------------------------------------------------ */
.pssettings__form { display: flex; flex-direction: column; gap: 30px; }
.pssets { display: flex; flex-direction: column; border-radius: 14px; overflow: hidden; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.psset { display: grid; grid-template-columns: minmax(0, 1fr) clamp(180px, 11.72vw, 300px) clamp(150px, 9.38vw, 240px); gap: 30px; align-items: center; padding: 24px clamp(20px, 1.25vw, 32px); border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.psset--told { background: rgba(var(--accent-rgb), 0.04); }
.psset__words { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.psset__top { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; }
.psset__label { font-size: clamp(16px, 0.78vw, 20px); }
.psset__chip { height: 22px; padding: 0 11px; }
.psset__note { font-size: clamp(14px, 0.66vw, 17px); line-height: 1.5; color: var(--muted); }
.psset__value { font-size: clamp(15px, 0.74vw, 19px); }
.psset__ctrl { display: flex; justify-content: flex-end; }
.pstrack { display: inline-flex; align-items: center; gap: 12px; height: 46px; padding: 0 8px 0 20px; border: 0; border-radius: 999px; background: transparent; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); font-family: var(--text); font-size: clamp(13px, 0.59vw, 15px); color: var(--ink); cursor: pointer; transition: background 180ms ease-in-out, color 180ms ease-in-out, box-shadow 180ms ease-in-out; }
.pstrack__word { white-space: nowrap; }
.pstrack__knob { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; background: var(--ink); color: var(--bg); font-family: var(--mono); font-size: 12px; }
.pstrack__yes,
.pstrack__word--on { display: none; }
.pstrack--switch:has(:checked) { background: var(--ink); color: var(--bg); box-shadow: none; }
.pstrack--switch:has(:checked) .pstrack__knob { background: var(--bg); color: var(--ink); }
.pstrack--switch:has(:checked) .pstrack__yes,
.pstrack--switch:has(:checked) .pstrack__word--on { display: inline; }
.pstrack--switch:has(:checked) .pstrack__no,
.pstrack--switch:has(:checked) .pstrack__word--off { display: none; }
.pstrack--switch:has(:focus-visible) { outline: 2px solid var(--accent); outline-offset: 2px; }
.pstrack--locked { color: var(--muted); cursor: default; }
.pstrack--locked .pstrack__knob { background: transparent; color: var(--muted); }
.pstrack--choice:hover { background: var(--sheet); }
.pssets__foot { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin: 0; padding: 24px clamp(20px, 1.25vw, 32px); background: var(--modal-bg); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.pssets__foot .uopill { gap: 14px; font-family: var(--text); font-size: clamp(14px, 0.62vw, 16px); letter-spacing: 0; text-transform: none; }
.pssets__foot .alband__dash { width: 20px; }
.pssets .abtable__empty { padding: 24px clamp(20px, 1.25vw, 32px); }

/* --- 05 Девять запертых ---------------------------------------------------------------------------------- */
.psfixed__panel { display: flex; flex-direction: column; border-radius: 14px; overflow: hidden; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.psfix { display: grid; grid-template-columns: 52px clamp(200px, 14.06vw, 360px) minmax(0, 1fr) clamp(150px, 10.31vw, 264px); gap: 24px; align-items: center; padding: 22px clamp(20px, 1.25vw, 32px); border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.psfix--head { align-items: baseline; margin: 0; padding: 24px clamp(20px, 1.25vw, 32px) 18px; border-bottom: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.psfix:last-child { border-bottom: 0; }
.psfix__no { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.psfix__label { font-size: clamp(16px, 0.78vw, 20px); }
.psfix__why { font-size: clamp(14px, 0.66vw, 17px); line-height: 1.5; color: var(--muted); }
.psfix__who { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.psfix__who.sdred { color: var(--accent); }

/* --- 06 Уехать или уйти ------------------------------------------------------------------------------ */
.psacc__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.psacc { display: grid; grid-template-rows: auto auto minmax(0, 1fr) auto; gap: 16px; padding: clamp(20px, 1.17vw, 30px) clamp(22px, 1.25vw, 32px); border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); min-width: 0; }
.psacc--red { background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.psacc__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.psacc--red .psacc__k { color: var(--accent); }
.psacc__title { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.33vw, 34px); line-height: 1.05; letter-spacing: -0.02em; }
.psacc__text { margin: 0; font-size: clamp(14px, 0.66vw, 17px); line-height: 1.6; color: var(--muted); }
.psacc__cta { width: max-content; gap: 12px; }
.psacc__cta .alband__dash { width: 20px; background: currentColor; }

/* ==========================================================================
   123. Agent profile — адаптив
   ========================================================================== */
@media (max-width: 1500px) {
  .psfees,
  .psacc__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .psset { grid-template-columns: minmax(0, 1fr) auto; }
  .psset__value { grid-column: 1; }
  .psset__ctrl { grid-column: 2; grid-row: 1 / 3; }
  .psfix { grid-template-columns: 52px minmax(0, 1fr) auto; }
  .psfix__why { grid-column: 2 / -1; }
  .psfix--head .psfix__why { display: none; }
}

@media (max-width: 1100px) {
  .pswho__grid,
  .pswork__grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 640px) {
  .psfees,
  .psacc__grid { grid-template-columns: minmax(0, 1fr); }
  .pspanel__head { grid-template-columns: minmax(0, 1fr); }
  .pspanel__note { text-align: left; }
  .pspanel__foot .uopill,
  .pssets__foot .uopill { width: 100%; justify-content: center; }
  .pssales__row { grid-template-columns: minmax(0, 1fr); }
  .psset { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .psset__ctrl { grid-column: 1; grid-row: auto; justify-content: flex-start; }
  .psfix { grid-template-columns: 52px minmax(0, 1fr); }
  .psfix__who { grid-column: 2; }
  .psfix--head { display: none; }
  .psacc__cta { width: 100%; justify-content: center; }
}

/* ==========================================================================
   124. Blog v1 — журнал: подписано тем, кто там был; ничего не снимается
   ========================================================================== */
.jnbody { display: grid; grid-template-columns: clamp(280px, 14.84vw, 380px) minmax(0, 1fr) clamp(300px, 16.41vw, 420px); gap: clamp(28px, 1.56vw, 40px); align-items: stretch; }
.jnrail__wrap { align-self: stretch; min-width: 0; }
.jnrail { position: sticky; top: 40px; display: flex; flex-direction: column; gap: 34px; }
.jnblock { display: flex; flex-direction: column; gap: 16px; }
.jnblock__head { display: flex; align-items: center; gap: 12px; margin: 0; padding-bottom: 14px; border-bottom: 2px solid var(--ink); }
.jnblock__label,
.jnblock__count { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.22em; color: var(--muted); }
.jnrows { display: flex; flex-direction: column; }
.jnrow { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: baseline; width: 100%; padding: 14px 0; border: 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); background: transparent; font-family: var(--text); font-size: clamp(15px, 0.74vw, 19px); text-align: left; color: var(--ink); cursor: pointer; transition: color 180ms ease-in-out; }
.jnrow:last-child { border-bottom: 0; }
.jnrow:hover { color: var(--accent); }
.jnrow[aria-pressed="true"] .jnrow__label { color: var(--accent); }
.jnrow[aria-pressed="true"] .jnrow__count { color: var(--accent); }
.jnrow__label { min-width: 0; }
.jnrow__count { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.18em; color: var(--muted); }
.jnrow__count.sdred { color: var(--accent); }
.jnrow--author { grid-template-columns: 44px minmax(0, 1fr) auto; align-items: center; }
.jnrow__words { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.jnrow__role { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.jndisc { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 44px; height: 44px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); font-family: var(--mono); font-size: 12px; letter-spacing: 0.1em; color: var(--muted); }
.jndisc--ink { background: var(--ink); color: var(--bg); box-shadow: none; }
.jndisc--40 { width: 40px; height: 40px; }
.jndisc--photo { position: relative; overflow: hidden; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.18); }
.jndisc__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.jnpills { display: flex; flex-wrap: wrap; gap: 10px; }
.jnpill { display: inline-flex; align-items: center; gap: 10px; height: 42px; padding: 0 18px; border: 0; border-radius: 999px; background: transparent; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); font-family: var(--text); font-size: clamp(13px, 0.59vw, 15px); color: var(--ink); cursor: pointer; transition: background 180ms ease-in-out, color 180ms ease-in-out, box-shadow 180ms ease-in-out; }
.jnpill__count { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.18em; color: var(--muted); }
.jnpill:hover { box-shadow: inset 0 0 0 1px var(--accent); color: var(--accent); }
.jnpill[aria-pressed="true"] { background: var(--ink); color: var(--bg); box-shadow: none; }
.jnpill[aria-pressed="true"] .jnpill__count { color: var(--bg); }
.jnnote { display: flex; flex-direction: column; gap: 14px; padding: 26px 28px; border-radius: 12px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.jnnote__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.22em; color: var(--muted); }
.jnnote__text { font-size: clamp(15px, 0.70vw, 18px); line-height: 1.6; color: var(--muted); }
.jnnote__cta { width: max-content; }

/* --- Центр ------------------------------------------------------------------------------------------------- */
.jnlist { display: flex; flex-direction: column; gap: 40px; min-width: 0; }
.jnlist__head { display: flex; align-items: center; flex-wrap: wrap; gap: 20px; margin: 0; padding-bottom: 18px; border-bottom: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.22em; color: var(--muted); }
.jnlist__head .sdred { color: var(--accent); }
.jnposts { display: flex; flex-direction: column; gap: 40px; }
.jnpost { display: grid; grid-template-columns: clamp(320px, 21.88vw, 560px) minmax(0, 1fr); gap: clamp(24px, 1.56vw, 40px); align-items: start; padding-bottom: 40px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.jnpost[hidden] { display: none; }
.jnpost__frame { position: relative; display: block; aspect-ratio: 560 / 380; border-radius: 12px; overflow: hidden; background: repeating-linear-gradient(45deg, var(--sheet) 0 6px, var(--sheet-strong) 6px 12px); }
.jnpost__frame .uophoto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.jnpost__frame .hdph { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 12px; text-align: center; }
.jnpost__words { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.jnpost__meta { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin: 0; }
.jnpost__date { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.jnpost__title { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(26px, 1.80vw, 46px); line-height: 1.08; letter-spacing: -0.02em; }
.jnpost__title a { color: inherit; text-decoration: none; transition: color 180ms ease-in-out; }
.jnpost__title a:hover { color: var(--accent); }
.jnpost__sf { margin: 0; font-size: clamp(16px, 0.78vw, 20px); line-height: 1.6; color: var(--muted); }
.jnpost__foot { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin: 0; padding-top: 4px; }
.jnpost__author { font-size: clamp(15px, 0.70vw, 18px); }
.jnpost__about { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.jnpost__read { gap: 14px; white-space: nowrap; }
.jnpost__cap { margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--faint); }
.jnpager { display: flex; align-items: center; gap: 16px; margin: 0; }
.jnpager__step { gap: 14px; }
.jnpager__step .alband__dash { width: 22px; opacity: 1; }
.jnpager__step:disabled { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); color: var(--faint); cursor: default; }
.jnpager__step:disabled:hover { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.12); color: var(--faint); }
.jnpager__discs { display: flex; align-items: center; justify-content: center; gap: 10px; flex: 1; }
.jnpager__disc { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; border: 0; border-radius: 50%; background: transparent; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); font-family: var(--display); font-size: clamp(18px, 0.86vw, 22px); line-height: 1; font-variant-numeric: lining-nums; color: var(--ink); cursor: pointer; transition: background 180ms ease-in-out, color 180ms ease-in-out; }
.jnpager__disc:hover { box-shadow: inset 0 0 0 1px var(--accent); color: var(--accent); }
.jnpager__disc[aria-pressed="true"] { background: var(--ink); color: var(--bg); box-shadow: none; }
.jnpager__label { display: none; flex: 1; text-align: center; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.22em; color: var(--muted); }
.jnlist__foot { flex-wrap: wrap; gap: 20px; }

/* --- Правый рельс ----------------------------------------------------------------------------------------- */
.jnfeat { display: flex; flex-direction: column; gap: 16px; padding: 28px 30px; border-radius: 12px; background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.jnfeat__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.22em; color: var(--accent); }
.jnfeat__title { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.17vw, 30px); line-height: 1.1; letter-spacing: -0.02em; }
.jnfeat__text { font-size: clamp(15px, 0.70vw, 18px); line-height: 1.6; color: var(--muted); }
.jnfeat__who { display: flex; align-items: center; gap: 12px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.jnfeat__cta { width: max-content; gap: 12px; }
.jnfeat__cta .alband__dash { width: 20px; background: currentColor; }
.jnord { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 14px; align-items: start; padding: 16px 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); color: var(--ink); text-decoration: none; transition: color 180ms ease-in-out; }
.jnord:last-child { border-bottom: 0; }
.jnord:hover { color: var(--accent); }
.jnord__no { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 0.94vw, 24px); line-height: 1; color: var(--muted); }
.jnord__title { font-size: clamp(15px, 0.74vw, 19px); line-height: 1.35; }
.jnord--red .jnord__no,
.jnord--red .jnrow__role { color: var(--accent); }
.jnletter { display: flex; flex-direction: column; gap: 14px; padding: 28px 30px; border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.jnletter__title { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 1.02vw, 26px); line-height: 1.15; letter-spacing: -0.02em; }
.jnletter__text { font-size: clamp(14px, 0.66vw, 17px); line-height: 1.6; color: var(--muted); }
.jnletter__field { height: 56px; background: var(--bg); }
.jnletter__send { justify-content: center; gap: 14px; }
.jnletter__send .alband__dash { width: 22px; }
.jntags { display: flex; flex-wrap: wrap; gap: 10px; }
.jntag { display: inline-flex; align-items: center; height: 40px; padding: 0 17px; border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); font-size: clamp(13px, 0.59vw, 15px); color: var(--ink); text-decoration: none; transition: box-shadow 180ms ease-in-out, color 180ms ease-in-out; }
.jntag:hover { box-shadow: inset 0 0 0 1px var(--accent); color: var(--accent); }

/* ==========================================================================
   125. Blog v1 — адаптив
   ========================================================================== */
@media (max-width: 1400px) {
  .jnbody { grid-template-columns: clamp(280px, 14.84vw, 380px) minmax(0, 1fr); }
  .jnrail__wrap:last-child { grid-column: 1 / -1; }
  .jnrail--right { position: static; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
}

@media (max-width: 1100px) {
  .jnbody { grid-template-columns: minmax(0, 1fr); }
  .jnrail { position: static; }
  .jnrail--left .jnrows { flex-direction: row; flex-wrap: wrap; gap: 10px; }
  .jnrail--left .jnrow { display: inline-flex; align-items: center; gap: 10px; width: auto; height: 42px; padding: 0 18px; border-bottom: 0; border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); font-size: clamp(13px, 0.59vw, 15px); }
  .jnrail--left .jnrow[aria-pressed="true"] { background: var(--ink); color: var(--bg); box-shadow: none; }
  .jnrail--left .jnrow[aria-pressed="true"] .jnrow__label,
  .jnrail--left .jnrow[aria-pressed="true"] .jnrow__count { color: var(--bg); }
  .jnrail--left .jndisc,
  .jnrail--left .jnrow__role { display: none; }
  .jnpost { grid-template-columns: minmax(0, 1fr); }
  .jnpost__frame { aspect-ratio: 16 / 10; }
  .jnpager__discs { display: none; }
  .jnpager__label { display: block; }
}

@media (max-width: 640px) {
  .jnrail--right { grid-template-columns: minmax(0, 1fr); }
  .jnpost__read { width: 100%; justify-content: center; }
  .jnpost__about { width: 100%; }
  .jnpager { flex-wrap: wrap; }
  .jnpager__label { order: 3; flex-basis: 100%; }
  .jnfeat__cta,
  .jnnote__cta { width: 100%; justify-content: center; }
}

/* ==========================================================================
   126. Blog v2 — мастхед, одна ведущая и три карты, очередь чтения
   ========================================================================== */
.jbrail { gap: 24px; }
.jnrail--right.jbrail { gap: 26px; }
.jbmast { position: relative; display: flex; flex-direction: column; border-radius: 14px; overflow: hidden; background: var(--c-night); color: var(--c-cream); }
.jbmast__corner { position: absolute; width: 14px; height: 14px; }
.jbmast__corner--tl { top: 16px; left: 16px; border-top: 1px solid rgba(201, 169, 110, 0.7); border-left: 1px solid rgba(201, 169, 110, 0.7); }
.jbmast__corner--br { bottom: 16px; right: 16px; border-bottom: 1px solid rgba(201, 169, 110, 0.7); border-right: 1px solid rgba(201, 169, 110, 0.7); }
.jbmast__top { display: flex; flex-direction: column; gap: 20px; padding: 34px 32px 26px; }
.jbmast__kicker { display: flex; align-items: center; gap: 12px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.22em; color: var(--gold); }
.jbmast__line { flex: 1; height: 1px; background: rgba(201, 169, 110, 0.4); }
.jbmast__count { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 20px; align-items: end; margin: 0; }
.jbmast__big { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(64px, 3.75vw, 96px); line-height: 0.82; letter-spacing: -0.04em; font-variant-numeric: lining-nums; }
.jbmast__notes { display: flex; flex-direction: column; gap: 6px; padding-bottom: 8px; min-width: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.22em; color: #d8ccb6; }
.jbmast__title { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(26px, 1.33vw, 34px); line-height: 1.1; letter-spacing: -0.02em; }
.jbmast__title em { font-style: italic; color: var(--gold); }
.jbmast__text { margin: 0; font-size: clamp(14px, 0.66vw, 17px); line-height: 1.6; color: #d8ccb6; }
.jbmast__cells { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid rgba(var(--c-cream-rgb), 0.16); }
.jbmast__cell { display: flex; flex-direction: column; gap: 6px; padding: 20px 22px; border-bottom: 1px solid rgba(var(--c-cream-rgb), 0.16); }
.jbmast__cell:nth-child(odd) { border-right: 1px solid rgba(var(--c-cream-rgb), 0.16); }
.jbmast__cell:nth-last-child(-n+2) { border-bottom: 0; }
.jbmast__cellv { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.17vw, 30px); line-height: 1; font-variant-numeric: lining-nums; }
.jbmast__cellk { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: #d8ccb6; }
.jbmast__cell--gold .jbmast__cellv,
.jbmast__cell--gold .jbmast__cellk { color: var(--gold); }
.jbmast__letter { display: flex; flex-direction: column; gap: 14px; padding: 26px 32px 30px; border-top: 1px solid rgba(var(--c-cream-rgb), 0.16); background: rgba(201, 169, 110, 0.07); }
.jbmast__text--letter { line-height: 1.55; }
.jbmast__field { display: flex; align-items: center; box-sizing: border-box; width: 100%; height: 54px; padding: 0 20px; border: 0; border-radius: 999px; background: rgba(var(--c-cream-rgb), 0.07); box-shadow: inset 0 0 0 1px rgba(var(--c-cream-rgb), 0.22); font-family: var(--text); font-size: clamp(14px, 0.66vw, 17px); color: var(--c-cream); }
.jbmast__field::placeholder { color: rgba(216, 204, 182, 0.7); }
.jbmast__send { justify-content: center; gap: 14px; background: var(--gold); color: var(--c-night); }
.jbmast__send:hover { background: var(--c-cream); color: var(--c-night); }
.jbmast__send .alband__dash { width: 20px; background: currentColor; }
.jbcats { display: flex; flex-direction: column; }
.jbcats .jnblock__head { padding-bottom: 12px; }
.jbcat { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: baseline; padding: 17px 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); color: var(--ink); text-decoration: none; transition: color 180ms ease-in-out; }
.jbcat:last-child { border-bottom: 0; }
.jbcat:hover { color: var(--accent); }
.jbcat__label { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 1.05vw, 27px); line-height: 1.05; letter-spacing: -0.02em; }
.jbcat__note,
.jbcat__count { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.jbcat--red,
.jbcat--red .jbcat__note,
.jbcat--red .jbcat__count { color: var(--accent); }
.jbask { gap: 12px; padding: 22px 24px; }
.jbarchive { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.jbarchive__line { flex: 1; height: 1px; background: rgba(var(--ink-rgb), 0.14); }
.jbarchive__year { color: var(--muted); text-decoration: none; transition: color 180ms ease-in-out; }
.jbarchive__year--on,
.jbarchive__year:hover { color: var(--ink); }

/* --- Центр ------------------------------------------------------------------------------------------------- */
.jblist { gap: 36px; }
.jbposts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.jbcard { display: grid; grid-template-rows: auto auto auto auto minmax(0, 1fr) auto; border-radius: 12px; overflow: hidden; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); min-width: 0; }
.jbcard[hidden] { display: none; }
.jbcard--red { background: rgba(var(--accent-rgb), 0.05); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.jbcard--lead { grid-column: 1 / -1; grid-template-rows: auto auto auto; border-radius: 14px; }
.jbcard__frame { position: relative; display: block; overflow: hidden; }
.jbcard__pic { position: relative; display: block; aspect-ratio: 417 / 250; background: repeating-linear-gradient(45deg, var(--sheet) 0 6px, var(--sheet-strong) 6px 12px); }
.jbcard__frame--lead .jbcard__pic { aspect-ratio: 1300 / 580; }
.jbfeat__frame .jbcard__pic { aspect-ratio: 420 / 300; }
.jbcard__pic .uophoto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.jbcard__pic .hdph { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 12px; text-align: center; }
.jbcard__tag { position: absolute; top: 14px; left: 14px; }
.jbcard__frame--lead .jbcard__tag { top: 20px; left: 20px; }
.jbcard__read { position: absolute; bottom: 20px; right: 20px; }
.jbfeat__frame .jbcard__tag { top: 18px; left: 18px; }
.jbfeat__frame .jbcard__read { bottom: 18px; right: 18px; }
.jbchip { background: rgba(253, 250, 243, 0.94); color: #6b5f52; }
.jbchip--dark { background: rgba(31, 26, 22, 0.82); color: #f4ecdc; }
.jbcard__cap { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin: 0; padding: 18px clamp(22px, 1.72vw, 44px); border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.22em; color: var(--muted); }
.jbcard__capline { flex: 1; height: 1px; min-width: 40px; background: rgba(var(--ink-rgb), 0.14); }
.jbcard__body { display: grid; grid-template-columns: minmax(0, 1fr) clamp(240px, 12.89vw, 330px); gap: clamp(24px, 1.72vw, 44px); align-items: end; padding: clamp(22px, 1.41vw, 36px) clamp(22px, 1.72vw, 44px) clamp(24px, 1.56vw, 40px); }
.jbcard__words { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.jbcard__date { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); white-space: nowrap; }
.jbcard__title { margin: 0; padding: 12px 24px 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.17vw, 30px); line-height: 1.08; letter-spacing: -0.02em; text-wrap: pretty; }
.jbcard__title a { color: inherit; text-decoration: none; transition: color 180ms ease-in-out; }
.jbcard__title a:hover { color: var(--accent); }
.jbcard--red .jbcard__title { color: var(--accent); }
.jbcard__title--lead { padding: 0; font-size: clamp(30px, 2.27vw, 58px); line-height: 1.03; }
.jbcard__sf { margin: 0; padding: 12px 24px 0; font-size: clamp(14px, 0.66vw, 17px); line-height: 1.55; color: var(--muted); }
.jbcard__sf--lead { max-width: 820px; padding: 0; font-size: clamp(16px, 0.82vw, 21px); line-height: 1.6; }
.jbcard__aside { display: flex; flex-direction: column; gap: 18px; padding-left: clamp(24px, 1.72vw, 44px); border-left: 1px solid rgba(var(--ink-rgb), 0.14); min-width: 0; }
.jbcard__who { display: flex; align-items: center; gap: 14px; margin: 0; }
.jbcard__author { font-size: clamp(15px, 0.74vw, 19px); }
.jbcard__author--small { font-size: clamp(14px, 0.62vw, 16px); min-width: 0; }
.jbcard__author--17 { font-size: clamp(14px, 0.66vw, 17px); }
.jbcard__about { display: flex; flex-direction: column; gap: 8px; margin: 0; }
.jbcard__aboutk { display: flex; align-items: baseline; gap: 12px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.jbcard__dots { flex: 1; border-bottom: 1px dotted rgba(var(--ink-rgb), 0.28); }
.jbcard__aboutv { font-size: clamp(15px, 0.70vw, 18px); line-height: 1.4; }
.jbcard__cta { justify-content: center; gap: 14px; }
.jbcard__cta .alband__dash { width: 20px; }
.jbcard__no { display: flex; align-items: center; gap: 10px; margin: 0; padding: 20px 24px 0; }
.jbcard__num { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(17px, 0.78vw, 20px); line-height: 1; font-variant-numeric: lining-nums; color: var(--faint); }
.jbcard--red .jbcard__num { color: var(--accent); }
.jbcard__dash { width: 16px; height: 1px; background: rgba(var(--ink-rgb), 0.24); }
.jbcard__strip { display: flex; align-items: center; gap: 12px; margin: 20px 24px 22px; padding-top: 16px; border-top: 1px solid rgba(var(--ink-rgb), 0.14); grid-row: 6; }
.jndisc--30 { width: 30px; height: 30px; font-size: 12px; letter-spacing: 0; }
.jndisc--38 { width: 38px; height: 38px; }
.jndisc--46 { width: 46px; height: 46px; }

/* --- Правый рельс ----------------------------------------------------------------------------------------- */
.jbfeat { display: flex; flex-direction: column; border-radius: 14px; overflow: hidden; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.jbfeat__body { display: flex; flex-direction: column; gap: 16px; padding: 26px 28px 28px; }
.jbfeat__row { display: flex; align-items: center; gap: 12px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.22em; color: var(--muted); }
.jbfeat__title { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.33vw, 34px); line-height: 1.08; letter-spacing: -0.02em; }
.jbfeat__title a { color: inherit; text-decoration: none; transition: color 180ms ease-in-out; }
.jbfeat__title a:hover { color: var(--accent); }
.jbfeat__sf { margin: 0; font-size: clamp(15px, 0.70vw, 18px); line-height: 1.6; color: var(--muted); }
.jbfeat__who { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin: 0; padding-top: 20px; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
.jbfeat__cta { gap: 12px; }
.jbfeat__cta .alband__dash { width: 18px; }
.jbqueue { display: flex; flex-direction: column; gap: 16px; }
.jbq { display: grid; grid-template-columns: 22px 118px minmax(0, 1fr); gap: 16px; align-items: center; padding-bottom: 16px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); color: var(--ink); text-decoration: none; transition: color 180ms ease-in-out; }
.jbq:last-child { padding-bottom: 0; border-bottom: 0; }
.jbq:hover { color: var(--accent); }
.jbq__no { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.14em; color: var(--faint); }
.jbq__pic { position: relative; display: block; width: 118px; aspect-ratio: 118 / 88; border-radius: 8px; overflow: hidden; background: repeating-linear-gradient(45deg, var(--sheet) 0 6px, var(--sheet-strong) 6px 12px); }
.jbq__pic .uophoto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.jbq__pic .hdph { display: none; }
.jbq__title { font-size: clamp(15px, 0.70vw, 18px); line-height: 1.35; }
.jbq__meta { display: flex; align-items: center; gap: 10px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.jbq--red,
.jbq--red .jbq__no,
.jbq--red .jbq__meta { color: var(--accent); }
.jbprog { display: flex; flex-direction: column; gap: 14px; padding: 26px 28px; border-radius: 12px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.jbprog__head { display: flex; align-items: center; gap: 12px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.22em; color: var(--muted); }
.jbprog__ticks { display: flex; align-items: center; gap: 6px; }
.jbprog__tick { flex: 1; height: 6px; border-radius: 999px; background: rgba(var(--ink-rgb), 0.16); transition: background 180ms ease-in-out; }
.jbprog__tick--on { background: var(--ink); }
.jbprog__cta { width: max-content; }
.jbphotos { display: flex; flex-direction: column; gap: 10px; }

/* В тёмной теме мастхед переворачивается в светлую плиту — иначе сливается со страницей (README). */
[data-theme="dark"] .jbmast { background: var(--c-cream); color: var(--c-night); }
[data-theme="dark"] .jbmast__notes,
[data-theme="dark"] .jbmast__text,
[data-theme="dark"] .jbmast__cellk { color: rgba(31, 26, 22, 0.72); }
[data-theme="dark"] .jbmast__kicker,
[data-theme="dark"] .jbmast__title em,
[data-theme="dark"] .jbmast__cell--gold .jbmast__cellv,
[data-theme="dark"] .jbmast__cell--gold .jbmast__cellk { color: #8a6a34; }
[data-theme="dark"] .jbmast__cells,
[data-theme="dark"] .jbmast__cell,
[data-theme="dark"] .jbmast__cell:nth-child(odd),
[data-theme="dark"] .jbmast__letter { border-color: rgba(31, 26, 22, 0.16); }
[data-theme="dark"] .jbmast__letter { background: rgba(201, 169, 110, 0.12); }
[data-theme="dark"] .jbmast__field { background: rgba(31, 26, 22, 0.05); box-shadow: inset 0 0 0 1px rgba(31, 26, 22, 0.22); color: var(--c-night); }
[data-theme="dark"] .jbmast__field::placeholder { color: rgba(31, 26, 22, 0.5); }
[data-theme="dark"] .jbmast__send { background: var(--c-night); color: var(--c-cream); }
[data-theme="dark"] .jbmast__send:hover { background: var(--gold); color: var(--c-night); }
[data-theme="dark"] .jbchip { background: rgba(31, 26, 22, 0.82); color: #f4ecdc; }

/* ==========================================================================
   127. Blog v2 — адаптив
   ========================================================================== */
@media (max-width: 1600px) {
  .jbbody { grid-template-columns: clamp(280px, 14.84vw, 380px) minmax(0, 1fr); }
  .jbbody .jnrail__wrap:last-child { grid-column: 1 / -1; }
  .jnrail--right.jbrail { position: static; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
  .jnrail--right.jbrail .jbfeat { grid-row: 1 / 3; }
}

@media (max-width: 1400px) {
  .jbbody { grid-template-columns: minmax(0, 1fr); }
  .jnrail--left.jbrail { position: static; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; }
  .jnrail--left.jbrail .jbmast { grid-row: 1 / 4; }
  .jbbody .jnrail__wrap:last-child { grid-column: auto; }
}

@media (max-width: 1100px) {
  .jbposts { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .jbcard__body { grid-template-columns: minmax(0, 1fr); }
  .jbcard__aside { padding-left: 0; padding-top: 24px; border-left: 0; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
  .jbq { grid-template-columns: 118px minmax(0, 1fr); }
  .jbq__no { display: none; }
  .jnpager__discs { display: none; }
  .jnpager__label { display: block; }
}

@media (max-width: 860px) {
  .jnrail--left.jbrail,
  .jnrail--right.jbrail { grid-template-columns: minmax(0, 1fr); }
  .jnrail--left.jbrail .jbmast,
  .jnrail--right.jbrail .jbfeat { grid-row: auto; }
}

@media (max-width: 640px) {
  .jbposts { grid-template-columns: minmax(0, 1fr); }
  .jbcard__body { padding: 22px; }
  .jbmast__big { font-size: 64px; }
  .jbcard__cap .sdred { flex-basis: 100%; }
  .jbfeat__cta,
  .jbprog__cta { width: 100%; justify-content: center; }
  .jnpager { flex-wrap: wrap; }
  .jnpager__label { order: 3; flex-basis: 100%; }
}

/* ==========================================================================
   128. Blog v3 — индекс доказывает, три заметки на снимках, вопросы
   ========================================================================== */
.jnrail--left.jcrail { gap: 28px; }
.jnrail--right.jcrail { gap: 26px; }
.jcindex__head { display: flex; flex-direction: column; gap: 16px; }
.jcindex__row { display: flex; align-items: center; gap: 12px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.22em; color: var(--muted); }
.jcgroup__line { flex: 1; height: 1px; background: rgba(var(--ink-rgb), 0.14); }
.jcindex__count { display: flex; align-items: flex-end; gap: 16px; margin: 0; padding-bottom: 16px; border-bottom: 2px solid var(--ink); }
.jcindex__big { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(40px, 2.27vw, 58px); line-height: 0.9; letter-spacing: -0.02em; font-variant-numeric: lining-nums; }
.jcindex__words { display: flex; flex-direction: column; gap: 2px; padding-bottom: 6px; }
.jcindex__sub { font-size: clamp(15px, 0.70vw, 18px); }
.jcindex__red { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--accent); }
.jcindex { display: flex; flex-direction: column; }
.jcgroup { display: flex; flex-direction: column; }
.jcgroup__head { display: flex; align-items: center; gap: 12px; margin: 0; padding: 20px 0 10px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.22em; color: var(--muted); }
.jcentry { display: grid; grid-template-columns: 6px 32px minmax(0, 1fr); gap: 12px; align-items: start; margin-left: -12px; padding: 14px 12px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); border-radius: 6px; color: var(--ink); text-decoration: none; transition: background 180ms ease-in-out; }
.jcentry:hover { background: rgba(var(--ink-rgb), 0.04); }
.jcentry--on .jcentry__no { color: var(--ink); }
.jcdot { display: inline-block; flex: none; width: 6px; height: 6px; border-radius: 50%; }
.jcentry .jcdot { margin-top: 9px; }
.jcdot--red { background: var(--accent); }
.jcdot--ring { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.34); }
.jcentry__no { padding-top: 4px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.14em; color: var(--faint); }
.jcentry__title { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(17px, 0.82vw, 21px); line-height: 1.22; letter-spacing: -0.01em; }
.jcentry__meta { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.jcentry--red,
.jcentry--red .jcentry__no,
.jcentry--red .jcentry__meta { color: var(--accent); }
.jcindex__foot { display: flex; flex-direction: column; gap: 16px; }
.jcindex__more { justify-content: center; gap: 14px; }
.jcindex__more .alband__dash { width: 20px; }
.jclegend { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.jclegend__item { display: inline-flex; align-items: center; gap: 8px; }

/* --- Центр: карта 4F -------------------------------------------------------------------------------------- */
.jcposts { display: flex; flex-direction: column; gap: 56px; }
.jcpost { display: flex; flex-direction: column; gap: 28px; padding-bottom: 56px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.jcpost[hidden] { display: none; }
.jcpost__frame { position: relative; display: block; aspect-ratio: 1300 / 560; border-radius: 12px; overflow: hidden; background: repeating-linear-gradient(45deg, var(--sheet) 0 6px, var(--sheet-strong) 6px 12px); }
.jcpost__frame .uophoto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.jcpost__frame .hdph { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 12px; text-align: center; }
.jcpost__meta { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin: 0; }
.jcpost__date,
.jcpost__credit { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.jcpost__line { flex: 1; height: 1px; min-width: 40px; background: rgba(var(--ink-rgb), 0.14); }
.jcpost__title { margin: 0; max-width: 1150px; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(34px, 2.50vw, 64px); line-height: 1.02; letter-spacing: -0.02em; text-wrap: pretty; }
.jcpost__title a { color: inherit; text-decoration: none; transition: color 180ms ease-in-out; }
.jcpost__title a:hover { color: var(--accent); }
.jcpost--red .jcpost__title { color: var(--accent); }
.jcpost__body { display: grid; grid-template-columns: minmax(0, 1fr) clamp(240px, 13.28vw, 340px); gap: 40px; align-items: start; padding-top: 8px; border-top: 2px solid var(--ink); }
.jcpost__sf { margin: 22px 0 0; font-size: clamp(16px, 0.82vw, 21px); line-height: 1.65; color: var(--muted); }
.jcpost__aside { display: flex; flex-direction: column; gap: 16px; margin-top: 22px; min-width: 0; }
.jcpost__author { font-size: clamp(15px, 0.70vw, 18px); }
.jcpost__author--17 { font-size: clamp(14px, 0.66vw, 17px); }
.jcpost__about { display: flex; align-items: baseline; gap: 12px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.jcpost__aboutv { font-family: var(--text); font-size: clamp(14px, 0.62vw, 16px); letter-spacing: 0; text-transform: none; color: var(--ink); }
.jcpost__cta { justify-content: center; gap: 12px; }
.jcpost__cta .alband__dash { width: 18px; }
.jndisc--34 { width: 34px; height: 34px; font-size: 11px; }
.jndisc--40 { width: 40px; height: 40px; }

/* --- Правый рельс: вопросы -------------------------------------------------------------------------------- */
.jcquestion { display: flex; flex-direction: column; border-radius: 14px; overflow: hidden; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.jcquestion__strip { display: flex; align-items: center; gap: 12px; margin: 0; padding: 20px 28px; background: rgba(var(--accent-rgb), 0.06); border-bottom: 1px solid rgba(var(--accent-rgb), 0.22); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.22em; color: var(--muted); }
.jcquestion__strip .sdred { color: var(--accent); }
.jcquestion__body { display: flex; flex-direction: column; gap: 18px; padding: 28px 30px 30px; }
.jcquestion__quote { margin: 0; font-family: var(--display); font-style: italic; font-size: clamp(20px, 1.05vw, 27px); line-height: 1.35; }
.jcbecame { display: flex; flex-direction: column; gap: 14px; padding: 22px 24px; border-radius: 10px; background: var(--modal-bg); }
.jcbecame__head { display: flex; align-items: center; gap: 12px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.22em; color: var(--muted); }
.jcbecame__title { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 1.02vw, 26px); line-height: 1.12; letter-spacing: -0.02em; }
.jcbecame__title a { color: inherit; text-decoration: none; transition: color 180ms ease-in-out; }
.jcbecame__title a:hover { color: var(--accent); }
.jcbecame__cta { justify-content: center; gap: 12px; }
.jcbecame__cta .alband__dash { width: 18px; background: currentColor; }
.jcquestion__note { margin: 0; font-size: clamp(14px, 0.66vw, 17px); line-height: 1.6; color: var(--muted); }
.jcask { display: flex; flex-direction: column; gap: 14px; }
.jcask .jnblock__head { padding-bottom: 12px; }
.jcask__field { display: block; box-sizing: border-box; width: 100%; min-height: 110px; padding: 18px 20px; border: 0; border-radius: 10px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.18); font-family: var(--text); font-size: clamp(15px, 0.70vw, 18px); line-height: 1.55; color: var(--ink); resize: vertical; caret-color: var(--accent); }
.jcask__field::placeholder { color: var(--faint); }
.jcchips { display: flex; flex-wrap: wrap; gap: 9px; }
.jcchip { position: relative; display: inline-flex; cursor: pointer; }
.jcchip__pill { display: inline-flex; align-items: center; height: 38px; padding: 0 16px; border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); font-size: clamp(13px, 0.55vw, 14px); color: var(--ink); transition: background 180ms ease-in-out, color 180ms ease-in-out, box-shadow 180ms ease-in-out; }
.jcchip:hover .jcchip__pill { box-shadow: inset 0 0 0 1px var(--accent); color: var(--accent); }
.jcchip:has(:checked) .jcchip__pill { background: var(--ink); color: var(--bg); box-shadow: none; }
.jcchip:has(:focus-visible) .jcchip__pill { outline: 2px solid var(--accent); outline-offset: 2px; }
.jcask__send { justify-content: center; gap: 14px; }
.jcask__send .alband__dash { width: 20px; }
.jcask__foot { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.jcask__foot .sdred { color: var(--accent); }
.jcqueue { gap: 14px; }
.jcqueue .jnblock__head { padding-bottom: 12px; }
.jcqueue__rows { display: flex; flex-direction: column; }
.jcq { display: grid; grid-template-columns: minmax(0, 1fr) 78px; gap: 14px; align-items: center; padding: 16px 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.jcq__title { font-size: clamp(15px, 0.70vw, 18px); line-height: 1.35; }
.jcq__meta { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.jcq__due { display: inline-flex; align-items: center; justify-content: center; height: 30px; border-radius: 999px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.jcletter { gap: 12px; padding: 24px 26px; }

/* ==========================================================================
   129. Blog v3 — адаптив
   ========================================================================== */
@media (max-width: 1600px) {
  .jcbody { grid-template-columns: clamp(280px, 14.84vw, 380px) minmax(0, 1fr); }
  .jcbody .jnrail__wrap:last-child { grid-column: 1 / -1; }
  .jnrail--right.jcrail { position: static; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
  .jnrail--right.jcrail .jcquestion { grid-row: 1 / 3; }
}

@media (max-width: 1400px) {
  .jcbody { grid-template-columns: minmax(0, 1fr); }
  .jnrail--left.jcrail { position: static; }
  .jcindex { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 40px; align-items: start; }
  .jcbody .jnrail__wrap:last-child { grid-column: auto; }
}

@media (max-width: 1100px) {
  .jcpost__frame { aspect-ratio: 1300 / 720; }
  .jcpost__title { font-size: clamp(30px, 1.72vw, 44px); }
  .jcpost__body { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .jnpager__discs { display: none; }
  .jnpager__label { display: block; }
}

@media (max-width: 860px) {
  .jcindex,
  .jnrail--right.jcrail { grid-template-columns: minmax(0, 1fr); }
  .jnrail--right.jcrail .jcquestion { grid-row: auto; }
}

@media (max-width: 640px) {
  .jcpost__frame { aspect-ratio: 16 / 10; }
  .jcpost__meta .jcpost__credit { flex-basis: 100%; }
  .jclegend { flex-wrap: wrap; }
  .jcq { grid-template-columns: minmax(0, 1fr); }
  .jcq__due { width: max-content; padding: 0 14px; }
  .jnpager { flex-wrap: wrap; }
  .jnpager__label { order: 3; flex-basis: 100%; }
}

/* ==========================================================================
   130. Blog v4 — без фотографий: строка из самой заметки и запись стола
   ========================================================================== */
.jdrail { gap: 26px; }
.jdblock { gap: 14px; }
.jdblock .jnblock__head { padding-bottom: 12px; }
.jdsearch { display: flex; flex-direction: column; gap: 12px; }
.jdsearch__field { display: flex; align-items: center; gap: 12px; height: 64px; padding: 0 22px; border-radius: 999px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.18); color: var(--muted); cursor: text; }
.jdsearch__glass { flex: none; }
.jdsearch__input { flex: 1; min-width: 0; height: 100%; border: 0; background: transparent; font-family: var(--text); font-size: clamp(15px, 0.70vw, 18px); color: var(--ink); caret-color: var(--accent); outline: none; }
.jdsearch__input::placeholder { color: var(--faint); }
.jdsearch__input::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none; }
.jdsearch__foot { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.jdsearch__term { padding: 0; border: 0; background: transparent; font: inherit; letter-spacing: inherit; text-transform: inherit; color: var(--ink); cursor: pointer; transition: color 180ms ease-in-out; }
.jdsearch__term:hover { color: var(--accent); }
.jdcats { display: flex; flex-direction: column; }
.jdcat { display: grid; grid-template-columns: minmax(0, 1fr) 120px 34px; gap: 14px; align-items: center; width: calc(100% + 24px); margin: 0 -12px; padding: 14px 12px; border: 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); border-radius: 6px; background: transparent; font-family: var(--text); text-align: left; color: var(--ink); cursor: pointer; transition: background 180ms ease-in-out; }
.jdcat:last-child { border-bottom: 0; }
.jdcat:hover { background: rgba(var(--ink-rgb), 0.04); }
.jdcat[aria-pressed="true"] { background: rgba(var(--ink-rgb), 0.05); }
.jdcat__label { font-size: clamp(15px, 0.70vw, 18px); min-width: 0; }
.jdcat__track { display: flex; align-items: center; }
.jdcat__bar { display: block; height: 6px; border-radius: 999px; background: rgba(var(--ink-rgb), 0.2); transition: background 180ms ease-in-out; }
.jdcat[aria-pressed="true"] .jdcat__bar { background: var(--ink); }
.jdw-11 { width: 11%; }
.jdw-15 { width: 15%; }
.jdw-19 { width: 19%; }
.jdw-22 { width: 22%; }
.jdw-33 { width: 33%; }
.jdw-76 { width: 76%; }
.jdw-83 { width: 83%; }
.jdw-89 { width: 89%; }
.jdw-95 { width: 95%; }
.jdw-100 { width: 100%; }
.jdcat__count { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.14em; text-align: right; color: var(--muted); }
.jdcat[aria-pressed="true"] .jdcat__count { color: var(--ink); }
.jdcat--red,
.jdcat--red .jdcat__count,
.jdcat--red[aria-pressed="true"] .jdcat__count { color: var(--accent); }
.jdcat--red .jdcat__bar,
.jdcat--red[aria-pressed="true"] .jdcat__bar { background: var(--accent); }
.jdcat--red[aria-pressed="true"] { background: rgba(var(--accent-rgb), 0.06); }
.jdauthors { display: flex; flex-direction: column; }
.jdauthor { display: grid; grid-template-columns: 38px minmax(0, 1fr) 34px; gap: 14px; align-items: center; margin: 0 -12px; padding: 14px 12px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); border-radius: 6px; color: var(--ink); text-decoration: none; transition: background 180ms ease-in-out; }
.jdauthor:last-child { border-bottom: 0; }
.jdauthor:hover { background: rgba(var(--ink-rgb), 0.04); }
.jdauthor__name { font-size: clamp(15px, 0.70vw, 18px); }
.jndisc--38 { width: 38px; height: 38px; font-size: 11px; }
.jdtag { gap: 10px; }
.jdtag__count { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.18em; color: var(--muted); }
.jdtag__count.sdred { color: var(--accent); }
.jdremoved { gap: 4px; padding: 20px 22px; }
.jdremoved .jnnote__text { font-size: clamp(14px, 0.66vw, 17px); line-height: 1.5; }

/* --- Центр: записи ------------------------------------------------------------------------------------------ */
.jdlist { gap: 32px; }
.jdentries { display: flex; flex-direction: column; }
.jdentry { display: grid; grid-template-columns: 96px minmax(0, 1fr) clamp(240px, 12.50vw, 320px); gap: 36px; align-items: start; margin: 0 -14px; padding: 36px 14px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); border-radius: 8px; transition: background 180ms ease-in-out; }
.jdentry[hidden] { display: none; }
.jdentry:hover { background: rgba(var(--ink-rgb), 0.04); }
.jdentry--red { background: rgba(var(--accent-rgb), 0.04); }
.jdentry--red:hover { background: rgba(var(--accent-rgb), 0.06); }
.jdentry__no { display: flex; flex-direction: column; gap: 12px; }
.jdentry__num { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(30px, 1.72vw, 44px); line-height: 0.9; letter-spacing: -0.02em; font-variant-numeric: lining-nums; color: var(--faint); }
.jdentry__tick { width: 30px; height: 2px; background: var(--ink); }
.jdentry__day { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; line-height: 1.6; color: var(--muted); }
.jdentry--red .jdentry__num { color: var(--accent); }
.jdentry--red .jdentry__tick { background: var(--accent); }
.jdentry__words { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.jdentry__meta { display: flex; align-items: center; gap: 12px; margin: 0; }
.jdentry__title { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(30px, 1.95vw, 50px); line-height: 1.05; letter-spacing: -0.02em; text-wrap: pretty; }
.jdentry__title a { color: inherit; text-decoration: none; transition: color 180ms ease-in-out; }
.jdentry__title a:hover { color: var(--accent); }
.jdentry--red .jdentry__title { color: var(--accent); }
.jdentry__sf { margin: 0; font-size: clamp(16px, 0.78vw, 20px); line-height: 1.6; color: var(--muted); }
.jdentry__quote { margin: 0; padding-left: 20px; border-left: 2px solid rgba(var(--ink-rgb), 0.24); font-family: var(--display); font-style: italic; font-size: clamp(18px, 0.86vw, 22px); line-height: 1.42; }
.jdentry--red .jdentry__quote { border-left-color: rgba(var(--accent-rgb), 0.42); color: var(--accent); }
.jdentry__aside { display: flex; flex-direction: column; gap: 16px; padding-left: 36px; border-left: 1px solid rgba(var(--ink-rgb), 0.14); min-width: 0; }
.jdentry--red .jdentry__aside { border-left-color: rgba(var(--accent-rgb), 0.22); }
.jdentry__aboutv { margin-top: -6px; font-size: clamp(14px, 0.66vw, 17px); line-height: 1.4; }

/* --- Правый рельс: запись стола ------------------------------------------------------------------------- */
.jdrecord__text { margin: 0; font-size: clamp(15px, 0.70vw, 18px); line-height: 1.6; color: var(--muted); }
.jdfigs { display: flex; flex-direction: column; border-radius: 12px; overflow: hidden; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.jdfig { display: grid; grid-template-columns: minmax(0, 1fr) 110px; gap: 16px; align-items: center; padding: 20px 24px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); color: var(--ink); text-decoration: none; transition: background 180ms ease-in-out; }
.jdfig:hover { background: rgba(var(--ink-rgb), 0.04); }
.jdfig--red { background: rgba(var(--accent-rgb), 0.04); }
.jdfig--red:hover { background: rgba(var(--accent-rgb), 0.06); }
.jdfig__label { font-size: clamp(15px, 0.70vw, 18px); }
.jdfig__row { display: flex; align-items: center; gap: 10px; margin-top: 4px; }
.jdfig__track { display: block; flex: none; width: 64px; height: 5px; border-radius: 999px; background: rgba(var(--ink-rgb), 0.14); overflow: hidden; }
.jdfig__bar { display: block; height: 5px; border-radius: 999px; background: var(--ink); }
.jdfig--red .jdfig__bar { background: var(--accent); }
.jdfig__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.jdfig--red .jdfig__note { color: var(--accent); }
.jdfig__value { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.17vw, 30px); line-height: 1; text-align: right; font-variant-numeric: lining-nums; }
.jdfig--red .jdfig__value { color: var(--accent); }
.jdfigs__foot { display: flex; align-items: center; gap: 14px; margin: 0; padding: 18px 24px; background: var(--modal-bg); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.jdmists { display: flex; flex-direction: column; gap: 14px; padding: 26px 28px; border-radius: 12px; background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.jdmists__head { display: flex; align-items: center; gap: 14px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.22em; color: var(--accent); }
.jdmists__disc { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 38px; height: 38px; border-radius: 50%; background: var(--accent); color: var(--c-cream); font-family: var(--display); font-size: 19px; line-height: 1; letter-spacing: 0; font-variant-numeric: lining-nums; }
.jdmists__rows { display: flex; flex-direction: column; }
.jdmist { display: grid; grid-template-columns: 32px minmax(0, 1fr); gap: 12px; align-items: start; padding: 13px 0; border-bottom: 1px solid rgba(var(--accent-rgb), 0.22); color: var(--accent); text-decoration: none; transition: color 180ms ease-in-out; }
.jdmist:last-child { border-bottom: 0; }
.jdmist:hover { color: var(--ink); }
.jdmist__no { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(16px, 0.74vw, 19px); line-height: 1.2; font-variant-numeric: lining-nums; }
.jdmist__title { font-size: clamp(14px, 0.66vw, 17px); line-height: 1.35; }
.jdwheres { display: flex; flex-direction: column; }
.jdwhere { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 14px 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); font-size: clamp(15px, 0.70vw, 18px); color: var(--ink); text-decoration: none; transition: color 180ms ease-in-out; }
.jdwhere:last-child { border-bottom: 0; }
.jdwhere:hover { color: var(--accent); }
.jdwhere__count { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.jdwhere__count.sdred { color: var(--accent); }
.jdwhy { gap: 12px; padding: 24px 26px; }

/* ==========================================================================
   131. Blog v4 — адаптив
   ========================================================================== */
@media (max-width: 1600px) {
  .jdbody { grid-template-columns: clamp(280px, 14.84vw, 380px) minmax(0, 1fr); }
  .jdbody .jnrail__wrap:last-child { grid-column: 1 / -1; }
  .jnrail--right.jdrail { position: static; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
}

@media (max-width: 1400px) {
  .jdbody { grid-template-columns: minmax(0, 1fr); }
  .jnrail--left.jdrail { position: static; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
  .jnrail--left.jdrail .jdsearch { grid-column: 1 / -1; }
  .jdbody .jnrail__wrap:last-child { grid-column: auto; }
}

@media (max-width: 1100px) {
  .jdentry { grid-template-columns: minmax(0, 1fr); gap: 20px; margin: 0; padding: 28px 0; }
  .jdentry__no { flex-direction: row; align-items: center; }
  .jdentry__day br { display: none; }
  .jdentry__title { font-size: clamp(28px, 1.41vw, 36px); }
  .jdentry__quote { font-size: clamp(17px, 0.74vw, 19px); }
  .jdentry__aside { padding-left: 0; padding-top: 20px; border-left: 0; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
  .jnpager__discs { display: none; }
  .jnpager__label { display: block; }
}

@media (max-width: 860px) {
  .jnrail--left.jdrail,
  .jnrail--right.jdrail { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 640px) {
  .jdcat { grid-template-columns: minmax(0, 1fr) 80px 34px; }
  .jdfig { grid-template-columns: minmax(0, 1fr) auto; }
  .jnpager { flex-wrap: wrap; }
  .jnpager__label { order: 3; flex-basis: 100%; }
}

/* ==========================================================================
   132. Blog post — улика в самой заметке; письма печатаются как есть
   ========================================================================== */
/* «The journal.» здесь не h1 (h1 — заголовок статьи), шрифт заголовка — явно */
.jppage .pagehead__title { margin: 0; font-family: var(--display); font-weight: 400; }
.jpcentre { display: flex; flex-direction: column; min-width: 0; }
.jpdivider { margin: 70px 0; border: 0; height: 1px; background: rgba(var(--ink-rgb), 0.14); }
.jppost { display: flex; flex-direction: column; gap: 34px; }
.jppost__head { display: flex; flex-direction: column; gap: 22px; }
.jpmast { position: relative; display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin: 0; padding-left: 22px; }
.jpmast__tick { position: absolute; left: 0; top: calc(50% - 6px); width: 14px; height: 12px; border-left: 1px solid var(--ink); }
.jpmast__tick::after { content: ""; position: absolute; left: 0; top: 6px; width: 14px; height: 1px; background: var(--ink); }
.jpmast__meta { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.jptitle { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(40px, 3.28vw, 84px); line-height: 1; letter-spacing: -0.028em; text-wrap: balance; }
.jptitle em { font-style: italic; color: var(--accent); }
.jpsf { margin: 0; font-size: clamp(18px, 0.98vw, 25px); line-height: 1.55; color: var(--muted); }
.jpsf__ink { color: var(--ink); }
.jpbyline { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 30px; align-items: center; padding: 24px 0; border-top: 1px solid rgba(var(--ink-rgb), 0.14); border-bottom: 2px solid var(--ink); }
.jpbyline__name { font-size: clamp(16px, 0.74vw, 19px); }
.jpbyline__acts { display: flex; flex-wrap: wrap; gap: 12px; margin: 0; }
.jpbyline__acts .uopill { white-space: nowrap; }
.jndisc--48 { width: 48px; height: 48px; }
.jphero { display: flex; flex-direction: column; gap: 14px; margin: 0; }
.jphero__frame { position: relative; display: block; aspect-ratio: 1300 / 660; border-radius: 12px; overflow: hidden; background: repeating-linear-gradient(45deg, var(--sheet) 0 6px, var(--sheet-strong) 6px 12px); }
.jphero__frame .uophoto { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.jphero__frame .hdph { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding: 12px; text-align: center; }
.jphero__cap { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.jpprose { display: flex; flex-direction: column; gap: 26px; }
.jpprose p { margin: 0; font-size: clamp(17px, 0.90vw, 23px); font-weight: 300; line-height: 1.72; text-wrap: pretty; }
.jpprose p::after { content: ""; display: table; clear: both; }
.jpdrop { float: left; margin: 10px 16px 0 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(60px, 3.59vw, 92px); line-height: 0.72; letter-spacing: -0.02em; color: var(--accent); }
.jplink { color: var(--ink); text-decoration: underline; text-decoration-color: rgba(var(--accent-rgb), 0.4); text-underline-offset: 3px; transition: color 180ms ease-in-out; }
.jplink:hover { color: var(--accent); }
.jph2 { margin: 12px 0 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(28px, 1.72vw, 44px); line-height: 1.08; letter-spacing: -0.02em; }
.jpcomps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-radius: 12px; overflow: hidden; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.jpcomp { display: flex; flex-direction: column; gap: 11px; padding: 24px 28px; border-right: 1px solid rgba(var(--ink-rgb), 0.14); min-width: 0; }
.jpcomp:last-child { border-right: 0; }
.jpcomp__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.jpcomp__row { display: flex; align-items: baseline; flex-wrap: wrap; gap: 12px; }
.jpcomp__price { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 1.02vw, 26px); line-height: 1; }
.jpcomp__days { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.14em; color: var(--muted); }
.jpcomp__days.sdred { color: var(--accent); }
.jpsummary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; align-items: start; }
.jpsum { display: flex; flex-direction: column; gap: 9px; min-width: 0; }
.jpsum__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.22em; color: var(--muted); }
.jpsum__text { font-size: clamp(15px, 0.74vw, 19px); line-height: 1.55; }
.jpsum--red .jpsum__k,
.jpsum--red .jpsum__text { color: var(--accent); }
.jpcomp__track { display: block; height: 5px; border-radius: 999px; background: rgba(var(--ink-rgb), 0.14); overflow: hidden; }
.jpcomp__bar { display: block; height: 5px; border-radius: 999px; background: var(--ink); }
.jpcomp__bar--red { background: var(--accent); }
.jpw-25 { width: 25%; }
.jpw-97 { width: 97%; }
.jpw-100 { width: 100%; }
.jpweek5 { display: grid; grid-template-columns: minmax(0, 1fr) clamp(280px, 17.19vw, 440px); gap: 40px; align-items: start; }
.jpfax { display: flex; flex-direction: column; gap: 14px; padding: 26px 28px; border-radius: 12px; background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.jpprose .jpfax__head { display: flex; font-weight: 400; line-height: 1.5; align-items: center; gap: 12px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.22em; color: var(--muted); }
.jpfax__head .sdred { color: var(--accent); }
.jpfax__line { flex: 1; height: 1px; background: rgba(var(--accent-rgb), 0.22); }
.jpfax__quote { font-family: var(--display); font-style: italic; font-size: clamp(18px, 0.86vw, 22px); line-height: 1.42; }
.jpfax__note { font-size: clamp(14px, 0.66vw, 17px); line-height: 1.6; color: var(--muted); }
.jpquote { display: grid; grid-template-columns: minmax(0, 1fr) clamp(220px, 11.72vw, 300px); gap: 40px; align-items: end; margin: 0; padding: 34px 0; border-top: 2px solid var(--ink); border-bottom: 2px solid var(--ink); }
.jpquote__text { font-family: var(--display); font-style: italic; font-size: clamp(26px, 1.72vw, 44px); line-height: 1.22; letter-spacing: -0.02em; color: var(--accent); }
.jpquote__aside { display: flex; flex-direction: column; gap: 8px; }
.jpquote__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.jpquote__line { font-family: var(--display); font-style: italic; font-size: clamp(16px, 0.74vw, 19px); line-height: 1.4; color: var(--muted); }
.jpprices { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 22px; padding: clamp(22px, 1.25vw, 32px) clamp(24px, 1.41vw, 36px); border-radius: 12px; background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.jpprice { display: flex; flex-direction: column; gap: 9px; min-width: 0; }
.jpprice__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.jpprice__v { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(28px, 1.56vw, 40px); line-height: 1; font-variant-numeric: lining-nums; }
.jpprice__note { font-size: clamp(14px, 0.62vw, 16px); line-height: 1.5; color: var(--muted); }
.jpprice--red .jpprice__k,
.jpprice--red .jpprice__v { color: var(--accent); }
.jpcards { display: grid; grid-template-columns: minmax(0, 1fr) clamp(280px, 16.41vw, 420px); gap: 30px; align-items: stretch; }
.jpcard { display: flex; flex-direction: column; justify-content: center; gap: 10px; padding: 28px 32px; border-radius: 12px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.jpcard--field { gap: 14px; background: var(--modal-field); }
.jpcard__text { font-size: clamp(15px, 0.74vw, 19px); line-height: 1.55; }
.jpcard__quote { font-family: var(--display); font-style: italic; font-size: clamp(18px, 0.86vw, 22px); line-height: 1.4; }
.jpcard__cta { width: max-content; gap: 14px; }
.jpcard__cta .alband__dash { width: 20px; }
.jpnav { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 30px; align-items: center; padding-top: 28px; border-top: 2px solid var(--ink); }
.jpnav__link { display: flex; flex-direction: column; gap: 7px; color: var(--ink); text-decoration: none; transition: color 180ms ease-in-out; }
.jpnav__link:hover { color: var(--accent); }
.jpnav__link--right { text-align: right; }
.jpnav__link--none { color: var(--faint); }
.jpnav__dir { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.jpnav__title { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 1.02vw, 26px); line-height: 1.15; letter-spacing: -0.02em; }
.jpnav__counter { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.22em; color: var(--muted); white-space: nowrap; }

/* --- Письма ----------------------------------------------------------------------------------------------- */
.jpletters { display: flex; flex-direction: column; gap: 30px; }
.jpletters__kicker { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.22em; color: var(--muted); }
.jpletters__head .uosec__title { font-size: clamp(32px, 2.19vw, 56px); }
.jpletters__list { display: flex; flex-direction: column; }
.jpfigs { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 48px; margin: 0; }
.jpfig { display: flex; flex-direction: column; gap: 8px; }
.jpfig__k,
.jpfigs__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.jpfigs__note { text-align: right; }
.jpfig__v { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(30px, 1.72vw, 44px); line-height: 1; font-variant-numeric: lining-nums; }
.jpfig--red .jpfig__k,
.jpfig--red .jpfig__v { color: var(--accent); }
.jpfigs__bar { width: 1px; height: 42px; background: rgba(var(--ink-rgb), 0.14); }
.jpletter__no { display: flex; flex-direction: column; gap: 9px; padding-top: 6px; }
.jpletter__num { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(20px, 0.94vw, 24px); line-height: 1; font-variant-numeric: lining-nums; color: var(--faint); }
.jpletter__tick { width: 20px; height: 2px; background: var(--ink); }
.jpletter--dis .jpletter__num { color: var(--accent); }
.jpletter--dis .jpletter__tick { background: var(--accent); }
.jpreply__pill { color: var(--muted); }
.jpreply__pill--red { box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.42); color: var(--accent); }
.jpsteps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; padding-top: 20px; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
.jpstep { display: flex; flex-direction: column; gap: 7px; min-width: 0; }
.jpstep__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.jpstep__text { font-size: clamp(14px, 0.66vw, 17px); line-height: 1.5; color: var(--muted); }
.jpletter { display: grid; grid-template-columns: 42px 52px minmax(0, 1fr); gap: 22px; align-items: start; padding: 26px 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.jndisc--52 { width: 52px; height: 52px; }
.jpletter--dis .jndisc--photo { box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.42); }
.jndisc--redring { box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.42); color: var(--accent); }
.jpletter__words { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.jpletter__head { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin: 0; }
.jpletter__name { font-size: clamp(16px, 0.74vw, 19px); }
.mxpill--24 { height: 24px; padding: 0 12px; }
.jpletter__when,
.jpreply__role,
.jpreply__when { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.jpletter__text { margin: 0; font-size: clamp(16px, 0.78vw, 20px); line-height: 1.62; }
.jpreply { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 18px; align-items: start; margin-top: 4px; padding: 20px 24px; border-radius: 10px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.jpletter--dis .jpreply { background: rgba(var(--accent-rgb), 0.05); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.jpletter--dis .jpreply__when { color: var(--accent); }
.jpreply__words { display: flex; flex-direction: column; gap: 9px; min-width: 0; }
.jpreply__head { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin: 0; }
.jpreply__name { font-size: clamp(15px, 0.66vw, 17px); }
.jpreply__text { margin: 0; font-size: clamp(15px, 0.70vw, 18px); line-height: 1.6; color: var(--muted); }
.jpform__grid { display: grid; grid-template-columns: minmax(0, 1fr) clamp(280px, 16.41vw, 420px); gap: 30px; align-items: stretch; }
.jpform { display: flex; flex-direction: column; border-radius: 14px; overflow: hidden; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); min-width: 0; }
.jpform__head { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin: 0; padding: 26px clamp(20px, 1.25vw, 32px) 20px; border-bottom: 2px solid var(--ink); }
.jpform__title { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.25vw, 32px); line-height: 1; letter-spacing: -0.02em; }
.jpform__note { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.22em; color: var(--muted); }
.jpform__body { display: flex; flex-direction: column; gap: 22px; padding: 28px clamp(20px, 1.25vw, 32px) 32px; }
.jpform .sminput { background: var(--modal-field); }
.jpform .smfield { gap: 11px; }
.jpchip__pill { height: 44px; padding: 0 20px; font-size: clamp(13px, 0.59vw, 15px); }
.jpform__letter { min-height: 180px; padding: 22px 24px; font-size: clamp(16px, 0.78vw, 20px); line-height: 1.6; }
.jpform__count { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.jpform__acts { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; margin: 0; padding-top: 20px; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
.jpform__send { gap: 14px; }
.jpform__send .alband__dash { width: 20px; }
.jpowner { display: inline-flex; align-items: center; gap: 12px; cursor: pointer; }
.jpowner__box { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 7px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); font-family: var(--mono); font-size: 12px; color: transparent; transition: background 180ms ease-in-out, color 180ms ease-in-out; }
.jpowner:has(:checked) .jpowner__box { background: var(--ink); color: var(--bg); box-shadow: none; }
.jpowner:has(:focus-visible) .jpowner__box { outline: 2px solid var(--accent); outline-offset: 2px; }
.jpowner__text { font-size: clamp(14px, 0.66vw, 17px); color: var(--muted); }
.jpform__side { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.jprules { display: flex; flex-direction: column; flex: 1; gap: 12px; padding: 28px 30px; border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.jprules__rows { display: flex; flex-direction: column; flex: 1; }
.jprule { display: grid; grid-template-columns: 24px minmax(0, 1fr); gap: 14px; align-items: center; flex: 1; padding: 13px 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.jprule:last-child { border-bottom: 0; }
.jprule__disc { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 50%; background: var(--ink); color: var(--bg); font-family: var(--mono); font-size: 12px; }
.jprule__disc--red { background: var(--accent); color: var(--c-cream); }
.jprule__text { font-size: clamp(14px, 0.66vw, 17px); line-height: 1.5; }
.jpdis { display: flex; flex-direction: column; gap: 12px; padding: 28px 30px; border-radius: 12px; background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.jpdis__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.22em; color: var(--accent); }

/* ==========================================================================
   133. Blog post — адаптив
   ========================================================================== */
@media (max-width: 1600px) {
  .jpbody { grid-template-columns: clamp(280px, 14.84vw, 380px) minmax(0, 1fr); }
  .jpbody .jnrail__wrap:last-child { grid-column: 1 / -1; }
  .jpbody .jnrail--right { position: static; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
}

@media (max-width: 1400px) {
  .jpbody { grid-template-columns: minmax(0, 1fr); }
  .jpbody .jnrail--left { position: static; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; }
  .jpbody .jnrail__wrap:last-child { grid-column: auto; }
}

@media (max-width: 1100px) {
  .jptitle { font-size: clamp(34px, 1.88vw, 48px); }
  .jpquote { grid-template-columns: minmax(0, 1fr); }
  .jpquote__aside { display: none; }
  .jpsummary,
  .jpweek5 { grid-template-columns: minmax(0, 1fr); }
  .jpcomps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .jpcomp:nth-child(2) { border-right: 0; }
  .jpcomp:nth-child(-n+2) { border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
  .jpprices { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .jpcards,
  .jpform__grid { grid-template-columns: minmax(0, 1fr); }
  .jpbyline { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 860px) {
  .jpbody .jnrail--left,
  .jpbody .jnrail--right { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 640px) {
  .jpcomps,
  .jpprices { grid-template-columns: minmax(0, 1fr); }
  .jpcomp { border-right: 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
  .jpcomp:last-child { border-bottom: 0; }
  .jpnav { grid-template-columns: minmax(0, 1fr); }
  .jpnav__link--right { text-align: left; }
  .jpletter { grid-template-columns: 42px minmax(0, 1fr); }
  .jpletter__words { grid-column: 1 / -1; }
  .jpsteps { grid-template-columns: minmax(0, 1fr); }
  .jpreply { grid-template-columns: minmax(0, 1fr); }
  .jpform__acts .uopill { width: 100%; justify-content: center; }
  .jpbyline__acts .uopill { width: 100%; justify-content: center; }
  .jpcard__cta { width: 100%; justify-content: center; }
  .jpdrop { font-size: 60px; }
}

/* ==========================================================================
   134. Blog post v3 — разворот: голос журнала в статье, комментарии — мебель
   ========================================================================== */
.jqpost { display: flex; flex-direction: column; gap: 34px; }
.jqmast { display: flex; flex-direction: column; }
.jqmast__row1 { position: relative; display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin: 0; padding: 0 0 16px 22px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.jqmast__tick { top: auto; bottom: 15px; }
.jqmast__issue { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.24em; color: var(--accent); }
.jqmast__meta { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.24em; color: var(--muted); }
.jqmast__row2 { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin: 0; padding: 16px 0; border-bottom: 2px solid var(--ink); }
.jqtitle { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(44px, 4.06vw, 104px); line-height: 0.94; letter-spacing: -0.03em; text-align: center; text-wrap: balance; }
.jqtitle em { font-style: italic; color: var(--accent); }
.jqsf { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px; align-items: start; padding: 26px 0; border-top: 2px solid var(--ink); border-bottom: 2px solid var(--ink); }
.jqsf__col { margin: 0; font-size: clamp(16px, 0.86vw, 22px); line-height: 1.55; color: var(--muted); }
.jqsf__col--ink { color: var(--ink); }
.jqhero__frame { aspect-ratio: 1300 / 700; border-radius: 0; }
.jqbody { column-count: 2; column-gap: 60px; column-rule: 1px solid rgba(var(--ink-rgb), 0.14); }
.jqp { margin: 0 0 22px; font-size: clamp(16px, 0.78vw, 20px); font-weight: 300; line-height: 1.7; text-wrap: pretty; }
.jqp::after { content: ""; display: table; clear: both; }
.jqdrop { float: left; margin: 9px 14px 0 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(52px, 3.05vw, 78px); line-height: 0.72; letter-spacing: -0.02em; color: var(--accent); }
.jqopener { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--accent); }
.jqtable { display: flex; flex-direction: column; break-inside: avoid; margin: 0 0 22px; padding: 22px 24px; border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.jqtable__head { display: flex; align-items: center; gap: 12px; margin: 0; padding-bottom: 14px; border-bottom: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.22em; color: var(--muted); }
.jqtable__head .sdred { color: var(--accent); }
.jqtable__row { display: grid; grid-template-columns: minmax(0, 1fr) 86px 74px; gap: 14px; align-items: center; padding: 13px 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.jqtable__row:last-of-type { border-bottom: 0; }
.jqtable__addr { font-size: clamp(14px, 0.66vw, 17px); }
.jqtable__price { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(18px, 0.82vw, 21px); line-height: 1; }
.jqtable__days { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.14em; text-align: right; color: var(--muted); }
.jqtable__days.sdred { color: var(--accent); }
.jqtable__note { padding-top: 12px; font-size: clamp(13px, 0.59vw, 15px); line-height: 1.55; color: var(--muted); }
.jqquote { break-inside: avoid; margin: 0 0 22px; padding: 20px 0; border-top: 2px solid var(--ink); border-bottom: 2px solid var(--ink); font-family: var(--display); font-style: italic; font-size: clamp(22px, 1.17vw, 30px); line-height: 1.28; letter-spacing: -0.02em; color: var(--accent); }
.jqledger__head { display: flex; align-items: center; gap: 14px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.24em; color: var(--muted); }
.jqledger { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 2px solid var(--ink); border-bottom: 2px solid var(--ink); }
.jqledger__cell { display: flex; flex-direction: column; gap: 9px; padding: 28px 30px; border-right: 1px solid rgba(var(--ink-rgb), 0.14); min-width: 0; }
.jqledger__cell:first-child { padding-left: 0; }
.jqledger__cell:last-child { padding-right: 0; border-right: 0; }
.jqledger__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.jqledger__v { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(30px, 1.72vw, 44px); line-height: 1; font-variant-numeric: lining-nums; }
.jqledger__note { font-size: clamp(14px, 0.62vw, 16px); line-height: 1.5; color: var(--muted); }
.jqledger__cell--red .jqledger__k,
.jqledger__cell--red .jqledger__v { color: var(--accent); }
.jqowner { display: grid; grid-template-columns: minmax(0, 1fr) clamp(280px, 17.19vw, 440px); gap: 50px; align-items: center; }
.jqowner__quote { margin: 0; font-family: var(--display); font-style: italic; font-size: clamp(28px, 1.88vw, 48px); line-height: 1.18; letter-spacing: -0.02em; color: var(--accent); }
.jqowner__aside { display: flex; flex-direction: column; gap: 12px; padding-left: clamp(24px, 1.95vw, 50px); border-left: 2px solid var(--ink); }
.jqowner__text { font-size: clamp(15px, 0.70vw, 18px); line-height: 1.6; color: var(--muted); }

/* --- Комментарии: обычные, без моно ------------------------------------------------------------------- */
.jqcomments { display: flex; flex-direction: column; gap: 34px; }
.jqcomments__head { display: flex; align-items: baseline; gap: 16px; margin: 0; padding-bottom: 20px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.jqcomments__title { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(28px, 1.56vw, 40px); line-height: 1; letter-spacing: -0.02em; }
.jqcomments__count { font-size: clamp(16px, 0.78vw, 20px); color: var(--muted); }
.jqc__list { display: flex; flex-direction: column; gap: 30px; }
.jqc { display: grid; grid-template-columns: 48px minmax(0, 1fr); gap: 18px; align-items: start; }
.jqc__av { background: var(--sheet); color: var(--muted); font-family: var(--text); font-size: clamp(15px, 0.66vw, 17px); letter-spacing: 0; }
.jqc__words { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.jqc__head { display: flex; align-items: baseline; flex-wrap: wrap; gap: 12px; margin: 0; }
.jqc__name { font-size: clamp(16px, 0.74vw, 19px); font-weight: 500; }
.jqc__when { font-size: clamp(14px, 0.62vw, 16px); color: var(--muted); }
.jqc__text { margin: 0; font-size: clamp(15px, 0.74vw, 19px); line-height: 1.65; }
.jqc__acts { display: flex; align-items: center; gap: 20px; margin: 0; }
.jqc__acts a { font-size: clamp(14px, 0.62vw, 16px); color: var(--muted); text-decoration: none; transition: color 180ms ease-in-out; }
.jqc__acts a:hover { color: var(--accent); }
.jqreply { display: grid; grid-template-columns: 40px minmax(0, 1fr); gap: 16px; align-items: start; margin-top: 10px; }
.jqreply__name { font-size: clamp(15px, 0.70vw, 18px); font-weight: 500; }
.jqreply .jqc__when { font-size: clamp(13px, 0.59vw, 15px); }
.jqreply__text { margin: 0; font-size: clamp(15px, 0.70vw, 18px); line-height: 1.65; color: var(--muted); }
.jqform { display: flex; flex-direction: column; gap: 18px; padding-top: 30px; border-top: 1px solid rgba(var(--ink-rgb), 0.14); }
.jqform__title { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.17vw, 30px); line-height: 1; letter-spacing: -0.02em; }
.jqform__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.jqfield { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.jqfield__label { font-size: clamp(14px, 0.62vw, 16px); color: var(--muted); }
.jqfield__input { display: block; box-sizing: border-box; width: 100%; height: 58px; padding: 0 18px; border: 0; border-radius: 8px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.2); font-family: var(--text); font-size: clamp(15px, 0.70vw, 18px); color: var(--ink); caret-color: var(--accent); }
.jqfield__input::placeholder { color: var(--faint); }
.jqfield__area { height: auto; min-height: 160px; padding: 18px; font-size: clamp(15px, 0.74vw, 19px); line-height: 1.6; resize: vertical; }
.jqform__acts { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; margin: 0; }
.jqsave { display: inline-flex; align-items: center; gap: 11px; cursor: pointer; }
.jqsave__box { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 5px; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); font-size: 13px; color: transparent; transition: background 180ms ease-in-out, color 180ms ease-in-out; }
.jqsave:has(:checked) .jqsave__box { background: var(--ink); color: var(--bg); box-shadow: none; }
.jqsave:has(:focus-visible) .jqsave__box { outline: 2px solid var(--accent); outline-offset: 2px; }
.jqsave__text { font-size: clamp(14px, 0.66vw, 17px); color: var(--muted); }
.jqform__send { display: inline-flex; align-items: center; height: 54px; padding: 0 28px; border: 0; border-radius: 8px; background: var(--ink); color: var(--bg); font-family: var(--text); font-size: clamp(15px, 0.66vw, 17px); cursor: pointer; transition: background 180ms ease-in-out, color 180ms ease-in-out; }
.jqform__send:hover { background: var(--accent); color: var(--c-cream); }
.jqform__send:disabled { opacity: 0.6; cursor: default; }

/* ==========================================================================
   135. Blog post v3 — адаптив
   ========================================================================== */
@media (max-width: 1100px) {
  .jqtitle { font-size: clamp(34px, 2.19vw, 56px); text-align: left; }
  .jqsf { grid-template-columns: minmax(0, 1fr); gap: 16px; }
  .jqbody { column-count: 1; column-rule: 0; }
  .jqledger { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .jqledger__cell { padding: 22px 20px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
  .jqledger__cell:first-child { padding-left: 0; }
  .jqledger__cell:nth-child(2) { border-right: 0; padding-right: 0; }
  .jqledger__cell:nth-child(3) { padding-left: 0; }
  .jqledger__cell:nth-last-child(-n+2) { border-bottom: 0; }
  .jqowner { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .jqform__grid { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 640px) {
  .jqledger { grid-template-columns: minmax(0, 1fr); }
  .jqledger__cell { padding: 20px 0; border-right: 0; }
  .jqledger__cell:nth-last-child(-n+2) { border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
  .jqledger__cell:last-child { border-bottom: 0; }
  .jqc { grid-template-columns: minmax(0, 1fr); }
  .jqreply { grid-template-columns: minmax(0, 1fr); }
  .jqform__send { width: 100%; justify-content: center; }
}

/* ==========================================================================
   136. Blog post v4 — четыре главы, у каждой своя улика; тред, где молчание видно
   ========================================================================== */
.jrpost { display: flex; flex-direction: column; }
.jrhead { display: flex; flex-direction: column; gap: 14px; }
.jrmast { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin: 0; padding-bottom: 16px; border-bottom: 2px solid var(--ink); }
.jrtitle { margin: 22px 0 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(40px, 3.44vw, 88px); line-height: 0.98; letter-spacing: -0.028em; text-wrap: balance; }
.jrtitle em { font-style: italic; color: var(--accent); }
.jrsf { margin: 6px 0 0; font-size: clamp(17px, 0.94vw, 24px); line-height: 1.55; color: var(--muted); }
.jrbyline { display: grid; grid-template-columns: minmax(0, 1fr) clamp(260px, 16.41vw, 420px); gap: 40px; align-items: center; margin-top: 34px; padding: 24px 0; border-bottom: 2px solid var(--ink); }
.jrbyline__acts { justify-content: flex-end; }
.jrchapters { display: flex; flex-direction: column; margin-top: 34px; }
.jrch { display: grid; grid-template-columns: 130px minmax(0, 1fr); gap: 40px; align-items: start; padding: 38px 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.jrch__no { display: flex; flex-direction: column; gap: 12px; }
.jrch__num { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(36px, 2.03vw, 52px); line-height: 0.9; letter-spacing: -0.02em; color: var(--faint); }
.jrch__tick { width: 34px; height: 2px; background: var(--ink); }
.jrch__when { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.jrch__words { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.jrch__title { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(28px, 1.80vw, 46px); line-height: 1.06; letter-spacing: -0.02em; }
.jrch__text { margin: 0; font-size: clamp(16px, 0.86vw, 22px); font-weight: 300; line-height: 1.72; text-wrap: pretty; }
.jrnote { margin: 0; padding-left: 24px; border-left: 2px solid rgba(var(--ink-rgb), 0.24); font-family: var(--display); font-style: italic; font-size: clamp(19px, 1.02vw, 26px); line-height: 1.38; }
.jrfigs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-radius: 12px; overflow: hidden; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.jrfig { display: flex; flex-direction: column; gap: 8px; padding: 22px 26px; border-right: 1px solid rgba(var(--ink-rgb), 0.14); min-width: 0; }
.jrfig:last-child { border-right: 0; }
.jrfig__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.jrfig__k.sdred { color: var(--accent); }
.jrfig__v { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.17vw, 30px); line-height: 1; font-variant-numeric: lining-nums; }
.jrfig__note { font-size: clamp(13px, 0.59vw, 15px); line-height: 1.5; color: var(--muted); }
.jrch--red .jrch__num,
.jrch--red .jrch__title,
.jrch--red .jrnote { color: var(--accent); }
.jrch--red .jrch__tick { background: var(--accent); }
.jrch--red .jrnote { border-left-color: rgba(var(--accent-rgb), 0.42); }
.jrch--red .jrfigs { background: rgba(var(--accent-rgb), 0.05); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.jrowner { margin-top: 34px; }
.jrowner__quote { font-size: clamp(28px, 1.72vw, 44px); line-height: 1.2; }
.jrnav { margin-top: 36px; }

/* --- Тред: обычный, с сортировками --------------------------------------------------------------------- */
.jrthread { display: flex; flex-direction: column; gap: 30px; }
.jrthread__head { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 20px; padding-bottom: 20px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.jrthread__lead { display: flex; align-items: baseline; flex-wrap: wrap; gap: 14px; margin: 0; }
.jrthread__title { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(28px, 1.56vw, 40px); line-height: 1; letter-spacing: -0.02em; }
.jrthread__sub,
.jrsorts__k,
.jrc__when,
.jrthread__count { font-size: clamp(14px, 0.66vw, 17px); color: var(--muted); }
.jrsorts { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 0 0 0 auto; }
.jrsort { display: inline-flex; align-items: center; height: 40px; padding: 0 18px; border: 0; border-radius: 8px; background: transparent; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); font-family: var(--text); font-size: clamp(14px, 0.62vw, 16px); color: var(--ink); cursor: pointer; transition: background 180ms ease-in-out, color 180ms ease-in-out; }
.jrsort:hover { box-shadow: inset 0 0 0 1px var(--accent); color: var(--accent); }
.jrsort[aria-pressed="true"] { background: var(--ink); color: var(--bg); box-shadow: none; }
.jrc__list { display: flex; flex-direction: column; }
.jrc { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 20px; align-items: start; padding: 28px 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.jrc__av { background: var(--sheet); color: var(--muted); font-family: var(--text); font-size: clamp(15px, 0.66vw, 17px); letter-spacing: 0; }
.jrc--dis .jrc__av { background: transparent; color: var(--accent); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.42); }
.jrc--dis .jndisc--photo { background: transparent; box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.42); }
.jrc__words { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.jrc__head { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; margin: 0; }
.jrc__name { font-size: clamp(16px, 0.74vw, 19px); font-weight: 500; }
.jrchip { display: inline-flex; align-items: center; height: 24px; padding: 0 11px; border-radius: 6px; background: var(--sheet); font-size: clamp(13px, 0.55vw, 14px); color: var(--muted); }
.jrc--dis .jrchip { background: rgba(var(--accent-rgb), 0.08); color: var(--accent); }
.jrc__text { margin: 0; font-size: clamp(15px, 0.74vw, 19px); line-height: 1.65; }
.jrc__acts { display: flex; align-items: center; flex-wrap: wrap; gap: 18px; margin: 0; }
.jrlike { display: inline-flex; align-items: center; gap: 9px; height: 36px; padding: 0 14px; border: 0; border-radius: 8px; background: transparent; box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.18); font-family: var(--text); font-size: clamp(14px, 0.62vw, 16px); color: var(--muted); cursor: pointer; transition: background 180ms ease-in-out, color 180ms ease-in-out, box-shadow 180ms ease-in-out; }
.jrlike:hover { color: var(--accent); }
.jrlike[aria-pressed="true"] { background: rgba(var(--accent-rgb), 0.08); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); color: var(--accent); }
.jrlike[aria-pressed="true"] .jrlike__heart { fill: var(--accent); }
.jrc__link { font-size: clamp(14px, 0.62vw, 16px); color: var(--muted); text-decoration: none; transition: color 180ms ease-in-out; }
.jrc__link:hover { color: var(--accent); }
.jrc__state { font-size: clamp(14px, 0.62vw, 16px); color: var(--muted); }
.jrc__state.sdred { color: var(--accent); }
.jrreply { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 16px; align-items: start; margin-top: 8px; padding: 20px 22px; border-radius: 10px; background: var(--modal-bg); }
.jrc--dis .jrreply { background: rgba(var(--accent-rgb), 0.05); }
.jrreply__head { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 0; }
.jrreply__name { font-size: clamp(15px, 0.70vw, 18px); font-weight: 500; }
.jrbadge { display: inline-flex; align-items: center; height: 22px; padding: 0 10px; border-radius: 6px; background: var(--ink); color: var(--bg); font-size: clamp(12px, 0.51vw, 13px); }
.jrreply .jrc__when { font-size: clamp(13px, 0.59vw, 15px); }
.jrreply__text { margin: 0; font-size: clamp(15px, 0.70vw, 18px); line-height: 1.65; color: var(--muted); }
.jrthread__foot { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; margin: 0; }
.jrbtn { display: inline-flex; align-items: center; height: 52px; padding: 0 24px; border-radius: 8px; font-size: clamp(15px, 0.66vw, 17px); color: var(--ink); text-decoration: none; transition: color 180ms ease-in-out, box-shadow 180ms ease-in-out; }
.jrbtn--ghost { box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.24); }
.jrbtn--ghost:hover { box-shadow: inset 0 0 0 1px var(--accent); color: var(--accent); }
.jrform { display: flex; flex-direction: column; gap: 20px; padding: 32px 34px; border-radius: 10px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.jrform__head { display: flex; align-items: baseline; flex-wrap: wrap; gap: 16px; margin: 0; padding-bottom: 18px; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.jrform__title { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.25vw, 32px); line-height: 1; letter-spacing: -0.02em; }
.jrform__note { font-size: clamp(14px, 0.66vw, 17px); color: var(--muted); }
.jrform__row { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 20px; align-items: start; }
.jrform__fields { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.jrform__area { min-height: 140px; padding: 20px; }
.jrform__about { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 0; font-size: clamp(14px, 0.62vw, 16px); color: var(--muted); }
.jrchip-pick__pill { border-radius: 8px; font-size: clamp(14px, 0.62vw, 16px); }
.jrform__acts { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; margin: 0; }
.jrform__send { height: 56px; padding: 0 30px; }
.jrform__foot { margin: 0; font-size: clamp(14px, 0.62vw, 16px); line-height: 1.55; color: var(--muted); }

/* ==========================================================================
   137. Blog post v4 — адаптив
   ========================================================================== */
@media (max-width: 1100px) {
  .jrtitle { font-size: clamp(34px, 2.19vw, 56px); }
  .jrbyline { grid-template-columns: minmax(0, 1fr); }
  .jrbyline__acts { justify-content: flex-start; }
  .jrch { grid-template-columns: minmax(0, 1fr); gap: 20px; padding: 28px 0; }
  .jrch__no { flex-direction: row; align-items: center; }
  .jrfigs { grid-template-columns: minmax(0, 1fr); }
  .jrfig { border-right: 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
  .jrfig:last-child { border-bottom: 0; }
  .jrsorts { margin-left: 0; }
  .jrc__head .uoside__gap { flex-basis: 100%; }
}

@media (max-width: 640px) {
  .jrc,
  .jrreply,
  .jrform__row { grid-template-columns: minmax(0, 1fr); }
  .jrform { padding: 22px 20px; }
  .jrform__you { display: none; }
  .jrform__send,
  .jrbtn { width: 100%; justify-content: center; }
}

/* ==========================================================================
   138. Contact — прежде чем писать, вам говорят, кто прочтёт и как быстро
   ========================================================================== */
.ctflow { display: flex; flex-direction: column; }
.ctflow > section { display: flex; flex-direction: column; gap: 30px; }
.ctdivider { margin: 60px 0; border: 0; height: 1px; background: rgba(var(--ink-rgb), 0.14); }
.ctkicker { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.22em; color: var(--muted); }
.ctpage .uosec__head { margin: 0; }

/* --- 01 Полоса ------------------------------------------------------------------------------------------------- */
.ctband { gap: 38px; }
.ctfile { gap: 18px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.22em; color: var(--muted); }
.ctfile .sdred { color: var(--accent); }
.ctband__grid { display: grid; grid-template-columns: minmax(0, 1fr) clamp(320px, 25.00vw, 640px); gap: clamp(30px, 3.12vw, 80px); align-items: end; padding-bottom: 40px; border-bottom: 2px solid var(--ink); }
.ctband__lead { display: flex; flex-direction: column; gap: 22px; min-width: 0; }
.ctband__title { margin: 0; font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(38px, 3.28vw, 84px); line-height: 1.02; letter-spacing: -0.02em; text-wrap: balance; }
.ctband__title em { font-style: italic; color: var(--accent); }
.ctband__text { margin: 0; max-width: 1060px; font-size: clamp(16px, 0.82vw, 21px); line-height: 1.6; color: var(--muted); }
.ctband__ink { color: var(--ink); }
.ctplate { display: flex; flex-direction: column; gap: 20px; padding: 30px 32px; border-radius: 12px; background: rgba(var(--accent-rgb), 0.06); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.ctplate__head { display: flex; align-items: center; gap: 16px; margin: 0; }
.ctplate__disc { display: inline-flex; align-items: center; justify-content: center; flex: none; width: 44px; height: 44px; border-radius: 50%; background: var(--accent); color: var(--c-cream); font-family: var(--display); font-size: 22px; line-height: 1; font-variant-numeric: lining-nums; }
.ctplate__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.22em; color: var(--accent); }
.ctplate__rows { display: flex; flex-direction: column; }
.ctrefuse { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 13px; align-items: center; padding: 11px 0; border-bottom: 1px solid rgba(var(--accent-rgb), 0.22); }
.ctrefuse:last-child { border-bottom: 0; }
.ctrefuse__disc { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 50%; background: var(--accent); color: var(--c-cream); font-family: var(--mono); font-size: 12px; }
.ctrefuse__text { font-size: clamp(15px, 0.70vw, 18px); }
.ctfigs { display: flex; align-items: flex-end; flex-wrap: wrap; gap: clamp(28px, 2.19vw, 56px); margin: 0; }
.ctfig { display: flex; flex-direction: column; gap: 8px; }
.ctfig__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.22em; color: var(--muted); }
.ctfig__v { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(36px, 2.50vw, 64px); line-height: 1; letter-spacing: -0.02em; font-variant-numeric: lining-nums; }
.ctfig--red .ctfig__k,
.ctfig--red .ctfig__v { color: var(--accent); }
.ctfig__bar { width: 1px; height: 58px; background: rgba(var(--ink-rgb), 0.14); }
.ctfigs__cta { gap: 16px; }
.ctfigs__cta .alband__dash { width: 26px; }

/* --- 02 Форма ------------------------------------------------------------------------------------------------- */
.ctform__grid { display: grid; grid-template-columns: minmax(0, 1fr) clamp(300px, 20.31vw, 520px); gap: 30px; align-items: stretch; }
.ctpanel { display: flex; flex-direction: column; border-radius: 14px; overflow: hidden; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); min-width: 0; }
.cttabs { display: flex; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.cttab { display: flex; flex: 1; cursor: pointer; }
.cttab__pill { display: flex; flex-direction: column; gap: 5px; flex: 1; padding: 20px 24px; transition: background 180ms ease-in-out, box-shadow 180ms ease-in-out; }
.cttab__kicker { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.22em; color: var(--muted); }
.cttab__label { font-size: clamp(15px, 0.70vw, 18px); color: var(--ink); }
.cttab:hover .cttab__pill { background: rgba(var(--ink-rgb), 0.04); }
.cttab:has(:checked) .cttab__pill { background: rgba(var(--accent-rgb), 0.07); box-shadow: inset 0 -2px 0 0 var(--accent); }
.cttab:has(:checked) .cttab__kicker,
.cttab:has(:checked) .cttab__label { color: var(--accent); }
.cttab:has(:focus-visible) .cttab__pill { outline: 2px solid var(--accent); outline-offset: -2px; }
.ctpanel__body { display: flex; flex-direction: column; flex: 1; gap: 24px; padding: clamp(20px, 1.17vw, 30px) clamp(20px, 1.33vw, 34px) clamp(22px, 1.33vw, 34px); }
.ctinput { background: var(--modal-field); }
.ctpanel__letter { flex: 1; }
.ctfield__head { display: flex; align-items: center; gap: 14px; }
.cttext { flex: 1; min-height: 190px; padding: 22px 24px; font-size: clamp(16px, 0.78vw, 20px); }
.ctpanel__acts { display: flex; align-items: center; flex-wrap: wrap; gap: 16px; margin: 0; }
.ctsend { gap: 14px; }
.ctsend .alband__dash { width: 22px; }
.ctform__side { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.ctwho { display: flex; flex-direction: column; gap: 18px; padding: 30px 32px; border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.ctwho__row { display: grid; grid-template-columns: 58px minmax(0, 1fr); gap: 16px; align-items: center; margin: 0; }
.jndisc--58 { width: 58px; height: 58px; font-size: 14px; }
.ctwho__name { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(22px, 1.17vw, 30px); line-height: 1.05; letter-spacing: -0.02em; }
.ctwho__rows,
.ctadv__rows { display: flex; flex-direction: column; gap: 9px; }
.ctdot { display: flex; align-items: baseline; gap: 12px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.22em; color: var(--muted); }
.ctdot__v { font-family: var(--text); font-size: clamp(14px, 0.66vw, 17px); letter-spacing: 0; text-transform: none; color: var(--ink); }
.ctdot--red .ctdot__v { color: var(--accent); }
.ctwhat { display: flex; flex-direction: column; flex: 1; gap: 12px; padding: 30px 32px; border-radius: 12px; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.ctwhat__text { font-size: clamp(15px, 0.70vw, 18px); line-height: 1.6; color: var(--muted); }
.ctwhat__foot { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--accent); }

/* --- 03 Шестеро ------------------------------------------------------------------------------------------------ */
.ctadv__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.ctadv { display: grid; grid-template-rows: auto auto auto minmax(0, 1fr) auto; gap: 16px; padding: 28px 30px; border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); min-width: 0; }
.ctadv--red { background: rgba(var(--accent-rgb), 0.05); box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.32); }
.ctadv__who { display: flex; align-items: center; gap: 14px; margin: 0; }
.ctadv__name { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(21px, 1.09vw, 28px); line-height: 1.05; letter-spacing: -0.02em; }
.ctadv__patch { font-size: clamp(15px, 0.70vw, 18px); }
.ctadv__rows { gap: 8px; }
.ctadv__note { font-size: clamp(14px, 0.66vw, 17px); line-height: 1.6; color: var(--muted); }
.ctadv__acts { display: flex; align-items: center; gap: 14px; margin: 0; }
.ctadv__link { display: inline-flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); text-decoration: none; transition: color 180ms ease-in-out; }
.ctadv__link:hover { color: var(--accent); }
.ctadv__foot { gap: 20px; padding: 24px 28px; }
.ctadv__foottext { font-size: clamp(15px, 0.74vw, 19px); }
.ctadv__foot .uopill { gap: 14px; white-space: nowrap; }
.ctadv__foot .alband__dash { width: 20px; }

/* --- 04 Стол ----------------------------------------------------------------------------------------------------- */
.ctdesk__grid { display: grid; grid-template-columns: minmax(0, 1fr) clamp(300px, 21.88vw, 560px); gap: 30px; align-items: stretch; }
.ctmap__col { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.ctmap { position: relative; flex: 1; min-height: 620px; border-radius: 14px; overflow: hidden; background: repeating-linear-gradient(45deg, var(--sheet) 0 6px, var(--sheet-strong) 6px 12px); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); isolation: isolate; }
.ctmap__pin { position: absolute; left: 50%; top: 50%; width: 46px; height: 46px; margin: -23px 0 0 -23px; z-index: 2; }
.ctmap__pindot { position: absolute; left: 50%; top: 50%; width: 18px; height: 18px; margin: -9px 0 0 -9px; border-radius: 50%; background: var(--accent); box-shadow: 0 0 0 4px rgba(252, 244, 228, 0.95), 0 0 0 5px rgba(var(--accent-rgb), 0.35); }
.ctmap__pinring { position: absolute; inset: 0; border-radius: 50%; box-shadow: inset 0 0 0 1px rgba(var(--accent-rgb), 0.45); }
.ctmap__label { position: absolute; left: calc(50% + 43px); top: 50%; transform: translateY(-50%); display: flex; flex-direction: column; gap: 3px; padding: 10px 14px; border-radius: 8px; background: #1f1a16; color: #f4ecdc; white-space: nowrap; box-shadow: 0 14px 34px rgba(40, 25, 10, 0.28); z-index: 2; }
.ctmap__labelk { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--gold); }
.ctmap__labelv { font-size: 15px; font-weight: 500; }
.ctmap--live .ctmap__pin,
.ctmap--live .ctmap__label { display: none; }
.ctmap__live { position: absolute; inset: 0; z-index: 1; background: var(--bg); }
.ctmap__live .leaflet-control-attribution { font-family: var(--mono); font-size: 10px; letter-spacing: 0.04em; background: rgba(var(--bg-rgb), 0.86); color: var(--muted); }
.ctmap__live .leaflet-control-attribution a { color: var(--muted); }
.ctmap__live .leaflet-bar a { background: var(--modal-field); color: var(--ink); border-bottom-color: rgba(var(--ink-rgb), 0.14); }
.ctmap__live .leaflet-bar a:hover { background: var(--modal-bg); color: var(--accent); }
.ctmap__live .ctpin-live { position: relative; }
.ctmap__live .ctpin-live .ctmap__pin { display: block; left: 0; top: 0; margin: 0; }
.ctmap__live .ctlabel-live { display: flex; flex-direction: column; gap: 3px; padding: 10px 14px; border: 0; border-radius: 8px; background: #1f1a16; color: #f4ecdc; white-space: nowrap; box-shadow: 0 14px 34px rgba(40, 25, 10, 0.28); font-family: var(--text); }
.ctmap__live .ctlabel-live::before { display: none; }
.ctmap__cap { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin: 0; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.ctdesk__side { display: flex; flex-direction: column; gap: 24px; min-width: 0; }
.ctcard { display: flex; flex-direction: column; gap: 16px; padding: 30px 32px; border-radius: 12px; background: var(--modal-field); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.ctcard--bg { gap: 14px; background: var(--modal-bg); }
.ctcard--grow { flex: 1; gap: 12px; }
.ctcard__addr { font-family: var(--display); font-weight: 400; letter-spacing: -0.02em; line-height: 1.02; font-size: clamp(24px, 1.41vw, 36px); line-height: 1.08; letter-spacing: -0.02em; }
.ctcard__text { font-size: clamp(14px, 0.66vw, 17px); line-height: 1.6; color: var(--muted); }
.ctcard--grow .ctcard__text { font-size: clamp(15px, 0.70vw, 18px); }
.ctrows { display: flex; flex-direction: column; }
.ctrow { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 16px; align-items: baseline; padding: 13px 0; border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.ctrow:last-child { border-bottom: 0; }
.ctrow--hours { grid-template-columns: minmax(0, 1fr) auto; padding: 11px 0; }
.ctrow__k { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.ctrow__v { font-size: clamp(15px, 0.70vw, 18px); }
.ctrow__t { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.14em; color: var(--muted); }
.ctopen__head { display: flex; align-items: center; gap: 14px; margin: 0; }
.ctopen__now { display: inline-flex; align-items: center; gap: 9px; font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--ink); }
.ctopen__dot { width: 7px; height: 7px; border-radius: 50%; background: var(--gold); }

/* --- 05 В другое место ------------------------------------------------------------------------------------ */
.ctelse__panel { display: flex; flex-direction: column; border-radius: 14px; overflow: hidden; background: var(--modal-bg); box-shadow: inset 0 0 0 1px rgba(var(--ink-rgb), 0.16); }
.ctelse { display: grid; grid-template-columns: 52px clamp(200px, 12.50vw, 320px) minmax(0, 1fr) clamp(200px, 11.72vw, 300px); gap: 24px; align-items: center; padding: 22px clamp(20px, 1.25vw, 32px); border-bottom: 1px solid rgba(var(--ink-rgb), 0.14); }
.ctelse--head { align-items: baseline; margin: 0; padding: 24px clamp(20px, 1.25vw, 32px) 18px; border-bottom: 2px solid var(--ink); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.22em; color: var(--muted); }
.ctelse--red { background: rgba(var(--accent-rgb), 0.04); }
.ctelse__no { font-size: clamp(12px, 0.51vw, 13px); color: var(--muted); }
.ctelse__label { font-size: clamp(15px, 0.74vw, 19px); }
.ctelse--red .ctelse__label,
.ctelse--red .ctelse__speed { color: var(--accent); }
.ctelse__why { font-size: clamp(15px, 0.70vw, 18px); line-height: 1.55; color: var(--muted); }
.ctelse__who { font-size: clamp(15px, 0.70vw, 18px); }
.ctelse__speed { font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.2em; color: var(--muted); }
.ctelse__foot { display: flex; align-items: center; flex-wrap: wrap; gap: 20px; margin: 0; padding: 24px clamp(20px, 1.25vw, 32px); font-family: var(--mono); font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; letter-spacing: 0.22em; color: var(--muted); }

/* ==========================================================================
   139. Contact — адаптив
   ========================================================================== */
@media (max-width: 1400px) {
  .ctband__grid,
  .ctform__grid,
  .ctdesk__grid { grid-template-columns: minmax(0, 1fr); }
  .ctmap { min-height: 520px; }
  .cttabs { flex-wrap: wrap; }
  .cttab { flex-basis: 50%; }
  .ctadv__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ctelse { grid-template-columns: 52px minmax(0, 1fr); }
  .ctelse--head { display: none; }
  .ctelse__why { grid-column: 2; }
  .ctelse .jnrow__words { grid-column: 2; }
}

@media (max-width: 860px) {
  .ctadv__grid { grid-template-columns: minmax(0, 1fr); }
  .ctmap { min-height: 420px; }
}

@media (max-width: 640px) {
  .cttab { flex-basis: 100%; }
  .ctfigs { gap: 20px 28px; }
  .ctfig__bar { display: none; }
  .ctfigs__cta,
  .ctsend,
  .ctadv__foot .uopill { width: 100%; justify-content: center; }
  .ctadv__acts { flex-wrap: wrap; }
  .ctrow { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .ctrow--hours { grid-template-columns: minmax(0, 1fr) auto; }
  .ctmap__label { left: 50%; top: calc(50% + 40px); transform: translateX(-50%); }
  .ctelse { grid-template-columns: minmax(0, 1fr); }
  .ctelse__why,
  .ctelse .jnrow__words { grid-column: 1; }
}
