/* =============================================================================
   tokens.css — единая система токенов визуального языка
   Источники: sections/*.md (части «3. Токены» и «2. Правила»), 13 разделов.
   Слои:  A = [data-theme="landing-dark"]  (centralmg.ge, Tilda, тёмный luxury)
          B = [data-theme="landing-brand"] (rybalsky.com.ua, синий корпоративный)
          C = [data-theme="app"]           (FLAT.SHOW, светлое приложение подбора)
   :root — инварианты (шкалы, размеры, раскладка, движение, тени, радиусы,
   параметры проекта). Темы — цвета + ролевые алиасы слоя (шрифт, радиус
   контрола, роли текста, длительность hover).
   Каждая строка снабжена источником: <раздел> R-<KEY>-n (правило) или
   «§n.m» (наблюдение) из соответствующего sections/<key>.md.
   Значения — только измеренные; [решение] = выбор интегратора при конфликте
   (см. tokens.md → «Конфликты и решения»); [прибл.] = не извлечено точно.
   ============================================================================= */

:root {
  /* ---------------------------------------------------------------------------
     БРЕЙКПОИНТЫ (responsive R-RESP-1, R-RESP-35). В media-queries custom
     properties не работают — значения продублированы здесь как справочник:
       mobile   < 600px    (Tilda 640 / MUI sm 600 → в языке 600)
       tablet   600–959px  (Tilda 980 / RYB 1024 / MUI md 900 → в языке 960)
       desktop  ≥ 960px, сетка 1200 в окне 1440
       xl       ≥ 1920px   (только галерея объекта 70vh)
       исключение max-width:480 — галерейные иконки
     Макет mobile: 320 (лендинг Tilda, масштаб ×1.21875 на 390) / 390 (app)
  --------------------------------------------------------------------------- */
  --bp-sm: 600px;                      /* responsive --bp-sm; R-RESP-1 */
  --bp-md: 960px;                      /* responsive --bp-md; R-RESP-1 */
  --bp-lg: 1200px;                     /* responsive --bp-lg (artboard 1200); R-RESP-1 */
  --bp-xl: 1920px;                     /* responsive --bp-xl; R-RESP-35 */

  /* ---------------------------------------------------------------------------
     ШКАЛА ОТСТУПОВ — объединённая (layout-spacing R-LAY-38; principles R-PRINCIPLES-12)
     app: 5/10/15/20/30 компонентные, 4/8/16/24/32 MUI-сетки;
     landing: 8/16/24 внутри карточек, 20/40/64/100 между блоками.
  --------------------------------------------------------------------------- */
  --space-4: 4px;      /* зазор ячеек шахматки, соц-квадратов; R-LAY-38 */
  --space-5: 5px;      /* зазор бейджей, «−5» компенсация сетки рельса; R-APP-12 */
  --space-8: 8px;      /* gap фильтров по x, кнопок шапки; R-LAY-15, R-CL-2 */
  --space-10: 10px;    /* gap карточек/фильтров по y, inset тела карточки; R-LAY-16 */
  --space-15: 15px;    /* padding поповера, cookie; R-APP-9 */
  --space-16: 16px;    /* gap шагов, padding сегмента по x; R-LAY-9 */
  --space-20: 20px;    /* inset app-mobile, padding поля лендинга; R-LAY-26 */
  --space-24: 24px;    /* padding карточки шага, панели юнита, гаттер mobile A; R-LAY-9, R-LAY-23 */
  --space-30: 30px;    /* padding рельса, inset сцены слева/снизу; R-LAY-13, R-LAY-18 */
  --space-32: 32px;    /* inset сцены сверху/справа, page-padding юнита; R-LAY-18, R-LAY-23 */
  --space-40: 40px;    /* отступ «показать больше», padding секции B; R-LAY-16 */
  --space-48: 48px;    /* строка таблицы/формы app; R-LAY-25 */
  --space-64: 64px;    /* верх секции лендинга A; R-LAY-6 */
  --space-100: 100px;  /* padding сцены планов; R-LAY-19 */

  /* ---------------------------------------------------------------------------
     РАДИУСЫ (surfaces-elevation R-SURF-2, R-SURF-3; components-app R-APP-3)
  --------------------------------------------------------------------------- */
  --radius-0: 0;           /* секции, карточки, поля, кнопки лендингов; R-SURF-2 */
  --radius-xs: 3px;        /* бейджи C, соц-кнопки A (B: 2px язычки); R-APP-3 */
  --radius-sm: 4px;        /* поля/селекты, легенда, статус-квадрат, Paper; R-SURF-3 */
  --radius-md: 5px;        /* сегменты, шахматка, тумблер, крошки, дропдаун A; R-SURF-3 */
  --radius-image: 6px;     /* фото карточек лендинга A; R-SURF-2 */
  --radius-lg: 8px;        /* холст и тайлы юнита, fullscreen-кнопка; R-SURF-3 */
  --radius-xl: 10px;       /* карточки, кнопки, табы, icon-кнопки app; R-SURF-3 */
  --radius-track: 12px;    /* треки свитча/слайдера, язычок рельса 0 12 12 0; R-SURF-3 */
  --radius-capsule: 25px;  /* капсула стрелок вращения; R-APP-17 */
  --radius-capsule-mobile: 11.7px; /* капсула на mobile; responsive --rotate-ctrl */
  --radius-pill: 30px;     /* hero-пилюля A; R-CL-11 */
  --radius-thumb: 27px;    /* бегунок слайдера B; surfaces --radius-pill B */
  --radius-arrow: 20%;     /* кнопки стрелок вращения; R-APP-17 */
  --radius-circle: 50%;    /* точки, бегунки, круги, пины; R-SURF-3 */

  /* ---------------------------------------------------------------------------
     РАМКИ И РАЗМЫТИЕ (surfaces-elevation R-SURF-4, R-SURF-10; components-landing R-CL-1)
  --------------------------------------------------------------------------- */
  --border-w: 1px;         /* единственная толщина hairline; R-SURF-4 */
  --border-w-frame: 3px;   /* рамочная панель на фото B /filter; R-SURF-4 */
  --blur-glass: 8px;       /* backdrop-filter стеклянной пилюли A; R-SURF-10 */
  --blur-header: 10px;     /* backdrop-filter шапки A; R-CL-1 */

  /* ---------------------------------------------------------------------------
     ТЕНИ — всегда нейтрально-серые (surfaces-elevation R-SURF-8/12/13/21; color R-COLOR-12)
  --------------------------------------------------------------------------- */
  --shadow-none: none;                                            /* секции, карточки, кнопки лендинга; R-SURF-1 */
  --shadow-float: 0 0 3px #D2D2D2;                                /* рельс, сегменты, крошки, зум, чипы, hover карточки; R-SURF-8 (= rgb(210,210,210)) */
  --shadow-capsule: 0 0 10px rgba(128,128,128,.24);               /* капсула стрелок вращения; R-SURF-13 */
  --shadow-popover: 0 2px 3px rgba(34,36,38,.15);                 /* поповер/меню селекта; R-SURF-13, R-FC-13 */
  --shadow-btn-contained: 0 3px 1px -2px rgba(0,0,0,.2), 0 2px 2px rgba(0,0,0,.14), 0 1px 5px rgba(0,0,0,.12); /* MUI elevation 2; R-SURF-12 */
  --shadow-thumb: 0 2px 2px #EBEBEB;                              /* бегунок range C; R-FC-14 */
  --shadow-thumb-landing: 1px 1px 3px rgba(0,0,0,.3);             /* бегунок B; surfaces --shadow-thumb */
  --shadow-tabbar: 0 -4px 10px rgba(101,100,100,.3);              /* mobile таб-бар, тень вверх; R-SURF-20 */
  --shadow-sheet-edge: 0 0 6px #E0E0E0;                           /* шапка/футер mobile-листа; R-SURF-20 */
  --shadow-header-landing: 0 6px 13px rgba(0,0,0,.19);            /* шапка A; R-CL-1 */
  --shadow-dropdown-landing: 0 0 7px rgba(0,0,0,.2);              /* языковой дропдаун A (t794); R-CL-5 */
  --shadow-menu-landing: 0 4px 20px rgba(0,0,0,.25);              /* выпадающее меню A; R-SURF-13 */
  --shadow-fab-landing: 0 10px 30px rgba(0,0,0,.25);              /* мессенджер-FAB A; R-CL-28 */
  --shadow-card-hover-landing: 0 15px 30px -10px rgba(0,11,48,.2); /* hover карточки A — на #161616 не читается; R-CL-15, R-MOTION-26 */
  --shadow-flag: 0 0 5px rgba(0,0,0,.3);                          /* флаг телефона A; R-FC-11 */
  --shadow-cookie: 0 0 5px rgba(0,0,0,.1);                        /* cookie-бар A; forms --cookie */
  --shadow-text-on-photo: 1px 1px 10px #000;                      /* text-shadow заголовков на фото B; R-TYPO-5 */
  --shadow-underline: inset 0 -1px 0 0 currentColor;              /* подчёркивание ссылки; R-SURF-19 */
  --shadow-cell-hover: 0 2px 5px rgba(0,0,0,.3);                  /* [прибл.] «тёмная 4–5px» у ячейки шахматки; R-MOTION-9 */

  /* ---------------------------------------------------------------------------
     ДВИЖЕНИЕ (motion-interaction R-MOTION-1, R-MOTION-2; components-app R-APP-36)
  --------------------------------------------------------------------------- */
  --motion-duration-instant: 100ms;   /* поля Semantic, стрелка дропдауна, меню opacity; R-MOTION-13/14 */
  --motion-duration-fast: 150ms;      /* слайдер, thumb свитча, аккордеон; R-MOTION-15/16 */
  --motion-duration-base: 200ms;      /* кнопки A, карточки C, svg fill; инвариант A/C; R-MOTION-4 */
  --motion-duration-button: 250ms;    /* MuiButton, ячейки шахматки; R-MOTION-9 */
  --motion-duration-menu: 300ms;      /* саб-меню A, трек свитча, подъём FAB; R-MOTION-16/19/25 */
  --motion-duration-menu-brand: 350ms; /* ссылки/картинки B; R-MOTION-26 */
  --motion-duration-header-scrolled: 400ms; /* заливка шапки B при скролле; R-MOTION-20 */
  --motion-duration-panel: 500ms;     /* листы, оверлеи, капсула, иконки-круги; R-MOTION-6/17/18 */
  --motion-duration-filter: 600ms;    /* filter .6s смены кадра сцены — верхняя граница; R-MOTION-1 */
  --motion-duration-ripple: 550ms;    /* MUI ripple, только app; R-MOTION-32 */
  --motion-duration-preloader: 450ms; /* прелоадер B, задержка 250; R-MOTION-27 */
  --motion-duration-preloader-delay: 250ms;
  --motion-duration-loop: 1000ms;     /* bounce scroll-hint, highlightPolygon; R-MOTION-12/22 */
  --motion-duration-loop-live: 1500ms; /* индикатор Live 3×500; R-MOTION-24 */
  --motion-duration-appear: 2000ms;   /* единственная appear-анимация — H1 проекта A; R-MOTION-23 */
  --motion-duration-wave: 4000ms;     /* «волна» прелоадера B; R-MOTION-27 */
  --motion-ease-standard: ease-in-out;           /* лендинг A; R-MOTION-2 */
  --motion-ease-brand: ease;                     /* лендинг B; R-MOTION-2 */
  --motion-ease-app: cubic-bezier(.4,0,.2,1);    /* приложение (MUI standard); R-MOTION-2 */
  --motion-ease-panel: cubic-bezier(.25,.1,.25,1); /* mobile-лист фильтров; R-RESP-8 */
  --motion-ease-out: ease-out;                   /* full-screen меню B; R-MOTION-18 */
  --motion-ease-appear: cubic-bezier(.19,1,.22,1); /* единственный expo-out, H1 A; R-MOTION-23 */
  --motion-ease-icon-in: cubic-bezier(.25,1,.5,1);  /* Tilda icon ::before; motion --ease-icon-swap-in */
  --motion-ease-icon-out: cubic-bezier(.45,0,.55,1); /* Tilda icon ::after; motion --ease-icon-swap-out */
  --motion-ease-linear: linear;                  /* подъём FAB, волна; R-MOTION-25 */
  --motion-scale-image-hover: 1.12;   /* фото-ссылки лендинга; R-IMG-8 */
  --motion-opacity-image-hover: .85;  /* мозаика B; R-MOTION-26 */
  --motion-translate-image-hover: -30px; /* мозаика B; R-MOTION-26 */
  --motion-scale-cell-hover: 1.5;     /* ячейка шахматки 32→48 [решение]; R-MOTION-9 */
  --motion-scale-spinner-hover: 1.05; /* кнопки вращения; R-MOTION-10 */
  --motion-scale-gallery-hover: 1.1;  /* .image-gallery-svg; motion --hover-image-scale C */
  --motion-scale-dot-active: 1.2;     /* активный буллет галереи C; motion --dot-nav */
  --motion-scale-header-scrolled: .8; /* иконки шапки B при скролле; R-MOTION-20 */
  --motion-lift-fab: -4px;            /* единственный hover-сдвиг A; R-MOTION-25 */
  --motion-scroll-hint-travel: 10px;  /* колёсико «мыши» B; R-MOTION-22 */
  --motion-header-scroll-threshold: 100px; /* scrollTop для .top-menu__zipped; R-MOTION-20 */

  /* ---------------------------------------------------------------------------
     ШРИФТЫ — семейства (typography R-TYPO-1, R-TYPO-2; principles «Ограничения по правам»)
     PF DIN Text Universal (B) запрещён → замена Barlow / IBM Plex Sans Condensed.
  --------------------------------------------------------------------------- */
  --font-family-landing-dark: 'Nunito Sans', 'NunitoNew', Arial, sans-serif; /* A; typography --font-display/--font-body */
  --font-family-landing-brand: 'Barlow', 'IBM Plex Sans Condensed', 'Roboto Condensed', Arial, sans-serif; /* B (замена PF DIN); principles «Ограничения» */
  --font-family-app: 'AppFont', 'DM Sans', 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', sans-serif; /* C; typography --font-body C */
  --font-family-app-latin: 'DM Sans';        /* unicode-range u+00??, u+0100-024f; R-TYPO-2 */
  --font-family-app-cyrillic: 'Manrope';     /* unicode-range u+04??, u+0500-052f; R-TYPO-2 */
  --font-family-pdf: 'PdfFont', 'Noto Sans', sans-serif; /* PDF-выгрузка; R-TYPO-25 */
  --font-weight-light: 300;     /* display/body A; R-TYPO-4 */
  --font-weight-regular: 400;   /* body C, кнопки A; typography --font-weight-body */
  --font-weight-medium: 500;    /* кнопки MUI, название карточки A; R-TYPO-11 */
  --font-weight-semibold: 600;  /* KPI A, submit A, CTA CMG; typography --font-weight-strong */
  --font-weight-bold: 700;      /* числа, заголовки C, активные табы; R-TYPO-6, R-TYPO-14 */
  --font-weight-black: 900;     /* XBlack .map-min B (не в кадре); typography --font-weight-stat */
  --root-font-size-landing: 16px; /* Tilda и B; typography --root-font-size */
  --root-font-size-app: 14px;     /* 12.25px = 0.875rem@14 [вывод]; typography --root-font-size */

  /* ---------------------------------------------------------------------------
     ТИПОГРАФИЧЕСКАЯ ШКАЛА — все наблюдённые кегли (typography §1.6, §1.8; R-TYPO-13, R-APP-37)
  --------------------------------------------------------------------------- */
  --font-size-10: 10px;      /* номер ячейки шахматки; R-TYPO-13 */
  --font-size-11: 11px;      /* KPI-подпись A, таб-бар C — нижняя граница языка; R-RESP-24 */
  --font-size-12: 12px;      /* карточки, бейджи, лейблы форм; R-TYPO-22 */
  --font-size-12-25: 12.25px; /* метки селектов/легенда C (0.875rem@14); R-TYPO-13 */
  --font-size-13: 13px;      /* футер/нав A, ценник, stat-подпись; R-TYPO-12 */
  --font-size-14: 14px;      /* кнопки (инвариант A/B/C), body-sm; R-TYPO-11 */
  --font-size-16: 16px;      /* body лендингов, крошки/лейблы таблицы C; R-TYPO-9 */
  --font-size-17: 17px;      /* значения таблицы, ось этажей C; R-TYPO-13 */
  --font-size-18: 18px;      /* счётчик/заголовок листа C, tabs B; R-TYPO-13 */
  --font-size-19: 19px;      /* заголовок шага A; R-TYPO-10 */
  --font-size-20: 20px;      /* KPI A, подзаголовок/секция C, название карточки A; R-TYPO-7 */
  --font-size-22: 22px;      /* lead A; R-TYPO-8 */
  --font-size-26: 26px;      /* title юнита C, h3 B, h2 mobile A; R-TYPO-13 */
  --font-size-34: 34px;      /* CTA-заголовок A; typography --type-h2-cta */
  --font-size-36: 36px;      /* display mobile A; R-TYPO-3 */
  --font-size-40: 40px;      /* h2 B, плитка мозаики; R-TYPO-5 */
  --font-size-42: 42px;      /* h2 A, h1 страницы проекта A, modal B; typography --type-h2 */
  --font-size-48: 48px;      /* display mobile B; R-TYPO-3 */
  --font-size-52: 52px;      /* stat A; R-TYPO-6 */
  --font-size-55: 55px;      /* display A; R-TYPO-3 */
  --font-size-display-brand: 3.8vw; /* display B = 54.72px@1440; R-TYPO-3 */
  --font-size-lead-brand: 1.5vw;    /* lead B = 21.6px@1440; typography --type-lead B */
  --leading-tight: 1;          /* капс B, 12.25/12.25, 17/17 C; typography --leading-tight */
  --leading-snug: 1.25;        /* display A, заголовки на светлом A, body B; typography --leading-display */
  --leading-lead-brand: 1.33;  /* lead B; R-TYPO-5 */
  --leading-heading-app: 1.4;  /* 20/28 C; typography --leading-heading */
  --leading-body-app: 1.5;     /* 16/24 C; typography --leading-body */
  --leading-body-landing: 1.55; /* 16/25 A, заголовки на тёмном A; R-TYPO-9 */
  --leading-button-app: 1.75;  /* 14/24.5 MUI; typography --leading-button */
  --leading-button-brand: 2.43; /* 14/34 B; typography --leading-button */
  --tracking-0: 0;             /* строчные A/C; R-TYPO-21 */
  --tracking-caption: .5px;    /* описания/шаги/индекс A на светлом; typography --tracking-caption */
  --tracking-label: 1px;       /* города, цены, футер-хедеры A; display B; typography --tracking-label */
  --tracking-eyebrow-brand: 1.8px; /* надзаголовок .call_hot B; typography --type-label B */
  --tracking-caps-wide: 2px;   /* h2/мозаика B; R-TYPO-5 */
  --tracking-caps-button: 3px; /* кнопки B; R-TYPO-11 */
  --tracking-nav-tight: -.7px; /* NunitoSans 700 16px шапка A; R-TYPO-21 */
  --tracking-mui-heading: -.032px; /* системные заголовки MUI; R-TYPO-21 */
  --text-button-size: 14px;    /* инвариант A/B/C; R-TYPO-11 */
  --text-card-size: 12px;      /* карточки не масштабируются между вьюпортами; R-RESP-12 */
  --text-min-size: 11px;       /* нижняя граница языка (B 10px — запрещено); R-RESP-24 */
  --text-caps-max-words: 3;    /* капс не длиннее 3 слов; R-TYPO-20 */
  --text-measure-body: 670px;  /* ширина колонки body лендинга 500–670; R-TYPO-9 */
  --text-measure-lead: 700px;  /* lead ≤ 700; R-TYPO-8 */

  /* ---------------------------------------------------------------------------
     РАЗМЕРЫ КОНТРОЛОВ (forms-controls R-FC-1; layout R-LAY-39; responsive R-RESP-18)
  --------------------------------------------------------------------------- */
  --size-control-xs: 30px;        /* cookie OK A, круг действия на карточке; forms --control-h-sm */
  --size-control-sm: 34px;        /* поля «от/до» поповера, MENU/поиск B; forms --control-h-sm */
  --size-control-sm-btn: 37px;    /* «очистить/применить»; R-APP-9 */
  --size-control-header-landing: 38px; /* кнопки шапки A, соц-квадраты; R-CL-2 */
  --size-control-icon: 40px;      /* квадратные icon-кнопки app, «Все проекты» A; R-FC-1 */
  --size-control: 44px;           /* стандарт: поля, селекты, сегменты, чипы, табы, тумблер, ручка; R-FC-1 */
  --size-control-cta: 45px;       /* «показать больше», CTA mobile-листа; R-FC-1 */
  --size-control-cta-lg: 48px;    /* CTA юнита, телефон-инпут B; R-FC-1 */
  --size-control-field-landing: 50px; /* input/select/submit A; R-FC-9 */
  --size-control-header-brand: 52px;  /* CALL BACK B; forms --control-h-lg */
  --size-control-hero: 60px;      /* hero-пилюля A, табы контактов B, sticky-бар A; R-CL-11 */
  --size-control-hero-lg: 70px;   /* кнопки CTA-секции A 313×70; R-CL-20 */
  --size-control-submit-brand: 76px; /* submit модалки B; R-CL-23 */
  --size-control-field-mobile: 56px; /* input A mobile; R-RESP-23 */
  --size-control-submit-mobile: 61px; /* submit A mobile; R-RESP-23 */
  --size-control-cta-mobile: 66px;   /* 341×66 CTA A mobile; R-RESP-22 */
  --size-control-sticky-btn: 42px;   /* кнопки mobile sticky-бара A; R-CL-30 */
  --size-touch-min: 40px;         /* минимальная цель касания; R-RESP-18 */
  --size-icon-btn-mobile-landing: 46px; /* бургер/соц A mobile; responsive --icon-btn-mobile */
  --size-icon-btn-brand: 34px;    /* квадратные иконки B (нарушение touch-min); responsive --icon-btn-mobile */

  /* ---------------------------------------------------------------------------
     ИКОНКИ (iconography-imagery R-IMG-1, R-IMG-5; forms R-FC-24)
  --------------------------------------------------------------------------- */
  --size-icon: 24px;              /* базовая сетка; табы, действия, атрибуты; R-IMG-1 */
  --size-icon-control: 21px;      /* tune/close/степпер; R-IMG-5 */
  --size-icon-on-image: 20px;     /* сердце/глаз на фото, телефон; R-IMG-5 */
  --size-icon-caret: 16px;        /* ArrowDropDown в поле; R-IMG-5 */
  --size-icon-action: 14px;       /* ссылки-действия 13–15; R-IMG-5, R-FC-5 */
  --size-icon-glyph-landing: 16px; /* глиф в соц-квадрате A; forms --btn-icon-glyph */
  --size-icon-fab: 26px;          /* иконка мессенджер-FAB; R-CL-28 */
  --size-icon-spinner-hover: 30px; /* иконка стрелки 26→30 на hover; R-MOTION-10 */
  --icon-stroke: 1.4px;           /* контур базовых иконок; R-IMG-1 */
  --icon-stroke-strong: 2px;      /* хэндл рельса, zoom; R-IMG-1 */
  --icon-stroke-micro: 1.2px;     /* pdf/link/heart 13–15px (1.2–1.3); R-IMG-1 */
  --icon-linecap: round;          /* linecap/linejoin; R-IMG-1 */
  --icon-gap-text: 4px;           /* иконка → текст в мета-строке (4–8); R-IMG-26, R-FC-5 */

  /* ---------------------------------------------------------------------------
     РАЗМЕРЫ ЭЛЕМЕНТОВ ПРИЛОЖЕНИЯ (components-app, ux-flows, iconography)
  --------------------------------------------------------------------------- */
  --size-card-w: 195px;           /* карточка рельса; R-APP-10 */
  --size-card-h: 281px;           /* CMG (RYB 288); R-APP-10 */
  --size-card-image-h: 160px;     /* бокс картинки карточки; R-APP-10 */
  --size-card-w-scene: 297px;     /* карточка в сетке Layouts; R-LAY-22 */
  --size-card-action: 30px;       /* круг сердце/глаз; R-FC-8 */
  --size-card-action-inset: 6px;  /* от угла картинки; R-FC-8 */
  --size-card-action-step: 35px;  /* шаг стека кругов; R-FC-8 */
  --size-badge-h: 22px;           /* бейдж 12/18 + p 2 5; R-TYPO-15 */
  --size-filter-field-w: 196px;   /* поле фильтра, поповер; R-APP-6 */
  --size-filter-popover-h: 240px; /* поповер range; ux --filter-popover */
  --size-range-input-w: 78px;     /* поля «от/до» 78×34; ux --range-input */
  --size-thumb: 27px;             /* ручка range; R-FC-14 */
  --size-thumb-zoom: 20px;        /* ручка зума; R-FC-14 */
  --size-zoom-track: 6px;         /* трек зума; R-FC-14 */
  --size-chess-zoom: 170px;       /* плашка зума 170×44; R-APP-24 */
  --size-chess-zoom-slider: 92px; /* слайдер внутри; R-APP-24 */
  --size-switch-w: 40px;          /* MUI switch 40×24; R-FC-15 */
  --size-switch-h: 24px;
  --size-switch-thumb: 22px;      /* thumb свитча; R-FC-15 */
  --size-switch-travel: 16px;     /* ход thumb; R-FC-15 */
  --size-facade-switch-w: 104px;  /* плашка тумблера 104×44 (mobile 104×40); R-APP-18 */
  --size-view-switch-w: 369px;    /* сегментед-контрол 369×44 (RYB 327); R-RESP-7 */
  --size-rotate-pill-w: 140px;    /* капсула стрелок 140×76; R-APP-17 */
  --size-rotate-pill-h: 76px;
  --size-rotate-pill-w-mobile: 116px; /* 116×56 mobile; R-RESP-16 */
  --size-rotate-pill-h-mobile: 56px;
  --size-rotate-pill-pad: 16px;   /* padding капсулы (mobile 7.8); R-APP-17 */
  --size-rotate-btn: 44px;        /* кнопка стрелки (mobile 40); R-APP-17 */
  --size-collapse-handle-w: 24px; /* язычок рельса 24×44; R-APP-19 */
  --size-house-crumbs-w: 232px;   /* крошки «All houses | house 1» 232×44; ux --house-crumbs */
  --size-crumb-dot: 10px;         /* точка статуса в крошке; R-APP-32 */
  --size-crumb-chevron-w: 8px;    /* шеврон «назад» 8×14; R-APP-32 */
  --size-chess-cell: 32px;        /* ячейка шахматки; R-APP-23 */
  --size-chess-pitch: 36px;       /* шаг ячеек (32 + gap 4); R-LAY-21 */
  --size-chess-floor-col: 50px;   /* sticky-колонка этажей; R-APP-23 */
  --size-chess-floor-cell-h: 36px; /* ячейка этажа 48×36; typography --type-chess-floor */
  --size-chess-toolbar: 44px;     /* тулбар над шахматкой; R-LAY-21 */
  --size-chess-zoom-bar: 70px;    /* нижняя белая полоса зума; R-LAY-21 */
  --size-legend-swatch: 20px;     /* квадрат легенды 20×20 r4; R-COLOR-6 */
  --size-status-square: 24px;     /* квадрат статуса на странице юнита 24×24 r4; R-COLOR-6 */
  --size-stepper-w: 48px;         /* колонка степпера этажей; R-APP-20 */
  --size-stepper-row: 33px;       /* ступень; R-FC-18 */
  --size-stepper-cell: 32px;      /* ячейка этажа (gap 2); R-APP-20 */
  --size-stepper-arrow: 28px;     /* ячейки-стрелки; R-APP-20 */
  --size-compass: 80px;           /* круг компаса (91 на странице юнита); R-APP-21 */
  --size-compass-svg: 75px;       /* svg внутри; R-APP-21 */
  --size-pin: 23px;               /* круг пина дома (кольцо 2px); R-APP-31 */
  --size-pin-img-w: 30px;         /* svg-пин 30×57; R-IMG-14 */
  --size-pin-img-h: 57px;
  --size-popover-unit-w: 220px;   /* поповер помещения ≈220×310; R-APP-30 */
  --size-popover-unit-h: 310px;
  --size-popover-close: 24px;     /* крестик поповера; R-APP-30 */
  --size-scene-preview-w: 400px;  /* превью спиннера в рельсе 400×275 (2D: 400×224); R-IMG-13 */
  --size-scene-preview-h: 275px;
  --size-scene-desktop-w: 980px;  /* canvas+svg 980×900; R-IMG-9 */
  --size-scene-desktop-h: 900px;
  --size-scene-mobile-w: 390px;   /* 390×786; R-IMG-9 */
  --size-scene-mobile-h: 786px;
  --size-scene-floor-w: 780px;    /* 780×630 режим этажей; R-IMG-9 */
  --size-scene-floor-h: 630px;
  --size-scene-gallery-w: 936px;  /* 936×649 таб «Фасад»; R-IMG-9 */
  --size-scene-gallery-h: 649px;
  --size-unit-tile: 203px;        /* тайлы компас/мини-план/роза 203×203 r8; R-APP-26 */
  --size-gallery-frame-w: 677px;  /* галерея юнита 677×625; R-IMG-21 */
  --size-gallery-frame-h: 625px;
  --size-gallery-thumb: 100px;    /* тумбнейлы 100×100 r10 p10; R-IMG-21 */
  --size-gallery-dot: 8px;        /* буллеты галереи; R-IMG-21 */
  --size-fullscreen-btn: 44px;    /* fullscreen 44×44 r8; R-IMG-21 */
  --size-unit-tab-w: 104px;       /* таб «Планировки/Фасад» 104×44; R-APP-27 */
  --size-logo-app-w: 140px;       /* логотип бренда в рельсе; R-IMG-6 */
  --size-logo-app-h-max: 25px;    /* высота лого 16–25; R-APP-4 */
  --size-watermark-w: 32px;       /* водяной знак платформы 32×34; R-APP-33 */
  --size-watermark-h: 34px;
  --size-cursor-dot: 10px;        /* маркер курсора на уровнях без полигонов; R-MOTION-8 */
  --size-tabbar-h: 59px;          /* mobile таб-бар; R-APP-34 */
  --size-tabbar-item-w: 78px;     /* 5 табов при 390; R-APP-34 */
  --size-sheet-header-h: 40px;    /* шапка mobile-листа; R-RESP-9 */
  --size-sheet-footer-h: 85px;    /* футер mobile-листа; R-RESP-9 */
  --size-checkbox-row: 24px;      /* строка чекбокса mobile; R-FC-21 */
  --size-checkbox-col-w: 159px;   /* 2 колонки чекбоксов; R-RESP-11 */
  --size-checkbox-indent: 35px;   /* padding-left лейбла; R-FC-21 */
  --size-floor-select-w: 170px;   /* селекты планов mobile 170×44; R-RESP-15 */
  --size-scrollbar-app: 10px;     /* собственный скроллбар C; R-MOTION-31 */
  --size-scrollbar-brand: 12px;   /* скроллбар B; R-MOTION-31 */

  /* ---------------------------------------------------------------------------
     РАЗМЕРЫ ЭЛЕМЕНТОВ ЛЕНДИНГА (components-landing, layout-spacing, iconography)
  --------------------------------------------------------------------------- */
  --size-logo-landing-w: 154px;   /* лого A (mobile 120); R-CL-25 */
  --size-logo-brand-w: 186px;     /* лого B 186×34; components-landing --logo-w */
  --size-logo-brand-h: 34px;
  --size-logo-box-brand: 180px;   /* вертикальная лого-плашка B 180×235; icon --logo-box-bg */
  --size-hero-cta-w: 269px;       /* hero-пилюля A 269×60; R-CL-11 */
  --size-hero-separator-w: 636px; /* hairline hero A 636×1; R-CL-9 */
  --size-hero-separator-brand: 33px; /* штрих B 2×33; R-CL-12 */
  --size-stats-band-h: 153px;     /* полоса цифр A; R-CL-14 */
  --size-stats-separator-h: 78px; /* разделитель 1×78; R-CL-14 */
  --size-card-w-landing: 276px;   /* карточка проекта A 276×320; R-CL-16 */
  --size-card-image-h-landing: 320px;
  --size-card-w-landing-wide: 570px; /* акцентный ряд 2×570; R-CL-16 */
  --size-card-w-mobile-landing: 341px; /* 341×341 квадрат; R-RESP-21 */
  --size-tile-w-brand: 720px;     /* плитка мозаики B; R-CL-17 */
  --size-info-card-w-brand: 480px; /* инфо-карточка на рендере B; R-CL-18 */
  --size-service-card-w: 586px;   /* карточка услуги A 586×136; R-CL-19 */
  --size-service-card-h: 136px;
  --size-step-badge: 48px;        /* квадрат номера шага (46–48 mobile); R-IA-19 */
  --size-cta-group-w: 700px;      /* CTA-группа A; R-LAY-10 */
  --size-cta-btn-w: 313px;        /* кнопки CTA-секции 313×70; R-LAY-10 */
  --size-ghost-btn-w: 150px;      /* «Все проекты →» 150×40; R-CL-21 */
  --size-form-panel-w: 536px;     /* панель формы A (pad 36/41); R-LAY-8 */
  --size-form-field-w: 465px;     /* поле/submit формы A; R-LAY-11 */
  --size-form-modal-w: 800px;     /* модалка B 800 + pad 20; R-LAY-35 */
  --size-form-modal-w-mobile: 340px; /* B mobile; R-RESP-32 */
  --size-form-submit-w-brand: 587px; /* submit B 587×76; components-landing --submit */
  --size-form-logo-brand: 197px;  /* лого-плашка модалки B; R-CL-23 */
  --size-tabs-contact-w: 400px;   /* вкладки контактов B 400×60; R-CL-24 */
  --size-footer-h: 400px;         /* футер A; R-CL-25 */
  --size-footer-h-brand: 44px;    /* футер-полоса B; R-CL-26 */
  --size-footer-desc-w: 311px;    /* описание в футере A; R-LAY-12 */
  --size-social-btn: 38px;        /* соц-квадрат A (B: 40 круг); R-CL-25 */
  --size-social-btn-brand: 40px;
  --size-social-btn-menu-brand: 26px; /* контур-круг в меню B; icon --social-box */
  --size-fab: 58px;               /* мессенджер-FAB (mobile 54); R-CL-28 */
  --size-fab-mobile: 54px;
  --size-fab-brand: 56px;         /* .rtf--mb B / WhatsApp A ≈56; icon --fab */
  --size-pager-dot: 14px;         /* дот-навигация B; R-CL-13 */
  --size-pager-dot-pitch: 21px;
  --size-live-dot: 5px;           /* индикатор Live A; R-CL-3 */
  --size-scroll-hint-w: 19px;     /* «мышь» B 19×47; R-MOTION-22 */
  --size-scroll-hint-h: 47px;
  --size-preloader: 100px;        /* круг прелоадера B; R-MOTION-27 */
  --size-phone-flag-w: 18px;      /* флаг intl-tel-input 18×13 (B 20×14); R-FC-11 */
  --size-phone-flag-h: 13px;
  --size-checkbox-brand: 30px;    /* чекбокс B 30×30; forms --checkbox */
  --size-menu-panel-w: 260px;     /* drawer A; R-LAY-34 */
  --size-menu-grid-w-brand: 1300px; /* full-screen меню B 4×325, ряд 342; R-LAY-34 */
  --size-menu-col-w-brand: 325px;
  --size-menu-row-brand: 342px;
  --size-submenu-w: 150px;        /* саб-меню шапки A (150–170); R-MOTION-19 */
  --size-dropdown-w-landing: 170px; /* языковой дропдаун ≤170; R-CL-5 */
  --size-sidetab-w: 32px;         /* промо-язычки B; R-LAY-33 */
  --size-cookie-w: 600px;         /* cookie-бар A; R-LAY-31 */
  --size-cookie-btn-h: 30px;      /* OK A (30–36); R-FC-22 */
  --size-cookie-btn-min-w-brand: 130px; /* «I agree» B; forms --cookie */
  --size-sticky-cta-h: 60px;      /* mobile CTA-полоса A в 320-сетке (≈73 на 390); R-CL-30 */
  --size-sticky-cta-btn-w: 136px; /* кнопки полосы 136×42; R-RESP-28 */
  --size-media-block-w: 560px;    /* медиа-блоки страницы проекта A 560×465; R-CL-33 */
  --size-media-block-h: 465px;
  --size-tab-contact-mobile-w: 123px; /* табы контактов B mobile 123×50; R-RESP-33 */
  --size-sidetab-h-brand: 140px;  /* промо-язычок 32×140 (mobile 118); R-RESP-34 */

  /* ---------------------------------------------------------------------------
     РАСКЛАДКА (layout-spacing R-LAY-1…40; responsive R-RESP-2; principles R-PRINCIPLES-1/3)
  --------------------------------------------------------------------------- */
  --layout-container-max: 1200px;      /* инвариант A/B; R-LAY-1 */
  --layout-container-inset: 20px;      /* внутреннее поле A → контент 1160; R-LAY-1 */
  --layout-container-content: 1160px;  /* 1200 − 2×20; R-LAY-2 */
  --layout-container-fluid-pad: 10px;  /* ≤1220 контейнер padding 0 10; R-LAY-2 */
  --layout-gutter-desktop: 140px;      /* левое поле контента A @1440; R-LAY-2 */
  --layout-gutter-desktop-brand: 120px; /* B @1440; layout --gutter-desktop */
  --layout-gutter-mobile: 24px;        /* единое боковое поле лендинга mobile; R-LAY-3 */
  --layout-gutter-mobile-app: 20px;    /* inset app mobile; R-LAY-26 */
  --layout-content-mobile: 341px;      /* контент A при 390; layout --content-mobile */
  --layout-content-mobile-app: 350px;  /* карточки/CTA C при 390; R-RESP-12 */
  --layout-mobile-design-w: 320px;     /* макет mobile лендинга; R-RESP-1 */
  --layout-mobile-design-w-app: 390px; /* макет mobile app; R-RESP-1 */
  --layout-mobile-scale: 1.21875;      /* Tilda 390/320; R-CL-35 */
  --layout-header-h: 64px;             /* шапка A fixed (B 65); R-LAY-4 */
  --layout-header-h-brand: 65px;       /* 4+57+4; components-landing --header-h */
  --layout-header-h-mobile: 78px;      /* A 64×1.219; R-LAY-4 */
  --layout-header-h-mobile-brand: 52px; /* B mobile; responsive --header-mobile-height */
  --layout-header-h-app: 55px;         /* строка шапки рельса; R-LAY-14 */
  --layout-header-h-app-unit: 44px;    /* шапка страницы юнита; R-LAY-23 */
  --layout-header-h-app-mobile: 56px;  /* оверлей-шапка C mobile (RYB 80); R-PRINCIPLES-17 */
  --layout-header-btn-gap: 8px;        /* зазор контролов шапки; R-CL-2 */
  --layout-submenu-offset: 12px;       /* саб-меню через 12 под шапкой; R-LAY-40 */
  --layout-hero-h: 100vh;              /* хиро лендинга; R-LAY-5 */
  --layout-hero-min-h: 755px;          /* A (B 680); R-CL-8 */
  --layout-hero-h-mobile: 724px;       /* A (B 750); R-RESP-29 */
  --layout-hero-title-top: 262px;      /* H1 A от верха (29% от 900); R-LAY-5 */
  --layout-hero-left: 147px;           /* левое поле hero A (B 138); R-CL-8 */
  --layout-hero-h1-gap: 67px;          /* H1 → подзаголовок A; R-PRINCIPLES-11 */
  --layout-hero-bottom-anchor: 10px;   /* подпись B от сгиба; R-LAY-5 */
  --layout-kpi-gap: 45px;              /* KPI-группы A; R-CL-10 */
  --layout-section-pad-top: 64px;      /* A 64–112 [решение: 64]; R-LAY-6 */
  --layout-section-pad-bottom: 58px;   /* A 58–88 [решение: 58]; R-LAY-6 */
  --layout-section-pad-top-brand: 40px; /* B main-content p 40 0 50; R-LAY-6 */
  --layout-section-pad-bottom-brand: 50px;
  --layout-section-pad-app: 30px;      /* рельс; principles --space-section-top C */
  --layout-card-cols: 4;               /* каталог A: 4×276 + 2×570; R-LAY-7 */
  --layout-card-gap: 19px;             /* gap каталога A; R-LAY-7 */
  --layout-card-row-gap: 24px;         /* межрядный A [решение, см. конфликт 2]; R-LAY-7 */
  --layout-card-stack-mobile: 17px;    /* шаг стека карточек mobile A (17–24); R-RESP-21 */
  --layout-two-col-left-w: 545px;      /* текст 433–564 в секции услуг; R-CL-19 */
  --layout-two-col-gap-min: 39px;      /* просвет колонок ≥39; R-LAY-8 */
  --layout-step-pitch: 152px;          /* шаг карточек-шагов (136 + 16); R-LAY-9 */
  --layout-form-row-pitch: 95px;       /* label 21 + поле 50 + 24; R-LAY-11 */
  --layout-form-row-pitch-brand: 58px; /* B (58/76); layout --form-row-pitch */
  --layout-form-panel-pad-y: 36px;     /* панель формы A 36/41; R-LAY-8 */
  --layout-form-panel-pad-x: 41px;
  --layout-form-label-gap: 5px;        /* лейбл → поле; R-FC-9 */
  --layout-form-field-gap: 24px;       /* поле → следующий лейбл; R-FC-9 */
  --layout-footer-row-pitch: 25px;     /* строки ссылок футера A; R-LAY-12 */
  --layout-footer-copyright-bottom: 58px; /* копирайт от низа; R-LAY-12 */
  --layout-fab-inset: 25px;            /* FAB 25/25; R-LAY-29 */
  --layout-fab-inset-mobile-x: 16px;   /* mobile 16/90; R-LAY-29 */
  --layout-fab-inset-mobile-y: 90px;
  --layout-cookie-bottom: 30px;        /* cookie fixed bottom 30 / left 20; R-LAY-31 */
  --layout-cookie-left: 20px;
  --layout-dotnav-inset: 30px;         /* дот-навигация right 30; R-LAY-32 */
  --layout-menu-panel-pad: 48px 40px 38px; /* drawer A; R-LAY-34 */
  --layout-menu-overlay-pad-mobile: 20px 20px 60px; /* full-screen меню mobile; R-RESP-31 */
  --layout-rail-w: 460px;              /* инвариант C; R-LAY-13 */
  --layout-rail-pad: 30px;             /* padding рельса; R-LAY-13 */
  --layout-rail-content-w: 400px;      /* 460 − 2×30; R-LAY-13 */
  --layout-rail-results-w: 410px;      /* контейнер карточек с −5; R-LAY-16 */
  --layout-rail-icon-pitch: 50px;      /* шаг icon-кнопок шапки рельса (40 + 10); R-APP-4 */
  --layout-scene-share: 68%;           /* сцена ≥ 2/3 ширины (980/1440); R-PRINCIPLES-1 */
  --layout-scene-inset: 32px;          /* контролы сверху/справа; R-LAY-18 */
  --layout-scene-inset-left: 30px;     /* крошки/водяной знак слева, стрелки снизу; R-LAY-18 */
  --layout-scene-inset-mobile: 20px;   /* контролы на mobile; R-RESP-16 */
  --layout-scene-bottom-axis: 68px;    /* ось y нижних контролов (bottom − 68); R-LAY-18 */
  --layout-scene-toggle-bottom: 46px;  /* тумблер right 32 / bottom 46; R-LAY-18 */
  --layout-scene-watermark-bottom: 10px; /* водяной знак left 30 / bottom 10; R-LAY-18 */
  --layout-scene-crumbs-left: 490px;   /* крошки x=490 (от окна); R-APP-39 */
  --layout-scene-compass-left: 20px;   /* компас left 20 / top 90; R-LAY-19 */
  --layout-scene-compass-top: 90px;
  --layout-scene-pad-floors: 100px;    /* padding сцены планов; R-LAY-19 */
  --layout-scene-grid-w: 930px;        /* сетка Layouts (сцена − 25/25); R-LAY-22 */
  --layout-scene-grid-inset: 25px;
  --layout-filter-cols: 2;             /* 2×196 gap 8; R-LAY-15 */
  --layout-filter-gap-x: 8px;
  --layout-filter-gap-y: 10px;
  --layout-filter-row-pitch: 54px;     /* 44 + 10; R-LAY-15 */
  --layout-filter-popover-gap: 10px;   /* поповер под полем ≈10; R-APP-9 */
  --layout-result-cols-rail: 2;        /* 2×195 gap 10; R-LAY-16 */
  --layout-result-cols-scene: 3;       /* 3×297 gap 10; R-LAY-22 */
  --layout-result-gap: 10px;
  --layout-result-row-gap: 20px;
  --layout-result-load-more-gap: 40px; /* «показать больше» через 40; R-LAY-16 */
  --layout-page-size: 10;              /* порция карточек; R-UXF-15 */
  --layout-card-inset: 10px;           /* тело карточки; R-LAY-17 */
  --layout-card-inset-mobile-landing: 12px; /* текст карточки A mobile; layout --card-inset */
  --layout-table-row-h: 48px;          /* строки цен/характеристик; R-LAY-25 */
  --layout-chess-inset-left: 30px;     /* шахматка 30/25/20; R-LAY-21 */
  --layout-chess-inset-top: 25px;
  --layout-chess-inset-bottom: 20px;
  --layout-chess-legend-h: 28px;       /* легенда по центру; R-LAY-21 */
  --layout-unit-page-pad: 32px;        /* страница юнита; R-LAY-23 */
  --layout-unit-crumbs-h: 34px;        /* строка крошек, margin 28; R-LAY-23 */
  --layout-unit-crumbs-margin: 28px;
  --layout-unit-panel-pad: 24px;       /* sticky-панель 68%; R-LAY-23 */
  --layout-unit-gap: 32px;             /* панель ↔ колонка; R-LAY-23 */
  --layout-unit-info-w: 408px;         /* правая колонка; R-LAY-23 */
  --layout-unit-tile-gap: 8px;         /* тайлы 203 gap 8; R-LAY-24 */
  --layout-unit-tabs-gap: 16px;        /* пилюля табов под галереей; R-LAY-24 */
  --layout-unit-fullscreen-inset: 21px; /* fullscreen-кнопка inset 21; R-LAY-24 */
  --layout-unit-title-h: 32px;         /* sticky-блок: заголовок 32, подзаголовок 28; R-LAY-25 */
  --layout-unit-subtitle-h: 28px;
  --layout-unit-sticky-pad-bottom: 28px;
  --layout-unit-status-gap: 8px;       /* статус-чип через 8; R-LAY-25 */
  --layout-unit-actions-gap: 4px;      /* icon + текст действия; ux --unit-actions */
  --layout-gallery-slide-pad: 20px 64px; /* слайд галереи; R-APP-26 */
  --layout-tabbar-pad: 9px 10px;       /* ячейка таб-бара; R-RESP-4 */
  --layout-sheet-section-pad: 20px 0;  /* секции mobile-листа; R-RESP-10 */
  --layout-sheet-footer-pad: 20px;     /* футер листа; R-RESP-9 */
  --layout-sheet-range-gap: 24px;      /* инпуты «от/до» mobile gap 24; R-RESP-11 */
  --layout-checkbox-row-pitch: 34px;   /* шаг строк чекбоксов; R-RESP-11 */
  --layout-segment-pad: 10px 16px;     /* сегмент переключателя; R-APP-16 */
  --layout-chip-pad: 10px 16px;        /* чип-крошка сцены; forms --crumb-chip */
  --layout-badge-pad: 2px 5px;         /* бейдж; R-APP-12 */
  --layout-btn-pad-app: 10px 20px;     /* MUI button; forms --btn-primary-pad */
  --layout-btn-pad-cta-app: 12px 10px; /* CTA юнита; forms --btn-primary-pad */
  --layout-btn-pad-apply: 6px 16px;    /* «применить»; forms --btn-primary-pad */
  --layout-btn-pad-landing: 0 15px;    /* кнопки A; forms --btn-primary-pad */
  --layout-btn-pad-brand: 8px 24px;    /* кнопки B; forms --btn-primary-pad */
  --layout-field-pad-x: 20px;          /* поле A/C; R-FC-9, R-APP-6 */
  --layout-field-pad-caret: 40px;      /* padding-right под каретку; R-FC-12 */
  --layout-field-pad-app: 8px 12px;    /* input Semantic; R-FC-10 */
  --layout-menu-item-pad: 11px 16px;   /* пункт списка селекта; R-FC-13 */
  --layout-popover-pad: 10px 15px;     /* поповер range; R-APP-9 */
  --layout-dropdown-pad-landing: 18px 20px; /* дропдаун A; R-CL-5 */
  --layout-dropdown-item-pitch: 12px;  /* шаг пунктов дропдауна A; R-CL-5 */
  --layout-tab-pad-app: 5px 20px;      /* табы холста; R-APP-27 */
  --layout-unit-tile-slot: 3;          /* число тайлов (компас/план/роза); R-UXF-28 */

  /* ---------------------------------------------------------------------------
     Z-ПОРЯДОК (layout-spacing R-LAY-37; principles R-PRINCIPLES-14)
  --------------------------------------------------------------------------- */
  --z-scene: 0;                /* canvas + svg-полигоны; R-LAY-37 */
  --z-scene-controls: 1;       /* плавающие контролы 1–6; R-LAY-37 */
  --z-scene-controls-top: 6;
  --z-sticky: 11;              /* sticky-блоки 11–12; R-LAY-37 */
  --z-sticky-top: 12;
  --z-rail-handle: 99;         /* язычок рельса, водяной знак; R-LAY-20 */
  --z-sheet: 100;              /* mobile-листы; R-LAY-37 */
  --z-header: 990;             /* фиксированная шапка A (B 9999); R-LAY-37 */
  --z-side-tabs: 1000;         /* промо-язычки B; R-LAY-37 */
  --z-cursor-dot: 22222;       /* маркер курсора над сценой; R-MOTION-8 */
  --z-menu: 99999;             /* оверлей меню (панель 999999); R-LAY-37 */
  --z-menu-panel: 999999;
  --z-cookie: 100001;          /* cookie-бар A; R-LAY-37 */

  /* ---------------------------------------------------------------------------
     ПАРАМЕТРЫ ПРОЕКТА: СТАТУСЫ — семантика инвариантна, значения — параметр
     (color R-COLOR-6, R-COLOR-20; principles R-PRINCIPLES-7; ux-flows R-UXF-23)
  --------------------------------------------------------------------------- */
  --status-available: #8A8C3F;     /* доступно (оливковый); R-COLOR-6 */
  --status-reserved: #F25430;      /* забронировано (оранжево-красный); R-COLOR-6 (alias: booked) */
  --status-sold: #A62B1F;          /* продано (кирпичный); R-COLOR-6 */
  --status-house: #4F8040;         /* точка «house 1» RYB, семантика открыта; color --color-status-house */
  --status-available-aa: #6F7130;  /* затемнённый до 4.5:1 для 10px-текста; R-COLOR-20 */
  --status-reserved-aa: #C8401F;   /* R-COLOR-20 */
  --status-alpha-polygon: .8;      /* выбранный полигон ≈.8 (.6–.8); R-APP-30, R-IMG-15 */
  --status-alpha-hover-unit: .85;  /* hover конечной квартиры; R-COLOR-7 */
  --status-count: 3;               /* доступный · забронировано · продано; R-IA-32 */

  /* ---------------------------------------------------------------------------
     КОНТЕНТ-КОНСТАНТЫ (content-architecture R-IA-28…31, R-IA-35; typography R-TYPO-16/17)
  --------------------------------------------------------------------------- */
  --num-group-separator: "\00a0";  /* тысячи — неразрывный пробел; R-IA-30 */
  --num-decimal-separator: ",";    /* запятая в выводе, точка в инпутах; R-TYPO-17 */
  --num-locale: "uk-UA";           /* Intl.NumberFormat локаль проекта (один на оба слоя); R-IA-30 */
  --unit-title-separator: " • ";   /* «<Тип> • <мера>»; R-IA-35 */
  --unit-subtitle-separator: " | "; /* «этаж 4 | юнит 404»; R-SURF-17 */
  --unit-id-prefix: "# ";          /* «# 404»; R-IA-34 */
  --price-prefix-landing: "От ";   /* «От $92,800»; R-TYPO-18 */
  --area-unit: "м²";               /* через пробел после числа; R-IA-29 */
  --pdf-page-w: 595.28pt;          /* A4 в pt; R-TYPO-25 */
  --pdf-page-h: 841.89pt;
}

