/* ═══════════════════════════════════════════════════════════════════════════
   DR-MODERN — конвергенция суб-страниц (11 июля 2026)
   ═══════════════════════════════════════════════════════════════════════════
   Мандат: «конвергенция 20 суб-страниц — главный шаг к единому сайту» (очередь
   хэндоффа CLAUDE.md, п.1). Переносит на site/*.html слои канваса, принятые
   юзером на главной: dr-tokens (3A) + конвергенцию (Phase 4) + CTA-финиш (W3)
   + композицию (пастели-производные, hover-zoom) + вердикт по ривилу (0.8s).

   ПОДКЛЮЧЕНИЕ: только site/*.html (21 страница), ПОСЛЕДНИМ <link> в <head> —
   каскад поверх dailyrent/primitives/ReviewsBlock/rightbank. Главная этот файл
   НЕ линкует (у неё свои inline-слои; их фолд в шаред = отдельный шаг).

   ЧТО ДЕЛАЕТ:
   1. Токены — копия dr-tokens канваса (роли/статусы/элевация/рампа) +
      --cta-depth семьи Phase 4. Без них ни одно правило ниже не работает.
   2. ОДНА КНОПКА — хедер-CTA, дровер (де-UPPERCASE), apt2-bar (ФИКС БАГА:
      красился в hsl(var(--whatsapp)) — токен нигде не определён, тейлвинд-
      наследие → фон CTA брони был прозрачным), rb-cta (была терракотовая
      пилюля вне семьи — тот же дрейф, что FAQ-кнопка на главной).
   3. Чипы занятости — ликвид-глас снят; пастели-производные color-mix из
      статусных токенов + цветное кольцо (= дефолт главной c 11.07).
   4. Карточки — тип-рампа #15, hover-zoom 1.4s, пресс-фидбек.
   5. Базовая контент-ссылка #23 — легал-страницы полны бесклассовых ссылок,
      невидимых как ссылки (a { color:inherit; none } в dailyrent).
   6. Футер — доки-колонка де-квайт (fs-md/ink.7 — вердикт юзера 10.07:
      «почему документы разновесные/другого цвета»); KZ/EN — честные спаны
      (были псевдо-ссылками на главную; маркап-правка в файлах страниц).
   7. Ривил — ретайм 540→800ms/18→10px (вердикт юзера 11.07: «слишком
      быстрый» при 0.55s) + принт-гард. Теггер — js/dr-modern.js.

   НЕ ТРОНУТО (осознанно): editorial-регистр apt2 (H1/H2 light 300, айбро
   .32em — своя art-direction страниц квартир); лайтбокс и mobile-bar
   (санкционированные оверлеи, blur остаётся); шапка on-cream (blur как на
   главной); дровер-локали (уже честный паттерн); терракота-репоинт (нужны
   глаза, ~25 потребителей); мёртвые glass/overlay/plate-варианты карточек
   (не смонтированы — ждут source-cull).

   ОТКАТ: удалить этот файл + js/dr-modern.js + в каждой странице <link>/<script>
   и две маркап-правки (глиф в .site-drawer__wa, спаны в .v2-footer__lang);
   полные копии до правок: _backups/2026-07-11_subpage-convergence/.
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── 0 · ТОКЕНЫ — копия dr-tokens канваса + глубина CTA (Phase 4) ────────── */
:root {
  /* Tier 1 · новые сырые оттенки */
  --green-500: #22B65E;
  --amber-500: #E8A33D;
  --amber-700: #A56C12;
  --blue-600:  #2A6FDB;
  --blue-700:  #1F5FC4;
  --gold-500:  #E0A32E;
  --green-800: #1B6B3F;

  /* Tier 2 · нейтральные роли (ТРИПЛЕТЫ — использовать hsl(var()/α)) */
  --color-text:         var(--ink);
  --color-text-soft:    var(--ink-soft);
  --color-text-muted:   var(--ink-muted);
  --color-surface:      var(--paper);
  --color-surface-soft: var(--paper-soft);
  --color-surface-dark: 220 24% 8%;
  --color-border:       var(--hairline);
  --focus-ring:         var(--ink);

  /* Tier 2 · бренд + статусы (ПОЛНЫЕ ЦВЕТА — var() напрямую) */
  --color-action:           var(--wa);
  --color-action-hover:     var(--wa-hover);
  --color-on-action:        #fff;
  --color-available:        var(--wa);
  --color-available-bright: var(--green-500);
  --color-available-text:   var(--green-800);
  --color-booked:           var(--amber-500);
  --color-booked-text:      var(--amber-700);
  --color-geo:              var(--blue-600);
  --color-geo-hover:        var(--blue-700);
  --color-star:             var(--gold-500);

  /* Элевация */
  --elevation-0: none;
  --elevation-1: 0 1px 2px rgba(0,0,0,.08);
  --elevation-2: 0 4px 12px -2px rgba(0,0,0,.14);
  --elevation-3: 0 14px 30px -10px rgba(0,0,0,.22);
  --elevation-action: 0 1px 2px rgba(0,0,0,.18), 0 14px 26px -16px rgba(31,168,85,.55);
  --elevation-action-hover: 0 2px 4px rgba(0,0,0,.2), 0 20px 34px -18px rgba(31,168,85,.6);
  --elevation-glass: inset 0 1px 0 hsl(0 0% 100% / .34), inset 0 0 0 1px hsl(0 0% 100% / .16), 0 6px 18px -6px hsl(220 30% 4% / .45);

  /* Дисплей-рампа + спейс + брейкпоинты (справочно, как на канвасе) */
  --fs-display: clamp(2.5rem, 1.6rem + 3.6vw, 3.5rem);
  --fs-h1:      clamp(1.9rem, 1.35rem + 2.2vw, 2.6rem);
  --fs-h2:      clamp(1.5rem, 1.15rem + 1.6vw, 2.05rem);
  --fs-h3:      clamp(1.2rem, 1rem + 0.9vw, 1.5rem);
  --space-10: 2.5rem;
  --space-12: 3rem;
  --bp-sm: 480px; --bp-md: 640px; --bp-nav: 900px; --bp-lg: 1024px; --bp-xl: 1280px;

  /* Семейная «глубина» кнопки (Phase 4): верхний свет + тёмная посадка */
  --cta-seat: color-mix(in srgb, var(--color-action) 56%, hsl(215 25% 10%));
  --cta-depth:   inset 0 1px 0 hsl(0 0% 100% / 0.24), inset 0 -2px 0 var(--cta-seat);
  --cta-depth-s: inset 0 1px 0 hsl(0 0% 100% / 0.22), inset 0 -1px 0 var(--cta-seat);
}

