/* Заводы.рф — дизайн-система, итерация 4 («промышленный реестр»).
   Раскладка: белые рабочие поверхности на стальном фоне, данные строками с тонкими линейками,
   узкий технический шрифт для длинных названий предприятий, моноширинный для ИНН/ОКВЭД/цифр,
   цвета логотипа: тёмно-синий — текст, синий — действия, красный — сигнал (закрепление, закрыто).
   Акцент один: «шильдик» — табличка реестровых фактов на карточке предприятия. */

:root {
  /* цвет */
  --ink: #0d1b36;          /* тёмно-синий логотипа, текст и шильдик */
  --ink-2: #44506a;        /* второстепенный текст */
  --ink-3: #78839a;        /* подписи, источники */
  --steel: #eef1f5;        /* фон страницы, подложки */
  --steel-2: #e1e6ed;      /* разделители, неактивное */
  --rule: #d3dae4;         /* линейки и рамки */
  --paper: #ffffff;
  --blue: #0058d6;         /* синий логотипа, затемнён для текста на белом */
  --blue-ink: #0044a8;
  --blue-wash: #e8f0fd;
  --red: #e0262a;          /* красный логотипа: закрепление, закрыто, обязательное */
  --red-wash: #fdecec;
  --ok: #157a46;
  --ok-wash: #e5f4ec;
  --warn: #9a5800;
  --warn-wash: #fdf2e1;
  --plate: #0d1b36;
  --plate-line: rgba(255, 255, 255, .13);
  --plate-label: #9fb0cc;

  /* шрифты */
  --f-display: "IBM Plex Sans Condensed", "Arial Narrow", "Roboto Condensed", sans-serif;
  --f-body: "Golos Text", "Segoe UI", Roboto, Arial, sans-serif;
  --f-data: "JetBrains Mono", "Consolas", "Menlo", monospace;

  /* форма */
  --r: 6px;
  --r-lg: 10px;
  --lift: 0 1px 2px rgba(13, 27, 54, .06), 0 8px 24px rgba(13, 27, 54, .10);
  --container: 1260px;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; font-family: var(--f-body); font-size: 15px; line-height: 1.55; color: var(--ink); background: var(--steel); }