/* =============================================================================
   СЛОЙ A — тёмный luxury-лендинг (centralmg.ge / Tilda)
   Хроматического бренда нет: --brand = белый/светло-серый (R-PRINCIPLES-8,
   R-COLOR-13). Глубина — уровнями серого, тёплый off-white вместо белого.
   ============================================================================= */
[data-theme="landing-dark"] {
  color-scheme: dark;

  /* фоны — лестница серого, шаг 7–8 единиц; R-SURF-1, R-COLOR-13 */
  --bg-0: #161616;                 /* секции, page canvas; R-COLOR-13 */
  --bg-1: #0E0E0E;                 /* футер — самый тёмный; R-COLOR-13 */
  --bg-2: #1F1F1F;                 /* панель формы; R-COLOR-13 */
  --bg-3: #222222;                 /* чип номера, secondary-кнопка, sticky-бар; R-COLOR-13 */
  --bg-field: #2D2D2D;             /* поле ввода; R-CL-22 */
  --bg-header: #0F0F0F;            /* подложка шапки (с α .95 → --overlay-header); surfaces --surface-header */
  --bg-light: #F7F6F3;             /* тёплые светлые секции; R-PRINCIPLES-18 */
  --bg-card: #FFFFFF;              /* карточки услуг, полоса цифр; R-COLOR-13 */
  --bg-icon-btn: rgba(255,255,255,.04); /* соц-квадраты; R-COLOR-14 */
  --bg-icon-btn-hover: #202020;    /* hover соц-квадрата, drawer меню; R-CL-25 */
  --bg-menu-panel: #202020;        /* off-canvas панель 260; R-CL-7 */
  --bg-hero-fallback: #A5A5A5;     /* до загрузки фото; color --color-bg-hero-fallback */
  --bg-cookie: #EBEBEB;            /* cookie-бар; R-CL-27 */
  --bg-cookie-btn: #555555;        /* OK, border #999; forms --cookie */
  --bg-fab: #1A1A1A;               /* мессенджер-FAB [решение, см. конфликт 3]; R-CL-28 */
  --bg-submenu: #FFFFFF;           /* саб-меню шапки, дропдаун языка; R-CL-5, R-MOTION-19 */

  /* текст */
  --fg-0: #FFFFFF;                 /* primary на тёмном; R-COLOR-13 */
  --fg-1: #E6E6E6;                 /* нав-ссылки; R-CL-3 */
  --fg-2: #BABABA;                 /* вторичный: подписи, лейблы, note; R-COLOR-5 */
  --fg-3: #868686;                 /* hover нав, muted; R-CL-3 */
  --fg-on-light-0: #222222;        /* заголовки/цифры на светлой секции; R-COLOR-13 */
  --fg-on-light-1: #2A2A2A;        /* body на светлом (+ls .5); R-TYPO-9 */
  --fg-inverse: #000000;           /* текст submit на белом; color --color-text-inverse */
  --fg-icon-muted: #959595;        /* иконка соц-квадрата → #fff на hover; R-CL-25 */

  /* линии */
  --line-1: rgba(255,255,255,.4);  /* ghost-кнопки, стеклянная пилюля; R-COLOR-14 */
  --line-2: #313131;               /* рамка панели формы на #1F1F1F; R-SURF-5 */
  --line-3: #464646;               /* рамка поля на #2D2D2D; R-SURF-5 */
  --line-on-light: rgba(0,0,0,.25); /* ghost-кнопка на светлой секции; R-COLOR-14 */
  --line-on-light-hairline: #E9E9E9; /* карточка услуги; R-CL-19 */
  --line-hairline-on-dark: rgba(255,255,255,.08); /* футер (.06 шапка, .1 hero); R-CL-25 */
  --line-hairline-on-light: rgba(34,34,34,.06);   /* CTA-секция сверху; R-CL-20 */
  --line-hero-separator: rgba(255,255,255,.1);    /* hairline в hero-стеке; R-CL-9 */
  --line-stats-separator: rgba(0,0,0,.1);         /* 1×78 в полосе цифр; R-CL-14 */
  --line-fab: rgba(255,255,255,.08);              /* рамка FAB; R-CL-28 */
  --line-accent: #453C2D;          /* ценник — единственный хром A; R-COLOR-14 */

  /* бренд (монохром) */
  --brand: #E6E6E6;                /* primary-кнопка шапки; R-CL-2 (белый = «бренд» A) */
  --brand-hover: #D0D0D0;          /* hover primary; R-MOTION-4 */
  --brand-light: #FFFFFF;          /* submit формы; R-CL-22 */
  --brand-90: rgba(15,15,15,.95);  /* плашка шапки (аналог brand-90 B/C); R-CL-1 */
  --on-brand: #161616;             /* текст на светлой кнопке; components-landing --btn-primary-text */
  --accent-alert: #FF0505;         /* точка «Live»; R-CL-3 */
  --accent-warm: var(--line-accent); /* alias; R-PRINCIPLES-8 */

  /* оверлеи и стекло */
  --overlay-hero: linear-gradient(91deg, rgba(8,10,14,.94), rgba(8,10,14,.82) 35%, rgba(8,10,14,.7) 66%, rgba(8,10,14,.45)); /* R-COLOR-15 (0.253turn ≡ 91deg) */
  --overlay-header: rgba(15,15,15,.95); /* шапка + blur 10; R-CL-1 */
  --overlay-glass: rgba(15,15,15,.55);  /* стеклянная пилюля + blur 8; R-SURF-10 */
  --overlay-modal: rgba(0,0,0,.6);      /* .t450__overlay_bg; R-SURF-15 */
  --overlay-ghost-hover: rgba(255,255,255,.1); /* hover ghost-кнопки; R-CL-21 */
  --overlay-tap: rgba(255,255,255,.1);  /* -webkit-tap-highlight ≤1024; R-MOTION-29 */
  --overlay-sticky-bar-blur: var(--blur-glass); /* подложка mobile CTA-полосы; R-LAY-30 */

  /* кнопки */
  --btn-primary-bg: var(--brand);            /* R-FC-2 */
  --btn-primary-bg-hover: var(--brand-hover);
  --btn-primary-fg: var(--on-brand);
  --btn-submit-bg: #FFFFFF;                  /* submit формы 465×50; R-CL-22 */
  --btn-submit-fg: #000000;
  --btn-submit-bg-hover: #161616;            /* инверсия; R-COLOR-16 */
  --btn-secondary-bg: #222222;               /* тёмная secondary шапки; R-CL-2 */
  --btn-secondary-bg-hover: #4C4C4C;         /* motion --hover-bg-shift */
  --btn-ghost-border: var(--line-1);         /* R-FC-4 */
  --btn-ghost-border-on-light: var(--line-on-light);
  --btn-ghost-hover-bg: var(--overlay-ghost-hover);
  --btn-ghost-hover-border: #FFFFFF;         /* R-CL-21 */
  --btn-ghost-hover-invert-bg: #222222;      /* CTA-секция: инверсия в #222/белый; R-CL-20 */
  --btn-icon-bg: var(--bg-icon-btn);         /* R-FC-6 */
  --btn-icon-bg-hover: var(--bg-icon-btn-hover);
  --btn-icon-fg: #FFFFFF;
  --btn-text-fg: var(--fg-2);                /* note/ссылки; R-FC-5 */
  --btn-radius: var(--radius-0);             /* контролы лендинга; R-FC-2 */
  --btn-radius-header: var(--radius-xs);     /* кнопки шапки 3px; R-CL-2 */
  --btn-radius-hero: var(--radius-pill);     /* hero-пилюля; R-CL-11 */
  --btn-shadow: var(--shadow-none);          /* R-FC-2 */
  --btn-height: var(--size-control-field-landing); /* 50; R-FC-9 */
  --btn-height-header: var(--size-control-header-landing); /* 38 */
  --btn-height-hero: var(--size-control-hero); /* 60 */

  /* поля */
  --field-bg: var(--bg-field);               /* R-CL-22 */
  --field-border: var(--line-3);
  --field-label: var(--fg-2);                /* 12/400 #BABABA; R-TYPO-22 */
  --field-placeholder: var(--fg-2);          /* [прибл.] не измерен; forms --field-placeholder */
  --field-radius: var(--radius-0);
  --field-height: var(--size-control-field-landing);
  --field-flag-bg: #C5C5C5;                  /* флаг 18×13; forms --phone-flag */
  --field-caret: #9A9A9A;                    /* CSS-треугольник 4.92px; forms --select-caret */

  /* иконки, фокус, прочее */
  --icon-fg: #FFFFFF;                        /* на тёмном; R-IMG-2 */
  --icon-fg-on-light: #222222;
  --icon-fg-on-image: #FFFFFF;               /* инвариант A/B/C; icon --icon-color-on-image */
  --icon-fg-muted: #BABABA;                  /* вторичные; icon --icon-color-muted */
  --focus-ring: #2015FF;                     /* outline auto, offset 4 (2 у ссылок); R-MOTION-30 */
  --focus-ring-offset: 4px;
  --opacity-disabled: .5;                    /* t-btn_sending; R-FC-23 */
  --radius-control: var(--radius-0);         /* R-SURF-2 */
  --radius-media: var(--radius-image);       /* фото карточек 6; R-SURF-2 */
  --font-family-display: var(--font-family-landing-dark); /* R-TYPO-1 */
  --font-family-body: var(--font-family-landing-dark);
  --font-family-nav: 'NunitoSans', var(--font-family-landing-dark); /* 700 файл nunitosans-10pt-bold; typography --font-nav */
  --root-font-size: var(--root-font-size-landing);
  --motion-duration-hover: var(--motion-duration-base);   /* .2s; R-COLOR-18 */
  --motion-duration-transform: 400ms;                     /* transform .4s; R-CL-32 */
  --motion-ease-hover: var(--motion-ease-standard);       /* ease-in-out; R-MOTION-2 */
  --hover-guard: '@media (hover)';                        /* справочно; R-RESP-19 */

  /* роли текста — font-shorthand: weight size/line-height family (typography §1.2, §1.8) */
  --text-display: 300 55px/69px var(--font-family-display);         /* R-TYPO-3 */
  --text-display-mobile: 300 36px/45px var(--font-family-display);  /* R-RESP-24 */
  --text-h1: 400 42px/57px var(--font-family-display);              /* страница проекта; typography --type-h1-page */
  --text-h2: 300 42px/65px var(--font-family-display);              /* на тёмном (на светлом 42/53); R-TYPO-4 */
  --text-h2-on-light: 300 42px/53px var(--font-family-display);
  --text-h2-mobile: 300 26px/40px var(--font-family-display);       /* R-RESP-24 */
  --text-h2-cta: 300 34px/53px var(--font-family-display);          /* CTA-полоса; R-CL-20 */
  --text-h3: 300 19px/29px var(--font-family-display);              /* заголовок шага; R-IA-19 */
  --text-lead: 300 22px/28px var(--font-family-body);               /* R-TYPO-8 */
  --text-lead-mobile: 300 16px/20px var(--font-family-body);
  --text-lead-2: 300 16px/20px var(--font-family-body);             /* вторая строка hero; R-TYPO-8 */
  --text-body: 300 16px/25px var(--font-family-body);               /* R-TYPO-9 */
  --text-body-mobile: 300 14px/22px var(--font-family-body);
  --text-body-sm: 300 14px/22px var(--font-family-body);            /* текст шага, ls .5; R-CL-19 */
  --text-caption: 300 12px/19px var(--font-family-body);            /* описание карточки, ls .5; R-TYPO-10 */
  --text-caption-tracking: var(--tracking-caption);
  --text-label: 300 11px/14px var(--font-family-body);              /* KPI-подпись, uppercase; R-TYPO-7 */
  --text-label-case: uppercase;
  --text-label-form: 400 12px/normal var(--font-family-body);       /* лейбл поля #BABABA; R-TYPO-22 */
  --text-note: 300 11px/17px var(--font-family-body);               /* consent под формой; R-IA-21 */
  --text-eyebrow: 600 14px/22px var(--font-family-body);            /* «Как это работает», ls .5; R-IA-27 */
  --text-button: 400 14px/21.7px var(--font-family-body);           /* R-TYPO-11 */
  --text-button-lg: 600 14px/normal var(--font-family-body);        /* submit; R-TYPO-11 */
  --text-button-sm: 400 12px/18.6px var(--font-family-body);        /* «Все проекты →», шапка; R-TYPO-11 */
  --text-button-case: none;                                          /* sentence; typography --case-button */
  --text-badge: 600 14px/22px var(--font-family-body);              /* номер шага в квадрате 48, ls .5; typography --type-badge */
  --text-stat: 700 52px/81px var(--font-family-display);            /* R-TYPO-6 */
  --text-stat-mobile: 700 32px/50px var(--font-family-display);
  --text-stat-caption: 300 13px/20px var(--font-family-body);       /* R-TYPO-6 */
  --text-kpi: 600 20px/25px var(--font-family-body);                /* R-TYPO-7 */
  --text-kpi-mobile: 600 18px/normal var(--font-family-body);
  --text-kpi-label: 300 11px/14px var(--font-family-body);          /* = --text-label; R-TYPO-7 */
  --text-card-title: 500 20px/31px var(--font-family-body);         /* uppercase; R-TYPO-10 */
  --text-card-title-case: uppercase;
  --text-card-title-mobile: 500 16px/24.8px var(--font-family-body);
  --text-card-index: 300 11px/17px var(--font-family-body);         /* «01», ls .5; R-IA-17 */
  --text-card-meta: 400 11px/17px var(--font-family-body);          /* город, ls 1; R-TYPO-10 */
  --text-card-meta-tracking: var(--tracking-label);
  --text-price: 400 13px/20px var(--font-family-body);              /* «От $92,800», ls 1, right; R-TYPO-18 */
  --text-nav: 400 13px/normal var(--font-family-nav);               /* 13px ls −.5 (CSS: 16 700 ls −.7); R-CL-3 */
  --text-nav-tracking: -.5px;
  --text-nav-drawer: 700 16px/normal var(--font-family-nav);        /* ссылки drawer; R-CL-7 */
  --text-footer: 300 13px/20px var(--font-family-body);             /* R-TYPO-12 */
  --text-footer-head: 600 13px/20px var(--font-family-body);        /* ls 1, без капса; R-TYPO-12 */
  --text-footer-mobile: 300 12px/19px var(--font-family-body);
  --text-dropdown-item: 400 14px/normal var(--font-family-body);    /* пункты дропдауна #222 center; R-CL-5 */
  --text-cookie: 400 12px/normal var(--font-family-body);           /* 12–15; R-FC-22 */
  --text-sticky-btn: 400 12px/normal var(--font-family-body);       /* кнопки mobile-полосы 12–13; R-RESP-28 */
  --text-error-page: 400 44px/normal var(--font-family-display);    /* 404/ошибка по центру; R-CL-34 */
}