/* ── 1 · ОДНА КНОПКА ─────────────────────────────────────────────────────── */
/* S: хедер — вес 600, глубина, подъём тени на ховере (как на главной) */
.site-header__call, .site-header__cta { font-weight: 600; }
.site-header__cta {
  background: var(--color-action);
  color: var(--color-on-action);
  box-shadow: var(--cta-depth-s), var(--elevation-1);
  transition: background-color var(--dur-fast) var(--ease-standard),
              transform var(--dur-fast) var(--ease-standard),
              box-shadow var(--dur-fast) var(--ease-standard);
}
.site-header__cta:hover { background: var(--color-action-hover); box-shadow: var(--cta-depth-s), var(--elevation-2); }
.site-header__call:active, .site-header__cta:active { transform: scale(0.97); transition-duration: 100ms; }
.site-header__cta:focus-visible { outline: 2px solid hsl(var(--focus-ring)); outline-offset: 2px; }
.site-header__cta svg { width: 15px; height: 15px; flex: none; }

/* M: дровер — де-UPPERCASE (последний капс-CTA сабов), глубина, глиф */
.site-drawer__bottom a {
  font-size: var(--fs-md);
  letter-spacing: 0.01em;
  text-transform: none;
  transition: background-color var(--dur-fast) var(--ease-standard),
              transform var(--dur-fast) var(--ease-standard);
}
.site-drawer__wa { background: var(--color-action); gap: 0.45rem; box-shadow: var(--cta-depth), var(--elevation-1); }
.site-drawer__wa:hover { background: var(--color-action-hover); }
.site-drawer__wa svg { width: 17px; height: 17px; flex: none; }
.site-drawer__wa:active, .site-drawer__call:active { transform: scale(0.97); transition-duration: 100ms; }

/* M: apt2-bar — ФИКС: было hsl(var(--whatsapp)) / hsl(var(--whatsapp-foreground)),
   токены нигде не определены → фон/цвет CTA брони резолвились в invalid.
   Теперь — семья: action + глубина + action-глоу, ховер темнее + подъём. */