a { color: var(--blue); text-decoration: none; }
a:hover { color: var(--blue-ink); text-decoration: underline; text-underline-offset: 2px; }
:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
h1, h2, h3, h4 { font-family: var(--f-display); font-weight: 600; color: var(--ink); margin: 0 0 .45em; line-height: 1.15; letter-spacing: -.005em; text-wrap: balance; }
h1 { font-size: 36px; }
h2 { font-size: 25px; }
h3 { font-size: 19px; }
p { margin: 0 0 1em; }
img { max-width: 100%; display: block; }
button, input, select, textarea { font-family: inherit; }
code, .data { font-family: var(--f-data); font-size: .92em; font-variant-numeric: tabular-nums; }
.num { font-variant-numeric: tabular-nums; }
.muted { color: var(--ink-2); }
.faint { color: var(--ink-3); }
.small { font-size: 13.5px; }
.xs { font-size: 12.5px; }
.label { font-family: var(--f-display); font-size: 12.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--ink-3); }
.container { max-width: var(--container); margin: 0 auto; padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.icon { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.icon--fill { fill: currentColor; stroke: none; }

/* ---------- Шапка ---------- */
.header { background: var(--paper); border-bottom: 1px solid var(--rule); position: sticky; top: env(safe-area-inset-top, 0px); z-index: 30; }
body::before { content: ""; position: fixed; inset: 0 0 auto; height: env(safe-area-inset-top, 0px); z-index: 31; background: var(--paper); }
.header__row { display: flex; align-items: center; gap: 24px; height: 64px; }
.header__logo { flex: none; display: flex; }
.header__logo img { height: 30px; width: auto; }
.nav { display: flex; gap: 22px; align-self: stretch; }
.nav a { display: flex; align-items: center; color: var(--ink); font-weight: 500; font-size: 15px; border-bottom: 2px solid transparent; padding-top: 2px; }
.nav a:hover { text-decoration: none; border-bottom-color: var(--rule); }
.nav a.is-active { border-bottom-color: var(--blue); color: var(--blue-ink); }
.nav a .count { font-family: var(--f-data); font-size: 11px; background: var(--red); color: #fff; border-radius: 3px; padding: 1px 4px; margin-left: 5px; }
.hsearch { flex: 1; max-width: 360px; margin-left: auto; position: relative; }
.hsearch input { width: 100%; height: 38px; border: 1px solid var(--rule); border-radius: var(--r); padding: 0 36px 0 12px; font-size: 14px; background: var(--steel); color: var(--ink); }
.hsearch input:focus { background: var(--paper); border-color: var(--blue); outline: none; }
.hsearch svg { position: absolute; right: 11px; top: 11px; color: var(--ink-3); }
.header__actions { display: flex; gap: 8px; align-items: center; }
.burger { display: none; background: none; border: 1px solid var(--rule); border-radius: var(--r); width: 40px; height: 40px; color: var(--ink); align-items: center; justify-content: center; cursor: pointer; }

/* ---------- Кнопки и поля ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-family: var(--f-body); font-weight: 600; font-size: 14.5px; line-height: 1; padding: 11px 18px; border-radius: var(--r); border: 1px solid transparent; cursor: pointer; white-space: nowrap; text-decoration: none; transition: background .12s, border-color .12s, color .12s; }
.btn:hover { text-decoration: none; }
.btn--primary { background: var(--blue); color: #fff; }
.btn--primary:hover { background: var(--blue-ink); color: #fff; }
.btn--ink { background: var(--ink); color: #fff; }
.btn--ink:hover { background: #1b2d52; color: #fff; }
.btn--secondary { background: var(--paper); color: var(--ink); border-color: var(--rule); }
.btn--secondary:hover { border-color: var(--ink-3); color: var(--ink); }
.btn--ghost { background: transparent; color: var(--blue); padding-inline: 4px; }
.btn--danger { background: var(--paper); color: var(--red); border-color: #f2b9ba; }
.btn--sm { padding: 8px 12px; font-size: 13.5px; }
.btn--lg { padding: 14px 22px; font-size: 15.5px; }
.btn--block { width: 100%; }
.input, .select, textarea.input { font-size: 14.5px; color: var(--ink); background: var(--paper); border: 1px solid var(--rule); border-radius: var(--r); padding: 9px 11px; height: 40px; width: 100%; }
textarea.input { height: auto; min-height: 110px; resize: vertical; line-height: 1.5; }
.input::placeholder { color: var(--ink-3); }
.input:focus, .select:focus { border-color: var(--blue); outline: none; box-shadow: 0 0 0 3px var(--blue-wash); }
.select { appearance: none; padding-right: 30px; background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' fill='none' stroke='%2344506a' stroke-width='1.5'/></svg>"); background-repeat: no-repeat; background-position: right 11px center; }
.select:disabled { color: var(--ink-3); background-color: var(--steel); cursor: not-allowed; }
.select--sub { border-left: 3px solid var(--steel-2); }
.check { display: flex; align-items: center; gap: 9px; font-size: 14px; cursor: pointer; }
.check input { width: 16px; height: 16px; margin: 0; accent-color: var(--blue); }
.field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.field > label, .field > .label { font-family: var(--f-display); font-size: 12.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--ink-2); }
.field__hint { font-size: 12.5px; color: var(--ink-3); }
.radio-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.radio-card { border: 1px solid var(--rule); border-radius: var(--r); padding: 12px; display: flex; gap: 10px; cursor: pointer; background: var(--paper); }
.radio-card input { margin-top: 3px; accent-color: var(--blue); }
.radio-card b { display: block; font-size: 14.5px; }
.radio-card span { font-size: 13px; color: var(--ink-2); }
.radio-card:has(input:checked) { border-color: var(--blue); box-shadow: inset 0 0 0 1px var(--blue); }

/* ---------- Крошки, метки, чипы ---------- */
.crumbs { font-size: 13px; color: var(--ink-3); padding: 18px 0 10px; }
.crumbs ol { display: flex; flex-wrap: wrap; gap: 4px 6px; margin: 0; padding: 0; list-style: none; }
.crumbs a { color: var(--ink-2); }
.crumbs li + li::before { content: "›"; color: var(--ink-3); margin-right: 6px; }
.tag { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 600; line-height: 1; padding: 4px 7px; border-radius: 3px; background: var(--steel); color: var(--ink-2); white-space: nowrap; }
.tag--ok { background: var(--ok-wash); color: var(--ok); }
.tag--bad { background: var(--red-wash); color: #b01d21; }
.tag--warn { background: var(--warn-wash); color: var(--warn); }
.tag--blue { background: var(--blue-wash); color: var(--blue-ink); }
.tag--ink { background: var(--ink); color: #fff; }
.pinmark { display: inline-flex; color: var(--red); vertical-align: -2px; position: relative; }
.pinmark .icon { width: 16px; height: 16px; }
/* Закреплено: синяя плашка со значком кнопки — цвет действия, а не ошибки */
.row__title .pinmark { color: var(--blue); background: var(--blue-wash); border-radius: 4px; width: 24px; height: 24px; align-items: center; justify-content: center; align-self: center; flex: none; }
.row__title .pinmark .icon { width: 14px; height: 14px; stroke-width: 2; transform: rotate(35deg); }
[data-tip] { position: relative; }
[data-tip]::after { content: attr(data-tip); position: absolute; bottom: calc(100% + 6px); left: 50%; transform: translateX(-50%); background: var(--ink); color: #fff; font-family: var(--f-body); font-size: 12px; font-weight: 500; white-space: nowrap; padding: 5px 8px; border-radius: 3px; opacity: 0; pointer-events: none; transition: opacity .12s; z-index: 5; }
[data-tip]:hover::after, [data-tip]:focus-visible::after { opacity: 1; }
.links { display: flex; flex-direction: column; gap: 10px; }
.links__row { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 12px; align-items: baseline; }
.links__row > span { font-size: 13px; color: var(--ink-3); }
.links__items { display: flex; flex-wrap: wrap; gap: 4px 18px; font-size: 14.5px; }
.links__items a { color: var(--ink); border-bottom: 1px solid var(--rule); }
.links__items a:hover { color: var(--blue); border-bottom-color: var(--blue); text-decoration: none; }
.links__items a b { font-family: var(--f-data); font-weight: 400; font-size: 12px; color: var(--ink-3); margin-left: 5px; }
.links__items .more { color: var(--blue); border-bottom-style: dashed; }
.chip { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 500; padding: 5px 9px; border: 1px solid var(--rule); border-radius: 3px; color: var(--ink); background: var(--paper); }
.chip button { all: unset; cursor: pointer; color: var(--ink-3); font-size: 14px; line-height: 1; }
.chip button:hover { color: var(--red); }

/* ---------- Панели ---------- */
.panel { background: var(--paper); border: 1px solid var(--rule); border-radius: var(--r-lg); }
.panel__pad { padding: 22px 24px; }
.panel__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 16px 24px; border-bottom: 1px solid var(--rule); }
.panel__head h2, .panel__head h3 { margin: 0; }
.section { padding-block: 36px; }
.section__head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.section__head h2 { margin: 0; }
.section__head a { font-size: 14px; font-weight: 600; white-space: nowrap; }
.section__head p { margin: 4px 0 0; color: var(--ink-2); font-size: 14.5px; }
.page-head { padding-bottom: 18px; }
.page-head h1 { margin-bottom: 8px; }
.page-head__lead { font-size: 16.5px; color: var(--ink-2); max-width: 78ch; margin: 0; }
.page-head__lead b { color: var(--ink); font-weight: 600; }

/* ---------- Реклама (места из Drupal) ---------- */
.slot { border: 1px dashed #b9c3d2; border-radius: var(--r); background: repeating-linear-gradient(135deg, transparent 0 10px, rgba(13, 27, 54, .025) 10px 20px), var(--paper); display: flex; flex-direction: column; justify-content: center; align-items: center; gap: 4px; color: var(--ink-3); text-align: center; padding: 10px; }
.slot b { font-family: var(--f-display); font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .1em; }
.slot code { font-size: 11.5px; }
.slot--row { min-height: 110px; }
.slot--feed { min-height: 260px; }
.slot--side { min-height: 300px; }
.slot--bill { min-height: 120px; }

/* ---------- Каталог ---------- */
.catalog { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: 24px; align-items: start; }
.aside { display: flex; flex-direction: column; gap: 16px; position: sticky; top: calc(80px + env(safe-area-inset-top, 0px)); }
.filters { background: var(--paper); border: 1px solid var(--rule); border-radius: var(--r-lg); display: flex; flex-direction: column; }
.filters__head { display: flex; justify-content: space-between; align-items: center; padding: 14px 18px; border-bottom: 1px solid var(--rule); }
.filters__head h2 { font-size: 17px; margin: 0; }
.filters__head a { font-size: 13px; }
.filters__body { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 14px; }
.filters__group { display: flex; flex-direction: column; gap: 8px; padding-top: 14px; border-top: 1px solid var(--steel-2); }
.filters__close { display: none; }
.filters-toggle { display: none; }
.okved-list { border: 1px solid var(--rule); border-radius: var(--r); max-height: 200px; overflow: auto; font-size: 13px; }
.okved-list label { display: flex; gap: 8px; padding: 7px 9px; border-bottom: 1px solid var(--steel-2); cursor: pointer; align-items: center; min-width: 0; }
.okved-list label:last-child { border-bottom: 0; }
.okved-list input { margin: 0; accent-color: var(--blue); flex: none; }
.okved-list code { font-weight: 500; color: var(--ink); }
.okved-list span { color: var(--ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; min-width: 0; flex: 1; }
.okved-list b { font-family: var(--f-data); font-weight: 400; font-size: 11.5px; color: var(--ink-3); }

.listhead { display: flex; align-items: center; justify-content: space-between; gap: 12px 16px; flex-wrap: wrap; padding: 14px 20px; border-bottom: 1px solid var(--rule); }
.listhead__count { font-family: var(--f-display); font-weight: 600; font-size: 19px; }
.listhead__count small { font-family: var(--f-body); font-weight: 400; font-size: 13.5px; color: var(--ink-3); margin-left: 6px; }
.listhead__tools { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.listhead__tools .select { width: auto; height: 34px; font-size: 13.5px; padding-block: 5px; }
.seg { display: inline-flex; border: 1px solid var(--rule); border-radius: var(--r); overflow: hidden; height: 34px; }
.seg button { font-size: 13px; font-weight: 600; background: var(--paper); border: 0; padding: 0 11px; cursor: pointer; color: var(--ink-2); display: inline-flex; align-items: center; gap: 6px; }
.seg button + button { border-left: 1px solid var(--rule); }
.seg button.is-active { background: var(--ink); color: #fff; }
.applied { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; padding: 10px 20px; border-bottom: 1px solid var(--rule); background: #fafbfc; }
.applied > span { font-size: 13px; color: var(--ink-3); margin-right: 4px; }

/* ---------- Строка предприятия ---------- */
.rows { display: flex; flex-direction: column; }
.rows > * + * { border-top: 1px solid var(--steel-2); }
.rows > .slot { margin: 14px 20px; border-top-style: dashed; }
.rows > * + .slot, .rows > .slot + * { border-top: 0; }
.row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 18px; padding: 18px 20px; position: relative; }
.row:hover { background: #fafbfc; }
.row--pinned { }
.row--closed { opacity: .72; }
.row--closed .row__title a { color: var(--ink-2); }
.row__title { font-family: var(--f-display); font-size: 19px; font-weight: 600; line-height: 1.2; margin: 0; display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.row__title a { color: var(--ink); }
.row__title a:hover { color: var(--blue); }
.row__place { font-size: 13.5px; color: var(--ink-2); margin-top: 3px; }
.row__facts { display: flex; flex-wrap: wrap; gap: 4px 0; margin-top: 8px; font-family: var(--f-data); font-size: 12.5px; color: var(--ink-2); }
.row__facts span + span::before { content: ""; display: inline-block; width: 1px; height: 11px; background: var(--rule); margin: 0 10px; vertical-align: -1px; }
.row__desc { font-size: 14px; margin: 8px 0 0; color: var(--ink); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; max-width: 80ch; }
.row__kinds { font-size: 12.5px; color: var(--ink-3); margin-top: 6px; }
.row__marks { display: flex; flex-direction: column; gap: 6px; align-items: flex-end; }
.mark { display: inline-flex; align-items: center; gap: 5px; font-family: var(--f-data); font-size: 12px; color: var(--ink-2); min-width: 44px; justify-content: flex-end; }
.mark .icon { width: 15px; height: 15px; color: var(--blue); }
.mark--off { color: #b9c3d2; }
.mark--off .icon { color: #c8d0dc; }
.rows--cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rows--cards > * + * { border-top: 0; }
.rows--cards > .row { grid-template-columns: auto minmax(0, 1fr); border-bottom: 1px solid var(--steel-2); }
.rows--cards > .row:nth-child(odd of .row) { border-right: 1px solid var(--steel-2); }
.rows--cards .row__marks { grid-column: 2; flex-direction: row; align-items: center; justify-content: flex-start; }
.rows--cards .slot { grid-column: 1 / -1; }
.closed-sep { padding: 10px 20px; font-size: 13px; color: var(--ink-3); background: #fafbfc; }

.pager { display: flex; gap: 6px; padding: 18px 20px; align-items: center; flex-wrap: wrap; border-top: 1px solid var(--rule); }
.pager a, .pager span { min-width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--r); border: 1px solid var(--rule); color: var(--ink); font-family: var(--f-data); font-size: 13.5px; padding: 0 10px; background: var(--paper); }
.pager a:hover { border-color: var(--ink-3); text-decoration: none; }
.pager .is-active { background: var(--ink); color: #fff; border-color: var(--ink); }
.pager .dots { border: 0; background: none; color: var(--ink-3); }
.pager .next { font-family: var(--f-body); font-weight: 600; margin-left: auto; }

.mapbox { padding: 16px 20px 20px; border-top: 1px solid var(--rule); }
.mapbox__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.mapbox__head h2 { margin: 0; font-size: 19px; }
.map { position: relative; height: 400px; margin-top: 14px; border-radius: var(--r); overflow: hidden; background: #e5ebf1 repeating-linear-gradient(0deg, transparent 0 39px, rgba(255, 255, 255, .8) 39px 40px), repeating-linear-gradient(90deg, transparent 0 39px, rgba(255, 255, 255, .8) 39px 40px); }
.map::before { content: ""; position: absolute; inset: 0; background: radial-gradient(500px 260px at 60% 45%, rgba(184, 206, 160, .45), transparent 70%), radial-gradient(400px 200px at 25% 70%, rgba(170, 198, 228, .55), transparent 70%); }
.pin { position: absolute; transform: translate(-50%, -100%); display: flex; flex-direction: column; align-items: center; gap: 2px; font-size: 12px; font-weight: 600; }
.pin::after { content: ""; width: 12px; height: 12px; border-radius: 50% 50% 50% 0; background: var(--red); transform: rotate(-45deg); box-shadow: 0 1px 3px rgba(0, 0, 0, .3); }
.pin span { background: var(--paper); padding: 2px 6px; border-radius: 3px; box-shadow: 0 1px 3px rgba(0, 0, 0, .15); white-space: nowrap; }
.map--sm { height: 220px; }
.map__hint { position: absolute; left: 10px; bottom: 10px; background: var(--paper); border-radius: 3px; padding: 5px 9px; font-size: 12px; color: var(--ink-2); }

.seo-text { font-size: 14.5px; color: var(--ink-2); max-width: 78ch; }
.seo-text h2 { font-size: 20px; }

/* ---------- Товары ---------- */
.products { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.products--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.prod { border: 1px solid var(--rule); border-radius: var(--r); overflow: hidden; font-size: 14px; display: flex; flex-direction: column; color: var(--ink); background: var(--paper); }
.prod:hover { border-color: var(--ink-3); text-decoration: none; color: var(--ink); }
.prod__img { aspect-ratio: 4 / 3; max-width: 100%; background: var(--steel); display: flex; align-items: center; justify-content: center; color: #b9c3d2; }
.prod__img .icon { width: 28px; height: 28px; stroke-width: 1.3; }
.prod__body { padding: 10px 12px 12px; display: flex; flex-direction: column; gap: 3px; flex: 1; }
.prod__cat { color: var(--ink-3); font-size: 12px; }
.prod__title { font-weight: 600; line-height: 1.3; }
.prod__price { margin-top: auto; padding-top: 6px; font-family: var(--f-data); font-weight: 500; }
.prod__price.is-empty { color: var(--ink-3); font-family: var(--f-body); font-weight: 400; font-size: 13px; }

/* ---------- Главная ---------- */
.hero { background: var(--paper); border-bottom: 1px solid var(--rule); padding-block: 36px 0; }
.hero h1 { font-size: 44px; margin-bottom: 6px; }
.hero__sub { font-size: 17px; color: var(--ink-2); margin-bottom: 22px; max-width: 64ch; }
.finder { border: 1px solid var(--rule); border-radius: var(--r-lg); background: var(--steel); }
.finder__tabs { display: flex; gap: 0; border-bottom: 1px solid var(--rule); padding-inline: 8px; }
.finder__tabs button { background: none; border: 0; border-bottom: 2px solid transparent; padding: 13px 14px 11px; font-size: 14.5px; font-weight: 600; color: var(--ink-2); cursor: pointer; margin-bottom: -1px; }
.finder__tabs button.is-active { color: var(--ink); border-bottom-color: var(--blue); }
.finder__tabs button b { font-family: var(--f-data); font-weight: 400; font-size: 12px; color: var(--ink-3); margin-left: 6px; }
.finder__grid { display: grid; grid-template-columns: minmax(0, 1.4fr) repeat(4, minmax(0, 1fr)); gap: 12px; padding: 16px; align-items: end; }
.finder__grid .wide { grid-column: span 1; }
.finder__foot { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; padding: 0 16px 16px; }
.finder__foot .btn { margin-left: auto; }
.hero__stats { display: flex; gap: 36px; padding-block: 18px; flex-wrap: wrap; }
.hero__stats div { display: flex; flex-direction: column; }
.hero__stats b { font-family: var(--f-data); font-weight: 500; font-size: 20px; }
.hero__stats span { font-size: 13px; color: var(--ink-3); }

.ind-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--rule); border-left: 1px solid var(--rule); background: var(--paper); border-radius: var(--r-lg); overflow: hidden; }
.ind { padding: 18px 20px; border-right: 1px solid var(--rule); border-bottom: 1px solid var(--rule); display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.ind__title { display: flex; justify-content: space-between; gap: 12px; align-items: baseline; }
.ind__title a { font-family: var(--f-display); font-weight: 600; font-size: 18px; color: var(--ink); line-height: 1.2; }
.ind__title b { font-family: var(--f-data); font-weight: 400; font-size: 12.5px; color: var(--ink-3); }
.ind__subs { font-size: 13.5px; color: var(--ink-2); line-height: 1.6; }
.ind__subs a { color: var(--ink-2); }
.ind__subs a:hover { color: var(--blue); }

.split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; }
.split--wide { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); }
.mini { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px; padding: 14px 20px; }
.mini + .mini { border-top: 1px solid var(--steel-2); }
.mini__title { font-family: var(--f-display); font-weight: 600; font-size: 16.5px; line-height: 1.2; }
.mini__title a { color: var(--ink); }
.mini__meta { font-size: 13px; color: var(--ink-2); margin-top: 2px; }
.news { list-style: none; margin: 0; padding: 0; }
.news li { padding: 12px 20px; display: grid; grid-template-columns: 70px 1fr; gap: 14px; font-size: 14.5px; }
.news li + li { border-top: 1px solid var(--steel-2); }
.news time { font-family: var(--f-data); color: var(--ink-3); font-size: 12.5px; padding-top: 2px; }
.news a { color: var(--ink); }
.cta-band { background: var(--ink); color: #fff; border-radius: var(--r-lg); padding: 28px 32px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; }
.cta-band h3 { color: #fff; font-size: 22px; margin-bottom: 8px; }
.cta-band p { color: #c3cde0; font-size: 14.5px; margin-bottom: 16px; }
.cta-band > div + div { border-left: 1px solid var(--plate-line); padding-left: 32px; }
.cta-band .btn--secondary { background: transparent; color: #fff; border-color: rgba(255, 255, 255, .35); }

/* ---------- Закупки ---------- */
.demand { padding: 18px 20px; display: grid; grid-template-columns: minmax(0, 1fr) 200px; gap: 20px; }
.demand__title { font-family: var(--f-display); font-weight: 600; font-size: 19px; line-height: 1.25; margin: 0; }
.demand__title a { color: var(--ink); }
.demand__meta { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 13.5px; color: var(--ink-2); margin-top: 6px; }
.demand__meta b { font-weight: 600; color: var(--ink); }
.demand__text { font-size: 14px; margin: 8px 0 0; max-width: 78ch; }
.demand__side { display: flex; flex-direction: column; gap: 8px; align-items: flex-end; text-align: right; font-size: 13px; color: var(--ink-2); }
.demand__qty { font-family: var(--f-data); font-size: 15px; color: var(--ink); }
.demand__side .btn { width: 100%; }
.due { font-family: var(--f-data); font-size: 12.5px; }
.due--soon { color: var(--red); }

/* ---------- Карточка предприятия ---------- */
.profile { background: var(--paper); border: 1px solid var(--rule); border-radius: var(--r-lg); }
.profile__top { display: grid; grid-template-columns: auto minmax(0, 1fr) 300px; gap: 24px; padding: 24px; }
.profile h1 { font-size: 38px; margin-bottom: 8px; }
.profile__line { display: flex; flex-wrap: wrap; gap: 6px 16px; align-items: center; color: var(--ink-2); font-size: 14px; }
.profile__line a { color: var(--ink-2); }
.profile__legal { font-size: 13.5px; color: var(--ink-3); margin-top: 8px; }
.profile__legal code { color: var(--ink-2); }
.profile__contact { border-left: 1px solid var(--rule); padding-left: 24px; display: flex; flex-direction: column; gap: 10px; }
.profile__phone { font-family: var(--f-data); font-weight: 500; font-size: 20px; color: var(--ink); }
.ptabs { display: flex; gap: 22px; padding: 0 24px; border-top: 1px solid var(--rule); overflow-x: auto; }
.ptabs button { background: none; border: 0; border-bottom: 2px solid transparent; padding: 13px 0 11px; font-size: 14.5px; font-weight: 600; color: var(--ink-2); cursor: pointer; white-space: nowrap; display: inline-flex; align-items: center; gap: 6px; }
.ptabs button:hover { color: var(--ink); }
.ptabs button.is-active { color: var(--ink); border-bottom-color: var(--blue); }
.ptabs button b { font-family: var(--f-data); font-weight: 400; font-size: 12px; color: var(--ink-3); }
.ptabs .icon { width: 14px; height: 14px; color: var(--ink-3); }
.layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 24px; align-items: stretch; margin-top: 20px; }
.layout > div:first-child { align-self: start; }
.side { display: flex; flex-direction: column; gap: 16px; }
.pane { display: flex; flex-direction: column; gap: 16px; }
.pane > .panel > .panel__pad > h2 { font-size: 22px; }
.sub { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; margin: 26px 0 12px; }
.sub h3 { margin: 0; font-size: 18px; }
.sub a { font-size: 13.5px; font-weight: 600; }
.prose p { margin: 0 0 .85em; max-width: 72ch; }
.prose ul { margin: 0 0 1em; padding-left: 20px; max-width: 72ch; }
.prose li { margin-bottom: 4px; }

/* Шильдик — табличка реестровых фактов */
.plate { background: var(--plate); color: #fff; border-radius: var(--r-lg); position: relative; padding: 6px; margin-top: 22px; }
.plate::before { content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  background: radial-gradient(circle at 10px 10px, #2c3d61 0 3px, transparent 3.5px), radial-gradient(circle at calc(100% - 10px) 10px, #2c3d61 0 3px, transparent 3.5px), radial-gradient(circle at 10px calc(100% - 10px), #2c3d61 0 3px, transparent 3.5px), radial-gradient(circle at calc(100% - 10px) calc(100% - 10px), #2c3d61 0 3px, transparent 3.5px); }
.plate__head { display: flex; justify-content: space-between; gap: 12px; padding: 10px 18px 8px; font-family: var(--f-display); font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--plate-label); }
.plate__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; border-top: 1px solid var(--plate-line); }
.plate__grid > div { padding: 14px 18px 16px; border-bottom: 1px solid var(--plate-line); min-width: 0; }
.plate__grid > div:not(:nth-child(3n)) { border-right: 1px solid var(--plate-line); }
.plate__grid > div:nth-last-child(-n+3) { border-bottom: 0; }
.plate dt { font-family: var(--f-display); font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--plate-label); }
.plate dd { margin: 6px 0 0; font-family: var(--f-data); font-size: 21px; font-weight: 500; line-height: 1.2; }
.plate dd a { color: #fff; border-bottom: 1px solid rgba(255, 255, 255, .3); }
.plate dd a:hover { text-decoration: none; border-bottom-color: #fff; }
.plate dd.is-text { font-family: var(--f-body); font-size: 15px; font-weight: 500; }
.plate small { display: block; margin-top: 4px; font-family: var(--f-body); font-size: 12px; color: var(--plate-label); }

.req { margin: 0; font-size: 14.5px; }
.req > div { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--steel-2); }
.req > div:last-child { border-bottom: 0; }
.req dt { color: var(--ink-2); }
.req dd { margin: 0; min-width: 0; }
.source { font-size: 12.5px; color: var(--ink-3); margin: 14px 0 0; }
.kv { margin: 0; font-size: 14px; }
.kv > div { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--steel-2); }
.kv > div:last-child { border-bottom: 0; }
.kv dt { color: var(--ink-2); }
.kv dd { margin: 0; text-align: right; font-weight: 500; }
.contact { font-size: 14.5px; display: flex; flex-direction: column; gap: 12px; }
.contact > div { display: grid; grid-template-columns: 18px minmax(0, 1fr); gap: 10px; align-items: start; }
.contact .icon { color: var(--ink-3); margin-top: 3px; }
.contact .big { font-family: var(--f-data); font-size: 17px; font-weight: 500; color: var(--ink); }
.contact small { display: block; color: var(--ink-3); font-size: 12.5px; }
.okved-links { display: flex; flex-direction: column; gap: 7px; font-size: 14px; }
.okved-links a { color: var(--ink); }
.okved-links a:hover { color: var(--blue); }
.okved-links code { color: var(--blue-ink); margin-right: 8px; }
details.expander > summary { cursor: pointer; color: var(--blue); font-weight: 600; font-size: 14px; list-style: none; }
details.expander > summary::-webkit-details-marker { display: none; }
details.expander > summary::after { content: " ▾"; font-size: 11px; }
details.expander[open] > summary::after { content: " ▴"; }
.gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.gallery div { aspect-ratio: 4 / 3; max-width: 100%; background: var(--steel); border-radius: var(--r); overflow: hidden; }
.gallery img { width: 100%; height: 100%; object-fit: cover; }
.review { padding: 14px 0; border-bottom: 1px solid var(--steel-2); font-size: 14.5px; }
.empty { color: var(--ink-2); font-size: 14.5px; }

/* Финансы: график */
.fin-chart { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 0 10px; margin-top: 8px; }
.fin-chart__axis { display: flex; flex-direction: column; justify-content: space-between; font-family: var(--f-data); font-size: 11.5px; color: var(--ink-3); text-align: right; height: 220px; padding-bottom: 0; }
.fin-chart__plot { position: relative; height: 220px; border-bottom: 1px solid var(--ink-3); background: repeating-linear-gradient(0deg, var(--steel-2) 0 1px, transparent 1px 55px); display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); align-items: end; gap: 14px; padding: 0 10px; }
.fin-chart__bar { background: var(--ink); border-radius: 2px 2px 0 0; position: relative; }
.fin-chart__bar span { position: absolute; bottom: calc(100% + 4px); left: 50%; transform: translateX(-50%); font-family: var(--f-data); font-size: 12px; white-space: nowrap; color: var(--ink); }
.fin-chart__bar.is-locked { background: repeating-linear-gradient(135deg, var(--steel-2) 0 6px, #cfd6e0 6px 12px); }
.fin-chart__bar.is-locked span { color: var(--ink-3); }
.fin-chart__years { grid-column: 2; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px; padding: 6px 10px 0; font-family: var(--f-data); font-size: 12px; color: var(--ink-2); text-align: center; }
.fin { width: 100%; border-collapse: collapse; font-size: 14px; }
.fin th, .fin td { text-align: right; padding: 9px 10px; border-bottom: 1px solid var(--steel-2); font-family: var(--f-data); font-size: 13px; }
.fin th:first-child, .fin td:first-child { text-align: left; font-family: var(--f-body); font-size: 14px; color: var(--ink-2); }
.fin th { color: var(--ink-3); font-weight: 500; }
.fin .is-locked { color: transparent; text-shadow: 0 0 7px rgba(13, 27, 54, .45); user-select: none; }
.table-wrap { overflow-x: auto; }

/* Платный доступ */
.paywall { border: 1px solid var(--rule); border-radius: var(--r-lg); background: var(--steel); padding: 22px 24px; display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 16px; }
.paywall__lock { width: 44px; height: 44px; border-radius: 50%; background: var(--ink); color: #fff; display: flex; align-items: center; justify-content: center; }
.paywall__lock .icon { width: 20px; height: 20px; }
.paywall h3 { margin-bottom: 6px; }
.paywall ul { margin: 10px 0 16px; padding: 0; list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 6px 20px; font-size: 14px; }
.paywall li { display: grid; grid-template-columns: 16px 1fr; gap: 8px; }
.paywall li .icon { color: var(--ok); margin-top: 3px; width: 14px; height: 14px; }
.paywall__actions { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.paywall__price { font-family: var(--f-data); font-size: 15px; }
.risk { display: grid; grid-template-columns: 26px minmax(0, 1fr) auto; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--steel-2); align-items: start; }
.risk:last-child { border-bottom: 0; }
.risk__dot { width: 10px; height: 10px; border-radius: 50%; margin: 6px 0 0 8px; }
.risk__dot--ok { background: var(--ok); }
.risk__dot--warn { background: #e09a1a; }
.risk__dot--bad { background: var(--red); }
.risk b { display: block; font-size: 14.5px; }
.risk span { font-size: 13.5px; color: var(--ink-2); }
.risk__val { font-family: var(--f-data); font-size: 13px; white-space: nowrap; }
.score { display: flex; align-items: center; gap: 18px; padding: 4px 0 16px; border-bottom: 1px solid var(--rule); margin-bottom: 6px; }
.score__num { font-family: var(--f-data); font-size: 40px; font-weight: 500; line-height: 1; }
.score__bar { flex: 1; height: 8px; border-radius: 4px; background: linear-gradient(90deg, var(--red), #e09a1a 45%, var(--ok)); position: relative; }
.score__bar i { position: absolute; top: -5px; width: 3px; height: 18px; background: var(--ink); border-radius: 2px; }
.viewas { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; color: var(--ink-3); }

/* ---------- Кабинет ---------- */
.cab { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 24px; align-items: start; padding-top: 22px; }
.cab-nav { background: var(--paper); border: 1px solid var(--rule); border-radius: var(--r-lg); padding: 8px; position: sticky; top: calc(80px + env(safe-area-inset-top, 0px)); }
.cab-nav__who { padding: 10px 10px 12px; border-bottom: 1px solid var(--steel-2); margin-bottom: 6px; }
.cab-nav__who b { display: block; font-family: var(--f-display); font-size: 16px; font-weight: 600; line-height: 1.2; }
.cab-nav__who span { font-size: 12.5px; color: var(--ink-3); }
.cab-nav button { all: unset; box-sizing: border-box; width: 100%; display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: var(--r); font-size: 14.5px; font-weight: 500; color: var(--ink-2); cursor: pointer; }
.cab-nav button:hover { background: var(--steel); color: var(--ink); }
.cab-nav button.is-active { background: var(--ink); color: #fff; }
.cab-nav button .icon { width: 16px; height: 16px; }
.cab-nav button b { margin-left: auto; font-family: var(--f-data); font-size: 11.5px; background: var(--red); color: #fff; border-radius: 3px; padding: 1px 5px; font-weight: 500; }
.cab h1 { font-size: 30px; }
.tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); background: var(--paper); border: 1px solid var(--rule); border-radius: var(--r-lg); }
.tile { padding: 16px 18px; min-width: 0; }
.tile + .tile { border-left: 1px solid var(--rule); }
.tile b { display: block; font-family: var(--f-data); font-size: 26px; font-weight: 500; line-height: 1.1; margin-top: 6px; }
.tile .delta { font-family: var(--f-data); font-size: 12px; }
.delta--up { color: var(--ok); }
.delta--down { color: var(--red); }
.spark { width: 100%; height: 170px; display: block; }
.spark text { font-family: var(--f-data); font-size: 11px; fill: var(--ink-3); }
.tbl { width: 100%; border-collapse: collapse; font-size: 14px; }
.tbl th, .tbl td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--steel-2); vertical-align: top; }
.tbl th { font-family: var(--f-display); font-size: 12.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .07em; color: var(--ink-3); }
.tbl td.n, .tbl th.n { text-align: right; font-family: var(--f-data); font-size: 13px; }
.msg-layout { display: grid; grid-template-columns: 300px minmax(0, 1fr); min-height: 460px; }
.threads { border-right: 1px solid var(--rule); }
.thread { display: block; width: 100%; text-align: left; background: none; border: 0; border-bottom: 1px solid var(--steel-2); padding: 12px 16px; cursor: pointer; font: inherit; color: inherit; }
.thread:hover { background: #fafbfc; }
.thread.is-active { background: var(--blue-wash); }
.thread b { display: flex; justify-content: space-between; gap: 8px; font-size: 14px; }
.thread b time { font-family: var(--f-data); font-weight: 400; font-size: 11.5px; color: var(--ink-3); }
.thread span { display: block; font-size: 13px; color: var(--ink-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.thread em { font-style: normal; font-size: 11.5px; color: var(--blue-ink); }
.thread--unread b::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--red); display: inline-block; margin-right: 6px; flex: none; align-self: center; }
.chat { display: flex; flex-direction: column; min-width: 0; }
.chat__head { padding: 12px 18px; border-bottom: 1px solid var(--rule); }
.chat__head b { font-size: 15px; }
.chat__head span { display: block; font-size: 12.5px; color: var(--ink-3); }
.chat__body { flex: 1; padding: 16px 18px; display: flex; flex-direction: column; gap: 10px; background: #fafbfc; }
.bubble { max-width: 76%; padding: 10px 13px; border-radius: var(--r-lg); font-size: 14px; background: var(--paper); border: 1px solid var(--rule); }
.bubble time { display: block; font-family: var(--f-data); font-size: 11px; color: var(--ink-3); margin-top: 4px; }
.bubble--me { align-self: flex-end; background: var(--ink); color: #fff; border-color: var(--ink); }
.bubble--me time { color: var(--plate-label); }
.bubble--sys { align-self: center; background: none; border: 0; font-size: 12.5px; color: var(--ink-3); text-align: center; }
.chat__form { display: flex; gap: 8px; padding: 12px 18px; border-top: 1px solid var(--rule); }
.promo-grid { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 20px; align-items: start; }
.place { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto auto; gap: 12px; align-items: center; padding: 11px 0; border-bottom: 1px solid var(--steel-2); font-size: 14px; }
.place input { accent-color: var(--blue); width: 16px; height: 16px; }
.place small { display: block; color: var(--ink-3); font-size: 12.5px; }
.place .data { color: var(--ink-2); }
.place .busy { font-size: 12px; color: var(--warn); }
.summary { position: sticky; top: calc(80px + env(safe-area-inset-top, 0px)); }
.summary .kv dd { font-family: var(--f-data); }
.total { display: flex; justify-content: space-between; align-items: baseline; padding: 14px 0; border-top: 1px solid var(--ink); margin-top: 6px; }
.total b { font-family: var(--f-data); font-size: 24px; font-weight: 500; }
.paymethods { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 10px; }
.paymethods span { font-size: 11.5px; font-weight: 600; border: 1px solid var(--rule); border-radius: 3px; padding: 3px 6px; color: var(--ink-2); }

/* ---------- Тарифы ---------- */
.plans { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; background: var(--paper); border: 1px solid var(--rule); border-radius: var(--r-lg); }
.plan { padding: 24px; display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.plan + .plan { border-left: 1px solid var(--rule); }
.plan--accent { box-shadow: inset 0 3px 0 var(--red); }
.plan__price { font-family: var(--f-data); font-size: 30px; font-weight: 500; line-height: 1; }
.plan__price small { font-family: var(--f-body); font-size: 13.5px; font-weight: 400; color: var(--ink-3); }
.plan ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; font-size: 14px; }
.plan li { display: grid; grid-template-columns: 16px 1fr; gap: 8px; }
.plan li .icon { margin-top: 3px; width: 14px; height: 14px; color: var(--ok); }
.plan li.no { color: var(--ink-3); }
.plan li.no .icon { color: #c8d0dc; }
.plan .btn { margin-top: auto; }
.compare th:not(:first-child), .compare td:not(:first-child) { text-align: center; }

/* ---------- Модальное окно ---------- */
.modal { position: fixed; inset: 0; background: rgba(13, 27, 54, .55); display: flex; align-items: center; justify-content: center; padding: 16px; z-index: 50; }
.modal__box { background: var(--paper); border-radius: var(--r-lg); width: min(560px, 100%); padding: 24px; box-shadow: var(--lift); max-height: 92vh; overflow: auto; }
.modal__box h3 { font-size: 22px; margin-bottom: 4px; }
.modal__close { float: right; background: none; border: 0; font-size: 24px; cursor: pointer; color: var(--ink-3); line-height: 1; }
.form { display: flex; flex-direction: column; gap: 14px; margin-top: 14px; }
.form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.form__ok { background: var(--ok-wash); color: var(--ok); border-radius: var(--r); padding: 14px; font-weight: 600; }

/* ---------- Подвал ---------- */
.footer { background: var(--ink); color: #c3cde0; margin-top: 56px; padding-block: 40px 28px; font-size: 13.5px; }
.footer__cols { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr 1fr; gap: 28px; }
.footer h4 { font-family: var(--f-display); font-size: 12.5px; text-transform: uppercase; letter-spacing: .1em; color: var(--plate-label); margin-bottom: 10px; }
.footer a { color: #dde4f0; display: block; padding: 3px 0; }
.footer a:hover { color: #fff; }
.footer__brand img { height: 28px; width: auto; margin-bottom: 12px; }
.footer__brand p { max-width: 32ch; margin: 0; }
.footer__bottom { margin-top: 28px; padding-top: 16px; border-top: 1px solid var(--plate-line); display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; color: var(--plate-label); }
.footer__bottom a { display: inline; }

/* ---------- Адаптив ---------- */
@media (max-width: 1100px) {
  .catalog { grid-template-columns: 250px minmax(0, 1fr); gap: 18px; }
  .layout { grid-template-columns: 1fr; }
  .profile__top { grid-template-columns: auto minmax(0, 1fr); }
  .profile__contact { grid-column: 1 / -1; border-left: 0; padding-left: 0; border-top: 1px solid var(--rule); padding-top: 16px; flex-direction: row; flex-wrap: wrap; align-items: center; }
  .finder__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .finder__grid > :first-child { grid-column: 1 / -1; }
  .ind-grid, .products--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hsearch { display: none; }
  .footer__cols { grid-template-columns: repeat(3, 1fr); }
  .tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tile:nth-child(3) { border-left: 0; }
  .tile:nth-child(n+3) { border-top: 1px solid var(--rule); }
  .promo-grid, .split, .split--wide { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  body { font-size: 14.5px; }
  h1, .profile h1, .hero h1 { font-size: 28px; }
  .nav, .header__actions .btn--secondary, .header__actions .btn--primary { display: none; }
  .burger { display: inline-flex; margin-left: auto; }
  .catalog, .cab { grid-template-columns: 1fr; }
  .aside { position: static; }
  .aside > .slot { display: none; }
  .filters { position: fixed; inset: 0; z-index: 40; border-radius: 0; overflow: auto; display: none; }
  .filters.is-open { display: flex; }
  .filters__close, .filters-toggle { display: inline-flex; }
  .row { grid-template-columns: auto minmax(0, 1fr); gap: 12px; padding: 14px 16px; }
  .row__marks { grid-column: 2; flex-direction: row; justify-content: flex-start; }
  .rows--cards { grid-template-columns: 1fr; }
  .rows--cards > .row:nth-child(odd of .row) { border-right: 0; }
  .listhead, .applied, .pager, .mapbox { padding-inline: 16px; }
  .links__row { grid-template-columns: 1fr; gap: 4px; }
  .products, .products--4, .ind-grid, .plate__grid, .plans, .paywall ul, .radio-cards, .form__row { grid-template-columns: 1fr; }
  .plate__grid > div { border-right: 0 !important; border-bottom: 1px solid var(--plate-line) !important; }
  .plate__grid > div:last-child { border-bottom: 0 !important; }
  .plan + .plan { border-left: 0; border-top: 1px solid var(--rule); }
  .gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .profile__top { grid-template-columns: auto minmax(0, 1fr); padding: 16px; gap: 14px; }
  .ptabs { padding-inline: 16px; gap: 16px; }
  .req > div { grid-template-columns: 1fr; gap: 2px; }
  .finder__grid { grid-template-columns: 1fr; }
  .finder__foot .btn { width: 100%; margin-left: 0; }
  .demand { grid-template-columns: 1fr; }
  .demand__side { align-items: stretch; text-align: left; }
  .cta-band { grid-template-columns: 1fr; padding: 22px; }
  .cta-band > div + div { border-left: 0; padding-left: 0; border-top: 1px solid var(--plate-line); padding-top: 20px; }
  .msg-layout { grid-template-columns: 1fr; }
  .threads { border-right: 0; border-bottom: 1px solid var(--rule); }
  .cab-nav { position: static; display: flex; overflow-x: auto; gap: 4px; }
  .cab-nav__who { display: none; }
  .cab-nav button { width: auto; white-space: nowrap; }
  .paywall { grid-template-columns: 1fr; }
  .footer__cols { grid-template-columns: 1fr 1fr; }
  .fin-chart__plot, .fin-chart__years { gap: 6px; padding-inline: 4px; }
  .fin-chart__bar span { font-size: 10px; }
  .panel__pad { padding: 18px 16px; }
  .panel__head { padding-inline: 16px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }

/* ---------- Платный доступ: гость / «Закупщик Про» (в макете переключается кнопками) ---------- */
.paid-only { display: none; }
html.is-paid .paid-only { display: block; }
html.is-paid .free-only { display: none; }
.fin-chart__bar { height: var(--h); }
html:not(.is-paid) .fin-chart__bar.lockable { height: 34%; background: repeating-linear-gradient(135deg, var(--steel-2) 0 6px, #cfd6e0 6px 12px); }
html:not(.is-paid) .fin-chart__bar.lockable span { display: none; }
html:not(.is-paid) td.lockable { color: transparent; text-shadow: 0 0 7px rgba(13, 27, 54, .45); user-select: none; }

/* ---------- Подсказки поиска ---------- */
.suggest { position: absolute; left: 0; top: calc(100% + 4px); width: min(560px, 92vw); z-index: 20; box-shadow: var(--lift); overflow: hidden; }
.suggest__group { font-family: var(--f-display); font-size: 11.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .08em; color: var(--ink-3); padding: 10px 14px 4px; }
.suggest a { display: flex; justify-content: space-between; gap: 12px; padding: 8px 14px; color: var(--ink); font-size: 14.5px; }
.suggest a:hover { background: var(--steel); text-decoration: none; }
.suggest a span { color: var(--ink-3); font-size: 13px; white-space: nowrap; }

/* Колонки сеток не должны раздвигать страницу длинным содержимым */
.catalog > *, .cab > *, .layout > *, .split > *, .promo-grid > *, .pane, .panel { min-width: 0; }
.panel > .tbl, .panel > table { display: table; }
@media (max-width: 760px) { .panel > .tbl, .panel > table { display: block; overflow-x: auto; } }
@media (max-width: 760px) {
  .header__actions { display: none; }
  .tbl th, .tbl td { padding-inline: 10px; }
}

/* ---------- Итерация 4.1: телефон по кнопке, режимы карточки, прилипающий баннер, продвижение ---------- */
.crumbs-row { display: flex; justify-content: space-between; align-items: center; gap: 8px 16px; flex-wrap: wrap; }
.crumbs-row .crumbs { padding-bottom: 10px; }
.phone { display: inline-flex; align-items: center; gap: 8px; flex-wrap: wrap; font-family: var(--f-data); font-weight: 500; color: var(--ink); }
.phone.big { font-size: 17px; }
.phone.profile__phone { font-size: 20px; }
.phone__hide { color: var(--ink-3); letter-spacing: .05em; }
.phone__show { font-family: var(--f-body); font-size: 13px; font-weight: 600; color: var(--blue); background: var(--blue-wash); border: 0; border-radius: 3px; padding: 4px 8px; cursor: pointer; }
.phone__show:hover { background: #d6e4fb; }
.phone.is-shown .phone__show { display: none; }
.free-card-only { display: flex; flex-direction: column; gap: 16px; }
html.is-premium .free-card-only { display: none; }
.premium-only { display: none; }
html.is-premium .premium-only { display: flex; }
.side__sticky { position: sticky; top: calc(80px + env(safe-area-inset-top, 0px)); }
.radio-list { display: flex; flex-direction: column; }
.place.is-full { opacity: .55; }
.included ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.included li { display: grid; grid-template-columns: 18px minmax(0, 1fr) auto; gap: 10px; align-items: baseline; padding: 8px 0; border-bottom: 1px solid var(--steel-2); font-size: 14px; }
.included li:last-child { border-bottom: 0; }
.included li .icon { color: var(--ok); width: 15px; height: 15px; align-self: center; }
.included li .data { font-size: 12px; color: var(--ink-3); text-align: right; }
.seg--wrap { flex-wrap: wrap; height: auto; }
.seg--wrap button { padding: 8px 10px; }
.total small { display: block; font-size: 12px; font-weight: 400; }
#reg-list { max-height: 330px; overflow: auto; }
@media (max-width: 1100px) { .side__sticky { position: static; } }
.profile__service { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 13px; }
.profile__service a { color: var(--ink-2); display: inline-flex; align-items: center; gap: 5px; }
.profile__service a:hover { color: var(--blue); }
.profile__service .icon { width: 14px; height: 14px; }

/* ---------- Итерация 5: визуальная полировка ----------
   Моноширинный шрифт — только для кодов (ИНН, ОГРН, ОКВЭД) и шильдика; цифры в списках и таблицах — Golos с табличными цифрами.
   Заглушки логотипов и фото — цветные монограммы и значки, а не пустые рамки. Первый экран главной — тёмный, со «столбиками» логотипа. */
:root { --shadow: 0 1px 2px rgba(13, 27, 54, .05); --shadow-hover: 0 2px 4px rgba(13, 27, 54, .05), 0 10px 28px rgba(13, 27, 54, .10); --line: #dde3eb; }

/* Цифры без моноширинного шрифта */
.row__facts, .mark, .links__items a b, .ind__title b, .finder__tabs b, .news time, .due, .demand__qty, .prod__price,
.tile b, .tile .delta, .tbl td.n, .plan__price, .pager a, .pager span, .ptabs b, .okved-list b, .total b, .summary .kv dd,
.bubble time, .thread b time, .fin th, .fin td, .fin-chart__axis, .fin-chart__years, .fin-chart__bar span, .phone, .contact .big,
.paywall__price, .score__num, .risk__val, .place .data, .included li .data, .paymethods span, .spark text {
  font-family: var(--f-body); font-variant-numeric: tabular-nums; }
.tile b { font-family: var(--f-display); font-size: 32px; font-weight: 600; letter-spacing: -.01em; }
.plan__price { font-family: var(--f-display); font-size: 38px; font-weight: 600; letter-spacing: -.01em; }
.total b { font-family: var(--f-display); font-size: 28px; font-weight: 600; }
.score__num { font-family: var(--f-display); font-weight: 600; }
.phone.profile__phone { font-size: 21px; font-weight: 600; letter-spacing: .01em; }
.row__facts { font-size: 13px; color: var(--ink-2); }
.row__facts span + span::before { width: 3px; height: 3px; border-radius: 50%; background: var(--ink-3); margin: 0 9px; vertical-align: 3px; }
.ind__title b, .links__items a b, .okved-list b, .finder__tabs button b, .ptabs button b {
  font-family: var(--f-body); font-variant-numeric: tabular-nums; font-size: 12.5px; font-weight: 500; }
.news time { font-size: 13px; font-weight: 500; }

/* Оттенки для монограмм, значков отраслей и заглушек товаров */
.tint-1 { --tint: #0058d6; --tint-wash: #e8f0fd; }
.tint-2 { --tint: #0f7a70; --tint-wash: #e0f3f0; }
.tint-3 { --tint: #a35c00; --tint-wash: #fcf0dc; }
.tint-4 { --tint: #5b3fc4; --tint-wash: #eeeafb; }
.tint-5 { --tint: #c0262a; --tint-wash: #fdeaea; }
.tint-6 { --tint: #3d4d6b; --tint-wash: #e7ebf2; }
.tint-7 { --tint: #157a46; --tint-wash: #e3f3ea; }

/* Логотип / монограмма */

/* Заглушки товаров и фото */
.prod__img { background: linear-gradient(135deg, var(--tint-wash, var(--steel)), #f7f9fc); color: var(--tint, #9fb0cc); position: relative; }
.prod__img .icon { width: 44px; height: 44px; stroke-width: 1.2; opacity: .55; }
.prod { border-color: var(--steel-2); box-shadow: var(--shadow); transition: box-shadow .15s, transform .15s, border-color .15s; }
.prod:hover { border-color: var(--rule); box-shadow: var(--shadow-hover); transform: translateY(-2px); }
.prod__title { font-size: 14.5px; }
.prod__price { font-weight: 700; font-size: 15px; color: var(--ink); }
.gallery .ph { position: relative; display: flex; align-items: center; justify-content: center; color: #b3bfd0; background: linear-gradient(135deg, #e9eef5, #f4f6f9); }
.gallery .ph .icon { width: 32px; height: 32px; stroke-width: 1.3; }
.gallery .ph img { position: absolute; inset: 0; }

/* Панели: мягче, с лёгкой тенью */
.panel, .filters, .profile, .tiles, .cab-nav { border-color: var(--line); box-shadow: var(--shadow); }
.section__head h2 { font-size: 28px; }
.panel__head h2 { font-size: 23px; }

/* Строка предприятия */
.row { transition: background .12s; }
.row:hover { background: #f7f9fc; }
.row--pinned { box-shadow: inset 3px 0 0 var(--blue); background: linear-gradient(90deg, #f3f7fe, transparent 40%); }
.mark { min-width: 0; font-size: 13px; color: var(--ink-2); }

/* Реклама: тише, чтобы не перетягивала внимание в макете */
.slot { border: 1px dashed #d6dce5; background: #f8f9fb; }
.slot b { font-size: 11px; color: #9aa5b8; font-weight: 600; }
.slot code { font-size: 11px; color: #aab3c3; }

/* ---------- Главная: первый экран ---------- */
.hero { position: relative; overflow: hidden; background: radial-gradient(900px 420px at 85% -10%, #1d3566 0%, transparent 60%), var(--ink); border-bottom: 0; padding-block: 52px 40px; color: #fff; }
.hero > .container { position: relative; z-index: 1; }
.hero h1 { color: #fff; font-size: 52px; letter-spacing: -.015em; margin-bottom: 10px; }
.hero__sub { color: #b9c6dd; font-size: 18px; margin-bottom: 28px; }
.hero__art { position: absolute; right: max(16px, calc(50% - 640px)); top: 18px; width: 360px; height: auto; pointer-events: none; }
.hero__art path:nth-child(1) { opacity: .22; }
.hero__art path:nth-child(2) { opacity: .5; }
.hero__art path:nth-child(3) { opacity: .45; }
.finder { background: var(--paper); border: 0; border-radius: 12px; box-shadow: 0 20px 50px rgba(0, 0, 0, .28); color: var(--ink); }
.finder__tabs { padding-inline: 12px; border-bottom-color: var(--steel-2); }
.finder__tabs button { padding: 15px 14px 13px; font-size: 15px; }
.finder__grid { padding: 18px 20px 8px; gap: 14px; }
.finder__foot { padding: 8px 20px 20px; }
.finder__toggle { display: none; background: none; border: 0; padding: 0; font: inherit; font-size: 14px; font-weight: 600; color: var(--blue); cursor: pointer; align-items: center; gap: 6px; }
.hero__popular { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 20px; font-size: 13.5px; }
.hero__popular span { color: #8fa0bf; margin-right: 4px; }
.hero__popular a { color: #e3e9f4; border: 1px solid rgba(255, 255, 255, .18); border-radius: 999px; padding: 5px 12px; }
.hero__popular a:hover { background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .35); color: #fff; text-decoration: none; }

/* Отрасли со значками */
.ind-grid { border: 0; gap: 12px; background: none; overflow: visible; border-radius: 0; }
.ind { flex-direction: row; gap: 14px; border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--paper); box-shadow: var(--shadow); transition: box-shadow .15s, border-color .15s, transform .15s; padding: 18px; }
.ind:hover { box-shadow: var(--shadow-hover); border-color: var(--rule); transform: translateY(-2px); }
.ind__body { min-width: 0; flex: 1; display: flex; flex-direction: column; gap: 5px; }
.ind__title b { white-space: nowrap; }
.ind__title a:hover { color: var(--blue); text-decoration: none; }

/* Тёмная полоса с призывами */
.cta-band { background: radial-gradient(700px 300px at 100% 0%, #1d3566, transparent 60%), var(--ink); border-radius: 12px; padding: 34px 36px; }
.cta-band h3 { font-size: 26px; }

/* ---------- Карточка предприятия ---------- */
.profile__facts { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.profile__facts > * { display: inline-flex; align-items: center; gap: 7px; font-size: 13.5px; color: var(--ink-2); background: var(--steel); border-radius: 999px; padding: 6px 12px 6px 10px; }
.profile__facts a:hover { background: var(--blue-wash); color: var(--blue-ink); text-decoration: none; }
.profile__facts .icon { width: 15px; height: 15px; color: var(--blue); }
.profile__facts b { color: var(--ink); font-weight: 700; }
.profile h1 { font-size: 42px; letter-spacing: -.01em; }
.plate { border-radius: 12px; }

/* ---------- Тарифы ---------- */
.plans { gap: 16px; background: none; border: 0; box-shadow: none; align-items: stretch; }
.plan { background: var(--paper); border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow); position: relative; padding: 28px 24px 24px; }
.plans .plan + .plan { border: 1px solid var(--line); }
.plans .plan.plan--accent { border: 2px solid var(--blue); }
.plan--accent { box-shadow: 0 16px 40px rgba(0, 88, 214, .16); background: linear-gradient(180deg, #f4f8ff, var(--paper) 45%); }
.plan__badge { position: absolute; top: -12px; left: 22px; background: var(--blue); color: #fff; font-size: 12px; font-weight: 700; letter-spacing: .02em; padding: 5px 10px; border-radius: 999px; }
.plan .label { font-size: 13px; color: var(--ink-2); }
.signup-wrap { display: grid; grid-template-columns: minmax(0, 620px) minmax(0, 1fr); gap: 40px; margin-top: 32px; align-items: start; }
.signup-side { padding: 8px 4px; }
.signup-side h3 { font-size: 22px; margin-bottom: 16px; }
.steps { list-style: none; margin: 0; padding: 0; counter-reset: st; display: flex; flex-direction: column; gap: 18px; }
.steps li { counter-increment: st; display: grid; grid-template-columns: 36px 1fr; gap: 2px 14px; }
.steps li::before { content: counter(st); grid-row: span 2; width: 36px; height: 36px; border-radius: 50%; background: var(--blue-wash); color: var(--blue-ink); font-family: var(--f-display); font-weight: 700; font-size: 17px; display: flex; align-items: center; justify-content: center; }
.steps b { font-size: 15.5px; }
.steps span { font-size: 14px; color: var(--ink-2); }
.signup-side__note { display: flex; gap: 10px; margin-top: 24px; padding: 14px 16px; background: var(--ok-wash); border-radius: var(--r-lg); font-size: 13.5px; color: #24563c; }
.signup-side__note .icon { color: var(--ok); margin-top: 2px; }

/* ---------- Кабинет ---------- */
.tile { padding: 18px 20px; }

/* ---------- Адаптив итерации 5 ---------- */
@media (max-width: 1100px) {
  .hero__art { width: 260px; opacity: .6; }
  .ind-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .signup-wrap { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .hero { padding-block: 32px 28px; }
  .hero h1 { font-size: 32px; }
  .hero__sub { font-size: 15.5px; margin-bottom: 20px; }
  .hero__art { width: 180px; top: 8px; right: -50px; opacity: .45; }
  .finder__more { display: none !important; }
  .finder.is-more .finder__more { display: flex !important; }
  .finder__toggle { display: inline-flex; }
  .finder__grid { padding: 14px 14px 6px; gap: 12px; }
  .finder__foot { padding: 6px 14px 14px; gap: 14px; }
  .hero__popular { margin-top: 16px; }
  .ind-grid { grid-template-columns: 1fr; gap: 8px; }
  .ind { padding: 14px; }
  .plans { gap: 22px; }
  .profile h1 { font-size: 30px; }
  .profile__facts > * { font-size: 12.5px; }
  .tile b { font-size: 26px; }
}
.finder__tabs button, .finder__tabs button b { white-space: nowrap; }
@media (max-width: 760px) { .finder__tabs button { padding-inline: 10px; font-size: 14px; } }

/* Закупки: прямые контакты закупщика (решение 08.11) */
.demand__contacts { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; width: 100%; padding: 10px 12px; background: var(--ok-wash); border-radius: var(--r); font-size: 13.5px; color: var(--ink); }
.demand__contacts span { font-weight: 600; font-variant-numeric: tabular-nums; }
.demand__contacts small { color: var(--ink-3); font-size: 12px; margin-top: 4px; }
.contact-pick { display: flex; flex-direction: column; gap: 12px; margin-top: 10px; padding: 14px; background: var(--steel); border-radius: var(--r); }
@media (max-width: 760px) { .demand__contacts { align-items: flex-start; } }

/* ---------- Этап А1: товар, каталог продукции, страница закупки, кабинет закупщика ---------- */
/* Выдача товаров */
.ptiles { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; padding: 18px 20px; }
.ptiles__ad { grid-column: 1 / -1; }
.prod__maker { font-size: 12.5px; color: var(--ink-3); margin-top: 2px; }
.prod__body .prod__price { margin-top: 6px; padding-top: 0; }
.prod--more { background: var(--steel); border-style: dashed; justify-content: center; }
.prod--more:hover { background: var(--blue-wash); }
.prod__more { display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 4px; padding: 24px 16px; flex: 1; }
.prod__more b { font-family: var(--f-display); font-size: 34px; font-weight: 600; color: var(--blue-ink); line-height: 1; }
.prod__more span { font-weight: 600; }
.prod__more small { font-size: 12.5px; color: var(--ink-3); }
.okved-list--plain span { white-space: normal; }

/* Карточка товара */
.pitem { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); gap: 32px; padding: 24px; }
.pgal__main { aspect-ratio: 4 / 3; border-radius: var(--r-lg); background: linear-gradient(135deg, var(--tint-wash), #f7f9fc); color: var(--tint); display: flex; flex-direction: column; gap: 8px; align-items: center; justify-content: center; font-size: 13px; }
.pgal__main .icon { width: 72px; height: 72px; stroke-width: 1; opacity: .5; }
.pgal__main span { color: var(--ink-3); }
.pgal__thumbs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-top: 8px; }
.pgal__thumb { aspect-ratio: 4 / 3; border: 1px solid var(--steel-2); border-radius: var(--r); background: var(--tint-wash); color: var(--tint); display: flex; align-items: center; justify-content: center; cursor: pointer; padding: 0; }
.pgal__thumb .icon { width: 22px; height: 22px; opacity: .5; }
.pgal__thumb.is-active { border-color: var(--blue); box-shadow: inset 0 0 0 1px var(--blue); }
.pitem__info h1 { font-size: 36px; margin-bottom: 14px; }
.pmaker { display: flex; align-items: center; gap: 12px; color: var(--ink); padding: 10px 12px; border: 1px solid var(--steel-2); border-radius: var(--r-lg); }
.pmaker:hover { border-color: var(--rule); background: #f7f9fc; text-decoration: none; color: var(--ink); }
.pmaker > span:nth-child(2) { flex: 1; min-width: 0; }
.pmaker b { display: block; font-family: var(--f-display); font-size: 17px; font-weight: 600; }
.pmaker small { color: var(--ink-2); font-size: 13px; }
.pprice { margin: 20px 0 16px; }
.pprice__val { font-family: var(--f-display); font-size: 40px; font-weight: 600; letter-spacing: -.01em; }
.pprice__unit { margin-left: 8px; color: var(--ink-2); }
.pprice small { display: block; color: var(--ink-3); font-size: 13px; margin-top: 2px; }
.pitem__actions { display: flex; gap: 10px; flex-wrap: wrap; }
.pitem__phone { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 16px; }
.pitem__phone > .icon { color: var(--ink-3); }
.pitem__phone small { color: var(--ink-3); font-size: 12.5px; }
.pkey { display: grid; grid-template-columns: 1fr 1fr; gap: 0 20px; margin: 20px 0 8px; border-top: 1px solid var(--steel-2); }
.pkey > div { display: flex; justify-content: space-between; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--steel-2); font-size: 14px; }
.pkey dt { color: var(--ink-2); }
.pkey dd { margin: 0; font-weight: 600; text-align: right; }
.layout--product { grid-template-columns: minmax(0, 1fr); }
.layout--product > .pane { gap: 20px; }
.spec { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.spec th, .spec td { text-align: left; padding: 10px 0; border-bottom: 1px solid var(--steel-2); vertical-align: top; }
.spec th { font-weight: 400; color: var(--ink-2); width: 40%; padding-right: 16px; }
.spec td { font-weight: 500; }
.maker { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 18px; }
.maker h3 { margin: 0; font-size: 20px; }
.maker h3 a { color: var(--ink); }
.pitem__foot { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: 14px; font-size: 13px; color: var(--ink-3); }

/* Страница закупки */
.dlayout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 24px; align-items: start; }
.dside { display: flex; flex-direction: column; gap: 16px; position: sticky; top: calc(80px + env(safe-area-inset-top, 0px)); }
.dstatus { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; margin-bottom: 12px; }
.dtitle { font-size: 32px; margin-bottom: 18px; }
.dfacts { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0 0 22px; border: 1px solid var(--steel-2); border-radius: var(--r-lg); }
.dfacts > div { padding: 12px 16px; min-width: 0; }
.dfacts > div + div { border-left: 1px solid var(--steel-2); }
.dfacts dt { font-size: 12.5px; color: var(--ink-3); }
.dfacts dd { margin: 2px 0 0; font-weight: 600; font-size: 15px; }
.pane h3 { font-size: 18px; margin-top: 4px; }
.files { display: flex; flex-direction: column; gap: 6px; }
.files a { display: inline-flex; align-items: center; gap: 8px; font-size: 14.5px; }
.files small { color: var(--ink-3); }
.buyer { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 12px; margin: 10px 0 16px; }
.buyer b { display: block; font-size: 15px; }
.buyer__ok { display: inline-flex; align-items: center; gap: 5px; font-size: 13px; color: var(--ok); }
.buyer__ok .icon { width: 14px; height: 14px; }
.buyer small { display: block; font-size: 12.5px; color: var(--ink-3); }
.dcta { display: flex; flex-direction: column; gap: 8px; }
.dcta .demand__contacts { align-items: flex-start; }
.dlimit { font-size: 12.5px; color: var(--ink-3); margin: 4px 0 0; }
.dlimit b { color: var(--ink); }
.btn:disabled { opacity: .45; cursor: not-allowed; }
.notice { display: flex; flex-direction: column; gap: 4px; padding: 12px 14px; border-radius: var(--r); background: var(--steel); font-size: 13.5px; }
.notice b { font-size: 14px; }
.notice span { color: var(--ink-2); }
.notice--warn { background: var(--warn-wash); }
.notice--warn b { color: var(--warn); }
.notice--ok { background: var(--ok-wash); }
.notice--ok b { color: var(--ok); }
.timeline { list-style: none; margin: 0; padding: 0 0 0 14px; border-left: 2px solid var(--steel-2); display: flex; flex-direction: column; gap: 10px; }
.timeline li { position: relative; color: var(--ink-2); }
.timeline li::before { content: ""; position: absolute; left: -20px; top: 5px; width: 10px; height: 10px; border-radius: 50%; background: var(--paper); border: 2px solid var(--rule); }
.timeline li.is-done::before { background: var(--ok); border-color: var(--ok); }
.timeline b { display: block; color: var(--ink); }

/* Кабинет закупщика */
.cab-head { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; flex-wrap: wrap; }
.cab-head h1 { margin: 2px 0 0; }
.usage { display: flex; justify-content: space-between; gap: 8px 16px; flex-wrap: wrap; padding: 10px 14px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r); font-size: 13.5px; color: var(--ink-2); }
.usage b { color: var(--ink); }
.offers td { vertical-align: middle; }
.offers tr.is-best td { background: #f2faf5; }
.offers .tag { margin-left: 6px; }
.offer-co { display: flex; align-items: center; gap: 10px; min-width: 200px; }
.offer-co a { color: var(--ink); }
.offer-co small { display: block; color: var(--ink-3); font-size: 12.5px; }
.offer-act { white-space: nowrap; text-align: right; }
.offer-act .btn + .btn { margin-left: 6px; }
.score-chip { font-size: 13px; color: var(--ink-2); white-space: nowrap; }
.score-chip b { font-size: 15px; color: var(--ink); }
html[data-state="free"] .lockable-chip { filter: blur(4px); user-select: none; }
.plan--inline { display: grid; grid-template-columns: 220px minmax(0, 1fr) auto; gap: 20px; align-items: center; padding: 26px 24px 22px; }
.plan--inline ul { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 20px; }

@media (max-width: 1100px) {
  .dlayout { grid-template-columns: 1fr; }
  .dside { position: static; }
  .plan--inline { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .ptiles { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 14px; }
  .pitem { grid-template-columns: 1fr; padding: 16px; gap: 18px; }
  .pitem__info h1 { font-size: 26px; }
  .pprice__val { font-size: 32px; }
  .pkey { grid-template-columns: 1fr; }
  .pitem__actions .btn { flex: 1; }
  .maker { grid-template-columns: auto minmax(0, 1fr); gap: 12px; }
  .dtitle { font-size: 24px; }
  .dfacts { grid-template-columns: 1fr 1fr; }
  .dfacts > div:nth-child(3) { border-left: 0; }
  .dfacts > div:nth-child(n+3) { border-top: 1px solid var(--steel-2); }
  .plan--inline ul { grid-template-columns: 1fr; }
}
.panel__head .select { height: 34px; padding-block: 5px; font-size: 13.5px; }
.offers td:nth-child(3) { white-space: nowrap; }
.dlayout { grid-template-areas: "main side" "similar side"; }
.dmain { grid-area: main; }
.dside { grid-area: side; }
.dsimilar { grid-area: similar; }
@media (max-width: 1100px) { .dlayout { grid-template-areas: "main" "side" "similar"; } }
.viewas .seg { flex-wrap: wrap; height: auto; }
@media (max-width: 760px) { .pmaker .tag { display: none; } .viewas { flex-wrap: wrap; } }

/* ---------- Решения 08.11 (32–36): закупка и предложение — страницы с шагами ---------- */
.wlayout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 24px; align-items: start; }
.wizard { display: flex; flex-direction: column; gap: 16px; scroll-margin-top: 90px; }
.wsteps { list-style: none; margin: 0; padding: 0; display: flex; gap: 6px; counter-reset: none; }
.wsteps li { flex: 1; display: flex; align-items: center; gap: 10px; padding: 12px 14px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r); font-weight: 600; font-size: 14px; color: var(--ink-3); position: relative; }
.wsteps li span { width: 26px; height: 26px; flex: none; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: var(--steel); color: var(--ink-3); font-family: var(--f-display); font-size: 14px; }
.wsteps li.is-active { color: var(--ink); border-color: var(--blue); box-shadow: inset 0 -3px 0 var(--blue); }
.wsteps li.is-active span { background: var(--blue); color: #fff; }
.wsteps li.is-done { color: var(--ink-2); cursor: pointer; }
.wsteps li.is-done span { background: var(--ok-wash); color: var(--ok); }
.wsteps li.is-done:hover { border-color: var(--rule); }
.wstep .form { margin-top: 0; }
.wnav { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-top: 10px; border-top: 1px solid var(--steel-2); margin-top: 6px; }
.positions { width: 100%; border-collapse: collapse; }
.positions th { font-size: 12.5px; font-weight: 500; color: var(--ink-3); text-align: left; padding: 0 6px 6px 0; }
.positions td { padding: 0 6px 8px 0; vertical-align: middle; }
.positions td:nth-child(2) { width: 110px; }
.positions td:nth-child(3) { width: 110px; }
.positions td:last-child { width: 36px; padding-right: 0; }
.positions--offer td:nth-child(2), .positions--offer td:nth-child(4) { width: auto; white-space: nowrap; }
.positions--offer td:nth-child(3) { width: 150px; }
.positions--offer tbody td { border-bottom: 1px solid var(--steel-2); padding: 8px 10px 8px 0; }
.positions--offer tfoot td { padding: 12px 10px 0 0; font-weight: 700; font-size: 16px; }
.positions .n { text-align: right; }
.input--num { text-align: right; font-variant-numeric: tabular-nums; }
.icon-btn { width: 36px; height: 36px; border: 1px solid var(--rule); border-radius: var(--r); background: var(--paper); color: var(--ink-3); font-size: 18px; cursor: pointer; }
.icon-btn:hover { color: var(--red); border-color: #f2b9ba; }
.hint-ok { display: flex; align-items: center; gap: 6px; margin: -6px 0 0; font-size: 13px; color: var(--ok); }
.hint-ok .icon { width: 14px; height: 14px; }
.preview { border: 1px dashed var(--rule); border-radius: var(--r-lg); padding: 18px; background: #fbfcfd; }
.wdone .panel__pad { text-align: left; }
.wdone__icon { width: 52px; height: 52px; border-radius: 50%; background: var(--ok-wash); color: var(--ok); display: flex; align-items: center; justify-content: center; margin-bottom: 12px; }
.wdone__icon .icon { width: 26px; height: 26px; stroke-width: 2.2; }
.wdone .steps { margin: 18px 0 20px; }
.wside { position: sticky; top: calc(80px + env(safe-area-inset-top, 0px)); display: flex; flex-direction: column; gap: 16px; }
.wsaved { display: inline-flex; align-items: center; gap: 6px; color: var(--ok); font-weight: 600; }
.wsaved .icon { width: 14px; height: 14px; }
.tips { margin: 0; padding-left: 18px; display: flex; flex-direction: column; gap: 6px; color: var(--ink-2); }
.gate__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin-top: 8px; }
.gate__cols > form + form { border-left: 1px solid var(--steel-2); padding-left: 28px; }
.gate h3 { margin: 0; font-size: 18px; }
@media (max-width: 1100px) { .wlayout { grid-template-columns: 1fr; } .wside { position: static; } }
@media (max-width: 760px) {
  .wsteps li { padding: 10px 8px; font-size: 0; justify-content: center; }
  .wsteps li span { font-size: 14px; }
  .wsteps li.is-active { font-size: 13px; flex: 3; }
  .positions thead { display: none; }
  .positions tr { display: grid; grid-template-columns: 1fr 1fr 36px; gap: 6px; padding-bottom: 10px; }
  .positions td { padding: 0; width: auto !important; }
  .positions td:first-child { grid-column: 1 / -1; }
  .positions--offer tr { grid-template-columns: 1fr 1fr; }
  .positions--offer tbody td { border: 0; }
  .gate__cols { grid-template-columns: 1fr; }
  .gate__cols > form + form { border-left: 0; padding-left: 0; border-top: 1px solid var(--steel-2); padding-top: 20px; }
  .wnav .btn--lg { flex: 1; }
}
.viewas .seg button { min-height: 32px; }
.field > .seg { align-self: flex-start; }
.wlayout.is-done .wside { display: none; }
.wlayout.is-done { grid-template-columns: minmax(0, 760px); }

/* ---------- Этап А1, приоритет 2: вход, добавление компании, поиск, кабинет поставщика ---------- */
.auth { display: grid; grid-template-columns: minmax(0, 560px) minmax(0, 1fr); gap: 40px; align-items: start; padding-top: 8px; }
.auth__tabs { display: flex; border-bottom: 1px solid var(--steel-2); padding: 0 12px; }
.auth__tabs button { background: none; border: 0; border-bottom: 2px solid transparent; padding: 15px 12px 13px; font: inherit; font-weight: 600; font-size: 15px; color: var(--ink-2); cursor: pointer; margin-bottom: -1px; }
.auth__tabs button.is-active { color: var(--ink); border-bottom-color: var(--blue); }
.auth__side { padding-top: 12px; }
.auth__side h3 { font-size: 22px; }
.auth__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 16px; }
.auth__list li { display: grid; grid-template-columns: 40px 1fr; gap: 12px; color: var(--ink-2); font-size: 14.5px; }
.auth__list .icon { width: 40px; height: 40px; padding: 9px; border-radius: 10px; background: var(--blue-wash); color: var(--blue); }
.auth__list b { color: var(--ink); }
.dd-suggest { border: 1px solid var(--rule); border-radius: var(--r); box-shadow: var(--lift); background: var(--paper); margin-top: 4px; overflow: hidden; }
.dd-suggest a { display: block; padding: 9px 12px; color: var(--ink); border-bottom: 1px solid var(--steel-2); }
.dd-suggest a:last-child { border-bottom: 0; }
.dd-suggest a:hover { background: var(--steel); text-decoration: none; }
.dd-suggest b { display: block; font-size: 14.5px; }
.dd-suggest span { font-size: 12.5px; color: var(--ink-3); }
.dd-suggest em { font-style: normal; color: var(--ok); font-weight: 600; }
.dd-suggest--static { box-shadow: none; }
.found { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px; align-items: center; padding: 14px; border: 1px solid #bfe3cd; background: var(--ok-wash); border-radius: var(--r-lg); color: var(--ink); }
a.found:hover { text-decoration: none; border-color: var(--ok); }
.found b { display: block; font-size: 15.5px; }
.found span { display: block; font-size: 13.5px; color: var(--ink-2); }
.found a { font-size: 13.5px; font-weight: 600; }
.found--new { border-color: var(--line); background: var(--steel); }
.found__icon { width: 56px; height: 56px; border-radius: 10px; background: var(--paper); color: var(--blue); display: flex; align-items: center; justify-content: center; }
.claim-ways { gap: 8px; }
.input--code { font-family: var(--f-data); font-size: 22px; letter-spacing: .2em; text-align: center; height: 52px; }
.req--compact > div { grid-template-columns: 170px minmax(0, 1fr); padding: 7px 0; font-size: 14px; }
.bigsearch { display: flex; gap: 10px; margin: 6px 0 18px; }
.bigsearch .input { height: 52px; font-size: 17px; }
.stabs { display: flex; gap: 6px; margin-bottom: 18px; flex-wrap: wrap; }
.stabs button { border: 1px solid var(--line); background: var(--paper); border-radius: 999px; padding: 8px 14px; font: inherit; font-weight: 600; font-size: 14px; color: var(--ink-2); cursor: pointer; }
.stabs button b { font-weight: 500; color: var(--ink-3); margin-left: 4px; }
.stabs button.is-active { background: var(--ink); border-color: var(--ink); color: #fff; }
.stabs button.is-active b { color: #b9c6dd; }
.chips { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.editor { border: 1px solid var(--rule); border-radius: var(--r); overflow: hidden; }
.editor__bar { display: flex; gap: 2px; padding: 4px; background: var(--steel); border-bottom: 1px solid var(--rule); }
.editor__bar button { background: none; border: 0; padding: 5px 10px; border-radius: 4px; font: inherit; font-size: 13px; cursor: pointer; color: var(--ink-2); }
.editor__bar button:hover { background: var(--paper); }
.editor textarea { border: 0; border-radius: 0; }
.media-row { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 20px; align-items: start; }
.ph-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 8px; }
.ph-tile { position: relative; aspect-ratio: 4 / 3; border-radius: var(--r); background: var(--tint-wash); color: var(--tint); display: flex; align-items: center; justify-content: center; }
.ph-tile .icon { width: 24px; height: 24px; opacity: .5; }
.ph-tile button { position: absolute; top: 4px; right: 4px; width: 22px; height: 22px; border-radius: 50%; border: 0; background: rgba(13, 27, 54, .6); color: #fff; cursor: pointer; line-height: 1; }
.ph-add { aspect-ratio: 4 / 3; border: 1px dashed var(--rule); border-radius: var(--r); background: var(--paper); color: var(--blue); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.ph-add:hover { border-color: var(--blue); background: var(--blue-wash); }
.savebar { position: sticky; bottom: 0; display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 16px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: 0 -6px 20px rgba(13, 27, 54, .08); }
.xls__steps { margin: 0; padding-left: 20px; display: flex; flex-direction: column; gap: 14px; }
.xls__steps b { display: block; }
.xls__steps span { font-size: 13.5px; color: var(--ink-2); }
.xls__result { display: flex; gap: 6px; margin: 8px 0; }
.form__row--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.price-edit { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.price-edit .input { width: 140px; }
.price-edit .select { width: auto; }
.invite { display: flex; gap: 8px; padding: 16px 24px 8px; flex-wrap: wrap; }
.invite .input { max-width: 300px; }
.invite .select { width: auto; }
.notif td, .notif th { vertical-align: middle; }
.panel__head .input { height: 36px; }
@media (max-width: 1100px) { .auth { grid-template-columns: 1fr; } }
@media (max-width: 760px) {
  .bigsearch .btn { padding-inline: 14px; }
  .media-row { grid-template-columns: 1fr; }
  .form__row--3 { grid-template-columns: 1fr; }
  .req--compact > div { grid-template-columns: 1fr; }
  .savebar { flex-direction: column; align-items: stretch; }
}
.positions--pairs td:nth-child(2) { width: 45%; }
.savebar { position: static; box-shadow: none; }

/* ---------- Этап А1, приоритет 3: карты сайта, холдинги, новости, служебные ---------- */
.footer__cols { grid-template-columns: 1.4fr repeat(5, 1fr); gap: 24px; }
@media (max-width: 1100px) { .footer__cols { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 760px) { .footer__cols { grid-template-columns: 1fr 1fr; } }
.smap { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: 24px; align-items: start; }
.smap__nav { padding: 12px; display: flex; flex-direction: column; position: sticky; top: calc(80px + env(safe-area-inset-top, 0px)); }
.smap__nav .label { padding: 4px 10px 8px; }
.smap__nav a { padding: 8px 10px; border-radius: var(--r); color: var(--ink-2); font-weight: 500; font-size: 14.5px; }
.smap__nav a:hover { background: var(--steel); color: var(--ink); text-decoration: none; }
.smap__nav a.is-active { background: var(--ink); color: #fff; }
.smtop { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.smtop a { background: var(--paper); border: 1px solid var(--line); border-radius: 999px; padding: 8px 16px; font-weight: 600; color: var(--ink); }
.smtop a b { font-weight: 500; color: var(--ink-3); margin-left: 6px; font-size: 13px; }
.smtop a:hover { border-color: var(--blue); text-decoration: none; }
.smgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; }
.smcard { background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-lg); padding: 16px 18px; box-shadow: var(--shadow); }
.smcard h3 { display: flex; align-items: center; gap: 10px; font-size: 17px; margin: 0 0 10px; }
.smcard h3 a { color: var(--ink); flex: 1; }
.smcard h3 > b { font-family: var(--f-body); font-weight: 500; font-size: 13px; color: var(--ink-3); }
.plain { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; font-size: 14px; }
.plain li, .cols li { display: flex; justify-content: space-between; gap: 10px; }
.plain a, .cols a { color: var(--ink); }
.plain a:hover, .cols a:hover { color: var(--blue); }
.plain b, .cols b { font-weight: 500; color: var(--ink-3); font-size: 12.5px; font-variant-numeric: tabular-nums; }
.smcard details.expander { margin-top: 6px; }
.smcard details.expander summary { font-size: 13px; }
.smcard details .plain { margin-top: 6px; }
.smh { font-size: 22px; margin: 28px 0 12px; }
.cols { list-style: none; margin: 0; padding: 18px 20px; columns: 3 220px; column-gap: 32px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-lg); font-size: 14.5px; }
.cols li { break-inside: avoid; padding: 3px 0; }
.cols--names li { display: block; }
.abc { display: flex; flex-wrap: wrap; gap: 4px; margin: 0 0 16px; }
.abc a { min-width: 32px; height: 32px; display: inline-flex; align-items: center; justify-content: center; padding: 0 6px; border-radius: var(--r); background: var(--paper); border: 1px solid var(--line); color: var(--ink); font-weight: 600; font-size: 14px; }
.abc a:hover { border-color: var(--blue); color: var(--blue); text-decoration: none; }
.abc a.is-active { background: var(--ink); border-color: var(--ink); color: #fff; }
.abc span { width: 12px; }
.abc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(72px, 1fr)); gap: 8px; }
.abc-tile { display: flex; flex-direction: column; align-items: center; padding: 10px 6px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-lg); color: var(--ink); }
.abc-tile b { font-family: var(--f-display); font-size: 24px; line-height: 1.1; }
.abc-tile span { font-size: 12px; color: var(--ink-3); }
.abc-tile:hover { border-color: var(--blue); text-decoration: none; box-shadow: var(--shadow-hover); }
.hgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; }
.hcard { display: flex; flex-direction: column; gap: 6px; padding: 16px 18px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-lg); color: var(--ink); box-shadow: var(--shadow); transition: box-shadow .15s, transform .15s; }
.hcard:hover { text-decoration: none; box-shadow: var(--shadow-hover); transform: translateY(-2px); color: var(--ink); }
.hcard__head { display: flex; align-items: center; gap: 12px; }
.hcard__head b { font-family: var(--f-display); font-size: 18px; font-weight: 600; }
.hcard__n { font-size: 13px; font-weight: 600; color: var(--blue-ink); }
.hcard__d { font-size: 13.5px; color: var(--ink-2); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.hhead .panel__pad { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 20px; align-items: center; }
.nchips a { border: 1px solid var(--line); background: var(--paper); border-radius: 999px; padding: 7px 14px; font-weight: 600; font-size: 14px; color: var(--ink-2); }
.nchips a b { font-weight: 500; color: var(--ink-3); margin-left: 4px; }
.nchips a.is-active { background: var(--ink); border-color: var(--ink); color: #fff; }
.nchips a:hover { text-decoration: none; border-color: var(--blue); }
.nmeta { font-size: 13px; color: var(--ink-3); }
.nfeat { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; color: var(--ink); box-shadow: var(--shadow); margin-bottom: 16px; }
.nfeat:hover { text-decoration: none; box-shadow: var(--shadow-hover); color: var(--ink); }
.nfeat__img, .nitem__img, .article__img { background: linear-gradient(135deg, var(--tint-wash), #f7f9fc); color: var(--tint); display: flex; align-items: center; justify-content: center; }
.nfeat__img { aspect-ratio: 16 / 9; }
.nfeat__img .icon, .article__img .icon { width: 48px; height: 48px; opacity: .45; stroke-width: 1.2; }
.nfeat__body { padding: 24px; display: flex; flex-direction: column; gap: 10px; justify-content: center; }
.nfeat__body b { font-family: var(--f-display); font-size: 28px; font-weight: 600; line-height: 1.15; }
.nfeat__body > span:last-child { color: var(--ink-2); }
.nlist { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 12px; }
.nitem { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 14px; padding: 12px; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-lg); color: var(--ink); }
.nitem:hover { text-decoration: none; border-color: var(--rule); box-shadow: var(--shadow-hover); color: var(--ink); }
.nitem__img { aspect-ratio: 4 / 3; border-radius: var(--r); }
.nitem__img .icon { width: 26px; height: 26px; opacity: .45; }
.nitem b { display: block; font-size: 15px; line-height: 1.35; margin-top: 4px; }
.article { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 24px; align-items: start; }
.article__h1 { font-size: 36px; margin: 8px 0 18px; }
.article__img { aspect-ratio: 16 / 8; border-radius: var(--r-lg); margin-bottom: 20px; }
.article__text { font-size: 16.5px; line-height: 1.65; max-width: 72ch; }
.article__text h2 { font-size: 24px; margin: 26px 0 10px; }
.article__text .slot { margin: 18px 0; }
.article__side { position: sticky; top: calc(80px + env(safe-area-inset-top, 0px)); }
.author { display: flex; gap: 12px; align-items: center; margin: 18px 0 14px; padding-top: 16px; border-top: 1px solid var(--steel-2); }
.author b { display: block; }
.author span { font-size: 13px; color: var(--ink-3); }
.errpage { text-align: center; max-width: 720px; margin: 40px auto 32px; }
.errpage--left { text-align: left; margin-left: 0; }
.errpage__code { font-family: var(--f-display); font-size: 120px; font-weight: 700; line-height: 1; letter-spacing: -.03em; background: linear-gradient(90deg, #c1cad1, #0069fe 60%, #fc2124); -webkit-background-clip: text; background-clip: text; color: transparent; }
.errpage h1 { font-size: 34px; }
.errpage .links__items { gap: 6px 18px; }
.paypage { max-width: 640px; margin: 24px 0; }
.paypage h1 { font-size: 30px; }
.wdone__icon--bad { background: var(--red-wash); color: var(--red); }
.mapbar .panel__pad { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; padding: 14px 16px; }
.mapbar .select { width: auto; min-width: 200px; }
.map--big { height: 620px; border-radius: var(--r-lg); margin: 16px 0 10px; }
.static h1 { font-size: 32px; }
.static { max-width: 76ch; }
.acc-mail { display: flex; gap: 10px; align-items: center; padding: 10px 12px; background: var(--steel); border-radius: var(--r); font-size: 13.5px; color: var(--ink-2); }
.acc-mail .icon { color: var(--ink-3); flex: none; }
.input--short { min-height: 70px; }
.counter { font-variant-numeric: tabular-nums; font-weight: 600; color: var(--ink-2); }
@media (max-width: 1100px) { .article { grid-template-columns: 1fr; } .article__side { position: static; } .smap { grid-template-columns: 1fr; } .smap__nav { position: static; flex-direction: row; flex-wrap: wrap; } .smap__nav .label { display: none; } }
@media (max-width: 760px) {
  .nfeat { grid-template-columns: 1fr; }
  .nfeat__body b { font-size: 22px; }
  .nlist { grid-template-columns: 1fr; }
  .nitem { grid-template-columns: 96px minmax(0, 1fr); }
  .article__h1 { font-size: 26px; }
  .errpage__code { font-size: 84px; }
  .map--big { height: 420px; }
  .hhead .panel__pad { grid-template-columns: auto minmax(0, 1fr); }
  .cols { columns: 1; }
}
.field > label.check { font-family: var(--f-body); font-size: 14px; font-weight: 400; text-transform: none; letter-spacing: 0; color: var(--ink); }

/* /reklama — приоритетное размещение, рекламная статья (этап А, 08.11) */
.adv { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.adv .page-head { margin-bottom: 0; }
.adv__sec { display: flex; flex-direction: column; gap: 22px; padding: 24px; }
.adv__sec h3 { margin: 0 0 8px; font-size: 17px; }
.adv .plan__price { margin: 8px 0 14px; }
.adv__top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: 28px; align-items: start; }
.adv__list { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; font-size: 14.5px; }
.adv__list li { display: grid; grid-template-columns: 16px 1fr; gap: 8px; }
.adv__list li > .icon { margin-top: 3px; width: 14px; height: 14px; color: var(--ok); }
.adv__list span .icon { width: 14px; height: 14px; vertical-align: -2px; color: var(--blue); }
.adv__preview { background: var(--steel); border-radius: var(--r-lg); padding: 14px; }
.adv__preview .label { margin-bottom: 8px; display: block; }
.adv__preview .rows { background: var(--paper); border-radius: var(--r); }
.adv__prices { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; border-top: 1px solid var(--steel-2); padding-top: 20px; }
.adv__how { border-top: 1px solid var(--steel-2); padding-top: 20px; }
.adv__how .steps { margin-bottom: 14px; }
.adv__btns { display: flex; gap: 10px; flex-wrap: wrap; }
.adv__row { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 24px; align-items: center; }
.adv__side { display: flex; flex-direction: column; gap: 12px; align-items: flex-start; }
@media (max-width: 1100px) { .adv__top, .adv__prices { grid-template-columns: 1fr; } }
@media (max-width: 760px) { .adv__row { grid-template-columns: 1fr; } .adv__sec { padding: 18px 16px; } .adv__btns .btn { flex: 1 1 auto; } }
.adv .tbl td.n, .adv .tbl th.n { white-space: nowrap; }
@media (max-width: 760px) { .adv .tbl th, .adv .tbl td { padding: 9px 8px; } }

/* Логотип и значки отраслей (08.11, отзыв владельца): плашка логотипа горизонтальная 3:2 на белом, без цветной подложки;
   нет логотипа — заглушка: аббревиатура или инициалы, один спокойный цвет для всех, силуэт цеха внизу. Высота плашки — --lb-h. */
.logo-box { --lb-h: 64px; flex: none; height: var(--lb-h); width: calc(var(--lb-h) * 1.5); border-radius: 10px; display: flex; align-items: center; justify-content: center; overflow: hidden; container-type: size; position: relative; }
.logo-box--img { background: #fff; border: 1px solid var(--steel-2); padding: 7%; }
.logo-box--img img { display: block; width: 100%; height: 100%; object-fit: contain; }
.logo-box--ph { background: linear-gradient(160deg, #eaeff6 0%, #f8fafc 100%); border: 1px solid #e1e7ef; }
.logo-box--ph::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 30%; background: #5b6b84; opacity: .1;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 24' preserveAspectRatio='none'%3E%3Cpath d='M0 24V14l12-8v8l12-8v8l12-8v8h10V2h5v12h9l12-8v8l12-8v8h10V5h5v9h21v10z'/%3E%3C/svg%3E") bottom / 100% 100% no-repeat;
          mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 24' preserveAspectRatio='none'%3E%3Cpath d='M0 24V14l12-8v8l12-8v8l12-8v8h10V2h5v12h9l12-8v8l12-8v8h10V5h5v9h21v10z'/%3E%3C/svg%3E") bottom / 100% 100% no-repeat; }
.logo-box--ph span { position: relative; z-index: 1; margin-top: -8cqh; font-family: var(--f-display); font-weight: 700; font-size: 38cqh; line-height: 1; letter-spacing: .01em; color: #5b6b84; }
.logo-box--ph[data-l="3"] span { font-size: 32cqh; }
.logo-box--ph[data-l="4"] span, .logo-box--ph[data-l="5"] span { font-size: 26cqh; }
.logo-box--ph .icon { width: 42cqh; height: 42cqh; stroke-width: 1.6; }

.row .logo-box { --lb-h: 76px; }
.rows--cards .logo-box, .found .logo-box { --lb-h: 48px; }
.mini .logo-box { --lb-h: 56px; }
.profile__top .logo-box { --lb-h: 120px; }
.maker .logo-box { --lb-h: 64px; }
.media-row .logo-box { --lb-h: 96px; }
.hhead .logo-box { --lb-h: 104px; }
.buyer .logo-box, .pmaker .logo-box, .hcard__head .logo-box, .author .logo-box { --lb-h: 40px; }
.offer-co .logo-box { --lb-h: 32px; border-radius: 7px; }
.logo-box--logo-mark { padding: 16%; }
@media (max-width: 1100px) { .profile__top .logo-box { --lb-h: 100px; } }
@media (max-width: 760px) {
  .row .logo-box { --lb-h: 52px; }
  .profile__top .logo-box, .hhead .logo-box { --lb-h: 64px; }
  .maker .logo-box { --lb-h: 48px; }
}

.ind__icon { flex: none; width: 52px; height: 52px; display: block; }
.ind__icon img { display: block; width: 100%; height: 100%; }
.smcard .ind__icon { width: 38px; height: 38px; }
@media (max-width: 760px) { .ind__icon { width: 44px; height: 44px; } }
.buyer .logo-box--ph::after, .pmaker .logo-box--ph::after, .hcard__head .logo-box--ph::after, .author .logo-box--ph::after, .offer-co .logo-box--ph::after { display: none; }
.buyer .logo-box--ph span, .pmaker .logo-box--ph span, .hcard__head .logo-box--ph span, .author .logo-box--ph span, .offer-co .logo-box--ph span { margin-top: 0; }
.hcard__head .logo-box { --lb-h: 44px; }
.smcard .plain b { white-space: nowrap; }
.footer__brand .footer__mail { display: inline-block; margin-top: 12px; font-weight: 600; }
.news--flat li { padding: 10px 0; }

/* Партия 2 (08.11): значки тизера в строку и все три всегда (нулевые неактивные); сортировка как в Drupal;
   светлый блок «Закупщикам / Производителям» на главной вместо рекламы; оплата по центру; карта сайта ОКВЭД. */
.row__marks { flex-direction: row; align-items: center; gap: 14px; align-self: start; padding-top: 2px; }
.mark { min-width: 0; justify-content: flex-start; }
.mark--off { color: #b3bdcc; }
.mark--off .icon { color: #c5cedb; }
.sort { display: flex; align-items: center; gap: 6px; }
.sort label { font-size: 13px; color: var(--ink-2); white-space: nowrap; }
.sort__dir { width: 34px; height: 34px; padding: 0; justify-content: center; font-size: 16px; }
.cta-band, .cta-band--light { background: #fff; color: var(--ink); border: 1px solid var(--steel-2); box-shadow: 0 1px 2px rgba(16, 32, 64, .04); padding: 28px 32px; }
.cta-band h3 { color: var(--ink); font-size: 22px; }
.cta-band p { color: var(--ink-2); }
.cta-band > div { display: flex; flex-direction: column; align-items: flex-start; }
.cta-band > div + div { border-left: 1px solid var(--steel-2); }
.cta-band .cta-band__btns { display: flex; gap: 10px; flex-wrap: wrap; margin-top: auto; }
.cta-band .btn--secondary { background: #fff; color: var(--ink); border-color: var(--steel-2); }
.cta-band__icon { width: 44px; height: 44px; border-radius: 10px; background: var(--blue-wash, #eef3fc); color: var(--blue); display: flex; align-items: center; justify-content: center; margin-bottom: 12px; }
.cta-band__icon .icon { width: 22px; height: 22px; }
.paypage { margin: 32px auto; text-align: center; }
.paypage .wdone__icon { margin: 0 auto 14px; }
.paypage .kv { text-align: left; margin: 18px 0 6px; }
.paypage .wnav { justify-content: center !important; }
.okv-nav { display: flex; flex-wrap: wrap; gap: 6px; margin: 4px 0 22px; }
.okv-nav a { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border: 1px solid var(--steel-2); border-radius: 8px; background: #fff; font-size: 13.5px; color: var(--ink); text-decoration: none; }
.okv-nav a b { font-family: var(--f-data); color: var(--blue); }
.okv-nav a span { color: var(--ink-2); font-family: var(--f-data); font-size: 12px; }
.okv-nav a:hover { border-color: var(--blue); }
.smh--okv { display: flex; align-items: baseline; gap: 10px; scroll-margin-top: 80px; }
.smh--okv code { font-size: .8em; color: var(--blue); }
.smh--okv b { margin-left: auto; font-family: var(--f-data); font-size: 15px; color: var(--ink-2); font-weight: 500; }
.smcard h3 code { color: var(--blue); margin-right: 2px; }
.smcard .plain code { color: var(--ink-2); margin-right: 6px; font-size: 12.5px; }
.pitem__foot--specs { margin-top: 14px; }
@media (max-width: 760px) {
  .row__marks { gap: 12px; }
  .sort label { display: none; }
  .cta-band > div + div { border-left: 0; }
  .paypage { margin: 16px auto; }
}
.rows--cards .closed-sep { grid-column: 1 / -1; }
/* Шапка списка (08.11, партия 2, поправка): инструменты в одну строку с числом и прижаты вправо */
.listhead__tools { gap: 6px; margin-left: auto; justify-content: flex-end; }
.sort { gap: 4px; }
.sort label { font-size: 12.5px; }
#sort { width: 178px; padding-right: 28px; text-overflow: ellipsis; }
.listhead .view-switch button { padding-inline: 10px; }
/* Новости на главной плиткой (08.11, партия 2, поправка) */
.ntiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.ntile { display: flex; flex-direction: column; background: var(--paper); border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; color: var(--ink); box-shadow: var(--shadow); }
.ntile:hover { text-decoration: none; box-shadow: var(--shadow-hover); color: var(--ink); }
.ntile__img { aspect-ratio: 16 / 9; background: linear-gradient(135deg, var(--tint-wash), #f7f9fc); color: var(--tint); display: flex; align-items: center; justify-content: center; }
.ntile__img .icon { width: 36px; height: 36px; opacity: .45; stroke-width: 1.3; }
.ntile__body { padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 6px; }
.ntile b { font-size: 15.5px; line-height: 1.35; font-weight: 600; }
@media (max-width: 1100px) { .ntiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) { .ntiles { grid-template-columns: 1fr; gap: 12px; } .ntile { flex-direction: row; } .ntile__img { width: 110px; flex: none; aspect-ratio: 4 / 3; } .ntile__body { padding: 10px 12px; } }
.ntiles--page { margin-top: 16px; }

/* ==========================================================================
   Заводы.рф · v4 «Реестр» (09.11.2026)
   Слой оформления поверх утверждённых стилей (mockups/styles.css).
   Тёмно-синяя шапка и полоса заголовка, белая страница, таблица данных:
   цифры табличным начертанием Golos Text, зебра в списках, подписи капсом.
   Разметка и функционал как в утверждённых макетах, фильтры сбоку.
   ========================================================================== */

:root {
  --navy: #0d1b36;
  --navy-2: #1a2b4f;
  --navy-line: rgba(255, 255, 255, .14);
  --on-navy: #dfe6f3;
  --on-navy-2: #b7c3db;
  --on-navy-3: #8a9ab8;
  --on-navy-link: #8fb6ff;
  --ink: #0d1b36;
  --ink-2: #4a5672;
  --ink-3: #8a94a8;
  --steel: #f1f4f8;
  --steel-2: #e3e7ee;
  --rule: #e3e7ee;
  --line: #e3e7ee;
  --zebra: #f7f9fb;
  --hover: #eef3fb;
  --red: #e0262a;
  --red-ink: #c21d21;
  --f-display: "Golos Text", "Segoe UI", Roboto, Arial, sans-serif;
  --f-body: "Golos Text", "Segoe UI", Roboto, Arial, sans-serif;
  --f-data: var(--f-body);
  --r: 6px;
  --r-lg: 8px;
}

body { background: #fff; font-variant-numeric: tabular-nums; }
h1, h2, h3, h4 { font-weight: 700; letter-spacing: -.01em; }
h1 { letter-spacing: -.02em; }

/* ---------- Шапка ---------- */
.header { background: var(--navy); border-bottom: 0; }
.nav a { color: var(--on-navy-2); font-weight: 500; }
.nav a:hover { color: #fff; border-bottom-color: transparent; }
.nav a.is-active { color: #fff; border-bottom-color: #fff; }
.hsearch input { background: var(--navy-2); border-color: transparent; color: #fff; }
.hsearch input::placeholder { color: var(--on-navy-3); }
.hsearch input:focus { background: #fff; color: var(--ink); border-color: #fff; box-shadow: none; }
.hsearch svg { color: var(--on-navy-3); }
.header .btn--secondary { background: transparent; color: #fff; border-color: transparent; }
.header .btn--secondary:hover { color: #fff; border-color: var(--navy-line); }
.header .btn--primary { background: var(--red); }
.header .btn--primary:hover { background: var(--red-ink); }
.header .btn--ink { background: var(--navy-2); }
.burger { color: #fff; border-color: var(--navy-line); }

/* ---------- Полоса заголовка: крошки, H1, вводный абзац, ссылки ---------- */
.band { background: var(--navy); color: var(--on-navy); border-image: linear-gradient(var(--navy) 0 0) fill 0 // 0 100vmax; padding-bottom: 30px; margin-bottom: 26px; }
.band .crumbs { color: var(--on-navy-3); padding-top: 14px; }
.band .crumbs a { color: var(--on-navy-2); }
.band .crumbs a:hover { color: #fff; }
.band .crumbs li + li::before { content: "/"; color: var(--on-navy-3); }
.band h1 { color: #fff; font-size: 40px; line-height: 1.1; margin-top: 6px; }
.band .page-head { padding-bottom: 0; }
.band .page-head__lead { color: var(--on-navy-2); }
.band .page-head__lead b { color: #fff; }
.band .page-head__lead a, .band .links__items .more { color: var(--on-navy-link); }
.band .links { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--navy-line); }
.band .links__row > span { color: var(--on-navy-3); }
.band .links__items a { color: var(--on-navy); border-bottom-color: rgba(255, 255, 255, .2); }
.band .links__items a:hover { color: #fff; border-bottom-color: #fff; }
.band .links__items a b { color: var(--on-navy-3); }
.band .viewas { color: var(--on-navy-3); }
.band .btn--secondary { background: transparent; color: #fff; border-color: var(--navy-line); }
/* Полоса только с крошками перед карточкой (предприятие, товар, статья, закупка, поиск): карточка заходит на неё */
.band:not(:has(.page-head)) { padding-bottom: 6px; }
.band:has(+ .profile, + .pitem, + .article, + .dlayout, + .bigsearch) { padding-bottom: 52px; margin-bottom: -38px; }
.band + :is(.profile, .pitem, .article, .dlayout, .bigsearch) { position: relative; }
.catalog[style*="margin-top"] { margin-top: 0 !important; }

/* ---------- Главная: первый экран продолжает шапку ---------- */
.hero { background: var(--navy); padding-block: 44px 36px; }
.hero h1 { font-weight: 600; letter-spacing: -.02em; font-size: 46px; }
.hero__sub { color: var(--on-navy-2); }

/* ---------- Данные: та же гарнитура, табличные цифры ---------- */
.row__facts, .mark, .links__items a b, .okved-list b, .okved-list code, .ind__title b, .finder__tabs b, .ptabs b,
.finder__tabs button b, .ptabs button b, .tbl td.n, .fin td, .hero__stats b, .pager a, .pager span, code {
  font-family: var(--f-data); }
.row__facts { font-size: 13px; letter-spacing: -.01em; }
.row__facts span + span::before { width: 1px; height: 11px; border-radius: 0; background: var(--rule); margin: 0 10px; vertical-align: -1px; }
.mark { font-size: 13px; font-weight: 700; }
.mark--off { font-weight: 400; }

/* ---------- Подписи полей: капс, как заголовки колонок ---------- */
.label, .field > label, .field > .label { font-family: var(--f-body); font-size: 11px; font-weight: 600; letter-spacing: .07em; color: var(--ink-3); }
.input, .select, textarea.input { border-color: var(--rule); }
.input:focus, .select:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(0, 88, 214, .12); }
.select:disabled { background-color: var(--steel); }
.check input, .okved-list input { accent-color: var(--navy); }

/* ---------- Фильтры сбоку ---------- */
.filters { border-color: var(--rule); overflow: hidden; }
.filters__head { background: var(--navy); color: #fff; border-bottom: 0; padding: 14px 18px; }
.filters__head h2 { color: #fff; font-size: 16px; }
.filters__head a { color: var(--on-navy-link); }
.filters__head .btn--secondary { background: transparent; color: #fff; border-color: var(--navy-line); }
.filters__body { gap: 16px; }
.filters__group { border-top: 1px dashed var(--rule); }
.okved-list { border-color: var(--rule); }
.okved-list label { border-bottom-color: var(--steel-2); }
.okved-list label:has(input:checked) { background: var(--hover); }
.okved-list code { font-size: 12px; font-weight: 700; }
.filters .btn--ink { height: 46px; }

/* ---------- Список: шапка таблицы и строки с зеброй ---------- */
.panel { border-color: var(--rule); }
.listhead { background: var(--steel); }
.listhead__count { font-family: var(--f-body); font-weight: 700; font-size: 18px; line-height: 1.2; }
.listhead__count small { display: block; margin: 2px 0 0; }
.applied { background: #fff; }
.chip { background: var(--steel); border-color: transparent; border-radius: 4px; font-weight: 600; }
.seg { border-color: var(--rule); }
.seg button.is-active { background: var(--navy); }
.row__title { font-family: var(--f-body); font-weight: 700; font-size: 18px; letter-spacing: -.01em; }
.rows > .row:nth-child(even of .row) { background: var(--zebra); }
.rows > .row:hover { background: var(--hover); }
.rows > .row--pinned { background: #fff; box-shadow: inset 3px 0 0 var(--red); }
.row__title .pinmark { color: var(--red); background: #fdecec; }
.rows--cards > .row:nth-child(even of .row) { background: #fff; }
.pager a.is-active, .pager .is-active { background: var(--navy); border-color: var(--navy); color: #fff; }

/* ---------- Таблицы данных ---------- */
.tbl th, .fin th { font-family: var(--f-body); font-size: 11.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; color: var(--ink-2); background: var(--steel); }
.tbl tbody tr:nth-child(even) td { background: var(--zebra); }

/* ---------- Подвал продолжает цвет шапки ---------- */
.footer { background: var(--navy); }

/* ---------- Телефон ---------- */
@media (max-width: 760px) {
  .band { padding-bottom: 22px; margin-bottom: 18px; }
  .band h1 { font-size: 27px; }
  .band:has(+ .profile, + .pitem, + .article, + .dlayout, + .bigsearch) { padding-bottom: 40px; margin-bottom: -28px; }
  .filters__head { border-radius: 0; }
  .row__title { font-size: 17px; }
}

/* ==========================================================================
   v4.1 Единая система (09.11, отзыв владельца: «нагромождено», «нужно целостнее»)
   Белая страница, блоки с тонкой рамкой и сдержанным радиусом. Тёмно-синие
   только шапка, полоса заголовка и подвал. Синий только у действий. Меньше линий,
   иконок и шрифтов: одна гарнитура, табличные цифры в данных.
   ========================================================================== */
:root { --page: #ffffff; --r: 4px; --r-lg: 4px; --rule: #dce2ea; --line: #dce2ea; --steel-2: #edf0f4; --zebra: #fff; }
body { background: var(--page); }

/* Поверхности */
.panel, .filters, .ntile, .smcard, .plan, .profile, .mapbar { border: 1px solid var(--rule); box-shadow: none; border-radius: var(--r-lg); }
.finder { border: 0; border-radius: var(--r-lg); }
.panel__head { border-bottom-color: var(--steel-2); padding-block: 18px; }
.panel__head h2, .section__head h2 { font-size: 24px; }
.section { padding-block: 32px; }
.btn, .input, .select, textarea.input, .seg { border-radius: var(--r); }
.chip { border-radius: var(--r); padding: 5px 12px; }
.hero__popular a, .plan__badge, .stabs button, .smtop a, .nchips a, .logo-box { border-radius: var(--r); }

/* Цифры: табличное начертание без смены гарнитуры */
.links__items a b, .ind__title b, .finder__tabs b, .finder__tabs button b, .ptabs b, .ptabs button b, .hero__stats b, .pager a, .pager span, .okved-list b {
  font-family: var(--f-body); font-variant-numeric: tabular-nums; }

/* Иконки тише: тонкая линия, серые, синие только у ссылок-действий */
.icon { stroke-width: 1.6; }
.mark { font-weight: 600; color: var(--ink-2); }
.mark .icon { color: var(--ink-3); }

/* Фильтры: белая карточка, без тёмной шапки */
.filters__head { background: #fff; color: var(--ink); border-bottom: 1px solid var(--steel-2); padding: 18px 20px 14px; }
.filters__head h2 { color: var(--ink); font-size: 18px; }
.filters__head a { color: var(--blue); }
.filters__head .btn--secondary { background: #fff; color: var(--ink); border-color: var(--rule); }
.filters__body { padding: 16px 20px 20px; }
.filters__group { border-top: 1px solid var(--steel-2); }
.okved-list { border-radius: var(--r); }

/* Список: белый, без зебры, тонкие разделители */
.listhead { background: #fff; border-bottom-color: var(--steel-2); }
.applied { border-bottom-color: var(--steel-2); }
.rows > .row:nth-child(even of .row) { background: transparent; }
.rows > .row + .row, .rows > * + .row { border-top: 1px solid var(--steel-2); }
.rows > .row:hover { background: #f8fafc; }
.rows > .row--pinned { background: #fff; box-shadow: inset 3px 0 0 var(--blue); }
.row__title .pinmark { color: var(--blue); background: var(--blue-wash); }

/* ==========================================================================
   v4.2 Главная и подвал (09.11, отзыв: блоки между hero и новостями «не нравятся вовсе»,
   иконки скрыть, плашки дешевят, рисунки мультяшные, закупки перегружены, подвал сырой).
   Без значков, картинок и карточек: текст, линейки, воздух.
   ========================================================================== */
.ind__icon { display: none; }
.smcard h3 { gap: 8px; }

/* Закупщикам / Производителям: две колонки текста на светлой полосе */
.roles { background: var(--steel); border-bottom: 1px solid var(--rule); }
.roles__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); padding-block: 40px; }
.role { display: flex; flex-direction: column; align-items: flex-start; gap: 10px; padding-right: 48px; }
.role + .role { padding-left: 48px; padding-right: 0; border-left: 1px solid var(--rule); }
.role h2 { font-size: 24px; margin: 0; }
.role p { margin: 0 0 6px; color: var(--ink-2); max-width: 54ch; }
.role__act { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; margin-top: auto; }
.role__link { font-weight: 600; color: var(--ink); border-bottom: 1px solid var(--rule); }
.role__link:hover { text-decoration: none; color: var(--blue); border-bottom-color: var(--blue); }
.role__note { font-size: 13.5px; color: var(--ink-3); }

/* Отрасли: дерево «отрасль → виды», четыре колонки */
.itrees { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px 40px; border-top: 1px solid var(--ink); padding-top: 24px; }
.itree__root { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; color: var(--ink); font-weight: 700; font-size: 16.5px; line-height: 1.25; }
.itree__root b { font-family: var(--f-data); font-weight: 400; font-size: 13px; color: var(--ink-3); white-space: nowrap; }
.itree__root:hover { text-decoration: none; color: var(--blue); }
.itree ul { list-style: none; margin: 10px 0 0 4px; padding: 0; }
.itree li { position: relative; padding: 3px 0 3px 22px; font-size: 14.5px; line-height: 1.45; }
.itree li::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; border-left: 1px solid #cdd4df; }
.itree li:first-child::before { top: -4px; }
.itree li:last-child::before { bottom: auto; height: calc(3px + .72em); }
.itree li::after { content: ""; position: absolute; left: 0; top: calc(3px + .72em); width: 14px; border-top: 1px solid #cdd4df; }
.itree li a { color: var(--ink-2); }
.itree li a:hover { color: var(--blue); text-decoration: none; }
.itree .itree__more a { color: var(--blue); font-size: 13.5px; font-weight: 500; }

/* Закупки: таблица реестра */
.dtable { overflow-x: auto; }
.dtable table { width: 100%; border-collapse: collapse; border-top: 1px solid var(--ink); }
.dtable th { text-align: left; font-size: 11.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .06em; color: var(--ink-3); padding: 12px 24px 12px 0; border-bottom: 1px solid var(--rule); white-space: nowrap; }
.dtable td { padding: 16px 24px 16px 0; border-bottom: 1px solid var(--rule); vertical-align: top; font-size: 14px; color: var(--ink-2); }
.dtable th:last-child, .dtable td:last-child { padding-right: 0; }
.dtable td:first-child { width: 46%; }
.dtable .dlist__t { display: block; color: var(--ink); font-weight: 600; font-size: 15.5px; line-height: 1.35; }
.dtable .dlist__t:hover { color: var(--blue); text-decoration: none; }
.dtable td:first-child > span:not(.tag) { display: block; margin-top: 3px; font-size: 13px; color: var(--ink-3); }
.dtable .n { font-family: var(--f-data); font-size: 13.5px; color: var(--ink); white-space: nowrap; }
.dtable th.n { font-family: var(--f-body); font-size: 11.5px; color: var(--ink-3); }
.dtable td.soon { color: var(--red); }
.dtable tbody tr:hover td { background: #f8fafc; }

/* Новые предприятия: полоса из четырёх карточек с логотипом */
.newcos { padding-top: 8px; }
.ncos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.nco { display: flex; flex-direction: column; gap: 2px; padding: 18px 20px 20px; border: 1px solid var(--rule); border-radius: var(--r-lg); color: var(--ink); transition: border-color .15s; }
.nco:hover { text-decoration: none; color: var(--ink); border-color: var(--ink-3); }
.nco__logo { height: 64px; display: flex; align-items: center; margin-bottom: 14px; }
.nco__logo img { max-height: 56px; max-width: 150px; object-fit: contain; }
.nco b { font-size: 16px; font-weight: 700; }
.nco:hover b { color: var(--blue); }
.nco span:not(.nco__logo) { font-size: 13.5px; color: var(--ink-2); }
.nco small { font-size: 12.5px; color: var(--ink-3); margin-top: 6px; }

/* Новости: без цветных подложек */
.ntile { border: 0; border-radius: 0; background: none; }
.ntile__img { border-radius: var(--r); background: var(--steel); color: var(--ink-3); }
.ntile__body { padding: 12px 0 0; }
.ntile:hover { box-shadow: none; }
.ntile:hover b { color: var(--blue); }

/* Подвал: светлая навигационная зона, четыре группы ссылок. */
.footer { margin-top: 64px; padding-block: 36px 0; background: var(--steel); border-top: 1px solid var(--rule); color: var(--ink-2); font-size: 14px; }
.footer__top { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-bottom: 32px; }
.footer__top > img { display: block; width: 160px; height: auto; flex: none; }
.footer__contact { display: flex; align-items: center; gap: 22px; }
.footer__mail { color: var(--ink); font-weight: 600; }
.footer__socials { display: flex; gap: 8px; }
.footer__soc { display: block; padding: 0; border-radius: 50%; }
.footer__soc img { display: block; width: 30px; height: 30px; filter: grayscale(1); opacity: .65; transition: filter .15s, opacity .15s; }
.footer__soc:hover img { filter: none; opacity: 1; }
.footer__cols { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 32px; }
.footer h4 { font-family: var(--f-body); font-size: 15px; font-weight: 700; text-transform: none; letter-spacing: 0; color: var(--ink); margin: 0 0 10px; }
.footer a { color: var(--ink-2); padding: 3px 0; line-height: 1.45; }
.footer a:hover { color: var(--blue); text-decoration: none; }
.footer__top .footer__mail { color: var(--ink); padding: 0; }
.footer__bottom { margin-top: 32px; padding-block: 18px; border-top: 1px solid var(--rule); color: var(--ink-3); font-size: 12.5px; }
.footer__bottom a { color: var(--ink-3); }

@media (max-width: 1100px) {
  .itrees { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .ncos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer__cols { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 28px; }
}
@media (max-width: 760px) {
  .roles__grid { grid-template-columns: 1fr; padding-block: 28px; }
  .role, .role + .role { padding: 0; border-left: 0; }
  .role + .role { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--rule); }
  /* Главная, телефон (09.11): одна отрасль в строке, закупки и новые предприятия списком, новости с картинкой на всю ширину */
  .itrees { grid-template-columns: minmax(0, 1fr); gap: 0; padding-top: 0; }
  .itree { padding: 18px 0 16px; }
  .itree + .itree { border-top: 1px solid var(--rule); }
  .itree__root { font-size: 17px; }
  .itree li { font-size: 15px; padding-block: 4px; }
  .dtable { overflow: visible; }
  .dtable table, .dtable tbody, .dtable tr, .dtable td { display: block; width: auto; }
  .dtable thead { display: none; }
  .dtable tr { padding: 14px 0; border-bottom: 1px solid var(--rule); }
  .dtable td { border: 0; padding: 0; display: inline; font-size: 13.5px; }
  .dtable td:first-child { display: block; width: auto; margin-bottom: 6px; }
  .dtable td:nth-child(n+3)::before { content: " · "; color: var(--ink-3); font-family: var(--f-body); }
  .dtable td:last-child { display: block; margin-top: 6px; }
  .dtable td:last-child::before { content: "Приём предложений "; font-family: var(--f-body); color: var(--ink-3); }
  .dtable tbody tr:hover td { background: none; }
  .ncos { grid-template-columns: minmax(0, 1fr); gap: 0; border-top: 1px solid var(--ink); }
  .nco { display: grid; grid-template-columns: 72px minmax(0, 1fr); column-gap: 14px; row-gap: 1px; padding: 14px 0; border: 0; border-bottom: 1px solid var(--rule); border-radius: 0; }
  .nco__logo { grid-row: 1 / 4; height: 48px; margin: 0; border: 1px solid var(--rule); border-radius: var(--r); padding: 6px; justify-content: center; }
  .nco__logo img { max-height: 36px; max-width: 100%; }
  .nco small { margin-top: 2px; }
  .ntiles:not(.ntiles--page) { gap: 24px; }
  .ntiles:not(.ntiles--page) .ntile { flex-direction: column; }
  .ntiles:not(.ntiles--page) .ntile__img { width: 100%; aspect-ratio: 16 / 9; }
  .ntiles:not(.ntiles--page) .ntile__body { padding: 12px 0 0; }
  .footer__cols { grid-template-columns: 1fr 1fr; }
  .footer__top { flex-direction: column; align-items: flex-start; gap: 18px; }
  .footer__contact { gap: 18px; flex-wrap: wrap; }
  .footer__bottom { flex-direction: column; align-items: flex-start; }
  .footer__bottom > span:last-child { min-width: 0; max-width: 100%; font-size: 0; }
  .footer__bottom > span:last-child a { display: block; font-size: 12.5px; }
  .section__head { flex-wrap: wrap; row-gap: 4px; }
  .section__head a { white-space: nowrap; text-align: left; }
  .section__head h2 { font-size: 22px; }
}

/* Скругление панели не перекрывается фоном первого и последнего блока (шапка списка, пагинация) */
.panel > :first-child { border-top-left-radius: calc(var(--r-lg) - 1px); border-top-right-radius: calc(var(--r-lg) - 1px); }
.panel > :last-child { border-bottom-left-radius: calc(var(--r-lg) - 1px); border-bottom-right-radius: calc(var(--r-lg) - 1px); }

/* ==========================================================================
   Карты сайта деревом, как отрасли на главной (09.11, партия 3)
   ========================================================================== */
.smgrid { grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 32px 40px; border-top: 1px solid var(--ink); padding-top: 24px; }
.smcard { background: none; border: 0; border-radius: 0; box-shadow: none; padding: 0; }
.smcard h3 { display: flex; align-items: baseline; gap: 10px; font-size: 16.5px; font-weight: 700; line-height: 1.25; margin: 0 0 10px; }
.smcard h3 a:hover { color: var(--blue); text-decoration: none; }
.smcard h3 > b { font-family: var(--f-data); font-weight: 400; font-size: 13px; color: var(--ink-3); white-space: nowrap; }
.smcard .plain { gap: 0; margin-left: 4px; font-size: 14.5px; }
.smcard .plain li { position: relative; padding: 3px 0 3px 22px; line-height: 1.45; }
.smcard .plain li::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; border-left: 1px solid #cdd4df; }
.smcard .plain li::after { content: ""; position: absolute; left: 0; top: calc(3px + .72em); width: 14px; border-top: 1px solid #cdd4df; }
.smcard > .plain li:first-child::before { top: -4px; }
.smcard > .plain:last-child li:last-child::before, .smcard details[open] .plain li:last-child::before { bottom: auto; height: calc(3px + .72em); }
.smcard .plain a { color: var(--ink-2); }
.smcard .plain a:hover { color: var(--blue); text-decoration: none; }
.smcard .plain b { font-family: var(--f-data); font-weight: 400; font-size: 12.5px; color: var(--ink-3); }
.smcard details.expander { position: relative; margin: 0 0 0 4px; padding: 3px 0 3px 22px; }
.smcard details.expander::before { content: ""; position: absolute; left: 0; top: 0; height: calc(3px + .72em); border-left: 1px solid #cdd4df; }
.smcard details.expander::after { content: ""; position: absolute; left: 0; top: calc(3px + .72em); width: 14px; border-top: 1px solid #cdd4df; }
.smcard details[open].expander::before { height: 100%; }
.smcard details.expander summary { font-size: 13.5px; font-weight: 500; color: var(--blue); cursor: pointer; }
.smcard details .plain { margin: 4px 0 0 -22px; }
.smh { font-size: 22px; margin: 36px 0 14px; }
.cols { background: none; border: 0; border-radius: 0; border-top: 1px solid var(--ink); padding: 18px 0 0; }
.smap__nav { border: 0; padding: 0; }
.smap__nav a.is-active { background: var(--steel); color: var(--ink); font-weight: 600; }

/* ==========================================================================
   Категорийные страницы: больше воздуха (09.11, партия 3). Только отступы,
   сетка и порядок блоков прежние.
   ========================================================================== */
.band .page-head__lead { margin-top: 4px; }
.band .links { margin-top: 22px; padding-top: 18px; gap: 12px; }
.catalog { gap: 32px; }
.band + .catalog, .band + .catalog[style] { margin-top: 8px !important; }
.filters__body { padding: 20px 22px 24px; gap: 20px; }
.filters__head { padding: 20px 22px 16px; }
.field { gap: 8px; }
.filters__group { padding-top: 18px; gap: 10px; }
.listhead { padding: 20px 28px; }
.applied { padding: 12px 28px; }
.row { padding: 26px 28px; gap: 22px; }
.row__place { margin-top: 5px; }
.row__facts { margin-top: 12px; }
.row__desc { margin-top: 12px; line-height: 1.6; }
.rows > .slot, .rows .slot { margin: 8px 28px 24px; }
.pager { padding: 22px 28px; }
.aside { gap: 24px; }
@media (max-width: 1100px) { .catalog { gap: 20px; } }
@media (max-width: 760px) {
  .listhead, .applied, .pager { padding-inline: 16px; }
  .row { padding: 20px 16px; gap: 14px; }
  .rows > .slot, .rows .slot { margin-inline: 16px; }
}

/* ==========================================================================
   Закупки: таблица реестра в панели (09.11, партия 3, принято)
   ========================================================================== */
.dtable--page { padding: 0 28px; }
.dtable--page table { border-top: 0; }
.dtable--page th { padding-top: 14px; }
.dtable--page td:first-child { width: 44%; }
.dtable--page td small { display: block; margin-top: 4px; font-family: var(--f-body); font-size: 12.5px; color: var(--ink-3); }
.dtable--page td.soon small { color: var(--ink-3); }
.dtable--page .tag { display: inline-block; vertical-align: 2px; margin: 0 4px 4px 0; }
.dtable--page tbody tr:last-child td { border-bottom: 0; }
.dtable--page tbody tr:hover td { background: none; }
.dtable--page tbody tr:hover .dlist__t { color: var(--blue); }
.dtable--page + .pager { border-top: 1px solid var(--rule); }
@media (max-width: 760px) { .dtable--page { padding: 0 16px; } .dtable--page td:first-child { width: auto; } .dtable--page td small { display: inline; margin-left: 6px; } }

/* ==========================================================================
   Тарифы: таблица сравнения (09.11, партия 3, принято)
   ========================================================================== */
.plans.plans--cmp { display: block; border: 0; background: none; box-shadow: none; padding: 0; }
.cmp { overflow-x: auto; }
.cmp table { width: 100%; border-collapse: collapse; border-top: 1px solid var(--ink); }
.cmp thead th { text-align: left; vertical-align: top; padding: 20px 24px 20px 0; border-bottom: 1px solid var(--rule); width: 30%; }
.cmp thead th:first-child { width: 40%; }
.cmp thead .label { display: block; margin-bottom: 6px; }
.cmp__price { display: block; font-size: 34px; font-weight: 600; letter-spacing: -.02em; line-height: 1.1; }
.cmp thead small { display: block; margin-top: 4px; font-size: 13px; color: var(--ink-3); font-weight: 400; }
.cmp tbody th { text-align: left; font-weight: 500; color: var(--ink); padding: 14px 24px 14px 0; border-bottom: 1px solid var(--rule); font-size: 14.5px; }
.cmp tbody td { padding: 14px 24px 14px 0; border-bottom: 1px solid var(--rule); font-size: 14.5px; color: var(--ink-2); vertical-align: top; }
.cmp tbody td:last-child, .cmp thead th:last-child { background: var(--steel); padding-left: 20px; padding-right: 20px; }
.cmp .no { color: var(--ink-3); }
.cmp tfoot td { padding: 20px 24px 20px 0; vertical-align: top; }
.cmp tfoot td:last-child { background: var(--steel); padding: 20px; border-radius: 0 0 var(--r-lg) var(--r-lg); }
.cmp tfoot .btn { width: 100%; }
.cmp-extra { display: grid; grid-template-columns: 220px minmax(0, 1fr) auto; gap: 24px; align-items: center; margin-top: 28px; padding: 22px 0; border-top: 1px solid var(--rule); border-bottom: 1px solid var(--rule); }
.cmp-extra b { display: block; font-size: 24px; font-weight: 600; margin-top: 4px; }
.cmp-extra b small { font-size: 13px; font-weight: 400; color: var(--ink-3); }
.cmp-extra p { margin: 0; color: var(--ink-2); max-width: 64ch; }
@media (max-width: 760px) {
  .cmp table { min-width: 560px; }
  .cmp__price { font-size: 26px; }
  .cmp-extra { grid-template-columns: 1fr; gap: 10px; }
}

/* ==========================================================================
   Товар (09.11, партия 3): справа реклама, характеристики не на всю ширину,
   отзывы перед другими товарами, «Сообщить об ошибке» внизу
   ========================================================================== */
.layout--pv4 { grid-template-columns: minmax(0, 1fr) 300px; gap: 32px; margin-top: 24px; }
.layout--pv4 > .pane { display: flex; flex-direction: column; gap: 24px; }
.layout--pv4 .products--4 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.layout--pv4 .products--4 > :nth-child(n+4) { display: none; }
.layout--pv4 .spec th { width: 45%; }
.pitem__foot--page { display: flex; justify-content: space-between; gap: 16px; padding-top: 16px; border-top: 1px solid var(--rule); font-size: 13.5px; color: var(--ink-3); }
.layout--pv4 .side__sticky .slot--side { min-height: 600px; }
@media (max-width: 1100px) {
  .layout--pv4 { grid-template-columns: minmax(0, 1fr); }
  .layout--pv4 .side { display: none; }
}
@media (max-width: 760px) {
  .layout--pv4 .products--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .layout--pv4 .products--4 > :nth-child(n+3) { display: flex; }
}

/* Превью товаров без цветных подложек (как новости на главной) */
.prod__img { background: var(--steel) !important; color: var(--ink-3) !important; }

/* ==========================================================================
   Карточка предприятия, пробный вариант (09.11, партия 3: «под вопросом, если что откатим»)
   Откат: удалить этот блок и строку factory.html в build_v4.localize.
   ========================================================================== */
.profile__line .icon, .profile__facts .icon { display: none; }
.profile__facts { display: flex; flex-wrap: wrap; gap: 0; margin-top: 12px; font-size: 14px; color: var(--ink-2); }
.profile__facts > * { background: none !important; border: 0 !important; padding: 0 !important; border-radius: 0 !important; color: var(--ink-2); }
.profile__facts > * + *::before { content: "·"; margin: 0 10px; color: var(--ink-3); }
.profile__facts a:hover { color: var(--blue); text-decoration: none; }
.profile__facts b { color: var(--ink); }

/* Сведения из реестров: таблица реестра на белом */
.plate { background: none; color: var(--ink); border-radius: 0; border-top: 0; box-shadow: none; }
.plate::before, .plate::after { display: none !important; }
.plate__head { color: var(--ink-3); border-bottom: 1px solid var(--rule); padding: 12px 0; font-family: var(--f-body); font-size: 11.5px; letter-spacing: .06em; }
.plate__grid { gap: 0; border-top: 0; }
.plate__grid > div { border: 0 !important; border-bottom: 1px solid var(--rule) !important; padding: 16px 24px 16px 0; }
.plate__grid dt { color: var(--ink-3); font-family: var(--f-body); font-size: 11.5px; }
.plate__grid dd { color: var(--ink); font-family: var(--f-data); font-size: 22px; }
.plate__grid dd.is-text { font-family: var(--f-body); font-size: 16px; font-weight: 600; }
.plate__grid dd small { color: var(--ink-3); font-family: var(--f-body); }
.plate__grid dd a { color: var(--ink); border-bottom: 1px solid var(--rule); text-decoration: none; }
.plate__grid dd a:hover { color: var(--blue); border-bottom-color: var(--blue); }

/* Похожие предприятия: карточки с логотипом в ряд */
.rows--similar { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; border: 0; background: none; }
.rows--similar > .row { display: flex; flex-direction: column; gap: 8px; padding: 20px; border: 1px solid var(--rule) !important; border-radius: var(--r-lg); }
.rows--similar > .row .logo-box { --lb-h: 48px; }
.rows--similar > .row .row__desc { display: none; }
.rows--similar > .row .row__marks { flex-direction: row; justify-content: flex-start; margin-top: auto; }
.rows--similar > .slot { grid-column: 1 / -1; margin: 0; }
@media (max-width: 760px) { .rows--similar { grid-template-columns: minmax(0, 1fr); } }
.plate { padding: 0; }
.plate__head { padding-inline: 0; }
.plate__grid > div { padding-left: 0 !important; }

/* Телефон: тарифы без горизонтальной прокрутки, факты карточки столбиком, срок закупки с переносом */
@media (max-width: 760px) {
  .cmp table { min-width: 0; }
  .cmp tr { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .cmp thead th:first-child, .cmp tfoot th { display: none; }
  .cmp thead th, .cmp tbody td, .cmp tfoot td { width: auto; padding: 12px 12px; }
  .cmp tbody th { grid-column: 1 / -1; padding: 14px 0 4px; border-bottom: 0; }
  .cmp tbody td:last-child, .cmp thead th:last-child, .cmp tfoot td:last-child { padding-inline: 12px; }
  .cmp tbody th + td, .cmp thead th:first-child + th, .cmp tfoot th + td { padding-left: 0; }
  .cmp tfoot .btn { white-space: normal; }
  .profile__facts { flex-direction: column; gap: 4px; }
  .profile__facts > * + *::before { content: none; }
  .dtable--page td.n { white-space: normal; }
}

/* ==========================================================================
   Партия 4 (09.11): в категориях каждое предприятие и реклама в своей рамке
   ========================================================================== */
.catalog > .panel:has(> .rows) { border: 0; background: none; display: flex; flex-direction: column; gap: 12px; }
.catalog > .panel:has(> .rows) > .listhead { border: 1px solid var(--rule); border-radius: var(--r-lg); background: #fff; }
.catalog > .panel:has(> .rows) > .listhead:has(+ .applied) { border-radius: var(--r-lg) var(--r-lg) 0 0; border-bottom: 0; margin-bottom: -12px; }
.catalog > .panel:has(> .rows) > .applied { border: 1px solid var(--rule); border-top-color: var(--steel-2); border-radius: 0 0 var(--r-lg) var(--r-lg); background: #fff; }
.catalog .rows { display: flex; flex-direction: column; gap: 12px; }
.catalog .rows > .row { border: 1px solid var(--rule) !important; border-radius: var(--r-lg); background: #fff; }
.catalog .rows > .row:hover { background: #fff; border-color: #c9d1dd !important; }
.catalog .rows > .row--pinned { box-shadow: inset 3px 0 0 var(--blue); }
.catalog .rows > .slot { margin: 0; border: 1px solid var(--rule); border-radius: var(--r-lg); background: #fff; }
.catalog .rows.rows--cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.catalog > .panel:has(> .rows) > .pager { border: 1px solid var(--rule); border-radius: var(--r-lg); background: #fff; }
.catalog > .panel:has(> .rows) > .mapbox { border: 1px solid var(--rule); border-radius: var(--r-lg); overflow: hidden; }
@media (max-width: 760px) { .catalog .rows.rows--cards { grid-template-columns: minmax(0, 1fr); } }

/* Товар, партия 4: реклама после описания в своей рамке, нижняя строка внутри описания */
.slot-box { border: 1px solid var(--rule); border-radius: var(--r-lg); background: #fff; }
.slot-box .slot { margin: 0; border: 0; }
.layout--pv4 .pitem__foot--page { margin-top: 20px; }
.layout--pv4 .pane > div > .slot--row, .layout--pv4 .pane > .slot--feed { border: 1px solid var(--rule); border-radius: var(--r-lg); background: #fff; }
.profile__visit { margin-top: 12px; font-size: 14px; color: var(--ink-2); }

/* Статья, партия 4: упомянутые предприятия под статьёй, автор строкой с датой */
.mention { margin-top: 28px; }
.mention h2 { font-size: 20px; margin: 0 0 12px; }
.rows--mention { display: flex; flex-direction: column; gap: 12px; }
.rows--mention > .row { border: 1px solid var(--rule); border-radius: var(--r-lg); }

/* ==========================================================================
   Кабинеты, партия 4: таблицы одним шрифтом, углы панелей с таблицами
   ========================================================================== */
.panel:has(> .tbl), .panel:has(> table) { overflow: hidden; }
.tbl th { font-family: var(--f-body); font-size: 11.5px; letter-spacing: .06em; background: var(--steel); }
.tbl th.n, .tbl td.n { font-family: var(--f-body); font-variant-numeric: tabular-nums; }
.tbl td.n { font-size: 14px; color: var(--ink); }
.tbl td { padding-block: 14px; }
.tbl th:first-child, .tbl td:first-child { padding-left: 20px; }
.tbl th:last-child, .tbl td:last-child { padding-right: 20px; }
.tbl tbody tr:last-child td { border-bottom: 0; }
.tbl td a b { font-weight: 600; }
.tbl td a { color: var(--ink); }
.tbl td a:hover { color: var(--blue); }
.cab .tag, .cab .mark, .cab .delta { font-family: var(--f-body); }
.cab h1 { font-size: 30px; font-weight: 700; }
.cab .tile b { font-family: var(--f-body); font-weight: 700; }
.usage { border: 1px solid var(--rule); border-radius: var(--r-lg); }
.plan.plan--inline { grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "price btns" "list list"; gap: 14px 24px; background: #fff; border: 1px solid var(--rule); padding: 22px 24px; }
.plan--inline .plan__badge { display: none; }
.plan--inline > div:first-of-type { grid-area: price; }
.plan--inline > div:last-of-type { grid-area: btns; display: flex; gap: 8px; align-items: center; }
.plan--inline > div:last-of-type .btn { margin-left: 0 !important; }
.plan--inline ul { grid-area: list; display: flex; flex-wrap: wrap; gap: 4px 0; padding-top: 14px; border-top: 1px solid var(--steel-2); }
.plan--inline ul li { padding: 0; color: var(--ink-2); font-size: 14px; }
.plan--inline ul li .icon { display: none; }
.plan--inline ul li + li::before { content: "·"; margin: 0 10px; color: var(--ink-3); }
.plan--inline .plan__price small { white-space: nowrap; }
@media (max-width: 760px) {
  .plan.plan--inline { grid-template-columns: 1fr; grid-template-areas: "price" "list" "btns"; }
  .plan--inline ul { flex-direction: column; }
  .plan--inline ul li + li::before { content: none; }
  .plan--inline > div:last-of-type { flex-wrap: wrap; }
}
.plan--inline ul { display: block; margin: 0; list-style: none; }
.plan--inline ul li { display: inline; }
@media (max-width: 760px) { .plan--inline ul li { display: block; padding: 2px 0; } }

/* ==========================================================================
   Партия 4 по аналогии на других страницах (09.11)
   ========================================================================== */
/* Все рекламные места: белый блок в рамке, как предприятие */
.slot { border: 1px solid var(--rule); border-radius: var(--r-lg); background: #fff; }
.slot-box > .slot { border: 0; }
/* Каталог продукции: шапка карточкой, товары и реклама каждый в своей рамке */
.catalog > .panel:has(> .ptiles) { border: 0; background: none; display: flex; flex-direction: column; gap: 12px; }
.catalog > .panel:has(> .ptiles) > .listhead { border: 1px solid var(--rule); border-radius: var(--r-lg); background: #fff; }
.catalog > .panel:has(> .ptiles) > .listhead:has(+ .applied) { border-radius: var(--r-lg) var(--r-lg) 0 0; border-bottom: 0; margin-bottom: -12px; }
.catalog > .panel:has(> .ptiles) > .applied { border: 1px solid var(--rule); border-top-color: var(--steel-2); border-radius: 0 0 var(--r-lg) var(--r-lg); background: #fff; }
.catalog > .panel:has(> .ptiles) > .pager { border: 1px solid var(--rule); border-radius: var(--r-lg); background: #fff; }
.ptiles { padding: 0; gap: 12px; }
.ptiles .prod { border-radius: var(--r-lg); border-color: var(--rule); box-shadow: none; }
/* Статья: колонка из статьи и блоков под ней */
.article__main { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.article__main .mention { margin-top: 0; }
.article .prose .slot { margin-block: 20px; }
@media (max-width: 760px) { .ptiles { padding: 0; gap: 10px; } }
/* Поиск и 410: найденные и похожие предприятия каждое в своей рамке, как в категориях */
.panel.rows.rows--cards:not(.rows--similar), .errpage ~ .panel.rows, main > .panel.rows:not(:has(> .listhead)):not(.rows--similar) { border: 0; background: none; display: grid; gap: 12px; }
.panel.rows.rows--cards:not(.rows--similar) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.panel.rows:not(:has(> .listhead)):not(.rows--similar) > .row { border: 1px solid var(--rule) !important; border-radius: var(--r-lg); background: #fff; }
@media (max-width: 760px) { .panel.rows.rows--cards:not(.rows--similar) { grid-template-columns: minmax(0, 1fr); } }

/* ==========================================================================
   Общие правила v4: закупки, статусы и разделители.
   Источник решений: mockups/v4/DESIGN.md.
   ========================================================================== */
/* В списке закупок между шапкой и таблицей один разделитель: под заголовками колонок. */
.panel:has(> .dtable--page) > .listhead { border-bottom: 0; }

/* Одна иерархия тизера в таблице и в блоке похожих закупок. */
.dtable .dlist__t, .dsimilar .mini__title {
  font-family: var(--f-body); font-size: 15.5px; font-weight: 600; line-height: 1.35;
}
.dtable td:first-child > span:not(.tag), .dsimilar .mini__meta {
  font-family: var(--f-body); font-size: 13px; line-height: 1.45; color: var(--ink-3);
}
.dsimilar .mini { border-top-color: var(--rule); }
.dsimilar .due { font-family: var(--f-data); font-size: 13.5px; color: var(--ink); white-space: nowrap; }
.dsimilar .due .xs { font-family: var(--f-body); font-size: 12.5px; color: var(--ink-3); }
.dtable .tag--ink { background: var(--steel); color: var(--ink-2); border: 1px solid var(--rule); }

/* Статус закупки — строка с индикатором, без длинной цветной плашки. */
.dstatus .tag { background: none; color: var(--ink-2); padding: 0; font-size: 13px; font-weight: 500; line-height: 1.4; white-space: normal; }
.dstatus .tag::before { content: ""; width: 7px; height: 7px; flex: none; border-radius: 50%; background: var(--ink-3); }
.dstatus .tag--ok::before { background: var(--ok); }
/* Сводка юридических признаков и действие PDF */
.legal-intro{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 20px;border:1px solid #d7e0ec;background:#f5f8fc;margin-bottom:24px}
.legal-intro h3{margin:0 0 5px}.legal-intro p{margin:0;max-width:600px}.legal-intro .btn{flex-shrink:0}
.risk__dot--info{background:#7894ad}.risk__dot--unknown{background:#b5bdc8}
@media(max-width:700px){.legal-intro{display:block}.legal-intro .btn{margin-top:14px}}
.report-preview{max-width:850px;margin:36px auto 64px;padding:36px 48px;border:1px solid #d7e0ec;background:#fff}
.report-preview__brand{border-top:6px solid #142b4d;padding-top:18px;color:#315b91;font-size:13px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}
.report-preview h1{font-size:30px;margin:16px 0 8px}.report-preview h2{font-size:20px;margin:32px 0 14px;border-bottom:2px solid #cfdae9;padding-bottom:8px}
.report-preview__actions{display:flex;gap:10px;margin:22px 0}.report-preview__summary{background:#f5f8fc;border:1px solid #cfdae9;padding:16px 20px}.report-preview__summary p{margin:5px 0 0}
@media(max-width:700px){.report-preview{padding:20px 16px;margin:16px auto}.report-preview__actions{flex-wrap:wrap}}
@page{size:A4;margin:16mm 14mm}
@media print{.header,.footer,.report-preview__actions{display:none!important}.report-preview{max-width:none;margin:0;padding:0;border:0}.report-preview .risk,.report-preview tr{break-inside:avoid}.report-preview thead{display:table-header-group}}

/* Оплата: загрузка платных данных карточки */
.legal-loading { display: flex; flex-direction: column; gap: 10px; padding: 8px 0; }
.legal-loading__bar { height: 6px; border-radius: 3px; background: var(--steel-2); overflow: hidden; }
.legal-loading__bar i { display: block; height: 100%; background: var(--blue); transition: width .4s; }
.place.is-full { opacity: .6; }
.legal-intro { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:18px 20px; border:1px solid var(--steel-2); background:#f5f8fc; margin-bottom:24px; }
.legal-intro h3 { margin:0 0 5px; }
.legal-intro p { margin:0; max-width:600px; }
.legal-intro .btn { flex-shrink:0; }
.legal-checks { margin-bottom:28px; }
.risk__dot--info { background:#7894ad; }
.risk__dot--unknown { background:#b5bdc8; }
@media(max-width:700px) { .legal-intro { display:block; } .legal-intro .btn { margin-top:14px; } }

/* Кабинет: пункты меню — ссылки на разделы (в макете кнопки вкладок) */
.cab-nav > a { box-sizing: border-box; width: 100%; display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: var(--r); font-size: 14.5px; font-weight: 500; color: var(--ink-2); text-decoration: none; }
.cab-nav > a:hover { background: var(--steel); color: var(--ink); text-decoration: none; }
.cab-nav > a.is-active { background: var(--ink); color: #fff; }
.cab-nav > a .icon { width: 16px; height: 16px; }
.cab-nav > a b { margin-left: auto; font-family: var(--f-data); font-size: 11.5px; background: var(--red); color: #fff; border-radius: 3px; padding: 1px 5px; font-weight: 500; }
@media (max-width: 760px) { .cab-nav > a { width: auto; white-space: nowrap; } .cab-nav > form { display: none; } }
.ph-tile img { border-radius: var(--r); }


/* ===== Новости, карты сайта, холдинги (Django) ===== */
.nav-pager .pager, .ntiles--page + .pager, .nfeat + .pager { border: 0; padding-inline: 0; }
.nfeat__img img, .article__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.article__img + .source { margin-top: 6px; }
.author .logo-box { width: 72px; height: 48px; flex: none; }
.author .logo-box img { width: 100%; height: 100%; object-fit: contain; }

/* Закупки: размытая оценка надёжности без «Закупщик Про» (в макете — режим data-state="free") */
.lockable-chip { filter: blur(4px); user-select: none; }
.files label { display: flex; align-items: center; gap: 8px; }

/* Golos Text со своего сервера (правка 36, 10.11): вариативный шрифт 400–800, наборы как у Google Fonts */
@font-face { font-family: 'Golos Text'; font-style: normal; font-weight: 400 800; font-display: swap; src: url("/static/fonts/golos-text-cyrillic-ext.52208e41e353.woff2") format('woff2'); unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F; }
@font-face { font-family: 'Golos Text'; font-style: normal; font-weight: 400 800; font-display: swap; src: url("/static/fonts/golos-text-cyrillic.024646dc00da.woff2") format('woff2'); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: 'Golos Text'; font-style: normal; font-weight: 400 800; font-display: swap; src: url("/static/fonts/golos-text-latin-ext.1cfacdd6d054.woff2") format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Golos Text'; font-style: normal; font-weight: 400 800; font-display: swap; src: url("/static/fonts/golos-text-latin.3ba0fde64bcf.woff2") format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* Сообщения: диалоги — ссылки (в макете кнопки), файл к сообщению */
a.thread, a.thread:hover { text-decoration: none; color: inherit; }
.bubble a { word-break: break-all; }
.bubble a .icon { width: 14px; height: 14px; vertical-align: -2px; }


/* Раздел продукции: фото товара вместо значка макета */
.pgal__main--img { background: #fff; border: 1px solid var(--steel-2); overflow: hidden; }
.pgal__main img { width: 100%; height: 100%; object-fit: contain; }
.pgal__thumb { overflow: hidden; background: #fff; }
.pgal__thumb img { width: 100%; height: 100%; object-fit: contain; }
.psort { margin: 0; }


/* Поиск: вкладки ссылками (как .stabs button в макете) */
.stabs a { border: 1px solid var(--line); background: var(--paper); border-radius: 999px; padding: 8px 14px; font-weight: 600; font-size: 14px; color: var(--ink-2); text-decoration: none; }
.stabs a:hover { text-decoration: none; color: var(--ink); }
.stabs a b { font-weight: 500; color: var(--ink-3); margin-left: 4px; }
.stabs a.is-active { background: var(--ink); border-color: var(--ink); color: #fff; }
.stabs a.is-active b { color: #b9c6dd; }

/* Django pages without a dedicated v4 layout keep their content and use the v4 heading surface. */
.plans.plans--cmp[hidden] { display: none; }
.hero__art { display: none; }
.footer__soc:not(a) { cursor: default; }
.footer__soc:not(a):hover img { filter: grayscale(1); opacity: .65; }
.container > .crumbs:not(.band .crumbs),
.container > .crumbs-row:not(.band .crumbs-row) {
  background: var(--navy); border-image: linear-gradient(var(--navy) 0 0) fill 0 // 0 100vmax;
  color: var(--on-navy-3); margin: 0; padding-top: 14px;
}
.container > .crumbs:not(.band .crumbs) a,
.container > .crumbs-row:not(.band .crumbs-row) a { color: var(--on-navy-2); }
.container > .page-head:not(.band .page-head) {
  background: var(--navy); border-image: linear-gradient(var(--navy) 0 0) fill 0 // 0 100vmax;
  color: var(--on-navy); margin: 0 0 26px; padding: 6px 0 30px;
}
.container > .page-head:not(.band .page-head) h1 { color: #fff; }
.container > .page-head:not(.band .page-head) .page-head__lead { color: var(--on-navy-2); }
.container > .page-head:not(.band .page-head) .page-head__lead b { color: #fff; }
@media (max-width: 760px) {
  .section__head a { white-space: normal; overflow-wrap: anywhere; }
  .container > .page-head:not(.band .page-head) { margin-bottom: 18px; padding-bottom: 22px; }
  .container > .page-head:not(.band .page-head) h1 { font-size: 28px; }
}

/* Правки 10.11 */
/* 1. Текстовые описания на всю ширину блока */
.prose p, .prose ul, .prose ol, .static, .seo-text, .article__text, .demand__text, .page-head__lead, .cmp-extra p { max-width: none; }
/* 2. Похожие предприятия — плитками, как «Новые предприятия» на главной */
.ncos--similar { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.ncos--similar .nco { background: #fff; }
@media (max-width: 1100px) { .ncos--similar { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 760px) { .ncos--similar { grid-template-columns: minmax(0, 1fr); } }
/* 4. Реклама в списке каталога в рамке со всех сторон; баннер на весь блок рамку закрывает */
.catalog .rows > .slot-ad { border: 0 !important; border-radius: var(--r-lg); background: #fff; box-shadow: inset 0 0 0 1px var(--rule); overflow: hidden; }
.catalog .rows > .slot-ad:not(:has(.adslot)) { display: none; }
/* 9. Шапка страниц (решение 10.11, 1а–5а): заголовок в тёмной полосе на всех страницах, отступ под полосой,
   карточки заходят на полосу с тенью, разделитель крошек везде «/» */
.crumbs li + li::before { content: "/"; }
.container > .crumbs:not(.band .crumbs) li + li::before,
.container > .crumbs-row:not(.band .crumbs-row) li + li::before { color: var(--on-navy-3); }
.container > :is(.crumbs, .crumbs-row):not(.band *):has(+ .page-head) { padding-bottom: 0; }
.container > :is(.crumbs, .crumbs-row):not(.band *):has(+ .page-head) .crumbs { padding-bottom: 0; }
.container > .page-head:not(.band .page-head) { padding-top: 6px; padding-bottom: 32px; margin-bottom: 28px; }
.container > .page-head:not(.band .page-head) .page-head__lead a { color: var(--on-navy-link); }
.band:has(+ .profile, + .pitem) { padding-bottom: 64px; margin-bottom: -44px; }
.band + :is(.profile, .pitem) { box-shadow: 0 10px 30px rgba(13, 27, 54, .10); }
.auth { padding-top: 0; }
.container > .crumbs-row:not(.band .crumbs-row) .crumbs { padding-top: 0; }
/* SEO 10.11 (docs/seo.md §3.1): на вкладках карточки H1 — название раздела, название компании — строкой того же вида */
.profile .profile__h1 { font-family: var(--f-display); font-weight: 700; color: var(--ink); line-height: 1.15; letter-spacing: -.02em; font-size: 42px; margin: 0 0 8px; text-wrap: balance; }
.tab-h1 { font-size: 25px; letter-spacing: -.01em; }
.section__head .tab-h1 { font-size: 24px; margin: 0; }
@media (max-width: 760px) { .profile .profile__h1 { font-size: 30px; } .section__head .tab-h1 { font-size: 22px; } }

/* Правки 10.11, вторая партия (docs/pravki.txt 14–32) */
/* 14. Поля логотипа — от высоты блока, а не от ширины родителя: в широкой плашке производителя картинка пропадала */
.logo-box--img { padding: calc(var(--lb-h) * .1); }
/* 16. Слайдер фото товара и галереи */
[data-lb], [data-lb-main] { cursor: zoom-in; }
.lbox { position: fixed; inset: 0; z-index: 1000; background: rgba(8, 15, 30, .92); display: flex; align-items: center; justify-content: center; }
.lbox[hidden] { display: none; }
.lbox__fig { margin: 0; max-width: calc(100vw - 140px); max-height: calc(100vh - 80px); display: flex; flex-direction: column; align-items: center; gap: 10px; }
.lbox__fig img { max-width: 100%; max-height: calc(100vh - 110px); object-fit: contain; border-radius: 6px; background: #fff; }
.lbox__cnt { color: rgba(255, 255, 255, .75); font-size: 14px; }
.lbox__close, .lbox__nav { position: absolute; border: 0; background: rgba(255, 255, 255, .12); color: #fff; cursor: pointer; border-radius: 50%; display: flex; align-items: center; justify-content: center; line-height: 1; }
.lbox__close { top: 16px; right: 16px; width: 44px; height: 44px; font-size: 30px; }
.lbox__nav { top: 50%; transform: translateY(-50%); width: 52px; height: 52px; font-size: 38px; padding-bottom: 4px; }
.lbox__close:hover, .lbox__nav:hover { background: rgba(255, 255, 255, .24); }
.lbox__prev { left: 16px; }
.lbox__next { right: 16px; }
.lbox--one .lbox__nav { display: none; }
html.lbox-open { overflow: hidden; }
@media (max-width: 760px) {
  .lbox__fig { max-width: 100vw; }
  .lbox__fig img { border-radius: 0; }
  .lbox__nav { top: auto; bottom: 18px; transform: none; width: 46px; height: 46px; }
  .lbox__prev { left: calc(50% - 80px); }
  .lbox__next { right: calc(50% - 80px); }
}
.gallery .ph.is-more { display: none; }
/* 19. Все ОКВЭД в «Реквизитах»; коды без страницы — без ссылки */
.okved-links > span { color: var(--ink-2); }
.okved-links--all { gap: 9px; }
/* Вопрос 26: имя файла в сообщении до отправки */
.chat__form { flex-wrap: wrap; }
.chat__file { order: 10; flex-basis: 100%; display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--ink-2); min-width: 0; }
.chat__file > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chat__file button { border: 0; background: none; color: var(--ink-3); font-size: 18px; line-height: 1; cursor: pointer; padding: 0 4px; }
.chat__file[hidden] { display: none; }
/* Вопрос 27: точка непрочитанного диалога не сдвигает имя */
.thread--unread b { justify-content: flex-start; }
.thread--unread b time { margin-left: auto; }
/* 26. Карты сайта: линия над сеткой только под заголовком раздела; одиночная ветка дерева доходит до засечки */
.smgrid { border-top: 0; padding-top: 0; }
.smh + .smgrid { border-top: 1px solid var(--ink); padding-top: 24px; }
.smcard > .plain:last-child li:first-child:last-child::before, .smcard details[open] .plain li:first-child:last-child::before { height: calc(7px + .72em); }
/* 22. Холдинги деревом */
.smgrid--hold { margin-top: 20px; }
/* Вопрос 16: регионы под картой — навигация по буквам */
.regabc-wrap { padding-bottom: 0; }
.regabc { columns: 4 220px; column-gap: 40px; }
.regabc__group { break-inside: avoid; display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 0 6px; padding: 10px 0; border-top: 1px solid var(--rule); }
.regabc__l { font-family: var(--f-display); font-size: 18px; line-height: 1.3; color: var(--blue); }
.regabc .plain { gap: 2px; font-size: 14.5px; }
.regabc .plain li { display: flex; justify-content: space-between; gap: 8px; line-height: 1.45; }
.regabc .plain a { color: var(--ink); }
.regabc .plain a:hover { color: var(--blue); text-decoration: none; }
.regabc .plain span { font-family: var(--f-data); font-size: 12.5px; color: var(--ink-3); white-space: nowrap; }
/* Вопрос 4: меню на телефоне — панель на весь экран под шапкой */
.mnav[hidden], .burger__x { display: none; }
.header.is-menu .burger .icon { display: none; }
.header.is-menu .burger__x { display: block; font-size: 28px; line-height: 1; margin-top: -2px; }
html.mnav-open { overflow: hidden; }
@media (max-width: 760px) {
  .mnav { position: fixed; left: 0; right: 0; top: calc(64px + env(safe-area-inset-top, 0px)); bottom: 0; z-index: 29; background: var(--navy); overflow-y: auto; overscroll-behavior: contain;
    padding: 12px 16px calc(24px + env(safe-area-inset-bottom, 0px)); display: flex; flex-direction: column; gap: 18px; border-top: 1px solid var(--navy-line); }
  .mnav__search { display: flex; gap: 8px; }
  .mnav__search .input { flex: 1; min-width: 0; height: 46px; }
  .mnav__search .btn { width: 46px; height: 46px; padding: 0; justify-content: center; }
  .mnav__links { display: flex; flex-direction: column; }
  .mnav__links a { color: #fff; font-family: var(--f-display); font-size: 20px; font-weight: 600; padding: 14px 2px; border-bottom: 1px solid var(--navy-line); }
  .mnav__links a.is-active { color: var(--on-navy-link, #9cc3ff); }
  .mnav__links a:hover { text-decoration: none; }
  .mnav__actions { display: flex; flex-direction: column; gap: 10px; }
  .mnav__actions .btn { width: 100%; justify-content: center; height: 48px; font-size: 16px; }
  .mnav__actions .btn--secondary { background: transparent; color: #fff; border: 1px solid var(--navy-line); }
  .header.is-menu .hsearch { display: none; }
}
@media (min-width: 761px) { .mnav { display: none !important; } }
/* Вопрос 6: страница «Контакты» */
.contact--page { gap: 14px; }
.map--contacts { height: 380px; margin-top: 18px; border-radius: var(--r-lg); }
.directions { margin: 0; color: var(--ink-2); }
/* Правка 32: вакансии с центры-занятости.рф */
.vacs { display: flex; flex-direction: column; }
.vac { padding: 16px 0; border-bottom: 1px solid var(--rule); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 4px 20px; }
.vac:first-child { padding-top: 4px; }
.vac__title { margin: 0; font-size: 17px; line-height: 1.35; }
.vac__pay { font-family: var(--f-data); font-weight: 600; white-space: nowrap; text-align: right; }
.vac__meta, .vac__duty, .vac__date { grid-column: 1 / -1; }
.vac__meta { display: flex; flex-wrap: wrap; gap: 4px 14px; font-size: 13.5px; color: var(--ink-2); }
.vac__duty { margin: 4px 0 0; font-size: 14px; color: var(--ink-2); }
.vac__date { font-size: 12.5px; color: var(--ink-3); }
.vac--closed .vac__title, .vac--closed .vac__pay { color: var(--ink-3); font-weight: 500; }
.vac__all { margin: 16px 0 0; font-weight: 600; }
@media (max-width: 760px) { .vac { grid-template-columns: minmax(0, 1fr); } .vac__pay { text-align: left; } }
/* Вопрос 14: разделы новостей — тип материала и отрасли */
.nsec { margin-bottom: 18px; }
.nsec .stabs { margin-bottom: 10px; }
.nchips--ind { display: flex; flex-wrap: wrap; gap: 6px; }
.nchips--ind a { padding: 5px 12px; font-size: 13px; font-weight: 500; }
/* Вопрос 33: кнопки закупщика в тизере и шапке карточки */
.btools { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-top: 10px; position: relative; }
.btools form { margin: 0; }
.btools__btn { display: inline-flex; align-items: center; gap: 5px; height: 28px; padding: 0 10px; border: 1px solid var(--line); border-radius: var(--r); background: var(--paper); color: var(--ink-2); font: inherit; font-size: 12.5px; font-weight: 600; cursor: pointer; list-style: none; }
.btools__btn::-webkit-details-marker { display: none; }
.btools__btn .icon { width: 14px; height: 14px; }
.btools__btn:hover { border-color: var(--blue); color: var(--blue); text-decoration: none; }
.btools__inv { position: relative; }
.btools__menu { position: absolute; z-index: 20; top: 32px; left: 0; min-width: 260px; max-width: 340px; background: #fff; border: 1px solid var(--rule); border-radius: var(--r); box-shadow: 0 10px 30px rgba(13, 27, 54, .14); padding: 4px; }
.btools__menu button { display: block; width: 100%; text-align: left; border: 0; background: none; padding: 8px 10px; border-radius: 6px; font: inherit; font-size: 13.5px; color: var(--ink); cursor: pointer; }
.btools__menu button:hover { background: var(--steel); }
.btools__ok { font-size: 12.5px; font-weight: 600; color: var(--green, #1d7a46); }
.profile__contact .btools { margin-top: 0; }
/* Правка 35: уведомление о cookie */
.cookie { position: fixed; z-index: 60; left: 16px; bottom: calc(16px + env(safe-area-inset-bottom, 0px)); max-width: 460px; display: flex; align-items: center; gap: 14px;
  background: #fff; color: var(--ink); border: 1px solid var(--rule); border-radius: var(--r-lg); box-shadow: 0 12px 32px rgba(13, 27, 54, .18); padding: 14px 16px; }
.cookie[hidden], .cookie-ok .cookie { display: none; }
.cookie p { margin: 0; font-size: 13.5px; line-height: 1.45; color: var(--ink-2); }
.cookie .btn { flex: none; }
@media (max-width: 760px) { .cookie { left: 8px; right: 8px; max-width: none; bottom: calc(8px + env(safe-area-inset-bottom, 0px)); } }
@media print { .cookie { display: none !important; } }
/* Мобильная версия (10.11): карточка, тизеры, крошки, вкладки списком */
.ptabs-select, .crumbs__more { display: none; }
@media (max-width: 760px) {
  /* крошки: Главная / … / раздел / текущая, по «…» раскрываются */
  .crumbs ol.is-collapsible:not(.is-open) > .crumbs__mid { display: none; }
  .crumbs ol.is-collapsible:not(.is-open) > .crumbs__more { display: list-item; }
  .crumbs__more button { border: 0; background: rgba(255, 255, 255, .12); color: inherit; border-radius: 6px; padding: 0 8px; font: inherit; line-height: 1.5; cursor: pointer; }
  .crumbs li[aria-current] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
  .crumbs ol { flex-wrap: wrap; }

  /* шапка карточки: маленький логотип рядом с названием, сведения и кнопки на всю ширину */
  .profile { min-width: 0; }
  .profile__top { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 10px 14px; align-items: start; padding: 16px; }
  .profile__top > div:not([class]) { display: contents; }
  .profile__top .logo-box { --lb-h: 56px; width: 56px; grid-column: 1; grid-row: 1; }
  .profile__top h1, .profile__top .profile__h1 { grid-column: 2; grid-row: 1; font-size: 23px; line-height: 1.2; margin: 0; overflow-wrap: anywhere; hyphens: auto; align-self: center; }
  .profile__top .profile__line, .profile__top .profile__legal, .profile__top .profile__visit, .profile__top .btools { grid-column: 1 / -1; }
  .profile__line { gap: 4px 10px; font-size: 14px; }
  .profile__legal { font-size: 13px; overflow-wrap: anywhere; }
  .profile__visit { font-size: 13px; }
  .profile__contact { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; padding-top: 14px; }
  .profile__contact .btn { width: 100%; justify-content: center; }
  .profile__service { display: flex; flex-wrap: wrap; gap: 6px 16px; font-size: 13.5px; }
  .ptabs { display: none; }
  .ptabs-select { display: block; padding: 0 16px 16px; }
  .ptabs-select .select { width: 100%; height: 46px; font-weight: 600; }
  .band:has(+ .profile, + .pitem) { padding-bottom: 48px; margin-bottom: -32px; }

  /* тизер в каталоге: логотип и название в строку, остальное ниже на всю ширину */
  .row { grid-template-columns: 48px minmax(0, 1fr); gap: 6px 12px; padding: 14px; }
  .row > div:not([class]) { display: contents; }
  .row > .logo-box { --lb-h: 48px; width: 48px; grid-column: 1; grid-row: 1 / span 2; align-self: start; }
  .row .row__title { grid-column: 2; font-size: 16.5px; line-height: 1.3; overflow-wrap: anywhere; margin: 0; }
  .row .row__place { grid-column: 2; font-size: 13.5px; }
  .row .row__facts, .row .row__desc, .row .btools, .row .row__marks { grid-column: 1 / -1; }
  .row .row__facts { gap: 2px 12px; margin-top: 2px; }
  .row .row__facts span + span::before { display: none; }
  .row .row__desc { margin: 2px 0 0; font-size: 14px; }
  .row .row__marks { justify-content: flex-start; margin-top: 2px; }

  /* уведомление о cookie не шире экрана */
  .cookie p { flex: 1; min-width: 0; }
}
@media (max-width: 760px) {
  /* ссылки разделов (подотрасли, регионы) на телефоне — одной строкой с прокруткой, чтобы список предприятий был близко */
  .links { gap: 12px; }
  .links__items { flex-wrap: nowrap; overflow-x: auto; gap: 8px; padding-bottom: 6px; margin-inline: -16px; padding-inline: 16px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .links__items::-webkit-scrollbar { display: none; }
  .links__items a { flex: none; white-space: nowrap; border: 1px solid var(--navy-line, rgba(255,255,255,.18)); border-radius: 999px; padding: 6px 12px; font-size: 13.5px; }
  .links__items a:hover { border-color: currentColor; }
  .cookie { padding: 10px 12px; gap: 10px; }
  .cookie p { font-size: 12.5px; }
}
@media (max-width: 760px) {
  /* панель над списком: число, затем «Фильтры» + сортировка в одну строку, вид списка — второй строкой на всю ширину */
  .listhead { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; padding: 14px 16px; }
  .listhead__tools { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 8px; width: 100%; }
  .listhead__tools .sort { display: flex; gap: 6px; min-width: 0; }
  .listhead__tools .sort label { display: none; }
  .listhead__tools .sort .select { flex: 1; min-width: 0; }
  .listhead__tools > :not(.filters-toggle):not(.sort) { grid-column: 1 / -1; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; }
  .listhead__tools > :not(.filters-toggle):not(.sort) > * { justify-content: center; }
}

/* Правка 1 (11.11): в плитке реклама на всю строку */
.rows--cards > .slot-ad { grid-column: 1 / -1; }

/* Правка 5 (11.11): длинные списки подразделов — первые 12, остальные под «Показать ещё» (ссылки остаются в разметке) */
.links__items:not(.is-open) > .is-extra { display: none; }
.links__toggle { border: 0; border-bottom: 1px dashed; background: none; padding: 0; font: inherit; cursor: pointer; }
.links__items.is-open > .links__toggle { display: none; }


/* ===== Сайт (Django): дополнения к стилям макетов, собирает scripts/build_css.py ===== */
.ptabs a { background: none; border: 0; border-bottom: 2px solid transparent; padding: 13px 0 11px; font-size: 14.5px; font-weight: 600; color: var(--ink-2); white-space: nowrap; display: inline-flex; align-items: center; gap: 6px; text-decoration: none; }
.ptabs a:hover { color: var(--ink); text-decoration: none; }
.ptabs a.is-active { color: var(--ink); border-bottom-color: var(--blue); }
.ptabs a b { font-family: var(--f-data); font-weight: 400; font-size: 12px; color: var(--ink-3); }
.hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.adslot:empty { display: none; }
.adslot--touch { display: none; }
@media (hover: none) { .adslot--touch { display: block; } }
.chip a { color: inherit; text-decoration: none; margin-left: 2px; }
.form__err { color: var(--red); font-size: 13.5px; margin: 0; }
.phone__num a { color: inherit; }
.review__head { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-bottom: 6px; }
.review p { margin: 0; }
.review__reply { margin-top: 10px; padding: 10px 12px; background: var(--steel); border-radius: var(--r); }
.prod__img img { width: 100%; height: 100%; object-fit: contain; background: #fff; }
.ntile__img img, .nlead__img img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 760px) {
}