/* =============================================================================
   СЛОЙ B — синий корпоративный лендинг (rybalsky.com.ua / Smarto)
   Один хроматический бренд #0035AA в заливках кнопок, плашек (.85–.9) и футера;
   не в типографике заголовков (R-PRINCIPLES-8). Всё на фото с вуалями.
   ============================================================================= */
[data-theme="landing-brand"] {
  color-scheme: dark;

  /* фоны */
  --bg-0: #0035AA;                 /* page canvas под фото, футер (.8), лого-плашка; R-COLOR-13 аналог */
  --bg-1: #FFFFFF;                 /* светлый контент: контент табов, старый фильтр; color --color-bg-light B */
  --bg-2: rgba(0,53,170,.9);       /* панель/модалка звонка; R-CL-23 */
  --bg-3: rgba(0,0,0,.1);          /* карточка на фото; color --color-bg-card B */
  --bg-field: #FFFFFF;             /* поля без рамки; R-CL-23 */
  --bg-preloader: #A5C8FA;         /* круг прелоадера; R-MOTION-27 */
  --bg-footer: rgba(0,53,170,.8);  /* футер-полоса 44px opacity .8; R-CL-26 */

  /* текст */
  --fg-0: #FFFFFF;                 /* всё на фото/бренде; R-COLOR-15 */
  --fg-1: #BABABA;                 /* заголовки колонок меню 26 Medium; R-CL-7 */
  --fg-2: #C0C0C0;                 /* штрихи hero, muted иконки; R-CL-12 */
  --fg-3: #123F92;                 /* muted на белом; color --color-text-muted B */
  --fg-on-light: #0035AA;          /* текст/плейсхолдер на белом = бренд; color --color-text-inverse B */

  /* линии */
  --line-1: #FFFFFF;               /* табы, поля старого фильтра, чекбоксы, рамка на фото; R-SURF-5 */
  --line-2: #AAAAAA;               /* бегунок слайдера; surfaces --border-w */
  --line-3: #003593;               /* рамка на бренд-заливке — на тон темнее; R-SURF-7 */
  --line-on-light: rgba(0,0,0,.25); /* рамочная панель 3px на фото /filter; R-SURF-4 */
  --line-frame-w: var(--border-w-frame);

  /* бренд */
  --brand: #0035AA;                /* --color-brand B; R-COLOR-2 */
  --brand-hover: #0F1157;          /* hover заливок; R-COLOR-17 */
  --brand-dark: #01277A;           /* hover submit/ghost; R-CL-23 */
  --brand-light: #85ADFF;          /* hover-текст меню/иконок; R-COLOR-17 */
  --brand-border: #003593;         /* = --line-3; R-SURF-7 */
  --brand-90: rgb(from var(--brand) r g b / .9);  /* = rgba(0,53,170,.9) модалка; R-COLOR-3 */
  --brand-85: rgb(from var(--brand) r g b / .85); /* = rgba(0,53,170,.85) инфо-карточка, header__right; R-CL-18 */
  --brand-60: rgb(from var(--brand) r g b / .6);  /* = rgba(0,53,170,.6) шапка при скролле, cookie, дорожка скроллбара; R-MOTION-20 */
  --on-brand: #FFFFFF;
  --accent-alert: rgba(255,51,51,.85); /* промо-язычки; R-COLOR-21 */
  --accent-promo: #F76262;         /* color --color-promo */
  --error: #FF0000;                /* звёздочка обязательности; R-COLOR-21 */

  /* оверлеи */
  --overlay-hero: radial-gradient(50% 50%, transparent, rgba(0,0,0,.5)); /* виньетка; R-COLOR-15 */
  --overlay-header: linear-gradient(rgba(0,0,0,.5), transparent);        /* 65px; R-CL-1 */
  --overlay-header-scrolled: var(--brand-60);                            /* .top-menu__zipped; R-MOTION-20 */
  --overlay-tile: rgba(0,0,0,.2);        /* плитки мозаики; R-SURF-15 */
  --overlay-panel: var(--brand-85);      /* текстовый блок на рендере; R-SURF-15 */
  --overlay-modal: rgba(0,0,0,.4);       /* .main_overlay; R-SURF-15 */
  --overlay-menu: var(--brand-90);       /* full-screen меню: фото + синий; R-CL-7 */
  --overlay-tooltip: rgba(0,0,0,.8);     /* тултип r5; R-MOTION-33 */
  --overlay-tap: transparent;

  /* кнопки */
  --btn-primary-bg: var(--brand);            /* R-FC-2 */
  --btn-primary-bg-hover: var(--brand-hover);
  --btn-primary-fg: var(--on-brand);
  --btn-submit-bg: transparent;              /* ghost 587×76 border белая; R-CL-23 */
  --btn-submit-fg: #FFFFFF;
  --btn-submit-bg-hover: var(--brand-dark);
  --btn-secondary-bg: var(--brand);          /* «Call back» + border #003593; R-CL-2 */
  --btn-secondary-border: var(--brand-border);
  --btn-secondary-bg-hover: var(--brand-dark);
  --btn-ghost-border: #FFFFFF;               /* R-FC-4 */
  --btn-ghost-hover-bg: var(--brand-dark);
  --btn-ghost-invert-bg: #FFFFFF;            /* inversion outlined: белый/бренд; R-MOTION-5 */
  --btn-ghost-invert-fg: var(--brand);
  --btn-icon-bg: transparent;                /* круг с белой обводкой; R-FC-6 */
  --btn-icon-border: #FFFFFF;
  --btn-icon-fg: #FFFFFF;
  --btn-icon-hover: var(--brand-light);      /* R-CL-25 аналог */
  --btn-text-fg: var(--brand);               /* ссылки на белом; R-FC-5 */
  --btn-text-hover: var(--brand-light);      /* menu__link; motion --hover-text */
  --btn-radius: var(--radius-0);
  --btn-radius-sidetab: 2px;                 /* промо-язычки; R-CL-29 */
  --btn-shadow: var(--shadow-none);
  --btn-height: var(--size-control-header-brand); /* 52 CALL BACK */
  --btn-height-header: var(--size-icon-btn-brand); /* 34 MENU */
  --btn-height-tabs: var(--size-control-hero);     /* 60 табы контактов */

  /* поля */
  --field-bg: #FFFFFF;
  --field-border: none;                      /* без рамки, text-indent 10; R-CL-23 */
  --field-border-filter: #FFFFFF;            /* старый фильтр: 1px белая; forms --field-border */
  --field-label: #FFFFFF;                    /* 16/16 center; typography --type-label-form */
  --field-placeholder: var(--brand);         /* R-CL-23 */
  --field-required: var(--error);            /* «*» 30px; R-CL-23 */
  --field-radius: var(--radius-0);
  --field-height: var(--size-control-cta-lg); /* 48 */
  --field-flag-bg: #DBDBDB;                  /* флаг 20×14, sh 0 0 1px #888; forms --phone-flag */
  --slider-thumb-bg: #FFFFFF;                /* 20 r27 border #AAA; R-FC-14 аналог */
  --slider-thumb-border: var(--line-2);
  --slider-track: var(--brand);
  --checkbox-border: #FFFFFF;                /* 30×30; forms --checkbox */

  /* иконки, фокус, прочее */
  --icon-fg: #FFFFFF;                        /* залитые глифы; R-IMG-2 */
  --icon-fg-on-image: #FFFFFF;
  --icon-fg-muted: #C0C0C0;
  --focus-ring: var(--brand-light);          /* [решение] референс outline:none запрещён; R-MOTION-30 */
  --focus-ring-offset: 4px;
  --opacity-disabled: .5;                    /* не измерено — как A; R-FC-23 */
  --opacity-footer: .8;                      /* R-CL-26 */
  --scrollbar-thumb: #FFFFFF;                /* 12px; R-MOTION-31 */
  --scrollbar-track: var(--brand-60);
  --pager-dot-border: #FFFFFF;               /* 14px r50%, активная залита; R-CL-13 */
  --pager-dot-active: #FFFFFF;
  --plan-line-brand: #0237A5;                /* чертёж blueprint; icon --plan-line-brand */
  --plan-filter-silhouette: contrast(0) brightness(26); /* старый фильтр; icon --plan-filter-silhouette */
  --radius-control: var(--radius-0);
  --radius-media: var(--radius-0);           /* мозаика без скруглений; R-SURF-2 */
  --font-family-display: var(--font-family-landing-brand); /* замена PF DIN; principles «Ограничения» */
  --font-family-body: var(--font-family-landing-brand);
  --root-font-size: var(--root-font-size-landing);
  --motion-duration-hover: var(--motion-duration-menu-brand); /* .35s; R-COLOR-18 */
  --motion-duration-transform: var(--motion-duration-panel);   /* .5s кнопки/оверлеи; R-CL-32 */
  --motion-ease-hover: var(--motion-ease-brand);              /* ease; R-MOTION-2 */
  --text-shadow-on-photo: var(--shadow-text-on-photo);        /* R-TYPO-5 */

  /* роли текста (typography §1.3, §1.8) — капс + lh 1.0 + трекинг 1–3px; R-TYPO-5 */
  --text-display: 400 var(--font-size-display-brand)/1 var(--font-family-display); /* 54.72/54.72 uppercase ls1; R-TYPO-3 */
  --text-display-case: uppercase;
  --text-display-tracking: var(--tracking-label);
  --text-display-mobile: 400 48px/48px var(--font-family-display);
  --text-h1: 300 24px/24px var(--font-family-display);              /* h1 инфо-карточки, ls1; typography --type-h1-page B */
  --text-h2: 300 40px/40px var(--font-family-display);              /* ls2 + text-shadow; R-TYPO-5 */
  --text-h2-tracking: var(--tracking-caps-wide);
  --text-h2-mobile: 300 30px/30px var(--font-family-display);
  --text-h2-cta: 400 42px/42px var(--font-family-display);          /* заголовок модалки, ls 2pt; R-CL-23 */
  --text-h3: 300 26px/26px var(--font-family-display);              /* подписи контактов, ls1; typography --type-h3 B */
  --text-lead: 400 var(--font-size-lead-brand)/1.33 var(--font-family-body); /* 21.6/28.73 ls1; R-TYPO-8 */
  --text-lead-mobile: 400 18px/23.94px var(--font-family-body);
  --text-body: 300 16px/20px var(--font-family-body);               /* ls1, justify ≤6 строк; R-TYPO-9 */
  --text-body-tracking: var(--tracking-label);
  --text-body-mobile: 300 14px/20px var(--font-family-body);
  --text-caption: 400 12px/12px var(--font-family-body);            /* футер ls1 (10/14 uppercase — нарушение); R-TYPO-12 */
  --text-label: 400 12px/12px var(--font-family-body);              /* .call_hot надзаголовок, ls1.8 uppercase; typography --type-label B */
  --text-label-case: uppercase;
  --text-label-tracking: var(--tracking-eyebrow-brand);
  --text-label-form: 400 16px/16px var(--font-family-body);         /* center; typography --type-label-form B */
  --text-note: 400 12px/normal var(--font-family-body);             /* consent 12px #fff; R-IA-22 */
  --text-button: 400 14px/34px var(--font-family-body);             /* uppercase ls3; R-TYPO-11 */
  --text-button-case: uppercase;
  --text-button-tracking: var(--tracking-caps-button);
  --text-button-lg: 400 18px/58px var(--font-family-body);          /* табы контактов, ls2pt (room tabs 20/20); R-TYPO-11 */
  --text-button-sm: 400 16px/43px var(--font-family-body);          /* «View apartment»; typography --type-button-sm B */
  --text-stat: 900 60px/normal var(--font-family-display);          /* .map-min XBlack (не в кадре); typography --type-stat B */
  --text-stat-caption: 300 12px/normal var(--font-family-body);     /* .app-text; typography --type-stat-caption B */
  --text-kpi: 400 28px/28px var(--font-family-body);                /* телефон в шапке, uppercase; typography --type-kpi B */
  --text-kpi-label: 400 12px/12px var(--font-family-body);          /* ls1.8 caps; typography --type-kpi B */
  --text-card-title: 400 40px/40px var(--font-family-display);      /* плитка мозаики, ls2, text-shadow; R-CL-17 */
  --text-card-title-tracking: var(--tracking-caps-wide);
  --text-card-title-mobile: 400 30px/30px var(--font-family-display); /* R-RESP-30 */
  --text-card-meta: 400 16px/16px var(--font-family-body);          /* «Building: 7», ls1; typography --type-card-meta B */
  --text-nav: 400 12px/12px var(--font-family-body);                /* MENU ls1 (lang 16/16); R-CL-2 */
  --text-nav-case: uppercase;
  --text-nav-overlay-head: 500 26px/26px var(--font-family-body);   /* заголовки меню #BABABA (mobile 22); R-CL-7 */
  --text-nav-overlay-link: 300 20px/20px var(--font-family-body);   /* ссылки меню (mobile 18); R-CL-7 */
  --text-footer: 400 12px/44px var(--font-family-body);             /* uppercase ls1; R-TYPO-12 */
  --text-footer-case: uppercase;
  --text-footer-mobile: 400 10px/14px var(--font-family-body);      /* нарушение нижней границы 11; R-RESP-24 */
  --text-counter: 400 16px/16px var(--font-family-body);            /* «Apartments types found: 96»; typography --type-counter B */
  --text-dropdown-item: 400 20px/normal var(--font-family-body);    /* пункты оверлея белые; forms --menu-item B */
  --text-sidetab: 400 16px/normal var(--font-family-body);          /* промо-язычки (mobile 14); R-CL-29 */
  --text-tabs-contact-mobile: 400 12px/normal var(--font-family-body); /* 3×123×50; R-RESP-33 */
  --text-modal-title-mobile: 400 16px/normal var(--font-family-display); /* R-RESP-32 */
}