.apt2-bar__cta {
  background: var(--color-action);
  color: var(--color-on-action);
  box-shadow: var(--cta-depth), var(--elevation-action);
  transition: background-color var(--dur-fast) var(--ease-standard),
              transform var(--dur-fast) var(--ease-standard),
              box-shadow var(--dur-fast) var(--ease-standard);
}
.apt2-bar__cta:hover {
  background: var(--color-action-hover);
  filter: none;
  transform: translateY(-1px);
  box-shadow: var(--cta-depth), var(--elevation-action-hover);
}
.apt2-bar__cta:active { transform: scale(0.97); transition-duration: 100ms; }
/* Тёмный бар: чернильный фокус-ринг невидим — кольцо бумагой */
.apt2-bar__cta:focus-visible, .apt2-bar__ghost:focus-visible {
  outline: 2px solid hsl(var(--paper) / 0.85);
  outline-offset: 2px;
}
.apt2-bar__ghost { transition: color var(--dur-fast) var(--ease-standard), background-color var(--dur-fast) var(--ease-standard); }

/* L: rb-cta (район) — была терракотовая пилюля 13px вне семьи (дрейф класса
   FAQ-кнопки на главной) → секционный CTA семьи: action + глубина + глоу */
.rb-cta__btn {
  background: var(--color-action);
  color: var(--color-on-action);
  font-size: var(--fs-base);
  font-weight: 600;
  letter-spacing: 0.01em;
  gap: 0.6rem;
  box-shadow: var(--cta-depth), var(--elevation-action);
  transition: background-color var(--dur-fast) var(--ease-standard),
              transform var(--dur-fast) var(--ease-standard),
              box-shadow var(--dur-fast) var(--ease-standard);
}
.rb-cta__btn:hover {
  background: var(--color-action-hover);
  color: var(--color-on-action);
  transform: translateY(-1px);
  box-shadow: var(--cta-depth), var(--elevation-action-hover);
}
.rb-cta__btn:active { transform: scale(0.97); transition-duration: 100ms; }
.rb-cta__btn:focus-visible { outline: 2px solid hsl(var(--paper) / 0.85); outline-offset: 3px; }
.rb-cta__btn svg { width: 18px; height: 18px; flex: none; }

/* Та же тёмная карта: --rb-accent = нейтрализованная терракота (0 0% 12% ≈ чёрный)
   → айбро и «WhatsApp» в заголовке были чёрным по чёрному (невидимы). Слово —
   зелёным для тёмных фонов (--green-500, как точки героя главной) = семья кнопки ниже. */
.rb-cta__card .rb-cta__eyebrow { color: hsl(var(--paper) / 0.6); }
.rb-cta__card .rb-cta__eyebrow::before { background: hsl(var(--paper) / 0.4); }
.rb-cta__card .rb-cta__h em { color: var(--green-500); }

/* Плановые литералы .2s ease у галерейной кнопки → токены (пламбинг) */
.apt2-gallery__handoff {
  transition: background-color var(--dur-base) var(--ease-standard),
              border-color var(--dur-base) var(--ease-standard),
              color var(--dur-base) var(--ease-standard);
}
.apt2-gallery__handoff-arrow { transition: transform var(--dur-base) var(--ease-standard); }

/* ── 2 · ЧИП ЗАНЯТОСТИ — глас снят, пастели-производные (дефолт главной) ── */
.v2-aptcard__chip {
  background: hsl(var(--color-surface) / 0.97);
  color: hsl(var(--color-text) / 0.92);
  font-weight: 600;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  box-shadow: var(--elevation-2);
}
body[data-chip-color="tint"] .v2-aptcard__chip[data-state="free"] {
  background: color-mix(in srgb, var(--color-available) 13%, #fff);
  color: var(--color-available-text);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-available) 30%, transparent), var(--elevation-2);
}
body[data-chip-color="tint"] .v2-aptcard__chip[data-state="booked"],
body[data-chip-color="tint"] .v2-aptcard__chip[data-state="renovation"] {
  background: color-mix(in srgb, var(--color-booked) 16%, #fff);
  color: var(--color-booked-text);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-booked) 34%, transparent), var(--elevation-2);
}
body[data-chip-color="tint"] .v2-aptcard__chip[data-state="free"] .v2-aptcard__chip-dot {
  background: var(--color-available);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-available) 20%, transparent);
}
body[data-chip-color="tint"] .v2-aptcard__chip[data-state="booked"] .v2-aptcard__chip-dot,
body[data-chip-color="tint"] .v2-aptcard__chip[data-state="renovation"] .v2-aptcard__chip-dot {
  background: var(--color-booked);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--color-booked) 22%, transparent);
}

