/* ============================================================
   PLATFORMS.SU — DESIGN v2.2 — Deloitte/Accenture-inspired
   Single CSS file. No !important. No Bootstrap.
   ============================================================ */

:root {
  /* ---------- Neutral surfaces ---------- */
  --bg: #FFFFFF;
  --bg-soft: #F5F7FA;
  --bg-tint: #EEF3FF;
  --bg-strong: #0A1430;

  /* ---------- Ink ---------- */
  --ink: #0B1220;
  --ink-2: #3D4659;
  --ink-3: #6B7589;

  /* ---------- Hairlines ---------- */
  --hairline: #E1E6EE;
  --hairline-strong: #C8D0DE;
  --hairline-dark: rgba(255,255,255,0.12);

  /* ---------- Brand ---------- */
  --brand: #1E5BFF;
  --brand-hover: #0F3FBE;
  --brand-deep: #0A2A6B;

  /* ---------- Semantic ---------- */
  --success: #0E8A4A;
  --success-tint: #E3F4EA;
  --warn: #C9821A;
  --warn-tint: #FAEEDB;
  --danger: #C72D2D;
  --danger-tint: #F8E0E0;

  /* ---------- Category palette (12 unique hexes) ---------- */
  --cat-enterprise: #0A2A6B;      /* Управление предприятием */
  --cat-itinfra: #1E5BFF;         /* ИТ-инфраструктура */
  --cat-office: #0E7DB8;          /* Офис и коммуникации */
  --cat-data: #7B3FBF;            /* Данные и аналитика */
  --cat-docs: #3D5AFE;            /* Документооборот */
  --cat-sales: #D14B7A;           /* Продажи и маркетинг */
  --cat-gov: #0E8A4A;             /* Госуслуги / публичные сервисы */
  --cat-dev: #1B5E20;             /* Разработка ПО */
  --cat-commerce: #E36414;        /* Торговля и e-commerce */
  --cat-hr: #6A1B9A;              /* HR-системы */
  --cat-projects: #0288D1;        /* Проекты и задачи */
  --cat-security: #1A237E;        /* Информационная безопасность */

  /* ---------- Industry palette (12 unique hexes, different) ---------- */
  --ind-industry: #8B3A1B;        /* Промышленность */
  --ind-digital: #0F766E;         /* Цифровые услуги, e-com */
  --ind-education: #B45309;       /* Образование */
  --ind-health: #B91C5C;          /* Здравоохранение */
  --ind-fintech: #1E3A8A;         /* Финансы / финтех */
  --ind-hr: #7C2D92;              /* HR */
  --ind-secind: #312E81;          /* ИБ как индустрия */
  --ind-social: #0369A1;          /* Социальные сервисы */
  --ind-gov: #1F6B3A;             /* Госуправление */
  --ind-construction: #92400E;    /* Строительство */
  --ind-agro: #4D7C0F;            /* Сельское хозяйство */
  --ind-logistics: #475569;       /* Транспорт и логистика */

  /* ---------- Type ---------- */
  --font-display: 'Inter Tight', system-ui, -apple-system, sans-serif;
  --font-body: 'Inter', system-ui, -apple-system, sans-serif;

  --t-11: 11px;
  --t-13: 14px;   /* bumped from 13 — readability fix */
  --t-15: 15px;
  --t-17: 17px;
  --t-21: 21px;
  --t-28: 28px;
  --t-40: 40px;
  --t-56: 56px;
  --t-72: 72px;

  /* ---------- Layout ---------- */
  --container: 1440px;
  --gutter: 24px;
  --pad-x: 40px;

  /* ---------- Shadows ---------- */
  --shadow-card: 0 1px 2px rgba(11,18,32,.04), 0 4px 12px rgba(11,18,32,.04);
  --shadow-card-hover: 0 1px 2px rgba(11,18,32,.06), 0 8px 24px rgba(11,18,32,.08);

  --ease: cubic-bezier(.2, .6, .2, 1);

  /* ---------- Radius tokens (audit V2-PATCH) ---------- */
  --r-2xs: 2px;   /* технические полоски (rating-bar, readiness__bar) */
  --r-xs:  4px;   /* бейджи, чипы, kbd, кнопки-иконки */
  --r-sm:  6px;   /* поля ввода, мелкие кнопки */
  --r-md:  6px;   /* карточки, модалки, hero-logo, anchor-card */
  --r-pill:999px; /* kpi-chip — намеренная pill-форма */
  --t-12: 14px;   /* P2-19: алиас t-13, убирает fallback 12px */
}

/* ============================================================
   RESET / BASE
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; }
/* v3 reset: перебиваем любые Botble-дефолты шрифта */
body {
  font-family: var(--font-body);
  font-size: var(--t-15);
  font-weight: 400;
  line-height: 1.5;
  color: var(--ink);
  background: var(--bg);
  font-feature-settings: 'ss01', 'cv11';
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
/* сбрасываем жирность всех элементов на v3-сайте */
.v3-body p, .v3-body li, .v3-body span, .v3-body div,
.v3-body label, .v3-body td, .v3-body th { font-weight: inherit; }
.v3-body strong, .v3-body b { font-weight: 600; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--brand); }
button { font: inherit; cursor: pointer; background: none; border: 0; padding: 0; color: inherit; }
img, svg { display: block; max-width: 100%; }
table { border-collapse: collapse; width: 100%; }
input, select, textarea { font: inherit; color: inherit; }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4 { margin: 0; font-family: var(--font-display); font-weight: 700; letter-spacing: -0.01em; color: var(--ink); }

.num { font-variant-numeric: tabular-nums; }
.num--nowrap { white-space: nowrap; } /* #196: запрет переноса для ИНН-ячеек (v3) */

/* ============================================================
   CONTAINER & SECTION BANDS
   ============================================================ */
.container {
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding-inline: var(--pad-x);
}

.band { padding-block: 64px; }
.band--soft { background: var(--bg-soft); }
.band--tint { background: var(--bg-tint); }
.band--dark { background: var(--bg-strong); color: #fff; }
.band--dark h1, .band--dark h2, .band--dark h3, .band--dark h4 { color: #fff; }

/* ============================================================
   EYEBROW
   ============================================================ */
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--font-body);
  font-size: var(--t-11);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-2);
}
.eyebrow--blue { color: var(--brand-deep); }
.band--dark .eyebrow { color: #B6C1DC; }

.eyebrow--new {
  color: var(--brand-deep);
}
.eyebrow--new::before {
  content: "V2 · НОВОЕ";
  display: inline-block;
  background: var(--brand);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.06em;
  padding: 2px 6px;
  border-radius: 4px;
  margin-right: 4px;
}
.eyebrow--new.eyebrow--inline::before { content: "V2"; }

/* ============================================================
   HEADER
   ============================================================ */
.site-header {
  border-bottom: 1px solid var(--hairline);
  background: var(--bg);
  position: sticky; top: 0; z-index: 50;
}
.site-header__row {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 32px;
  padding-block: 8px;
}
.brand {
  display: flex;
  align-items: baseline;
  gap: 10px;
}
.brand__mark {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: var(--t-21);
  letter-spacing: -0.02em;
  color: var(--brand-deep);
}
.brand__mark .dot { color: var(--brand); }
.brand__sub {
  font-size: var(--t-11);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-3);
}

.nav-main {
  display: flex;
  gap: 28px;
  justify-content: center;
  position: relative;
}
/* generic nav-main a — overridden by .nav-main__link below */
/* [MR-I1] padding-block: 6px → 4px — исключаем скачок -4px по высоте при hover,
   совпадает с padding-block .nav-main__link:hover (строка ~5148). */
.nav-main a {
  font-size: var(--t-15);
  font-weight: 500;
  color: var(--ink);
  padding-block: 4px;
}
.nav-main a:hover, .nav-main a.is-active {
  color: var(--brand);
}

.header-right {
  display: flex;
  align-items: center;
  gap: 16px;
}
.header-search {
  display: flex;
  align-items: center;
  gap: 8px;
  border: 1px solid var(--hairline);
  padding: 8px 12px;
  min-width: 320px;
  background: var(--bg);
  border-radius: 4px;
}
.header-search input {
  border: 0; outline: 0; background: transparent;
  font-size: var(--t-13);
  width: 100%;
}
.header-search svg { color: var(--ink-3); }

.header-auth {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: var(--t-13);
}
.header-auth .divider { color: var(--hairline); }

/* ============================================================
   USER DROPDOWN MENU (v3-user-menu)
   ============================================================ */
.v3-user-menu {
  position: relative;
  /* [NEW-G1] bridge: padding-bottom не даёт меню "схлопнуться" при ховере на стыке */
  padding-bottom: 8px;
  margin-bottom: -8px;
}
.v3-user-menu__dropdown {
  position: absolute; right: 0; top: 100%;
  /* [NEW-G1] margin-top 0 — dropdown пристёгнут к toggle, без зазора (jitter-fix) */
  margin-top: 0;
  min-width: 220px; background: #fff;
  border: 1px solid var(--hairline, #E4E7EC);
  box-shadow: 0 6px 24px rgba(16,24,40,.12);
  /* [NEW-G1] padding-top убран — пункт сразу прижат к верху меню, без скачка */
  padding: 4px 0;
  z-index: 1000;
  border-radius: var(--r-xs, 4px);
}
.v3-user-menu__dropdown[hidden] { display: none; }
/* раскрытие по наведению — переопределяем [hidden] с !important для надёжности */
.v3-user-menu:hover .v3-user-menu__dropdown[hidden],
.v3-user-menu:focus-within .v3-user-menu__dropdown[hidden] { display: block !important; }
.v3-user-menu:hover .v3-user-menu__toggle { color: var(--brand, #1E5BFF); }
/* [NEW-G1] .v3-user-menu__head удалён из разметки — дубль имени */
/* [NEW-G2-02] Пункты user-menu: работают одинаково для <a> и <button> («Выйти» в form) */
.v3-user-menu__item,
.v3-user-menu__form .v3-user-menu__item {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: 8px 14px;
  font-size: var(--t-14);
  font-family: inherit;
  color: var(--ink);
  text-decoration: none;
  white-space: nowrap;
  text-align: left;
  background: transparent;
  border: 0;
  cursor: pointer;
  line-height: 1.4;
}
.v3-user-menu__item:hover,
.v3-user-menu__form .v3-user-menu__item:hover,
.v3-user-menu__item:focus-visible {
  background: rgba(30,91,255,.06);
  color: var(--brand, #1E5BFF);
  text-decoration: none;
  outline: none;
}
.v3-user-menu__form { margin: 0; padding: 0; }

/* ============================================================
   BREADCRUMBS
   ============================================================ */
.breadcrumbs {
  font-size: var(--t-13);
  color: var(--ink-2);
  /* bugs-0706 #4.8 (#394): унифицированный верхний отступ крошек */
  /* эталон .band--crumbs из /news/{slug} — 32px сверху */
  padding-block: 32px 0;
  display: flex; flex-wrap: wrap; align-items: center;
  gap: 6px;
}
/* bugs-0706 #1б (08.06): внутри .hero уже есть padding-top, крошки не должны добавлять еще 32px */
.hero .breadcrumbs { padding-block: 0 0; }
/* fix /projects: крошки внутри hero--blue – фон светло-голубой (#EEF3FF), текст тёмный по эталону /projects/all */
.hero--blue .breadcrumbs,
.hero--blue .breadcrumbs a,
.hero--blue .breadcrumbs .sep,
.hero--blue .breadcrumbs__current { color: rgba(20, 33, 71, .72); }
.hero--blue .breadcrumbs { padding-block: 18px 12px; }
.hero--blue .breadcrumbs a:hover { color: var(--brand); }
.breadcrumbs a { white-space: nowrap; display: inline-flex; align-items: center; gap: 4px; }
.breadcrumbs a:hover { color: var(--brand); }
.breadcrumbs .sep { color: var(--ink-3); }

/* ============================================================
   (Old buttons block removed — see unified "Buttons — 5 variants"
    section near end of file. Keeping only fields here.)
   ============================================================ */

/* ============================================================
   FIELDS
   ============================================================ */
.field { display: flex; flex-direction: column; gap: 6px; }
.field__label {
  font-size: var(--t-11);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-2);
}
.field input, .field select, .field textarea {
  border: 1px solid var(--hairline);
  background: var(--bg);
  padding: 10px 12px;
  font-size: var(--t-15);
  border-radius: 4px;
  outline: 0;
  transition: border-color .15s var(--ease);
}
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--brand-deep); }
.field textarea { resize: vertical; min-height: 96px; }

/* ============================================================
   CHIPS — colored, meaningful (status / category / industry / type)
   ============================================================ */
.chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: var(--t-11);
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 3px 8px;
  border-radius: 4px;
  border: 1px solid transparent;
  white-space: nowrap;
  background: var(--bg-soft);
  color: var(--ink-2);
  line-height: 1.4;
}
.chip--lg { font-size: var(--t-13); padding: 6px 12px; }

/* Status chips (filled) */
.chip--success { background: var(--success-tint); color: var(--success); }
.chip--warn { background: var(--warn-tint); color: #8E5A0F; }
.chip--danger { background: var(--danger-tint); color: var(--danger); }
.chip--registry { background: var(--brand-deep); color: #fff; }
.chip--fstek { background: #E8EAF6; color: var(--cat-security); }
.chip--ai { background: #EDE7F6; color: var(--cat-hr); }
.chip--saas { background: #E3F2FD; color: var(--cat-projects); }
.chip--on-prem { background: #FFF3E0; color: var(--cat-commerce); }
.chip--neutral { background: var(--bg-soft); color: var(--ink-2); border: 1px solid var(--hairline); }
/* #168: бейдж «Редакционная» – материал подготовлен редакцией маркетплейса */
.chip--editorial { background: #EEF2FF; color: #3730A3; border: 1px solid #C7D2FE; font-weight: 600; }

/* issue #109: chip-link — чип-обёртка-ссылка без подчёркивания, с hover-эффектом */
.chip-link { text-decoration: none; display: inline-block; line-height: 0; }
/* fix #325: убран transform:translateY (прыжок), добавлен контраст для .chip--registry */
.chip-link:hover .chip { opacity: .85; }
.chip-link:hover .chip--registry { background: var(--brand-deep); color: #fff; opacity: 1; filter: brightness(1.12); }
.chip-link .chip { transition: opacity .15s ease, filter .15s ease; }
a.chip.chip--registry:hover { background: var(--brand-deep); color: #fff; filter: brightness(1.12); opacity: 1; }

/* issue #439: ряд чипов в сайдбаре продукта и кликабельная «Сфера применения». */
.chip-row { display: flex; flex-wrap: wrap; gap: 6px; }
a.chip { text-decoration: none; transition: color .15s ease, background .15s ease, border-color .15s ease; }
a.chip:hover { text-decoration: underline; text-underline-offset: 2px; color: var(--brand); }
.chip--industry { background: var(--bg-soft); color: var(--ink-2); border: 1px solid var(--hairline); }
a.chip--industry:hover { color: var(--brand); border-color: var(--brand); background: #fff; text-decoration: none; }

/* Category chips — one per category */
.chip--cat-enterprise { background: rgba(10,42,107,.08); color: var(--cat-enterprise); }
.chip--cat-itinfra { background: rgba(30,91,255,.08); color: var(--cat-itinfra); }
.chip--cat-office { background: rgba(14,125,184,.10); color: var(--cat-office); }
.chip--cat-data { background: rgba(123,63,191,.10); color: var(--cat-data); }
.chip--cat-docs { background: rgba(61,90,254,.10); color: var(--cat-docs); }
.chip--cat-sales { background: rgba(209,75,122,.10); color: var(--cat-sales); }
.chip--cat-gov { background: rgba(14,138,74,.10); color: var(--cat-gov); }
.chip--cat-dev { background: rgba(27,94,32,.10); color: var(--cat-dev); }
.chip--cat-commerce { background: rgba(227,100,20,.10); color: var(--cat-commerce); }
.chip--cat-hr { background: rgba(106,27,154,.10); color: var(--cat-hr); }
.chip--cat-projects { background: rgba(2,136,209,.10); color: var(--cat-projects); }
.chip--cat-security { background: rgba(26,35,126,.10); color: var(--cat-security); }

/* Industry chips */
.chip--ind-industry { background: rgba(139,58,27,.10); color: var(--ind-industry); }
.chip--ind-digital { background: rgba(15,118,110,.10); color: var(--ind-digital); }
.chip--ind-education { background: rgba(180,83,9,.10); color: var(--ind-education); }
.chip--ind-health { background: rgba(185,28,92,.10); color: var(--ind-health); }
.chip--ind-fintech { background: rgba(30,58,138,.10); color: var(--ind-fintech); }
.chip--ind-hr { background: rgba(124,45,146,.10); color: var(--ind-hr); }
.chip--ind-secind { background: rgba(49,46,129,.10); color: var(--ind-secind); }
.chip--ind-social { background: rgba(3,105,161,.10); color: var(--ind-social); }
.chip--ind-gov { background: rgba(31,107,58,.10); color: var(--ind-gov); }
.chip--ind-construction { background: rgba(146,64,14,.10); color: var(--ind-construction); }
.chip--ind-agro { background: rgba(77,124,15,.10); color: var(--ind-agro); }
.chip--ind-logistics { background: rgba(71,85,105,.12); color: var(--ind-logistics); }

/* Material type chips */
.chip--type-release { background: rgba(30,91,255,.10); color: var(--brand); }
.chip--type-case { background: rgba(14,138,74,.10); color: var(--success); }
.chip--type-analytics { background: rgba(26,35,126,.10); color: var(--cat-security); }
.chip--type-article { background: rgba(123,63,191,.10); color: var(--cat-data); }
.chip--type-pr { background: rgba(209,75,122,.10); color: var(--cat-sales); }

/* legacy badge alias for back-compat (used by index v2.1) */
.badge { /* deprecated — replaced by chip but keep neutral fallback */
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: var(--t-11);
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 3px 8px;
  border-radius: 4px;
  background: var(--bg-soft);
  color: var(--ink-2);
  border: 1px solid var(--hairline);
}

/* ============================================================
   SECTION HEAD
   ============================================================ */
.section {
  padding-block: 64px;
}
.section--tight { padding-block: 48px; }
.section__head {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 24px;
  align-items: end;
  margin-bottom: 32px;
}
.section__title {
  font-size: 24px;
  line-height: 1.2;
  letter-spacing: -0.02em;
  color: var(--ink);
  margin-top: 8px;
}
.band--dark .section__title { color: #fff; }
.section__lead {
  font-size: var(--t-17);
  color: var(--ink-2);
  max-width: 720px;
  margin-top: 12px;
}
.band--dark .section__lead { color: #C5CCDF; }

/* ============================================================
   HERO (home) — left text + right dark anchor card
   ============================================================ */
.hero {
  padding-block: 72px 56px;
}
.hero--blue { background: var(--bg-tint); }
/* #434: элитарный hero для /awards – чёрный фон с золотыми акцентами */
.hero--awards {
  background:
    radial-gradient(120% 80% at 80% 0%, rgba(212, 175, 55, .14) 0%, transparent 60%),
    radial-gradient(80% 60% at 0% 100%, rgba(212, 175, 55, .08) 0%, transparent 70%),
    linear-gradient(180deg, #0A0E18 0%, #0E1525 60%, #0A0E18 100%);
  color: #fff;
  padding-block: 96px 80px;
  border-bottom: 1px solid rgba(212, 175, 55, .22);
  position: relative;
}
.hero--awards::after {
  content: "";
  position: absolute; left: 0; right: 0; bottom: -1px; height: 1px;
  background: linear-gradient(90deg, transparent 0%, #D4AF37 35%, #F4D77A 50%, #D4AF37 65%, transparent 100%);
  opacity: .55;
}
.hero--awards .breadcrumbs,
.hero--awards .breadcrumbs a,
.hero--awards .breadcrumbs .sep,
.hero--awards .breadcrumbs__current { color: rgba(255,255,255,.78); letter-spacing: .04em; }
.hero--awards .breadcrumbs a:hover { color: #F4D77A; }
.hero--awards .hero__title {
  color: #fff;
  font-family: 'Playfair Display', 'PT Serif', Georgia, serif;
  font-weight: 700;
  letter-spacing: -0.01em;
  line-height: 1.08;
}
.hero--awards .hero__lead {
  color: rgba(255,255,255,.78);
  font-size: var(--t-18);
  max-width: 64ch;
  margin-top: 18px;
}
.hero--awards .hero__industry-logo {
  background: rgba(212, 175, 55, .12);
  border: 1px solid rgba(212, 175, 55, .45);
  color: #F4D77A;
}
.hero--awards .hero__industry-logo svg { stroke: #F4D77A; }
/* Период-бейдж на тёмном фоне */
.hero--awards .awards-period-badge {
  background: rgba(212, 175, 55, .12);
  border: 1px solid rgba(212, 175, 55, .45);
  color: #F4D77A;
  margin-top: 24px;
  letter-spacing: .04em;
}
.hero--awards .awards-period-badge--voting {
  background: rgba(212, 175, 55, .22);
  color: #FFE7A1;
}
/* Премиальные карточки на /awards */
body.page-awards .section__title,
body.page-awards .awards-card__title {
  font-family: 'Playfair Display', 'PT Serif', Georgia, serif;
  font-weight: 700;
}
body.page-awards .awards-card {
  border: 1px solid var(--hairline);
  background: #fff;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
body.page-awards .awards-card:hover {
  border-color: #D4AF37;
  box-shadow: 0 8px 32px rgba(212, 175, 55, .14);
  transform: translateY(-2px);
}
body.page-awards .awards-card__icon {
  background: linear-gradient(135deg, #FFF7DA 0%, #F4D77A 100%);
  color: #6B5318;
  border: 1px solid rgba(212, 175, 55, .35);
}
body.page-awards .awards-card__icon i { color: #6B5318; }
/* CTA-кнопка внутри карточки – не синий примитив, а «гостевой» с золотым ховером */
body.page-awards .awards-card .btn--primary {
  background: #0A0E18;
  color: #fff;
  border: 1px solid #0A0E18;
}
body.page-awards .awards-card .btn--primary:hover {
  background: #D4AF37;
  border-color: #D4AF37;
  color: #0A0E18;
}
body.page-awards .awards-cta-row .btn--primary {
  background: linear-gradient(135deg, #D4AF37 0%, #B88A1E 100%);
  border: 1px solid #B88A1E;
  color: #0A0E18;
  font-weight: 700;
}
body.page-awards .awards-cta-row .btn--primary:hover {
  background: linear-gradient(135deg, #F4D77A 0%, #D4AF37 100%);
}
body.page-awards .awards-empty-state {
  background: #FAF7EE;
  border: 1px dashed rgba(212, 175, 55, .45);
}
body.page-awards .awards-empty-state i { color: #B88A1E; }
body.page-awards .awards-about-item__icon {
  background: linear-gradient(135deg, #FFF7DA 0%, #F4D77A 100%);
  color: #6B5318;
}
body.page-awards .band--soft { background: #FAF7EE; }
.hero__grid {
  display: grid;
  grid-template-columns: 7fr 5fr;
  gap: 48px;
  align-items: stretch;
}
.hero__title {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: var(--t-40);
  line-height: 1.08;
  letter-spacing: -0.02em;
  color: var(--brand-deep);
  margin-top: 16px;
  max-width: 22ch;
}
.hero__lead {
  font-size: var(--t-21);
  line-height: 1.45;
  color: var(--ink);
  margin-top: 20px;
  max-width: 56ch;
}
.hero__legal-name { margin-top: 8px; font-size: var(--t-14); color: var(--ink-60); font-weight: 500; }
.hero__legal-name span { opacity: .7; }
.hero__cta {
  display: flex;
  gap: 12px;
  margin-top: 32px;
}

/* Dark anchor card on the right */
.hero-anchor {
  background: var(--bg-strong);
  color: #fff;
  border-radius: var(--r-md); /* P2-14: было 12px */
  padding: 32px;
  display: grid;
  gap: 0;
  align-content: start;
}
.hero-anchor__eyebrow {
  font-size: var(--t-11);
  font-weight: 600;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: #B6C1DC;
  margin-bottom: 24px;
}
.hero-anchor__metric {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: baseline;
  gap: 16px;
  padding-block: 18px;
  border-top: 1px solid var(--hairline-dark);
}
.hero-anchor__metric:first-of-type { border-top: 0; padding-top: 0; }
.hero-anchor__metric:last-of-type { padding-bottom: 0; }
.hero-anchor__label {
  font-size: var(--t-13);
  color: #C5CCDF;
  letter-spacing: 0.02em;
}
.hero-anchor__value {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 44px;
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
  color: #fff;
  line-height: 1;
}
.hero-anchor__delta {
  display: block;
  font-size: var(--t-11);
  color: #8A95B3;
  letter-spacing: 0.04em;
  margin-top: 4px;
  text-transform: uppercase;
}

/* ============================================================
   KPI BLOCK
   ============================================================ */
.kpi {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  border-top: 1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
  margin-top: 48px;
  background: var(--bg);
}
.kpi--soft { background: var(--bg-soft); border-color: var(--hairline); }
.kpi--big .kpi__value { font-size: var(--t-72); }
.kpi__cell {
  padding: 28px 28px;
  border-right: 1px solid var(--hairline);
}
.kpi__cell:last-child { border-right: 0; }
.kpi__label {
  font-size: var(--t-11);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-2);
  margin-bottom: 14px;
}
.kpi__value {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 56px;
  letter-spacing: -0.025em;
  color: var(--brand-deep);
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.kpi__delta {
  margin-top: 10px;
  font-size: var(--t-13);
  color: var(--ink-2);
  font-variant-numeric: tabular-nums;
}

/* Dark KPI variant */
.kpi--dark {
  background: var(--bg-strong);
  border-color: var(--hairline-dark);
  color: #fff;
}
.kpi--dark .kpi__cell { border-right-color: var(--hairline-dark); }
.kpi--dark .kpi__label { color: #B6C1DC; }
.kpi--dark .kpi__value { color: #fff; }
.kpi--dark .kpi__delta { color: #8A95B3; }

/* ============================================================
   SEARCH BAR (home)
   ============================================================ */
.search-row {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr auto;
  gap: 0;
  border: 1px solid var(--ink);
  border-radius: 4px;
  overflow: hidden;
  background: var(--bg);
}
.search-row > * {
  border-right: 1px solid var(--hairline);
  padding: 14px 16px;
  background: var(--bg);
}
.search-row > *:last-child { border-right: 0; }
.search-row input,
.search-row select {
  border: 0; outline: 0; width: 100%;
  font-size: var(--t-15);
  background: transparent;
}
.search-row .btn--primary {
  border-radius: 0;
  height: auto;
  padding: 0 32px;
  border: 0;
}

/* ── News search form (category/tag pages) ── */
.news-search {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 24px;
}
.news-search input[type="search"] {
  flex: 1;
  border: 1px solid var(--hairline);
  border-radius: var(--r-sm);
  padding: 8px 12px;
  font-size: var(--t-15);
  background: var(--bg);
  color: var(--ink);
  outline: none;
}
.news-search input[type="search"]:focus {
  border-color: var(--ink-3);
}

/* ============================================================
   CATEGORY GRID (home) — 4×3 colored cards
   ============================================================ */
.cat-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
}
.cat-card {
  position: relative;
  background: var(--bg);
  border: 1px solid var(--hairline);
  border-radius: 6px;
  padding: 22px 22px 22px 26px;
  box-shadow: none;
  transition: border-color .15s var(--ease);
  display: grid;
  gap: 8px;
  align-content: start;
  overflow: hidden;
}
.cat-card:hover { color: var(--ink); }
.cat-card::before {
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background: var(--bar, var(--brand));
}
.cat-card__num {
  font-size: var(--t-11);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-3);
  font-variant-numeric: tabular-nums;
}
.cat-card__title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--t-21);
  line-height: 1.2;
  letter-spacing: -0.01em;
  color: var(--ink);
}
.cat-card__count {
  font-size: var(--t-13);
  font-variant-numeric: tabular-nums;
  color: var(--ink-2);
  font-weight: 600;
}
.cat-card__sub {
  font-size: var(--t-13);
  color: var(--ink-3);
  margin-top: 4px;
  line-height: 1.4;
}

/* ============================================================
   CATEGORY DETAIL PAGE (/market/industry/{slug})
   ============================================================ */
.cat-quick-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.cat-quick-card {
  display: block;
  padding: 32px;
  border: 1px solid var(--hairline);
  background: #fff;
  border-radius: var(--r-sm);
  transition: border-color .15s var(--ease);
  color: var(--ink);
}
.cat-quick-card:hover { border-color: var(--ink-3); color: var(--ink); }
.cat-quick-card__eyebrow {
  font-size: var(--t-11);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-3);
}
.cat-quick-card__title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--t-21);
  line-height: 1.2;
  letter-spacing: -0.01em;
  margin: 8px 0 12px;
  color: var(--ink);
}
.cat-quick-card__lead {
  color: var(--ink-2);
  font-size: var(--t-15);
  margin-bottom: 16px;
  line-height: 1.5;
}
.cat-related {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: center;
  padding: 20px 0;
}
.cat-related__label {
  font-size: var(--t-13);
  color: var(--ink-3);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  margin-right: 8px;
}
.eyebrow--brand { color: var(--brand); }

@media (max-width: 980px) {
  .cat-quick-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 720px) {
  .cat-quick-grid { grid-template-columns: 1fr; }
  .cat-quick-card { padding: 24px; }
}

/* ============================================================
   MARKET / INDUSTRY ROWS on home
   ============================================================ */
.market-rows {
  border-top: 1px solid var(--hairline);
}
.market-rows__row {
  display: grid;
  grid-template-columns: 240px 1fr 100px 120px;
  gap: 24px;
  padding: 16px 0 16px 16px;
  border-bottom: 1px solid var(--hairline);
  align-items: center;
  position: relative;
}
.market-rows__row::before {
  content: "";
  position: absolute;
  left: 0; top: 8px; bottom: 8px;
  width: 3px;
  background: var(--bar, var(--ind-industry));
}
.market-rows__row:hover { background: var(--bg-soft); }
.market-rows__name { font-size: var(--t-15); font-weight: 600; color: var(--ink); }
.market-rows__lead { font-size: var(--t-13); color: var(--ink-2); }
.market-rows__count { font-size: var(--t-13); color: var(--ink-2); font-variant-numeric: tabular-nums; text-align: right; }
.market-rows__action { font-size: var(--t-13); color: var(--brand); font-weight: 600; }

/* ============================================================
   CASE CARDS (home)
   ============================================================ */
.case-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.case-card {
  position: relative;
  background: var(--bg);
  border: 1px solid var(--hairline);
  border-radius: 6px;
  padding: 24px 24px 24px 28px;
  box-shadow: none;
  transition: border-color .15s var(--ease);
  display: grid;
  gap: 14px;
  align-content: start;
  overflow: hidden;
}
.case-card:hover { }
.case-card::before {
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 3px;
  background: var(--bar, var(--ind-gov));
}
.case-card__eyebrow {
  display: flex; gap: 8px; flex-wrap: wrap;
}
.case-card__title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--t-21);
  line-height: 1.2;
  letter-spacing: -0.01em;
}
.case-card__effect {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: var(--t-28);
  color: var(--brand-deep);
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
}
.case-card__effect-label {
  font-size: var(--t-11);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-3);
  font-weight: 600;
  margin-top: 2px;
}
.case-card__customer {
  font-size: var(--t-13);
  color: var(--ink-2);
  border-top: 1px solid var(--hairline);
  padding-top: 12px;
}

/* ============================================================
   DATA TABLES (chips inside, color indicator bar on left)
   ============================================================ */
.table {
  width: 100%;
  font-size: var(--t-13);
  border-top: 1px solid var(--ink);
}
.band--dark .table { border-top-color: rgba(255,255,255,.4); }
.table th, .table td {
  text-align: left;
  padding: 14px 14px;
  border-bottom: 1px solid var(--hairline);
  vertical-align: middle;
  font-variant-numeric: tabular-nums;
}
.band--dark .table th, .band--dark .table td { border-bottom-color: var(--hairline-dark); }
.table th {
  font-size: var(--t-11);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-2);
  font-weight: 600;
  background: transparent;
  border-bottom: 1px solid var(--ink);
}
.band--dark .table th { color: #B6C1DC; border-bottom-color: rgba(255,255,255,.4); }
.table tbody tr { transition: background-color .12s var(--ease); }
.table tbody tr:hover { background: var(--bg-soft); }
.band--dark .table tbody tr:hover { background: rgba(255,255,255,.04); }

/* zebra only for large tables */
.table--zebra tbody tr:nth-child(even) { background: rgba(245,247,250,.5); }
.table--zebra tbody tr:nth-child(even):hover { background: var(--bg-soft); }

.table .col-name { font-size: var(--t-15); font-weight: 600; color: var(--ink); }
.band--dark .table .col-name { color: #fff; }
.table .col-meta { color: var(--ink-2); }
.table td.num, .table th.num { text-align: right; }

/* Left indicator bar inside first cell of a row */
.table tr.row-bar td:first-child {
  border-left: 3px solid var(--bar, var(--brand));
  padding-left: 14px;
}

/* ============================================================
   PRODUCT ROWS (compact, with status chips)
   ============================================================ */
.product-row {
  display: grid;
  grid-template-columns: 56px 1fr 200px 160px 120px;
  gap: 24px;
  align-items: start;
  padding: 22px 0 22px 16px;
  border-bottom: 1px solid var(--hairline);
  position: relative;
  transition: background-color .12s var(--ease);
}
.product-row::before {
  content: "";
  position: absolute;
  left: 0; top: 18px; bottom: 18px;
  width: 3px;
  background: var(--bar, var(--brand));
}
.product-row:hover { background: var(--bg-soft); color: var(--ink); }
.product-row__logo {
  width: 56px; height: 56px;
  border: 1px solid var(--hairline);
  display: grid; place-items: center;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--t-21);
  color: var(--brand-deep);
  background: var(--bg);
  border-radius: 6px;
}
.product-row__title {
  font-size: var(--t-17);
  font-weight: 600;
  color: var(--ink);
  margin-bottom: 4px;
}
.product-row__desc {
  font-size: var(--t-13);
  color: var(--ink-2);
  max-width: 60ch;
}
.product-row__meta {
  font-size: var(--t-13);
  color: var(--ink-2);
}
.product-row__chips {
  display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px;
}

/* ============================================================
   TWO-COL listing
   ============================================================ */
.two-col {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 40px;
  align-items: start;
}
.filter-panel {
  border-top: 1px solid var(--ink);
  background: var(--bg-soft);
  padding: 4px 16px 16px;
  border-radius: 0 0 8px 8px;
}
.filter-group {
  border-bottom: 1px solid var(--hairline);
  padding-block: 16px;
}
.filter-group:last-child { border-bottom: 0; }
.filter-group__title {
  font-size: var(--t-11);
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink);
  margin-bottom: 10px;
  display: flex; justify-content: space-between; align-items: center;
}
.filter-option {
  display: flex; align-items: center; gap: 8px;
  font-size: var(--t-13);
  color: var(--ink-2);
  padding-block: 4px;
  cursor: pointer;
}
.filter-option input { accent-color: var(--brand); }

/* ============================================================
   MARKET MAP
   ============================================================ */
.market-map {
  display: grid;
  grid-template-columns: 1fr 280px;
  gap: 32px;
  margin-top: 24px;
  background: var(--bg);
  border: 1px solid var(--hairline);
  border-radius: 6px;
  padding: 24px;
}
.market-map svg { display: block; width: 100%; height: auto; }
.market-map__legend { font-size: var(--t-13); display: grid; gap: 12px; }
.market-map__legend h4 { font-size: var(--t-13); font-family: var(--font-body); font-weight: 600; }
.market-map__legend .dot {
  display: inline-block; width: 8px; height: 8px; margin-right: 8px; border-radius: 50%;
}

/* ============================================================
   FORM
   ============================================================ */
.buy-form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px 24px;
  margin-top: 24px;
  max-width: 720px;
}
.buy-form .field--full { grid-column: 1 / -1; }

/* ============================================================
   PRODUCT PAGE
   ============================================================ */
.product-hero {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 32px;
  padding-top: 24px;
  padding-bottom: 32px;
  align-items: start;
}
.product-hero__main {
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 24px;
  align-items: start;
}
.product-hero__logo {
  width: 96px; height: 96px;
  border: 1px solid var(--hairline);
  display: grid; place-items: center;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--t-40);
  color: var(--brand-deep);
  border-radius: 6px;
  background: var(--bg);
  overflow: hidden;
}
.product-hero__logo svg { display: block; width: 100%; height: 100%; }
.product-hero__logo--st { border-color: transparent; }
.product-hero__title {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: var(--t-40);
  line-height: 1.05;
  letter-spacing: -0.025em;
  max-width: 22ch;
  color: var(--brand-deep);
}
.product-hero__meta {
  font-size: var(--t-13);
  color: var(--ink-2);
  margin-top: 12px;
  display: flex; gap: 16px; flex-wrap: wrap;
}
.product-hero__chips {
  display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px;
}

.product-buy-card {
  background: var(--bg-soft);
  border-radius: 6px;
  padding: 24px;
  border: 1px solid var(--hairline);
  position: sticky;
  top: 84px;
  display: grid;
  gap: 14px;
}
.product-buy-card__price {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: var(--t-28);
  color: var(--brand-deep);
  letter-spacing: -0.01em;
}
.product-buy-card__note {
  font-size: var(--t-13);
  color: var(--ink-2);
}

.product-tabs {
  display: flex;
  gap: 0;
  border-bottom: 1px solid var(--hairline);
  overflow-x: auto;
}
.product-tabs a {
  padding: 14px 18px;
  font-size: var(--t-13);
  font-weight: 500;
  color: var(--ink-2);
  border-bottom: 2px solid transparent;
  white-space: nowrap;
}
.product-tabs a.is-active {
  color: var(--ink);
  border-bottom-color: var(--brand);
  font-weight: 600;
}
.product-tabs a:hover { color: var(--brand-deep); }
.product-tabs .v2-tag {
  display: inline-block;
  background: var(--brand);
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  padding: 1px 5px;
  border-radius: 3px;
  margin-left: 6px;
  vertical-align: middle;
  letter-spacing: 0.06em;
}

.product-layout {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 48px;
  padding-top: 32px;
}
.product-sidebar {
  background: var(--bg-soft);
  border-radius: 6px;
  padding: 24px;
  position: sticky; top: 84px;
}
.product-sidebar__row {
  display: flex; justify-content: space-between;
  padding-block: 8px;
  border-bottom: 1px solid var(--hairline);
  font-size: var(--t-13);
}
.product-sidebar__row:last-child { border-bottom: 0; }
.product-sidebar__row span:first-child { color: var(--ink-2); }
.product-sidebar__row span:last-child { font-weight: 600; color: var(--ink); }
.product-sidebar h4 {
  font-size: var(--t-13);
  font-weight: 700;
  margin-bottom: 12px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

/* Options matrix */
.opt-matrix {
  border-top: 1px solid var(--ink);
}
.opt-matrix__group {
  border-bottom: 1px solid var(--hairline);
}
.opt-matrix__head {
  display: grid;
  grid-template-columns: 1fr 80px;
  padding: 14px 16px;
  background: var(--bg-soft);
  font-size: var(--t-11);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--ink);
}
.opt-row {
  display: grid;
  grid-template-columns: 1fr 80px;
  padding: 10px 16px;
  border-top: 1px solid var(--hairline);
  font-size: var(--t-13);
  align-items: center;
}
.opt-row__name { color: var(--ink); }
.opt-row__mark {
  text-align: center;
  font-family: var(--font-display);
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.opt-row__mark.yes { color: var(--success); }
.opt-row__mark.no { color: var(--ink-3); }

/* FAQ */
.faq-item {
  border-bottom: 1px solid var(--hairline);
  padding-block: 16px;
}
.faq-item summary {
  cursor: pointer;
  list-style: none;
  display: flex; justify-content: space-between; align-items: center;
  font-size: var(--t-17);
  font-weight: 600;
  color: var(--ink);
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item p {
  margin: 12px 0 0;
  color: var(--ink-2);
  font-size: var(--t-15);
  max-width: 70ch;
}

/* Review */
.review {
  display: block;
  padding: 22px 0;
  border-bottom: 1px solid var(--hairline);
}
.review__author { font-size: var(--t-15); margin-top: 12px; }
.review__author strong { font-weight: 700; color: var(--ink); font-size: var(--t-15); }
.review__author span { color: var(--ink-2); }
.review__body { font-size: var(--t-15); color: var(--ink); line-height: 1.55; }
.review__rating {
  font-size: var(--t-15); color: var(--success);
  font-weight: 600; font-variant-numeric: tabular-nums;
}
.review__procons {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  margin: 12px 0;
  font-size: var(--t-15);
  line-height: 1.55;
}
@media (max-width: 720px) {
  .review__procons { grid-template-columns: 1fr; gap: 8px; }
}

/* ============================================================
   IMPORT SUBSTITUTION (analogs)
   ============================================================ */
.analog-row {
  display: grid;
  grid-template-columns: 280px 1fr;
  gap: 32px;
  padding: 24px 0;
  border-bottom: 1px solid var(--hairline);
}
.analog-foreign {
  display: flex;
  gap: 16px;
  align-items: start;
}
.analog-foreign__logo {
  width: 56px; height: 56px;
  border: 1px solid var(--hairline);
  display: grid; place-items: center;
  font-family: var(--font-display);
  font-weight: 700;
  color: var(--ink);
  font-size: var(--t-17);
  border-radius: 6px;
  background: var(--bg);
}
.analog-foreign__name {
  font-size: var(--t-17);
  font-weight: 700;
  color: var(--ink);
}
.analog-foreign__note {
  display: block;
  margin-top: 8px;
  font-size: var(--t-15);
  color: var(--ink-2);
  line-height: 1.5;
  max-width: 720px;
}

/* Migration program cards */
.migration-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
}
.migration-card {
  background: var(--bg);
  border: 1px solid var(--hairline);
  border-radius: 6px;
  padding: 24px;
  box-shadow: none;
}
.migration-card__head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--t-21);
  color: var(--ink);
}
.migration-card__arrow {
  display: inline-block;
  width: 24px;
  height: 1px;
  background: var(--ink-2);
  position: relative;
}
.migration-card__arrow::after {
  content: "";
  position: absolute;
  right: 0; top: -3px;
  border-left: 6px solid var(--ink-2);
  border-top: 3px solid transparent;
  border-bottom: 3px solid transparent;
}
.migration-card__stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin-top: 12px;
  padding-top: 16px;
  border-top: 1px solid var(--hairline);
}
.migration-card__stat .v {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: var(--t-28);
  color: var(--brand-deep);
  letter-spacing: -0.02em;
  font-variant-numeric: tabular-nums;
  line-height: 1;
}
.migration-card__stat .l {
  font-size: var(--t-11);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-3);
  font-weight: 600;
  margin-top: 6px;
  display: block;
}

/* ============================================================
   PROJECT / COMPANY / CUSTOMER cards
   ============================================================ */
.detail-grid {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 48px;
  margin-top: 24px;
}

/* ============================================================
   REGION — big share dial
   ============================================================ */
.region-dial {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 48px;
  align-items: center;
}
.region-dial__ring {
  width: 240px; height: 240px;
  border-radius: 50%;
  border: 1px solid var(--hairline);
  display: grid;
  place-items: center;
  background: var(--bg);
  text-align: center;
  margin-inline: auto;
  box-shadow: none;
}
.region-dial__value {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: var(--t-72);
  color: var(--brand-deep);
  font-variant-numeric: tabular-nums;
  letter-spacing: -0.025em;
  line-height: 1;
}
.region-dial__label {
  font-size: var(--t-11);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-3);
  font-weight: 600;
  margin-top: 8px;
}

/* ============================================================
   NEWS
   ============================================================ */
.news-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.news-item {
  background: var(--bg);
  border: 1px solid var(--hairline);
  border-radius: 6px;
  padding: 22px;
  display: grid;
  gap: 12px;
  align-content: start;
  box-shadow: none;
  transition: border-color .15s var(--ease);
}
.news-item:hover { }
.news-item__title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--t-17);
  line-height: 1.3;
  color: var(--ink);
}
/* fix: заголовки карточек НЕ синие (перебиваем body main a:not(...) => brand из platforms-v2.css, спец. 0,5,3), в т.ч. на hover */
body main .news-item__title a,
body main .news-card__title a,
body main .news-top__title a,
body main .news-item__title a:hover,
body main .news-card__title a:hover,
body main .news-top__title a:hover {
  color: var(--ink) !important;
}

/* [R-FIX-LINKS] Глобальный фикс синих ссылок-заголовков в карточках продуктов, проектов, компаний. */
body main .product-card-v2__title a,
body main .proj-card__title a,
body main .case-card__title a,
body main a.companies-list__name {
  color: var(--ink) !important;
}
body main .product-card-v2__title a:hover,
body main .proj-card__title a:hover,
body main .case-card__title a:hover,
body main a.companies-list__name:hover {
  color: var(--brand) !important;
}

/* [R-FIX-COMPARE] Кнопка «Сравнить» — иконка (компактнее). */
.btn.btn--icon-only {
  padding: 0 !important;
  width: 36px;
  min-width: 36px;
  height: 36px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  gap: 0;
  line-height: 1;
}
.btn.btn--icon-only.btn--sm { width: 32px; min-width: 32px; height: 32px; }
.btn.btn--icon-only svg {
  display: block;
  width: 16px !important;
  height: 16px !important;
  flex: 0 0 auto;
}
.compare-add-btn__icon { color: currentColor; }
.compare-add-btn--added { background: var(--brand) !important; color: #fff !important; border-color: var(--brand) !important; }
.news-item__meta {
  font-size: var(--t-11);
  color: var(--ink-3);
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border-top: 1px solid var(--hairline);
  padding-top: 12px;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
/* fix #162: сброс был на :first-child, но первый ребёнок в .news-item — chip, а не .news-item__meta.
   Правило было мёртвым, border-top рендерился на каждой карточке. Используем :first-of-type. */
.news-item .news-item__meta:first-of-type { border-top: 0; padding-top: 0; }

.news-top {
  background: var(--bg);
  border: 1px solid var(--hairline);
  border-radius: 6px;
  padding: 32px;
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 32px;
  box-shadow: none;
}
.news-top__lead { font-size: var(--t-21); line-height: 1.4; color: var(--ink); max-width: 60ch; }
.news-top__title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 24px;
  color: var(--ink);
  letter-spacing: -0.015em;
  margin-top: 8px;
  margin-bottom: 12px;
}
.news-top__side {
  font-size: var(--t-13);
  color: var(--ink-2);
  display: grid; gap: 14px;
  border-left: 1px solid var(--hairline);
  padding-left: 24px;
}
.news-top__side .l {
  display: block;
  font-size: var(--t-11);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-3);
  font-weight: 600;
  margin-bottom: 4px;
}

/* #V4: сетка новостей компании/заказчика */
.news-card { display: flex; flex-direction: column; border: 1px solid var(--hairline); border-radius: var(--r-sm); overflow: hidden; background: #fff; text-decoration: none; color: inherit; transition: border-color .15s ease, box-shadow .15s ease; }
.news-card:hover { border-color: var(--brand); box-shadow: 0 2px 12px rgba(0,0,0,.06); }
.news-card__cover { aspect-ratio: 16/9; overflow: hidden; background: var(--bg-tint); }
.news-card__cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.news-card__body { padding: 16px; display: flex; flex-direction: column; gap: 6px; }
.news-card__date { font-size: var(--t-12, 14px); color: var(--ink-3); }
.news-card__title { font-weight: 600; font-size: var(--t-15, 15px); line-height: 1.35; color: var(--ink); }
.news-card__lead { font-size: var(--t-13); color: var(--ink-2); line-height: 1.45; }
.news-pagination { margin-top: 24px; }

/* #168: badge «Редакционная» */
.news-badge { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; line-height: 1; letter-spacing: .01em; }
.news-badge--editorial { background: #0A1430; color: #fff; }
.news-badge--editorial::before { content: "\f303"; font-family: "Font Awesome 6 Free"; font-weight: 900; font-size: 10px; }
.news-card__badge { position: absolute; top: 12px; left: 12px; z-index: 2; }
.news-card { position: relative; }

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer {
  border-top: 1px solid var(--hairline);
  padding-block: 56px 32px;
  margin-top: 0;
  background: var(--bg-soft);
}
.footer-grid {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr 1fr;
  gap: 40px;
}
.footer-col h4 {
  font-size: var(--t-11);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink);
  margin-bottom: 16px;
}
.footer-col ul { display: grid; gap: 10px; }
.footer-col a {
  font-size: var(--t-13);
  color: var(--ink-2);
}
.footer-col a:hover { color: var(--brand); }
.footer-about {
  font-size: var(--t-13);
  color: var(--ink-2);
  max-width: 36ch;
  margin-top: 12px;
}
.footer-bottom {
  display: flex; justify-content: space-between;
  border-top: 1px solid var(--hairline);
  margin-top: 56px;
  padding-top: 24px;
  font-size: var(--t-11);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink-3);
}

/* ============================================================
   ROUTING / SCREEN SWITCH
   ============================================================ */
/* SPA-режим: скрываем .screen только если на странице есть .v3-spa или несколько .screen */
/* По умолчанию .screen виден — для реальных страниц (одна секция) */
.screen { display: block; }
.v3-spa .screen { display: none; }
.v3-spa .screen.is-active { display: block; }

/* ============================================================
   HOTKEY HINT
   ============================================================ */
.hotkey-bar {
  position: fixed; bottom: 12px; right: 12px;
  display: flex; gap: 4px;
  font-size: 9px;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--ink-3);
  background: rgba(255,255,255,0.92);
  backdrop-filter: blur(4px);
  border: 1px solid var(--hairline);
  padding: 4px 8px;
  z-index: 40;
  align-items: center;
  opacity: 0.7;
  transition: opacity .15s var(--ease);
  border-radius: 4px;
}
.hotkey-bar:hover { opacity: 1; }
.hotkey-bar kbd {
  font: 600 10px var(--font-body);
  border: 1px solid var(--hairline);
  padding: 1px 5px;
  border-radius: 2px;
  background: var(--bg-soft);
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 1100px) {
  :root { --pad-x: 24px; }
  .header-search { min-width: 200px; }
  .hero__grid { grid-template-columns: 1fr; }
  .hero-anchor { margin-top: 8px; }
  .product-layout { grid-template-columns: 1fr; }
  .product-sidebar { position: static; }
  .product-hero { grid-template-columns: 1fr; }
  .product-buy-card { position: static; }
  .detail-grid { grid-template-columns: 1fr; }
  .market-map { grid-template-columns: 1fr; }
  .two-col { grid-template-columns: 1fr; }
  .news-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .kpi { grid-template-columns: 1fr 1fr; }
  .kpi__cell:nth-child(2) { border-right: 0; }
  .kpi__cell:nth-child(-n+2) { border-bottom: 1px solid var(--hairline); }
  .cat-grid { grid-template-columns: repeat(2, 1fr); }
  .case-grid { grid-template-columns: 1fr; }
  .migration-grid { grid-template-columns: 1fr; }
  .region-dial { grid-template-columns: 1fr; gap: 24px; }
  .news-top { grid-template-columns: 1fr; }
  .news-top__side { border-left: 0; padding-left: 0; border-top: 1px solid var(--hairline); padding-top: 16px; }
}

@media (max-width: 720px) {
  :root { --pad-x: 16px; }
  /* [MR-I2c] Базовый layout .site-header__row — `auto 1fr auto` (3 колонки: лого / середина / auth).
     В диапазоне ≤1279 видимы 3 grid-item: .brand-logo (32px-иконка) + .nav-burger + .header-right.
     Переопределение на 2 колонки (1fr auto) бросало бургер на implicit-вторую строку — теперь убрано.
     Оставляем только сжатие gap и --pad-x на узких экранах. */
  .site-header__row { gap: 8px; }
  .header-auth { font-size: 12px; gap: 8px; }
  .brand__sub { display: none; }
  .hero { padding-block: 32px 28px; }
  .hero__title { font-size: 36px; max-width: 100%; }
  .hero__lead { font-size: var(--t-17); }
  .hero__cta { flex-direction: column; gap: 8px; }
  .hero__cta .btn { width: 100%; }
  .hero-anchor { padding: 22px; }
  .hero-anchor__value { font-size: 32px; }
  .kpi { margin-top: 24px; }
  .band, .section { padding-block: 40px; }
  .section__title { font-size: 22px; }
  .section__head { grid-template-columns: 1fr; }
  .kpi { grid-template-columns: 1fr 1fr; }
  .kpi__value { font-size: 32px; }
  .kpi--big .kpi__value { font-size: 40px; }
  .kpi__cell { padding: 18px 16px; }
  .kpi__cell:nth-child(2) { border-right: 0; }
  .kpi__cell:nth-child(-n+2) { border-bottom: 1px solid var(--hairline); }
  .cat-grid { grid-template-columns: 1fr; }
  .cat-card { padding: 18px 20px 18px 22px; }
  .search-row { grid-template-columns: 1fr; }
  .search-row > * { border-right: 0; border-bottom: 1px solid var(--hairline); }
  .search-row > *:last-child { border-bottom: 0; }
  .product-hero__main { grid-template-columns: 1fr; }
  .product-hero__title { font-size: 28px; }
  .product-hero__logo { width: 56px; height: 56px; font-size: 24px; }
  .product-tabs a { padding: 12px 12px; font-size: 12px; }
  .product-row { grid-template-columns: 40px 1fr; gap: 12px; padding: 16px 0 16px 12px; }
  .product-row__logo { width: 40px; height: 40px; font-size: var(--t-15); }
  .product-row__title { font-size: var(--t-15); }
  .product-row__desc { font-size: 12px; }
  .product-row > *:nth-child(n+3) { grid-column: 1 / -1; padding-left: 52px; font-size: 12px; }
  .market-rows__row { grid-template-columns: 1fr; gap: 6px; padding-left: 12px; }
  .market-rows__count { text-align: left; }
  .analog-row { grid-template-columns: 1fr; gap: 16px; padding: 20px 0; }
  .analog-foreign__logo { width: 40px; height: 40px; font-size: 14px; }
  .analog-foreign__name { font-size: var(--t-15); }
  .review { grid-template-columns: 1fr; }
  .news-grid { grid-template-columns: 1fr; gap: 16px; }
  .footer-grid { grid-template-columns: 1fr; gap: 24px; }
  .footer-bottom { flex-direction: column; gap: 8px; }
  .opt-matrix__head, .opt-row { grid-template-columns: 1fr 60px; font-size: 12px; }
  .table { font-size: 12px; }
  .table th, .table td { padding: 10px 6px; }
  .table .col-name { font-size: var(--t-13); }
  table.table th:nth-child(n+5), table.table td:nth-child(n+5) { display: none; }
  .buy-form { grid-template-columns: 1fr; }
  .product-sidebar { padding: 16px; }
  .filter-panel { display: none; }
  .market-map { padding: 12px; gap: 16px; }
  .migration-card__stats { grid-template-columns: 1fr 1fr; }
  .region-dial__ring { width: 180px; height: 180px; }
  .region-dial__value { font-size: 56px; }
  .hotkey-bar { display: none; }
}

/* ============================================================
   ======== v2.3 EXTENSIONS ========
   Mega-menu, modals, magic quadrant, sparklines,
   status dots, avatar-stack, analytics widgets, etc.
   ============================================================ */

/* ----- Token additions ----- */
:root {
  --status-active: #0E8A4A;
  --status-pilot: #C9821A;
  --status-paused: #6B7589;
  --status-sunset: #C72D2D;
  --status-released: #1E5BFF;
  --status-waiting: #0E7DB8;

  --bg-grid: linear-gradient(rgba(255,255,255,0.04) 1px, transparent 1px),
             linear-gradient(90deg, rgba(255,255,255,0.04) 1px, transparent 1px);
  --bg-grid-size: 32px 32px;
}

/* ----- HEADER LOGO ----- */
.brand-logo {
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  /* [MR-I2b²] критично: родитель .site-header__row это GRID (не flex) с колонками auto/1fr/auto.
     Grid-итем в колонке 'auto' всё равно сжимается при недостатке места — <img width=auto>
     тянется за шириной якоря. min-width: max-content блокирует сжатие ниже
     естественной ширины лого (~133px). flex-shrink тут не работает — это не flex. */
  min-width: max-content;
  flex-shrink: 0;
  /* #340: без анимации на hover */
}
.brand-logo:hover { transform: none !important; text-decoration: none; }
.brand-logo__img {
  /* [MR-I2] +15% от 28px → 32px. Фикс высоты, без скачка при загрузке. */
  height: 32px;
  min-height: 32px;
  max-height: 32px;
  width: auto;
  display: block;
  flex-shrink: 0;
  transition: none !important;
}
/* [MR-I2b²] Брейкпойнт иконки 880 → 1279, синхронно с брейкпойнтом бургера (см. ниже).
   На всех ширинах <1280 лого+меню+поиск+auth не помещается в шапку (лого
   жёсткий ~133px, меню·min-content ~486px, поиск мин. 320px, auth ~200px + gaps + pad).
   Поэтому в этом диапазоне выключаем меню+поиск и показываем бургер+иконку лого. */
.brand-logo__img--full { display: block; }
.brand-logo__img--icon { display: none; }
@media (max-width: 1279px) {
  .brand-logo__img--full { display: none; }
  .brand-logo__img--icon {
    display: block;
    height: 32px; min-height: 32px; max-height: 32px;
    width: 32px; min-width: 32px; max-width: 32px;
    object-fit: contain;
    border-radius: var(--r-xs, 4px);
  }
}

/* ----- MEGAMENU ----- */
/* nav-main__item / megamenu pill system — authoritative block */
.nav-main { gap: 24px; position: relative; align-items: center; }
.nav-main__item {
  position: relative;
  padding-block: 6px;
  /* [NEW-G2-04] расширенный bridge: padding-bottom + padding-inline для компенсации left:-16px на .megamenu */
  padding-bottom: 14px;
  padding-inline: 4px;
  margin-bottom: -8px;
  /* #117: предотвращаем смещение при раскрытии мегаменю */
  display: inline-flex;
  align-items: center;
}
.nav-main__link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: var(--t-15);
  font-weight: 500;
  color: var(--ink);
  /* #339: фиксируем padding-inline, чтобы hover-фон не вызывал сдвиг */
  padding-block: 4px;
  padding-inline: 8px;
  border-radius: 4px;
  cursor: pointer;
  border-bottom: 0;
  position: relative;
  /* #117: фиксируем высоту/вес шрифта, чтобы не было скачка при hover */
  line-height: 1.4;
  white-space: nowrap;
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: antialiased;
  transition: color 180ms ease, background 160ms ease;
}
.nav-main__link::after {
  /* [MR-I1] SVG-шеврон через mask-image — в стиле v3-user-menu__caret (полилиния stroke 2.5) */
  content: "";
  width: 10px;
  height: 10px;
  margin-left: 4px;
  background: var(--ink-3);
  -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") center / contain no-repeat;
          mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") center / contain no-repeat;
  display: inline-block;
  flex-shrink: 0;
  transition: background-color 180ms ease;
}
/* [MR-I2] Стрелка не крутится при hover — меняется только цвет. */
.nav-main__item:hover .nav-main__link::after {
  background: var(--brand);
}
/* #249: убрано анимированное подчёркивание (::before) — hover как у кнопки «Вход»: меняется только цвет, без подчёркивания и смещения */
.nav-main__item:hover .nav-main__link,
.nav-main__item.is-active .nav-main__link {
  color: var(--brand);
}
/* #339: серый фон на пункте меню на hover */
.nav-main__item:hover .nav-main__link {
  background: #f3f4f6;
  border-radius: 4px;
  padding-inline: 8px;
}
.megamenu {
  position: absolute;
  top: 100%;
  left: -16px;
  /* [NEW-G1] auto-width вместо фиксированных 780px — убирает пустое место от удалённой 3-й колонки */
  width: max-content;
  min-width: 460px;
  max-width: 780px;
  background: #fff;
  border: 1px solid var(--hairline);
  /* [NEW-G2-03] убрана синяя полоса сверху мегаменю */
  box-shadow: 0 16px 32px rgba(11,18,32,.10);
  /* bugs-0706 #2 (#390): убрали лишний отступ сверху мегаменю */
  padding: 6px 20px 18px;
  display: none;
  /* [NEW-G1] 2 равные колонки — третий 1fr (для promo) убран, т.к. promo больше нет в разметке */
  grid-template-columns: 220px 220px;
  gap: 20px;
  /* [MR-I2] z-index 60 → 120: выше sticky-табов продукта (z:50) и липких блоков (z:100). */
  z-index: 120;
  border-radius: var(--r-xs, 4px);
}
.nav-main__item:hover .megamenu,
.megamenu.is-open {
  display: grid;
}
.megamenu__col h5 {
  font-family: var(--font-body);
  font-size: var(--t-11);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-3);
  font-weight: 600;
  /* bugs-0706 #2.1 (#390): обнуляем браузерный margin-top у первого h5 */
  margin-top: 0;
  margin-bottom: 12px;
}
.megamenu__col ul { display: grid; gap: 10px; }
/* megamenu__col a — перенесено в блок v2.3 ниже */
.megamenu__count {
  font-size: var(--t-13);
  color: var(--ink-3);
  font-variant-numeric: tabular-nums;
}
/* megamenu__promo — вариант светлого фона (переопределёно в v2.3-блоке) */

/* small badge for V2 NEW inline in megamenu */
.tag-new {
  display: inline-block;
  background: var(--brand);
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 1px 5px;
  border-radius: 3px;
  vertical-align: middle;
  margin-left: 4px;
}

/* ----- USER MENU ----- */
.user-menu {
  position: relative;
}
.user-avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: var(--brand-deep);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: var(--t-13);
  letter-spacing: 0.04em;
  cursor: pointer;
}
.user-dropdown {
  position: absolute;
  top: 100%;
  right: 0;
  margin-top: 10px;
  background: #fff;
  border: 1px solid var(--hairline);
  border-top: 2px solid var(--brand-deep);
  box-shadow: 0 16px 32px rgba(11,18,32,.10);
  min-width: 260px;
  /* [MR-I2] z-index 60 → 120 — выше sticky-табов (z:50) и липких блоков (z:100). */
  z-index: 120;
  display: none;
  padding: 8px;
}
.user-menu.is-open .user-dropdown,
.user-menu:hover .user-dropdown { display: block; }
.user-dropdown__header {
  padding: 12px;
  border-bottom: 1px solid var(--hairline);
  display: grid;
  gap: 2px;
  margin-bottom: 8px;
}
.user-dropdown__header strong { font-size: var(--t-15); color: var(--ink); }
.user-dropdown__header span { font-size: var(--t-13); color: var(--ink-3); }
.user-dropdown ul { display: grid; }
.user-dropdown a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px 12px;
  font-size: var(--t-15);
  color: var(--ink);
  border-radius: 3px;
}
.user-dropdown a:hover { background: var(--bg-soft); color: var(--brand-deep); }
.user-dropdown a .badge-count {
  font-size: var(--t-11);
  background: var(--bg-soft);
  color: var(--ink-2);
  padding: 1px 6px;
  border-radius: 6px;
  font-variant-numeric: tabular-nums;
}
.user-dropdown__divider {
  height: 1px;
  background: var(--hairline);
  margin: 6px 0;
}

/* search typeahead */
.header-search { position: relative; }
.search-typeahead {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  margin-top: 6px;
  background: #fff;
  border: 1px solid var(--hairline);
  border-top: 2px solid var(--brand-deep);
  box-shadow: 0 16px 32px rgba(11,18,32,.10);
  padding: 16px;
  display: none;
  /* [MR-I2] z-index 60 → 120 — выше sticky-табов (z:50) и липких блоков (z:100). */
  z-index: 120;
}
.header-search.is-open .search-typeahead { display: block; }
.search-typeahead__col h5 {
  font-family: var(--font-body);
  font-size: var(--t-11);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-3);
  font-weight: 600;
  margin: 0 0 8px;
}
.search-typeahead__col + .search-typeahead__col { margin-top: 12px; }
.search-typeahead__col ul { display: grid; gap: 4px; }
.search-typeahead__col a {
  font-size: var(--t-15);
  color: var(--ink);
  padding: 4px 0;
  display: flex;
  justify-content: space-between;
}
.search-typeahead__col a span { color: var(--ink-3); font-size: var(--t-13); }
.search-typeahead__footer {
  text-align: right;
  border-top: 1px solid var(--hairline);
  padding-top: 10px;
  margin-top: 12px;
}

/* ----- STATUS DOTS / TREND ARROWS / SPARKLINES ----- */
.status-dot {
  width: 6px; height: 6px; border-radius: 50%;
  display: inline-block;
  vertical-align: middle;
  margin-right: 6px;
  background: var(--ink-3);
}
.status-dot--active { background: var(--status-active); }
.status-dot--pilot { background: var(--status-pilot); }
.status-dot--paused { background: var(--status-paused); }
.status-dot--sunset { background: var(--status-sunset); }
.status-dot--released { background: var(--status-released); }
.status-dot--waiting { background: var(--status-waiting); }

.trend {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  font-size: var(--t-11);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
.trend--up { color: var(--success); }
.trend--down { color: var(--danger); }
.trend--flat { color: var(--ink-3); }

.sparkline {
  display: inline-block;
  vertical-align: middle;
  width: 60px;
  height: 16px;
}
.sparkline path { fill: none; stroke-width: 1.5; }

/* small rating progress under stars */
.rating-bar {
  height: 2px;
  background: var(--hairline);
  border-radius: 1px;
  overflow: hidden;
  width: 60px;
  margin-top: 3px;
}
.rating-bar__fill {
  height: 100%;
  background: var(--brand);
}

/* pulse dot */
.pulse-dot {
  display: inline-block;
  width: 6px; height: 6px; border-radius: 50%;
  background: var(--success);
  position: relative;
  margin-right: 6px;
  vertical-align: middle;
}
.pulse-dot::after {
  content: "";
  position: absolute;
  inset: -3px;
  border-radius: 50%;
  background: var(--success);
  opacity: 0.4;
  animation: pulse 2s ease-out infinite;
}
@keyframes pulse {
  0% { transform: scale(0.6); opacity: 0.5; }
  100% { transform: scale(2.2); opacity: 0; }
}

/* avatar stack (logos in "Кейсы у") */
.avatar-stack {
  display: inline-flex;
  align-items: center;
}
.avatar-stack__item {
  width: 28px; height: 28px;
  border-radius: 50%;
  border: 2px solid #fff;
  margin-left: -8px;
  background: var(--bg-soft);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  font-weight: 700;
  color: var(--brand-deep);
  overflow: hidden;
  letter-spacing: -0.02em;
}
.avatar-stack__item:first-child { margin-left: 0; }
.avatar-stack__more {
  margin-left: 6px;
  font-size: var(--t-11);
  color: var(--ink-3);
  font-variant-numeric: tabular-nums;
}

/* reading-time badge */
.reading-time {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: var(--t-11);
  color: var(--ink-3);
  font-variant-numeric: tabular-nums;
}
.reading-time::before { content: "·"; }

.fresh-dot {
  width: 4px; height: 4px;
  border-radius: 50%;
  background: var(--danger);
  display: inline-block;
  margin-left: 6px;
  vertical-align: middle;
}

/* #126: "Подробнее →" всегда видна (раньше была на hover) */
.table tbody tr td.row-cta {
  text-align: right;
  font-size: var(--t-13);
  color: var(--brand);
  font-weight: 600;
  opacity: 1;
  transition: opacity .15s var(--ease);
  white-space: nowrap;
}
.table tbody tr:hover td.row-cta { opacity: 1; }
/* #126: названия в первой колонке таблицы — кликабельные */
.table tbody tr td:first-child a {
  color: var(--ink);
  text-decoration: none;
  font-weight: 600;
  transition: color .15s var(--ease);
}
.table tbody tr td:first-child a:hover {
  color: var(--brand);
  text-decoration: underline;
}

/* dark band w/ grid bg */
.band--dark.band--grid {
  background:
    var(--bg-grid),
    linear-gradient(135deg, #0A1430 0%, #0F1B40 100%);
  background-size: var(--bg-grid-size), 100% 100%;
}

/* big outline numbers in card corner */
.corner-num {
  position: absolute;
  top: 12px;
  right: 16px;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 56px;
  letter-spacing: -0.04em;
  color: transparent;
  -webkit-text-stroke: 1px rgba(11,18,32,0.10);
  line-height: 1;
  pointer-events: none;
}

/* corner accent triangle on case cards — removed for cleaner look */
.corner-accent { display: none; }

/* delta under big numbers */
.kpi-delta {
  font-size: var(--t-13);
  font-weight: 600;
  margin-top: 4px;
  font-variant-numeric: tabular-nums;
}
.kpi-delta--up { color: var(--success); }
.kpi-delta--down { color: var(--danger); }
.band--dark .kpi-delta--up { color: #6FD18E; }
.band--dark .kpi-delta--down { color: #F09090; }

/* ----- BANNER tabs for industry pages ----- */
.tabbar {
  display: flex;
  gap: 0;
  border-bottom: 1px solid var(--hairline);
  margin-bottom: 32px;
  overflow-x: auto;
}
.tabbar a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 14px 20px;
  font-size: var(--t-15);
  font-weight: 500;
  color: var(--ink-2);
  border-bottom: 2px solid transparent;
  white-space: nowrap;
}
.tabbar a:hover { color: var(--ink); }
.tabbar a.is-active {
  color: var(--brand-deep);
  border-bottom-color: var(--brand-deep);
  font-weight: 600;
}
.tabbar a .tabbar__count {
  font-size: var(--t-13);
  color: var(--ink-3);
  font-variant-numeric: tabular-nums;
}

/* ----- MAGIC QUADRANT ----- */
.mq-wrap {
  background:
    var(--bg-grid),
    linear-gradient(135deg, #0A1430 0%, #11214A 100%);
  background-size: var(--bg-grid-size), 100% 100%;
  color: #fff;
  padding: 40px;
  border-radius: 0;
}
.mq-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 32px;
  margin-bottom: 24px;
}
.mq-head h2 { color: #fff; }
.mq-modes {
  display: inline-flex;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 4px;
  overflow: hidden;
}
.mq-modes button {
  padding: 8px 14px;
  font-size: var(--t-13);
  font-weight: 500;
  color: rgba(255,255,255,.65);
  background: transparent;
  border-right: 1px solid rgba(255,255,255,.2);
  cursor: pointer;
}
.mq-modes button:last-child { border-right: 0; }
.mq-modes button.is-active {
  background: rgba(255,255,255,.10);
  color: #fff;
}
.mq-chart {
  position: relative;
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
  aspect-ratio: 4 / 3;
}
.mq-chart svg { width: 100%; height: 100%; display: block; }
.mq-corner {
  position: absolute;
  font-family: var(--font-body);
  font-size: var(--t-11);
  letter-spacing: 0.10em;
  text-transform: uppercase;
  font-weight: 700;
  color: rgba(255,255,255,.55);
}
.mq-corner--tl { top: 16px; left: 16px; }
.mq-corner--tr { top: 16px; right: 16px; }
.mq-corner--bl { bottom: 56px; left: 16px; }
.mq-corner--br { bottom: 56px; right: 16px; }
.mq-axis-x {
  position: absolute;
  bottom: 16px; left: 50%; transform: translateX(-50%);
  font-size: var(--t-11);
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: rgba(255,255,255,.65);
}
.mq-axis-y {
  position: absolute;
  top: 50%; left: 16px;
  transform-origin: left center;
  transform: rotate(-90deg) translateX(50%);
  font-size: var(--t-11);
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: rgba(255,255,255,.65);
  white-space: nowrap;
}
.mq-legend {
  margin-top: 28px;
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 32px;
  padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,.12);
}
.mq-legend__group { display: flex; gap: 20px; flex-wrap: wrap; font-size: var(--t-13); color: rgba(255,255,255,.85); }
.mq-legend__item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.mq-legend__dot {
  width: 10px; height: 10px; border-radius: 50%;
  display: inline-block;
}
.mq-legend__sizes { display: flex; align-items: center; gap: 14px; }
.mq-legend__sizes .ring {
  border: 1px solid rgba(255,255,255,.4);
  border-radius: 50%;
}
.mq-method {
  margin-top: 24px;
  font-size: var(--t-13);
  color: rgba(255,255,255,.65);
}
.mq-method a { color: #fff; border-bottom: 1px solid rgba(255,255,255,.3); }

/* mq label text on chart */
.mq-bubble-label {
  fill: #fff;
  font-family: var(--font-display);
  font-weight: 600;
  font-size: 11px;
  letter-spacing: 0;
  pointer-events: none;
}

/* ----- ANALYTICS WIDGETS ----- */
.kpi-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--hairline);
  border: 1px solid var(--hairline);
}
.hero__grid .kpi-cards {
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  background: transparent;
  border: 0;
}
.hero__grid .kpi-card {
  padding: 18px 20px;
  gap: 4px;
  border: 1px solid var(--hairline);
  border-radius: var(--r-sm);
}
.kpi-card {
  background: #fff;
  padding: 24px;
  display: grid;
  gap: 8px;
  align-content: start;
  position: relative;
}
.kpi-card .eyebrow { color: var(--ink-3); }
.kpi-card__value {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: var(--t-40);
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.hero__grid .kpi-card__value { font-size: var(--t-28); }
/* #Z1: компактные KPI на /analytics + 3 ряда (2 колонки) */
.kpi-cards--analytics { grid-template-columns: repeat(2, 1fr); gap: 12px; }
.kpi-cards--analytics .kpi-card { padding: 12px 16px; gap: 2px; }
.kpi-cards--analytics .kpi-card__value { font-size: var(--t-28); }
.kpi-card__row {
  display: flex;
  align-items: center;
  gap: 8px;
}
.kpi-card__sparkline { width: 60px; height: 16px; }
.kpi-card__sub {
  font-size: var(--t-13);
  color: var(--ink-2);
}

.widget-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}
.widget {
  background: #fff;
  border: 1px solid var(--hairline);
  padding: 20px;
  display: grid;
  gap: 10px;
  position: relative;
}
.widget__value {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: var(--t-40);
  line-height: 1;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}
.widget__row { display: flex; align-items: center; gap: 8px; }
.widget__note { font-size: var(--t-13); color: var(--ink-2); }

/* ----- COMPANY TABS / customer / product tabs reused ----- */
.subtabs {
  display: flex;
  border-bottom: 1px solid var(--hairline);
  gap: 0;
  margin-bottom: 32px;
  overflow-x: auto;
}
.subtabs a {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 18px;
  font-size: var(--t-15);
  font-weight: 500;
  color: var(--ink-2);
  border-bottom: 2px solid transparent;
  white-space: nowrap;
}
.subtabs a.is-active {
  color: var(--brand-deep, #0A2A6B);
  border-bottom-color: var(--brand-deep, #0A2A6B);
  font-weight: 600;
}
/* Legacy alias .subtabs__count — выравниваем с .num */
.subtabs a .subtabs__count,
.subtabs__tab .subtabs__count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 6px;
  font-size: var(--t-11, 11px);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--brand-deep, #0A2A6B);
  background: rgba(10, 42, 107, 0.08);
  border-radius: var(--r-sm);
  line-height: 1;
}

/* ----- COMPARE TABLE ----- */
.compare-table {
  border-top: 2px solid var(--ink);
  margin-top: 24px;
}
.compare-table th, .compare-table td {
  padding: 12px;
  border-bottom: 1px solid var(--hairline);
  text-align: left;
  font-size: var(--t-15);
  vertical-align: top;
}
.compare-table thead th {
  background: var(--bg-soft);
  position: sticky;
  top: 64px; /* P1-4: sticky под фикс-хедером (было 0) */
}
.compare-table th.compare-prod {
  width: 25%;
}
.compare-prod-card { display: grid; gap: 8px; }
.compare-prod-card .lg {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--t-17);
  color: var(--ink);
}
.compare-prod-card .meta { font-size: var(--t-13); color: var(--ink-2); }
.compare-group-row td {
  background: var(--bg-soft);
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--t-13);
  color: var(--ink-2);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.compare-yes { color: var(--success); font-weight: 700; }
.compare-no { color: var(--ink-3); }
/* #407: подсветка совпадений/различий в таблице сравнения */
.compare-table td.compare-same { background: rgba(120,120,120,.06); color: var(--ink-2); }
.compare-table td.compare-uniq { background: rgba(16,185,129,.10); position: relative; }
.compare-table td.compare-uniq::after { content: '✓'; color: var(--success); font-weight: 700; margin-left: 6px; }
.compare-table td.compare-uniq.num::after { margin-left: 4px; }

/* ----- MODALS ----- */
.modal-stage {
  position: relative;
  background: var(--bg-soft);
  border: 1px solid var(--hairline);
  padding: 0;
  min-height: 540px;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  overflow: hidden;
}
.modal-stage::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(11,20,48,.55);
  z-index: 1;
}
.modal-card {
  position: relative;
  z-index: 2;
  background: #fff;
  width: min(540px, 90%);
  margin-top: 48px;
  padding: 32px;
  border-radius: 4px;
  box-shadow: 0 24px 64px rgba(11,18,32,.30);
  display: grid;
  gap: 16px;
}
.modal-card--wide { width: min(700px, 92%); }
.modal-card__head {
  display: flex;
  justify-content: space-between;
  align-items: start;
  gap: 16px;
  border-bottom: 1px solid var(--hairline);
  padding-bottom: 12px;
}
.modal-card__head h3 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--t-21);
  color: var(--ink);
  margin: 0;
}
.modal-card__head p { font-size: var(--t-13); color: var(--ink-2); margin: 4px 0 0; }
.modal-card__close {
  font-size: 20px;
  color: var(--ink-3);
  cursor: pointer;
  background: none;
  border: 0;
  line-height: 1;
}
.modal-card__form { display: grid; gap: 12px; }
.modal-card__form .row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.modal-card__hint {
  background: var(--bg-soft);
  padding: 12px 16px;
  font-size: var(--t-13);
  color: var(--ink-2);
  border-left: 3px solid var(--brand);
}
.modal-card__hint ol { padding-left: 18px; display: grid; gap: 4px; }
.modal-card__hint ol li { list-style: decimal; }
.modal-card__actions { display: flex; gap: 12px; justify-content: flex-end; align-items: center; }
.modal-stage__caption {
  position: absolute;
  top: 14px; left: 16px; z-index: 3;
  font-size: var(--t-11);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255,255,255,.85);
  background: rgba(11,20,48,.6);
  padding: 4px 10px;
  border-radius: 3px;
}

/* rating stars */
.stars {
  display: inline-flex;
  gap: 1px;
  color: #F4B400;
  font-size: 14px;
}

/* OAuth social row */
.social-login { display: flex; gap: 10px; margin-top: 8px; }
.social-login button {
  flex: 1;
  border: 1px solid var(--hairline);
  padding: 10px;
  border-radius: 4px;
  font-size: var(--t-13);
  font-weight: 600;
  color: var(--ink);
  cursor: pointer;
  background: #fff;
}
.social-login button:hover { border-color: var(--brand); color: var(--brand); }

/* toast */
.toast-card {
  position: relative;
  z-index: 2;
  background: #fff;
  width: min(420px, 90%);
  margin-top: 32px;
  padding: 18px 20px;
  border-radius: 4px;
  border-left: 4px solid var(--success);
  box-shadow: 0 16px 32px rgba(11,18,32,.20);
  display: grid;
  gap: 8px;
}

/* ----- FOOTER UPGRADE ----- */
.site-footer { background: #0A1430; color: #C5CCDF; padding-block: 64px 32px; }
.footer-grid {
  display: grid;
  grid-template-columns: 1.4fr repeat(4, 1fr);
  gap: 48px;
}
.footer-col h4 {
  color: #fff;
  font-family: var(--font-display);
  font-size: var(--t-13);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  margin-bottom: 16px;
}
.footer-col ul { display: grid; gap: 8px; }
.footer-col a {
  font-size: var(--t-15);
  color: #C5CCDF;
}
.footer-col a:hover { color: #fff; }

.footer-brand {
  display: grid;
  gap: 16px;
  align-content: start;
}
.footer-brand__logo {
  display: inline-block;
  line-height: 0;
}
.footer-brand__img {
  height: 36px;
  width: auto;
  display: block;
  /* convert multi-color logo to pure white for dark footer */
  filter: brightness(0) invert(1);
}
.footer-brand__tag {
  font-size: var(--t-15);
  color: #C5CCDF;
  line-height: 1.4;
}
.footer-brand__contact {
  font-size: var(--t-15);
  color: #fff;
  font-weight: 600;
}
.footer-socials { display: flex; gap: 12px; margin-top: 32px; }
.footer-socials a,
.footer-socials .btn-icon {
  width: 34px; height: 34px;
  background: transparent;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: #DEE3F2;
  text-decoration: none;
  transition: border-color .15s ease, color .15s ease, background .15s ease;
}
.footer-socials a:hover,
.footer-socials .btn-icon:hover {
  border-color: #fff;
  color: #fff;
  background: rgba(255,255,255,.06);
}

/* #118: светлый текст описания в футере, читабельный на тёмном фоне */
.site-footer .footer-about p {
  color: rgba(197,204,223,0.65);
  font-size: var(--t-13);
  line-height: 1.55;
}
.footer-contact { margin-top: 16px; }
.footer-contact__link {
  color: #fff;
  font-weight: 600;
  font-size: var(--t-14);
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,.22);
  padding-bottom: 2px;
  transition: border-color .15s ease;
}
.footer-contact__link:hover { border-color: #fff; }
/* #436: соцсети под почтой в .footer-contact (компактнее чем отдельной строкой) */
.footer-contact__socials { display: flex; gap: 10px; margin-top: 14px; flex-wrap: wrap; }
.footer-contact__soc {
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px;
  border-radius: 50%;
  background: rgba(255,255,255,.08);
  color: #fff;
  transition: background .15s ease, transform .15s ease;
  text-decoration: none;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .02em;
  line-height: 1;
  position: relative;
}
.footer-contact__soc:hover {
  background: rgba(255,255,255,.18);
  transform: translateY(-1px);
}
/* Скрываем текстовый label, рендерим инициал через ::before */
.footer-contact__soc-label {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}
.footer-contact__soc::before {
  display: block;
  font-family: 'Inter Tight', Inter, system-ui, sans-serif;
}
.footer-contact__soc--tg::before { content: 'TG'; }
.footer-contact__soc--vk::before { content: 'VK'; }
.footer-contact__soc--dzen::before { content: 'D'; font-size: 14px; }
.footer-contact__soc--rutube::before { content: 'RT'; }
.footer-age-label {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255,255,255,.22);
  border-radius: 4px;
  padding: 2px 6px;
  font-size: var(--t-12);
  color: #C5CCDF;
  font-weight: 600;
}

.footer-bottom {
  margin-top: 48px;
  padding-top: 24px;
  border-top: 1px solid rgba(255,255,255,.10);
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: var(--t-13);
  color: #8A95B3;
  flex-wrap: wrap;
  gap: 12px;
}
.footer-bottom a { color: #8A95B3; }
.footer-bottom a:hover { color: #fff; }
.footer-bottom__legal { display: flex; gap: 16px; flex-wrap: wrap; }

/* ----- #20 RUSSIA MAP (HTML/CSS, geographic) ----- */
.ru-map { margin-top: 24px; }
.ru-map__legend {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 16px;
  font-size: var(--t-13);
  color: var(--ink-3);
}
.ru-map__legend-cell {
  display: inline-block;
  width: 22px;
  height: 14px;
  border: 1px solid var(--hairline);
  border-radius: 2px;
}
.ru-map__legend-label { font-variant-numeric: tabular-nums; }

.ru-map__grid {
  display: grid;
  /* [R-1] Сетка 20×11 по координатам map_col(0-19)/map_row(0-10) из БД */
  grid-template-columns: repeat(20, minmax(0, 1fr));
  grid-template-rows: repeat(11, 44px);
  gap: 3px;
  background: var(--bg-soft, #f6f7f9);
  border: 1px solid var(--hairline);
  padding: 10px;
  border-radius: 0;
  overflow-x: auto;
}
.ru-region {
  /* позиция ячейки — из данных ЧЕРЕЗ CSS-переменные (--gr/--gc), без визуальных инлайн-стилей */
  grid-row: var(--gr, auto);
  grid-column: var(--gc, auto);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  text-align: center;
  padding: 4px 2px;
  border: 1px solid var(--hairline);
  border-radius: var(--r-xs);
  background: #fff;
  color: var(--ink);
  text-decoration: none;
  font-size: var(--t-11);
  transition: border-color .12s var(--ease), box-shadow .12s var(--ease);
  cursor: pointer;
  overflow: hidden;
  min-width: 0;
}
.ru-region:hover {
  border-color: var(--brand-deep, #1d3a8a);
  z-index: 10;
}
/* [NEW-3-01] CSS tooltip — полное название региона при hover */
.ru-region { position: relative; }
.ru-region::after {
  content: attr(data-tooltip);
  position: absolute;
  bottom: calc(100% + 6px);
  left: 50%;
  transform: translateX(-50%);
  background: #1e293b;
  color: #fff;
  font-size: 11px;
  font-weight: 500;
  white-space: nowrap;
  padding: 4px 8px;
  pointer-events: none;
  opacity: 0;
  transition: opacity .12s;
  z-index: 100;
  border-radius: var(--r-xs);
  box-shadow: 0 2px 6px rgba(0,0,0,.25);
  font-family: var(--font-body, sans-serif);
  line-height: 1.3;
}
.ru-region:hover::after { opacity: 1; }
/* Спокойный фон сетки — светло-серый, нейтральный */
.ru-map__grid { background: #eef0f4; }
.ru-region__code {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 11px;
  letter-spacing: -0.02em;
  line-height: 1;
}
.ru-region__count {
  font-size: 11px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  opacity: 1;
  line-height: 1;
}
/* C11/[NEW-3-01]: читаемая контрастная палитра */
.ru-region--tier-0 { background: var(--bg-soft, #f5f7fa); color: var(--ink-3, #6b7589); border-color: var(--hairline, #e1e6ee); }
.ru-region--tier-1 { background: #e3ebff; color: #1a3a8f; border-color: #b9ccff; font-weight:600; }
.ru-region--tier-2 { background: #7da2ff; color: #fff; border-color: #5d88ff; font-weight:600; }
.ru-region--tier-3 { background: var(--brand, #1e5bff); color: #fff; border-color: #1a4fe0; font-weight:700; }
.ru-region--tier-4 { background: #143fb3; color: #fff; border-color: #0f2f87; font-weight:700; }
.ru-region--top { box-shadow: inset 0 0 0 2px var(--brand, #1e5bff); }

/* FIX [#russia-map-fix]: в platforms-v2.css глобальное правило `body main a:not(...){color:var(--brand)}`
   даёт всем ссылкам в main синий брэнд-цвет со спец. ~(0,11,5). Чтобы фиксить без правки
   того файла — явно выставляем цвет для __code/__count (дочерних <span>): их глобальное правило
   не затрагивает. Сам фон ячейки остаётся tier-цветом, а видимый текст — это __code/__count. */
.ru-region--tier-0 .ru-region__code,
.ru-region--tier-0 .ru-region__count { color: var(--ink-3, #6b7589); }
.ru-region--tier-1 .ru-region__code,
.ru-region--tier-1 .ru-region__count { color: #1a3a8f; }
.ru-region--tier-2 .ru-region__code,
.ru-region--tier-2 .ru-region__count,
.ru-region--tier-3 .ru-region__code,
.ru-region--tier-3 .ru-region__count,
.ru-region--tier-4 .ru-region__code,
.ru-region--tier-4 .ru-region__count { color: #fff; }

/* Легенда карты — цвета tier через классы (без инлайн-стилей) */
.ru-map__legend-cell--t1 { background: #e3ebff; }
.ru-map__legend-cell--t2 { background: #7da2ff; }
.ru-map__legend-cell--t3 { background: #1e5bff; }
.ru-map__legend-cell--t4 { background: #143fb3; }

/* Подсказка справа в шапке секции */
.section__hint { color: var(--ink-3); font-size: var(--t-15); }

/* Список регионов по округам — вынесено из инлайн-стилей */
.region-districts__head { margin-bottom: 24px; }
.region-district { margin-bottom: 32px; }
.region-district__title {
  font-family: var(--font-display);
  font-size: var(--t-17);
  font-weight: 700;
  color: var(--ink);
  margin: 0 0 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--hairline);
}
.region-district__count {
  font-weight: 400;
  color: var(--ink-3);
  font-size: var(--t-15);
  margin-left: 8px;
}
.region-district__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 8px;
}
.region-state-link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  background: #fff;
  border: 1px solid var(--hairline);
  border-radius: var(--r-xs);
  text-decoration: none;
  color: var(--ink);
  font-size: var(--t-15);
  transition: border-color .12s var(--ease);
}
.region-state-link:hover { border-color: var(--brand); }
.region-state-link__abbr {
  flex: 0 0 32px;
  width: 32px;
  height: 22px;
  background: var(--bg-soft, #f6f7f9);
  border: 1px solid var(--hairline);
  border-radius: var(--r-xs);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: var(--t-11);
  font-weight: 700;
  color: var(--ink-2);
  letter-spacing: -0.02em;
  line-height: 1;
}
.region-state-link__name { flex: 1; min-width: 0; line-height: 1.3; }

/* Блок «Смотрите также» */
.region-also { margin: 0 -16px; padding: 32px 16px; }
.region-also__head { margin-bottom: 16px; }

.ru-map__caption {
  margin-top: 12px;
  font-size: var(--t-13);
  color: var(--ink-3);
  line-height: 1.5;
}

/* Mobile fallback list — hidden by default, shown <760px */
.ru-map-mobile {
  display: none;
  grid-template-columns: repeat(2, 1fr);
  gap: 6px;
  margin-top: 16px;
}
.ru-mobile-cell {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  background: #fff;
  border: 1px solid var(--hairline);
  border-radius: 4px;
  text-decoration: none;
  color: var(--ink);
  font-size: var(--t-13);
}
.ru-mobile-cell__code {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 11px;
  letter-spacing: -0.02em;
  color: var(--brand-deep, #1d3a8a);
  flex: 0 0 auto;
}
.ru-mobile-cell__name {
  flex: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.ru-mobile-cell__count {
  font-variant-numeric: tabular-nums;
  color: var(--ink-2);
  font-weight: 600;
}
.ru-mobile-cell--top {
  background: var(--brand-deep, #1d3a8a);
  border-color: var(--brand-deep, #1d3a8a);
  color: #fff;
}
.ru-mobile-cell--top .ru-mobile-cell__code,
.ru-mobile-cell--top .ru-mobile-cell__count { color: #fff; }

@media (max-width: 760px) {
  .ru-map__grid,
  .ru-map__legend,
  .ru-map__caption { display: none; }
  .ru-map-mobile { display: grid; }
}
@media (max-width: 480px) {
  .ru-map-mobile { grid-template-columns: 1fr; }
}

/* Legacy region-cell aliases (kept for backwards compatibility) */
.region-map-grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 4px; margin-top: 24px; }
.region-cell { background: var(--bg-soft); border: 1px solid var(--hairline); padding: 10px; text-align: center; display: grid; gap: 2px; text-decoration: none; color: var(--ink); }
.region-cell--top { background: var(--brand-deep); border-color: var(--brand-deep); color: #fff; }
.region-cell--top .region-cell__code,
.region-cell--top .region-cell__count,
.region-cell--top a { color: #fff; }
.region-cell--inactive { opacity: 0.5; }

/* ----- mobile responsive ----- */
/* [MR-I2b²] Брейкпойнт бургера и скрытия меню/поиска: 880 → 1279.
   Ниже 1280px лого+меню+поиск+auth не помещается (лого теперь
   min-width: max-content), поэтому меню+поиск уходят в бургер. */
@media (max-width: 1279px) {
  .hero__grid { grid-template-columns: 1fr; }
  .nav-main { display: none; }
  .header-right .header-search { display: none; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .cat-grid { grid-template-columns: 1fr 1fr; }
  .kpi-cards { grid-template-columns: 1fr 1fr; }
  .widget-grid { grid-template-columns: 1fr 1fr; }
  .megamenu { display: none; }
  .case-grid { grid-template-columns: 1fr; }
  .news-grid { grid-template-columns: 1fr; }
  .product-layout { grid-template-columns: 1fr; }
  .two-col { grid-template-columns: 1fr; }
  .compare-table { font-size: var(--t-13); }
  .mq-chart { aspect-ratio: 1 / 1; }
  .section__head { grid-template-columns: 1fr; }
}

/* ----- mobile horizontal-scroll table with sticky first column ----- */
.table-scroll {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  position: relative;
}
.table-scroll table { min-width: 720px; }
@media (max-width: 880px) and (min-width: 641px) {
  .table-scroll table th:first-child,
  .table-scroll table td:first-child {
    position: sticky;
    left: 0;
    background: #fff;
    z-index: 2;
    border-right: 1px solid var(--hairline);
  }
}

/* bugs-0706 #17.1 (#418): на мобиле — превращаем .table-scroll в вертикальный список
   карточек, чтобы не было горизонтального слайдера внутри вертикального скролла страницы.
   Решение работает без изменения HTML: <table> рендерится как flex/block. */
@media (max-width: 640px) {
  .table-scroll { overflow-x: visible; }
  .table-scroll table { min-width: 0; width: 100%; display: block; }
  .table-scroll table thead { display: none; }
  .table-scroll table tbody { display: block; }
  .table-scroll table tr {
    display: block;
    margin-bottom: 12px;
    padding: 14px 14px 8px;
    border: 1px solid var(--hairline);
    border-radius: var(--r-sm);
    background: #fff;
    border-left: 3px solid var(--bar, var(--brand));
  }
  .table-scroll table td {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    padding: 6px 0;
    border: none;
    text-align: left !important;
  }
  .table-scroll table td:first-child {
    display: block;
    font-weight: 600;
    margin-bottom: 6px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--hairline);
  }
  .table-scroll table td[data-label]::before {
    content: attr(data-label);
    font-size: var(--t-12);
    color: var(--ink-3);
    text-transform: uppercase;
    letter-spacing: .04em;
    font-weight: 500;
    flex-shrink: 0;
  }
  .table-scroll table td:empty { display: none; }
  .table-scroll table td.row-cta { justify-content: flex-end; }
}

/* hero anchor: pulse next to live metric */
.hero-anchor__live {
  display: inline-flex;
  align-items: center;
  font-size: var(--t-11);
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: #8FE3AB;
}

/* small inline JSON-LD note (only in design tool) */
.dev-note { display: none; }

/* news article reading bar / freshness label */
.news-top {
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  gap: 32px;
  margin-bottom: 32px;
  background: var(--bg-tint);
  padding: 32px;
  align-items: start;
}

/* analytics page methodology cards */
.method-card {
  background: #fff;
  border: 1px solid var(--hairline);
  padding: 20px;
  display: grid;
  gap: 8px;
  align-content: start;
}
.method-card .eyebrow { color: var(--brand-deep); }
.method-card h4 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--t-17);
  color: var(--ink);
  margin: 0;
}
.method-card p { font-size: var(--t-15); color: var(--ink-2); }
.method-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
}

/* product status badges in company products table */
.prod-status-chip {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: var(--t-11);
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 3px 8px;
  border-radius: 4px;
}
.prod-status-chip--active { background: var(--success-tint); color: var(--success); }
.prod-status-chip--pilot { background: var(--warn-tint); color: #8E5A0F; }
.prod-status-chip--released { background: var(--bg-tint); color: var(--brand); }
.prod-status-chip--paused { background: var(--bg-soft); color: var(--ink-2); }
.prod-status-chip--sunset { background: var(--danger-tint); color: var(--danger); }

/* achievements / promo blocks */
.achievements { display: flex; flex-wrap: wrap; gap: 8px; }
.achievement-chip {
  background: linear-gradient(135deg, #F4B400 0%, #F58220 100%);
  color: #fff;
  font-size: var(--t-11);
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  padding: 6px 12px;
  border-radius: 4px;
}

/* analog detail / migration mini cards */
.analog-list { display: grid; gap: 12px; }
.analog-row-card {
  position: relative;
  padding: 20px 20px 20px 56px;
  background: #fff;
  border: 1px solid var(--hairline);
}
.analog-row-card .corner-num {
  position: absolute;
  top: 20px; left: 20px;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--t-13);
  color: var(--ink-3);
  letter-spacing: 0.04em;
}
.analog-row-card:hover { border-color: var(--brand); }
.analog-row-card .ar-name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--t-17);
  color: var(--ink);
}
.analog-row-card .ar-vendor { font-size: var(--t-13); color: var(--ink-2); }
.analog-row-card .ar-meta { font-size: var(--t-13); color: var(--ink-2); }
.analog-row-card .ar-cta { text-align: right; }

/* readiness bar */
.readiness {
  display: grid;
  gap: 4px;
  font-size: var(--t-11);
  color: var(--ink-2);
}
.readiness__bar {
  height: 4px;
  background: var(--hairline);
  border-radius: 2px;
  overflow: hidden;
}
.readiness__fill { height: 100%; background: var(--success); }

/* hero search demo (kept clickable) */
.search-row > .btn--primary { cursor: pointer; }
.search-row > .btn--primary:hover { background: var(--brand-hover); }

/* ============================================================
   ======== v2.3 — LINKS & BUTTONS SYSTEM (revised) ========
   Override of generic anchor/button defaults. Five button variants.
   ============================================================ */

/* Inline links inside body copy (article, news, description) */
.copy a,
.link {
  color: var(--ink);
  border-bottom: 1px solid var(--hairline-strong);
  transition: color 180ms ease, border-bottom-color 180ms ease;
  padding-bottom: 1px;
}
.copy a:hover,
.link:hover {
  color: var(--brand);
  border-bottom-color: var(--brand);
}
.copy a:active,
.link:active { color: var(--brand-deep); border-bottom-color: var(--brand-deep); }
.copy a:focus-visible,
.link:focus-visible {
  outline: 2px solid var(--brand);
  outline-offset: 2px;
  border-bottom-color: transparent;
}

/* nav-main__link focus (duplicate block removed — main rules in MEGAMENU section) */
.nav-main__link:focus-visible { outline: 2px solid var(--brand); outline-offset: 4px; }

/* Megamenu sub-link — text + count side-by-side */
.megamenu__col a {
  position: relative;
  padding: 6px 10px;
  font-size: var(--t-15);
  color: var(--ink);
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 10px;
  border-radius: 3px;
  line-height: 1.35;
  transition: background-color 160ms ease, color 160ms ease;
}
.megamenu__col a > span:first-child {
  flex: 1 1 auto;
  min-width: 0;
}
.megamenu__col a .megamenu__count {
  flex: 0 0 auto;
}
.megamenu__col a:hover {
  background: var(--bg-soft);
  color: var(--brand);
}

/* Megamenu promo card 320px */
.megamenu__promo {
  background: linear-gradient(135deg, #0A1430 0%, #11214A 100%);
  color: #fff;
  padding: 20px;
  display: grid;
  gap: 12px;
  align-content: start;
  border-radius: 4px;
}
.megamenu__promo .eyebrow { color: #8FA3D8; }
.megamenu__promo h6 { color: #fff; font-size: var(--t-17); line-height: 1.3; margin: 0; }
.megamenu__promo .megamenu__metric { color: #fff; }
.megamenu__promo p { font-size: var(--t-13); color: rgba(255,255,255,.75); margin: 0; }
.megamenu__promo .megamenu__cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: var(--t-13);
  font-weight: 600;
  color: #fff;
  border-bottom: 1px solid rgba(255,255,255,.5);
  padding-bottom: 2px;
  width: fit-content;
  transition: gap 180ms ease, color 180ms ease;
}
.megamenu__promo .megamenu__cta:hover { gap: 10px; color: #8FE3AB; border-bottom-color: #8FE3AB; }
.megamenu__promo-cover {
  width: 100%;
  aspect-ratio: 16 / 7;
  background: linear-gradient(135deg, var(--brand) 0%, var(--brand-deep) 100%);
  border-radius: 3px;
  position: relative;
  overflow: hidden;
}
.megamenu__promo-cover::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(rgba(255,255,255,0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.06) 1px, transparent 1px);
  background-size: 18px 18px;
}
.megamenu__promo-cover-text {
  position: absolute;
  bottom: 8px; left: 12px;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: var(--t-21);
  color: #fff;
  text-shadow: 0 1px 4px rgba(0,0,0,0.25);
}

/* Footer link: ink-2 → ink with underline */
.footer-col a {
  color: #C5CCDF;
  border-bottom: 1px solid transparent;
  transition: color 180ms ease, border-bottom-color 180ms ease;
  padding-bottom: 1px;
}
.footer-col a:hover {
  color: #fff;
  border-bottom-color: rgba(255,255,255,.5);
}

/* Breadcrumb */
.breadcrumbs { font-size: var(--t-15); color: var(--ink-3); }
.breadcrumbs a { color: var(--ink-3); transition: color 180ms ease; white-space: nowrap; display: inline-flex; align-items: center; gap: 4px; }
.breadcrumbs a:hover { color: var(--brand); }
.breadcrumbs .breadcrumbs__current { color: var(--ink); font-weight: 500; }

/* ============================================================
   Buttons — 5 variants
   ============================================================ */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 44px;
  padding: 0 24px;
  border-radius: 6px; /* 1/7.6: единая закруглённость с карточками */
  font-family: var(--font-body);
  font-size: var(--t-15);
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  border: 1px solid transparent;
  cursor: pointer;
  user-select: none;
  transition: background-color 180ms ease, color 180ms ease, border-color 180ms ease,
              transform 180ms ease, box-shadow 180ms ease;
}
.btn:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
/* 7.5: без подчёркивания у .btn (и всех модификаторов) */
.btn, a.btn, .btn:hover, a.btn:hover { text-decoration: none !important; }

/* 1. PRIMARY filled */
.btn--primary {
  background: var(--brand);
  color: #fff;
  border-color: var(--brand);
}
.btn--primary:hover {
  background: var(--brand-deep);
  border-color: var(--brand-deep);
  color: #fff;
}
.btn--primary:active {
  background: var(--brand-deep);
  border-color: var(--brand-deep);
  box-shadow: none;
  transform: translateY(1px);
}
.btn--primary[disabled],
.btn--primary.is-disabled {
  background: var(--hairline-strong);
  border-color: var(--hairline-strong);
  color: var(--ink-3);
  cursor: not-allowed;
  box-shadow: none;
}

/* 2. SECONDARY outlined (ink border) */
.btn--ghost {
  background: transparent;
  border-color: var(--ink);
  color: var(--ink);
}
.btn--ghost:hover {
  background: var(--brand, #1E5BFF);
  color: #fff;
  border-color: var(--brand, #1E5BFF);
}
.btn--ghost:active { transform: none; }

/* 3. BRAND-OUTLINED (paired with primary as secondary CTA) */
.btn--brand-ghost {
  background: transparent;
  border-color: var(--brand);
  color: var(--brand);
}
.btn--brand-ghost:hover {
  background: rgba(30,91,255,0.08);
  border-color: var(--brand-deep);
  color: var(--brand-deep);
}

/* 4. TEXT-ONLY ghost (Подробнее →) */
.btn--text {
  height: auto;
  background: transparent;
  border: 0;
  color: var(--ink);
  padding: 8px 12px;
  font-weight: 500;
  font-size: var(--t-15);
  text-transform: none;
  letter-spacing: 0;
}
.btn--text .cta-arrow { transition: transform 180ms ease; display: inline-block; }
.btn--text:hover {
  background: var(--bg-soft);
  color: var(--brand);
}
.btn--text:hover .cta-arrow { transform: translateX(4px); }

/* 5. ICON-ONLY square */
.btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background: #fff;
  border: 1px solid var(--hairline-strong);
  color: var(--ink-2);
  border-radius: 4px;
  cursor: pointer;
  transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease;
}
.btn-icon:hover { border-color: var(--ink); color: var(--ink); }
.btn-icon.is-active,
.btn-icon[aria-pressed="true"] {
  background: var(--bg-tint);
  border-color: var(--brand);
  color: var(--brand);
}
.btn-icon:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }

/* small variants */
.btn--sm { height: 32px; padding: 0 14px; font-size: var(--t-13); }
.btn--lg { height: 52px; padding: 0 32px; font-size: var(--t-17); }

/* On-dark variants (overrides for sections w/ class="band--dark") */
.band--dark .btn--primary,
.btn--on-light {
  background: #fff;
  color: var(--ink);
  border-color: #fff;
}
.band--dark .btn--primary:hover,
.btn--on-light:hover {
  background: var(--bg-soft);
  color: var(--ink);
  border-color: var(--bg-soft);
}
.band--dark .btn--ghost,
.btn--on-dark {
  background: transparent;
  border-color: rgba(255,255,255,.32);
  color: #fff;
}
.band--dark .btn--ghost:hover,
.btn--on-dark:hover {
  border-color: #fff;
  color: #fff;
  background: rgba(255,255,255,.08);
}
.band--dark .btn--text { color: #C5CCDF; }
.band--dark .btn--text:hover { background: rgba(255,255,255,.06); color: #fff; }

/* arrow helper */
.cta-arrow { display: inline-block; transition: transform 180ms ease; }
.btn--primary:hover .cta-arrow,
.btn--brand-ghost:hover .cta-arrow,
.btn--ghost:hover .cta-arrow { transform: translateX(4px); }

/* loading spinner inline */
.btn--loading {
  background: var(--brand-deep);
  border-color: var(--brand-deep);
  color: #fff;
  pointer-events: none;
}
.btn-spinner {
  display: inline-block;
  width: 14px;
  height: 14px;
  border: 2px solid rgba(255,255,255,.4);
  border-top-color: #fff;
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }


/* v2.3 aliases */
.tabbar__tab { display: inline-flex; align-items: center; gap: 6px; padding: 14px 20px; font-size: var(--t-15); font-weight: 500; color: var(--ink-2); border-bottom: 2px solid transparent; white-space: nowrap; transition: color 180ms ease, border-color 180ms ease; }
.tabbar__tab:hover { color: var(--ink); }
.tabbar__tab.is-active { color: var(--brand-deep); border-bottom-color: var(--brand-deep); font-weight: 600; }

.subtabs__tab { display: inline-flex; align-items: center; gap: 8px; padding: 12px 18px; font-size: var(--t-15); font-weight: 500; color: var(--ink-2); border-bottom: 2px solid transparent; white-space: nowrap; transition: color 180ms ease, border-color 180ms ease; }
.subtabs__tab:hover { color: var(--ink); }
.subtabs__tab.is-active { color: var(--brand-deep, #0A2A6B); border-bottom-color: var(--brand-deep, #0A2A6B); font-weight: 600; }
/* Цифра-пилюля внутри таба — компактный стиль, темно-синий */
.subtabs__tab .num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 6px;
  font-size: var(--t-11, 11px);
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: var(--brand-deep, #0A2A6B);
  background: rgba(10, 42, 107, 0.08);
  border-radius: var(--r-sm);
  line-height: 1;
}
.subtabs__tab:hover .num { background: rgba(10, 42, 107, 0.12); }
.subtabs__tab.is-active .num { color: var(--brand-deep, #0A2A6B); background: rgba(10, 42, 107, 0.12); }

/* ============================================================
   INDUSTRY CARDS — /markets page
   ============================================================ */
.industry-card {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 20px;
  background: var(--bg);
  border: 1px solid var(--hairline);
  border-radius: 6px;
  text-decoration: none;
  color: var(--ink);
  transition: border-color 160ms ease;
}
.industry-card:hover {
  border-color: var(--brand);
  color: var(--ink);
}
.industry-card__icon {
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  border-radius: var(--r-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  /* Цвета из CSS-переменных (data via vars, без визуальных инлайн-стилей) */
  background: var(--ic-bg, rgba(30, 91, 255, .08));
  color: var(--ic, var(--brand));
}

/* Сетка industry-card — без инлайн-стилей на /markets */
.industry-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 16px;
}
.industry-card__body {
  flex: 1;
  min-width: 0;
}
.industry-card__title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--t-17);
  color: var(--ink);
  line-height: 1.3;
}
.industry-card__sub {
  font-size: var(--t-13);
  color: var(--ink-3);
  margin-top: 4px;
  line-height: 1.4;
}
.industry-card__count {
  margin-top: 8px;
  font-size: var(--t-13);
  color: var(--brand);
  font-weight: 600;
}
.industry-card__arrow {
  flex: 0 0 auto;
  color: var(--ink-3);
  font-size: 18px;
  margin-top: 2px;
  transition: transform 160ms ease;
}
.industry-card:hover .industry-card__arrow { transform: translateX(4px); color: var(--brand); }

/* ═══ project-collection-card ═══════════════════════════════════════════ */
.project-collection-card { display:flex; flex-direction:column; background:#fff; border:1px solid var(--hairline); border-radius:var(--r-xs); overflow:hidden; text-decoration:none; color:var(--ink); transition:border-color 160ms ease; }
.project-collection-card:hover { color:var(--ink); }
.project-collection-card__cover { height:140px; display:flex; align-items:center; justify-content:center; position:relative; }
.project-collection-card__badge { position:absolute; bottom:12px; right:12px; background:rgba(0,0,0,.4); color:#fff; font-size:var(--t-13); font-weight:600; padding:4px 10px; border-radius:6px; backdrop-filter:blur(4px); }
.project-collection-card__body { padding:24px; display:flex; flex-direction:column; gap:10px; flex:1; }
.project-collection-card__title { font-family:var(--font-display); font-weight:700; font-size:var(--t-21); line-height:1.2; color:var(--ink); }
.project-collection-card__desc { font-size:var(--t-15); color:var(--ink-2); line-height:1.5; }
.project-collection-card__cta { font-size:var(--t-15); font-weight:600; color:var(--brand); margin-top:auto; }
.project-collection-card:hover .project-collection-card__cta .cta-arrow { transform:translateX(4px); }

/* ═══════════════════════════════════════════════════════════════
   v3-131 FIXES
   ═══════════════════════════════════════════════════════════════ */

/* 1. Header nav-link hover — убираем подчёркивание снизу и эффект проваливания */
.nav-main__link::before {
  display: none !important;
}

/* 2. Буллеты в контенте продукта */
.copy ul,
.product-description ul,
[class*="platform-content"] ul {
  list-style: disc !important;
  padding-left: 1.5rem !important;
  margin: 0.75rem 0 !important;
}
.copy ul li,
.product-description ul li,
[class*="platform-content"] ul li {
  display: list-item !important;
  list-style-type: disc !important;
  margin-bottom: 4px;
}
.copy ol,
.product-description ol {
  list-style: decimal !important;
  padding-left: 1.5rem !important;
  margin: 0.75rem 0 !important;
}
.copy ol li {
  display: list-item !important;
}

/* 3. /redirect regions → fix ссылок */

/* 4. industry-card — исправляем если иконки не грузились из-за отсутствия FA */
.industry-card__icon i {
  font-size: 28px;
  line-height: 1;
}

/* 5. product sidebar минимальная ширина */
.product-sidebar {
  min-width: 280px;
}

/* 6. product-buy-card ширина */
.product-buy-card {
  min-width: 260px;
}


/* ============================================================
   PRODUCT PAGE (p-* namespace) — перенесено из product.blade.php
   ============================================================ */

/* ── Hero ──────────────────────────────────────────────── */
/* [MR-I0] Hero продукта: деловой сине-серый градиент с лёгким тоновым акцентом
   категории в правом верхнем углу. Исключаем компанию/заказчика
   (у них свой hero в .company-hero-band). */
.p-hero-band:not(.company-hero-band){
  background: linear-gradient(165deg, #EEF2F9 0%, #E7EDF6 55%, #F4F6FB 100%);
  border-bottom: 1px solid var(--hairline);
  padding: 32px 0 0;
  position: relative;
  overflow: hidden;
}
.p-hero-band:not(.company-hero-band)::before{
  content: "";
  position: absolute;
  top: -120px;
  right: -160px;
  width: 520px;
  height: 520px;
  background: radial-gradient(closest-side, var(--hero-tone, var(--brand)) 0%, transparent 70%);
  opacity: .08;
  pointer-events: none;
  z-index: 0;
}
.p-hero-band:not(.company-hero-band)::after{
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(10,42,107,.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(10,42,107,.035) 1px, transparent 1px);
  background-size: 32px 32px;
  background-position: -1px -1px;
  mask-image: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 75%);
  -webkit-mask-image: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 75%);
  pointer-events: none;
  z-index: 0;
}
.p-hero-band > .container{ position: relative; z-index: 1; }
.p-hero{display:grid;grid-template-columns:1fr 296px;gap:32px;align-items:start;padding-bottom:28px;}
.p-hero__main{display:grid;grid-template-columns:96px 1fr;gap:24px;align-items:start;}
.p-hero__logo{width:96px;height:96px;border-radius:var(--r-md);display:grid;place-items:center;font-family:var(--font-display);font-weight:800;font-size:30px;color:#fff;flex-shrink:0;overflow:hidden;box-shadow:none;} /* P2-13: было 12px */
.p-hero__logo img{width:100%;height:100%;object-fit:cover;}
.p-hero__info{display:grid;gap:10px;}
.p-hero__cats{display:flex;gap:6px;flex-wrap:wrap;align-items:center;}
.p-hero__title{font-family:var(--font-display);font-weight:700;font-size:clamp(22px,3.5vw,32px);line-height:1.15;letter-spacing:-.02em;color:var(--brand-deep);margin:0;}
.p-hero__vendor{font-size:var(--t-13);color:var(--ink-2);}
.p-hero__vendor a{color:var(--ink-2);text-decoration:none;border-bottom:1px dashed var(--ink-3);}
.p-hero__vendor a:hover{color:var(--brand);}
.p-hero__rating{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.p-hero__stars{color:#F59E0B;letter-spacing:1px;font-size:16px;}
.p-hero__rating-num{font-weight:600;font-size:var(--t-15);color:var(--ink);}
.p-hero__rating-count{font-size:var(--t-13);color:var(--ink-2);}
/* #326: p-rating — новый визуал рейтинга в hero */
.p-rating{display:inline-flex;align-items:center;gap:6px;}
.p-rating__stars{font-size:16px;letter-spacing:2px;line-height:1;}
.p-rating__value{font-weight:700;font-size:var(--t-15);color:var(--ink);line-height:1;}
.p-rating__count{font-size:var(--t-13);color:var(--ink-2);text-decoration:none;}
.p-rating__count:hover{color:var(--brand);text-decoration:underline;}
.p-hero__status{display:inline-flex;align-items:center;gap:5px;font-size:var(--t-13);color:var(--ink-2);}
.p-hero__actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:4px;}
.p-hero__icon-btn{width:36px;height:36px;border:1px solid var(--hairline);background:#fff;border-radius:var(--r-xs);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink-2);transition:border-color .15s,color .15s;flex-shrink:0;} /* P3-1: было 6px */
.p-hero__icon-btn:hover{border-color:var(--brand);color:var(--brand);}
.p-hero__chips{display:flex;gap:6px;flex-wrap:wrap;}

/* ── Buy card ──────────────────────────────────────────── */
.p-buy-card{background:#fff;border:1px solid var(--hairline);border-radius:6px;padding:20px;display:grid;gap:12px;position:sticky;top:80px;box-shadow:none;min-width:0;max-width:100%;box-sizing:border-box;overflow:hidden;}
.p-buy-card__eyebrow{font-size:var(--t-11);font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);}
.p-buy-card__price{font-family:var(--font-display);font-weight:700;font-size:26px;color:var(--brand-deep);letter-spacing:-.01em;line-height:1;}
.p-buy-card__note{font-size:var(--t-13);color:var(--ink-2);margin-top:2px;}
.p-buy-card__divider{border:none;border-top:1px solid var(--hairline);margin:0;}
.p-buy-card__meta{display:grid;gap:6px;}
.p-buy-card__meta-row{display:flex;align-items:center;flex-wrap:wrap;gap:4px 7px;font-size:var(--t-13);color:var(--ink-2);min-width:0;}
.p-buy-card__meta-row a{color:var(--brand);text-decoration:none;overflow-wrap:anywhere;word-break:break-word;min-width:0;}
.p-buy-card__meta-row a:hover{text-decoration:underline;}
.pulse-dot{width:8px;height:8px;background:var(--success,#16A34A);border-radius:50%;flex-shrink:0;box-shadow:0 0 0 0 rgba(22,163,74,.4);animation:p-pulse 2s infinite;}
@keyframes p-pulse{0%{box-shadow:0 0 0 0 rgba(22,163,74,.4)}70%{box-shadow:0 0 0 6px rgba(22,163,74,0)}100%{box-shadow:0 0 0 0 rgba(22,163,74,0)}}

/* ── Tabs ──────────────────────────────────────────────── */
.p-tabs-wrap{position:sticky;top:65px;z-index:50;background:#fff;border-bottom:1px solid var(--hairline);}
.p-tabs{display:flex;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;}
.p-tabs::-webkit-scrollbar{display:none;}
.p-tabs a{display:inline-flex;align-items:center;gap:5px;padding:14px 18px;font-size:var(--t-13);font-weight:500;color:var(--ink-2);border-bottom:2px solid transparent;white-space:nowrap;text-decoration:none;transition:color .15s,border-color .15s;}
.p-tabs a:hover{color:var(--ink);}
.p-tabs a.is-active{color:var(--brand-deep);border-bottom-color:var(--brand);font-weight:600;}
.p-tabs__badge{background:var(--brand);color:#fff;font-size:10px;font-weight:700;padding:1px 5px;border-radius:6px;line-height:1.4;}

/* ── Tab sections ──────────────────────────────────────── */
.tab-section{display:none;}
.tab-section.is-active{display:block;}

/* ── Content layout ────────────────────────────────────── */
/* issue #105: расширили sidebar 296→340px — контент больше не выезжает за границы */
.p-body{display:grid;grid-template-columns:1fr 340px;gap:40px;padding-top:32px;padding-bottom:64px;}
.p-main{min-width:0;}

/* ── Section headings ──────────────────────────────────── */
.p-section{margin-bottom:40px;}
.p-section__title{font-family:var(--font-display);font-weight:700;font-size:24px;color:var(--brand-deep);margin:0 0 16px;}
.p-section__lead{font-size:var(--t-15);color:var(--ink-2);margin:0 0 20px;max-width:68ch;line-height:1.6;}

/* ── Description text ──────────────────────────────────── */
/* issue #95: описание приходит из БД с инородными inline-стилями (Times, мелкий шрифт и т.п.) —
   принудительно сбрасываем font-family/size/line-height/color на дизайн-токены темы для всех потомков */
.p-description{font-size:var(--t-15);line-height:1.7;color:var(--ink);font-family:var(--font-body),system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;} /* 7.4: убран max-width */
.p-description *{font-family:inherit !important;line-height:inherit;color:inherit;background:transparent !important;}
.p-description span,.p-description font,.p-description div{font-size:inherit !important;}
.p-description p{font-size:inherit !important;}
.p-description h1,.p-description h2,.p-description h3,.p-description h4,.p-description h5,.p-description h6{font-family:var(--font-display),system-ui,sans-serif !important;font-weight:600;color:var(--ink);}
.p-description h3{font-size:var(--t-17);margin:20px 0 8px;}
.p-description p{margin:0 0 12px;}
.p-description p:last-child{margin-bottom:0;}
.p-description ul,.p-description ol{margin:0 0 12px;padding-left:20px;}
.p-description li{margin-bottom:5px;}
.p-description a{color:var(--brand);}
.p-description img{max-width:100%;height:auto;}

/* ── Price banner ──────────────────────────────────────── */
.p-price-banner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;padding:20px 24px;border:1px solid var(--hairline);border-radius:6px;background:var(--bg-soft);}
.p-price-banner__price{font-family:var(--font-display);font-weight:700;font-size:20px;color:var(--brand-deep);}
.p-price-banner__note{font-size:var(--t-13);color:var(--ink-2);margin-top:2px;}

/* ── Tariff cards ──────────────────────────────────────── */
.p-tariffs{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;}
.p-tariff{border:1px solid var(--hairline);border-radius:6px;padding:22px;display:grid;gap:10px;position:relative;background:#fff;}
.p-tariff--highlight{border:2px solid var(--brand);box-shadow:none;}
.p-tariff__badge{position:absolute;top:-10px;left:16px;background:var(--brand);color:#fff;font-size:var(--t-13);font-weight:700;padding:2px 10px;border-radius:var(--r-xs);letter-spacing:.04em;} /* P1-17: было font-size:11px border-radius:6px */
.p-tariff__name{font-size:var(--t-11);font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);}
.p-tariff__price{font-family:var(--font-display);font-weight:700;font-size:24px;color:var(--brand-deep);letter-spacing:-.01em;line-height:1;}
.p-tariff__note{font-size:var(--t-13);color:var(--ink-2);}

/* ── Feature matrix (overview — compact flat list) ─────── */
.p-feat-list{display:grid;grid-template-columns:1fr 1fr;gap:6px 20px;margin:0;padding:0;list-style:none;}
.p-feat-list li{display:flex;align-items:baseline;gap:6px;font-size:var(--t-13);color:var(--ink-2);padding:3px 0;}
.p-feat-list li::before{content:"✓";color:var(--success,#16A34A);font-weight:700;font-size:12px;flex-shrink:0;}
/* Feature matrix (parameters page — full collapsible) ─── */
.p-matrix{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.p-matrix__group{border:1px solid var(--hairline);border-radius:6px;padding:14px;background:#fff;}
/* issue #99: группы всегда раскрыты — нет hover/cursor: pointer */
.p-matrix__group-hdr,.p-matrix__group summary{font-weight:600;font-size:var(--t-13);display:flex;justify-content:space-between;align-items:center;list-style:none;user-select:none;}
.p-matrix__group summary{cursor:pointer;}
.p-matrix__group-hdr{margin-bottom:10px;}
.p-matrix__group summary::-webkit-details-marker{display:none;}
.p-matrix__count{font-size:var(--t-11);color:var(--ink-3);font-variant-numeric:tabular-nums;}
.p-matrix__rows{margin-top:10px;display:grid;gap:6px;}
.p-matrix__row{display:flex;justify-content:space-between;align-items:center;font-size:var(--t-13);padding:2px 0;}
.p-matrix__row-name{color:var(--ink-2);}
.p-matrix__row-check{color:var(--success,#16A34A);font-weight:700;font-size:16px;}

/* ── Projects ──────────────────────────────────────────── */
.p-projects{display:grid;gap:12px;}
.p-project{border:1px solid var(--hairline);border-radius:6px;padding:18px 20px;background:#fff;}
.p-project__header{display:flex;justify-content:space-between;align-items:start;gap:12px;margin-bottom:8px;}
.p-project__name{font-weight:600;font-size:var(--t-15);color:var(--ink);}
.p-project__meta{font-size:var(--t-13);color:var(--ink-2);margin-top:2px;}
.p-project__desc{font-size:var(--t-13);color:var(--ink-2);line-height:1.5;margin:8px 0 0;}
.p-project__results{font-size:var(--t-13);color:var(--ink-2);margin-top:8px;}
.p-project__results strong{color:var(--success,#16A34A);}

/* ── Reviews ───────────────────────────────────────────── */
/* NEW-10-10: separator between reviews, subcriteria 3-col grid, larger fonts */
.p-reviews{display:grid;gap:16px;}
.p-review{border:1px solid var(--hairline,#e6e8ec);border-radius:var(--r-sm,6px);padding:20px;margin-bottom:0;background:#fff;box-shadow:none;}
.p-review:first-child{padding-top:20px;}
.p-review:last-child{border-bottom:1px solid var(--hairline,#e6e8ec);padding-bottom:20px;}
.p-review__top{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;}
.p-review__stars{color:#F59E0B;font-size:15px;letter-spacing:1px;}
.p-review__quote{font-size:var(--t-15);font-weight:600;color:var(--ink);margin-bottom:8px;line-height:1.4;}
.p-review__procon{font-size:var(--t-13);color:var(--ink-2);line-height:1.5;margin-bottom:5px;}
.p-review__author{font-size:var(--t-13);color:var(--ink-3);margin-top:10px;padding-top:10px;border-top:1px solid var(--hairline);}
.p-review__author strong{color:var(--ink-2);}
/* NEW-10-10: subcriteria grid 3 columns */
.p-review__subcriteria{display:grid;grid-template-columns:repeat(3,1fr);gap:6px 16px;margin:10px 0;font-size:15px;}
.p-review__subcriteria-row{display:flex;align-items:center;gap:6px;}
.p-review__subcriteria-label{color:var(--ink-2);flex:1;font-size:15px;}
.p-review__subcriteria-stars{color:#ffc107;white-space:nowrap;font-size:14px;}
.p-review__subcriteria-val{font-size:13px;color:var(--ink-3);}
@media(max-width:640px){.p-review__subcriteria{grid-template-columns:1fr;}}

/* ── Similar products ──────────────────────────────────── */
.p-similar{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;}
.p-similar-card{border:1px solid var(--hairline);border-radius:6px;padding:14px;background:#fff;display:grid;gap:8px;}
.p-similar-card__head{display:flex;align-items:center;gap:10px;}
.p-similar-card__icon{width:32px;height:32px;border-radius:6px;background:var(--brand);color:#fff;font-size:12px;font-weight:700;display:grid;place-items:center;flex-shrink:0;}
.p-similar-card__name{font-weight:600;font-size:var(--t-13);color:var(--ink);}
.p-similar-card__desc{font-size:var(--t-13);color:var(--ink-2);line-height:1.4;}
.p-similar-card__foot{display:flex;justify-content:space-between;align-items:center;}
.p-similar-card__rating{font-size:var(--t-13);color:var(--ink-3);}

/* ── Versions table ────────────────────────────────────── */
.p-versions-table{width:100%;border-collapse:collapse;}
.p-versions-table th{text-align:left;font-size:var(--t-11);font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);padding:10px 12px;border-bottom:2px solid var(--hairline);}
.p-versions-table td{padding:10px 12px;font-size:var(--t-13);color:var(--ink);border-bottom:1px solid var(--hairline);}
.p-versions-table tr:last-child td{border-bottom:none;}
.p-versions-table tr:hover td{background:var(--bg-soft);}

/* ── Analogs table ─────────────────────────────────────── */
.p-analogs-table{width:100%;border-collapse:collapse;}
.p-analogs-table th{text-align:left;font-size:var(--t-11);font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);padding:10px 12px;border-bottom:2px solid var(--hairline);}
.p-analogs-table td{padding:12px 12px;font-size:var(--t-13);color:var(--ink);border-bottom:1px solid var(--hairline);vertical-align:top;}
.p-analogs-table tr:last-child td{border-bottom:none;}
.p-analogs-table tr:hover td{background:var(--bg-soft);}

/* ── Sidebar ───────────────────────────────────────────── */
.p-sidebar{display:grid;gap:16px;align-content:start;position:sticky;top:80px;min-width:0;}
.p-sidebar-card{overflow-wrap:break-word;word-break:break-word;}
.p-sidebar-row__val{overflow-wrap:anywhere;}
.p-sidebar-card{background:#fff;border:1px solid var(--hairline);border-radius:6px;padding:18px;}
.p-sidebar-card__title{font-family:var(--font-display);font-weight:700;font-size:var(--t-11);text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);margin:0 0 14px;}
.p-sidebar-row{display:flex;justify-content:space-between;align-items:baseline;padding:6px 0;border-bottom:1px solid var(--hairline);gap:12px;}
.p-sidebar-row:last-child{border-bottom:none;padding-bottom:0;}
.p-sidebar-row__label{font-size:var(--t-13);color:var(--ink-2);white-space:nowrap;flex-shrink:0;}
.p-sidebar-row__val{font-size:var(--t-13);font-weight:500;color:var(--ink);text-align:left;overflow-wrap:break-word;word-break:break-word;min-width:0;max-width:60%;}
.p-sidebar-row__val a{color:var(--brand);text-decoration:none;}
.p-sidebar-row__val a:hover{text-decoration:underline;}

/* ── Empty states ──────────────────────────────────────── */
.p-empty{padding:36px 24px;border:1px dashed var(--hairline);border-radius:6px;text-align:center;color:var(--ink-2);font-size:var(--t-15);}
.p-empty__action{margin-top:16px;}

/* ── Request modal ─────────────────────────────────────── */
dialog.p-modal{border:none;border-radius:var(--r-md);padding:0;max-width:460px;width:calc(100% - 32px);box-shadow:0 16px 56px rgba(0,0,0,.22);} /* P1-15: было 14px */
dialog.p-modal::backdrop{background:rgba(0,0,0,.55);backdrop-filter:blur(2px);}
.p-modal__inner{padding:28px 28px 24px;}
.p-modal__close{position:absolute;top:14px;right:14px;background:none;border:none;cursor:pointer;color:var(--ink-3);width:28px;height:28px;display:grid;place-items:center;border-radius:4px;}
.p-modal__close:hover{background:var(--bg-soft);color:var(--ink);}
.p-modal__title{font-family:var(--font-display);font-weight:700;font-size:20px;color:var(--brand-deep);margin:0 0 6px;}
.p-modal__product{font-size:var(--t-13);color:var(--ink-2);margin:0 0 20px;}
.p-modal-field{margin-bottom:14px;}
.p-modal-field label{display:block;font-size:var(--t-13);font-weight:600;color:var(--ink-2);margin-bottom:5px;}
.p-modal-field input,.p-modal-field textarea,.p-modal-field select{width:100%;border:1px solid var(--hairline);border-radius:6px;padding:9px 12px;font-size:var(--t-13);font-family:inherit;color:var(--ink);outline:none;box-sizing:border-box;transition:border-color .15s,box-shadow .15s;background:#fff;}
.p-modal-field input:focus,.p-modal-field textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px rgba(30,91,255,.12);}
.p-modal__footer{margin-top:18px;}
.p-modal__submit{width:100%;}

/* ── Responsive ────────────────────────────────────────── */
@media(max-width:900px){
  .p-hero{grid-template-columns:1fr !important;gap:24px !important;}
  .p-buy-card{position:static;}
  .p-body{grid-template-columns:1fr;}
  .p-sidebar{position:static;}
  .p-matrix{grid-template-columns:1fr;}
  .p-feat-list{grid-template-columns:1fr;}
  .p-tariffs{grid-template-columns:1fr;}
}
@media(max-width:640px){
  .p-hero__main{grid-template-columns:72px 1fr;gap:14px;}
  .p-hero__logo{width:72px;height:72px;font-size:22px;}
  .p-hero__title{font-size:20px;}
  .p-similar{grid-template-columns:1fr;}
}

/* ── Section header (title + "see all" link) ───────────── */
.p-section__hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:12px;}
.p-section__more{font-size:var(--t-13);color:var(--brand);text-decoration:none;white-space:nowrap;font-weight:500;}
.p-section__more:hover{text-decoration:underline;}

/* ── Reviews preview (overview tab) ───────────────────── */
.p-reviews-preview{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;}
.p-review-card{background:#fff;border:1px solid var(--hairline);border-radius:var(--r-md);padding:20px;display:flex;flex-direction:column;gap:10px;} /* P1-16: было 12px */
.p-review-card__top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.p-review-card__stars{color:#F59E0B;font-size:16px;letter-spacing:1px;}
.p-review-card__quote{margin:0;font-size:var(--t-14,14px);line-height:1.55;color:var(--ink-2);border-left:3px solid var(--brand);padding-left:12px;}
.p-review-card__procon{font-size:var(--t-13);color:var(--ink-2);}
.p-review-card__procon--plus strong{color:var(--success,#16a34a);}
.p-review-card__author{font-size:var(--t-13);color:var(--ink-3);display:flex;flex-wrap:wrap;gap:4px;align-items:center;margin-top:auto;padding-top:10px;border-top:1px solid var(--hairline);}
.p-review-card__meta::before{content:'·';margin-right:4px;}
@media(max-width:640px){.p-reviews-preview{grid-template-columns:1fr;}}

/* ── Review procon colors ──────────────────────────────── */
.p-review__procon--plus strong{color:var(--success,#16a34a);}
.p-review__procon--minus strong{color:var(--danger,#dc2626);}

/* ── Section more-wrap ─────────────────────────────────── */
.p-section__more-wrap{margin-top:16px;}

/* ═══════════════════════════════════════════════════════════════
   #54: Header — убрать «прыжок» меню при hover
   ═══════════════════════════════════════════════════════════════
   Корень бага: .megamenu переключается display:none → display:grid,
   панель 780px резко появляется и создаёт ощущение прыжка.
   Плюс ::after-стрелка вращается внутри inline-flex и даёт
   1–2px sub-pixel reflow.

   Фикс — два правила (только CSS, без БД и без JS):
   1) Меню всегда есть в layout, скрывается через opacity/visibility
      с transition вместо display.
   2) Стрелка ::after — inline-block + transform-origin:center,
      чтобы поворот не двигал каретку.
*/
.megamenu {
  display: grid;                /* всегда в layout */
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  /* #336: убран translateY — дропдаун не «прыгает» */
  transition:
    opacity 160ms ease,
    visibility 0s linear 160ms;
}
.nav-main__item:hover .megamenu,
.nav-main__item.is-open .megamenu,
.megamenu.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transition:
    opacity 160ms ease,
    visibility 0s linear 0s;
}

/* Стабилизация поворота стрелки — убираем 1–2px дёрганья */
.nav-main__link::after {
  display: inline-block;
  transform-origin: center center;
  will-change: transform;
}

/* ============================================================
   #58 — Унификация hover-стилей ссылок
   Цель: ссылки в кнопках не сливаются с фоном; единый токен
   --link-hover для контента; контекстный hover на тёмных фонах.
   ============================================================ */
:root {
  --link-hover: var(--brand);
  --link-hover-on-dark: #ffffff;
  --link-hover-on-brand: #E8EEFF;
}

/* Ссылки внутри кнопок наследуют цвет кнопки, не подменяются hover-токеном */
.btn, a.btn, .btn--primary, .btn--ghost, .btn--brand-ghost,
.btn--text, .btn--on-light, .btn--on-dark {
  text-decoration: none;
}
.btn:hover, .btn:hover *,
a.btn:hover, a.btn:hover *,
.btn--primary:hover, .btn--primary:hover *,
.btn--ghost:hover, .btn--ghost:hover *,
.btn--brand-ghost:hover, .btn--brand-ghost:hover *,
.btn--text:hover, .btn--text:hover *,
.btn--on-light:hover, .btn--on-light:hover *,
.btn--on-dark:hover, .btn--on-dark:hover * {
  color: inherit;
}
.btn a, .btn--primary a, .btn--ghost a, .btn--brand-ghost a,
.btn--text a, .btn--on-light a, .btn--on-dark a {
  color: inherit;
  text-decoration: none;
}
.btn a:hover, .btn--primary a:hover, .btn--ghost a:hover,
.btn--brand-ghost a:hover, .btn--text a:hover,
.btn--on-light a:hover, .btn--on-dark a:hover {
  color: inherit;
}
/* fix(NEW-2-01): restore white text on .btn--ghost:hover overridden by color:inherit above */
.btn--ghost:hover, .btn--ghost:hover * { color: #fff !important; }

/* Карточки-ссылки: hover не подкрашивает заголовки в синий,
   эффект задаёт сама карточка (тень/transform) */
a.card:hover, a.card:hover *,
a.cat-card:hover, a.cat-card:hover *,
a.post-card:hover, a.post-card:hover *,
a.product-card:hover, a.product-card:hover * {
  color: inherit;
}

/* На тёмных фонах ссылка при hover становится белой, а не brand-синей
   (иначе текст сливается с тёмно-синим фоном) */
.band--dark a:hover,
.site-footer a:hover,
.megamenu__promo a:hover {
  color: var(--link-hover-on-dark);
}

/* На brand-фоне (синие плашки) — светло-голубой, не сливается с фоном */
.bg-brand a:hover,
.band--brand a:hover {
  color: var(--link-hover-on-brand);
}

/* Базовый токен hover для контентных ссылок (заменяет «голую» декларацию) */
a:hover { color: var(--link-hover); }


/* ============================================================
   #184 — /markets page: hero и tabbar container fix
   Добавляем max-width и padding-x, чтобы хедер не прижимался
   к левой границе. Используем те же переменные, что и .container
   ============================================================ */
#market .hero,
#market .tabbar {
  max-width: var(--container);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--pad-x);
  padding-right: var(--pad-x);
}

/* ════════════════════════════════════════════════════════════════
   KPI-плашки на странице проекта /project/{id}
   Стиль повторяет демо-страницу: ряд карточек с метрикой, крупным
   значением и подписью под ним. На desktop — 4 в ряд, на tablet — 2,
   на mobile — 1.
   ════════════════════════════════════════════════════════════════ */
.project-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin: 0 0 36px;
}
.project-kpis__card {
  padding: 18px 20px 20px;
  border: 1px solid var(--hairline);
  border-radius: 6px;
  background: #fff;
}
.project-kpis__label {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--t-11);
  letter-spacing: .08em;
  color: var(--ink-3);
  margin: 0 0 14px;
  text-transform: uppercase;
}
.project-kpis__value {
  /* issue #437: было 29px (вариант 25/29 на проде), сбросили до --t-21 (21px) – число читается и не давит подпись. */
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--t-21);
  line-height: 1.1;
  color: var(--brand);
  margin: 0 0 10px;
  letter-spacing: -.01em;
  overflow-wrap: anywhere;
}
.project-kpis__caption {
  font-size: var(--t-13);
  color: var(--ink-2);
  line-height: 1.4;
}
.proj-detail-h1 + .project-kpis { margin-top: 20px; }

@media (max-width: 980px) {
  .project-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 540px) {
  .project-kpis { grid-template-columns: 1fr; }
}

/* ════════════════════════════════════════════════════════════════
   KPI-чипы в карточках кейсов (в листинге /projects и в блоке
   «Внедрения у клиентов» на странице продукта). Компактные плашки.
   ════════════════════════════════════════════════════════════════ */
.kpi-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 8px 0 0;
}
.kpi-chip {
  display: inline-flex;
  align-items: baseline;
  gap: 4px;
  padding: 4px 9px;
  background: rgba(10, 42, 107, .06);
  border-radius: var(--r-xs);
  font-size: var(--t-11);
  color: var(--ink-2);
}
.kpi-chip__value {
  font-weight: 700;
  color: var(--brand);
}
.kpi-chip__label {
  color: var(--ink-3);
}

/* ════════════════════════════════════════════════════════════════
   Фасет «По эффекту» в сайдбаре /projects
   ════════════════════════════════════════════════════════════════ */
.facet-effect {
  border-top: 1px solid var(--hairline);
  padding-top: 16px;
  margin-top: 16px;
}
.facet-effect__title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--t-11);
  letter-spacing: .07em;
  text-transform: uppercase;
  color: var(--ink-3);
  margin: 0 0 12px;
}
.facet-effect__item {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 6px 0;
  font-size: var(--t-13);
  color: var(--ink);
  text-decoration: none;
}
.facet-effect__item:hover { color: var(--brand); }
.facet-effect__item.is-active {
  font-weight: 600;
  color: var(--brand);
}
.facet-effect__count {
  color: var(--ink-3);
  font-variant-numeric: tabular-nums;
  font-size: var(--t-13);
  padding-left: 10px;
}

/* ═══════════════════════════════════════════════════════════════
   Product page — Batch 2 (#92 #93 #94 #96 #97 #101 #102 #106)
   ═══════════════════════════════════════════════════════════════ */

/* #93 — Структурированные параметры в hero */
.p-hero__params {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 12px 18px;
  padding: 10px 14px;
  background: rgba(0, 0, 0, .025);
  border: 1px solid var(--hairline);
  border-radius: 6px;
  margin-top: 4px;
}
.p-hero__param { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.p-hero__param-label {
  font-size: var(--t-11);
  color: var(--ink-3);
  text-transform: uppercase;
  letter-spacing: .05em;
  font-weight: 600;
}
.p-hero__param-value {
  font-size: var(--t-13);
  color: var(--ink);
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* #106 — Квинтэссенция (плашки на обзоре) */
.p-essence {
  border: 1px solid var(--hairline);
  border-radius: 6px;
  padding: 16px;
  background: #fff;
  margin-bottom: 18px;
}
.p-essence__lead {
  margin: 0 0 14px;
  font-size: var(--t-15);
  line-height: 1.55;
  color: var(--ink);
}
.p-essence__grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 12px;
}
.p-essence__tile {
  padding: 10px 12px;
  border: 1px solid var(--hairline);
  border-radius: 6px;
  background: var(--surface);
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.p-essence__label {
  font-size: var(--t-11);
  color: var(--ink-3);
  text-transform: uppercase;
  letter-spacing: .05em;
  font-weight: 600;
}
.p-essence__value {
  font-size: var(--t-15);
  color: var(--ink);
  font-weight: 600;
}
.p-essence__value strong { font-weight: 700; }
.p-essence__suffix { color: var(--ink-3); font-weight: 500; font-size: var(--t-13); }
.p-essence__note { font-size: var(--t-11); color: var(--ink-3); }
.p-essence__note .link { color: var(--brand); }
.p-essence__muted { color: var(--ink-3); font-weight: 500; }

/* #97 — Похожие в 2 колонки + золотые звёзды + чипы */
.p-similar--cols2 {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
@media (max-width: 720px) { .p-similar--cols2 { grid-template-columns: 1fr; } }
.p-similar-card__title-wrap { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.p-similar-card__vendor { font-size: var(--t-11); color: var(--ink-3); }
.p-similar-card__chips { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 4px; }
.p-similar-card__chips .chip { font-size: var(--t-11); padding: 2px 6px; }
.p-similar-card__rating--gold { color: #F59E0B; letter-spacing: 1px; font-size: 14px; }
.p-similar-card__rating--muted { color: var(--ink-3); font-size: var(--t-11); }

/* #101 — Матрица: пункты с крестиками для платных продуктов (если не нужно прятать, делаем мягче) */
.p-matrix__row--missing { opacity: .55; }
.p-matrix__row-cross { color: var(--ink-3); font-size: 14px; }

/* #102 — Похожие в сайдбаре */
.p-sidebar-similar {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.p-sidebar-similar { list-style: none; padding: 0; margin: 0; }
.p-sidebar-similar__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 10px;
  border: 1px solid var(--hairline);
  border-radius: 6px;
  background: #fff;
  transition: border-color .15s;
}
.p-sidebar-similar__item + .p-sidebar-similar__item { margin-top: 6px; }
.p-sidebar-similar__item:hover { border-color: var(--brand); }
.p-sidebar-similar__name { text-decoration: none; }
.p-sidebar-similar__name {
  font-size: var(--t-13);
  color: var(--ink);
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1;
  min-width: 0;
}
.p-sidebar-similar__rating { color: #F59E0B; font-size: var(--t-11); white-space: nowrap; }
.p-sidebar-similar__more {
  display: inline-block;
  margin-top: 4px;
  font-size: var(--t-13);
  color: var(--brand);
  text-decoration: none;
}
.p-sidebar-similar__more:hover { text-decoration: underline; }

/* Нейтральный pulse-dot (для статусов «не активно») */
.pulse-dot--neutral {
  background: var(--ink-3);
  box-shadow: none;
  animation: none;
}

/* ═══════════════════════════════════════════════════════════════
   Company page — Section 2 (#110 #111 #112 #113 #114 #115)
   ═══════════════════════════════════════════════════════════════ */

/* #110 — Быстрые контакты в шапке */
.company-hero-contacts {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 16px;
  padding: 12px 14px;
  background: var(--surface);
  border: 1px solid var(--hairline);
  border-radius: 6px;
}
.company-hero-contact {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border-radius: 6px;
  background: #fff;
  border: 1px solid var(--hairline);
  color: var(--ink);
  text-decoration: none;
  font-size: var(--t-13);
  transition: border-color .15s, color .15s;
}
.company-hero-contact:hover {
  border-color: var(--brand);
  color: var(--brand);
}
.company-hero-contact__icon {
  font-size: 14px;
  color: var(--ink-3);
}
.company-hero-contact:hover .company-hero-contact__icon {
  color: var(--brand);
}

/* ============================================================
   #1..#9 — Доработка страницы компании (v3/company.blade.php)
   ============================================================ */

/* #1: Холодный сине-серый фон всей страницы компании. Карточки/секции — белые. */
.company-page { background: #FFFFFF !important; }
.company-page .company-hero-band { background: #EEF2F9 !important; }
/* hero-band — спокойный сине-серый, без фиолетового градиента */
.company-hero-band {
  background: linear-gradient(160deg, #EEF2F9 0%, #E7EDF6 60%, #EEF2F9 100%);
  border-bottom: 1px solid var(--hairline);
}
/* #309: больший padding-bottom для hero компании (было 28px); #E7: 44px->64px */
.company-hero-band .p-hero { padding-bottom: 64px; }
/* #E-MIGRATE: перенесено из <style>-блока в блейде */
/* #112: цена «от» в одну строку */
.company-page .th-price,
.company-page .cell-nowrap { white-space: nowrap; }
/* #53: аккуратная сетка для блоков категорий/профиля/достижений */
.company-info-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 24px;
  margin-bottom: 32px;
}
.company-info-grid__cell { min-width: 0; }
/* product-cats-filter: ряд чипов-категорий на странице продуктов */
.product-cats-filter { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.product-cats-filter .chip-link.is-active .chip { background: var(--brand); color: #fff; border-color: var(--brand); }
/* #110: адрес в hero компактно */
.company-hero__address { font-size: var(--t-14); color: var(--ink-60); margin-top: 4px; }
.company-hero__address a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
/* #fix: контакты компании в hero — иконки фикс-размера */
.contact-block {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 16px;
}
.contact-block__item {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--ink-2);
  text-decoration: none;
  font-size: var(--t-15);
  line-height: 1.3;
}
.contact-block__item:hover { color: var(--brand); }
.contact-block__icon {
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  color: var(--ink-3);
}
.contact-block__item:hover .contact-block__icon { color: var(--brand); }
/* #E-MIGRATE: icon-btn — скругление 6px (не 0) */
.company-hero__icon-btn { border-radius: var(--r-sm); }
/* #306: текстовые контакты без иконок */
.company-hero__contact-text {
  font-size: var(--t-14);
  color: var(--ink-2);
  text-decoration: none;
  white-space: nowrap;
}
.company-hero__contact-text:hover { color: var(--brand); }

/* #9: воздух между крошками и H1 */
.company-breadcrumbs { margin-bottom: 16px; } /* bugs-0706 #3.1 (#391): 28px → 16px */
.company-breadcrumbs .breadcrumbs { padding-block: 0; }
/* Заказчик: метрики hero и сетка контактов */
.customer-hero__metrics { display: flex; gap: 24px; margin: 24px 0; flex-wrap: wrap; }
.customer-contacts-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 24px; }
.customer-section-eyebrow { margin-bottom: 12px; }
.customer-contacts-eyebrow { margin-bottom: 6px; }
.customer-chips-row { display: flex; flex-wrap: wrap; gap: 8px; }
.customer-empty-note { color: var(--ink-3); }
.customer-dash { color: var(--ink-3); }
/* #C2: нежно-зелёный hero-банд для страниц заказчиков (только шапка) */
.customer-page { background: #FFFFFF !important; }
.customer-page .company-hero-band { background: #EAF6EF !important; }
/* #C5: описание заказчика в разделе Обзор */
.customer-about, .company-about { font-size: var(--t-16, 16px); line-height: 1.6; color: var(--ink); max-width: 72ch; }

/* #2: компактная строка ключевых параметров (чипы) */
.company-hero__params {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
  margin: 14px 0 0;
}
.company-param {
  display: inline-flex;
  align-items: center;
  font-size: var(--t-13);
  color: var(--ink-2);
  background: #fff;
  border: 1px solid var(--hairline);
  border-radius: var(--r-sm); /* #304: прямоугольные чипы (было 999px); #E2: 2px->6px */
  padding: 4px 12px;
  white-space: nowrap;
}
.company-param--link { text-decoration: none; transition: border-color .15s, color .15s; }
.company-param--link:hover { border-color: var(--brand); color: var(--brand); }
/* #D2: бейджи достижений */
/* #ach: блок ачивок/членств в hero вендора — аккуратные бейджи */
.company-ach-badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 16px;
}
.ach-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  border-radius: var(--r-sm);
  font-size: var(--t-13);
  font-weight: 500;
  line-height: 1.2;
  white-space: nowrap;
}
.ach-badge > i,
.ach-badge svg {
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  font-size: 13px;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.ach-badge__label { line-height: 1.2; }
/* «ещё N» — нейтральный бейдж без яркого фона */
.ach-badge--more {
  background: var(--bg, #f6f7f9);
  border: 1px solid var(--hairline);
  color: var(--ink-3);
}

/* #8: бейдж суммарного рейтинга */
.company-hero__rating {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
  flex-wrap: wrap;
}
.company-hero__stars { color: #F59E0B; letter-spacing: 1px; font-size: 15px; line-height: 1; }
.company-hero__rating-num { font-weight: 700; font-size: var(--t-15); color: var(--ink); }
.company-hero__rating-count { font-size: var(--t-13); color: var(--ink-2); }

/* #4: отрасли — компактный ряд чипов */
.company-hero__industries {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 16px 0 0;
}

/* #3: иконочные кнопки (телефон/почта) в едином ряду CTA */
.company-hero__icon-btn {
  width: 40px;
  height: 40px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--hairline);
  border-radius: var(--r-xs, 8px);
  background: #fff;
  color: var(--ink-2);
  text-decoration: none;
  font-size: 16px;
  transition: border-color .15s, color .15s;
}
.company-hero__icon-btn:hover { border-color: var(--brand); color: var(--brand); }

/* #5: KPI-карточки компании — фикс переполнения длинных значений/подписей */
.kpi-cards--company .kpi-card { min-width: 0; padding: 16px; }
.kpi-cards--company .kpi-card__value {
  white-space: normal;
  overflow-wrap: anywhere;
  word-break: break-word;
  font-size: clamp(20px, 2.2vw, var(--t-28));
  line-height: 1.05;
}
.kpi-cards--company .kpi-card__label,
.kpi-cards--company .kpi__label {
  display: block;
  min-width: 0;
  overflow-wrap: anywhere;
}
.kpi-cards--company .kpi-card__sub {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-width: 0;
  overflow-wrap: anywhere;
}

/* #V1: правая колонка hero вендора — KPI + ачивки единым стеком */
.p-hero__aside { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.p-hero__aside .kpi-cards--company { margin: 0; }
.p-hero__aside .company-ach-badges { margin-top: 0; }

/* #6: таблица реквизитов на подстранице */
.requisites-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 20px 24px;
}
.requisites-row { display: grid; gap: 4px; min-width: 0; }
.requisites-row .eyebrow { color: var(--ink-3); }
.requisites-row > div:last-child { overflow-wrap: anywhere; }
/* #E4: иконки контактов в реквизитах */
.contact-req__icon { flex: 0 0 auto; width: 16px; height: 16px; color: var(--ink-3); }

/* #112 — Таблица продуктов: nowrap для цен, chips wrapper для категорий */
.table .th-price,
.table .cell-nowrap {
  white-space: nowrap;
}
.table .cell-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}
.table .cell-chips .chip {
  font-size: var(--t-11);
  padding: 2px 6px;
}

/* #115 — chip-link для отраслей-ссылок (если ещё не определён) */
a.chip-link {
  text-decoration: none;
  display: inline-block;
}
a.chip-link:hover .chip {
  border-color: var(--brand);
  color: var(--brand);
}

/* ============================================================
   404 PAGE (#119)
   ============================================================ */
.v3-404 {
  padding: 96px 0 120px;
  background: linear-gradient(180deg, rgba(0,85,255,0.03) 0%, transparent 100%);
}
.v3-404__inner {
  max-width: 640px;
  margin: 0 auto;
  text-align: center;
}
.v3-404__code {
  font-family: var(--heading-font, 'Inter Tight', sans-serif);
  font-size: clamp(96px, 16vw, 180px);
  font-weight: 700;
  line-height: 1;
  color: var(--brand, #0055FF);
  letter-spacing: -0.04em;
  margin-bottom: 24px;
}
.v3-404__title {
  font-size: clamp(24px, 3vw, 36px);
  font-weight: 700;
  color: var(--ink-0, #0A1430);
  margin: 0 0 16px;
}
.v3-404__lead {
  font-size: var(--t-15);
  color: var(--ink-2);
  margin: 0 0 32px;
  line-height: 1.55;
}
.v3-404__actions {
  display: flex;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 40px;
}
/* #121: прямоугольные кнопки на странице 404 (border-radius:0) */
.v3-404__actions .btn,
.v3-404__actions .btn--primary,
.v3-404__actions .btn--text,
.v3-404__search .btn,
.v3-404__search .btn--primary { border-radius: 0; }
.v3-404__search {
  display: flex;
  gap: 8px;
  max-width: 480px;
  margin: 0 auto;
}
.v3-404__search input[type=search] {
  flex: 1;
  border: 1px solid var(--hairline, #E0E4ED);
  border-radius: 6px;
  padding: 10px 14px;
  font-size: var(--t-14);
  background: #fff;
}
.v3-404__search input[type=search]:focus {
  outline: none;
  border-color: var(--brand, #0055FF);
  box-shadow: 0 0 0 3px rgba(0,85,255,.12);
}

/* a11y utility */
.sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0);
  white-space: nowrap; border: 0;
}

/* A5: Унифицированный стиль кнопок "Подробнее" в таблицах (feat/site-finishing) */
.btn--link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: var(--t-13);
  font-weight: 600;
  color: var(--brand);
  text-decoration: none;
  transition: color 150ms ease, transform 150ms ease;
}
.btn--link:hover { color: var(--brand-dark, #0050b3); }
.btn--link .cta-arrow { transition: transform 180ms ease; }
.btn--link:hover .cta-arrow { transform: translateX(4px); }
.btn--link u { text-decoration: underline; text-underline-offset: 2px; }

/* ═══════════════════════════════════════════════════════
   MR-P: Product page polish (feat/product-page-polish)
   ═══════════════════════════════════════════════════════ */

/* P1: Hero gradient — усилен (см. inline style) */
.p-hero-band { border-bottom: 1px solid var(--hairline); padding: 32px 0 0; }

/* P2: Менеджер на связи */
.p-manager-block {
  border: 1px solid var(--hairline);
  border-radius: 6px;
  padding: 14px;
  /* bugs-0706 #7.3: бежевый фон менеджер-блока (вернули) */
  background: #FAF5EC;
  display: grid;
  gap: 10px;
  margin-bottom: 8px;
}
.p-manager-block__head {
  display: flex;
  align-items: center;
  gap: 10px;
}
.p-manager-block__avatar {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--brand) 0%, #7B3FBF 100%);
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  display: grid;
  place-items: center;
  flex-shrink: 0;
  letter-spacing: .02em;
}
.p-manager-block__info { flex: 1; min-width: 0; }
.p-manager-block__name {
  font-weight: 600;
  font-size: var(--t-13);
  color: var(--ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.p-manager-block__role {
  font-size: var(--t-11);
  color: var(--ink-3);
  margin-top: 1px;
}
.p-manager-block__contacts {
  display: grid;
  gap: 3px;
}
.p-manager-block__contact-link {
  font-size: var(--t-12, 12px);
  color: var(--brand);
  text-decoration: none;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  display: block;
}
.p-manager-block__contact-link:hover { text-decoration: underline; }
.p-manager-block__cta { width: 100%; justify-content: center; }

/* P3: Similar products — strictly 2 columns on desktop */
.p-similar--cols2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}
@media (max-width: 1023px) {
  .p-similar--cols2 { grid-template-columns: 1fr; }
}
/* Gold stars for similar products */
.p-similar-card__rating--gold { color: #F5B400; font-size: var(--t-13); }
.p-similar-card__title-wrap { min-width: 0; }
.p-similar-card__vendor { font-size: var(--t-11); color: var(--ink-3); margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.p-similar-card__chips { display: flex; gap: 5px; flex-wrap: wrap; margin-top: 2px; }
/* Chip: российский владелец — синий */
.chip--russian { background: rgba(30,91,255,.10); color: var(--brand-deep, #0A2A6B); }
/* Small chip variant */
.chip--sm { font-size: 10px; padding: 2px 7px; }

/* P4: Parameters — text value cell */
.p-matrix__row-val {
  font-size: var(--t-12, 12px);
  color: var(--ink-2);
  font-weight: 500;
  text-align: right;
  max-width: 55%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* Tighten SVG check/cross alignment */
.p-matrix__row-check,
.p-matrix__row-cross {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
}

/* P5: Sidebar width — фиксированные 340px, синхронно с hero (.p-hero также 1fr 340px) */
.p-body {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 40px;
  padding-top: 32px;
  padding-bottom: 64px;
}
/* Все карточки сайдбара занимают всю ширину колонки (340px) — единообразно */
.p-sidebar,
.p-sidebar-card,
.p-buy-card { width: 100%; max-width: 100%; box-sizing: border-box; }
/* P5-fix: grid-item .p-sidebar-card имел min-width:auto → раздувался по min-content
   контента (длинное имя вендора / строки «Похожие решения») до ~431px и торчал за
   правый край колонки 340px. min-width:0 разрешает усадку до ширины трека; stretch
   и max-width:100% держат карточку ровно в колонке, как эталонный .p-buy-card. */
.p-sidebar-card {
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  justify-self: stretch;
  box-sizing: border-box;
}
/* Кнопки правого сайдбара (буй-карта и карточки) — прямоугольные, без скругления. */
.p-buy-card .btn,
.p-sidebar .btn { border-radius: 0; }
@media (max-width: 991px) {
  .p-body { grid-template-columns: 1fr; }
  .p-sidebar { position: static; }
}

/* P6: Квинтэссенция платформы */
.quintessence-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px;
  margin-top: 24px;
}
@media (max-width: 1023px) {
  .quintessence-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 639px) {
  .quintessence-grid { grid-template-columns: 1fr; }
}
.quintessence-card {
  background: #fff;
  border: 1px solid var(--hairline);
  border-radius: 6px;
  padding: 20px;
  display: grid;
  gap: 10px;
  align-content: start;
  transition: border-color .15s;
}
.quintessence-card:hover {
}
.quintessence-card__icon {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
}
.quintessence-card__title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--t-15);
  color: var(--brand-deep, #0A2A6B);
  line-height: 1.25;
}
.quintessence-card__body {
  font-size: var(--t-13);
  color: var(--ink-2);
  line-height: 1.55;
}

/* D5: унификация hover-состояний ссылок и кнопок ===========================
   - Базовый a:hover уже определён выше через var(--link-hover)
   - Кнопки: лёгкое затемнение, без разнобоя цветов
   - nav-main__link: уже управляется через .nav-main__item:hover .nav-main__link
   ========================================================================== */

/* Единый базовый hover для контентных ссылок (не кнопок, не карточек) */
.p-description a:hover,
.p-section a:hover,
.copy a:hover { text-decoration: underline; }

/* Кнопки: мягкое затемнение при hover вместо разношёрстных цветов */
.btn:hover {
  filter: brightness(0.95);
}
/* Исключаем кнопки в кастомных hover-контекстах — они управляются сами */
.btn--text:hover,
.band--dark .btn:hover { filter: none; }

/* Удаляем конкурирующее a:hover color:var(--brand) — каноничное объявление выше */
/* Все контекстные a:hover (footer, megamenu, product-tabs и т.д.) переопределяют
   базовый --link-hover через более специфичные правила — это корректно */

/* D6: «Подробнее» в таблицах — всегда видно, не только при hover строки */
.table tbody tr td.row-cta {
  opacity: 1;
}
/* Убираем hover-reveal — ячейка уже visible */
.table tbody tr:hover td.row-cta { opacity: 1; }

/* D2: заблокированные внешние ссылки на бесплатном тарифе */
.ext-link-disabled {
  color: inherit;
  text-decoration: none;
  border-bottom: 1px dotted #aaa;
  cursor: help;
}

/* D5: gap 8px для ряда чипов в hero */
.p-hero__cats { gap: 8px; }

/* D7: унификация стиля карточек продуктов — общие переменные для всех вариантов ==
   Все карточки используют одинаковые border-radius, shadow, transition, padding.
   Не переименовываем классы — только выравниваем значения через CSS-переменные.
   ============================================================================== */
.p-similar-card,
.product-card,
.product-card-v2 {
  border-radius: 6px;
  box-shadow: none;
  transition: border-color .15s var(--ease);
  background: #fff;
  border: 1px solid var(--hairline);
}
.p-similar-card:hover,
.product-card:hover,
.product-card-v2:hover {
  border-color: var(--brand);
}

/* D8: единый стиль «Подробнее / Смотреть все / Все N» — p-section__more ≡ btn--text
   p-section__more уже имеет hover:underline, согласуем визуально с btn--text */
.p-section__more {
  font-size: var(--t-13);
  font-weight: 500;
  color: var(--brand);
  text-decoration: none;
  white-space: nowrap;
}
.p-section__more .cta-arrow,
.p-section__more span[aria-hidden] {
  display: inline-block;
  transition: transform 180ms ease;
}
.p-section__more:hover span[aria-hidden],
.p-section__more:hover .cta-arrow { transform: translateX(4px); }

/* ── v3-pagination (NEW-2-04 / #266) ── */
.v3-pagination{}
.v3-pagination__list{display:flex;gap:6px;list-style:none;padding:0;margin:24px 0;flex-wrap:wrap;align-items:center;justify-content:center}
.v3-pagination__item a,.v3-pagination__item>span,.v3-pagination__link,.v3-pagination__current,.v3-pagination__sep{display:inline-flex;min-width:36px;height:36px;align-items:center;justify-content:center;padding:0 10px;border-radius:var(--r-xs);border:1px solid #e0e6f0;color:#0a1430;text-decoration:none;font-weight:500;font-size:var(--t-15,14px);transition:background .15s,border-color .15s,color .15s;cursor:pointer;user-select:none}
.v3-pagination__link:hover,.v3-pagination__item a:hover{background:#f1f5fa;border-color:#c9d5e8;color:#0a1430}
.v3-pagination__link:focus-visible,.v3-pagination__item a:focus-visible{outline:2px solid var(--primary-color,#1a56db);outline-offset:2px}
.v3-pagination__item--active>.v3-pagination__current,.v3-pagination__item--active>span{background:var(--primary-color,#1a56db);color:#fff;border-color:var(--primary-color,#1a56db);cursor:default}
.v3-pagination__item--disabled>span,.v3-pagination__item--disabled>.v3-pagination__link{color:var(--ink-3,#9aa5b4);border-color:var(--hairline,#e8ecf2);cursor:default;pointer-events:none;opacity:.6} /* P3-4 C1 */
.v3-pagination__item--sep>span,.v3-pagination__sep{border:none;min-width:24px;padding:0 4px;color:var(--ink-3,#9aa5b4);cursor:default}

/* ── article-badge (F4) ── */
.article-badge{display:inline-block;padding:4px 10px;border-radius:6px;font-size:12px;font-weight:600;text-decoration:none}
.article-badge--editorial{background:#eef2ff;color:#4338ca}
.article-badge--vendor{background:#ecfdf5;color:#047857}

/* ── F10: полировка login/register ── */
.login-register .text-brand-1{color:var(--primary-color,#1a56db)}
.login-register .auth-form .btn-brand-1,
.login-register .auth-form [type=submit]{background:var(--primary-color,#1a56db);border-color:var(--primary-color,#1a56db);color:#fff;border-radius:6px;padding:10px 24px;font-weight:600;width:100%}
.login-register .auth-form [type=submit]:hover{opacity:.9}
.login-register-cover{min-height:calc(100vh - 140px);align-items:center}

/* ── F10: полировка glossary ── */
.glossary-header{margin-bottom:32px}
.glossary-header h1{font-size:var(--t-36,32px);font-weight:700}
.glossary-search .input-group{border-radius:6px;overflow:hidden}
.glossary-search .form-control{border-right:0;padding:10px 16px}
.glossary-search .btn{border-radius:0 8px 8px 0}
.glossary-letter{display:inline-flex;align-items:center;justify-content:center;min-width:36px;height:36px;border-radius:6px;font-weight:600;margin:2px}
.card-grid-2{border:1px solid #e8ecf2;border-radius:6px;padding:16px;transition:border-color .2s}
.card-grid-2:hover{border-color:var(--brand)}

/* ── F10: полировка experts ── */
.experts-filter{background:#f8fafc;border-radius:var(--r-md);border:1px solid #e8ecf2}
.expert-filter-form .btn-primary{background:var(--primary-color,#1a56db);border-color:var(--primary-color,#1a56db);border-radius:var(--r-xs);font-weight:600}

/* ── issue #106: квинтэссенция продукта — буллеты в hero ── */
.p-hero__highlights {
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 6px 16px;
}
.p-hero__highlights li {
  position: relative;
  padding-left: 18px;
  font-size: var(--t-14);
  color: var(--ink-1);
  line-height: 1.4;
}
.p-hero__highlights li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--brand-deep, #5b3fd4);
  font-weight: 700;
}

/* ── issue #97: цвета звёзд по рейтингу ── */
.p-similar-card__rating--orange { color: #F97316; letter-spacing: 1px; font-size: 14px; }
.p-similar-card__rating--gray { color: var(--ink-3); letter-spacing: 1px; font-size: 14px; }


/* ===== AUDIT UI FIXES (P0-P3) ===== */

/* ============================================================
   V1-PATCH: кнопки и иконки
   ============================================================ */

/* P1-1 (D1): .btn--brand — отсутствующее правило, primary CTA */
.btn--brand {
  background: var(--brand);
  color: #fff;
  border-color: var(--brand);
}
.btn--brand:hover {
  background: var(--brand-deep);
  border-color: var(--brand-deep);
  color: #fff;
}
.btn--brand:active { background: var(--brand-deep); }

/* P2-1 (D2): .btn--block — блочное поведение для mobile drawer */
.btn--block {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  text-align: center;
}

/* P3-2/P3-3 (D7): auth-form и expert-filter радиус 8px → 4px */
.login-register .auth-form [type=submit] { border-radius: var(--r-xs); } /* override: было 8px */
.expert-filter-form .btn-primary { border-radius: var(--r-xs); } /* override: было 8px */

/* P2-2 (D4): .btn-outline-primary — бренд-цвет вместо Bootstrap blue */
.btn.btn-outline-primary,
.btn-outline-primary {
  color: #1a56db;
  border-color: #1a56db;
}
.btn.btn-outline-primary:hover,
.btn-outline-primary:hover {
  background-color: #1a56db;
  border-color: #1a56db;
  color: #fff;
}

/* P1-2 (D3): .btn-auth-submit — flex против SVG baseline-gap */
.btn-auth-submit { display: inline-flex; align-items: center; gap: 6px; }
.btn-auth-submit svg { display: block; flex-shrink: 0; width: 20px; height: 20px; }

/* ============================================================
   V2-PATCH: радиусы / типографика / цвета (оверрайды)
   ============================================================ */

/* Радиусы → 8px (override для тех, что пока не ≤ r-md) */
.industry-card__icon,
.p-essence, .quintessence-card,
.card-grid-2, .experts-filter { border-radius: var(--r-md); } /* P2-16: было 10px */

/* Радиусы → 4px */
.project-collection-card__badge { border-radius: var(--r-xs); }  /* P2-15: было 20px */
.product-tabs .v2-tag, .tag-new, .modal-stage__caption,
.megamenu__promo-cover, .megamenu__col a,
.ru-region, .user-dropdown a { border-radius: var(--r-xs); }     /* P2-17: было 3px */

/* Радиусы → 6px (поля модалки) */
.p-modal-field input,
.p-modal-field textarea,
.p-modal-field select { border-radius: var(--r-sm); } /* P2-18: override было 7px */

/* Типографика → 14px (var(--t-13)) */
.article-badge,
.p-matrix__row-val,
.p-manager-block__contact-link { font-size: var(--t-13); } /* P2-21: было 12px */

/* P2-20: мобайл шрифты → 14px */
@media (max-width: 720px) { .header-auth { font-size: var(--t-13); } }
@media (max-width: 639px) {
  .product-tabs a, .product-row__desc,
  .product-row > *:nth-child(n+3),
  .opt-matrix__head, .opt-row, .table { font-size: var(--t-13); }
}

/* ============================================================
   V3/V4-PATCH: layout / контент
   ============================================================ */

/* P0-1: рендер Markdown в карточке кейса — стили .copy-md */
.copy-md h1,.copy-md h2,.copy-md h3 { font-family: var(--font-display); font-weight: 700; margin: 24px 0 12px; }
.copy-md h2 { font-size: var(--t-21); }
.copy-md h3 { font-size: var(--t-17); }
.copy-md p  { margin: 0 0 14px; }
.copy-md ul,.copy-md ol { padding-left: 24px; margin: 0 0 14px; }
.copy-md strong { font-weight: 700; }
/* P0-1b: blockquote — строгий стиль (без коробки/скругления) */
.copy-md blockquote { margin: 24px 0; padding: 4px 0 4px 16px; background: none; border: 0; border-left: 3px solid var(--brand); border-radius: 0; font-size: var(--t-17); line-height: 1.55; color: var(--ink-2); }
.copy-md blockquote p { margin: 0 0 6px; }
.copy-md blockquote p:last-child { margin: 0; }
.copy-md blockquote em, .copy-md blockquote cite { display: block; margin-top: 8px; font-size: var(--t-13); color: var(--ink-3); font-style: normal; }
.copy-md blockquote cite.quote-author { display: block; margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--hairline); font-size: var(--t-13); font-style: normal; font-weight: 600; color: var(--brand); }
.copy-md blockquote cite.quote-author::before { content: "– "; color: var(--ink-3); font-weight: 400; }
/* P0-1c: md-table-wrap — border-radius 6px */
.copy-md .md-table-wrap { margin: 24px 0; overflow-x: auto; border: 1px solid var(--hairline); border-radius: var(--r-sm); }

/* P1-5: /russia hero overflow. Hero уже содержит .container (даёт боковые
   отступы), поэтому padding-inline на самом .hero не нужен — иначе двойной
   отступ и "съезд" контента. Ограничиваем переполнение без доп. паддинга. */
#region .hero { overflow-x: hidden; box-sizing: border-box; }

/* P2-11/P2-12: скрыть полосу прокрутки табов */
.subtabs, .tabbar { scrollbar-width: none; -ms-overflow-style: none; }
.subtabs::-webkit-scrollbar, .tabbar::-webkit-scrollbar { display: none; }

/* P1-7: H1–H4 перенос длинных слов */
h1, h2, h3, h4 { overflow-wrap: break-word; word-break: break-word; }
.hero__title, .product-hero__title, .p-hero__title {
  overflow-wrap: break-word; word-break: break-word; min-width: 0;
}

/* P1-13: тарифы 1 колонка на мобиле 480px */
@media (max-width: 480px) { .p-tariffs { grid-template-columns: 1fr; } }

/* P1-11: имена тарифов без CAPS-разрядки */
.pricing-head-two .title { letter-spacing: 0; text-transform: capitalize; }

/* ============================================================
   #235 #236 #237 #247 — v3 visual unification patch
   ============================================================ */

/* #235/#247: кнопки — единый border-radius 4px, убираем все v2-перебивки > 6px */
.btn,
.btn--primary,
.btn--ghost,
.btn--brand-ghost,
.btn-icon,
.btn--on-light,
.btn--on-dark { border-radius: 4px; }

/* #236: .btn--primary:hover — тёмный фон + белый текст (явный override) */
.btn--primary:hover,
.btn--loading {
  background: var(--brand-deep);
  color: #fff !important;
  border-color: var(--brand-deep);
}

/* #237: навигация — без underline, без геометрических сдвигов при hover */
.nav-main__link,
.nav-main__link:hover,
.nav-main__link:focus {
  text-decoration: none !important;
  border-bottom: 0 !important;
  padding-block: 4px;     /* фиксируем — не меняем при hover */
  padding-inline: 8px;   /* #339: базовый padding, не меняется при hover */
}
.nav-main__link::before { display: none !important; } /* underline-анимация отключена */
.nav-main a:hover { text-decoration: none; }

/* ============================================================
   MR-I0: радиус кнопок на странице продукта — 4px (правило ≤6px).
   Откат старого fix/product-page-2 "прямые углы (radius:0)" по запросу владельца.
   ============================================================ */
#product .btn,
#product .btn--primary,
#product .btn--ghost,
#product .btn--brand,
#product .btn--brand-ghost,
#product .btn--text,
#product .p-hero__icon-btn,
#product .p-modal__submit,
#p-request-modal .btn,
#p-request-modal .btn--primary { border-radius: var(--r-xs, 4px); }

/* ============================================================
   fix/p0-analogs — кликабельные чипы категорий (#142, #144)
   a.chip — hover-эффект для чипов-ссылок (на каталог/категорию)
   ============================================================ */
a.chip {
  text-decoration: none;
  transition: border-color .15s, box-shadow .15s, background .15s;
  cursor: pointer;
}
a.chip:hover {
  border-color: var(--brand);
  color: var(--brand);
}

/* ============================================================
   fix/p1-catalog — compare badge + compare button on cards (#71, #72)
   ============================================================ */
.compare-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  background: var(--brand);
  color: #fff;
  border-radius: 6px;
  vertical-align: middle;
  margin-left: 4px;
}
.compare-add-btn { border-radius: 6px !important; }
.compare-add-btn--added { background: var(--brand) !important; color: #fff !important; border-color: var(--brand) !important; }

/* ============================================================
   fix/p1-analogs #66 — единый hero-фон, пагинация, крошки
   ============================================================ */

/* Hero-зона аналогов: тёплый бежево-красный фон (#FEF2F2) — #294.
   Контент ниже — белый (band--white / контейнеры уже #fff).
   Классы .analogs-index-band и .analogs-show-band заменяют band--tint
   в шаблонах index/show аналогов.  */
.analogs-index-band,
.analogs-show-band {
  background: #fef2f2;
  border-bottom: 1px solid #fecaca;
  padding-block: 48px;
}

/* Крошки внутри hero-зоны: отступ от nav — #294 */
.analogs-index-band .breadcrumbs,
.analogs-show-band .breadcrumbs {
  background: transparent;
  padding-block: 0 0;
  margin-top: 24px;
  margin-bottom: 16px;
}

/* Унификация кнопок border-radius: 0 (правило P1) */
.analogs-index-band .btn,
.analogs-show-band .btn { border-radius: 0; }

/* #299: чипы категорий на /analog/{slug} — CSS-класс вместо inline-стилей */
.analog-category-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  background: #fff;
  border: 1px solid var(--hairline);
  font-size: var(--t-13);
  font-weight: 600;
  color: var(--ink);
  text-decoration: none;
  transition: border-color .15s ease;
}
.analog-category-chip:hover {
  border-color: var(--brand);
}
.analog-category-chip__count {
  color: var(--brand);
  font-variant-numeric: tabular-nums;
}
.analog-vendor-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px;
  background: #fff;
  border: 1px solid var(--hairline);
  border-radius: 6px;
  text-decoration: none;
  color: var(--ink);
  font-size: var(--t-13);
  font-weight: 600;
  transition: border-color .15s;
}
.analog-vendor-chip:hover { border-color: var(--hairline-strong); }
.analog-vendor-chip__label { color: var(--ink-3); }

/* #66: company hero — унифицированный layout с product show */
.analogs-hero--company { display: grid; grid-template-columns: 160px 1fr 280px; gap: 40px; align-items: start; }
@media (max-width: 1100px) {
  .analogs-hero--company { grid-template-columns: 140px 1fr; }
  .analogs-hero--company > aside { grid-column: 1 / -1; grid-template-columns: 1fr 1fr; display: grid; gap: 14px; }
}
@media (max-width: 768px) {
  .analogs-hero--company { grid-template-columns: 1fr; gap: 24px; }
  .analogs-hero--company > aside { grid-template-columns: 1fr 1fr; }
}
/* Responsive: .analogs-index-band и .analogs-show-band */
@media (max-width: 900px) {
  .analogs-index-band,
  .analogs-show-band { padding-block: 32px; }
}

/* ══════════════════════════════════════════════════════════════════════════
   feat(NEW-2-02): Unified entity cards — proj-card, report-card, co-card
   ══════════════════════════════════════════════════════════════════════════ */

/* ── proj-grid / proj-card (кейсы-внедрения, листинг) ── */
.proj-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 20px;
}
.proj-card {
  background: #fff;
  border: 1px solid var(--hairline, #e6e8ec);
  border-radius: var(--r-xs);
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  transition: border-color .15s ease;
  text-decoration: none;
  color: inherit;
}
.proj-card:hover {
  border-color: var(--brand, #0049DC);
}
.proj-card__id {
  font-size: var(--t-13, 13px);
  font-weight: 700;
  color: var(--ink-3, #79808c);
  letter-spacing: .04em;
  text-transform: uppercase;
}
.proj-card__title {
  font-family: var(--font-display, 'Manrope', sans-serif);
  font-weight: 700;
  font-size: var(--t-17, 17px);
  line-height: 1.35;
  color: var(--ink, #11151c);
  margin: 0;
}
.proj-card__title a { color: var(--ink, #11151c) !important; text-decoration: none; }
.proj-card__title a:hover { color: var(--brand, #1E5BFF) !important; }
.proj-card__customer {
  font-size: var(--t-15, 15px);
  color: var(--ink-2, #4B5466);
  font-weight: 500;
}
.proj-card__desc {
  font-size: var(--t-15, 15px);
  color: var(--ink-2, #4B5466);
  line-height: 1.5;
  flex: 1 1 0%;
}
.proj-card__result {
  margin-top: 4px;
  padding: 10px 12px;
  background: var(--bg-soft, #f6f7f9);
  border-left: 3px solid var(--success, #19c37d);
  border-radius: 0;
  font-size: var(--t-14, 14px);
  color: var(--ink, #11151c);
}
.proj-card__result-label {
  font-size: var(--t-12, 12px);
  font-weight: 700;
  color: var(--success, #19c37d);
  text-transform: uppercase;
  letter-spacing: .06em;
  display: block;
  margin-bottom: 4px;
}
.proj-card__meta {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  font-size: var(--t-13, 13px);
  color: var(--ink-3, #79808c);
}
.proj-card__meta .chip {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* ── reports-grid / report-card (аналитика / исследования) ── */
.reports-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 20px;
  margin: 28px 0 8px;
}
.report-card {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 22px 24px;
  background: #fff;
  border: 1px solid var(--hairline, #e6e8ec);
  border-radius: var(--r-sm, 6px);
  text-decoration: none;
  color: inherit;
  transition: border-color .15s ease;
}
.report-card:hover {
  border-color: var(--brand, #0049DC);
}
.report-card__chips { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.report-card__title {
  font-family: var(--font-display, 'Manrope', sans-serif);
  font-size: var(--t-21, 21px);
  line-height: 1.25;
  margin: 4px 0 0;
  color: var(--ink, #11151c);
}
.report-card__desc { font-size: var(--t-15, 15px); color: var(--ink-3, #79808c); line-height: 1.5; }
.report-card__foot {
  margin-top: auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding-top: 8px;
  font-size: var(--t-13, 13px);
  color: var(--ink-3, #79808c);
}
.report-card__open { color: var(--brand, #0049DC); font-weight: 600; }

/* ── co-card (карточка компании, на основе pc3) ── */
/* Дополнительные стили; базовые — из .pc3 (product-card) */
.co-card { /* inherits .pc3 */ }
.co-card .pc3__name-link { color: var(--ink, #11151c); text-decoration: none; }
.co-card .pc3__name-link:hover { color: var(--brand, #0049DC); }

/* ── news-item__lead (описание новости) — может отсутствовать в старом CSS ── */
.news-item__lead { font-size: var(--t-15, 15px); color: var(--ink-2, #4B5466); margin-top: 8px; line-height: 1.5; }
.news-item__foot { display: flex; gap: 8px; align-items: center; font-size: var(--t-13, 13px); color: var(--ink-3, #79808c); margin-top: 10px; }
.news-item__sep { opacity: .4; }
.news-item__src { color: var(--ink-2, #4B5466); }
.news-item__src:hover { color: var(--ink); text-decoration: underline; }

/* ============================================================
   §NEWS-DETAIL — детальная страница новости (post.blade + news/show)
   Единые классы вместо инлайнов. Радиусы ≤6px.
   ============================================================ */

/* H1 стандартного размера (НЕ t-56); margin-top даёт воздух после мета-строки */
.news-detail__title { font-family: var(--font-display); font-weight: 700; font-size: var(--t-40); line-height: 1.12; letter-spacing: -0.02em; margin: 16px 0 24px; color: var(--ink); }

/* Мета-строка над/под заголовком: чипы рубрик + дата */
.news-detail__meta { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 20px; }
.news-detail__date { color: var(--ink-3); font-size: var(--t-15); }
.news-detail__type { color: var(--ink-3); }

/* Лид/анонс */
.news-detail__lead { font-size: var(--t-21); color: var(--ink-2); line-height: 1.5; margin-bottom: 32px; font-weight: 400; }

/* Обложка */
.news-detail__cover { margin: 0 0 32px; border-radius: var(--r-sm); overflow: hidden; border: 1px solid var(--hairline); background: var(--bg-soft); }
.news-detail__cover img { width: 100%; height: auto; display: block; max-height: 480px; object-fit: cover; }

/* Тело статьи */
.news-detail__body { font-size: var(--t-17); line-height: 1.7; color: var(--ink); }
.news-detail__copy { font-size: var(--t-17); line-height: 1.7; }

/* Двухколоночный layout: контент + сайдбар 300px */
.news-detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 48px; align-items: start; }

/* Hero-строка (заголовок + опц. карточка компании) */
.news-detail-hero { padding-block: 0 32px; border-bottom: 1px solid var(--hairline); display: grid; grid-template-columns: 1fr auto; gap: 32px; align-items: start; }

/* Блок тегов */
.news-detail__tags { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 40px; padding-top: 24px; border-top: 1px solid var(--hairline); align-items: center; }
.news-detail__tags-label { color: var(--ink-3); font-size: var(--t-15); }

/* Share-панель */
.news-detail__share { margin-top: 32px; padding-top: 24px; border-top: 1px solid var(--hairline); display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.news-detail__share .btn svg { flex-shrink: 0; }

/* Навигация назад */
.news-detail__nav { margin-top: 48px; display: flex; gap: 12px; flex-wrap: wrap; }

/* ── Сайдбар ── */
.news-aside { position: sticky; top: 80px; display: flex; flex-direction: column; gap: 24px; }
.news-aside__group { display: flex; flex-direction: column; gap: 12px; }
.news-aside__title { font-size: var(--t-11); letter-spacing: 0.04em; text-transform: uppercase; color: var(--ink-3); font-weight: 600; margin-bottom: 4px; }

/* Карточка компании / продукта / материала в сайдбаре */
.news-aside-card { display: flex; gap: 12px; align-items: center; text-decoration: none; color: var(--ink); padding: 14px; border: 1px solid var(--hairline); border-radius: var(--r-sm); background: var(--bg); transition: border-color .15s var(--ease); }
.news-aside-card:hover { border-color: var(--ink-3); }
.news-aside-card__logo { width: 48px; height: 48px; object-fit: contain; border-radius: var(--r-xs); border: 1px solid var(--hairline); background: var(--bg); flex-shrink: 0; }
.news-aside-card__name { font-weight: 700; font-size: var(--t-15); color: var(--ink); }
.news-aside-card__sub { font-size: var(--t-12); color: var(--ink-3); margin-top: 2px; }

/* Текстовая карточка-ссылка в сайдбаре (без лого) */
.news-aside-link { display: block; text-decoration: none; color: var(--ink); padding: 12px 14px; border: 1px solid var(--hairline); border-radius: var(--r-sm); background: var(--bg); transition: border-color .15s var(--ease); }
.news-aside-link:hover { border-color: var(--ink-3); }
.news-aside-link__title { font-weight: 600; font-size: var(--t-15); line-height: 1.35; }
.news-aside-link__date { font-size: var(--t-12); color: var(--ink-3); margin-top: 4px; }

/* Карточка компании в hero (правый блок шапки) */
.news-hero-company { min-width: 240px; max-width: 280px; padding: 20px; border: 1px solid var(--hairline); border-radius: var(--r-sm); background: var(--bg); }
.news-hero-company__row { display: flex; gap: 14px; align-items: center; text-decoration: none; color: var(--ink); }
.news-hero-company__logo { width: 60px; height: 60px; object-fit: contain; border-radius: var(--r-sm); border: 1px solid var(--hairline); background: var(--bg); flex-shrink: 0; }
.news-hero-company__name { font-weight: 700; font-size: var(--t-15); color: var(--ink); }
.news-hero-company__inn { font-size: var(--t-12); color: var(--ink-3); margin-top: 2px; }
.news-hero-company .btn { margin-top: 14px; width: 100%; }

/* ── Сетка карточек «Ещё в этом разделе» / «Другие новости» ── */
.news-feed-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; }
/* #409 (12.7): уменьшёны отступы вокруг «Другие новости» (было 48px + 32px) */
.news-feed-section { margin-top: 24px; padding-top: 16px; }
/* #409 (12.7-v2): уменьшаем громадный padding .band у блока «Другие новости» */
.band:has(.news-feed-section) { padding-block: 28px; }
.news-feed-section__title { font-family: var(--font-display); font-size: var(--t-28); margin: 0 0 20px; }

/* ── AJAX «Ещё новости» (infinite scroll новостей компаний) ── */
/* Лента бесконечной прокрутки – компактные отступы, чтобы не создавать огромный пробел
   между концом редакционной статьи и подгружаемыми новостями компаний. */
.band.news-infinite { padding-block: 0 !important; }
.news-infinite { padding-bottom: 0; }
.news-infinite__sentinel { min-height: 24px; margin: 8px 0; display: flex; align-items: center; justify-content: center; }
.news-infinite__status { font-size: var(--t-13); color: var(--ink-3); }

/* Когда после news-infinite следует ещё одна .band (например «Другие новости раздела»),
   убираем у неё верхний padding – блоки склеиваются визуально. */
.news-infinite + .band { padding-top: 16px; }

/* Верхний и нижний отступ блока «навигация» (← Назад в новости) – сокращаем. */
.news-detail__nav { margin-top: 24px !important; margin-bottom: 8px; }

/* ── Элемент бесконечной ленты целых новостей ──
   Каждый элемент – целая статья с 2–3 вложенными <section class="band"> внутри,
   а у .band – padding-block: 64px. Накапливалось до ~256px пустоты на одну новость.
   Обнуляем padding внутренних .band и задаём единый вертикальный ритм через .news-feed-item. */
.news-feed-item { background: var(--bg); padding-block: 0; }
.news-feed-item .band { padding-block: 16px !important; }
.news-feed-item .band--detail { padding-top: 0 !important; }
.news-feed-item .band--crumbs { padding-bottom: 0 !important; }

/* Разделитель между элементами ленты: просто пустой отступ, без горизонтальной линии
   (полоска выглядела посреди пустоты и сбивала ритм – убрал). */
.news-feed-item__sep { display: none; }
.news-feed-item + .news-feed-item { margin-top: 16px; }
.news-feed-item__meta { margin-bottom: 8px; }
.news-feed-item__title { margin-top: 8px; margin-bottom: 28px; }
.news-feed-item__title-link { text-decoration: none; color: var(--ink); }
.news-feed-item__title-link:hover { color: var(--ink); text-decoration: underline; }

/* JS-карточка новости компании (рендерится через классы, без инлайнов) */
.news-jcard { display: block; text-decoration: none; color: inherit; border: 1px solid var(--hairline); border-radius: var(--r-sm); overflow: hidden; background: var(--bg); transition: border-color .15s var(--ease); }
.news-jcard:hover { border-color: var(--ink-3); }
.news-jcard__media { overflow: hidden; aspect-ratio: 16/9; background: var(--bg-soft); }
.news-jcard__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.news-jcard__body { padding: 16px; }
.news-jcard__title { font-weight: 700; font-size: var(--t-15); color: var(--ink); line-height: 1.35; margin-bottom: 8px; }
.news-jcard__snippet { font-size: var(--t-15); color: var(--ink-2); line-height: 1.5; margin: 0 0 10px; }
.news-jcard__date { font-size: var(--t-13); color: var(--ink-3); }

/* ── Модалка «Запросить сервис» (перенос из inline <style>) ── */
@keyframes v3spin { to { transform: rotate(360deg); } }
.v3-modal { display: none; position: fixed; inset: 0; z-index: 9000; background: rgba(0,0,0,.45); align-items: center; justify-content: center; }
.v3-modal.is-open { display: flex; }
.v3-modal__dialog { background: var(--bg); border-radius: var(--r-sm); width: min(640px, 95vw); max-height: 90vh; overflow-y: auto; position: relative; box-shadow: 0 24px 64px rgba(0,0,0,.18); }
.v3-modal__head { padding: 20px 24px; border-bottom: 1px solid var(--hairline); display: flex; align-items: center; justify-content: space-between; }
.v3-modal__title { margin: 0; font-size: var(--t-18); font-weight: 700; color: var(--ink); }
.v3-modal__close { background: none; border: none; cursor: pointer; padding: 4px; color: var(--ink-2); }
.v3-modal__body { padding: 24px; }
.v3-modal__spinner-wrap { text-align: center; padding: 32px 0; }
.v3-spinner { width: 32px; height: 32px; border: 3px solid var(--hairline); border-top-color: var(--brand); border-radius: 50%; animation: v3spin .8s linear infinite; display: inline-block; }
.v3-alert--ok { background: var(--success-tint, #d4edda); color: var(--success, #155724); border: 1px solid var(--success, #c3e6cb); border-radius: var(--r-xs); padding: 16px; }
.v3-alert--err { background: var(--danger-tint, #f8d7da); color: var(--danger, #721c24); border: 1px solid var(--danger, #f5c6cb); border-radius: var(--r-xs); padding: 12px; margin-bottom: 16px; }

/* Адаптив детальной страницы новости */
@media (max-width: 992px) {
  .news-detail-layout { grid-template-columns: 1fr; }
  .news-detail-hero { }
  .news-aside { position: static; }
}


/* Responsive */
@media (max-width: 768px) {
  .proj-grid { grid-template-columns: 1fr; }
  .reports-grid { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════════════════
   NEW-2-05 / GitLab #267 — unified section-tabs for all v3 section pages
   Эталоны: /platform/3433 (border-top/bottom) · /russia/bryansk (btns/count)
   ═══════════════════════════════════════════════════════════════════════ */

/* Wrapper ─ sticky под шапкой, бордеры сверху и снизу (эталон /platform/3433) */
.section-tabs-wrap {
  background: #fff;
  border-top:    1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
}
.section-tabs-wrap--sticky {
  position: sticky;
  top: 65px;
  z-index: 50;
}
/* #E5: табы вендора — полная ширина окна (как region-tabbar) */
/* #V2: full-width nav hack removed — навигация по контенту, как у продукта */

/* Nav strip */
.section-tabs {
  display: flex;
  overflow-x: auto;
  scrollbar-width: none;
  -ms-overflow-style: none;
}
.section-tabs::-webkit-scrollbar { display: none; }

/* Каждый таб — синхронизирован с .region-nav .subtabs__tab (эталон /russia/belgorod) */
.section-tabs__item {
  display:         inline-flex;
  align-items:     center;
  gap:             6px;
  padding:         12px 18px;
  font-size:       var(--t-15);
  font-weight:     500;
  color:           var(--ink-2);
  border-bottom:   2px solid transparent;
  white-space:     nowrap;
  text-decoration: none;
  transition:      color 180ms ease, border-color 180ms ease;
}
.section-tabs__item:hover {
  color:       var(--ink);
}

/* Активный — подчёркнутый brand (эталон /russia/belgorod) */
.section-tabs__item.is-active {
  color:        var(--brand);
  border-bottom-color: var(--brand);
  font-weight:  600;
}

/* Label (текст кнопки) */
.section-tabs__label {
  /* наследует стиль родителя */
}

/* Цифра-бейдж — табуляр-нумбер, второстепенный цвет (эталон /russia/belgorod) */
.section-tabs__count {
  font-size:            var(--t-13);
  font-weight:          500;
  color:                var(--ink-3);
  font-variant-numeric: tabular-nums;
}

/* ═══════════════════════════════════════════════════════
   /russia/{region} и /market/{industry}: класс-зависимые стили
   (привязаны к ТИПУ сущности, не к page-id — HANDOFF §«классы, не #id»)
   ══════════════════════════════════════════════════════ */

/* Навигация по разделам — рельсы на полную ширину окна, кнопки внутри .container.
   margin: 0 calc(50% - 50vw) — пробивает любой родительский .container. */
.region-nav {
  margin-top: 0;
  margin-bottom: 0;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  padding: 0;
  border-top: 1px solid var(--hairline);
  border-bottom: 1px solid var(--hairline);
  background: var(--bg, #fff);
}
.region-nav .subtabs {
  border-bottom: none;
  border-top: none;
  margin: 0;
  padding: 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.region-nav .subtabs::-webkit-scrollbar { display: none; }
.region-nav .subtabs__tab { border-bottom-width: 2px; }

/* Региональные сетки и пустые состояния */
.region-grid-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 14px;
}
.region-listing { margin-top: 32px; padding-bottom: 64px; }
.region-listing__empty { color: var(--ink-3); padding: 48px 0; }
.region-empty { padding: 64px 0; text-align: center; }
.region-empty__text { color: var(--ink-3); }
.region-empty .btn { margin-top: 20px; }
.region-pager { margin-top: 32px; display: flex; justify-content: center; }


/* ============================================================
   §12.2 Pre-footer промо-виджеты — стиль .megamenu__promo (тёмный фон + цветная обложка)
   [NEW-F1-01] Переписано в формате хедера-мегаменю
   ============================================================ */
/* [NEW-F2-01] Обложка ниже, в ней заголовок секции; ниже название/мета/описание/линк */
.promo-above-footer {
  border-top: none;
  padding: 24px 0;
  background: var(--bg);
}
.promo-above-footer__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
}
.promo-above-footer__card {
  background: linear-gradient(135deg, #0A1430 0%, #11214A 100%);
  color: #fff;
  padding: 14px;
  display: grid;
  gap: 6px;
  align-content: start;
  border-radius: var(--r-sm, 6px);
  text-decoration: none;
  transition: transform 180ms ease, box-shadow 180ms ease;
}
.promo-above-footer__card:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 24px rgba(10, 20, 48, 0.18);
}
/* [NEW-F3-01] Обложка выше (16/4.5 — в 1.5× от 16/3), выравнивание по левому краю, внутри заголовок секции сверху + название снизу */
.promo-above-footer__cover {
  width: 100%;
  aspect-ratio: 16 / 4.5;
  background: linear-gradient(135deg, var(--brand) 0%, var(--brand-deep) 100%);
  border-radius: var(--r-xs, 4px);
  position: relative;
  overflow: hidden;
  margin-bottom: 4px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: space-between;
  padding: 10px 14px;
}
.promo-above-footer__cover::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(rgba(255,255,255,0.06) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.06) 1px, transparent 1px);
  background-size: 18px 18px;
}
.promo-above-footer__cover--project {
  background: linear-gradient(135deg, #1A7F5A 0%, #0F4A35 100%);
}
.promo-above-footer__cover--report,
.promo-above-footer__cover--news {
  background: linear-gradient(135deg, #6B3FA0 0%, #3A2160 100%);
}
.promo-above-footer__cover-text {
  position: relative;
  z-index: 1;
  font-family: var(--font-display, inherit);
  font-weight: 700;
  font-size: var(--t-11);
  color: rgba(255,255,255,.85);
  text-shadow: 0 1px 3px rgba(0,0,0,0.25);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-align: left;
}
.promo-above-footer__meta {
  font-size: var(--t-12);
  color: rgba(255,255,255,.55);
  letter-spacing: 0.02em;
  font-weight: 500;
}
/* [NEW-F3-01] Название внутри обложки, clamp до 2 строк, по левому краю */
.promo-above-footer__title {
  position: relative;
  z-index: 1;
  color: #fff;
  font-size: var(--t-17);
  line-height: 1.25;
  margin: 0;
  font-weight: 700;
  text-align: left;
  text-shadow: 0 1px 4px rgba(0,0,0,0.3);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  word-break: break-word;
  overflow-wrap: anywhere;
  /* bugs-0706 #17.1: без переносов по слогам */
  -webkit-hyphens: manual;
  hyphens: manual;
}
.promo-above-footer__desc {
  font-size: var(--t-13);
  color: rgba(255,255,255,.78);
  margin: 2px 0 0;
  line-height: 1.4;
}
.promo-above-footer__cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: var(--t-13);
  font-weight: 600;
  color: #fff;
  border-bottom: 1px solid rgba(255,255,255,.5);
  padding-bottom: 2px;
  width: fit-content;
  transition: gap 180ms ease, color 180ms ease, border-bottom-color 180ms ease;
}
.promo-above-footer__card:hover .promo-above-footer__cta {
  gap: 10px;
  color: #8FE3AB;
  border-bottom-color: #8FE3AB;
}
.promo-above-footer__card--report:hover .promo-above-footer__cta,
.promo-above-footer__card--news:hover .promo-above-footer__cta {
  color: #C5A8F2;
  border-bottom-color: #C5A8F2;
}
@media (max-width: 980px) {
  .promo-above-footer__grid { grid-template-columns: 1fr; gap: 10px; }
  .promo-above-footer__card { padding: 12px; }
  .promo-above-footer__cover { aspect-ratio: 16 / 4; padding: 10px 12px; }
}

/* [NEW-F1-04] Я.Метрика-информер в колонке «Платформа» — компактно, без увеличения высоты */
.footer-col__ym {
  margin-top: 8px;
  list-style: none;
}
.footer-col__ym::marker { content: ""; }
.footer-ym-informer {
  display: inline-block;
  line-height: 0;
  border-bottom: none !important;
  padding-bottom: 0 !important;
}
.footer-ym-informer__img {
  width: 88px;
  height: 31px;
  border: 0;
  display: block;
  opacity: 0.85;
  transition: opacity 180ms ease;
}
.footer-ym-informer:hover .footer-ym-informer__img { opacity: 1; }
/* ============================================================
   [NEW-4-01-CSS] L1 «Разделы категории» — строгие карточки подкатегорий (как .news-item)
   ============================================================ */
.l2-subcats__label {
  font-size: var(--t-11, 11px);
  color: var(--ink-3, #79808c);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-weight: 600;
  margin-bottom: 12px;
}
.l2-subcats__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 12px;
}
.l2-subcat-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: var(--bg);
  border: 1px solid var(--hairline);
  border-radius: 6px;
  padding: 12px 16px;
  text-decoration: none;
  color: var(--ink);
  box-shadow: none;
  transition: border-color .15s var(--ease);
}
.l2-subcat-card:hover {
  border-color: var(--hairline-strong);
}
.l2-subcat-card__name {
  font-size: var(--t-15, 15px);
  font-weight: 500;
  line-height: 1.3;
}
.l2-subcat-card__count {
  flex: 0 0 auto;
  font-size: var(--t-13, 13px);
  color: var(--ink-3, #79808c);
  font-variant-numeric: tabular-nums;
}
@media (max-width: 720px) {
  .l2-subcats__grid { grid-template-columns: 1fr; }
}

/* ============================================================
   fix/mobile-critical — Критические мобильные фиксы
   FIX-1: Бургер-меню и мобильная навигация
   FIX-2: Горизонтальный скролл таблиц на мобиле
   FIX-3: Перенос h1/hero-заголовков (без break-all)
   FIX-4: KPI-полоса /companies — 1 колонка на мобиле
   ============================================================ */

/* FIX-1: Бургер-кнопка — скрыта по умолчанию (десктоп) */
.nav-burger {
  display: none;
}

/* FIX-1: Мобильная навигация — скрыта по умолчанию */
.mobile-nav {
  display: none !important;
}

/* FIX-1: На мобиле/планшете — показываем бургер и панель */
/* [MR-I2b²] 880 → 1279, синхронно с правилом скрытия .nav-main выше. */
@media (max-width: 1279px) {
  .nav-burger {
    display: flex;
    flex-direction: column;
    gap: 4px;
    width: 40px;
    height: 40px;
    align-items: center;
    justify-content: center;
    background: none;
    border: 1px solid var(--hairline, #E1E6EE);
    border-radius: var(--r-sm, 6px);
    cursor: pointer;
    flex-shrink: 0;
    order: 1;
  }
  .nav-burger span {
    width: 18px;
    height: 2px;
    background: var(--ink, #1A2033);
    border-radius: 1px;
    display: block;
  }
  .mobile-nav {
    display: none !important;
    width: 100%;
    background: #fff;
    border-top: 1px solid var(--hairline, #E1E6EE);
  }
  .mobile-nav.is-open {
    display: block !important;
  }
  .mobile-nav__group {
    border-bottom: 1px solid var(--hairline, #E1E6EE);
  }
  .mobile-nav__toggle {
    display: block;
    width: 100%;
    text-align: left;
    font-weight: 600;
    font-size: var(--t-15, 15px);
    padding: 12px 16px;
    background: none;
    border: none;
    border-bottom: 1px solid var(--hairline, #E1E6EE);
    cursor: pointer;
    color: var(--ink, #1A2033);
  }
  .mobile-nav__toggle.is-open {
    border-bottom-color: transparent;
  }
  .mobile-nav__sub {
    display: none;
    list-style: none;
    margin: 0;
    padding: 0;
  }
  .mobile-nav__sub.is-open {
    display: block;
  }
  .mobile-nav__sub li a {
    display: block;
    padding: 8px 16px 8px 28px;
    color: var(--ink, #1A2033);
    text-decoration: none;
    font-size: var(--t-14, 14px);
    border-bottom: 1px solid var(--hairline, #E1E6EE);
  }
  .mobile-nav__sub li:last-child a {
    border-bottom: none;
  }
  .mobile-nav__auth {
    padding: 12px 16px;
    display: flex;
    flex-direction: column;
    gap: 4px;
  }
  .mobile-nav__auth-link {
    display: block;
    padding: 10px 16px;
    color: var(--ink, #1A2033);
    text-decoration: none;
    font-size: var(--t-14, 14px);
    border: 1px solid var(--hairline, #E1E6EE);
    border-radius: var(--r-xs, 4px);
    background: none;
    cursor: pointer;
    width: 100%;
    text-align: center;
  }
  .mobile-nav__auth-link--primary {
    background: var(--brand, #1E5BFF);
    color: #fff;
    border-color: var(--brand, #1E5BFF);
  }
  .mobile-nav__auth-link--danger {
    color: #c0392b;
    border-color: #f0c0bc;
  }
}

/* FIX-1: Десктоп — панель никогда не видна */
/* [MR-I2b²] 881 → 1280, синхронно с max-width:1279. */
@media (min-width: 1280px) {
  .mobile-nav {
    display: none !important;
  }
  .nav-burger {
    display: none !important;
  }
}

/* FIX-2: Горизонтальный скролл таблиц на мобиле */
@media (max-width: 880px) {
  table.table--zebra,
  .v3 table.table--zebra {
    display: block;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}

/* FIX-3: Hero-заголовки — перенос только по слову, без переносов по слогам.
   bugs-0706 #17.1: hyphens:auto рубил "вен-доры" / "россий-ского" — переключили на manual. */
@media (max-width: 880px) {
  .hero__title,
  .product-hero__title,
  .p-hero__title,
  h1, h2, h3,
  .page-title,
  .crumbs__title,
  .news-detail__title,
  .band--news-detail h1 {
    overflow-wrap: break-word;
    word-break: normal;
    -webkit-hyphens: manual;
    hyphens: manual;
  }
}

/* FIX-4: KPI-полоса /companies — одна колонка на мобиле */
@media (max-width: 640px) {
  .companies-kpi-strip,
  [style*="grid-template-columns:repeat(3,1fr)"],
  [style*="grid-template-columns: repeat(3,1fr)"],
  [style*="grid-template-columns:repeat(3, 1fr)"],
  [style*="grid-template-columns: repeat(3, 1fr)"] {
    grid-template-columns: 1fr !important;
  }
}
/* MR-E: /finder — весь блок перенесён в конец файла (см. в конце style.css) */

/* ═══════════════════════════════════════════════════════════════════════
   NEW-18-02: project detail layout — перенесено в обслуживаемое зеркало (#357)
   ═══════════════════════════════════════════════════════════════════════ */

/* Two-column layout wrapper */
.proj-detail-wrap {
  display: flex;
  gap: 40px;
  align-items: flex-start;
  /* bugs-0706 #3.1 (#391): верхний padding убран — крошки уже дают отступ */
  padding: 0 0 32px;
}
.proj-detail-article {
  flex: 1;
  min-width: 0;
}
/* bugs-0706 #391 — хвост: увеличены ширины контента и сайдбара. */
.proj-detail-article--no-sidebar { max-width: 980px; }
.proj-detail-article--sidebar    { max-width: 820px; }

/* Meta bar */
.proj-detail-meta {
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 20px;
  padding: 12px 0;
}
.proj-detail-meta__pub {
  color: var(--ink-3, #79808c);
  font-size: var(--t-15, 15px);
}

/* H2 inside project body */
.proj-copy-h2 {
  font-family: var(--font-display, 'Manrope', sans-serif);
  font-size: 24px;
  margin: 40px 0 16px;
}

/* KPI / meta block */
.proj-kpi-block {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 1px;
  background: var(--hairline);
  border: 1px solid var(--hairline);
  border-radius: var(--r-sm);
  overflow: hidden;
  margin: 24px 0;
  padding: 0;
}
.proj-kpi-block > div { background: #fff; padding: 14px 16px; }
.proj-kpi-item__value {
  font-size: var(--t-17, 17px);
  font-weight: 600;
  margin-top: 6px;
}
.proj-kpi-item__sub {
  font-size: var(--t-13, 13px);
  color: var(--ink-3, #79808c);
  margin-top: 2px;
}
.proj-kpi-item__brand-link { color: var(--brand, #0049DC); }

/* Copy area */
.proj-copy {
  font-size: var(--t-17, 17px);
  line-height: 1.65;
}

/* Analog chips */
.proj-analog-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 16px;
}
.proj-analog-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border: 1px solid var(--hairline, #e6e8ec);
  background: var(--bg-soft, #f6f7f9);
  font-size: var(--t-15, 15px);
}
.proj-analog-chip__logo { height: 20px; width: auto; object-fit: contain; }
.proj-analog-chip__link { color: var(--ink, #11151c); font-weight: 600; }
.proj-analog-chip__country { color: var(--ink-3, #79808c); font-size: var(--t-13, 13px); }

/* Migration-from info block (kpi_migration_from always-visible) */
.proj-migration-from {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 14px 18px;
  margin: 20px 0;
  background: var(--bg-tint, #EEF3FF);
  border-left: 3px solid var(--brand, #1E5BFF);
  border-radius: 0 var(--r-xs, 4px) var(--r-xs, 4px) 0;
}
.proj-migration-from__label { margin-bottom: 0; }
.proj-migration-from__value {
  font-size: var(--t-15, 15px);
  font-weight: 600;
  color: var(--ink, #11151c);
}

/* Gallery */
.proj-gallery {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 12px;
  margin-bottom: 24px;
}
.proj-gallery__img {
  width: 100%;
  height: 140px;
  object-fit: cover;
  display: block;
}

/* Request form card */
.proj-request-card {
  padding: 24px;
  border: 1px solid var(--hairline, #E1E6EE);
  border-radius: var(--r-xs, 4px);
  background: var(--bg-soft, #F5F7FA);
  margin: 48px 0;
}
.proj-request-card__title {
  margin: 0 0 4px;
  font-family: var(--font-display, 'Manrope', sans-serif);
  font-size: var(--t-17, 17px);
  font-weight: 700;
  color: var(--ink, #11151c);
}
.proj-request-card__sub {
  font-size: var(--t-13, 13px);
  color: var(--ink-3, #79808c);
  margin: 0 0 16px;
}

/* Request form layout */
.proj-request-form {
  display: grid;
  gap: 10px;
}
.proj-request-form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.proj-request-form__row--full { grid-template-columns: 1fr; }
.proj-request-form__field {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.proj-request-form__field--full { grid-column: 1 / -1; }
.proj-request-form__name-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: 6px;
}
.proj-request-form__label {
  font-size: var(--t-11, 11px);
  font-weight: 600;
  color: var(--ink-2, #4B5466);
}
.proj-request-form__required { color: var(--danger, #d32f2f); }
.proj-request-form__hint { font-weight: 400; color: var(--ink-3, #79808c); }
.proj-request-form__input {
  border: 1px solid var(--hairline, #E1E6EE);
  border-radius: 0;
  padding: 8px 10px;
  font-size: var(--t-13, 13px);
  font-family: inherit;
  width: 100%;
  box-sizing: border-box;
}
.proj-request-form__textarea {
  resize: vertical;
  min-height: 68px;
}
.proj-request-form__auth-notice {
  padding: 10px 12px;
  background: #f0f4f9;
  border-left: 3px solid var(--brand-deep, #0A3BB5);
  font-size: var(--t-13, 13px);
  color: var(--ink-2, #4B5466);
}
.proj-request-form__consent-row {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  font-size: var(--t-11, 11px);
  color: var(--ink-3, #79808c);
}
.proj-request-form__checkbox {
  margin-top: 2px;
  flex-shrink: 0;
  accent-color: var(--brand-deep, #0A3BB5);
}
.proj-request-form__consent-label { cursor: pointer; }
.proj-request-form__actions {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 4px;
}
.proj-request-form__status { font-size: var(--t-13, 13px); flex: 1; }
.proj-request-form__submit { border-radius: 0 !important; padding: 9px 20px; font-size: var(--t-13, 13px); white-space: nowrap; }

/* Actions row */
.proj-actions { display: flex; gap: 16px; margin-top: 48px; }

/* Right sidebar */
.project-sidebar {
  width: 320px;
  flex-shrink: 0;
  position: sticky;
  top: 80px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-top: 60px;
}

/* Unified sidebar card */
.project-side-card {
  border: 1px solid var(--hairline, #E1E6EE);
  border-radius: var(--r-xs, 4px);
  background: var(--bg-soft, #F5F7FA);
  padding: 20px;
}
.project-side-card__eyebrow { margin-bottom: 12px; }
.project-side-card__img-wrap { margin-bottom: 14px; }
.project-side-card__img {
  max-width: 100%;
  max-height: 64px;
  object-fit: contain;
  display: block;
}
.project-side-card__name {
  font-family: var(--font-display, 'Manrope', sans-serif);
  font-size: var(--t-17, 17px);
  font-weight: 700;
  margin-bottom: 6px;
}
.project-side-card__name-link { color: var(--ink, #11151c); text-decoration: none; }
.project-side-card__name-link:hover { color: var(--brand, #1E5BFF); }
.project-side-card__name a { color: var(--brand); text-decoration: none; }
.project-side-card__name a:hover { text-decoration: underline; }
.project-side-card__meta { font-size: var(--t-13, 13px); color: var(--ink-3, #79808c); margin-bottom: 8px; }
.project-side-card__desc { font-size: var(--t-13, 13px); color: var(--ink-2, #4B5466); line-height: 1.5; margin-bottom: 12px; }
.project-side-card__btn { width: 100%; text-align: center; margin-top: 8px; border-radius: 0 !important; }

/* proj-request-card modal-stage compat */
.proj-request-card.modal-stage {
  min-height: 0 !important;
  background: var(--bg-soft) !important;
  padding: 0 !important;
  border: 1px solid var(--hairline);
  border-radius: var(--r-sm, 6px);
  overflow: visible;
  margin-top: 28px;
}
.proj-request-card.modal-stage::before { display: none !important; }
.proj-request-card .modal-card {
  position: static;
  width: 100%;
  margin-top: 0;
  padding: 24px;
  border-radius: 0;
  box-shadow: none;
  gap: 12px;
}
.modal-stage .btn--primary { border-radius: 0 !important; }

/* Breadcrumbs hero offset */
#project > .container > .breadcrumbs { padding-top: 28px; }

/* Mobile: одна колонка */
@media (max-width: 980px) {
  .proj-detail-wrap { flex-direction: column; padding: 16px 0; }
  .proj-detail-article--sidebar { max-width: 100%; }
  .project-sidebar {
    width: 100%;
    position: static;
    flex-direction: row;
    flex-wrap: wrap;
    margin-top: 0;
  }
  .project-side-card { flex: 1 1 240px; }
  .proj-request-form__row { grid-template-columns: 1fr; }
  .proj-request-form__name-grid { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .proj-kpi-block { grid-template-columns: 1fr; }
}

/* ════════════════════════════════════════════════════════════
   ANALYTICS — unified type-classes (replaces inline/page styles)
   ════════════════════════════════════════════════════════════ */

/* Full-bleed colored backgrounds for hero + bands on analytics pages.
   Type-class (NOT page-id). Apply .full-bleed to the .hero--blue and to .band wrappers. */
.full-bleed {
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
}
/* hero inner grid re-centers content when hero is full-bleed */
.hero--blue.full-bleed > .hero__grid {
  max-width: var(--container);
  margin-inline: auto;
  padding-inline: var(--pad-x);
}

/* research listing band: white background variant (was grey) */
.band--white { background: #fff; }
.band--crumbs { padding-block: 32px 0; }
.band--detail { padding-top: 32px; }

/* ── Шапка детальной новости (заголовок без дубля карточки компании) ── */
.news-detail-head { margin: 8px 0 0; }
.news-detail-head .eyebrow { margin-bottom: 12px; }
.news-detail-head .news-detail__title { margin: 0; }
.news-aside__cta { margin-top: 12px; width: 100%; }

/* ── Ссылки-виджеты новостей — ink (исключены из глобального
      «blue-link» правила platforms-v2.css через :not(...)). ── */
.news-aside-link, .news-aside-link .news-aside-link__title, .news-aside-link .news-aside-link__date,
.news-aside-card, .news-aside-card .news-aside-card__name, .news-aside-card .news-aside-card__sub,
.news-feed-item__title-link, .news-item__src,
.news-detail-head a.news-detail__type {
  color: var(--ink);
}
/* НО СИНЕГО НА HOVER — виджеты новостей остаются ink, подчёркивание вместо перекраски. */
.news-aside-link:hover .news-aside-link__title,
.news-aside-card:hover .news-aside-card__name,
.news-feed-item__title-link:hover,
.news-item__src:hover {
  color: var(--ink);
  text-decoration: underline;
}

/* ── Продукт внутри текста новости (по шаблону виджета компании) ── */
.news-inline-product {
  margin: 28px 0;
  padding: 20px;
  border: 1px solid var(--hairline);
  border-radius: var(--r-sm);
  background: var(--bg);
}
.news-inline-product__head {
  display: flex;
  align-items: flex-start;
  gap: 14px;
}
.news-inline-product__logo-link { flex: 0 0 auto; }
.news-inline-product__logo {
  width: 56px; height: 56px;
  object-fit: cover;
  border-radius: var(--r-sm);
  border: 1px solid var(--hairline);
  background: var(--bg-soft);
}
.news-inline-product__logo--ph {
  display: flex; align-items: center; justify-content: center;
  font-family: var(--font-display);
  font-weight: 700; font-size: var(--t-21);
  color: var(--ink-3);
}
.news-inline-product__body { min-width: 0; }
.news-inline-product__cat {
  font-size: var(--t-11);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--ink-3);
  font-weight: 600;
  margin-bottom: 6px;
}
.news-inline-product__cat a { color: var(--ink-3); }
.news-inline-product__cat a:hover { color: var(--ink-2); }
.news-inline-product__name {
  display: block;
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--t-17);
  line-height: 1.25;
  color: var(--ink);
}
.news-inline-product__name:hover { color: var(--ink); text-decoration: underline; }
.news-inline-product__rating {
  display: flex; align-items: center; gap: 8px;
  margin-top: 6px;
  font-size: var(--t-13);
  color: var(--ink-2);
}
.news-inline-product__stars { color: #E8A33D; letter-spacing: 1px; }
.news-inline-product__rating-num { font-weight: 600; color: var(--ink); }
.news-inline-product__reviews { color: var(--ink-3); }
.news-inline-product__desc {
  font-size: var(--t-15);
  line-height: 1.6;
  color: var(--ink-2);
  margin: 14px 0 0;
}
.news-inline-product__cta { margin-top: 14px; }

/* ── Рубрикатор новостей: крупные, тактильные чипы (не «скучные») ── */
.news-rubricator .chip {
  font-size: var(--t-13);
  text-transform: none;
  letter-spacing: 0;
  padding: 8px 16px;
  border-radius: var(--r-sm);
  background: var(--bg-soft);
  border: 1px solid var(--hairline);
  color: var(--ink-2);
  transition: color .15s var(--ease), border-color .15s var(--ease),
              background .15s var(--ease), transform .15s var(--ease);
}
.news-rubricator .chip:hover {
  color: var(--ink);
  border-color: var(--ink-3);
  background: var(--bg);
  transform: translateY(-1px);
}
.news-rubricator .chip--active,
.news-rubricator .chip--active:hover {
  background: var(--ink);
  border-color: var(--ink);
  color: #fff;
  transform: none;
}
.news-detail__title--sm { font-size: var(--t-28); }

/* Spacing rhythm: kill stacked paddings between an analytics section and the next band.
   Use type-classes on the page sections. */
.section--flush-bottom { padding-bottom: 0; }
.section--flush-top { padding-top: 0; }
.kpi-grid--flush { margin-bottom: 0; }
.section--gap-top { margin-top: 48px; }

/* Unified search bar (reused on /analytics and /analytics/reports) */
.search-bar {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #fff;
  border: 1px solid var(--hairline);
  border-radius: var(--r-sm);
  box-shadow: none;
  padding: 10px 14px;
}
.search-bar--hero { margin-top: 20px; }          /* spacing inside hero */
.search-bar--page { margin: 0 0 20px; max-width: 680px; }
.search-bar__field { flex: 1; position: relative; }
.search-bar__input {
  width: 100%;
  padding: 11px 44px 11px 16px;
  border: 1px solid var(--hairline);
  border-radius: var(--r-sm);
  font-size: var(--t-15);
  background: var(--bg);
  color: var(--ink);
  outline: none;
  box-sizing: border-box;
}
.search-bar__btn {
  position: absolute;
  right: 12px;
  top: 50%;
  transform: translateY(-50%);
  background: none;
  border: none;
  cursor: pointer;
  color: var(--brand);
  padding: 0;
  display: inline-flex;
}

/* Unified metrics strip (Отчётов / Скачиваний / Последнее обновление) — colored block */
.metrics-strip {
  display: flex;
  gap: 24px;
  flex-wrap: wrap;
  align-items: center;
  padding: 20px 24px;
  background: var(--bg-tint);
  border: none;
  border-radius: var(--r-sm);
  box-shadow: none;
  margin-bottom: 28px;
}
.metrics-strip__item { display: flex; flex-direction: column; gap: 2px; }
.metrics-strip__label {
  font-size: var(--t-13);
  color: var(--ink-3);
  text-transform: uppercase;
  letter-spacing: .05em;
}
.metrics-strip__value { font-size: var(--t-28); font-weight: 700; color: var(--ink); }
.metrics-strip__value--sm { font-size: var(--t-15); font-weight: 600; color: var(--ink); }
.metrics-strip__divider { width: 1px; height: 36px; background: var(--hairline); }
.metrics-strip__spacer { margin-left: auto; }
/* #Z2: мета + кнопка справа от заголовка списка исследований */
.reports-head-meta { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }

/* Reusable muted meta text (replaces inline color/font-size spans) */
.text-meta { color: var(--ink-3); font-size: var(--t-15); }

/* Reports page top padding (breadcrumb spacing) */
.screen--pad-top { padding-top: 32px; }

/* Hero tight bottom margin */
.hero--tight { margin-bottom: 8px; border-bottom: none; padding-bottom: 0; }

/* Back navigation row */
.nav-back { display: flex; gap: 16px; flex-wrap: wrap; align-items: center; margin-top: 24px; margin-bottom: 56px; }

/* Clickable chip */
.chip--link { cursor: pointer; }

/* ════════════════════════════════════════════════════════════
   ANALYTICS DETAIL — unified type-classes (replaces inline/<style>)
   ════════════════════════════════════════════════════════════ */

/* two-column layout: article + sticky aside */
.report-aside-grid { display: grid; grid-template-columns: minmax(0,1fr) 280px; gap: 48px; align-items: start; }
.report-aside { position: sticky; top: 88px; margin-top: 96px; }
/* bugs-0706 #17.1 (#418): grid item — min-width: 0 чтобы длинные слова/grid'ы внутри не раздували трек */
.report-aside-grid > article,
.report-aside-grid > aside { min-width: 0; }
@media (max-width: 900px) {
  .report-aside-grid { grid-template-columns: 1fr; }
  .report-aside { position: static; margin-top: 0; }
}

/* meta rows (date line, industry chips, tag chips, pdf/nav rows) */
.report-meta-row { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 20px; }
.report-meta-date { color: var(--ink-3); font-size: var(--t-15); }
.report-chips-row { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin: -8px 0 20px; }
.report-tags { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin: -4px 0 18px; }
.report-actions-row { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; margin: 20px 0 8px; }
.report-nav-row { display: flex; gap: 16px; flex-wrap: wrap; align-items: center; margin-top: 32px; }
.report-downloads-meta { font-size: var(--t-13); color: var(--ink-3); }

/* tag chip — STRICT radius (was 20px → 6px) */
.tag-chip {
  display: inline-flex; align-items: center;
  padding: 4px 10px;
  background: var(--bg-soft); border: 1px solid var(--hairline);
  border-radius: var(--r-sm);
  font-size: var(--t-13); color: var(--ink-2);
  text-decoration: none; transition: border-color .15s;
}
.tag-chip:hover { border-color: var(--brand); }
.chip--ind-gov.report-ind-link { text-decoration: none; }

/* title + lead + description on detail */
.report-title { font-family: var(--font-display); font-size: var(--t-40); line-height: 1.08; letter-spacing: -0.02em; margin: 0 0 16px; overflow-wrap: anywhere; }
.report-lead { font-size: var(--t-19); color: var(--ink-2); line-height: 1.5; margin: 0 0 8px; overflow-wrap: anywhere; }
/* bugs-0706 #17.1 (#418): на мобиле пункт = 28px вместо 40px (иначе не влезает) */
@media (max-width: 640px) {
  .report-title { font-size: var(--t-28); line-height: 1.15; }
  .report-lead  { font-size: var(--t-16); }
}

/* source note ("i" badge) */
.source-note {
  display: inline-flex; align-items: center; gap: 8px;
  margin: 12px 0 8px; padding: 8px 12px;
  background: var(--bg-soft); border: 1px solid var(--hairline);
  border-radius: var(--r-sm);
  font-size: var(--t-13); color: var(--ink-2);
}
.source-note__icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 18px; height: 18px; border-radius: 50%;  /* circle — keep 50% */
  background: var(--brand); color: #fff;
  font-style: italic; font-weight: 700; font-size: 12px; flex-shrink: 0;
}
.source-note a, .report-lead a, .copy a.brand-link { color: var(--brand); }

/* kpi widgets spacing on detail */
.project-kpis--detail { margin: 24px 0; }

/* copy variants on detail */
.copy--summary { font-size: var(--t-19); line-height: 1.6; color: var(--ink-2); margin: 24px 0; }
.copy--body { font-size: var(--t-17); line-height: 1.65; margin: 24px 0; }
.report-section { margin: 40px 0; scroll-margin-top: 88px; }
.report-section__title { font-family: var(--font-display); font-size: var(--t-28); line-height: 1.15; margin: 0 0 16px; }
.report-section .copy--body { margin: 0; }

/* markdown blockquote / tables / toc — MOVED from the deleted <style> verbatim */
.copy-md blockquote { position: relative; margin: 24px 0; padding: 4px 0 4px 16px; background: none; border: 0; border-left: 3px solid var(--brand); border-radius: 0; font-size: var(--t-17); line-height: 1.55; color: var(--ink-2); }
.copy-md blockquote p { margin: 0 0 6px; }
.copy-md blockquote p:last-child { margin: 0; }
.copy-md blockquote em, .copy-md blockquote cite { display: block; margin-top: 8px; font-size: var(--t-13); color: var(--ink-3); font-style: normal; }
.copy-md blockquote cite.quote-author { display: block; margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--hairline); font-size: var(--t-13); font-style: normal; font-weight: 600; color: var(--brand); }
.copy-md blockquote cite.quote-author::before { content: "– "; color: var(--ink-3); font-weight: 400; }
.copy-md .md-table-wrap { margin: 24px 0; overflow-x: auto; border: 1px solid var(--hairline); border-radius: var(--r-sm); }
.copy-md table { width: 100%; border-collapse: collapse; font-size: var(--t-15); line-height: 1.45; }
.copy-md thead th { background: #0A2A6B; color: #fff; text-align: left; font-weight: 600; padding: 11px 14px; font-size: var(--t-13); letter-spacing: .01em; }
.copy-md tbody td { padding: 10px 14px; border-top: 1px solid var(--hairline); color: var(--ink-2); vertical-align: top; }
.copy-md tbody tr:nth-child(even) td { background: #F5F6F8; }
.copy-md tbody td:nth-child(2) { font-weight: 600; color: var(--ink); white-space: nowrap; }
.report-toc { padding: 20px 24px; background: var(--bg-soft); border-left: 3px solid var(--brand); }
.report-toc__eyebrow { margin-bottom: 12px; }
.report-toc__list { margin: 0; padding: 0; list-style: none; }
.report-toc__item { position: relative; padding: 7px 0 7px 18px; line-height: 1.35; transition: padding-left .15s; }
.report-toc__item + .report-toc__item { border-top: 1px solid var(--hairline); }
.report-toc__item::before { content: ""; position: absolute; left: 2px; top: 14px; width: 6px; height: 6px; border-radius: 50%; background: var(--brand); opacity: .35; transition: opacity .15s, transform .15s; }  /* dot — circle keep 50% */
.report-toc__item a { color: var(--ink); text-decoration: none; font-size: var(--t-15); display: block; transition: color .15s, font-weight .15s; }
.report-toc__item a:hover { color: var(--brand); }
/* bugs-0706 #16.2 (#416): активный пункт сайдбара (выделяется через JS IntersectionObserver) */
.report-toc__item.is-active::before { opacity: 1; transform: scale(1.4); }
.report-toc__item.is-active a { color: var(--brand); font-weight: 600; }

/* ═══════════════════════════════════════════════════════════════
   MR-A: Projects list + category — type-class migration
   Tasks: 1 (collection-card bg), 3 (breadcrumb spacing),
          4 (search-bar), 6 (inline → type-class)
   ═══════════════════════════════════════════════════════════════ */

/* TASK 3 — spacing below breadcrumbs on category/listing pages */
.proj-cat-hero .breadcrumbs { margin-bottom: 24px; }

/* TASK 6 — proj-cat-hero (category page hero) */
.proj-cat-hero {
  background: var(--bg-soft, #f6f7f9);
  padding: 32px 0 0;
  border-bottom: 1px solid var(--hairline, #e6e8ec);
}
.proj-cat-hero__inner {
  display: flex; gap: 24px; align-items: flex-start;
}
.proj-cat-hero__cover {
  flex: 0 0 100px; width: 100px; height: 100px;
  border-radius: var(--r-sm);
  display: flex; align-items: center; justify-content: center;
  color: #fff; font-size: 40px;
}
/* Gradient covers by slug */
.proj-cover--dregion           { background: linear-gradient(135deg, #0A2A6B 0%, #1E5BFF 100%); }
.proj-cover--anticovid         { background: linear-gradient(135deg, #0E8A4A 0%, #2ECC71 100%); }
.proj-cover--b2b-b2g-software  { background: linear-gradient(135deg, #7B3FBF 0%, #3D5AFE 100%); }
.proj-cover--saas-for-business { background: linear-gradient(135deg, #0E7DB8 0%, #00BCD4 100%); }
.proj-cover--default           { background: linear-gradient(135deg, #0A1430 0%, #1E5BFF 100%); }
/* Collection card cover: image variant */
.project-collection-card__cover--img { padding: 0; overflow: hidden; }
/* Image inside cover */
.proj-cover__img { width: 100%; height: 100%; object-fit: cover; display: block; }
/* Icon inside gradient cover */
.proj-cover__icon { font-size: 36px; color: rgba(255,255,255,.8); }

.proj-cat-hero__body { flex: 1 1 auto; min-width: 0; }
.proj-cat-hero__title {
  font-family: var(--font-display, 'Manrope', sans-serif);
  font-weight: 800; font-size: var(--t-40, 40px);
  line-height: 1.1; color: var(--ink, #11151c);
  margin: 8px 0 12px;
}
.proj-cat-hero__desc {
  color: var(--ink-2, #4B5466); font-size: var(--t-17, 17px);
  line-height: 1.55; max-width: 720px;
}

/* Subcategory filter chips */
.proj-cat-subcats {
  display: flex; flex-wrap: wrap; gap: 8px;
  margin: 20px 0 0; padding: 0 0 24px; list-style: none;
}
.proj-cat-subcat {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 14px;
  background: #fff;
  border: 1px solid var(--hairline, #e6e8ec);
  border-radius: var(--r-sm);
  color: var(--ink, #11151c);
  font-family: var(--font-display, 'Manrope', sans-serif);
  font-weight: 600; font-size: var(--t-15, 15px);
  text-decoration: none; line-height: 1;
  transition: border-color .15s, color .15s, background .15s;
}
.proj-cat-subcat:hover { border-color: var(--ink-3); }
.proj-cat-subcat--active { background: var(--ink, #0B1220); color: #fff; border-color: var(--ink, #0B1220); }
.proj-cat-subcat--active .proj-cat-subcat__count { background: rgba(255,255,255,.18); color: #fff; }
.proj-cat-subcat__count {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 20px; height: 18px; padding: 0 5px;
  background: var(--bg-soft, #f1f3f6); color: var(--ink-2, #4B5466);
  border-radius: var(--r-xs); font-size: 12px; font-weight: 700;
}

/* No-subcats count block */
.proj-subcat-count-wrap { padding-bottom: 24px; margin-top: 16px; }
.proj-subcat-count-text { font-size: var(--t-17, 17px); color: var(--ink-2, #4B5466); }

/* TASK 4 — search bar on category listing (reuses shared .search-bar) */
/* (shared .search-bar, .search-bar--page, .search-bar__field, .search-bar__input,
    .search-bar__btn already defined in style.css — no new rules needed) */

/* Toolbar wrapper (search + optional slots) */
.proj-toolbar {
  display: flex; gap: 12px; flex-wrap: wrap; align-items: center;
  margin: 0 0 24px;
}

/* Active filter chips */
.proj-active-filters {
  display: flex; gap: 8px; flex-wrap: wrap; align-items: center;
  margin: 0 0 20px;
}
.proj-chip {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 6px 8px 6px 12px;
  background: rgba(0,73,220,.08);
  border: 1px solid rgba(0,73,220,.18);
  border-radius: var(--r-sm);
  color: var(--brand, #0049DC);
  font-size: var(--t-13, 13px); font-weight: 600;
}
.proj-chip__close {
  display: inline-flex; align-items: center; justify-content: center;
  width: 18px; height: 18px;
  border-radius: 50%; /* circle — keep */
  background: rgba(0,73,220,.18);
  color: var(--brand, #0049DC);
  text-decoration: none; font-size: 11px; font-weight: 700;
  line-height: 1;
}
.proj-chip__close:hover { background: var(--brand, #0049DC); color: #fff; }
.proj-reset-all {
  margin-left: 4px; font-size: var(--t-13, 13px);
  color: var(--ink-3, #79808c); text-decoration: none;
}
.proj-reset-all:hover { color: var(--ink, #11151c); text-decoration: underline; }
.proj-found-count { margin-left: auto; color: var(--ink-3); font-size: var(--t-13); }

/* Subcat filter selected: title + back link */
.proj-subfilter-head { margin-bottom: 24px; display: flex; align-items: center; gap: 16px; }
.proj-subfilter-title { font-family: var(--font-display); font-size: var(--t-21); font-weight: 700; margin: 0; }

/* Listing section */
.proj-listing { padding: 48px 0 64px; }

/* Pagination centered */
.proj-pagination { display: flex; justify-content: center; margin-top: 40px; }

/* Empty state */
.proj-empty { padding: 64px 0; text-align: center; color: var(--ink-3); }
.proj-empty__msg { font-size: var(--t-17, 17px); }
.proj-empty .btn { margin-top: 20px; }

/* Collections grid (projects list page) */
.proj-collections-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 24px;
}

/* section__head margin variants */
.proj-section-head--sm { margin-bottom: 24px; }
.proj-section-head--md { margin-bottom: 32px; }

/* facet-effect grid layout (projects list page variant) */
.facet-effect--grid {
  border: none; padding: 0; margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 8px 24px;
}

/* bugs-0706 #392 (хвост) — «Быстрые выборки» как визуальные карточки. */
.facet-effect--cards {
  border: none; padding: 0; margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 16px;
}
.facet-card {
  display: grid;
  grid-template-columns: 48px 1fr auto;
  align-items: center;
  gap: 14px;
  padding: 18px 18px;
  background: #fff;
  border: 1px solid var(--hairline, #E1E6EE);
  border-radius: var(--r-sm, 6px);
  color: var(--ink, #11151c);
  text-decoration: none;
  transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}
.facet-card:hover {
  transform: translateY(-1px);
  border-color: var(--brand, #1E5BFF);
  box-shadow: 0 6px 20px rgba(30, 91, 255, .08);
  color: var(--ink, #11151c);
  text-decoration: none;
}
.facet-card__icon {
  width: 48px;
  height: 48px;
  border-radius: var(--r-xs, 4px);
  background: var(--bg-soft, #F5F7FA);
  color: var(--brand, #1E5BFF);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  flex-shrink: 0;
}
.facet-card__body {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.facet-card__title {
  font-weight: 600;
  font-size: var(--t-15, 15px);
  line-height: 1.3;
  color: var(--ink, #11151c);
}
.facet-card__count {
  font-size: var(--t-13, 13px);
  color: var(--ink-3, #79808c);
}
.facet-card__cta {
  color: var(--brand, #1E5BFF);
  font-weight: 600;
  font-size: var(--t-18, 18px);
}
/* Тональные акценты иконок (без различия внутри карточки — только иконка). */
.facet-card--tone-roi     .facet-card__icon { background: #EAF2FF; color: #1E5BFF; }
.facet-card--tone-money   .facet-card__icon { background: #E8F7EE; color: #0E8A4A; }
.facet-card--tone-import  .facet-card__icon { background: #FFF1E6; color: #C2410C; }
.facet-card--tone-time    .facet-card__icon { background: #EEF1FF; color: #4F46E5; }
.facet-card--tone-uptime  .facet-card__icon { background: #E6F7F9; color: #0E7DB8; }
.facet-card--tone-revenue .facet-card__icon { background: #F5EBFF; color: #7B3FBF; }

@media (max-width: 640px) {
  .proj-toolbar { flex-direction: column; }
  .proj-toolbar .search-bar { max-width: 100%; }
}
@media (max-width: 768px) {
  .proj-cat-hero { padding: 20px 0 0; }
  .proj-cat-hero__inner { flex-direction: column; gap: 16px; }
  .proj-cat-hero__cover { width: 72px; height: 72px; font-size: 30px; }
  .proj-cat-hero__title { font-size: var(--t-28, 28px); }
}

/* proj-empty button spacing */
.proj-empty__btn { margin-top: 20px; display: inline-block; }

/* case-card icon helpers */
.proj-card__customer-icon { font-size: 12px; color: var(--ink-3); }
.proj-card__time-icon { font-size: 11px; }

/* ══════════════════════════════════════════════════════════════════════════
   fix/analogs-page — TASK 4: type-classes for /analogs index page
   ══════════════════════════════════════════════════════════════════════════ */

/* ── Hero catalog layout ── */
.analogs-hero--catalog {
  display: grid;
  grid-template-columns: 1fr 420px;
  gap: 48px;
  align-items: end;
}

/* ── Hero headings ── */
.analogs-hero__h1 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 42px;
  line-height: 1.05;
  letter-spacing: -0.02em;
  margin: 10px 0 12px;
  color: var(--ink);
}
.analogs-hero__h1--lg {
  font-size: 48px;
  margin: 12px 0 16px;
  max-width: 18ch;
}

/* ── Hero lead text ── */
.analogs-hero__lead {
  font-size: var(--t-17);
  line-height: 1.55;
  color: var(--ink-2);
  max-width: 62ch;
  margin: 0 0 24px;
}
.analogs-hero__lead--company { margin: 0 0 20px; }

/* ── Hero actions ── */
.analogs-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}

/* ── Company hero logo placeholder ── */
.analogs-hero__logo-wrap {
  width: 160px;
  height: 160px;
  background: #fff;
  border: 1px solid var(--hairline);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  flex-shrink: 0;
  box-sizing: border-box;
}
.analogs-hero__logo-initials {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 48px;
  color: var(--ink-2);
}

/* ── KPI grid (catalog) ── */
.analogs-kpi {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.analogs-kpi-aside {
  display: grid;
  gap: 14px;
}
.analogs-kpi-widget {
  background: #fff;
  border: 1px solid var(--hairline);
  border-radius: var(--r-xs);
  padding: 20px;
}
.analogs-kpi-widget--full { grid-column: 1 / -1; }

/* ── KPI numbers ── */
.analogs-kpi__num {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 36px;
  line-height: 1.1;
  margin-top: 6px;
}
.analogs-kpi__num--md { font-size: 28px; }
.analogs-kpi__num--lg { font-size: 42px; }
.analogs-kpi__num--brand { color: var(--brand); }
.analogs-kpi__num--ink   { color: var(--ink); }
.analogs-kpi__label {
  font-size: var(--t-13);
  color: var(--ink-3);
  margin-top: 4px;
}

/* ── КЛАССЫ ПО section ── */
.analogs-po-classes { margin-top: 24px; }
.analogs-po-classes__label { margin-bottom: 12px; }

/* ── Alphabet filter section ── */
.analogs-alpha-section { margin-top: 32px; }
.analogs-alpha-head {
  display: flex;
  justify-content: space-between;
  align-items: end;
  margin-bottom: 12px;
}
.alpha-filter {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 24px;
}
.alpha-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 10px;
  border: 1px solid var(--hairline);
  background: #fff;
  color: var(--ink);
  font-weight: 600;
  font-size: var(--t-13);
  text-decoration: none;
  border-radius: var(--r-xs);
  transition: background .15s, color .15s, border-color .15s;
}
.alpha-btn.is-active,
.alpha-btn:hover { background: var(--ink); color: #fff; border-color: var(--ink); }

/* ── Vendor chip list (letter filter results) ── */
.analogs-vendor-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 32px;
}
.analogs-vendor-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  background: #fff;
  border: 1px solid var(--hairline);
  border-radius: var(--r-xs);
  text-decoration: none;
  color: var(--ink);
  font-size: var(--t-13);
  font-weight: 600;
  transition: border-color .15s;
}
.analogs-vendor-chip:hover { border-color: var(--brand); }
.analogs-vendor-chip__count {
  color: var(--ink-3);
  font-variant-numeric: tabular-nums;
  font-weight: 500;
}

/* ── Search result header ── */
.analogs-search-result { margin-top: 32px; }
.analogs-search-result__text { font-size: var(--t-15); color: var(--ink-2); }

/* ── Main content area ── */
.analogs-main-content { margin-top: 32px; padding-bottom: 64px; }

/* ── Analog cards grid ── */
.analogs-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 20px;
}

/* ── Analog card (unified: white, hairline, r-xs) ── */
.analog-card {
  background: #fff;
  border: 1px solid var(--hairline);
  border-radius: var(--r-xs);
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  transition: border-color .15s, box-shadow .15s;
}
.analog-card:hover { border-color: var(--brand); box-shadow: 0 2px 8px rgba(0,85,255,0.06); }

.analog-card__logo-link { display: block; text-decoration: none; }
.analog-card__logo {
  width: 100%;
  height: 120px;
  background: var(--bg-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--hairline);
  border-radius: var(--r-xs);
  overflow: hidden;
}
.analog-card__logo-img {
  max-width: 80%;
  max-height: 80%;
  object-fit: contain;
}
.analog-card__logo-initials {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 28px;
  color: var(--ink-2);
}

.analog-card__name {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--t-17);
  line-height: 1.3;
  margin: 0;
}
.analog-card__name-link { color: var(--ink); text-decoration: none; }
.analog-card__name-link:hover { color: var(--brand); }

.analog-card__vendor { font-size: var(--t-13); color: var(--ink-2); }
.analog-card__vendor-link {
  color: var(--ink-2);
  text-decoration: none;
  border-bottom: 1px solid var(--hairline);
}
.analog-card__vendor-link:hover { color: var(--ink); border-bottom-color: var(--ink); }

.analog-card__desc {
  font-size: var(--t-13);
  line-height: 1.5;
  color: var(--ink-2);
  flex-grow: 1;
}

.analog-card__footer {
  border-top: 1px solid var(--hairline);
  padding-top: 14px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
}
.analog-card__count {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 22px;
  line-height: 1;
  color: var(--ink-3);
}
.analog-card__count--active { color: var(--brand); }
.analog-card__count-label {
  margin-top: 2px;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--ink-2);
}

/* ── Pagination ── */
.analogs-pagination {
  margin-top: 48px;
  display: flex;
  justify-content: center;
}

/* ── Empty state ── */
.analogs-empty {
  background: #fff;
  border: 1px solid var(--hairline);
  border-radius: var(--r-xs);
  padding: 48px;
  text-align: center;
}
.analogs-empty__msg { font-size: var(--t-17); color: var(--ink-2); margin: 0 0 16px; }

/* ── Responsive ── */
@media (max-width: 900px) {
  .analogs-hero--catalog { grid-template-columns: 1fr; gap: 32px; }
  .analogs-hero__h1--lg  { font-size: 36px; }
  .analogs-kpi           { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .analogs-hero__h1--lg  { font-size: 28px; }
  .analogs-grid          { grid-template-columns: 1fr; gap: 16px; }
  .analogs-kpi           { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════════════════
   Wave3 NEWS HUB — /news медиа-хаб
   Правила: радиусы ≤6px, 0 синего #0049DC/#1E3A8A, только var(--brand),
            заголовки var(--ink), --t-28/--t-13 вместо --t-24/--t-14
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Рубрикатор-чипы ── */
.news-rubricator {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin: 20px 0 0;
}

/* ── Активный чип рубрикатора (акцент var(--brand)) ── */
.chip--active {
  background: var(--brand);
  color: #fff;
  border-color: var(--brand);
}
.chip--active:hover {
  opacity: .9;
}

/* ── Hero (top story) layout ── */
.news-hero {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 40px;
  align-items: start;
  padding: 32px 0 40px;
  border-bottom: 1px solid var(--hairline);
  margin-top: 32px;
}
.news-hero__cover {
  margin-bottom: 16px;
  overflow: hidden;
  border-radius: var(--r-sm);
}
.news-hero__cover img {
  width: 100%;
  max-height: 340px;
  object-fit: cover;
  display: block;
}
.news-hero__meta {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-bottom: 14px;
  flex-wrap: wrap;
}
.news-hero__meta-date {
  font-size: var(--t-15);
}
.news-hero__meta-co {
  color: var(--ink-2);
  text-decoration: none;
}
.news-hero__meta-co:hover {
  color: var(--ink);
}
.news-hero__body h2 {
  font-family: var(--font-display);
  font-size: var(--t-40);
  line-height: 1.08;
  letter-spacing: -0.02em;
  margin: 10px 0 14px;
  color: var(--ink);
}
.news-hero__body h2 a {
  color: inherit;
  text-decoration: none;
}
.news-hero__body h2 a:hover {
  color: var(--ink);
}
.news-hero__lead {
  font-size: var(--t-17);
  color: var(--ink-2);
  line-height: 1.6;
  margin: 0 0 20px;
}
.news-hero__actions {
  display: flex;
  gap: 16px;
  margin-top: 20px;
  flex-wrap: wrap;
}

/* ── Сайдбар hero ── */
.news-hero__sidebar {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.news-hero__stat {
  padding: 10px 0;
  border-bottom: 1px solid var(--hairline);
}
.news-hero__stat:last-child {
  border-bottom: none;
}
.news-hero__stat-num {
  font-size: var(--t-28);
  font-weight: 700;
  color: var(--ink);
  line-height: 1.2;
}
.news-hero__stat-label {
  font-size: var(--t-13);
  color: var(--ink-3);
  margin-top: 2px;
}
/* Сводка архива — компактная горизонтальная строка */
.news-archive-row {
  display: flex;
  gap: 20px;
}
.news-archive-row__item {
  flex: 1;
}
.news-archive-row__num {
  font-size: var(--t-21);
  font-weight: 700;
  color: var(--ink);
  line-height: 1.1;
}
.news-archive-row__label {
  font-size: var(--t-12);
  color: var(--ink-3);
  margin-top: 2px;
}

/* ── Sidebar cards ── */
.news-sidebar-card {
  background: var(--bg);
  border: 1px solid var(--hairline);
  border-radius: var(--r-sm);
  padding: 16px;
  margin-bottom: 16px;
}
/* Заголовок карточки сайдбара — ink-3 uppercase, разделитель hairline */
.news-sidebar-card__title {
  font-family: var(--font-display, 'Manrope', sans-serif);
  font-weight: 700;
  font-size: var(--t-13);
  text-transform: uppercase;
  letter-spacing: .07em;
  color: var(--ink-3);
  border-bottom: 1px solid var(--hairline);
  padding-bottom: 8px;
  margin-bottom: 12px;
}
.news-sidebar-cats {
  list-style: none;
  margin: 0;
  padding: 0;
}
.news-sidebar-cats__item {
  border-bottom: 1px solid var(--hairline);
}
.news-sidebar-cats__item:last-child {
  border-bottom: none;
}
.news-sidebar-cats__link {
  display: flex;
  justify-content: space-between;
  padding: 7px 0;
  font-size: var(--t-13);
  color: var(--ink-2);
  text-decoration: none;
}
.news-sidebar-cats__link:hover,
.news-sidebar-cats__link--active {
  color: var(--brand-deep);
  font-weight: 600;
}

/* ── Последние публикации в сайдбаре ── */
.news-sidebar-latest {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.news-sidebar-latest__item {
  display: flex;
  gap: 10px;
  align-items: flex-start;
}
.news-sidebar-latest__thumb {
  flex-shrink: 0;
  width: 64px;
  height: 48px;
  overflow: hidden;
  display: block;
  border-radius: var(--r-xs);
}
.news-sidebar-latest__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
/* Плейсхолдер — нейтральный фон, без синего */
.news-sidebar-latest__thumb-placeholder {
  width: 100%;
  height: 100%;
  background: var(--bg-tint);
  display: block;
}
.news-sidebar-latest__body {
  flex: 1;
  min-width: 0;
}
.news-sidebar-latest__title {
  display: block;
  font-size: var(--t-13);
  line-height: 1.4;
  font-weight: 600;
  color: var(--ink);
  text-decoration: none;
  margin-bottom: 3px;
}
.news-sidebar-latest__title:hover {
  color: var(--ink);
}
.news-sidebar-latest__date {
  font-size: var(--t-11);
  color: var(--ink-3);
}
/* Компактный текстовый список (без превью) — пункты-разделители */
.news-sidebar-latest--compact {
  gap: 0;
}
.news-sidebar-latest--compact .news-sidebar-latest__item {
  padding: 12px 0;
  border-bottom: 1px solid var(--hairline);
}
.news-sidebar-latest--compact .news-sidebar-latest__item:first-child {
  padding-top: 0;
}
.news-sidebar-latest--compact .news-sidebar-latest__item:last-child {
  border-bottom: none;
  padding-bottom: 0;
}

/* ── Hub sections ── */
.news-hub-section {
  padding: 40px 0;
  border-bottom: 1px solid var(--hairline);
}
.news-hub-section:last-of-type {
  border-bottom: none;
}
.news-hub-section__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 24px;
}
/* Заголовок секции — --t-28, ink (НЕ синий) */
.news-hub-section__title {
  font-family: var(--font-display);
  font-size: var(--t-28);
  font-weight: 700;
  color: var(--ink);
  margin: 0;
}
/* Ссылка «все →» — --t-13, brand */
.news-hub-section__link {
  font-size: var(--t-13);
  color: var(--brand);
  text-decoration: none;
  white-space: nowrap;
}
.news-hub-section__link:hover {
  text-decoration: underline;
}

/* ── /news refactor: hero full-width, без полосок, h1 ink ── */
#news .hero__title { color: var(--ink); }
.news-hero--full {
  grid-template-columns: 1fr;
  border-bottom: none;
}
.news-hero--full .news-hero__body { max-width: 880px; }
/* Полоса из последних 5 материалов */
.news-grid--strip {
  grid-template-columns: repeat(5, 1fr);
  margin-bottom: 8px;
}
@media (max-width: 1100px) { .news-grid--strip { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 700px)  { .news-grid--strip { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px)  { .news-grid--strip { grid-template-columns: 1fr; } }
/* Убираем полоски-разделители между секциями хаба */
.news-hub-section { border-bottom: none; padding: 32px 0; }

/* ── Облако тегов / рубрик ── */
.news-tag-cloud {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 8px 0 0;
}

/* ── Пустая лента ── */
.news-empty {
  padding: 64px 0;
  text-align: center;
  color: var(--ink-3);
}
.news-empty .btn {
  margin-top: 20px;
}

/* ── Фильтр компаний (companies-режим) ── */
.news-company-filter {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
  margin: 16px 0 0;
}
.news-company-filter__label {
  font-size: var(--t-13);
  color: var(--ink-2);
}
.news-company-filter__select {
  padding: 8px 12px;
  border: 1px solid var(--hairline);
  border-radius: var(--r-sm);
  background: var(--bg);
  min-width: 280px;
  font: inherit;
  color: var(--ink);
}

/* ── Адаптив ── */
@media (max-width: 1024px) {
  .news-hero {
    grid-template-columns: 1fr;
  }
  .news-hero__sidebar {
    display: none;
  }
}
@media (max-width: 640px) {
  .news-hero__body h2 {
    font-size: var(--t-28);
  }
}
.news-feed-count { font-size: var(--t-15); }

/* ============================================================
   §NEWS PRAVKI v2 (06.06) — рубрикатор без прыжков, поиск,
   отступы крошек, сетка, убрать нижнюю полоску
   ============================================================ */

/* 1) Рубрикатор: плоские чипы, никакого transform/тени при hover */
.news-rubricator .chip {
  transition: color .15s var(--ease), border-color .15s var(--ease),
              background .15s var(--ease);
}
.news-rubricator .chip:hover {
  color: var(--ink);
  border-color: var(--ink-3);
  background: var(--bg);
  transform: none;
  box-shadow: none;
}
.news-rubricator .chip:active { transform: none; }

/* 2) Поиск: кнопка «Найти» одной высоты с полем, белая с бордером */
.news-search { align-items: stretch; }
.news-search input[type="search"] { padding: 10px 14px; }
.news-search .news-search__btn {
  flex: 0 0 auto;
  padding-block: 10px;
  white-space: nowrap;
}

/* 3) Отступ заголовка после крошек в band--crumbs (крошки уже дают верхний отступ) */
#news .band--crumbs + .container .hero__title,
#news .band--crumbs + .container .section--tight .hero__title { margin-top: 8px; }

/* 5) Кнопки-ссылки секций уже btn--ghost btn--sm — выравниваем по базовой линии заголовка */
.news-hub-section__head { align-items: center; }

/* 12) Нижняя полоска/прижатость: даём отступ снизу основному блоку новостей */
#news { padding-bottom: 56px; }
#news .news-feed-section--list { padding-bottom: 8px; }

/* ============================================================
   HOME REFACTOR (home-refactor-cleanup): классы вместо inline style=
   ============================================================ */

/* hero: тёмный анкер вместо inline gradient */
.hero-anchor--dark {
  background: linear-gradient(135deg, #0A1430 0%, #11214A 100%);
  padding: 32px;
}

/* search-band: верхний бордер + padding-block */
.band--search {
  padding-block: 40px;
  border-top: 1px solid var(--hairline, #e6e8ec);
}

/* «Новости компаний» — продолжение grid без border-top/eyebrow */
.news-grid--continued {
  margin-top: 32px;
}

/* Pre-footer CTA — 2 колонки */
.prefooter-cta {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 32px;
  align-items: center;
  padding: 32px 0;
}
.prefooter-cta__title {
  font-size: var(--t-28);
  margin-top: 8px;
}
.prefooter-cta__actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}
@media (max-width: 768px) {
  .prefooter-cta { grid-template-columns: 1fr; }
}

/* Пустая ячейка таблицы */
.table__empty {
  text-align: center;
  color: var(--ink-3);
}

/* Колонка «Подробнее» — выравнивание справа */
.th--right { text-align: right; }

/* Блок аналитических KPI без верхней полосы/border-top */
.analytics-kpis-block { margin-top: 32px; }
.analytics-kpis-block__title { margin-bottom: 16px; }

/* Карточка-ссылка для KPI из аналитики */
.project-kpis__card--link {
  text-decoration: none;
  color: inherit;
}

/* Mobile: защита от горизонтального скролла на главной */
@media (max-width: 768px) {
  html, body { overflow-x: hidden; }
  #home .container { min-width: 0; }
  #home .table-scroll { max-width: 100%; }
  #home .hero__grid { grid-template-columns: 1fr; gap: 24px; }
  #home .hero-anchor--dark { padding: 22px; }
  #home .search-row { display: grid; grid-template-columns: 1fr; gap: 8px; }
  #home .news-grid { grid-template-columns: 1fr; }
  #home .reports-grid { grid-template-columns: 1fr; }
  #home .cat-grid { grid-template-columns: 1fr 1fr; }
}

/* =====================================================================
   PRODUCT-CARD-V2 (unified): без инлайн-стилей, лейбл реестра тёмно-зелёный
   ===================================================================== */
.product-card-v2 {
  padding: 18px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.product-card-v2__head {
  display: flex;
  gap: 12px;
  align-items: flex-start;
}
.product-card-v2__logo {
  flex-shrink: 0;
  width: 54px;
  height: 54px;
  background: var(--bg-soft);
  border: 1px solid var(--hairline);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  text-decoration: none;
  border-radius: var(--r-xs);
}
.product-card-v2__logo img {
  max-width: 100%;
  max-height: 100%;
  object-fit: cover;
}
.product-card-v2__initials {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 15px;
  color: var(--ink-2);
}
.product-card-v2__title-wrap { flex: 1; min-width: 0; }
.product-card-v2__title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--t-15);
  line-height: 1.3;
  margin: 0 0 3px;
}
.product-card-v2__title a { color: var(--ink); text-decoration: none; }
.product-card-v2__title a:hover { color: var(--brand); }
.product-card-v2__org {
  font-size: var(--t-13);
  color: var(--ink-2);
  font-weight: 500;
  margin-top: 2px;
}
.product-card-v2__cat {
  font-size: var(--t-11);
  color: var(--ink-3);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.product-card-v2__chip-wrap { margin-top: 6px; }

/* Лейбл «Реестр ПО» — тёмно-зелёный (вместо «пидорски светло-зелёного») */
.chip--registry-dark {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: var(--t-11);
  font-weight: 700;
  color: #fff;
  background: #065F46; /* dark emerald */
  border: 1px solid #064E3B;
  padding: 2px 8px;
  border-radius: var(--r-xs);
  letter-spacing: 0.02em;
  line-height: 1.4;
}
/* Переопределяем глобальный .chip--registry ВНУТРИ product-card-v2 на тёмно-зелёный
   (НЕ трогает остальные места: карточки, статьи, фильтры). */
.product-card-v2 .chip--registry {
  background: #065F46;
  color: #fff;
  border: 1px solid #064E3B;
  border-radius: var(--r-xs);
}
.product-card-v2 a.chip.chip--registry:hover,
.product-card-v2 .chip-link:hover .chip--registry {
  background: #064E3B;
  filter: none;
  opacity: 1;
}

.product-card-v2__lead {
  font-size: var(--t-13);
  line-height: 1.5;
  color: var(--ink-2);
  flex-grow: 1;
}
.product-card-v2__foot {
  border-top: 1px solid var(--hairline);
  padding-top: 12px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.product-card-v2__price {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--t-13);
  color: var(--ink);
}
.product-card-v2__price--on-request {
  font-family: inherit;
  font-weight: 400;
  font-size: var(--t-11);
  color: var(--ink-3);
}
.product-card-v2__rating {
  font-size: var(--t-11);
  color: var(--ink-3);
  margin-top: 2px;
}
.product-card-v2__star { color: #F59E0B; }
.product-card-v2__rcount { opacity: .6; }
.product-card-v2__actions {
  display: flex;
  gap: 6px;
  align-items: center;
  flex-wrap: wrap;
}

/* Универсальная сетка карточек продуктов */
.product-grid-v2 {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 16px;
}

/* =====================================================================
   REGION/INDUSTRY: списочный виджет компаний (как на главной)
   ===================================================================== */
.companies-list {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
  border: 1px solid var(--hairline);
  border-radius: var(--r-sm);
  overflow: hidden;
}
.companies-list th,
.companies-list td {
  padding: 12px 14px;
  text-align: left;
  border-bottom: 1px solid var(--hairline);
  vertical-align: middle;
}
.companies-list thead th {
  font-family: var(--font-display);
  font-weight: 600;
  font-size: var(--t-12);
  color: var(--ink-3);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  background: var(--bg-soft);
}
.companies-list tbody tr:last-child td { border-bottom: none; }
.companies-list tbody tr:hover { background: var(--bg-soft); }
.companies-list__name {
  font-weight: 600;
  color: var(--ink);
  text-decoration: none;
}
.companies-list__name:hover { color: var(--brand); }
.companies-list__sub {
  font-size: var(--t-12);
  color: var(--ink-3);
  margin-top: 2px;
}
.companies-list .num { font-variant-numeric: tabular-nums; }
.companies-list .row-cta { text-align: right; white-space: nowrap; }

/* =====================================================================
   #432, #433: Стандартная таблица компаний (единый компонент partials/v3/companies-table)
   Используется на /companies, /market/{slug}, /russia/{region}.
   ===================================================================== */
.companies-table-v3 { width: 100%; }
.companies-table-v3__empty {
  padding: 32px 16px;
  text-align: center;
  color: var(--ink-3);
  font-size: var(--t-15);
  border: 1px dashed var(--hairline);
  border-radius: var(--r-sm);
}
.companies-table-v3__name-cell {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}
.companies-table-v3__logo {
  width: 36px;
  height: 36px;
  object-fit: contain;
  border-radius: 4px;
  border: 1px solid var(--hairline);
  flex-shrink: 0;
}
.companies-table-v3__logo-fallback {
  width: 36px;
  height: 36px;
  border-radius: 4px;
  border: 1px solid var(--hairline);
  background: var(--bg-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-weight: 700;
  font-size: 14px;
  color: var(--ink-3);
}
.companies-table-v3__region {
  text-align: left;
  color: var(--ink-2);
  font-size: var(--t-15);
}
.companies-table-v3__rating {
  text-align: left;
  white-space: nowrap;
  font-size: var(--t-15);
}
.companies-table-v3__rating-num {
  margin-left: 4px;
  font-weight: 600;
}
.companies-table-v3__products {
  font-size: var(--t-15);
  font-weight: 600;
}
.companies-table-v3__products.is-positive { color: var(--brand); }
.companies-table-v3__products.is-zero     { color: var(--ink-3); }
.companies-table-v3__star.is-on   { color: #f59e0b; }
.companies-table-v3__star.is-half { color: #f59e0b; }
.companies-table-v3__star.is-off  { color: var(--hairline); }
.companies-table-v3__logo-fallback.is-hidden,
.companies-table-v3__logo.is-hidden { display: none !important; }
.companies-table-empty {
  padding: 32px 16px;
  text-align: center;
  color: var(--ink-3);
}

/* =====================================================================
   REGION HERO: герб региона (брендовый квадрат на светлом hero)
   ===================================================================== */
.hero__region-emblem {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 88px;
  height: 88px;
  flex-shrink: 0;
  background: var(--brand);
  border-radius: var(--r-sm);
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(30, 91, 255, 0.18);
}
.hero__region-emblem img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.hero__region-emblem__initial {
  font-family: var(--font-display);
  font-size: 44px;
  font-weight: 800;
  color: #fff;
  line-height: 1;
  letter-spacing: -.02em;
}

/* =====================================================================
   PROMO-ABOVE-FOOTER: убираем border-top
   ===================================================================== */
.promo-above-footer { border-top: none; }

/* =====================================================================
   INDUSTRY: компактные секции в band--soft (меньше отступов)
   ===================================================================== */
.band--soft.band--compact {
  padding-block: 32px;
}
.band--compact .section { margin-block: 0; }

/* =====================================================================
   INDUSTRY HERO: лого рынка (брендовый квадрат на светлом hero)
   ===================================================================== */
.hero__title-row {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: nowrap;
  margin-top: 16px;
}
.hero__title-row .hero__title {
  margin: 0;
  max-width: none;
  flex: 1 1 auto;
  min-width: 0;
}
@media (max-width: 640px) {
  .hero__title-row { flex-wrap: wrap; }
}
.hero__industry-logo {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 88px;
  height: 88px;
  flex-shrink: 0;
  /* bugs-0706 #16.1 (#415): используем CSS-переменную --ic из родителя для цвета отрасли */
  background: var(--ic, var(--brand));
  border-radius: var(--r-sm);
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(30, 91, 255, 0.18);
}
.hero__industry-logo img {
  max-width: 60%;
  max-height: 60%;
  object-fit: contain;
  filter: brightness(0) invert(1);
}
.hero__industry-logo i {
  font-size: 40px;
  color: #fff;
  line-height: 1;
}
.hero__industry-logo svg {
  width: 44px;
  height: 44px;
  color: #fff;
  stroke: #fff;
  fill: none;
  display: block;
}

/* На узких экранах — чуть меньше */
@media (max-width: 768px) {
  .hero__region-emblem,
  .hero__industry-logo { width: 64px; height: 64px; }
  .hero__region-emblem__initial { font-size: 32px; }
  .hero__industry-logo i { font-size: 30px; }
  .hero__industry-logo svg { width: 32px; height: 32px; }
  .hero__title-row { gap: 14px; }
}

/* Materials: кликабельная карточка (стиль proj-card, но как <a>) */
.proj-card--link {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  transition: border-color .12s ease, transform .12s ease;
}
.proj-card--link:hover { border-color: var(--brand); }
.proj-card--link:hover .proj-card__title { color: var(--brand); }

/* Mobile */
@media (max-width: 768px) {
  .product-grid-v2 { grid-template-columns: 1fr; }
  .companies-list,
  .companies-list thead,
  .companies-list tbody,
  .companies-list th,
  .companies-list td,
  .companies-list tr { display: block; }
  .companies-list thead { display: none; }
  .companies-list tbody tr {
    border-bottom: 1px solid var(--hairline);
    padding: 12px 14px;
  }
  .companies-list td { border-bottom: none; padding: 4px 0; }
  .companies-list .row-cta { text-align: left; }
}

/* =====================================================================
   QUADRANT /quadrant/{slug} — карта и легенда
   ===================================================================== */
.quadrant-chart {
  display: flex;
  justify-content: center;
}
.quadrant-chart__wrap {
  position: relative;
  max-width: 580px;
  width: 100%;
}
.quadrant-chart__svg {
  width: 100%;
  height: auto;
  background: #fcfcfd;
  border: 1px solid var(--hairline);
  border-radius: var(--r-sm);
}
.quadrant-zone--leader    { fill: #fffbeb; stroke: #fbbf24; stroke-width: 1; stroke-dasharray: 3; }
.quadrant-zone--strong    { fill: #f0fdf4; stroke: #86efac; stroke-width: 1; stroke-dasharray: 3; }
.quadrant-zone--contender { fill: #eff6ff; stroke: #93c5fd; stroke-width: 1; stroke-dasharray: 3; }
.quadrant-zone--niche     { fill: #f9fafb; stroke: #d1d5db; stroke-width: 1; stroke-dasharray: 3; }
.quadrant-zone__label                  { font-size: 11px; font-weight: 700; }
.quadrant-zone__label--leader          { fill: #92400e; text-anchor: end; }
.quadrant-zone__label--strong          { fill: #166534; text-anchor: end; font-weight: 600; }
.quadrant-zone__label--contender       { fill: #1e40af; text-anchor: end; font-weight: 600; }
.quadrant-zone__label--niche           { fill: #6b7280; text-anchor: end; font-weight: 600; }
.quadrant-grid       { stroke: #e5e7eb; stroke-width: 1; stroke-dasharray: 5,3; }
.quadrant-axis       { stroke: #374151; stroke-width: 2; }
.quadrant-axis-arrow { fill: #374151; }
.quadrant-axis-label { font-size: 12px; fill: #374151; font-weight: 600; }
.quadrant-tick       { stroke: #6b7280; }
.quadrant-tick-label { font-size: 9px; fill: #6b7280; }
.quadrant-dot                  { cursor: pointer; }
.quadrant-dot circle           { stroke-width: 2; opacity: .9; }
.quadrant-dot--leader    circle { fill: #f59e0b; stroke: #d97706; }
.quadrant-dot--strong    circle { fill: #10b981; stroke: #059669; }
.quadrant-dot--contender circle { fill: #3b82f6; stroke: #2563eb; }
.quadrant-dot--niche     circle { fill: #9ca3af; stroke: #6b7280; }
.quadrant-dot__label { font-size: 8px; fill: #374151; pointer-events: none; }

.quadrant-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  justify-content: center;
  margin-top: 12px;
}
.quadrant-legend__item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: var(--t-12);
  color: var(--ink-2);
}
.quadrant-legend__item::before {
  content: '';
  width: 12px;
  height: 12px;
  border-radius: var(--r-xs);
  display: inline-block;
}
.quadrant-legend__item--leader::before    { background: #f59e0b; }
.quadrant-legend__item--strong::before    { background: #10b981; }
.quadrant-legend__item--contender::before { background: #3b82f6; }
.quadrant-legend__item--niche::before     { background: #9ca3af; }

.quadrant-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: var(--r-sm);
  font-size: var(--t-13);
  font-weight: 600;
}
.quadrant-badge--leader    { background: #fef3c7; color: #92400e; }
.quadrant-badge--strong    { background: #d1fae5; color: #065f46; }
.quadrant-badge--contender { background: #dbeafe; color: #1e40af; }
.quadrant-badge--niche     { background: #f3f4f6; color: #374151; }

.quadrant-method {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.quadrant-method__row {
  font-size: var(--t-13);
  color: var(--ink-2);
  margin: 0;
}
.quadrant-method__row b {
  color: var(--brand-deep);
  font-weight: 600;
}
.quadrant-method__row--muted {
  color: var(--ink-3);
  font-size: var(--t-12);
  padding-top: 4px;
  border-top: 1px dashed var(--hairline);
  margin-top: 4px;
}

/* Технический квадрант – пометка в hero */
.quadrant-source {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-top: 16px;
  padding: 12px 14px;
  background: rgba(255,255,255,0.55);
  border: 1px solid rgba(255,255,255,0.7);
  border-radius: var(--r-md);
  max-width: 640px;
}
.quadrant-source__badge {
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  background: var(--brand-deep);
  color: #fff;
  border-radius: var(--r-sm);
  font-size: var(--t-12);
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
}
.quadrant-source__text {
  margin: 0;
  font-size: var(--t-13);
  line-height: 1.5;
  color: var(--ink-2);
}
.quadrant-source__text b {
  color: var(--brand-deep);
  font-weight: 600;
}

/* bugs-0906: компактный бейдж источника + CTA в hero квадранта + SVG на первый экран */
.quadrant-source--compact {
  padding: 8px 12px;
  margin-top: 12px;
  align-items: center;
  gap: 10px;
}
.quadrant-source__hint {
  font-size: var(--t-13);
  color: var(--ink-2);
  line-height: 1.4;
}
.hero__cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}
@media (max-width: 600px) {
  .hero__cta-row { flex-direction: column; }
  .hero__cta-row .btn { width: 100%; }
}
.quadrant-chart-band {
  margin-top: 16px;
  margin-bottom: 32px;
}
.section__head--visually-hidden {
  position: absolute;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* === AWARDS (страница премий) === */
.awards-period-badge{
  display:inline-flex; align-items:center; gap:8px;
  margin-top:12px;
  padding:6px 12px;
  background:#fff; border:1px solid var(--hairline);
  border-radius: var(--r-sm);
  font-size: var(--t-13); color: var(--ink-2);
}
.awards-period-badge--voting{
  background:#E8F0FF; border-color:#B7CDFF; color: var(--brand-deep);
}
.awards-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.awards-card{
  display:flex; flex-direction:column; gap:12px;
  padding:20px;
  background:#fff;
  border:1px solid var(--hairline);
  border-radius: var(--r-sm);
}
.awards-card__icon,
.awards-card__logo{
  width:48px; height:48px;
  display:flex; align-items:center; justify-content:center;
  background: var(--brand);
  color:#fff;
  border-radius: var(--r-sm);
  font-size: 22px;
  flex-shrink:0;
}
.awards-card__logo img{ width:100%; height:100%; object-fit:contain; border-radius: var(--r-sm); }
.awards-card__body{ flex:1 1 auto; min-height:0; }
.awards-card__title{
  margin:0 0 6px;
  font-size: var(--t-18);
  font-weight:700;
  color: var(--ink);
  line-height:1.3;
}
.awards-card__desc{
  margin:0 0 6px;
  font-size: var(--t-14);
  color: var(--ink-2);
  line-height:1.5;
}
.awards-card__org{
  display:block;
  font-size: var(--t-12);
  color: var(--ink-3);
}
.awards-card__cta{ align-self:flex-start; }
.awards-cta-row{ text-align:center; margin-top:32px; }
.awards-pagination-row{ margin-top:32px; display:flex; justify-content:center; }
.awards-empty-state{
  text-align:center; padding:64px 24px;
  background:#fff;
  border:1px dashed var(--hairline);
  border-radius: var(--r-sm);
}
.awards-empty-state i{ font-size: 48px; color: var(--ink-3); margin-bottom:16px; display:block; }
.awards-empty-state__title{ margin:0; font-size: var(--t-21); font-weight:700; color: var(--ink); }
.awards-empty-state__sub{ margin:4px 0 0; font-size: var(--t-15); color: var(--ink-2); }

.awards-about-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 24px;
}
.awards-about-item{
  padding:24px;
  background:#fff;
  border:1px solid var(--hairline);
  border-radius: var(--r-sm);
}
.awards-about-item__icon{
  width:48px; height:48px;
  display:flex; align-items:center; justify-content:center;
  background: var(--brand);
  color:#fff;
  border-radius: var(--r-sm);
  font-size:22px;
  margin-bottom:16px;
}
.awards-about-item__title{
  margin:0 0 8px;
  font-size: var(--t-18);
  font-weight:700;
  color: var(--ink);
}
.awards-about-item__text{
  margin:0;
  font-size: var(--t-14);
  color: var(--ink-2);
  line-height:1.5;
}

@media (max-width: 900px){
  .awards-grid,
  .awards-about-grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px){
  .awards-grid,
  .awards-about-grid{ grid-template-columns: 1fr; }
}

/* === CATEGORY L1/L2 — Виджеты Аналитика/Новости/Новости компаний === */
.cat-widgets-grid{
  display:grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px;
  margin: 24px 0;
}
.cat-widget{
  display:flex; flex-direction:column;
  padding:16px 18px;
  background:#fff;
  border:1px solid var(--hairline);
  border-radius: var(--r-sm);
}
/* bugs-0706 (08.06): нежные фоны для виджетов Аналитики и Новостей,
   чтобы они визуально отделялись от карточек продуктов ниже */
.cat-widget--analytics {
  background: linear-gradient(180deg, #F4F8FF 0%, #ECF2FE 100%);
  border-color: #DCE6F6;
}
.cat-widget--analytics .cat-widget__header { border-bottom-color: rgba(10, 42, 107, 0.10); }
.cat-widget--analytics .cat-widget__more  { border-top-color: rgba(10, 42, 107, 0.10); }
.cat-widget--news {
  background: linear-gradient(180deg, #FFF8F2 0%, #FEEFE2 100%);
  border-color: #F1DCC4;
}
.cat-widget--news .cat-widget__header { border-bottom-color: rgba(159, 89, 27, 0.12); }
.cat-widget--news .cat-widget__more  { border-top-color: rgba(159, 89, 27, 0.12); }
.cat-widget__header{
  display:flex; align-items:center; gap:8px;
  padding-bottom:10px;
  margin-bottom:10px;
  border-bottom:1px solid var(--hairline);
}
.cat-widget__icon{ color: var(--brand); font-size:14px; }
.cat-widget__title{
  font-size: var(--t-13);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.04em;
  color: var(--ink);
}
.cat-widget__list{
  list-style:none; padding:0; margin:0;
  display:flex; flex-direction:column; gap:8px;
  flex:1 1 auto;
}
.cat-widget__item{
  display:flex; justify-content:space-between; gap:8px;
  font-size: var(--t-14);
  line-height:1.4;
}
.cat-widget__link{
  color: var(--ink);
  text-decoration:none;
  flex:1 1 auto;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
}
.cat-widget__link:hover{ color: var(--brand); }
.cat-widget__badge{
  font-size: var(--t-12);
  color: var(--ink-3);
  flex-shrink:0;
}
.cat-widget__empty{
  margin:0;
  font-size: var(--t-13);
  color: var(--ink-3);
}
.cat-widget__more{
  display:inline-block;
  margin-top:12px;
  padding-top:10px;
  border-top:1px solid var(--hairline);
  font-size: var(--t-13);
  color: var(--brand);
  text-decoration:none;
  font-weight:600;
}
.cat-widget__more:hover{ color: var(--brand-deep); }

@media (max-width: 900px){
  .cat-widgets-grid{ grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px){
  .cat-widgets-grid{ grid-template-columns: 1fr; }
}

/* === CATEGORY L1 – Магический квадрант (реальный и заглушка) === */
.cat-quadrant-link{
  position: relative;
  display:grid;
  grid-template-columns: 72px 1fr auto;
  gap: 24px;
  align-items: center;
  padding: 24px 28px;
  margin: 24px 0;
  background: linear-gradient(135deg, #eef4ff 0%, #f7faff 60%, #ffffff 100%);
  border: 1px solid rgba(30, 88, 240, 0.18);
  border-radius: var(--r-sm);
  text-decoration:none;
  overflow: hidden;
  transition: border-color .2s ease;
}
.cat-quadrant-link::after{
  content:"";
  position:absolute;
  right:-80px; top:-60px;
  width: 260px; height: 260px;
  background: radial-gradient(circle, rgba(30,88,240,0.18), rgba(30,88,240,0) 70%);
  pointer-events:none;
}
.cat-quadrant-link:hover{
  border-color: var(--brand);
}
.cat-quadrant-link__icon{
  position: relative;
  width: 64px; height: 64px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr 1fr;
  gap: 4px;
  padding: 6px;
  background: #fff;
  border: 1px solid rgba(30, 88, 240, 0.22);
  border-radius: 12px;
  box-shadow: 0 4px 12px -6px rgba(30, 88, 240, 0.25);
  z-index: 1;
}
.cat-quadrant-link__icon span{
  display:block;
  border-radius: 4px;
  background: rgba(30, 88, 240, 0.12);
}
.cat-quadrant-link__icon span:nth-child(1){ background: #1e58f0; }
.cat-quadrant-link__icon span:nth-child(2){ background: rgba(30, 88, 240, 0.45); }
.cat-quadrant-link__icon span:nth-child(3){ background: rgba(30, 88, 240, 0.25); }
.cat-quadrant-link__icon span:nth-child(4){ background: rgba(30, 88, 240, 0.12); }
.quadrant-stub{
  display:grid;
  grid-template-columns: 1fr auto auto;
  gap: 24px;
  align-items: center;
  padding: 20px 24px;
  margin: 24px 0;
  background:#fff;
  border:1px solid var(--hairline);
  border-radius: var(--r-sm);
  text-decoration:none;
}
.cat-quadrant-link__body,
.quadrant-stub__content{ min-width:0; position: relative; z-index: 1; }
/* bugs-1006: kicker над заголовком («Техническая призма») — без рамки/фона,
   не chip/eyebrow-pill (пользователь назвал chip-вариант «бутстрап-плашками»). */
.cat-quadrant-link__kicker,
.quadrant-stub__kicker{
  font-size: var(--t-12, 12px);
  font-weight: 600;
  letter-spacing: .8px;
  text-transform: uppercase;
  color: var(--ink-2, #54647a);
  margin: 0 0 4px;
}
.cat-quadrant-link__title,
.quadrant-stub__title{
  margin: 0 0 4px;
  font-family: var(--font-display);
  font-size: var(--t-21);
  font-weight: 700;
  color: var(--ink);
  line-height: 1.3;
}
.cat-quadrant-link__period{
  font-size: var(--t-13);
  color: var(--ink-2);
}
.cat-quadrant-link__desc{
  margin: 4px 0 0;
  font-size: var(--t-14, 14px);
  color: var(--ink-2, #54647a);
  line-height: 1.55;
  max-width: 64ch;
}
.quadrant-stub__desc{
  margin:0;
  font-size: var(--t-14);
  color: var(--ink-2);
  line-height:1.5;
  max-width: 56ch;
}
.quadrant-stub__visual{
  flex-shrink:0;
  width:56px; height:56px;
  display:flex; align-items:center; justify-content:center;
}
.cat-quadrant-link__arrow{
  color: var(--brand);
  flex-shrink:0;
}
.quadrant-stub__btn{
  white-space: nowrap;
  flex-shrink: 0;
}

@media (max-width: 720px){
  .cat-quadrant-link{
    grid-template-columns: 56px 1fr;
    gap: 16px;
    padding: 18px 20px;
  }
  .cat-quadrant-link__icon{ width: 48px; height: 48px; padding: 4px; gap: 3px; }
  .cat-quadrant-link__arrow{ display: none; }
  .quadrant-stub{
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .quadrant-stub__visual{ display:none; }
  .quadrant-stub__btn{ justify-self: flex-start; }
}

/* Empty-state для каталога */
.cat-empty-state{
  text-align:center;
  padding: 64px 24px;
  background:#fff;
  border:1px dashed var(--hairline);
  border-radius: var(--r-sm);
}
.cat-empty-state__title{
  font-size: var(--t-21);
  font-weight:700;
  color: var(--ink);
  margin-bottom: 8px;
}
.cat-empty-state__sub{
  font-size: var(--t-15);
  color: var(--ink-2);
  margin: 0 0 16px;
}

/* ════════════════════════════════════════════════════════════════
   MR-C: страница продукта (фидбэк п.7–14)
   ════════════════════════════════════════════════════════════════ */

/* П.7: ширина описания (max-width:72ch уже задан выше для .p-description);
   тут дублируем явный класс, чтобы partials не использовали inline-style */
.p-description { max-width: 72ch; }

/* П.12: реквизиты вендора без bootstrap/inline */
.p-sidebar-card--vendor-req { box-shadow: none; max-width: 100%; overflow: hidden; box-sizing: border-box; }
.p-sidebar-card--vendor-req .p-sidebar-card__title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--t-13);
  color: var(--brand-deep, #0A2A6B);
  /* [NEW-F5-02] убрана синяя полоса под заголовком */
  border-bottom: 1px solid var(--hairline);
  padding-bottom: 8px;
  margin-bottom: 14px;
  text-transform: uppercase;
  letter-spacing: .06em;
}

/* [NEW-F5-03] Двойной контур: внутри .p-sidebar-card у .p-manager-block не рисуем рамку/фон/паддинг */
.p-sidebar-card > .p-manager-block,
.p-sidebar-card .p-manager-block {
  border: 0;
  background: transparent;
  padding: 0;
  margin: 0;
  border-radius: 0;
}

/* [NEW-F5-04] Блок .p-essence (рейтинг/кейсы/поставка/статус) — дублирует инфу из hero/sidebar, скрываем */
.p-essence { display: none !important; }

/* [NEW-F5-05] Гарантия закругления всех .btn внутри карточек сайдбара */
.p-sidebar-card .btn,
.p-sidebar-card .btn--primary,
.p-sidebar-card .btn--ghost { border-radius: var(--r-xs, 4px); }

/* П.12: manager-block — заменены inline стили на классы */
.p-manager-block__pulse { margin-left: auto; flex-shrink: 0; }
.p-manager-block__desc { font-size: var(--t-13); line-height: 1.45; color: var(--ink-2); margin: 8px 0 12px; }
.p-manager-block__cta-row { display: flex; gap: 8px; flex-wrap: wrap; }

/* П.13: Отзывы — карточка, подопции крупнее, 3 в строку остаются;
   контейнер reviews-tab оформляем как карточку-обёртку */
.p-section__hdr--reviews { margin-bottom: 20px; flex-wrap: wrap; }
.p-review { box-shadow: 0 1px 2px rgba(15,23,42,.04); }
.p-review__subcriteria {
  /* 3 в строку и крупнее */
  grid-template-columns: repeat(3, 1fr);
  gap: 8px 20px;
  font-size: var(--t-15);
  padding: 10px 12px;
  background: var(--bg-soft, #f6f7f9);
  border-radius: var(--r-sm, 6px);
}
.p-review__subcriteria-label { font-size: var(--t-14); }
.p-review__subcriteria-stars { font-size: var(--t-15); }
.p-review__subcriteria-val { font-size: var(--t-13); }
@media(max-width:900px){ .p-review__subcriteria { grid-template-columns: repeat(2, 1fr); } }
@media(max-width:560px){ .p-review__subcriteria { grid-template-columns: 1fr; } }

/* П.13: preview-card score-sub без inline */
.p-review-card__score-sub { color: var(--ink-3); font-size: var(--t-12, 12px); }

/* П.10: compat-note без inline в plugin/themes/product/compatibility.blade.php */
.p-compat-note {
  grid-column: 1 / -1;
  font-size: var(--t-12);
  color: var(--ink-2);
  display: flex;
  gap: 6px;
  align-items: flex-start;
  padding: 4px 0 2px;
}
.p-compat-note__icon { flex-shrink: 0; margin-top: 2px; }

/* П.12: страница /platform/{id}/contacts — карточка контактов */
.p-contacts-card {
  background: #fff;
  border: 1px solid var(--hairline);
  border-radius: var(--r-sm, 6px);
  padding: 20px 24px;
  display: grid;
  gap: 0;
  max-width: 720px;
}
.p-contacts-card__row {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 12px 24px;
  padding: 12px 0;
  border-bottom: 1px solid var(--hairline);
  align-items: baseline;
}
.p-contacts-card__row:last-child { border-bottom: none; }
.p-contacts-card__label { font-size: var(--t-13); color: var(--ink-3); }
.p-contacts-card__val { font-size: var(--t-14); color: var(--ink); font-weight: 500; overflow-wrap: anywhere; }
.p-contacts-card__val a { color: var(--brand); text-decoration: none; }
.p-contacts-card__val a:hover { text-decoration: underline; }
/* issue #440: muted-текст «скрыто» для пустых контактных полей */
.p-contacts-card__hidden,
.text-muted { color: var(--ink-3); font-weight: 400; font-style: normal; opacity: .75; }
.p-contacts-card__actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 20px; }
@media(max-width:560px){
  .p-contacts-card__row { grid-template-columns: 1fr; gap: 4px; }
  .p-contacts-card__label { font-size: var(--t-12); }
}

/* ========================================================================
   [MR-D] Hero категорий L1/L2/L3 — единая верстка (.cat-hero) + /about
   ======================================================================== */

/* Topbar: ← К категориям ⇆ название+описание→/about */
.cat-hero__topbar {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 24px;
  flex-wrap: wrap;
}
/* fix v3-frontend (10.06): inline-style margin-top:18px вынесён в модификатор (rule: никаких inline-styles в blade) */
.cat-hero__topbar--actions { margin-top: 18px; margin-bottom: 0; }

/* bugs-0706 #1а (08.06): «Назад» + «Подробнее о категории» в одной строке */
.cat-hero__backwrap--row {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 32px; /* было 18px inline — увеличиваем отступ от лида/подкатегорий */
}
.cat-hero__about-btn {
  background: #fff;
  color: var(--brand-deep, #0A2A6B);
  border: 1px solid var(--brand-deep, #0A2A6B);
  text-decoration: none;
  /* bugs-0706 (08.06): прижимаем кнопку «Подробнее о категории» к правому краю */
  margin-left: auto;
}
.cat-hero__about-btn:hover {
  background: var(--brand-deep, #0A2A6B);
  color: #fff;
}
@media (max-width: 480px) {
  .cat-hero__backwrap--row { gap: 8px; }
  .cat-hero__backwrap--row .btn { width: 100%; text-align: center; }
  /* на мобильном в столбик margin-left:auto не нужен */
  .cat-hero__about-btn { margin-left: 0; }
}
.cat-hero__back {
  flex: 0 0 auto;
  align-self: flex-start;
  background: #fff;
  color: var(--brand-deep, #0A2A6B);
  border: 1px solid var(--brand-deep, #0A2A6B);
}
.cat-hero__back:hover {
  background: var(--brand-deep, #0A2A6B);
  border-color: var(--brand-deep, #0A2A6B);
  color: #fff;
}
.cat-hero__about {
  flex: 0 1 460px;
  max-width: 460px;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 14px;
  border: 1px solid var(--brand-deep, #0A2A6B);
  border-radius: var(--r-sm, 6px);
  color: var(--brand-deep, #0A2A6B);
  text-decoration: none;
  background: #fff;
  transition: background .15s ease, border-color .15s ease, color .15s ease;
  min-width: 0;
}
.cat-hero__about:hover {
  background: var(--brand-deep, #0A2A6B);
  color: #fff;
}
.cat-hero__about:hover .cat-hero__about-name,
.cat-hero__about:hover .cat-hero__about-desc,
.cat-hero__about:hover .cat-hero__about-arrow { color: #fff; }
.cat-hero__about-name {
  font-weight: 700;
  font-size: var(--t-13, 13px);
  color: var(--brand-deep, #0A2A6B);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  flex: 0 0 auto;
  max-width: 180px;
}
.cat-hero__about-desc {
  font-size: var(--t-12, 12px);
  color: var(--ink-2, #4B5466);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1 1 auto;
  min-width: 0;
}
.cat-hero__about-arrow {
  flex: 0 0 auto;
  font-size: 14px;
  color: var(--brand-deep, #0A2A6B);
}

/* Hero main: заголовок и lead */
.cat-hero__main { display: block; }
.cat-hero__lead { max-width: 980px; }
.cat-hero__title {
  margin: 8px 0 0;
  word-break: keep-all;
  overflow-wrap: break-word;
  hyphens: manual;
  -webkit-hyphens: manual;
}
.cat-hero__lead-text {
  margin-top: 16px;
  max-width: 78ch;
  line-height: 1.5;
}
.cat-hero__registry-meta {
  font-size: var(--t-15, 15px);
  color: var(--ink-2, #4B5466);
  margin-top: 14px;
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.cat-hero__count {
  color: var(--brand-deep, #0A2A6B);
  font-variant-numeric: tabular-nums;
  font-weight: 700;
}

/* Mobile-адаптация L1/L2/L3 — устраняем «Фи-нансы» переносы */
@media (max-width: 768px) {
  .cat-hero { padding-block: 32px; }
  .cat-hero__topbar { flex-direction: column; align-items: stretch; gap: 12px; margin-bottom: 20px; }
  .cat-hero__back { align-self: flex-start; }
  .cat-hero__about { max-width: 100%; flex: 1 1 auto; }
  .cat-hero__about-name { white-space: normal; max-width: none; }
  .cat-hero__about-desc { white-space: normal; }
  .cat-hero__title {
    font-size: var(--t-28, 28px) !important;
    line-height: 1.15 !important;
    word-break: normal;
    overflow-wrap: break-word;
    hyphens: none;
    -webkit-hyphens: none;
  }
  .cat-hero__lead-text { font-size: var(--t-15, 15px); margin-top: 12px; }
  .cat-widgets-grid { grid-template-columns: 1fr !important; }
  .l2-subcats__grid { grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)) !important; }
}
@media (max-width: 480px) {
  .cat-hero__title { font-size: var(--t-24, 24px) !important; }
}

/* ========================================================================
   [MR-D] /platforms/{cat}/about — описательная страница
   ======================================================================== */
.cat-hero--about { padding-block: 40px 32px; }
/* fix v3-frontend (10.06): padding shorthand 32px 0 64px затирал padding-inline:40px из .container.
   Используем block-only padding, чтобы горизонтальные отступы .container не терялись. */
.cat-about-body { padding-block: 32px 64px; display: grid; gap: 32px; }

/* bugs-0706 #2а (08.06): двухколонная сетка about-страницы */
.cat-about-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
  gap: 32px;
  align-items: start;
}
.cat-about-grid--single { grid-template-columns: 1fr; }
.cat-about-col {
  display: flex;
  flex-direction: column;
  gap: 24px;
  min-width: 0;
}
@media (max-width: 900px) {
  .cat-about-grid { grid-template-columns: 1fr; gap: 24px; }
}

/* Сводка — плитки с цифрами */
.cat-about-stats__list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 12px;
}
.cat-about-stats__item {
  background: var(--bg-soft, #f6f7f9);
  border: 1px solid var(--hairline, #e6e8ec);
  border-radius: var(--r-sm, 6px);
  padding: 16px 14px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.cat-about-stats__num {
  font-size: var(--t-24, 24px);
  font-weight: 700;
  color: var(--brand-deep, #0A2A6B);
  font-variant-numeric: tabular-nums;
  line-height: 1.1;
}
.cat-about-stats__label {
  font-size: var(--t-13, 13px);
  color: var(--ink-2, #4B5466);
}
.cat-about-block { background: #fff; }
.cat-about-block__title {
  font-size: var(--t-21, 21px);
  font-weight: 700;
  color: var(--brand-deep, #0A2A6B);
  margin: 0 0 16px;
  letter-spacing: -0.01em;
}
.cat-about-prose {
  font-size: var(--t-15, 15px);
  line-height: 1.65;
  color: var(--ink, #11151c);
  max-width: 72ch;
}
.cat-about-prose p { margin: 0 0 12px; }
.cat-about-prose ul, .cat-about-prose ol { margin: 0 0 12px 20px; padding: 0; }
.cat-about-prose li { margin-bottom: 6px; }
.cat-about-prose a { color: var(--brand, #1E5BFF); }
.cat-about-prose strong { color: var(--brand-deep, #0A2A6B); }

/* Полное описание категории (content) — bugs-0806: во всю ширину грид-ряда */
.cat-about-block--full {
  margin-top: 24px;
  padding: 24px 28px;
  background: linear-gradient(180deg, #F7F9FC 0%, #FFFFFF 100%);
  border: 1px solid #E6ECF4;
  border-radius: 14px;
  /* bugs-0806: выстраиваем в две внутренних колонки для хорошего форматирования длинных текстов */
  column-count: 1;
}
.cat-about-prose--full {
  font-size: var(--t-16, 16px);
  line-height: 1.7;
  /* fix v3-frontend (10.06): column-count:2 рвал абзацы посередине между колонками — нечитабельно.
     Возвращаем линейный поток с разумной max-width для комфортного чтения. */
  max-width: 80ch;
}
/* bugs-0806: заголовки внутри prose-full не ломают колоночный поток (column-span:all — во всю ширину). */
.cat-about-prose--full h2,
.cat-about-prose--full h3 { -webkit-column-span: all; column-span: all; }
.cat-about-prose--full h2,
.cat-about-prose--full h3 {
  color: var(--brand-deep, #0A2A6B);
  font-weight: 700;
  margin: 22px 0 10px;
  letter-spacing: -0.01em;
}
.cat-about-prose--full h2 { font-size: var(--t-19, 19px); }
.cat-about-prose--full h3 { font-size: var(--t-17, 17px); }
.cat-about-prose--full p { margin: 0 0 14px; }
.cat-about-prose--full blockquote {
  margin: 16px 0;
  padding: 10px 16px;
  border-left: 3px solid var(--brand, #1E5BFF);
  background: #F0F5FF;
  color: var(--ink, #11151c);
  border-radius: 0 8px 8px 0;
}
@media (max-width: 720px) {
  .cat-about-block--full { padding: 18px 16px; }
  .cat-about-prose--full { font-size: 15px; line-height: 1.65; }
}

/* fix v3-frontend (10.06 v2): «Подробнее о категории» – 2 колонки: текст + aside */
.cat-about-block--with-aside { padding-right: 24px; }
.cat-about-fullgrid { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 32px; align-items: start; }
.cat-about-fullgrid > .cat-about-prose--full { max-width: none; }
.cat-about-aside { position: sticky; top: 24px; padding: 18px 18px 16px; background: #fff; border: 1px solid #E6ECF4; border-radius: 12px; box-shadow: 0 1px 2px rgba(15,28,60,0.04); }
.cat-about-aside__head { font-size: 11px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ink-3, #6a7585); margin: 0 0 12px; }
.cat-about-aside__group { margin-bottom: 14px; }
.cat-about-aside__group:last-of-type { margin-bottom: 14px; }
.cat-about-aside__group-title { font-size: 13px; font-weight: 700; color: var(--brand-deep, #0A2A6B); margin: 0 0 6px; }
.cat-about-aside__opts { display: flex; flex-wrap: wrap; gap: 4px 6px; }
.cat-about-aside__opt { display: inline-flex; padding: 3px 9px; font-size: 12px; line-height: 1.4; color: var(--ink, #11151c); background: #F4F7FB; border: 1px solid #E6ECF4; border-radius: 999px; text-decoration: none; transition: background .15s ease, border-color .15s ease, color .15s ease; }
.cat-about-aside__opt:hover { background: #EAF1FF; border-color: rgba(30,88,240,0.25); color: var(--brand, #1E5BFF); }
.cat-about-aside__more { display: inline-block; margin-top: 4px; padding-top: 12px; border-top: 1px dashed #E6ECF4; width: 100%; font-size: 12px; font-weight: 600; color: var(--brand, #1E5BFF); text-decoration: none; }
.cat-about-aside__more:hover { text-decoration: underline; }
@media (max-width: 980px) {
  .cat-about-block--with-aside { padding-right: 18px; }
  .cat-about-fullgrid { grid-template-columns: 1fr; }
  .cat-about-aside { position: static; }
}

/* fix v3-frontend (10.06): «Как рассчитывается» – две колонки: слева Тип/Источники, справа описание осей */
.quadrant-meth { display: grid; grid-template-columns: 1fr 1fr; gap: 32px 40px; }
.quadrant-meth__col h3:first-child { margin-top: 0; }
.quadrant-meth__col h3 { color: var(--brand-deep, #0A2A6B); font-weight: 700; font-size: var(--t-17, 17px); margin: 22px 0 8px; }
.quadrant-meth__col h3:first-child { margin-top: 0; }
.quadrant-meth__col p { margin: 0 0 14px; font-size: var(--t-15, 15px); line-height: 1.65; color: var(--ink, #11151c); }
.quadrant-meth__col p:last-child { margin-bottom: 0; }
.quadrant-meth__muted { color: var(--ink-2, #54647a); font-size: 14px; }
@media (max-width: 820px) {
  .quadrant-meth { grid-template-columns: 1fr; gap: 4px; }
}

.cat-about-subcats {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 8px;
}
.cat-about-subcat {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  padding: 12px 14px;
  background: var(--bg-soft, #f6f7f9);
  border: 1px solid var(--hairline, #e6e8ec);
  border-radius: var(--r-sm, 6px);
  color: var(--ink, #11151c);
  text-decoration: none;
  font-size: var(--t-14, 14px);
  transition: background .15s, border-color .15s;
}
.cat-about-subcat:hover {
  background: #fff;
  border-color: var(--brand, #1E5BFF);
  color: var(--brand-deep, #0A2A6B);
}
.cat-about-subcat__name { font-weight: 500; }
.cat-about-subcat__count {
  font-size: var(--t-12, 12px);
  color: var(--ink-3, #79808c);
  font-variant-numeric: tabular-nums;
}

/* fix v3-frontend (10.06): группы опций — две колонки на широких экранах,
   чтобы блок «Опции и характеристики» был компактнее и легче читался. */
.cat-about-optgroups {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px 32px;
}
@media (max-width: 900px) {
  .cat-about-optgroups { grid-template-columns: 1fr; gap: 16px; }
}
.cat-about-optgroup { margin-bottom: 0; }
.cat-about-optgroup__title {
  font-size: var(--t-14, 14px);
  font-weight: 600;
  color: var(--ink, #11151c);
  margin: 0 0 8px;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.cat-about-options {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.cat-about-option {
  display: inline-flex;
  padding: 4px 10px;
  background: var(--bg-soft, #f6f7f9);
  border: 1px solid var(--hairline, #e6e8ec);
  border-radius: var(--r-sm, 6px);
  font-size: var(--t-12, 12px);
  color: var(--ink-2, #4B5466);
}

/* bugs-0806: CTA-блок — primary-кнопка в hero и вторичный CTA внизу. */
/* Раньше кнопка была прижата влево без визуального веса — по гайдлайнам primary CTA идёт в hero. */
.cat-about-cta {
  display: flex;
  justify-content: center;
  padding: 16px 0 8px;
}
.cat-about-cta--bottom {
  margin-top: 8px;
  padding-top: 24px;
  border-top: 1px solid var(--hairline, #e6e8ec);
}
.cat-about-cta--bottom .btn--primary { min-width: 280px; }

/* bugs-0806: primary CTA внутри hero сразу под lead-текстом */
.cat-hero__cta-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 20px;
}
.cat-hero__cta { font-weight: 600; }

/* bugs-0806: ограничиваем ширину H1 hero, чтобы длинные заголовки опций не ломали вёрстку. */
/* «Сертификат ФСТЭК для значимых объектов КИИ» был в 4 строки на desktop. */
.cat-hero__title {
  max-width: 26ch;
  word-break: normal;
  overflow-wrap: anywhere;
}
/* fix v3-frontend (10.06): H1 опции теперь включает категорию «Опция – Категория», расширяем max-width. */
.cat-hero__title--option {
  font-size: clamp(26px, 3.4vw, 38px);
  line-height: 1.2;
  max-width: 48ch;
}

@media (max-width: 768px) {
  .cat-about-body { padding-block: 24px 48px; gap: 24px; }
  .cat-about-subcats { grid-template-columns: 1fr; }
}


/* ═══════════════════════════════════════════════════════════════════════
   MR-E: /finder — единый стиль визарда подбора ПО
   ─ Никаких inline-стилей, никакого Bootstrap btn-check.
   ─ Максимальный радиус 6px (var(--r-sm)); кнопка submit — var(--brand).
   ═══════════════════════════════════════════════════════════════════════ */

/* Обёртка */
.finder-wizard-wrapper {
    padding: 32px 0 64px;
}

/* Breadcrumbs bar */
.v3-breadcrumbs-bar {
    background: #f5f6fa;
    border-bottom: 1px solid var(--hairline, #E5E7EF);
    padding: 10px 0;
}

/* Hero / intro */
.finder-hero {
    max-width: 760px;
    margin: 0 auto 24px;
    text-align: center;
}
.finder-hero__title {
    font-family: var(--font-display, 'Manrope', sans-serif);
    font-weight: 700;
    font-size: var(--t-32, 32px);
    line-height: 1.15;
    color: var(--ink, #0B1220);
    margin: 0;
}
.finder-hero__lead {
    font-size: var(--t-17, 17px);
    color: var(--ink-2, #3D4659);
    line-height: 1.55;
    margin: 14px 0 0;
}
.finder-hero__sub {
    font-size: var(--t-15, 15px);
    color: var(--ink-2, #3D4659);
    margin: 8px 0 0;
}
.finder-hero__bullets {
    display: flex;
    justify-content: center;
    gap: 24px;
    flex-wrap: wrap;
    list-style: none;
    padding: 0;
    margin: 20px 0 0;
}
.finder-hero__bullets li {
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
}
.finder-hero__b-num {
    font-family: var(--font-display, 'Manrope', sans-serif);
    font-weight: 700;
    font-size: var(--t-21, 21px);
    color: var(--brand, #1E5BFF);
}
.finder-hero__b-text {
    font-size: var(--t-15, 15px);
    color: var(--ink-2, #3D4659);
}
.finder-hero--compact {
    margin-bottom: 16px;
}
.finder-hero--compact .finder-hero__title {
    font-size: var(--t-24, 24px);
}

/* Карточка с прогрессом + контентом шага */
.finder-card-wrap {
    max-width: 760px;
    margin: 0 auto;
}
.finder-card {
    background: #fff;
    border: 1px solid var(--hairline, #E5E7EF);
    padding: 28px;
    border-radius: var(--r-sm, 6px);
}

/* Progress */
.finder-progress {
    margin-bottom: 16px;
}
.finder-progress__row {
    display: flex;
    justify-content: space-between;
    margin-bottom: 6px;
}
.finder-progress__label,
.finder-progress__pct {
    font-size: var(--t-13, 13px);
    color: var(--ink-2, #3D4659);
}
.finder-progress__track {
    height: 6px;
    background: #e9ecef;
    overflow: hidden;
    border-radius: var(--r-sm, 6px);
}
.finder-progress__bar {
    height: 100%;
    background: var(--brand, #1E5BFF);
    width: 0;
    transition: width .25s ease;
    border-radius: var(--r-sm, 6px);
}
.finder-steps-nav {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    margin-top: 10px;
}
.finder-step-dot {
    display: flex;
    flex-direction: column;
    align-items: center;
}
.finder-step-dot .dot-inner {
    width: 28px;
    height: 28px;
    border-radius: 0;
    background: #e9ecef;
    color: var(--ink-2, #3D4659);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 600;
    border: 1px solid #dee2e6;
}
.finder-step-dot.active .dot-inner {
    background: var(--brand, #1E5BFF);
    color: #fff;
    border-color: var(--brand, #1E5BFF);
}
.finder-step-dot.completed .dot-inner {
    background: #198754;
    color: #fff;
    border-color: #198754;
}

/* Заголовок шага */
.finder-step__title {
    font-family: var(--font-display, 'Manrope', sans-serif);
    font-weight: 700;
    font-size: var(--t-21, 21px);
    color: var(--ink, #0B1220);
    margin: 0 0 8px;
}
.finder-step__sub {
    font-size: var(--t-15, 15px);
    color: var(--ink-2, #3D4659);
    margin: 0 0 20px;
}

/* Поле */
.finder-field { margin-bottom: 20px; }
.finder-field__label {
    display: block;
    font-weight: 600;
    font-size: var(--t-15, 15px);
    color: var(--ink, #0B1220);
    margin-bottom: 10px;
}
.finder-field__hint {
    font-weight: 400;
    font-size: var(--t-13, 13px);
    color: var(--ink-3, #79808c);
}
.finder-field__req { color: #dc3545; }

/* Form input */
.finder-input,
.finder-form__textarea {
    display: block;
    width: 100%;
    border: 1px solid var(--hairline, #E5E7EF);
    background: #fff;
    color: var(--ink, #0B1220);
    padding: 10px 14px;
    font-size: var(--t-15, 15px);
    font-family: inherit;
    border-radius: var(--r-sm, 6px);
    box-sizing: border-box;
}
.finder-input:focus,
.finder-form__textarea:focus {
    outline: none;
    border-color: var(--brand, #1E5BFF);
    box-shadow: 0 0 0 3px rgba(30,91,255,0.12);
}
.finder-form__textarea { resize: vertical; min-height: 80px; }
.finder-form__label {
    display: block;
    font-size: var(--t-13, 13px);
    color: var(--ink-2, #3D4659);
    margin-bottom: 6px;
}

/* Select */
.finder-select-wrap {
    position: relative;
    display: block;
}
.finder-select {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    display: block;
    width: 100%;
    padding: 10px 40px 10px 14px;
    border: 1px solid var(--hairline, #E5E7EF);
    background: #fff;
    color: var(--ink, #0B1220);
    font-size: var(--t-15, 15px);
    font-family: inherit;
    border-radius: var(--r-sm, 6px);
    cursor: pointer;
}
.finder-select:focus {
    outline: none;
    border-color: var(--brand, #1E5BFF);
    box-shadow: 0 0 0 3px rgba(30,91,255,0.12);
}
.finder-select-wrap__chevron {
    position: absolute;
    right: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--ink-2, #3D4659);
    pointer-events: none;
}

/* Radio-кнопки (.finder-option) — нативные input скрыты, label-таблетка */
.finder-option-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}
.finder-option {
    flex: 1 1 140px;
    position: relative;
    cursor: pointer;
    user-select: none;
    margin: 0;
}
.finder-option input[type="radio"] {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    pointer-events: none;
}
.finder-option__text {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 12px 14px;
    border: 1px solid var(--hairline, #E5E7EF);
    background: #fff;
    color: var(--ink, #0B1220);
    font-size: var(--t-15, 15px);
    border-radius: var(--r-sm, 6px);
    transition: all .15s ease;
}
.finder-option:hover .finder-option__text {
    border-color: var(--brand, #1E5BFF);
    color: var(--brand, #1E5BFF);
}
.finder-option input:focus-visible + .finder-option__text {
    box-shadow: 0 0 0 3px rgba(30,91,255,0.18);
}
.finder-option input:checked + .finder-option__text {
    background: var(--brand, #1E5BFF);
    border-color: var(--brand, #1E5BFF);
    color: #fff;
}

/* Чекбоксы-теги (.finder-tag) — native checkbox + квадратный бокс */
.finder-tag-group__title {
    font-weight: 600;
    font-size: var(--t-13, 13px);
    color: var(--ink-2, #3D4659);
    margin: 20px 0 10px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.finder-tag-group {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 4px;
}
.finder-tag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border: 1px solid var(--hairline, #E5E7EF);
    background: #fff;
    color: var(--ink, #0B1220);
    font-size: var(--t-13, 13px);
    border-radius: var(--r-sm, 6px);
    cursor: pointer;
    user-select: none;
    transition: all .12s ease;
    max-width: 100%;
}
.finder-tag:hover {
    border-color: var(--brand, #1E5BFF);
    color: var(--brand, #1E5BFF);
}
.finder-tag__input {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    pointer-events: none;
}
.finder-tag__box {
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 1px solid var(--hairline, #c8ccd6);
    background: #fff;
    border-radius: 0;
    flex-shrink: 0;
    position: relative;
}
.finder-tag__text {
    line-height: 1.3;
    white-space: normal;
    word-break: normal;
    overflow-wrap: anywhere;
}
.finder-tag:has(.finder-tag__input:checked),
.finder-tag.is-checked {
    background: var(--brand, #1E5BFF);
    border-color: var(--brand, #1E5BFF);
    color: #fff;
}
.finder-tag:has(.finder-tag__input:checked) .finder-tag__box,
.finder-tag.is-checked .finder-tag__box {
    background: #fff;
    border-color: #fff;
}
.finder-tag:has(.finder-tag__input:checked) .finder-tag__box::after,
.finder-tag.is-checked .finder-tag__box::after {
    content: "";
    position: absolute;
    left: 3px;
    top: -1px;
    width: 5px;
    height: 10px;
    border: solid var(--brand, #1E5BFF);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}
.finder-tag__input:focus-visible + .finder-tag__box {
    box-shadow: 0 0 0 3px rgba(30,91,255,0.18);
}

/* Range slider — нативный */
.finder-range {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    height: 6px;
    background: #e9ecef;
    border-radius: var(--r-sm, 6px);
    outline: none;
    margin: 4px 0;
}
.finder-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 18px;
    height: 18px;
    background: var(--brand, #1E5BFF);
    border-radius: 50%;
    cursor: pointer;
    border: 0;
}
.finder-range::-moz-range-thumb {
    width: 18px;
    height: 18px;
    background: var(--brand, #1E5BFF);
    border-radius: 50%;
    cursor: pointer;
    border: 0;
}
.finder-budget-display { color: var(--brand, #1E5BFF); }
.finder-budget-axis {
    display: flex;
    justify-content: space-between;
    margin-top: 6px;
    font-size: var(--t-13, 13px);
    color: var(--ink-2, #3D4659);
}

/* Карта с данными авторизованного пользователя */
.finder-auth-card {
    background: #F7F9FF;
    border: 1px solid #E1E8FF;
    padding: 16px 18px;
    border-radius: var(--r-sm, 6px);
    margin-bottom: 20px;
}
.finder-auth-card__row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 6px 0;
    border-bottom: 1px dashed #E1E8FF;
}
.finder-auth-card__row:last-of-type { border-bottom: 0; }
.finder-auth-card__label {
    color: var(--ink-2, #3D4659);
    font-size: var(--t-13, 13px);
}
.finder-auth-card__value {
    color: var(--ink, #0B1220);
    font-size: var(--t-15, 15px);
    font-weight: 500;
    text-align: right;
    word-break: break-word;
}
.finder-auth-card__hint {
    margin-top: 8px;
    font-size: var(--t-13, 13px);
    color: var(--ink-3, #79808c);
}

/* Privacy notice */
.finder-privacy {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: var(--t-13, 13px);
    color: var(--ink-2, #3D4659);
    margin: 0 0 16px;
}

/* Кнопки */
.finder-nav {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-top: 8px;
}
.finder-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 20px;
    font-size: var(--t-15, 15px);
    font-weight: 500;
    font-family: inherit;
    cursor: pointer;
    border-radius: var(--r-sm, 6px);
    line-height: 1.2;
    transition: background .12s ease, border-color .12s ease, color .12s ease;
}
.finder-btn--back {
    background: #fff;
    color: var(--ink-2, #3D4659);
    border: 1px solid var(--hairline, #E5E7EF);
}
.finder-btn--back:hover {
    border-color: var(--ink-3, #79808c);
    color: var(--ink, #0B1220);
}
.finder-btn--primary {
    background: var(--brand, #1E5BFF);
    color: #fff;
    border: 1px solid var(--brand, #1E5BFF);
}
.finder-btn--primary:hover {
    background: #0F3FBE;
    border-color: #0F3FBE;
}

/* Кнопка «Далее» в step1 (legacy class .finder-step__next) */
.finder-step__next {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border-radius: var(--r-sm, 6px) !important;
    box-shadow: none !important;
}

/* Сетка категорий (step1: row/col-* без Bootstrap) */
.finder-wizard-wrapper .row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    width: 100%;
}
.finder-wizard-wrapper .row > [class*="col-"] {
    width: auto;
    float: none;
    padding: 0;
}

/* Bootstrap-утилиты (используются в legacy-разметке шагов) */
.finder-wizard-wrapper .d-flex { display: flex; }
.finder-wizard-wrapper .justify-content-between { justify-content: space-between; }
.finder-wizard-wrapper .justify-content-end { justify-content: flex-end; }
.finder-wizard-wrapper .align-items-center { align-items: center; }
.finder-wizard-wrapper .mb-1 { margin-bottom: .25rem; }
.finder-wizard-wrapper .mb-3 { margin-bottom: 1rem; }
.finder-wizard-wrapper .mb-4 { margin-bottom: 1.5rem; }
.finder-wizard-wrapper .mt-2 { margin-top: .5rem; }
.finder-wizard-wrapper .mt-4 { margin-top: 1.5rem; }

/* Мобильная адаптация finder */
@media (max-width: 768px) {
    .finder-wizard-wrapper { padding: 16px 0 40px; }
    .finder-hero__title { font-size: var(--t-24, 24px); }
    .finder-hero__lead { font-size: var(--t-15, 15px); }
    .finder-hero__bullets { gap: 14px; }
    .finder-card { padding: 18px; }
    .finder-wizard-wrapper .row { grid-template-columns: repeat(2, 1fr); }
    .finder-option { flex: 1 1 100%; }
    .finder-option__text { padding: 10px 12px; }
    .finder-nav { flex-direction: column-reverse; gap: 8px; }
    .finder-btn { width: 100%; justify-content: center; }
}
@media (max-width: 480px) {
    .finder-wizard-wrapper .row { grid-template-columns: 1fr; }
    .finder-tag { font-size: 13px; padding: 8px 10px; }
}
/* MR-E end */

/* ── MR-H1: Каталог/срезы — карточки и compare empty-state ── */

/* H1.1 — chip-wrap не должен «торчать» из карточки: ограничиваем ширину и переносим */
.product-card-v2__chip-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 6px;
  max-width: 100%;
  min-width: 0;
}
/* В карточке чипы могут переноситься по словам, но сохраняют compact look */
.product-card-v2__chip-wrap .chip {
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.product-card-v2__title { word-break: break-word; }
.product-card-v2__title-wrap { overflow: hidden; }

/* H1.2 — Compare empty-state: убрать огромный pad+gap, сделать компактно и без двойного контура */
.cmp-empty {
  background: #fff;
  border: 1px solid var(--hairline);
  border-radius: var(--r-sm, 6px);
  padding: 32px 24px;
  text-align: center;
  margin-bottom: 20px;
}
.cmp-empty__icon-box {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  background: var(--bg-soft);
  border: 1px solid var(--hairline);
  border-radius: var(--r-xs, 4px);
  margin-bottom: 12px;
  color: var(--ink-3);
}
.cmp-empty__title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--t-19, 19px);
  color: var(--ink);
  margin: 0 0 8px;
}
.cmp-empty__text {
  font-size: var(--t-15);
  color: var(--ink-2);
  margin: 0 auto 18px;
  max-width: 480px;
  line-height: 1.5;
}
.cmp-steps {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 12px;
  margin-bottom: 20px;
}
.cmp-step {
  background: #fff;
  border: 1px solid var(--hairline);
  border-radius: var(--r-sm, 6px);
  padding: 18px;
}
.cmp-step__num {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 24px;
  color: var(--brand);
  line-height: 1;
  margin-bottom: 8px;
}
.cmp-step__title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--t-15);
  color: var(--ink);
  margin: 0 0 4px;
}
.cmp-step__desc {
  font-size: var(--t-13);
  color: var(--ink-3);
  line-height: 1.5;
}
.cmp-quick {
  margin-bottom: 24px;
}
.cmp-quick__list {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.cmp-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  align-items: center;
  margin-bottom: 12px;
}
.cmp-header {
  margin-bottom: 16px;
}
.cmp-meta-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}
.cmp-meta-row strong { color: var(--ink); }
/* MR-H1 end */

/* ── MR-H2: /glossary/* + /expert — карточки «Популярное ПО», единый стиль, без обрезки названий ── */
.v3-popular {
  margin-top: 40px;
  border-top: 1px solid var(--hairline);
  padding-top: 36px;
}
.v3-popular__head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.v3-popular__grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 10px;
}
.v3-popular__card {
  display: flex;
  align-items: center;
  gap: 10px;
  background: #fff;
  border: 1px solid var(--hairline);
  border-radius: var(--r-xs, 4px);
  padding: 10px 14px;
  text-decoration: none;
  color: var(--ink);
  min-height: 56px;
  transition: border-color .15s var(--ease, ease);
}
.v3-popular__card:hover {
  border-color: var(--brand);
}
.v3-popular__logo {
  width: 36px;
  height: 36px;
  object-fit: contain;
  flex-shrink: 0;
  border: 1px solid var(--hairline);
  background: var(--bg-soft);
  border-radius: var(--r-xs, 4px);
}
.v3-popular__logo--placeholder {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: var(--font-display);
  font-weight: 800;
  font-size: 13px;
  color: var(--ink-3);
}
.v3-popular__name {
  font-weight: 600;
  font-size: var(--t-13);
  line-height: 1.3;
  color: var(--ink);
  min-width: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  word-break: break-word;
}

/* H2.2 — Glossary show: вынос inline-style страницы термина */
.glossary-show-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 32px;
  align-items: start;
  margin-top: 32px;
}
@media (max-width: 920px) {
  .glossary-show-grid { grid-template-columns: 1fr; }
}
.glossary-show__title {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: var(--t-36, 32px);
  line-height: 1.15;
  margin: 0 0 20px;
  word-break: break-word;
}
.glossary-show__body {
  font-size: var(--t-17);
  line-height: 1.65;
  color: var(--ink-2);
}
.glossary-show__body p { margin: 0 0 14px; }
.glossary-show__nav {
  display: flex;
  justify-content: space-between;
  margin-top: 40px;
  padding-top: 24px;
  border-top: 1px solid var(--hairline);
  flex-wrap: wrap;
  gap: 12px;
}
.glossary-show__back { margin-top: 16px; }
.glossary-show__aside {
  background: #fff;
  border: 1px solid var(--hairline);
  border-radius: var(--r-sm, 6px);
  padding: 18px;
  position: sticky;
  top: 80px;
}
.glossary-show__aside-title {
  font-weight: 700;
  font-size: var(--t-15);
  margin: 0 0 12px;
  color: var(--ink);
}
.glossary-show__aside-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}
.glossary-show__aside-list a {
  font-size: var(--t-14);
  color: var(--ink-2);
  text-decoration: none;
  line-height: 1.4;
  display: block;
}
.glossary-show__aside-list a:hover { color: var(--brand); }
/* MR-H2 end */

/* ── MR-H3: /pricing — корпоративный тариф «оживить» ── */
.pricing-card--corporate {
  position: relative;
  background: linear-gradient(160deg, #0A1430 0%, #0A2A6B 100%);
  padding: 32px;
  display: flex;
  flex-direction: column;
  color: #fff;
  overflow: hidden;
  border-radius: var(--r-sm, 6px);
}
/* Декоративный «луч» — едва заметный диагональный градиент */
.pricing-card--corporate::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(420px 200px at 100% 0, rgba(255,255,255,0.10), transparent 60%);
  pointer-events: none;
}
.pricing-card--corporate > * { position: relative; }

.pricing-card--corporate__badge {
  position: absolute;
  top: 16px;
  right: 16px;
  display: inline-block;
  font-size: var(--t-11, 11px);
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #FFD37A;
  background: rgba(255, 211, 122, 0.12);
  border: 1px solid rgba(255, 211, 122, 0.45);
  padding: 4px 10px;
  border-radius: var(--r-xs, 4px);
}
.pricing-card--corporate__eyebrow {
  font-size: var(--t-11, 11px);
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.6);
  margin-bottom: 8px;
}
.pricing-card--corporate__name {
  font-family: var(--font-display);
  font-size: var(--t-21, 21px);
  font-weight: 800;
  color: #fff;
  margin: 0 0 4px;
}
.pricing-card--corporate__price {
  font-family: var(--font-display);
  font-size: var(--t-36, 32px);
  font-weight: 800;
  color: #fff;
  margin: 14px 0 4px;
  line-height: 1;
}
.pricing-card--corporate__sub {
  font-size: var(--t-13);
  color: rgba(255, 255, 255, 0.55);
  margin-bottom: 18px;
}
.pricing-card--corporate__features {
  flex: 1;
  font-size: var(--t-14);
  color: rgba(255, 255, 255, 0.82);
  line-height: 1.55;
  margin-bottom: 18px;
}
.pricing-card--corporate__features ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.pricing-card--corporate__features li {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 6px;
}
/* Фикс: галочки в корпоративном — на тёмном фоне делаем светло-зелёные */
.pricing-card--corporate__features svg {
  color: #5BE0A7;
  stroke: #5BE0A7;
  flex-shrink: 0;
  margin-top: 2px;
  width: 18px;
  height: 18px;
}
.pricing-card--corporate__cta { margin-top: auto; }
.btn.btn--corp-primary {
  display: block;
  width: 100%;
  padding: 13px 20px;
  background: #FFD37A;
  color: #0A1430;
  border: 0;
  font-family: var(--font-display);
  font-size: var(--t-15);
  font-weight: 700;
  letter-spacing: 0.01em;
  cursor: pointer;
  border-radius: var(--r-xs, 4px);
  text-align: center;
  text-decoration: none;
  transition: background .15s var(--ease, ease), transform .12s ease;
}
.btn.btn--corp-primary:hover {
  background: #FFC04D;
  color: #0A1430;
}
.btn.btn--corp-primary:active { transform: translateY(1px); }
.pricing-card--corporate__email-link {
  display: block;
  width: 100%;
  margin-top: 8px;
  padding: 6px 20px;
  background: transparent;
  color: rgba(255, 255, 255, 0.6);
  font-size: var(--t-13);
  text-align: center;
  text-decoration: none;
  border-radius: var(--r-xs, 4px);
}
.pricing-card--corporate__email-link:hover {
  color: #FFD37A;
}

/* H3.2 — еле заметная иконка-фон (логотип сетки) для дополнительного объёма */
@media (max-width: 640px) {
  .pricing-card--corporate { padding: 24px; }
  .pricing-card--corporate__badge { top: 12px; right: 12px; font-size: 10px; }
  .pricing-card--corporate__price { font-size: var(--t-32, 28px); }
}
/* MR-H3 end */

/* ── MR-H4: /project/* — полировка хлебных крошек + сайдбара ── */

/* H4.1 — хлебные крошки кейса: выровняли с .band--crumbs (32px сверху, эталон /news/{slug}) */
.company-breadcrumbs {
  padding: 32px 0 12px;
}
.company-breadcrumbs .breadcrumbs {
  font-size: var(--t-13);
  color: var(--ink-3);
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 4px;
  line-height: 1.4;
}
.company-breadcrumbs .breadcrumbs a {
  color: var(--ink-2);
  text-decoration: none;
  transition: color .15s;
}
.company-breadcrumbs .breadcrumbs a:hover {
  /* bugs-0706 #3.1 (#391): унифицировано с общими крошками — без dashed underline */
  color: var(--brand);
}
.company-breadcrumbs .breadcrumbs .sep {
  color: var(--ink-3);
  opacity: .55;
  padding: 0 2px;
}
.company-breadcrumbs .breadcrumbs__current {
  color: var(--ink);
  font-weight: 600;
  max-width: 100%;
  word-break: break-word;
}

/* H4.2 — сайдбар: убрать огромный margin-top, скруглить кнопки до r-xs */
.project-sidebar {
  margin-top: 0;
  /* bugs-0706 #391 — хвост: выравнивание сайдбара по высоте статьи и расширение до 360px. */
  width: 360px;
  align-self: stretch;
  position: static;
  top: auto;
}
.project-side-card {
  background: #fff;
}
.project-side-card__btn {
  border-radius: var(--r-xs, 4px) !important;
}
.project-side-card__name {
  word-break: break-word;
}

/* H4.3 — кейс meta + h1 */
.proj-detail-h1 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: var(--t-32, 28px);
  line-height: 1.15;
  margin: 0 0 24px;
  color: var(--brand-deep);
  word-break: break-word;
}
.proj-detail-meta {
  padding: 0;
  /* bugs-0706 #391 — хвост: обнуляем верхний отступ меты. */
  margin-top: 0;
}
/* bugs-0706 #391 — хвост: убираем лишний отступ сверху в контентном блоке (.section--tight давал 48px). */
.proj-detail-article.section--tight {
  padding-top: 8px;
}
/* bugs-0706 #391 — хвост: hover-underline крошек в .company-breadcrumbs уже унифицирован (без dashed). Для .proj-detail-* явно убираем text-decoration. */
.company-breadcrumbs .breadcrumbs a,
.company-breadcrumbs .breadcrumbs a:hover,
.company-breadcrumbs .breadcrumbs a:focus {
  text-decoration: none;
  border-bottom: 0;
}
@media (max-width: 920px) {
  .project-sidebar {
    position: static;
    margin-top: 24px;
    width: 100%;
  }
}
/* MR-H4 end */

/* MR-X11: на ≤1279px кнопки авторизации прижаты к бургеру справа, не к лого.
   Логика: лого слева (col 1), spacer (col 2, 1fr), header-right (col 3, auto), nav-burger (col 4, auto).
   На ≥1280 шапка использует базовое `auto 1fr auto` с тремя grid-item (nav-main виден). */
@media (max-width: 1279px) {
  .site-header__row {
    grid-template-columns: auto 1fr auto auto;
    column-gap: 8px;
  }
  .brand-logo   { grid-column: 1; }
  .nav-main     { grid-column: 2; }
  .header-right { grid-column: 3; justify-self: end; }
  .nav-burger   { grid-column: 4; order: 99; margin-left: 4px; }
}
@media (max-width: 720px) {
  /* На узкой мобилке кнопки авторизации компактнее. */
  .header-auth { gap: 6px; }
  .header-auth .btn--text { padding-left: 4px; padding-right: 4px; }
}
/* MR-X11 end */

/* MR-X3: clamp длинных H1 кейсов на мобилке (issue #374) */
@media (max-width: 720px) {
  .proj-detail-h1 {
    font-size: clamp(20px, 5.2vw, 26px);
    line-height: 1.2;
    margin-bottom: 16px;
    display: -webkit-box;
    -webkit-line-clamp: 5;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
}
@media (max-width: 480px) {
  .proj-detail-h1 {
    font-size: clamp(18px, 5vw, 22px);
    -webkit-line-clamp: 4;
  }
}
/* MR-X3 end */

/* MR-X10: утилитарные классы для замены частых inline-стилей (issue #382) */
.u-text-left { text-align: left; }
.u-text-center { text-align: center; }
.u-block-mb6 { display: block; margin-bottom: 6px; }
.u-ink-3 { color: var(--ink-3); }
.u-ink-2 { color: var(--ink-2); }
.u-mb-16 { margin-bottom: 16px; }
.u-mb-0 { margin-bottom: 0; }
.u-mt-24 { margin-top: 24px; }
.u-fs-15 { font-size: var(--t-15); }
.u-fs-18-bold-brand { font-size: var(--t-18); font-weight: 600; color: var(--brand); }
/* bugs-0706 #397 — подпись «По фильтру» на KPI-плашках (уменьшенный шрифт) */
.u-fs-13-filter-counter { font-size: var(--t-13); font-weight: 600; color: var(--brand); margin-left: 6px; white-space: nowrap; }
.u-fw-600-ink { font-weight: 600; color: var(--ink); }
.u-no-underline { text-decoration: none; }
.u-bg-white-p24 { background: #fff; padding: 24px; }
.u-bg-white-p20 { background: #fff; padding: 20px; }
.u-nowrap-h44 { height: 44px; white-space: nowrap; }
.u-min180-h44 { min-width: 180px; height: 44px; }
.u-section-label {
  display: block;
  font-size: var(--t-13);
  font-weight: 600;
  color: var(--ink-2);
  margin-bottom: 6px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.u-display-h1 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: var(--t-28);
  white-space: nowrap;
}
.u-mb-6-ink-3 { color: var(--ink-3); margin-bottom: 6px; }
.u-input-flat {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid var(--hairline);
  border-radius: 0;
  font-size: var(--t-15);
  outline: none;
  box-sizing: border-box;
  font-family: inherit;
  background: #fff;
}
.u-vendor-icon-img {
  width: 36px;
  height: 36px;
  object-fit: contain;
  border-radius: 4px;
  border: 1px solid var(--hairline);
  flex-shrink: 0;
}
.u-vendor-icon-fallback {
  width: 36px;
  height: 36px;
  border-radius: 4px;
  border: 1px solid var(--hairline);
  background: var(--bg-soft);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  font-weight: 700;
  font-size: 14px;
  color: var(--ink-3);
}
/* MR-X10 end */

/* bugs-0706 #4.4 (#394): единый вид селектов регион/отрасль (совпадает с поиском). */
/* bugs-0706 #394 (хвост): радиус и border выровнены с поисковым инпутом (6px, --hairline). */
.v3-select {
  width: 100%;
  padding: 12px 40px 12px 14px; /* правый padding под свою стрелку, не прижата к краю */
  border: 1px solid var(--hairline);
  border-radius: 6px;
  font-size: var(--t-15);
  outline: none;
  box-sizing: border-box;
  font-family: inherit;
  background: #fff
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' stroke='%23475068' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/></svg>")
    no-repeat right 16px center;
  background-size: 12px 8px;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  color: var(--ink);
}
.v3-select:focus {
  border-color: var(--brand);
}

/* #393: Блок отзывов в /project/{id} */
.proj-reviews{display:flex;flex-direction:column;gap:14px;margin:8px 0 24px}
.proj-review{padding:18px 20px;border:1px solid var(--border,#e5e7eb);border-radius:12px;background:#fff}
.proj-review__head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;flex-wrap:wrap}
.proj-review__author{font-size:15px;line-height:1.4;color:#111827}
.proj-review__name{font-weight:600}
.proj-review__pos{color:#4b5563}
.proj-review__company{color:#4b5563}
.proj-review__rating{display:inline-flex;align-items:center;gap:4px;background:#fef3c7;color:#92400e;padding:4px 10px;border-radius:999px;font-size:13px;font-weight:600}
.proj-review__rating svg{color:#f59e0b}
.proj-review__text{margin:0 0 10px;color:#1f2937;font-size:15px;line-height:1.55;white-space:pre-wrap}
.proj-review__pm{display:grid;grid-template-columns:max-content 1fr;column-gap:12px;row-gap:6px;margin:0 0 8px}
.proj-review__pm-t{font-weight:600;font-size:13px;margin:0}
.proj-review__pm-t--plus{color:#15803d}
.proj-review__pm-t--minus{color:#b91c1c}
.proj-review__pm-d{margin:0;font-size:14px;color:#374151;line-height:1.5}
.proj-review__foot{margin-top:6px;font-size:12px;color:#6b7280}
@media (max-width:640px){.proj-review{padding:14px 14px}.proj-review__head{flex-direction:column;gap:8px}}

/* #399: section__head с метой (дата + кол-во) + кнопка со стрелкой */
.section__head-cta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;justify-content:flex-end}
.section__head-meta{font-size:13px;color:var(--ink-2,#6b7280);white-space:nowrap}
.section__head-cta .cta-arrow{display:inline-block;margin-left:6px;transition:transform .15s ease}
.section__head-cta .btn:hover .cta-arrow{transform:translateX(3px)}
@media (max-width:640px){.section__head-cta{justify-content:flex-start;gap:8px}.section__head-meta{font-size:12px}}

/* ===== bugs-0706 #13.5 — Account: project edit, fix select2/multiselect blocks ===== */
.account-project-edit-form .form-group,
form[action*="/account/projects"] .form-group{
  margin-bottom:20px;
}
form[action*="/account/projects"] label{
  display:block;
  font-weight:600;
  font-size:14px;
  color:#1f2937;
  margin-bottom:8px;
}
form[action*="/account/projects"] .select2-container--default .select2-selection--multiple{
  min-height:46px;
  padding:6px 10px;
  border:1px solid #d1d5db;
  border-radius:8px;
  background:#fff;
  transition:border-color .15s ease,box-shadow .15s ease;
}
form[action*="/account/projects"] .select2-container--default.select2-container--focus .select2-selection--multiple,
form[action*="/account/projects"] .select2-container--default .select2-selection--multiple:hover{
  border-color:#2563eb;
  box-shadow:0 0 0 3px rgba(37,99,235,.12);
}
form[action*="/account/projects"] .select2-selection__choice{
  background:#eff6ff !important;
  border:1px solid #bfdbfe !important;
  color:#1e3a8a !important;
  border-radius:6px !important;
  padding:3px 10px !important;
  margin:3px 4px 3px 0 !important;
  font-size:13px;
  line-height:1.4;
}
form[action*="/account/projects"] .select2-selection__choice__remove{
  color:#1e3a8a !important;
  margin-right:6px !important;
  font-weight:700;
}
form[action*="/account/projects"] #products + .select2,
form[action*="/account/projects"] #reviews + .select2,
form[action*="/account/projects"] #analogs + .select2{
  width:100% !important;
}
/* Заголовки блоков, если рендерятся как fieldset / fb-form */
form[action*="/account/projects"] fieldset{
  border:1px solid #e5e7eb;
  border-radius:10px;
  padding:18px 20px;
  margin-bottom:18px;
  background:#fafbfc;
}
form[action*="/account/projects"] fieldset legend{
  padding:0 8px;
  font-size:15px;
  font-weight:600;
  color:#111827;
  width:auto;
  border:0;
  margin-bottom:0;
}
/* Чек-листы с колонками — отзывы/чужие продукты */
form[action*="/account/projects"] .multi-check-list-columns{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px 18px;
  margin-top:6px;
}
@media (max-width:720px){
  form[action*="/account/projects"] .multi-check-list-columns{grid-template-columns:1fr;}
  form[action*="/account/projects"] .select2-container--default .select2-selection--multiple{min-height:42px;}
}

/* ===== bugs-0706 #12.5 — Events: общий стиль сайта ===== */
.events-hero{
  background:linear-gradient(135deg,#1e3a8a 0%,#2563eb 50%,#3b82f6 100%);
  color:#fff;
  padding:64px 0 56px;
  margin-bottom:32px;
  border-radius:0 0 24px 24px;
}
.events-hero__inner{max-width:760px;margin:0 auto;padding:0 16px;}
.events-hero__title{
  font-size:clamp(28px,3.4vw,42px);
  font-weight:700;
  letter-spacing:-.5px;
  margin:0 0 14px;
  color:#fff;
}
.events-hero__subtitle{
  font-size:clamp(15px,1.4vw,18px);
  line-height:1.5;
  margin:0;
  color:rgba(255,255,255,.88);
}
.events-list .events-filter{
  background:#f8fafc;
  border:1px solid #e5e7eb;
  border-radius:12px;
  padding:18px;
  margin-bottom:24px;
}
.events-list .events-filter .form-control{
  border-radius:8px;
  border:1px solid #d1d5db;
  font-size:14px;
}
.event-card{
  background:#fff;
  border:1px solid #e5e7eb;
  border-radius:14px;
  padding:20px 22px;
  margin-bottom:24px;
  transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;
  height:100%;
  display:flex;
  flex-direction:column;
}
.event-card:hover{
  transform:translateY(-3px);
  box-shadow:0 10px 28px rgba(15,23,42,.08);
  border-color:#bfdbfe;
}
.event-card__title{
  font-size:18px;
  font-weight:600;
  line-height:1.35;
  margin:0 0 10px;
  min-height:48px;
}
.event-card__title a{color:#0f172a;text-decoration:none;}
.event-card__title a:hover{color:#2563eb;}
.event-card__desc{
  font-size:14px;
  line-height:1.55;
  color:#475569;
  margin-bottom:14px;
  flex:1;
}
.event-card__badges{margin:0 0 12px;}
.event-card__badge{
  display:inline-block;
  background:#eff6ff;
  color:#1e40af;
  border:1px solid #bfdbfe;
  padding:4px 10px;
  border-radius:999px;
  font-size:12px;
  font-weight:600;
}
.event-card__meta ul.list-wrap{
  list-style:none;
  padding:0;
  margin:0;
  display:flex;
  flex-direction:column;
  gap:6px;
}
.event-card__meta ul.list-wrap li{
  font-size:13px;
  color:#475569;
  display:flex;
  align-items:center;
  gap:8px;
  line-height:1.4;
}
.event-card__meta ul.list-wrap li i{
  color:#2563eb;
  width:14px;
  text-align:center;
  font-size:13px;
}
.event-card__meta ul.list-wrap a{color:#0f172a;font-weight:600;text-decoration:none;}
.event-card__meta ul.list-wrap a:hover{color:#2563eb;}
@media (max-width:720px){
  .events-hero{padding:44px 0 38px;border-radius:0 0 16px 16px;}
  .event-card{padding:16px 18px;}
  .event-card__title{min-height:auto;font-size:17px;}
}

/* ===== bugs-0706 #8.2/#8.4 — Catalog products grid: реальное переключение grid/list ===== */
.catalog-products-grid{display:grid;gap:14px;}
.catalog-products-grid.grid-view{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));}
.catalog-products-grid.list-view{grid-template-columns:1fr;gap:10px;}
.catalog-products-grid.list-view .product-card-v2,
.catalog-products-grid.list-view .product-card-v3{
  display:flex;
  flex-direction:row;
  align-items:stretch;
  gap:18px;
  padding:14px 18px;
}
.catalog-products-grid.list-view .product-card-v2 .pc-thumb,
.catalog-products-grid.list-view .product-card-v3 .pc-thumb{
  flex:0 0 88px;
  height:88px;
  margin:0;
}
.catalog-products-grid.list-view .product-card-v2 .pc-body,
.catalog-products-grid.list-view .product-card-v3 .pc-body{
  flex:1;
  min-width:0;
}
@media (max-width:720px){
  .catalog-products-grid.list-view .product-card-v2,
  .catalog-products-grid.list-view .product-card-v3{flex-direction:column;}
}

/* ===== bugs-0706 #8.6 — cat-about-option как clickable chips ===== */
a.cat-about-option{
  display:inline-block;
  padding:6px 12px;
  background:#f1f5f9;
  border:1px solid #e2e8f0;
  border-radius:6px;
  font-size:13px;
  color:#0f172a;
  text-decoration:none;
  margin:3px 6px 3px 0;
  transition:background .12s ease,border-color .12s ease,color .12s ease;
}
a.cat-about-option:hover{
  background:#eff6ff;
  border-color:#bfdbfe;
  color:#1e40af;
}

/* ───────────────────────────────────────────────────────────────────────────
 * bugs-0706 #400 — Карточка продукта: визуальные правки 7.1-7.8
 * ─────────────────────────────────────────────────────────────────────────── */

/* §7.2 — Прозрачная подложка под лого, если есть картинка-логотип
   (background выставлен инлайном в blade; здесь дублируем для надёжности) */
.p-hero__logo--img { background: transparent !important; }

/* §7.3 — Бежевый фон у sidebar-card с контактами/менеджером */
.p-sidebar-card--vendor-req,
.p-sidebar-card--contacts,
.p-sidebar-card--manager {
    background: #FAF7F2;
    border-color: #EDE7DC;
}

/* §7.4 — Снять ограничение 72ch у описания (override) */
.p-description { max-width: none !important; }

/* §7.5 — Убрать подчёркивание у кнопок-ссылок и hover-underline у ссылок на продукты */
a.btn, a.btn--primary, a.btn--ghost, a.btn--brand-ghost,
.btn, .btn--primary, .btn--ghost, .btn--brand-ghost {
    text-decoration: none !important;
}
a.btn:hover, a.btn--primary:hover, a.btn--ghost:hover, a.btn--brand-ghost:hover,
.btn:hover, .btn--primary:hover, .btn--ghost:hover, .btn--brand-ghost:hover {
    text-decoration: none !important;
}
/* Hover-underline у внутренних ссылок на продукты (вне футера) — убираем */
.p-similar a, .p-similar a:hover,
.p-reviews-preview a, .p-reviews-preview a:hover,
.pc3 a, .pc3 a:hover {
    text-decoration: none;
}

/* §7.6 — Скругление 6px у логотипов карточек (поверх partial-CSS) */
.pc3__logo-wrap { border-radius: 6px; }

/* §7.8 — «Вендор» в стиле «Достижения»: убираем полоски, название компании справа */
.p-sidebar-card--vendor .p-sidebar-row {
    padding: 6px 0;
    border-bottom: none;          /* убираем полоски */
}
.p-sidebar-card--vendor .p-sidebar-row__label {
    color: var(--ink-3);
    font-size: var(--t-12);
}
.p-sidebar-card--vendor .p-sidebar-row__val,
.p-sidebar-card--vendor .p-sidebar-row__val a {
    text-align: right;
    font-weight: 600;
    color: var(--ink);
}
.p-sidebar-card--vendor .p-sidebar-card__title {
    /* Стиль заголовка как у «Достижения» — без отдельных декораций */
    border-bottom: none;
    padding-bottom: 0;
}

/* ============================================================
   bugs-0706 #17.1 — мобильные критичные фиксы
   ============================================================ */

/* Catalog: на мобиле — одна колонка, фильтр сворачивается в <details> */
@media (max-width: 880px) {
  .catalog-layout {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
  .catalog-filters {
    padding: 14px !important;
    position: static !important;
  }
  /* Поиск + категории не растягиваются за края */
  .catalog-filters input[type="text"],
  .catalog-filters select {
    max-width: 100%;
    box-sizing: border-box;
  }
}

/* Хедер на узких экранах — ужимаем: убираем "Войти" текстом, оставляем CTA + бургер */
@media (max-width: 480px) {
  .site-header__row {
    padding-left: 12px !important;
    padding-right: 12px !important;
    gap: 8px !important;
  }
  /* "Войти" текстом прячем на ≤480px — будет в бургер-меню (#header-auth-guest .btn--text) */
  #header-auth-guest .btn--text {
    display: none !important;
  }
  /* Кнопка регистрации компактнее */
  .header-auth .btn--primary {
    padding-inline: 10px !important;
    font-size: 13px !important;
  }
  /* Бургер должен быть виден полностью */
  .nav-burger,
  .site-header .nav-burger {
    flex-shrink: 0 !important;
  }
}

/* Любые grid с 2-3 колонками на ≤640px → 1 колонка (общий fallback) */
@media (max-width: 640px) {
  [style*="grid-template-columns:280px"],
  [style*="grid-template-columns: 280px"] {
    grid-template-columns: 1fr !important;
  }
}

/* === pc3 card buttons: округлить и привести к стилю .btn (единый радиус 6px) === */
.btn-pc3 {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 8px 14px; font-size: var(--t-13, 13px); font-weight: 500;
  text-decoration: none; border-radius: 6px; cursor: pointer;
  line-height: 1.4; border: 1px solid transparent;
  transition: background .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}
.btn-pc3, a.btn-pc3, .btn-pc3:hover, a.btn-pc3:hover { text-decoration: none !important; }
.btn-pc3--primary { background: var(--brand, #1E5BFF); color: #fff !important; border-color: var(--brand, #1E5BFF); }
.btn-pc3--primary:hover { background: var(--brand-deep, #0038b0); border-color: var(--brand-deep, #0038b0); color: #fff !important; }
.btn-pc3--ghost { background: transparent; color: var(--ink-2, #4B5466); border-color: var(--hairline, #e6e8ec); }
.btn-pc3--ghost:hover { border-color: var(--ink-3, #79808c); color: var(--ink, #11151c); }
.btn-pc3 .cta-arrow { display: inline-block; transition: transform 180ms ease; }
.btn-pc3:hover .cta-arrow { transform: translateX(3px); }
.btn-pc3--compare { padding: 6px 10px; border-radius: 6px; }
.btn-pc3__ico { width: 14px; height: 14px; flex-shrink: 0; }
.btn-pc3__lbl { font-size: var(--t-12, 12px); }

/* ============================================================
   #426 Бизнес-профиль компании (финансы, аккредитации, учредители)
   v3/company.blade.php + partials/v3/company-business-profile.blade.php
   ============================================================ */

.company-biz { margin-top: 32px; }
.company-biz .section__head { display: flex; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-bottom: 16px; }
.company-biz__eyebrow { font-size: var(--t-13, 13px); color: #64748b; font-weight: 500; }

/* Таблица финансов */
.company-biz__table-wrap { overflow-x: auto; border: 1px solid #e2e8f0; border-radius: 12px; background: #fff; }
.company-biz__table { width: 100%; border-collapse: collapse; font-size: var(--t-14, 14px); min-width: 600px; }
.company-biz__th { padding: 12px 16px; text-align: left; font-weight: 600; color: #0f172a; background: #f8fafc; border-bottom: 1px solid #e2e8f0; font-size: var(--t-13, 13px); text-transform: uppercase; letter-spacing: 0.04em; }
.company-biz__th--num { text-align: right; }
.company-biz__td { padding: 12px 16px; border-bottom: 1px solid #f1f5f9; color: #1e293b; vertical-align: middle; }
.company-biz__td:last-child { border-right: 0; }
.company-biz__table tbody tr:last-child .company-biz__td { border-bottom: 0; }
.company-biz__table tbody tr:hover { background: #f8fafc; }
.company-biz__td--year { font-weight: 600; color: #0f172a; }
.company-biz__td--num { text-align: right; font-variant-numeric: tabular-nums; }

/* Графики */
.company-biz__charts { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 24px; }
.company-biz__chart { background: #fff; border: 1px solid #e2e8f0; border-radius: 12px; padding: 16px; min-height: 280px; }
@media (max-width: 900px) {
  .company-biz__charts { grid-template-columns: 1fr; }
}

.company-biz__disclaimer { margin-top: 12px; font-size: var(--t-12, 12px); color: #64748b; line-height: 1.5; }

/* Чипы аккредитаций */
.company-biz__chips { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 16px; }
.company-biz__chip { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px; font-size: var(--t-14, 14px); font-weight: 600; border: 1px solid transparent; }
.company-biz__chip-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.company-biz__chip--mincifry { background: #eff6ff; color: #1d4ed8; border-color: #bfdbfe; }
.company-biz__chip--mincifry .company-biz__chip-dot { background: #2563eb; }
.company-biz__chip--msp { background: #f0fdf4; color: #15803d; border-color: #bbf7d0; }
.company-biz__chip--msp .company-biz__chip-dot { background: #16a34a; }

/* ОКВЭДы */
.company-biz__okved { background: #fff; border: 1px solid #e2e8f0; border-radius: 12px; padding: 16px 20px; }
.company-biz__okved-title { font-size: var(--t-13, 13px); font-weight: 600; color: #64748b; text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 10px; }
.company-biz__okved-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.company-biz__okved-row { display: flex; align-items: baseline; gap: 12px; font-size: var(--t-14, 14px); color: #1e293b; padding: 6px 0; }
.company-biz__okved-row--main { font-weight: 600; }
.company-biz__okved-code { font-variant-numeric: tabular-nums; color: #475569; flex-shrink: 0; min-width: 72px; font-weight: 600; }
.company-biz__okved-name { flex: 1; }
.company-biz__okved-badge { font-size: var(--t-11, 11px); font-weight: 600; color: #1d4ed8; background: #eff6ff; padding: 2px 8px; border-radius: 4px; text-transform: lowercase; letter-spacing: 0.02em; }
.company-biz__okved-more { margin-top: 10px; font-size: var(--t-13, 13px); color: #64748b; padding-top: 8px; border-top: 1px dashed #e2e8f0; }

/* Учредители */
.company-biz__founders { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.company-biz__founder { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 18px; background: #fff; border: 1px solid #e2e8f0; border-radius: 12px; flex-wrap: wrap; }
.company-biz__founder-main { display: flex; align-items: center; gap: 12px; flex: 1; min-width: 220px; }
.company-biz__founder-icon { width: 32px; height: 32px; border-radius: 50%; background: #f1f5f9; flex-shrink: 0; position: relative; }
.company-biz__founder-icon--person { background: #eff6ff; }
.company-biz__founder-icon--person::before { content: ''; position: absolute; top: 7px; left: 50%; transform: translateX(-50%); width: 10px; height: 10px; border-radius: 50%; background: #2563eb; }
.company-biz__founder-icon--person::after { content: ''; position: absolute; bottom: 5px; left: 50%; transform: translateX(-50%); width: 18px; height: 10px; border-radius: 9px 9px 0 0; background: #2563eb; }
.company-biz__founder-icon--legal { background: #fef3c7; }
.company-biz__founder-icon--legal::before { content: ''; position: absolute; top: 8px; left: 8px; right: 8px; bottom: 8px; background: #d97706; border-radius: 2px; }
.company-biz__founder-name { font-size: var(--t-15, 15px); font-weight: 600; color: #0f172a; }
.company-biz__founder-inn { font-size: var(--t-12, 12px); color: #64748b; font-variant-numeric: tabular-nums; }
.company-biz__founder-share { display: flex; align-items: center; gap: 10px; min-width: 200px; }
.company-biz__founder-share-bar { flex: 1; height: 6px; background: #f1f5f9; border-radius: 999px; overflow: hidden; min-width: 100px; }
.company-biz__founder-share-fill { display: block; height: 100%; background: linear-gradient(90deg, #2563eb, #7c3aed); border-radius: 999px; width: 0; transition: width 600ms ease; }
.company-biz__founder-share-text { font-variant-numeric: tabular-nums; font-weight: 600; color: #0f172a; font-size: var(--t-14, 14px); min-width: 64px; text-align: right; }

@media (max-width: 600px) {
  .company-biz__founder { padding: 12px 14px; }
  .company-biz__founder-share { width: 100%; }
}

/* ============== /pricing v3 — bugs-0906 ============== */
.pricing-hero { padding: 56px 0 40px; }
.pricing-hero__inner { max-width: 920px; }
.pricing-hero__title { margin: 14px 0 18px; font-size: clamp(28px, 4vw, 44px); line-height: 1.1; }
.pricing-hero__lead { font-size: 18px; line-height: 1.55; color: rgba(255,255,255,.92); max-width: 760px; }

.pricing-band { padding: 48px 0 56px; background: #f6f8fb; }
.pricing-period { display: inline-flex; gap: 6px; padding: 6px; background: #fff; border: 1px solid #e3e7ee; border-radius: 14px; margin: 0 0 28px; }
.pricing-tab-btn { appearance: none; border: 0; background: transparent; padding: 10px 22px; font-size: 15px; font-weight: 600; color: #5a6473; border-radius: 10px; cursor: pointer; transition: background .15s, color .15s; }
.pricing-tab-btn:hover { color: #1a2030; }
.pricing-tab-btn--active { background: #1e58f0; color: #fff; }
.pricing-tab-btn--active:hover { color: #fff; }

.pricing-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; align-items: stretch; }
@media (max-width: 1100px) { .pricing-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px)  { .pricing-grid { grid-template-columns: 1fr; } }

.pricing-card { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid #e3e7ee; border-radius: 18px; padding: 26px 22px 24px; transition: box-shadow .2s, transform .2s, border-color .2s; }
.pricing-card:hover { box-shadow: 0 18px 40px -22px rgba(15,28,60,.25); border-color: #cdd5e3; transform: translateY(-2px); }
.pricing-card--hidden { display: none; }
.pricing-card--featured { border-color: #1e58f0; box-shadow: 0 18px 40px -22px rgba(30,88,240,.45); }
.pricing-card--free { background: linear-gradient(180deg, #f3f7ff 0%, #fff 80%); }

.pricing-card__pop-badge { position: absolute; top: -12px; left: 22px; background: #1e58f0; color: #fff; font-size: 12px; font-weight: 700; padding: 6px 12px; border-radius: 999px; letter-spacing: .02em; text-transform: uppercase; }
.pricing-card__save-badge { position: absolute; top: -12px; right: 22px; background: #16a34a; color: #fff; font-size: 12px; font-weight: 700; padding: 6px 12px; border-radius: 999px; }
.pricing-card__eyebrow { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #6a7585; margin-bottom: 8px; }
.pricing-card__eyebrow--brand { color: #1e58f0; }
.pricing-card__name { font-size: 22px; font-weight: 700; color: #0f1c3c; margin: 0 0 14px; line-height: 1.2; }
.pricing-card__price { font-size: 32px; font-weight: 800; color: #0f1c3c; line-height: 1; margin: 0 0 4px; }
.pricing-card__price small { font-size: 14px; font-weight: 600; color: #6a7585; margin-left: 4px; }
.pricing-card__old-price { font-size: 14px; color: #9aa3b2; text-decoration: line-through; margin: 0 0 4px; }
.pricing-card__sub { font-size: 13px; color: #6a7585; margin: 0 0 18px; }
.pricing-card__features { list-style: none; padding: 0; margin: 0 0 22px; display: flex; flex-direction: column; gap: 10px; flex-grow: 1; }
.pricing-card__features li { font-size: 14px; color: #2a3447; line-height: 1.45; display: flex; gap: 10px; align-items: flex-start; }
.pricing-card__features li svg { flex-shrink: 0; margin-top: 2px; }
.pricing-card__cta { margin-top: auto; }
.pricing-card__btn { display: inline-flex; align-items: center; justify-content: center; width: 100%; padding: 12px 18px; border-radius: 12px; font-size: 15px; font-weight: 600; text-decoration: none; transition: background .15s, color .15s, border-color .15s; }
.pricing-card__btn--primary { background: #1e58f0; color: #fff; border: 1px solid #1e58f0; }
.pricing-card__btn--primary:hover { background: #1747c5; border-color: #1747c5; color: #fff; }
.pricing-card__btn--ghost { background: transparent; color: #1e58f0; border: 1px solid #cdd5e3; }
.pricing-card__btn--ghost:hover { background: #f3f7ff; border-color: #1e58f0; }

.pricing-disclaimer { margin: 22px 0 0; font-size: 13px; color: #6a7585; text-align: center; }

/* Корпоративный — полная полоса */
.pricing-corp-band { padding: 56px 0; background: linear-gradient(135deg, #0f1c3c 0%, #1e58f0 100%); color: #fff; }
.pricing-corp { display: grid; grid-template-columns: 1.6fr 1fr; gap: 40px; align-items: center; }
@media (max-width: 900px) { .pricing-corp { grid-template-columns: 1fr; } }
.pricing-corp__eyebrow { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.7); margin-bottom: 10px; }
.pricing-corp__name { font-size: 30px; font-weight: 800; margin: 0 0 14px; line-height: 1.15; }
.pricing-corp__lead { font-size: 16px; line-height: 1.55; color: rgba(255,255,255,.9); margin: 0 0 20px; }
.pricing-corp__features { list-style: none; padding: 0; margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 24px; }
@media (max-width: 600px) { .pricing-corp__features { grid-template-columns: 1fr; } }
.pricing-corp__features li { font-size: 14px; color: rgba(255,255,255,.92); display: flex; gap: 10px; line-height: 1.45; }
.pricing-corp__features li svg { flex-shrink: 0; margin-top: 2px; }
.pricing-corp__side { background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.18); border-radius: 18px; padding: 26px 24px; backdrop-filter: blur(6px); }
.pricing-corp__price-label { font-size: 13px; color: rgba(255,255,255,.75); margin: 0 0 6px; }
.pricing-corp__price { font-size: 28px; font-weight: 800; margin: 0 0 6px; line-height: 1; }
.pricing-corp__sub { font-size: 13px; color: rgba(255,255,255,.75); margin: 0 0 18px; }
.pricing-corp__btn { display: inline-flex; align-items: center; justify-content: center; width: 100%; padding: 13px 18px; border-radius: 12px; font-size: 15px; font-weight: 700; background: #fff; color: #0f1c3c; border: 0; text-decoration: none; cursor: pointer; transition: transform .15s, box-shadow .15s; }
.pricing-corp__btn:hover { transform: translateY(-1px); box-shadow: 0 10px 24px -10px rgba(0,0,0,.4); }
.pricing-corp__email { font-size: 13px; color: rgba(255,255,255,.75); margin: 14px 0 0; text-align: center; }
.pricing-corp__email a { color: #fff; text-decoration: underline; }

/* Сравнительная таблица */
.pricing-table-band { padding: 56px 0; background: #fff; }
.pricing-table-head { font-size: 26px; font-weight: 800; color: #0f1c3c; margin: 0 0 22px; }
.pricing-table-wrap { overflow-x: auto; border: 1px solid #e3e7ee; border-radius: 16px; }
.pricing-table { width: 100%; border-collapse: collapse; min-width: 720px; }
.pricing-table th, .pricing-table td { padding: 14px 16px; text-align: left; font-size: 14px; color: #2a3447; border-bottom: 1px solid #eef1f6; }
.pricing-table th { background: #f6f8fb; font-weight: 700; color: #0f1c3c; font-size: 13px; letter-spacing: .02em; }
.pricing-table tr:last-child td { border-bottom: 0; }
.pricing-table__row--alt td { background: #fafbfd; }
.pricing-table__label { font-weight: 600; color: #0f1c3c; }
.pricing-table__val { text-align: center; }
.pricing-table__yes { color: #16a34a; font-weight: 700; }
.pricing-table__no { color: #c0c6d2; }

/* Финальный CTA */
.pricing-cta-band { padding: 60px 0; background: #f6f8fb; }
.pricing-cta { max-width: 760px; margin: 0 auto; text-align: center; }
.pricing-cta__title { font-size: 28px; font-weight: 800; color: #0f1c3c; margin: 0 0 12px; }
.pricing-cta__lead { font-size: 16px; color: #4a5567; line-height: 1.55; margin: 0 0 24px; }
.pricing-cta__btn { display: inline-flex; align-items: center; justify-content: center; padding: 14px 28px; background: #1e58f0; color: #fff; font-size: 15px; font-weight: 700; border-radius: 12px; text-decoration: none; transition: background .15s; }
.pricing-cta__btn:hover { background: #1747c5; color: #fff; }

/* Corp modal */
.corp-modal { display: none; position: fixed; inset: 0; background: rgba(15,28,60,.6); z-index: 9999; align-items: center; justify-content: center; padding: 20px; }
.corp-modal.is-open { display: flex; }
.corp-form__success { display: none; padding: 14px; background: #f0fdf4; color: #16a34a; border-radius: 10px; margin-top: 12px; font-size: 14px; }
.corp-form__success.is-visible { display: block; }
/* ============== /pricing v3 end ============== */

/* ============== /quadrant Gartner-style — bugs-0906 ============== */
.quadrant-hero { padding: 28px 0 22px; }
.quadrant-hero__row { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-top: 10px; }
.quadrant-hero__left { flex: 1 1 460px; min-width: 0; }
.quadrant-hero__title { margin: 6px 0 6px; font-size: clamp(22px, 2.6vw, 32px); line-height: 1.15; }
.quadrant-hero__meta { font-size: 13px; color: rgba(255,255,255,.85); margin: 0; }
.quadrant-hero .eyebrow { color: rgba(255,255,255,.78); }
.quadrant-hero__right { display: flex; gap: 10px; flex-wrap: wrap; }

.quadrant-chart-band--gartner { padding: 22px 0 28px; background: #fff; }
.quadrant-chart-gartner { display: grid; grid-template-columns: 1fr 220px; gap: 24px; align-items: stretch; }
@media (max-width: 980px) { .quadrant-chart-gartner { grid-template-columns: 1fr; } }
.quadrant-chart-gartner__main { background: #fff; border: 1px solid #e3e7ee; border-radius: 16px; padding: 14px; overflow: hidden; }
.quadrant-chart__svg--gartner { width: 100%; height: auto; display: block; max-height: 560px; }

.quadrant-zone-g { fill: #f3f5f9; stroke: #e3e7ee; stroke-width: 1; }
.quadrant-zone-g--leader    { fill: #e6f0ff; stroke: #b8d2ff; }
.quadrant-zone-g--strong    { fill: #eef5ff; stroke: #cfe0ff; }
.quadrant-zone-g--contender { fill: #f7f8fb; stroke: #e3e7ee; }
.quadrant-zone-g--niche     { fill: #fafbfd; stroke: #e8ecf2; }

.quadrant-zone-g__label { font-size: 14px; font-weight: 700; fill: #5a6b87; letter-spacing: .02em; }
.quadrant-zone-g__label--leader { fill: #1e58f0; }

.quadrant-grid-g { stroke: #c9d2e0; stroke-width: 1; stroke-dasharray: 4 4; }
.quadrant-axis-label-g { font-size: 12px; font-weight: 600; fill: #6a7585; }

.quadrant-pin__bg { fill: #fff; stroke: #cfd6e3; stroke-width: 1.5; transition: stroke .15s, stroke-width .15s; }
.quadrant-pin:hover .quadrant-pin__bg { stroke: #1e58f0; stroke-width: 2.5; }
.quadrant-pin--leader    .quadrant-pin__bg { stroke: #1e58f0; }
.quadrant-pin--strong    .quadrant-pin__bg { stroke: #4b87ff; }
.quadrant-pin--contender .quadrant-pin__bg { stroke: #9aa3b2; }
.quadrant-pin--niche     .quadrant-pin__bg { stroke: #c0c6d2; }
.quadrant-pin__initials { font-size: 13px; font-weight: 700; fill: #1e58f0; }
.quadrant-pin__label { font-size: 11px; font-weight: 600; fill: #2a3447; pointer-events: none; }
.quadrant-pin a { cursor: pointer; }

.quadrant-chart-gartner__side { display: flex; flex-direction: column; gap: 10px; }
.qsum { position: relative; display: grid; grid-template-columns: 12px 1fr; grid-template-rows: auto auto; column-gap: 10px; align-items: center; padding: 12px 14px; border: 1px solid #e3e7ee; border-radius: 12px; background: #fff; overflow: hidden; }
.qsum::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(135deg, rgba(30,88,240, var(--qsum-alpha, 0)) 0%, rgba(30,88,240, 0) 70%); border-radius: inherit; z-index: 0; }
.qsum > * { position: relative; z-index: 1; }
.qsum--leader    { --qsum-alpha: 0; }
.qsum--strong    { --qsum-alpha: 0.08; }
.qsum--contender { --qsum-alpha: 0.18; }
.qsum--niche     { --qsum-alpha: 0.32; }
.qsum__dot { grid-row: 1 / 3; width: 12px; height: 12px; border-radius: 50%; }
.qsum--leader    .qsum__dot { background: #1e58f0; }
.qsum--strong    .qsum__dot { background: #4b87ff; }
.qsum--contender .qsum__dot { background: #9aa3b2; }
.qsum--niche     .qsum__dot { background: #c0c6d2; }
.qsum-tag { margin-top: 8px; padding: 8px 12px; font-size: 11px; font-weight: 700; color: #1e58f0; text-transform: uppercase; letter-spacing: 0.06em; background: linear-gradient(135deg, rgba(30,88,240,0.08), rgba(30,88,240,0.02)); border: 1px solid rgba(30,88,240,0.18); border-radius: 10px; text-align: center; }
.qsum-tag--inline { display: inline-flex; align-items: center; gap: 6px; margin: 0 0 12px; padding: 6px 12px; border-radius: 999px; }
.qsum-tag--inline::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #1e58f0; flex-shrink: 0; }
.quadrant-honey__intro { margin-bottom: 18px; }
.quadrant-honey__intro .cat-about-block__title { margin: 0 0 8px; }
.quadrant-honey__intro-lead { margin: 0; max-width: 80ch; font-size: var(--t-15, 15px); line-height: 1.6; color: var(--ink-2, #54647a); }
/* bugs-1006: kicker над «Карта призмы» — простая верхняя надпись без фона/рамки. */
.quadrant-honey__kicker{
  font-size: var(--t-12, 12px);
  font-weight: 600;
  letter-spacing: .8px;
  text-transform: uppercase;
  color: var(--ink-2, #54647a);
  margin: 0 0 6px;
}
.qsum__val { font-size: 22px; font-weight: 800; color: #0f1c3c; line-height: 1; }
.qsum__lbl { font-size: 12px; color: #6a7585; font-weight: 600; letter-spacing: .02em; }
.qsum__hint { margin: 6px 4px 0; font-size: 11px; color: #6a7585; line-height: 1.4; }
/* ============== /quadrant Gartner-style end ============== */

/* ============== /quadrant Honeycomb (Variant A/C) start ============== */
.quadrant-chart-band--honey { padding: 22px 0 28px; background: #fff; }
.quadrant-honey { display: flex; flex-direction: column; gap: 14px; }
.quadrant-honey__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
/* bugs-1007: тогглер темы удалён, фон жёстко связан с типом Призмы. */
.quadrant-honey__hint { margin: 0; font-size: 12px; color: #6a7585; }

.quadrant-honey__main { display: grid; grid-template-columns: 1fr 220px; gap: 24px; align-items: stretch; }
@media (max-width: 980px) { .quadrant-honey__main { grid-template-columns: 1fr; } }
.quadrant-honey__svg-wrap { background: #fff; border: 1px solid #e3e7ee; border-radius: 16px; padding: 14px; overflow: hidden; display: none; grid-column: 1; }
.quadrant-honey__svg-wrap.is-active { display: block; }
.quadrant-honey__svg { width: 100%; height: auto; display: block; max-height: 640px; font-family: Inter, -apple-system, Segoe UI, Roboto, sans-serif; }
.quadrant-honey__svg text { font-family: Inter, -apple-system, Segoe UI, Roboto, sans-serif; }

.quadrant-honey__cell { cursor: pointer; transition: filter .15s, transform .15s; transform-origin: center; transform-box: fill-box; }
.quadrant-honey__cell:hover { filter: brightness(1.08); }
.quadrant-honey__cell--contender { filter: blur(.3px); }
.quadrant-honey__cell--niche { filter: blur(.5px); }
.quadrant-honey__cell--contender:hover,
.quadrant-honey__cell--niche:hover { filter: brightness(1.1) blur(0); }

.quadrant-honey__side { display: flex; flex-direction: column; gap: 10px; grid-column: 2; }
@media (max-width: 980px) { .quadrant-honey__side { grid-column: 1; flex-direction: row; flex-wrap: wrap; } .quadrant-honey__side .qsum { flex: 1 1 calc(50% - 5px); } }

/* На мобиле уменьшаем подсказку */
@media (max-width: 600px) {
  .quadrant-honey__head { flex-direction: column; align-items: flex-start; gap: 8px; }
  .quadrant-honey__hint { font-size: 11px; }
  .quadrant-honey__svg-wrap { padding: 8px; border-radius: 12px; }
}
/* ============== /quadrant Honeycomb end ============== */

/* ============== /quadrant in cat-about style ============== */
.cat-about-block--quadrant { padding: 0; }
.cat-about-block--quadrant .cat-about-block__title { margin-bottom: 16px; }
.cat-about-block--quadrant .quadrant-honey__svg-wrap { border: 1px solid #e3e7ee; }

.cat-about-block--bucket .cat-about-block__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 16px; }
.cat-about-block--bucket .cat-about-block__count { font-size: 14px; color: #6a7585; font-weight: 500; }
.cat-about-block--bucket .cat-about-block__title { margin: 0; position: relative; padding-left: 14px; }
.cat-about-block--bucket .cat-about-block__title::before { content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 4px; height: 22px; border-radius: 2px; background: #94a3b8; }
.cat-about-block--bucket-leader     .cat-about-block__title::before { background: #1D4ED8; }
.cat-about-block--bucket-strong     .cat-about-block__title::before { background: #6366F1; }
.cat-about-block--bucket-contender  .cat-about-block__title::before { background: #F59E0B; }
.cat-about-block--bucket-niche      .cat-about-block__title::before { background: #94A3B8; }

.cat-about-prose__muted { color: #6a7585; font-size: 14px; margin-top: 16px; }
.cat-about-body--lists { padding-top: 8px; padding-bottom: 40px; }
.cat-about-body--lists .cat-about-block + .cat-about-block { margin-top: 32px; }
/* ============== /quadrant in cat-about end ============== */

/* CMS-страницы (Botble Page): /about, /contact и др. */
.cms-page-title { font-size: var(--t-40); margin: 24px 0 32px; }

/* ============== /platforms/{slug} – Лидеры призмы (промо-блок) ============== */
.cat-leaders { margin: 24px 0 32px; padding: 24px; background: linear-gradient(135deg, #F5F7FF 0%, #EFF6FF 100%); border: 1px solid #DBEAFE; border-radius: 16px; }
.cat-leaders__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; margin-bottom: 20px; flex-wrap: wrap; }
.cat-leaders__title { font-size: 22px; font-weight: 700; color: #0f172a; margin: 0 0 6px; }
.cat-leaders__sub { font-size: 14px; color: #475569; margin: 0; max-width: 640px; line-height: 1.5; }
.cat-leaders__link { white-space: nowrap; align-self: center; color: #1D4ED8; font-weight: 600; font-size: 14px; text-decoration: none; }
.cat-leaders__link:hover { text-decoration: underline; }
.cat-leaders__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
.cat-leaders__cell { position: relative; }
.cat-leaders__badge { position: absolute; top: 8px; right: 8px; z-index: 5; background: #1D4ED8; color: #fff; font-size: 10px; font-weight: 700; letter-spacing: .5px; padding: 4px 8px; border-radius: 4px; text-transform: uppercase; pointer-events: none; }
@media (max-width: 720px) {
  .cat-leaders { padding: 16px; }
  .cat-leaders__head { flex-direction: column; gap: 12px; }
  .cat-leaders__title { font-size: 18px; }
}
/* /platforms – Лидеры призмы end */

/* /prizma/{slug} – подсказка под кнопкой hero (различие total ↔ призма) */
.cat-hero__note { margin: 10px 0 0; font-size: 13px; color: #64748b; line-height: 1.45; max-width: 640px; }