/* =============================================================================
   СЛОЙ C — светлое приложение подбора (FLAT.SHOW)
   Белая «панель приборов» (R-PRINCIPLES-2); бренд — только маркер «активно /
   главное действие» (R-PRINCIPLES-5/6). Значения по умолчанию — Piazza (CMG);
   в комментариях `RYB:` — вторая инсталляция.
   ============================================================================= */
[data-theme="app"] {
  color-scheme: light;

  /* фоны — два уровня + нейтральный для иконок; R-SURF-1, R-COLOR-9 */
  --bg-0: #FFFFFF;                 /* page, рельс, карточки, поля; R-COLOR-9 */
  --bg-1: #F5F5F5;                 /* container-color: холст юнита, кнопки шапки юнита (RYB #F4F6F9); R-APP-26 */
  --bg-2: #F6F7F6;                 /* icon-кнопки рельса, ось шахматки — инвариант; R-COLOR-11 */
  --bg-3: #F8F8F8;                 /* шапка mobile-листа; R-RESP-9 */
  --bg-field: #FFFFFF;             /* R-FC-10 */
  --bg-card: #FFFFFF;              /* R-APP-10 */
  --bg-disabled: #E0E0E0;          /* = rgba(0,0,0,.12) на белом; R-COLOR-19 */
  --bg-switch-off: #E5E5EA;        /* трек выключенного свитча; R-FC-15 */
  --bg-stepper-cell: #EEEEEE;      /* неактивный этаж (RYB: --brand-light); R-APP-20 */
  --bg-stepper-arrow: #ECEBEB;     /* ячейки-стрелки степпера — инвариант; R-APP-20 */
  --bg-menu-divider: #FAFAFA;      /* опции дропдауна; components-app --color-divider-menu */
  --bg-menu-item-hover: rgba(0,0,0,.05); /* hover пункта селекта; R-FC-13 */
  --bg-tooltip: rgba(0,0,0,.75);   /* тултип r2; R-MOTION-33 */

  /* текст — R-COLOR-4 (L* бренда < 25 → текст = бренд, иначе #212121), R-COLOR-5 */
  --fg-0: #162C25;                 /* --app-text-color Piazza (RYB #212121); R-COLOR-4 */
  --fg-1: rgba(0,0,0,.87);         /* опции MUI-форм mobile-листа; R-TYPO-22 */
  --fg-2: #757575;                 /* цены в карточке, описание поповера; R-COLOR-5 */
  --fg-3: #797979;                 /* --app-grey-color: крошки, действия (RYB #666666); R-COLOR-5 */
  --fg-muted-60: rgba(0,0,0,.6);   /* legend, разделитель крошек «/»; R-APP-25 */
  --fg-disabled: rgba(0,0,0,.26);  /* R-COLOR-19 */
  --fg-hover: rgba(0,0,0,.8);      /* hover текста .ui.button; motion --hover-text C */
  --fg-unit-title: #162C45;        /* title/CTA юнита CMG ≠ бренд (аномалия, RYB = бренд); color §5 */
  --fg-pdf-label: #828282;         /* лейблы PDF; R-TYPO-25 */

  /* линии — нейтральный серый; R-SURF-5, R-COLOR-9 */
  --line-1: rgba(34,36,38,.15);    /* поля, селекты, «больше фильтров», outlined; R-APP-6 */
  --line-2: #D6D2D2;               /* карточки — инвариант; R-APP-10 */
  --line-3: #E0E0E0;               /* ось шахматки, секции листа, disabled; R-SURF-5 */
  --line-row: #E5E5E5;             /* строки таблицы юнита; R-SURF-17 */
  --line-soft: #E5E5EA;            /* разделители/трек свитча; R-COLOR-9 */
  --line-gallery: #F5F5F5;         /* рамка галереи 1px; R-IMG-21 */
  --line-stepper: #EEEEEE;         /* разделители степпера; R-FC-18 */
  --line-hover: rgba(34,36,38,.35); /* hover поля; R-FC-10 */
  --line-focus: var(--brand);      /* открытое поле, активный таб; R-SURF-6 */
  --line-on-photo: #FFFFFF;        /* неактивный таб холста, контур полигона; R-APP-27, R-MOTION-7 */

  /* бренд — параметр клиента; всё ниже производится от --brand (R-COLOR-2/3) */
  --brand: #162C25;                /* --app-primary-color Piazza (RYB #003DA7); R-COLOR-2 */
  --brand-hover: var(--brand);     /* MUI dark(primary) === main у Piazza [вывод]; forms --btn-primary-bg-hover */
  --brand-light: #CBDEF3;          /* --app-primary-color-light (RYB #6D9EEB: неактивные этажи); R-COLOR-3 */
  --brand-90: rgb(from var(--brand) r g b / .9);   /* = rgba(22,44,37,.9): активный сегмент, таб-бар; R-COLOR-3 */
  --brand-tint-4: rgb(from var(--brand) r g b / .04); /* = rgba(22,44,37,.04): активная outlined-кнопка; R-COLOR-3 */
  --on-brand: #FFFFFF;             /* текст/иконки на бренде; R-COLOR-22 */
  --badge-type-bg: #4286A0;        /* «Студия» — второй фиксированный цвет (RYB = бренд); R-COLOR-8 */
  --badge-id-bg: var(--brand);     /* «# 404»; R-COLOR-8 */
  --badge-fg: var(--on-brand);

  /* полигоны и статусы на сцене; R-COLOR-7, R-UXF-19 */
  --polygon-static: var(--brand);  /* --app-static-body-color Piazza (RYB #0000FF), α .9 при тумблере ON; R-COLOR-7 */
  --polygon-static-alpha: .9;
  --polygon-hover: var(--brand);   /* --app-hover-body-color Piazza (RYB #F599AC) — обязан отличаться от бренда; R-PRINCIPLES-7 */
  --polygon-hover-alpha: .6;       /* контейнер (дом/квартал); R-COLOR-7 */
  --polygon-stroke: var(--line-on-photo); /* 1px белый контур; R-MOTION-7 */
  --status-hover: var(--polygon-hover);   /* alias: hover-подсветка объекта; R-COLOR-7 */
  --status-hover-unit-alpha: var(--status-alpha-hover-unit); /* квартира = статус α .85 */
  --rose-hover-lighten: rgba(255,255,255,.42); /* силуэт в розе видов; motion --hover-rose-lighten */

  /* оверлеи и стекло — только белое; R-SURF-9, R-COLOR-10 */
  --overlay-glass-90: rgba(255,255,255,.9); /* панели с текстом: сегмент, таб-бар, язычок, ручка; R-APP-2 */
  --overlay-glass-80: rgba(255,255,255,.8); /* чипы, кнопки стрелок, первая крошка; R-APP-2 */
  --overlay-glass-60: rgba(255,255,255,.6); /* вторая крошка, disabled стрелка; R-APP-2 */
  --overlay-glass-30: rgba(255,255,255,.3); /* капсула стрелок; R-APP-2 */
  --overlay-glass: var(--overlay-glass-90);  /* alias базового стекла */
  --overlay-icon-btn: rgba(12,18,28,.38);    /* единственный тёмный слой: круги на фото; R-SURF-11 */
  --overlay-tap: transparent;                /* slick, .ui.button; R-MOTION-29 */
  --overlay-hero: none;                      /* сцена без вуали; R-PRINCIPLES-19 */

  /* кнопки — только MUI-варианты; R-APP-29 */
  --btn-primary-bg: var(--brand);            /* contained; R-FC-2 */
  --btn-primary-bg-hover: var(--brand-hover);
  --btn-primary-fg: var(--on-brand);
  --btn-primary-shadow: var(--shadow-btn-contained); /* R-SURF-12 */
  --btn-disabled-bg: var(--bg-disabled);     /* «ПРОДАНО»; R-APP-29 */
  --btn-disabled-fg: var(--fg-disabled);
  --btn-outlined-border: var(--line-1);      /* R-FC-4 */
  --btn-outlined-active-border: var(--brand);
  --btn-outlined-active-bg: var(--brand-tint-4); /* R-SURF-12 */
  --btn-text-fg: var(--fg-3);                /* серые подчёркнутые действия; R-FC-5 */
  --btn-icon-bg: var(--bg-2);                /* 40×40 r10 (юнит: --bg-1, 44); R-FC-6 */
  --btn-icon-fg: var(--brand);
  --btn-float-bg: var(--overlay-glass-80);   /* стрелки 44×44 r20%; R-FC-7 */
  --btn-float-bg-hover: #FFFFFF;             /* + scale 1.05; R-MOTION-10 */
  --btn-float-disabled-bg: var(--overlay-glass-60);
  --btn-float-disabled-fg: #999999;          /* R-MOTION-10 */
  --btn-float-shadow: var(--shadow-float);
  --card-action-bg: var(--overlay-icon-btn); /* сердце/глаз 30 r50%; R-FC-8 */
  --card-action-fg: #FFFFFF;
  --card-action-active-bg: #FFFFFF;          /* в избранном: белый круг, иконка бренд; R-FC-8 */
  --card-action-active-fg: var(--brand);
  --segment-active-bg: var(--brand-90);      /* R-FC-16 */
  --segment-active-fg: var(--on-brand);
  --segment-idle-bg: var(--overlay-glass-90);
  --segment-idle-fg: var(--brand);
  --tabbar-bg: var(--overlay-glass-90);      /* R-RESP-4 */
  --tabbar-active-bg: var(--brand-90);
  --tabbar-active-fg: var(--on-brand);
  --tabbar-fg: var(--brand);
  --crumb-link: var(--brand);                /* 16/700 + шеврон; R-APP-25 */
  --crumb-current: var(--fg-3);
  --crumb-separator: var(--fg-muted-60);
  --chip-bg: var(--overlay-glass-80);        /* крошка сцены; R-APP-32 */
  --chip-bg-secondary: var(--overlay-glass-60);
  --chip-fg: var(--brand);
  --pin-bg: #FFFFFF;                         /* круг пина: белый, кольцо 2px бренд, цифра бренд; R-APP-31 */
  --pin-ring: var(--brand);
  --pin-fg: var(--brand);
  --btn-radius: var(--radius-xl);            /* 10; R-APP-3 */
  --btn-shadow: var(--shadow-btn-contained);
  --btn-height: var(--size-control-cta-lg);  /* 48 CTA юнита; R-FC-1 */
  --btn-height-load-more: var(--size-control-cta); /* 45 */
  --btn-height-small: var(--size-control-sm-btn);  /* 37 */

  /* поля — Semantic-стиль; R-FC-10, R-FC-12 */
  --field-bg: #FFFFFF;
  --field-border: var(--line-1);
  --field-border-hover: var(--line-hover);
  --field-border-focus: var(--brand);        /* [решение] перекрывает Semantic #96C8DA; R-FC-10 */
  --field-label: var(--brand);               /* 12.25 внутри селекта; R-APP-6 */
  --field-legend: var(--fg-muted-60);        /* 14/20 в mobile-листе; R-APP-35 */
  --field-placeholder: hsla(0,0%,75%,.87);   /* Semantic; forms --field-placeholder */
  --field-option-fg: var(--fg-1);            /* 14/24 rgba(0,0,0,.87); R-FC-21 */
  --field-caret-opacity: .8;                 /* ArrowDropDownIcon; forms --select-caret */
  --field-radius: var(--radius-sm);          /* 4; R-APP-3 */
  --field-height: var(--size-control);       /* 44 (число 34); R-FC-10 */
  --menu-bg: #FFFFFF;                        /* список селекта; R-FC-13 */
  --menu-border: var(--line-1);
  --menu-shadow: var(--shadow-popover);
  --slider-track: var(--brand);              /* R-FC-14 */
  --slider-thumb-bg: #FFFFFF;
  --slider-thumb-border: var(--brand);
  --slider-thumb-shadow: var(--shadow-thumb);
  --slider-zoom-thumb-bg: var(--brand);      /* thumb 20 залит брендом; R-FC-14 */
  --switch-track-off: var(--bg-switch-off);  /* R-FC-15 */
  --switch-track-on: var(--brand);
  --switch-thumb: #FFFFFF;
  --stepper-active-bg: var(--brand);         /* R-FC-18 */
  --stepper-active-fg: var(--on-brand);
  --stepper-idle-bg: var(--bg-stepper-cell);
  --legend-swatch-radius: var(--radius-sm);  /* 20×20 r4; R-COLOR-6 */

  /* иконки; R-IMG-2, R-APP-5 */
  --icon-fg: var(--brand);                   /* на белом — бренд */
  --icon-fg-on-image: #FFFFFF;
  --icon-fg-muted: var(--fg-3);              /* вторичные действия */
  --icon-fallback-stroke: #253644;           /* инлайн svg, перекрывается брендом; components-app --color-icon-stroke-fixed */
  --icon-zoom: #204B59;                      /* иконки −/+ зума; components-app --color-icon-zoom */

  /* прочее */
  --focus-ring: var(--brand);                /* [решение] вместо Semantic #96C8DA/#85B7D9, gallery #337ab7; R-FC-10, R-COLOR-21 */
  --focus-ring-offset: 0px;
  --opacity-disabled: .45;                   /* Semantic; R-FC-23 */
  --scrollbar-thumb: rgba(0,0,0,.25);        /* 10px r5; R-MOTION-31 */
  --scrollbar-thumb-hover: hsla(202,5%,52%,.8);
  --cursor-dot: #FFFFFF;                     /* 10×10 r10; R-MOTION-8 */
  --gallery-dot-active: var(--brand);        /* буллеты галереи; R-IMG-21 */
  --gallery-thumb-active-border: var(--brand);
  --radius-control: var(--radius-xl);        /* R-SURF-3 */
  --radius-media: var(--radius-xl);          /* карточки/галерея 8–10; R-PRINCIPLES-19 */
  --font-family-display: var(--font-family-app); /* R-TYPO-1 */
  --font-family-body: var(--font-family-app);
  --root-font-size: var(--root-font-size-app);
  --motion-duration-hover: var(--motion-duration-button); /* .25s MUI; R-COLOR-18 */
  --motion-duration-card: var(--motion-duration-base);    /* all .2s карточки; R-APP-14 */
  --motion-duration-transform: var(--motion-duration-panel); /* .5s капсула/лист; R-APP-36 */
  --motion-ease-hover: var(--motion-ease-app);            /* R-MOTION-2 */
  --shadow-card-hover: 0 0 6px rgb(from var(--brand) r g b / .5); /* [решение, конфликт 1] единственная бренд-тень; R-MOTION-3 */
  --hover-guard: '@media (hover:hover) and (pointer:fine)'; /* справочно; R-RESP-19 */

  /* палитра пререндеренных ассетов — референс, язык не перекрашивает; R-COLOR-24, R-IMG-18/19 */
  --plan-wall: #182E46;            /* стены планов CMG (#192E44); icon --plan-wall */
  --plan-floor: #F3F0EE;           /* пол в карточке; icon --plan-floor */
  --plan-floor-level: #ECF0F2;     /* пол плана этажа */
  --plan-fill-1: #93B7C9;          /* заливки квартир CMG; icon --plan-fill-cool */
  --plan-fill-2: #92A5B2;
  --plan-fill-3: #B9C6CF;
  --plan-line-brand: #0237A9;      /* RYB blueprint */
  --plan-fill-brand-light: #B5C6E4; /* RYB план этажа (#688CC8) */

  /* роли текста — диапазон 10–26px, одна семья (typography §1.4; R-TYPO-13, R-APP-37) */
  --text-display: 700 26px/32px var(--font-family-display);         /* = h1: title юнита; R-TYPO-13 */
  --text-h1: 700 26px/32px var(--font-family-display);              /* «<Тип> • <мера>»; R-IA-35 */
  --text-h2: 700 20px/28px var(--font-family-display);              /* section (CMG-подзаголовок 600); R-TYPO-13 */
  --text-h3: 600 20px/28px var(--font-family-display);              /* subtitle «этаж | номер» (600–700); R-APP-28 */
  --text-lead: 400 18px/27px var(--font-family-body);               /* счётчик/заголовок листа (число 700); R-TYPO-13 */
  --text-body: 400 16px/24px var(--font-family-body);               /* лейбл таблицы юнита; R-TYPO-13 */
  --text-body-sm: 400 14px/18px var(--font-family-body);            /* вторичные действия underline; R-FC-5 */
  --text-caption: 400 12px/18px var(--font-family-body);            /* цены, бейджи, чипы; R-APP-13 */
  --text-caption-meta: 400 12px/14px var(--font-family-body);       /* «4 этаж», «37,90 м²»; R-TYPO-13 */
  --text-label: 400 12.25px/12.25px var(--font-family-body);        /* метки селектов, легенда; R-TYPO-13 */
  --text-label-form: 400 14px/20.125px var(--font-family-body);     /* legend mobile-листа; typography --type-label-form C */
  --text-button: 500 14px/24.5px var(--font-family-body);           /* MUI; uppercase у primary; R-TYPO-11 */
  --text-button-case: uppercase;                                     /* primary; secondary — sentence */
  --text-button-lg: 600 16px/24px var(--font-family-body);          /* CTA юнита uppercase (600–700); R-TYPO-11 */
  --text-button-sm: 500 12.25px/21.4375px var(--font-family-body);  /* «больше фильтров»; typography --type-button-sm C */
  --text-control: 400 14px/21px var(--font-family-body);            /* сегменты, крошки сцены (700 активный); R-APP-16 */
  --text-badge: 400 12px/18px var(--font-family-body);              /* белый на заливке, h22, p 2 5, r3; R-TYPO-15 */
  --text-stat: 700 18px/27px var(--font-family-body);               /* число в счётчике; typography --type-stat C */
  --text-kpi: 700 17px/24px var(--font-family-body);                /* значение таблицы, right; R-TYPO-16 */
  --text-kpi-label: 400 16px/24px var(--font-family-body);          /* лейбл таблицы; R-APP-28 */
  --text-card-title: 700 14px/normal var(--font-family-body);       /* RYB «house 1 | section 1» 12/18 700; components-landing --card-title C */
  --text-card-meta: 400 12px/14px var(--font-family-body);          /* = --text-caption-meta; R-TYPO-13 */
  --text-price: 400 12px/18px var(--font-family-body);              /* #757575; R-TYPO-18 */
  --text-crumb: 700 16px/20px var(--font-family-body);              /* R-APP-25 */
  --text-nav: 400 14px/21px var(--font-family-body);                /* view switcher (700 активный); typography --type-nav C */
  --text-tab-mobile: 400 11px/16.5px var(--font-family-body);       /* таб-бар (700 активный); R-APP-34 */
  --text-chess-unit: 700 10px/15px var(--font-family-body);         /* белый в ячейке 32; R-TYPO-13 */
  --text-chess-floor: 400 17px/17px var(--font-family-body);        /* ось этажей; R-TYPO-13 */
  --text-counter: 400 18px/27px var(--font-family-body);            /* «Showed 10 out of 1059», число 700; R-IA-40 */
  --text-sheet-title: 700 18px/27px var(--font-family-body);        /* шапка mobile-листа; R-RESP-9 */
  --text-dropdown-item: 400 14px/normal var(--font-family-body);    /* пункт селекта (selected 700); R-FC-13 */
  --text-range-input: 400 14px/normal var(--font-family-body);      /* «от/до» 78×34; R-APP-9 */
  --text-pin: 700 11px/normal var(--font-family-body);              /* цифра в пине; R-APP-31 */
  --text-pdf: 400 8px/10px var(--font-family-pdf);                  /* служебный текст PDF; R-TYPO-25 */
  --text-pdf-value: 700 10px/13px var(--font-family-pdf);           /* ls −.01em; R-TYPO-25 */
}