/* Rightbank: подпись на фото героя — тот же язык (solid вместо стекла) */
.rb-hero__visual-caption {
  background: hsl(var(--color-surface) / 0.97);
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  box-shadow: var(--elevation-2);
}

/* ── 3 · КАРТОЧКИ — тип-рампа #15 + hover-zoom + пресс ───────────────────── */
.v2-aptcard__zhk { font-size: clamp(var(--fs-base), 1.7vw, var(--fs-xl)); }
.v2-aptcard__unit, .v2-aptcard__price, .v2-aptcard__maplink { font-size: var(--fs-md); }
.v2-aptcard__type { font-size: var(--fs-sm); }

.v2-aptcard__photo { overflow: hidden; }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .v2-aptcard .v2-aptcard__img { transition: opacity var(--dur-slow) var(--ease-standard), transform 1.4s var(--ease-standard); }
  .v2-aptcard:hover .v2-aptcard__img { transform: scale(1.04); }
}
/* Пресс-фидбек (эквивалент ховера на таче — паттерн карточки главной) */
a.v2-aptcard { transition: transform var(--dur-fast) var(--ease-standard); }
a.v2-aptcard:active { transform: scale(0.986); }

/* ── 4 · БАЗОВАЯ КОНТЕНТ-ССЫЛКА (#23) ────────────────────────────────────── */
/* dailyrent.css сбрасывает все <a> в inherit/none — бесклассовая ссылка в
   контенте (вся правовая база!) невидима как ссылка. Исключения контейнерами
   через :where() (нулевая специфичность): nav (крошки/шапка/дровер-нав),
   дровер, футер, стилизованные ряды ссылок района и контактов хозяев. */
a:not([class]):not(:where(nav, .site-drawer, .drf, .apt2-district__links, .apt2-host__contact) a) {
  color: hsl(var(--color-text));
  text-decoration: underline;
  text-decoration-color: hsl(var(--color-text) / 0.35);
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
  transition: color var(--dur-fast) var(--ease-standard),
              text-decoration-color var(--dur-fast) var(--ease-standard);
}
a:not([class]):not(:where(nav, .site-drawer, .drf, .apt2-district__links, .apt2-host__contact) a):hover {
  color: var(--color-action-hover);
  text-decoration-color: currentColor;
}
a:not([class]):not(:where(nav, .site-drawer, .drf, .apt2-district__links, .apt2-host__contact) a):focus-visible {
  outline: 2px solid hsl(var(--focus-ring));
  outline-offset: 2px;
}

/* ── 6 · РИВИЛ — ретайм по вердикту юзера (11.07) + принт-гард ──────────── */
/* 540ms/18px (токенная база) ≈ те же «слишком быстрые» 0.55s, что юзер
   отклонил на главной → 0.8s/10px. Теггер секций: js/dr-modern.js. */
.reveal {
  transform: translateY(10px);
  transition-duration: 0.8s;
}
@media print {
  .reveal { opacity: 1 !important; transform: none !important; }
}
/* no-JS: у district-карточек .reveal ЗАПЕЧЁН в маркапе — без этого блока мой
   безусловный transform перекрыл бы фолбэк tokens.css и оставил сдвиг 10px. */
@media (scripting: none) {
  .reveal { transform: none; }
}

/* ── 7 · REDUCED-MOTION — контракт без трансформов ───────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .site-header__cta, .site-drawer__bottom a, .apt2-bar__cta, .rb-cta__btn,
  a.v2-aptcard, .apt2-gallery__handoff, .apt2-gallery__handoff-arrow { transition: none; }
  .site-header__call:active, .site-header__cta:hover, .site-header__cta:active,
  .site-drawer__wa:active, .site-drawer__call:active,
  .apt2-bar__cta:hover, .apt2-bar__cta:active,
  .rb-cta__btn:hover, .rb-cta__btn:active,
  a.v2-aptcard:active,
  .apt2-gallery__handoff:hover .apt2-gallery__handoff-arrow { transform: none; }
}