/* =============================================================================
   ПЕРЕКРАСКА ПОД КЛИЕНТА — бренд-цвет как параметр (R-COLOR-2/3/4, R-UXF-4)
   Достаточно переопределить --brand и 5 связанных параметров на [data-theme="app"]
   (и --brand на landing-brand). Производные (--brand-90, --brand-tint-4,
   --shadow-card-hover, --badge-id-bg, --polygon-static, --segment-active-bg,
   --tabbar-active-bg, --field-border-focus, --icon-fg, --stepper-active-bg,
   --slider-track, --switch-track-on, --crumb-link, --pin-ring) пересчитаются сами.
   Не производятся автоматически — задать руками: --fg-0 (правило L*<25),
   --brand-light, --polygon-hover (≠ бренд), --badge-type-bg, --bg-1.

   Piazza (CMG) — значения по умолчанию выше:
     [data-theme="app"] { --brand:#162C25; --fg-0:#162C25; --brand-light:#CBDEF3;
       --polygon-static:var(--brand); --polygon-hover:var(--brand);
       --badge-type-bg:#4286A0; --bg-1:#F5F5F5; --fg-3:#797979; }
     → --brand-90 = rgba(22,44,37,.9), --brand-tint-4 = rgba(22,44,37,.04)

   Rybalsky (RYB):
     [data-theme="app"] { --brand:#003DA7; --fg-0:#212121; --brand-light:#6D9EEB;
       --polygon-static:#0000FF; --polygon-hover:#F599AC;
       --badge-type-bg:var(--brand); --bg-1:#F4F6F9; --fg-3:#666666;
       --bg-stepper-cell:var(--brand-light); --fg-unit-title:var(--brand); }
     [data-theme="landing-brand"] { --brand:#0035AA; }  /* лендинг B держит свой оттенок */
     → --brand-90 = rgba(0,61,167,.9), --brand-tint-4 = rgba(0,61,167,.04)

   Статусы (--status-*) от бренда не зависят и не перекрашиваются (R-COLOR-6).
   Браузеры без relative color syntax (rgb(from …)): подставить литералы из
   комментариев «= rgba(…)».
   ============================================================================= */

/* Пример подключения: */
/* html[data-theme="app"] body { background: var(--bg-0); color: var(--fg-0); font: var(--text-body); } */
/* .btn-primary { background: var(--btn-primary-bg); color: var(--btn-primary-fg); border-radius: var(--btn-radius);
                  height: var(--btn-height); box-shadow: var(--btn-shadow); font: var(--text-button);
                  text-transform: var(--text-button-case, none); transition: background var(--motion-duration-hover) var(--motion-ease-hover); } */

@media (prefers-reduced-motion: reduce) {
  /* R-MOTION-34: loop-анимации выключаются, переходы ≤ 250ms */
  :root {
    --motion-duration-loop: 0ms;
    --motion-duration-loop-live: 0ms;
    --motion-duration-wave: 0ms;
    --motion-duration-appear: 0ms;
    --motion-duration-panel: 250ms;
    --motion-duration-filter: 250ms;
    --motion-duration-menu-brand: 250ms;
    --motion-duration-header-scrolled: 250ms;
  }
}
