/* ==========================================================================
   ПромТехГост — бренд-слой (основы по бренд-буку v1.0, 2026)
   Подключается ПОСЛЕ all.css и перебивает базовые значения.
   Токены, типографика, кнопки, формы, сетка, поверхности, элементы доверия.
   Правки вносить здесь, а не в скомпилированный all.css.
   ========================================================================== */

/* Avenir Next Cyr есть только в 400 и 500 (см. @font-face в all.css).
   Для 600/700 бренд-бук разрешает фолбэк — берём Manrope. */
@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@600;700;800&display=swap');

:root {
  /* базовые цвета */
  --c-blue:        #00679A;   /* логотип, заголовки блоков, ссылки, рамки */
  --c-blue-hover:  #005481;
  --c-red:         #FF0000;   /* только главное действие */
  --c-red-hover:   #E00000;
  --c-red-press:   #C20000;
  --c-graphite:    #22272A;   /* текст, утилити-бар, футер */

  /* тинты и поверхности */
  --c-tint:        #EDF7F9;   /* подложка блока */
  --c-tint-line:   #D3E7F0;   /* рамки, чипы */
  --c-bg:          #F4F6F7;   /* фон страницы */
  --c-card:        #FFFFFF;
  --c-card-line:   #E6E9EA;   /* рамка карточки */

  /* текст и линии */
  --c-text:        #22272A;
  --c-text-2:      #5A6165;   /* вторичный */
  /* Подписи и плейсхолдеры. Было #A2A5A6 — контраст 2.48:1 на белом при
     размере 11–14px, ниже нормы 4.5. Затемнено в том же холодном оттенке:
     4.94 на белом, 4.56 на #F4F6F7, 4.53 на #EDF7F9. */
  --c-muted:       #6C7174;
  /* тот же серый для тёмных поверхностей (графит): на #22272A даёт 5.7 */
  --c-muted-ondark: #A2A5A6;
  --c-line:        #D9D9D9;   /* рамки полей */

  /* состояния */
  /* Зелёный чипа сроков. #1F8A4C на подложке #F1F9F4 давал 4.08 — чуть ниже
     нормы для 13px. Затемнён до 4.88 на подложке и 5.23 на белом. */
  --c-success:     #1C7C44;
  /* Приглушённо-синий кикера на голубой подложке (макеты дают #5A8CA6 —
     3.36 на #EDF7F9, для 11px мало). 4.69 на подложке, 5.11 на белом. */
  --c-kicker-tint: #457488;
  /* подложка и рамка зелёного чипа сроков */
  --c-success-bg:  #F1F9F4;
  --c-success-line:#BEE3CC;
  --c-warning:     #B8860B;

  /* типографика */
  --font: "avenirnextcyr", "Avenir Next Cyr", "Manrope", system-ui, sans-serif;
  --font-bold: "Manrope", "avenirnextcyr", system-ui, sans-serif; /* 600/700 */

  /* сетка: контейнер 1280, поля 24, гаттер 24 */
  --container: 1280px;
  --gutter: 24px;

  /* шаг отступов 4px */
  --s1: 4px;  --s2: 8px;  --s3: 12px; --s4: 16px;
  --s6: 24px; --s8: 32px; --s12: 48px; --s16: 64px; --s24: 96px;

  /* радиусы: 4 поля и кнопки, 6 карточки, 999 чипы */
  --r-field: 4px;
  --r-card: 6px;
  --r-chip: 999px;

  /* три тени, больше не вводим */
  --sh-raised: 0 2px 4px rgba(34,39,42,.10);
  --sh-overlay: 0 8px 24px rgba(34,39,42,.14);
}

/* --------------------------------------------------------------------------
   1. База
   -------------------------------------------------------------------------- */
body {
  font-family: var(--font);
  color: var(--c-text);
  background: var(--c-bg);
  -webkit-font-smoothing: antialiased;
}

/* Бренд-бук: основной текст не выравниваем по ширине — justify рвёт пробелы.
   В боевом CSS justify встречается 55 раз, снимаем сквозным правилом. */
body, p, li, td, th, div, .content, .content * {
  text-align: initial;
}
[style*="text-align: justify"], [style*="text-align:justify"] {
  text-align: left !important;
}

a { color: var(--c-blue); text-decoration: none; }
a:hover { color: var(--c-red); }

/* --------------------------------------------------------------------------
   2. Типографика
   H1 44/52·700 · H2 32/40·700 · H3 22/30·600 · Body L 17/28 · Body M 15/24
   Заголовки — обычным регистром, не капсом.
   -------------------------------------------------------------------------- */
h1, .h1, h2, .h2, h3, .h3 {
  font-family: var(--font-bold);
  color: var(--c-text);
  text-transform: none;
  letter-spacing: normal;
}
h1, .h1 { font-size: 44px; line-height: 52px; font-weight: 700; margin: 0 0 var(--s6); }
h2, .h2 { font-size: 32px; line-height: 40px; font-weight: 700; margin: 0 0 var(--s4); }
h3, .h3 { font-size: 22px; line-height: 30px; font-weight: 600; margin: 0 0 var(--s3); }

/* Заголовки внутри цветных плашек старой темы.
   Правило h1…h3 выше красит заголовки в тёмный, а .blue__title в all.css —
   синяя плашка, у которой белым покрашен только сам блок, не вложенный
   заголовок. Получался тёмный текст на тёмно-синем. То же у .dark-title. */
.blue__title, .blue__title h1, .blue__title h2, .blue__title h3, .blue__title h4,
.blue__title .h1, .blue__title .h2, .blue__title a { color: #fff; }
.blue__title a:hover { color: #fff; opacity: .85; }

/* Хлебные крошки: ссылки были серыми #A2A5A6 — контраст 2.5:1 на белом,
   ниже нормы. Серый оставляем только последнему, неактивному звену. */
/* специфичность как у правила all.css «.product__breadcrumb ul a» */
.product__breadcrumb ul a { color: var(--c-text-2); }
.product__breadcrumb ul a:hover { color: var(--c-red); }

.lead, .text-l { font-size: 17px; line-height: 28px; font-weight: 400; }
body, p, li, td { font-size: 15px; line-height: 24px; }
p { margin: 0 0 var(--s4); }
.caption, small, .small {
  font-size: 13px; line-height: 18px; font-weight: 500; color: var(--c-muted);
}
/* капс оставляем только навигации и мелким лейблам */
.nav-label, .menu-top__link, .menu-bottom__link {
  font-size: 14px; font-weight: 500; text-transform: uppercase; letter-spacing: .02em;
}
/* длина строки основного текста — до 75 знаков */
.content p, .content li { max-width: 75ch; }

@media (max-width: 768px) {
  h1, .h1 { font-size: 30px; line-height: 38px; }
  h2, .h2 { font-size: 24px; line-height: 32px; }
  h3, .h3 { font-size: 19px; line-height: 26px; }
}

/* --------------------------------------------------------------------------
   3. Кнопки — радиус 4, без теней. L 56 / M 48 / S 40. Тап-таргет 48.
   -------------------------------------------------------------------------- */
.btn, .btn__red, .btn__blue, .btn__ghost, button.btn, a.btn {
  display: inline-flex; align-items: center; justify-content: center;
  gap: var(--s2);
  height: 48px; padding: 0 var(--s6);
  font-family: var(--font-bold); font-size: 15px; font-weight: 600;
  border-radius: var(--r-field); border: 1px solid transparent;
  box-shadow: none; cursor: pointer; text-align: center;
  transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
/* Primary — главное действие, одно на экран.
   Двойная специфичность по той же причине, что у .btn--ondark: правило футера
   вида «.footer a» красит текст в rgba(255,255,255,.86), и белый на красном
   становился ещё бледнее — контраст и без того ровно 4.0. */
.btn.btn__red, a.btn__red, button.btn__red, .btn--primary {
  background: var(--c-red); color: #fff; border-color: var(--c-red);
}
.btn.btn__red:hover, a.btn__red:hover, button.btn__red:hover, .btn--primary:hover {
  background: var(--c-red-hover); border-color: var(--c-red-hover); color: #fff;
}
.btn__red:active, .btn--primary:active {
  background: var(--c-red-press); border-color: var(--c-red-press);
}
/* Secondary — рядом с красным */
.btn--secondary, .btn.btn__blue, a.btn__blue, button.btn__blue {
  background: #fff; color: var(--c-blue); border-color: var(--c-blue);
}
.btn--secondary:hover, .btn__blue:hover {
  background: var(--c-tint); color: var(--c-blue-hover); border-color: var(--c-blue-hover);
}
/* На тёмном синяя кнопка не читается — только красная и прозрачная.
   Специфичность двойная: в футере действует правило вида «.footer a»
   (0,2,0), которое перекрашивало текст в rgba(255,255,255,.86) и оставляло
   рамку прозрачной — кнопка «Телеграм-бот» выглядела просто текстом. */
.btn.btn--ondark, a.btn--ondark, button.btn--ondark {
  background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.5);
}
.btn.btn--ondark:hover, a.btn--ondark:hover, button.btn--ondark:hover {
  background: rgba(255,255,255,.1); color: #fff; border-color: #fff;
}

.btn--l { height: 56px; padding: 0 var(--s8); font-size: 16px; }
.btn--s { height: 40px; padding: 0 var(--s4); font-size: 14px; }
.btn[disabled], .btn__red[disabled], .btn.is-disabled {
  background: var(--c-line); border-color: var(--c-line); color: #fff;
  cursor: not-allowed; pointer-events: none;
}
/* ссылка-действие «Все услуги →» */
.link-arrow { display: inline-flex; align-items: center; gap: var(--s2); font-weight: 600; }

@media (max-width: 768px) {
  .btn, .btn__red, .btn__blue, button.btn, a.btn { min-height: 48px; }
}

/* --------------------------------------------------------------------------
   4. Формы — поле 48, радиус 4, рамка #D9D9D9, фокус синий + подсветка.
   Подпись над полем, ошибка текстом под полем, кнопка не уже поля.
   -------------------------------------------------------------------------- */
input[type="text"], input[type="tel"], input[type="email"], input[type="search"],
input[type="number"], select, textarea {
  width: 100%; min-height: 48px; padding: 12px var(--s4);
  font-family: var(--font); font-size: 15px; line-height: 24px; color: var(--c-text);
  background: #fff; border: 1px solid var(--c-line); border-radius: var(--r-field);
  box-shadow: none; transition: border-color .15s ease, box-shadow .15s ease;
}
textarea { min-height: 96px; resize: vertical; }
input::placeholder, textarea::placeholder { color: var(--c-muted); }
input:focus, select:focus, textarea:focus {
  outline: none; border-color: var(--c-blue);
  box-shadow: 0 0 0 3px rgba(0,103,154,.14);
}
.field { margin-bottom: var(--s4); }
.field__label {
  display: block; margin-bottom: var(--s2);
  font-size: 13px; font-weight: 500; line-height: 18px; color: var(--c-text-2);
}
.field__error { display: block; margin-top: 6px; font-size: 13px; line-height: 18px; color: var(--c-red); }
.field.has-error input, .field.has-error textarea, input.error, .error input { border-color: var(--c-red); }
/* обещание под кнопкой */
.form__promise { margin-top: var(--s3); font-size: 13px; line-height: 18px; color: var(--c-text-2); }
.form__policy { font-size: 13px; line-height: 18px; color: var(--c-text-2); }

/* --------------------------------------------------------------------------
   5. Сетка и поверхности
   -------------------------------------------------------------------------- */
/* Атрибут hidden должен скрывать всегда. Браузерное правило [hidden]{display:none}
   имеет нулевую специфичность, и любой наш display (grid у строк прайса и
   списка документов, flex у карточек) его перебивал: JS-фильтр и поиск
   ставили hidden, а строки продолжали отображаться. */
[hidden] { display: none !important; }

/* box-sizing обязателен: в all.css у [class*="__container"] стоит content-box,
   и тогда width:100% + горизонтальные паддинги дают контейнер на 48px шире
   экрана. На мобильном это сдвигало всю страницу на 24px вправо, а правые
   24px обрезал .wrapper{overflow-x:hidden}. */
.page__container, .header__container, .footer__container, .container, .brand-container {
  box-sizing: border-box;
  width: 100%; max-width: var(--container);
  margin-left: auto; margin-right: auto;
  padding-left: var(--gutter); padding-right: var(--gutter);
}
/* Страницы редизайна несут собственный .*-wrap со своим гаттером по макету.
   Гасим гаттер контейнера, иначе отступы складываются: 48px по краям на
   мобильном вместо 24px и минус 48px к ширине контента на десктопе. */
.pg-home, .sv-page, .cp-page, .cd-page, .bd-page {
  margin-left: calc(-1 * var(--gutter)); margin-right: calc(-1 * var(--gutter));
}
.card, .brand-card {
  background: var(--c-card); border: 1px solid var(--c-card-line);
  border-radius: var(--r-card); box-shadow: none;
}
.card--raised { box-shadow: var(--sh-raised); }
.card--overlay { box-shadow: var(--sh-overlay); }
.surface-tint { background: var(--c-tint); }

/* --------------------------------------------------------------------------
   6. Элементы доверия (бренд-бук, раздел 07)
   -------------------------------------------------------------------------- */
/* чип скорости — зелёный только здесь, всегда с числом дней */
.chip-term {
  display: inline-flex; align-items: center; gap: 6px;
  height: 28px; padding: 0 var(--s3);
  font-size: 13px; font-weight: 600; line-height: 1;
  color: var(--c-success); background: rgba(31,138,76,.10);
  border: 1px solid rgba(31,138,76,.25); border-radius: var(--r-chip);
}
.chip {
  display: inline-flex; align-items: center; height: 28px; padding: 0 var(--s3);
  font-size: 13px; font-weight: 500; color: var(--c-blue);
  background: var(--c-tint); border: 1px solid var(--c-tint-line); border-radius: var(--r-chip);
}
/* цена-плашка: красным только сумма, под ней — что входит */
.price-plate { display: flex; flex-direction: column; gap: 2px; }
.price-plate__from { font-size: 13px; font-weight: 500; color: var(--c-text-2); }
.price-plate__sum {
  font-family: var(--font-bold); font-size: 28px; line-height: 34px;
  font-weight: 700; color: var(--c-red);
}
.price-plate__note { font-size: 13px; line-height: 18px; color: var(--c-muted); }
/* контакт-блок: телефон всегда ссылка */
.contact-phone {
  font-family: var(--font-bold); font-size: 20px; font-weight: 700; color: var(--c-text);
}
.contact-phone:hover { color: var(--c-red); }

/* --------------------------------------------------------------------------
   7. Иконки — линейные, обводка 1.6, сетка 20×20, без заливок
   -------------------------------------------------------------------------- */
.icon {
  width: 20px; height: 20px; flex: 0 0 auto;
  fill: none; stroke: currentColor; stroke-width: 1.6;
  stroke-linecap: round; stroke-linejoin: round;
}

/* --------------------------------------------------------------------------
   8. Шапка (сквозной блок 1b): две полосы, утилити-бар на графите,
   одна красная кнопка, мобильная полоса с телефоном.
   Состав пунктов меню сохранён 1:1.
   -------------------------------------------------------------------------- */
.bh { background: #fff; }

/* утилити-бар */
.bh .bh-util { background: var(--c-graphite); color: rgba(255,255,255,.72); }
.bh .bh-util .header__top-content { min-height: 44px; display: flex; align-items: center; gap: var(--s8); }
.bh .bh-util a { color: #fff; font-size: 14px; }
.bh .bh-util a:hover { color: var(--c-red); }
.bh .bh-util svg { color: rgba(255,255,255,.72); }
.bh .bh-city { display: inline-flex; align-items: center; gap: 6px; }
.bh .bh-phonewrap { display: inline-flex; flex-direction: column; line-height: 1.2; }
.bh .bh-phonewrap a { font-family: var(--font-bold); font-weight: 700; font-size: 15px; }
.bh .bh-worktime { font-size: 12px; line-height: 16px; color: rgba(255,255,255,.55); }
.bh .menu-top__link { color: #fff; font-size: 13px; }

/* основная полоса */
.bh .bh-main { background: #fff; border-bottom: 1px solid var(--c-card-line); }
.bh .bh-main .header__bottom-content {
  display: flex; align-items: center; gap: var(--s6); min-height: 84px;
}
.bh .header__logo img { height: 52px; width: auto; }
.bh .menu-bottom__list { display: flex; align-items: center; gap: var(--s6); }
.bh .menu-bottom__link { color: var(--c-text); }
.bh .menu-bottom__link:hover { color: var(--c-blue); }
.bh .header__bottom-search { flex: 1 1 auto; max-width: 420px; }
.bh .header__search input { min-height: 44px; }
.bh .bh-cta { flex: 0 0 auto; white-space: nowrap; }

/* мобильная полоса — на десктопе скрыта */
.bh .bh-mobbar { display: none; }

@media (max-width: 1024px) {
  .bh .bh-worktime { display: none; }
  .bh .bh-main .header__bottom-content { gap: var(--s4); min-height: 72px; }
}
@media (max-width: 768px) {
  .bh .bh-util .header__top-content { min-height: 40px; gap: var(--s4); }
  .bh .bh-cta { display: none; }              /* уезжает в мобильную полосу */
  .bh .header__logo img { height: 40px; }
  .bh .bh-main .header__bottom-content { min-height: 60px; }
  .bh .bh-mobbar {
    display: flex; align-items: center; gap: var(--s3);
    padding: var(--s3) var(--gutter);
    background: #fff; border-bottom: 1px solid var(--c-card-line);
  }
  .bh .bh-mobbar__phone {
    display: inline-flex; align-items: center; gap: 6px;
    font-family: var(--font-bold); font-weight: 700; font-size: 15px;
    color: var(--c-text); white-space: nowrap; min-height: 48px;
  }
  .bh .bh-mobbar__cta { flex: 1 1 auto; }
  .bh .menu-top__link, .bh .menu-bottom__link { min-height: 48px; display: flex; align-items: center; }
}

/* --------------------------------------------------------------------------
   9. Футер (сквозной блок 1b): конверсионная полоса, 4 колонки, нижняя строка.
   Все 6 пунктов старого футера сохранены в колонке «Разделы»,
   обе юридические ссылки — в нижней строке.
   -------------------------------------------------------------------------- */
.bf { background: var(--c-graphite); color: rgba(255,255,255,.72); }
.bf a { color: rgba(255,255,255,.86); }
.bf a:hover { color: var(--c-red); }

/* конверсионная полоса */
.bf .bf-cta { background: #1B2023; border-bottom: 1px solid rgba(255,255,255,.08); }
.bf .bf-cta__in {
  display: flex; align-items: center; justify-content: space-between;
  gap: var(--s8); padding-top: var(--s8); padding-bottom: var(--s8);
}
.bf .bf-cta__title {
  font-family: var(--font-bold); font-size: 24px; line-height: 32px;
  font-weight: 700; color: #fff; margin-bottom: 6px;
}
.bf .bf-cta__sub { font-size: 15px; line-height: 24px; max-width: 70ch; }
.bf .bf-cta__btns { display: flex; gap: var(--s3); flex: 0 0 auto; }

/* основная часть */
.bf .bf-main {
  display: grid; grid-template-columns: 1.4fr 1fr 1.2fr 1fr;
  gap: var(--s8); padding-top: var(--s12); padding-bottom: var(--s12);
}
.bf .bf-logo img { height: 48px; width: auto; margin-bottom: var(--s4); }
.bf .bf-about { font-size: 14px; line-height: 22px; max-width: 42ch; }
.bf .bf-col__title {
  font-family: var(--font-bold); font-size: 15px; font-weight: 600;
  color: #fff; margin-bottom: var(--s3);
}
.bf .bf-col__title--sub { margin-top: var(--s6); }
.bf .bf-list { list-style: none; margin: 0; padding: 0; }
.bf .bf-list li { margin-bottom: var(--s2); font-size: 14px; line-height: 22px; }
.bf .bf-all { display: inline-block; margin-top: var(--s3); font-size: 14px; color: #fff; }

/* контакты: телефон всегда ссылка */
.bf .bf-phone {
  display: block; font-family: var(--font-bold); font-size: 22px; line-height: 30px;
  font-weight: 700; color: #fff;
}
.bf .bf-email { display: block; margin-top: var(--s3); font-size: 15px; }
.bf .bf-note { font-size: 13px; line-height: 18px; color: rgba(255,255,255,.5); margin-top: 4px; }
.bf .bf-messengers { margin-top: var(--s4); }
.bf .bf-msg { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; }

/* нижняя строка */
.bf .bf-bottom { border-top: 1px solid rgba(255,255,255,.08); }
.bf .bf-bottom__in { padding-top: var(--s6); padding-bottom: var(--s6); }
.bf .bf-copy { font-size: 14px; color: rgba(255,255,255,.6); }
.bf .bf-legal { display: flex; flex-wrap: wrap; gap: var(--s4); margin-top: var(--s2); font-size: 13px; }
.bf .bf-disclaimer {
  margin-top: var(--s3); font-size: 12px; line-height: 18px; color: rgba(255,255,255,.42);
  max-width: 90ch;
}

@media (max-width: 1024px) {
  .bf .bf-main { grid-template-columns: 1fr 1fr; gap: var(--s6); }
  .bf .bf-cta__in { flex-direction: column; align-items: flex-start; gap: var(--s4); }
}
@media (max-width: 768px) {
  .bf .bf-main { grid-template-columns: 1fr; padding-top: var(--s8); padding-bottom: var(--s8); }
  .bf .bf-cta__title { font-size: 20px; line-height: 28px; }
  .bf .bf-cta__btns { width: 100%; }
  .bf .bf-cta__btns .btn { flex: 1 1 0; }
  .bf .bf-list li a, .bf .bf-msg { min-height: 44px; display: inline-flex; align-items: center; }
}

/* ==========================================================================
   10. ТИПОГРАФИКА РЕДАКТОРСКОГО КОНТЕНТА (сквозная, для всего сайта)
   Применяется ко всем контейнерам, куда CMS выводит {!! $text !!}:
   .product__content (категории услуг и продукции, карточка услуги, текстовые
   страницы), article (каталоги услуг/продукции), .text_page (публикации),
   .info-block__text (новости, вопрос-ответ).
   Правится здесь — оформление разом меняется на всех страницах.
   Замер по БД на момент правки: justify 6594, таблиц 90, списков 1438,
   картинок 90, h4 10, blockquote 2, hr 7.
   ========================================================================== */
.product__content, .cms-text,
.cp-article article, .sv-article article,
.text_page, .info-block__text {
  font-size: 17px; line-height: 29px; color: var(--c-text);
}

/* --- 1. Инлайновый justify от редактора: брендбук требует отказа.
       Редактор ставит его атрибутом style, поэтому нужен !important. --- */
.product__content [style*="justify"], .cms-text [style*="justify"],
.cp-article article [style*="justify"], .sv-article article [style*="justify"],
.text_page [style*="justify"], .info-block__text [style*="justify"] {
  text-align: left !important;
}

/* --- 1a. Наследие старой темы в all.css: у .product__content h2 стоит
       синяя плашка с белым текстом, а у p/ul/ol/table/h3 — боковые отступы
       20px. Правила выше задают цвет текста по бренд-буку, и в паре с
       плашкой получался тёмный текст на тёмно-синем фоне — нечитаемо.
       Гасим само наследие, а не подкрашиваем текст обратно: по бренд-буку
       h2 — обычный заголовок, а не плашка. --- */
.product__content h2 { background: none; padding: 0; }
.product__content h3 { padding-left: 0; }
.product__content p, .product__content ul, .product__content ol { padding-right: 0; }
.product__content p { padding-left: 0; }
.product__content table { margin-left: 0; margin-right: 0; }

/* --- 2. Заголовки: обычным регистром, размеры по бренд-буку.
       h4–h6 тоже описаны — в текстах встречается h4 («СРОК ОФОРМЛЕНИЯ:»),
       без правил он падал в браузерный дефолт и выглядел неоформленным. --- */
.product__content h2, .cms-text h2, .cp-article article h2, .sv-article article h2,
.text_page h2, .info-block__text h2 {
  font-family: var(--font-bold); font-size: 32px; line-height: 40px; font-weight: 700;
  letter-spacing: -.02em; color: var(--c-text); margin: 44px 0 16px; text-transform: none;
}
.product__content h3, .cms-text h3, .cp-article article h3, .sv-article article h3,
.text_page h3, .info-block__text h3 {
  font-family: var(--font-bold); font-size: 22px; line-height: 30px; font-weight: 600;
  color: var(--c-text); margin: 36px 0 14px; text-transform: none;
}
.product__content h4, .cms-text h4, .cp-article article h4, .sv-article article h4,
.text_page h4, .info-block__text h4 {
  font-family: var(--font-bold); font-size: 13px; line-height: 18px; font-weight: 600;
  letter-spacing: .1em; text-transform: uppercase; color: var(--c-blue);
  margin: 26px 0 6px;
}
.product__content h5, .cms-text h5, .cp-article article h5, .sv-article article h5,
.text_page h5, .info-block__text h5,
.product__content h6, .cms-text h6, .cp-article article h6, .sv-article article h6,
.text_page h6, .info-block__text h6 {
  font-family: var(--font-bold); font-size: 17px; line-height: 24px; font-weight: 600;
  color: var(--c-text); margin: 24px 0 8px; text-transform: none;
}
/* первый заголовок в блоке не должен отбивать сверху лишнего */
.product__content > :first-child, .cms-text > :first-child,
.cp-article article > :first-child, .sv-article article > :first-child,
.text_page > :first-child, .info-block__text > :first-child { margin-top: 0; }

/* --- 3. Абзацы и строчные элементы --- */
.product__content p, .cms-text p, .cp-article article p, .sv-article article p,
.text_page p, .info-block__text p {
  margin: 0 0 18px; font-size: 17px; line-height: 29px; max-width: 78ch;
}
/* :not([class*="btn"]) обязателен: в редакторский контент вставляют кнопки
   (.btn__red на /contacts), и без исключения ссылка-кнопка получала синий
   текст на красном фоне — контраст 1.5:1. */
.product__content a:not([class*="btn"]), .cms-text a:not([class*="btn"]),
.cp-article article a:not([class*="btn"]), .sv-article article a:not([class*="btn"]),
.text_page a:not([class*="btn"]), .info-block__text a:not([class*="btn"]) {
  color: var(--c-blue); font-weight: 600;
}
.product__content a:not([class*="btn"]):hover, .cms-text a:not([class*="btn"]):hover,
.cp-article article a:not([class*="btn"]):hover, .sv-article article a:not([class*="btn"]):hover,
.text_page a:not([class*="btn"]):hover, .info-block__text a:not([class*="btn"]):hover {
  color: var(--c-red);
}
.product__content strong, .product__content b, .cms-text strong, .cms-text b,
.cp-article article strong, .sv-article article strong,
.text_page strong, .info-block__text strong { font-weight: 700; color: var(--c-text); }

/* --- 4. Списки: маркеры в синем, читаемые интервалы --- */
.product__content ul, .cms-text ul, .cp-article article ul, .sv-article article ul,
.text_page ul, .info-block__text ul,
.product__content ol, .cms-text ol, .cp-article article ol, .sv-article article ol,
.text_page ol, .info-block__text ol {
  margin: 0 0 20px; padding-left: 24px; max-width: 78ch;
}
.product__content li, .cms-text li, .cp-article article li, .sv-article article li,
.text_page li, .info-block__text li {
  font-size: 17px; line-height: 28px; margin-bottom: 8px;
}
/* в all.css у «article ul li» стоит margin-left:20px — с нашим
   padding-left:24px у списка отступ складывался в 44px */
.cp-article article ul > li, .sv-article article ul > li,
.product__content ul > li { margin-left: 0; }
.product__content ul > li::marker, .cms-text ul > li::marker,
.cp-article article ul > li::marker, .sv-article article ul > li::marker,
.text_page ul > li::marker, .info-block__text ul > li::marker { color: var(--c-blue); }
.product__content ol > li::marker, .cms-text ol > li::marker,
.cp-article article ol > li::marker, .sv-article article ol > li::marker,
.text_page ol > li::marker, .info-block__text ol > li::marker {
  color: var(--c-blue); font-weight: 700;
}

/* --- 5. Таблицы (в текстах их 90 — часто прайсы).
       display:block + overflow-x:auto превращает саму таблицу в скролл-контейнер:
       обёртку не добавить, разметка приходит из БД. --- */
.product__content table, .cms-text table, .cp-article article table, .sv-article article table,
.text_page table, .info-block__text table {
  display: block; width: 100%; max-width: 100%; overflow-x: auto;
  border-collapse: collapse; margin: 0 0 22px; font-size: 15px; line-height: 22px;
  border: 1px solid var(--c-card-line); border-radius: var(--r-card);
  background: #fff; -webkit-overflow-scrolling: touch;
}
.product__content th, .cms-text th, .cp-article article th, .sv-article article th,
.text_page th, .info-block__text th {
  background: var(--c-tint); color: var(--c-text); font-family: var(--font-bold);
  font-weight: 600; text-align: left; padding: 12px 14px;
  border-bottom: 1px solid var(--c-tint-line); white-space: nowrap;
}
.product__content td, .cms-text td, .cp-article article td, .sv-article article td,
.text_page td, .info-block__text td {
  padding: 12px 14px; border-top: 1px solid var(--c-card-line); vertical-align: top;
}
.product__content tr:nth-child(even) td, .cms-text tr:nth-child(even) td,
.cp-article article tr:nth-child(even) td, .sv-article article tr:nth-child(even) td,
.text_page tr:nth-child(even) td, .info-block__text tr:nth-child(even) td {
  background: #FAFBFB;
}
/* редактор часто задаёт таблице фиксированную ширину атрибутом/инлайном */
.product__content table[width], .cms-text table[width],
.cp-article article table[width], .sv-article article table[width],
.text_page table[width], .info-block__text table[width] { width: 100% !important; }

/* --- 6. Картинки: не растягиваем и не искажаем, даже если редактор
       поставил инлайновые width/height в пикселях --- */
.product__content img, .cms-text img, .cp-article article img, .sv-article article img,
.text_page img, .info-block__text img {
  max-width: 100% !important; height: auto !important;
  border-radius: var(--r-card); display: block; margin: 6px 0 18px;
}

/* --- 7. Цитаты и разделители --- */
.product__content blockquote, .cms-text blockquote,
.cp-article article blockquote, .sv-article article blockquote,
.text_page blockquote, .info-block__text blockquote {
  margin: 0 0 22px; padding: 20px 24px; background: var(--c-tint);
  border: 1px solid var(--c-tint-line); border-left: 3px solid var(--c-blue);
  border-radius: var(--r-card); font-size: 17px; line-height: 28px; color: var(--c-text);
}
.product__content blockquote p:last-child, .cms-text blockquote p:last-child,
.cp-article article blockquote p:last-child, .sv-article article blockquote p:last-child,
.text_page blockquote p:last-child, .info-block__text blockquote p:last-child { margin-bottom: 0; }
.product__content hr, .cms-text hr, .cp-article article hr, .sv-article article hr,
.text_page hr, .info-block__text hr {
  border: none; border-top: 1px solid var(--c-card-line); margin: 32px 0;
}

/* --- 8. Мобильная адаптация редакторского текста --- */
@media (max-width: 768px) {
  .product__content, .cms-text, .cp-article article, .sv-article article,
  .text_page, .info-block__text { font-size: 16px; line-height: 27px; }
  .product__content p, .cms-text p, .cp-article article p, .sv-article article p,
  .text_page p, .info-block__text p,
  .product__content li, .cms-text li, .cp-article article li, .sv-article article li,
  .text_page li, .info-block__text li { font-size: 16px; line-height: 27px; }
  .product__content h2, .cms-text h2, .cp-article article h2, .sv-article article h2,
  .text_page h2, .info-block__text h2 { font-size: 24px; line-height: 32px; margin-top: 32px; }
  .product__content h3, .cms-text h3, .cp-article article h3, .sv-article article h3,
  .text_page h3, .info-block__text h3 { font-size: 19px; line-height: 26px; margin-top: 26px; }
}

/* ==========================================================================
   11. НАСЛЕДИЕ all.css: серый текст и плейсхолдеры на токен
   В скомпилированном all.css цвет #A2A5A6 зашит литералом в 21 правиле —
   токен --c-muted до них не доходит, и после его затемнения эти элементы
   остались с контрастом 2.48:1. Перечислены все правила с текстовым серым;
   рамки и разделители того же цвета не трогаем — к ним норма не относится.
   ========================================================================== */
.product__breadcrumb ul li,
.news__home-item p.data,
.news_date-meta,
.news_otziv-header .header-info .otziv-date,
.otziv-date,
.article__reviews-date {
  color: var(--c-muted);
}
/* Хлебные крошки во всём сайте рисовались засечками. В all.css у них
   font-family: Avenir Next Cyr — такого семейства нет: @font-face объявляет
   шрифт как avenirnextcyr, и браузер уходил в свой шрифт по умолчанию.
   Заодно вес 450, которого нет ни в одном начертании, приводим к 500. */
.product__breadcrumb ul li,
.product__breadcrumb ul a {
  font-family: var(--font);
  font-weight: 500;
}

/* плейсхолдеры полей старой темы */
.header__search input::placeholder,
.header__search input::-webkit-input-placeholder,
.form__first input::placeholder, .form__first textarea::placeholder,
.form__first input::-webkit-input-placeholder, .form__first textarea::-webkit-input-placeholder,
.news_form-block form input::placeholder, .news_form-block textarea::placeholder,
.article__reviews-form form input::placeholder,
.article__reviews-form form textarea::placeholder {
  color: var(--c-muted);
}

/* ==========================================================================
   12. КОМПОНЕНТЫ СТРАНИЦ РЕДИЗАЙНА (.bd-*)
   Общий набор для карточек услуги и продукции: первый экран, плитки с
   ценой, сайдбар, статья, тёмный призыв, вопрос-ответ, прайс-строки.
   До выноса эти правила дублировались в шаблонах — правка цвета или
   отступа требовала синхронной правки в нескольких файлах.
   Шаблон добавляет только то, что специфично именно для него.
   ========================================================================== */
.bd-page { margin-left: calc(-1 * var(--gutter)); margin-right: calc(-1 * var(--gutter)); }
.bd-page a { text-decoration: none; }
.bd-page button, .bd-page input, .bd-page select, .bd-page textarea { font-family: inherit; }
.bd-wrap { max-width: var(--container); margin: 0 auto; padding-left: var(--gutter); padding-right: var(--gutter); }

/* мелкая моно-подпись (кикер) */
.bd-mono {
  font-family: 'JetBrains Mono', ui-monospace, monospace;
  font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--c-muted);
}

/* хлебные крошки в обёртке редизайна */
.bd-page .product__breadcrumb { border-bottom: 1px solid #F0F2F3; background: none; box-shadow: none; padding: 0; }
.bd-page .product__breadcrumb ul {
  max-width: var(--container); margin: 0 auto; padding: 16px var(--gutter); list-style: none;
  display: flex; align-items: center; gap: 9px; font-size: 13.5px; color: var(--c-muted); flex-wrap: wrap;
}
.bd-page .product__breadcrumb li:last-child { color: var(--c-muted); }

/* ---------- первый экран ---------- */
.bd-hero { background: var(--c-bg); border-bottom: 1px solid var(--c-card-line); }
.bd-hero > .bd-wrap {
  padding-top: 44px; padding-bottom: 48px;
  display: grid; grid-template-columns: 1fr 380px; gap: var(--s8); align-items: start;
}
.bd-chips { display: flex; gap: 10px; flex-wrap: wrap; }
.bd-chip {
  display: inline-flex; align-items: center; height: 30px; padding: 0 var(--s3);
  border-radius: var(--r-chip); background: var(--c-card); border: 1px solid var(--c-tint-line);
  font-size: 13px; font-weight: 600; color: var(--c-blue);
}
a.bd-chip { transition: background .2s, border-color .2s; }
a.bd-chip:hover { background: var(--c-tint); border-color: var(--c-blue); color: var(--c-blue); }
.bd-chip--ok { background: var(--c-success-bg); border-color: var(--c-success-line); color: var(--c-success); }

.bd-hero h1, .bd-h1 {
  margin: 20px 0 0; font-size: 42px; line-height: 50px; font-weight: 700;
  letter-spacing: -.025em; color: var(--c-text);
}
.bd-lead { margin: 16px 0 0; font-size: 18px; line-height: 30px; color: var(--c-text-2); max-width: 680px; }
.bd-lead p { margin: 0 0 10px; font-size: inherit; line-height: inherit; }
.bd-lead p:last-child { margin-bottom: 0; }
.bd-lead a { color: var(--c-blue); }

/* плитки с ценой и фактами */
.bd-facts {
  display: grid; grid-template-columns: repeat(var(--bd-facts, 3), 1fr); gap: 1px; margin-top: 30px;
  background: #DFE4E6; border: 1px solid #DFE4E6; border-radius: var(--r-card); overflow: hidden;
}
.bd-fact { background: var(--c-card); padding: 20px 22px; }
.bd-fact__price { display: flex; align-items: baseline; gap: 6px; margin-top: var(--s2); }
.bd-fact__price small { font-size: 14px; color: var(--c-muted); font-weight: 400; }
.bd-fact__price b { font-size: 26px; font-weight: 800; color: var(--c-red); letter-spacing: -.02em; }
.bd-fact__note { font-size: 12.5px; color: var(--c-muted); margin-top: 3px; }
.bd-fact__flat { font-size: 20px; font-weight: 700; margin-top: 10px; letter-spacing: -.01em; }
.bd-fact__flat--big { font-size: 26px; font-weight: 800; margin-top: var(--s2); letter-spacing: -.02em; }
.bd-fact__flat--soft { color: var(--c-muted); }
.bd-fact a.bd-fact__flat { display: block; color: var(--c-blue); }

/* кнопки первого экрана */
.bd-cta { display: flex; align-items: center; gap: 14px; margin-top: 26px; flex-wrap: wrap; }
.bd-btn-red {
  height: 56px; padding: 0 30px; border: none; border-radius: var(--r-field);
  background: var(--c-red); color: #fff; font-size: 17px; font-weight: 600;
  white-space: nowrap; cursor: pointer; transition: background .2s;
}
.bd-btn-red:hover { background: var(--c-red-hover); color: #fff; }
.bd-btn-phone {
  display: inline-flex; align-items: center; height: 56px; padding: 0 26px;
  border: 1px solid var(--c-blue); border-radius: var(--r-field); background: var(--c-card);
  color: var(--c-text); font-size: 17px; font-weight: 600; white-space: nowrap; transition: background .2s;
}
.bd-btn-phone:hover { background: var(--c-tint); color: var(--c-text); }
.bd-cta__note { font-size: 14px; line-height: 1.45; color: var(--c-text-2); max-width: 220px; }

/* полоса «так выглядит документ» */
.bd-sample {
  margin-top: var(--s8); padding-top: 28px; border-top: 1px solid #DFE4E6;
  display: flex; gap: var(--s6); align-items: flex-start;
}
.bd-sample__img {
  flex: 0 0 auto; width: 216px; border: 1px solid var(--c-tint-line);
  border-radius: var(--r-field); background: var(--c-card); padding: 10px;
}
.bd-sample__img img { display: block; width: 100%; height: 196px; object-fit: contain; }
.bd-sample__t { font-size: 19px; font-weight: 700; line-height: 1.35; }
.bd-sample__d { margin: 10px 0 0; font-size: 16px; line-height: 27px; color: var(--c-text-2); max-width: 460px; }

/* ---------- сайдбар ---------- */
.bd-side { display: flex; flex-direction: column; gap: var(--s4); }
.bd-side--sticky { position: sticky; top: var(--s6); }
.bd-card {
  background: var(--c-card); border: 1px solid var(--c-card-line);
  border-radius: var(--r-card); padding: 22px var(--s6);
}
.bd-card--form { padding: 26px var(--s6); box-shadow: var(--sh-raised); }
.bd-card--plain { background: none; }
.bd-card--tint { background: var(--c-tint); border-color: var(--c-tint-line); }
.bd-card--flush { padding: 0; overflow: hidden; }
.bd-card__t { font-size: 21px; font-weight: 700; letter-spacing: -.01em; line-height: 1.3; }
.bd-card__st { font-size: 17px; font-weight: 700; letter-spacing: -.01em; }
.bd-card__d { font-size: 14px; line-height: 1.55; color: var(--c-text-2); margin-top: var(--s2); }

.bd-fields { display: flex; flex-direction: column; gap: 11px; margin-top: 18px; }
.bd-fields input, .bd-fields select, .bd-fields textarea {
  height: 48px; border: 1px solid var(--c-line); border-radius: var(--r-field);
  background: var(--c-card); padding: 0 14px; font-size: 15px; color: var(--c-text);
  outline: none; width: 100%; box-sizing: border-box;
}
.bd-fields textarea { height: 84px; padding: 13px 14px; line-height: 1.45; resize: vertical; }
.bd-fields input:focus, .bd-fields select:focus, .bd-fields textarea:focus {
  border-color: var(--c-blue); box-shadow: 0 0 0 3px rgba(0,103,154,.14);
}
.bd-fields button {
  height: 52px; border: none; border-radius: var(--r-field); background: var(--c-red);
  color: #fff; font-size: 17px; font-weight: 600; cursor: pointer; transition: background .2s;
}
.bd-fields button:hover { background: var(--c-red-hover); }
.bd-policy { display: flex; align-items: flex-start; gap: 10px; cursor: pointer; }
.bd-policy input { width: auto; height: auto; margin: 2px 0 0; flex: 0 0 auto; accent-color: var(--c-blue); }
.bd-policy span { font-size: 12.5px; line-height: 1.5; color: var(--c-text-2); }
.bd-promise { display: flex; align-items: center; gap: var(--s2); margin-top: var(--s3); font-size: 12.5px; color: var(--c-text-2); }
.bd-badge-ok {
  display: inline-flex; align-items: center; height: 22px; padding: 0 var(--s2);
  border-radius: var(--r-chip); background: var(--c-success-bg); border: 1px solid var(--c-success-line);
  font-weight: 600; color: var(--c-success); white-space: nowrap;
}

.bd-person { display: flex; align-items: center; gap: 14px; margin-top: 14px; }
.bd-person img {
  width: 64px; height: 64px; border-radius: 32px; object-fit: cover; object-position: top center;
  display: block; flex: 0 0 auto; background: var(--c-tint);
}
.bd-person__n { font-size: 17px; font-weight: 700; }
.bd-person__p { font-size: 13.5px; color: var(--c-text-2); margin-top: 2px; }
.bd-side__btns { display: flex; flex-direction: column; gap: 10px; margin-top: 18px; }
.bd-btn-out {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px; height: 46px;
  border: 1px solid var(--c-blue); border-radius: var(--r-field); background: var(--c-card);
  color: var(--c-blue); font-size: 15px; font-weight: 600; cursor: pointer; transition: background .2s;
}
.bd-btn-out:hover { background: var(--c-tint); color: var(--c-blue); }
.bd-side__foot {
  margin-top: var(--s4); padding-top: 14px; border-top: 1px solid var(--c-card-line);
  font-size: 13.5px; line-height: 1.6; color: var(--c-text-2);
}

.bd-links { display: flex; flex-direction: column; gap: 11px; margin-top: 14px; }
.bd-links a { font-size: 15px; line-height: 1.45; color: var(--c-blue); }
.bd-links a:hover { color: var(--c-red); }
.bd-links a.bd-links__all { font-weight: 600; }
.bd-links__price { color: var(--c-muted); white-space: nowrap; }

/* строки прайса в сайдбаре */
.bd-pricelist__head { padding: 20px 22px var(--s4); border-bottom: 1px solid var(--c-card-line); }
.bd-pricerow {
  display: flex; align-items: center; justify-content: space-between; gap: var(--s3);
  padding: 15px 22px; border-bottom: 1px solid #F0F2F3; color: var(--c-text);
  transition: background .15s;
}
.bd-pricerow:hover { background: var(--c-bg); color: var(--c-text); }
.bd-pricerow span:first-child { font-size: 15px; line-height: 1.35; }
.bd-pricerow__v { font-size: 15px; font-weight: 600; white-space: nowrap; }
.bd-pricerow.is-current { background: var(--c-tint); }
.bd-pricerow.is-current span:first-child { font-weight: 700; }
.bd-pricerow.is-current .bd-pricerow__v { color: var(--c-red); font-weight: 700; }
.bd-pricelist__foot {
  display: flex; align-items: center; justify-content: space-between; gap: var(--s3);
  padding: var(--s4) 22px; background: var(--c-bg); font-size: 15px; font-weight: 600;
}

/* ---------- контент ---------- */
.bd-body { background: var(--c-card); }
.bd-body > .bd-wrap { padding-top: 56px; padding-bottom: var(--s16); }
.bd-h2 { margin: 0 0 22px; font-size: 28px; line-height: 36px; font-weight: 700; letter-spacing: -.02em; }

/* карточки документов */
.bd-doccards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; margin-bottom: var(--s3); }
.bd-doccard {
  position: relative; border: 1px solid var(--c-card-line); border-radius: var(--r-card);
  padding: var(--s6) 26px; display: flex; flex-direction: column; gap: 10px;
  background: var(--c-card); transition: box-shadow .2s, border-color .2s;
}
.bd-doccard:hover { box-shadow: var(--sh-overlay); border-color: var(--c-tint-line); }
.bd-doccard--soft { border-color: var(--c-tint-line); background: var(--c-tint); }
.bd-doccard--soft:hover { background: var(--c-tint-line); box-shadow: none; }
.bd-doccard--soft .bd-mono { color: var(--c-kicker-tint); }
.bd-doccard__t { font-size: 19px; font-weight: 700; line-height: 1.3; color: var(--c-text); }
.bd-doccard__price { font-size: 14.5px; color: var(--c-text-2); }
.bd-doccard__more { font-size: 14.5px; font-weight: 600; color: var(--c-blue); margin-top: auto; }
/* ссылка-подложка: вложенные <a> невалидны и рвут разметку карточки */
.bd-overlay { position: absolute; inset: 0; z-index: 1; border-radius: var(--r-card); }

/* статья из редактора внутри страниц редизайна */
.bd-article { font-size: 17px; line-height: 29px; color: var(--c-text); }
.bd-article > *:first-child { margin-top: 0; }
.bd-article p { margin: 0 0 18px; padding: 0; max-width: 760px; font-size: inherit; line-height: inherit; }
.bd-article h2 {
  margin: 44px 0 20px; padding: var(--s6) 0 0; background: none; border-top: 1px solid var(--c-card-line);
  color: var(--c-text); font-size: 28px; line-height: 36px; font-weight: 700;
  letter-spacing: -.02em; scroll-margin-top: 20px;
}
.bd-article h3 { margin: var(--s8) 0 14px; padding-left: 0; font-size: 22px; line-height: 30px; font-weight: 700; letter-spacing: -.01em; }
.bd-article h4 {
  margin: 26px 0 10px; font-size: 13px; letter-spacing: .1em; text-transform: uppercase;
  font-weight: 700; color: var(--c-blue);
}
.bd-article a { color: var(--c-blue); }
.bd-article a:hover { color: var(--c-red); }
.bd-article ul, .bd-article ol { margin: 0 0 20px; padding: 0; list-style: none; max-width: 760px; }
.bd-article ul > li, .bd-article ol > li { list-style: none; margin-left: 0; font-size: inherit; }
.bd-article ul > li { position: relative; padding-left: 22px; margin-bottom: 10px; line-height: 29px; }
.bd-article ul > li:before {
  content: ''; position: absolute; left: 2px; top: 12px; width: 6px; height: 6px;
  border-radius: 3px; background: var(--c-blue);
}
.bd-article ol { counter-reset: bdol; }
.bd-article ol > li { position: relative; counter-increment: bdol; padding-left: 38px; margin-bottom: var(--s3); line-height: 29px; }
.bd-article ol > li:before {
  content: counter(bdol, decimal-leading-zero);
  font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 12.5px; font-weight: 500;
  color: var(--c-blue); position: absolute; left: 0; top: 5px;
}
.bd-article blockquote {
  margin: 0 0 22px; background: var(--c-success-bg); border: 1px solid var(--c-success-line);
  border-radius: var(--r-card); padding: 22px 26px; max-width: 760px;
}
.bd-article blockquote p:last-child { margin-bottom: 0; }
.bd-article table {
  display: block; overflow-x: auto; width: 100%; max-width: 880px; border-collapse: collapse;
  margin: 0 0 22px; font-size: 16px; line-height: 26px;
}
.bd-article th, .bd-article td { border: 1px solid var(--c-card-line); padding: 13px var(--s4); text-align: left; vertical-align: top; }
.bd-article th { background: var(--c-bg); font-weight: 600; }
.bd-article img { max-width: 100%; height: auto; border-radius: var(--r-field); }
.bd-article [style*="justify"] { text-align: left !important; }

/* тёмный призыв */
.bd-dark {
  margin-top: 44px; background: var(--c-graphite); border-radius: var(--r-card); padding: var(--s8) 34px;
  display: flex; align-items: center; justify-content: space-between; gap: 28px; flex-wrap: wrap;
}
.bd-dark__t { font-size: var(--s6); font-weight: 700; line-height: 1.3; color: #fff; letter-spacing: -.01em; max-width: 520px; }
.bd-dark__d { font-size: 15.5px; line-height: 1.6; color: var(--c-muted-ondark); margin-top: 9px; max-width: 520px; }
.bd-dark__btns { display: flex; flex-direction: column; gap: 10px; }
.bd-dark__btns .bd-btn-red { height: 52px; padding: 0 28px; }
.bd-dark__phone {
  display: inline-flex; align-items: center; justify-content: center; height: 46px; padding: 0 var(--s6);
  border: 1px solid rgba(255,255,255,.35); border-radius: var(--r-field); color: #fff;
  font-size: 16px; font-weight: 600; white-space: nowrap;
}
.bd-dark__phone:hover { color: #fff; background: rgba(255,255,255,.08); }

/* ---------- вопрос-ответ ---------- */
.bd-faq { border-top: 1px solid var(--c-card-line); }
.bd-faq > .bd-wrap {
  padding-top: 56px; padding-bottom: 60px;
  display: grid; grid-template-columns: 1fr 380px; gap: 40px; align-items: start;
}
.bd-faq h2 { margin: 0 0 26px; font-size: 32px; line-height: 40px; font-weight: 700; letter-spacing: -.02em; }
.bd-acc { display: flex; flex-direction: column; gap: var(--s3); max-width: 820px; }
.bd-acc details { border: 1px solid var(--c-card-line); border-radius: var(--r-card); background: var(--c-card); }
.bd-acc summary {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 18px;
  padding: 20px var(--s6); cursor: pointer; list-style: none;
}
.bd-acc summary::-webkit-details-marker { display: none; }
.bd-acc__q { font-size: 18px; font-weight: 700; line-height: 1.4; }
.bd-acc__ico {
  flex: 0 0 auto; width: 28px; height: 28px; border-radius: 14px; background: var(--c-tint);
  display: flex; align-items: center; justify-content: center; margin-top: 2px; transition: transform .2s;
}
.bd-acc details[open] .bd-acc__ico { transform: rotate(180deg); }
.bd-acc__a { padding: 0 var(--s6) 22px; font-size: 16.5px; line-height: 28px; max-width: 680px; }
.bd-acc__a p { margin: 0 0 var(--s3); font-size: inherit; line-height: inherit; }
.bd-acc__a p:last-child { margin-bottom: 0; }
.bd-acc__by { font-size: 13px; color: var(--c-muted); margin-bottom: var(--s2); }
.bd-ask { border: 1px solid var(--c-tint-line); background: var(--c-tint); border-radius: var(--r-card); padding: var(--s6) 26px; }
.bd-ask__t { font-size: 19px; font-weight: 700; line-height: 1.35; }
.bd-ask__d { font-size: 14.5px; line-height: 1.6; color: var(--c-text-2); margin-top: 9px; }
.bd-ask .bd-fields { margin-top: var(--s4); }
.bd-ask .bd-fields button { height: 48px; font-size: 16px; }
.bd-ask__all { display: inline-block; margin-top: 14px; font-size: 14.5px; font-weight: 600; color: var(--c-blue); }

/* ---------- адаптив общего набора ---------- */
@media (max-width: 1100px) {
  .bd-hero > .bd-wrap, .bd-faq > .bd-wrap { grid-template-columns: 1fr; }
  .bd-side--sticky { position: static; }
  .bd-doccards { grid-template-columns: repeat(2, 1fr); }
  .bd-facts { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 760px) {
  .bd-hero > .bd-wrap { padding-top: 28px; padding-bottom: var(--s8); }
  .bd-hero h1, .bd-h1 { font-size: 30px; line-height: 38px; }
  .bd-lead { font-size: 16.5px; line-height: 28px; }
  .bd-facts { grid-template-columns: 1fr; }
  .bd-btn-red, .bd-btn-phone { width: 100%; justify-content: center; }
  .bd-cta__note { max-width: none; }
  .bd-sample { flex-direction: column; gap: var(--s4); }
  .bd-sample__img { width: 100%; max-width: 280px; }
  .bd-body > .bd-wrap { padding-top: 36px; padding-bottom: 44px; }
  .bd-doccards { grid-template-columns: 1fr; }
  .bd-article h2, .bd-h2 { font-size: var(--s6); line-height: var(--s8); }
  .bd-faq h2 { font-size: 26px; line-height: 34px; }
  .bd-dark { padding: var(--s6) 22px; }
  .bd-dark__btns { width: 100%; }
  .bd-dark__btns .bd-btn-red, .bd-dark__phone { width: 100%; }
}

/* ==========================================================================
   13. КОМПОНЕНТЫ НОВОСТЕЙ (.bd-* — продолжение общего набора)
   Статья и карточки материалов. Вынесено сюда, а не в шаблон новости,
   потому что теми же классами собирается лента новостей, а тёмная карточка
   формы и двухколоночная сетка нужны и другим страницам.
   ========================================================================== */

/* первый экран без сайдбара: заголовок, дата, лид на всю ширину колонки */
.bd-hero--wide > .bd-wrap { grid-template-columns: 1fr; padding-top: 40px; padding-bottom: 40px; }
.bd-hero__in { max-width: 820px; }
.bd-hero--wide h1 { margin-top: 18px; font-size: 40px; line-height: 48px; }

/* строка выходных данных: рубрика, дата, время чтения */
.bd-meta { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.bd-meta .bd-chip { height: 26px; font-size: 12.5px; }
.bd-meta__t {
  font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 13px; color: var(--c-muted);
}

/* поделиться. Ссылки настоящие: telegram и whatsapp принимают адрес
   страницы в параметрах, копирование ссылки — кнопка с обработчиком. */
.bd-share { display: flex; align-items: center; gap: 10px; margin-top: var(--s6); flex-wrap: wrap; }
.bd-share__l { font-size: 14px; color: var(--c-text-2); margin-right: var(--s1); }
.bd-share a, .bd-share button {
  display: inline-flex; align-items: center; gap: 8px; height: 36px; padding: 0 14px;
  border: 1px solid var(--c-line); border-radius: var(--r-field); background: var(--c-card);
  font-size: 14px; font-weight: 600; color: var(--c-text); cursor: pointer;
  transition: border-color .2s, color .2s;
}
.bd-share a:hover, .bd-share button:hover { border-color: var(--c-blue); color: var(--c-blue); }
.bd-share button.is-done { border-color: var(--c-success); color: var(--c-success); }

/* две колонки контент + сайдбар (у первого экрана своя сетка) */
.bd-cols { display: grid; grid-template-columns: 1fr 340px; gap: var(--s12); align-items: start; }
.bd-cols__main { min-width: 0; max-width: 760px; }

/* тёмная карточка формы в сайдбаре */
.bd-card--dark { background: var(--c-graphite); border-color: var(--c-graphite); }
.bd-card--dark .bd-card__t, .bd-card--dark .bd-card__st { color: #fff; }
.bd-card--dark .bd-card__d, .bd-card--dark .bd-mono { color: var(--c-muted-ondark); }
.bd-card--dark .bd-fields input,
.bd-card--dark .bd-fields textarea,
.bd-card--dark .bd-fields select {
  background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.25); color: #fff;
}
.bd-card--dark .bd-fields input::placeholder,
.bd-card--dark .bd-fields textarea::placeholder { color: rgba(255,255,255,.62); }
.bd-card--dark .bd-fields input:focus,
.bd-card--dark .bd-fields textarea:focus {
  border-color: #fff; box-shadow: 0 0 0 3px rgba(255,255,255,.16);
}
.bd-card--dark .bd-policy span { color: var(--c-muted-ondark); }
.bd-card--dark .bd-policy a { color: #fff; text-decoration: underline; }
.bd-card--dark .bd-side__foot { border-top-color: rgba(255,255,255,.12); color: var(--c-muted-ondark); }
.bd-card--dark .bd-side__foot a { color: #fff; }

/* списки статьи строками-карточками (макет статьи).
   Модификатор, а не общее правило: на карточках услуг и продукции списки
   уже отрисованы точками и моно-нумерацией, менять их незачем. */
.bd-article--rows ul, .bd-article--rows ol {
  display: flex; flex-direction: column; gap: 1px; margin: 0 0 22px; padding: 0;
  background: var(--c-card-line); border: 1px solid var(--c-card-line);
  border-radius: var(--r-card); overflow: hidden; counter-reset: bdrow;
}
.bd-article--rows ul > li, .bd-article--rows ol > li {
  background: var(--c-card); margin: 0; padding: 18px var(--s6) 18px 66px;
  position: relative; font-size: 16.5px; line-height: 27px;
}
.bd-article--rows ul > li:before, .bd-article--rows ol > li:before {
  counter-increment: bdrow; content: counter(bdrow);
  position: absolute; left: var(--s6); top: 15px; width: 30px; height: 30px;
  border-radius: 15px; background: var(--c-tint); color: var(--c-blue);
  display: flex; align-items: center; justify-content: center;
  font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 13px; font-weight: 500;
}

/* подпись специалиста под текстом */
.bd-sign {
  margin-top: 40px; padding-top: 28px; border-top: 1px solid var(--c-card-line);
  display: flex; align-items: center; gap: var(--s4); flex-wrap: wrap;
}
.bd-sign .bd-person { margin-top: 0; flex: 1 1 240px; }
.bd-sign .bd-person img { width: 56px; height: 56px; border-radius: 28px; }
.bd-sign .bd-btn-out { height: 44px; padding: 0 18px; flex: 0 0 auto; }

/* «Читайте также» и лента: карточки материалов */
.bd-also { background: var(--c-bg); border-top: 1px solid var(--c-card-line); }
.bd-also > .bd-wrap { padding-top: 52px; padding-bottom: 60px; }
.bd-also__head {
  display: flex; align-items: flex-end; justify-content: space-between;
  gap: var(--s6); margin-bottom: var(--s6); flex-wrap: wrap;
}
.bd-also__head h2 { margin: 0; font-size: 28px; line-height: 36px; font-weight: 700; letter-spacing: -.02em; }
.bd-also__all { font-size: 15.5px; font-weight: 600; white-space: nowrap; color: var(--c-blue); }
.bd-newscards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.bd-newscard {
  background: var(--c-card); border: 1px solid var(--c-card-line); border-radius: var(--r-card);
  padding: 20px 22px 22px; display: flex; flex-direction: column; gap: var(--s2);
  color: var(--c-text); transition: box-shadow .2s, border-color .2s;
}
.bd-newscard:hover { box-shadow: var(--sh-overlay); border-color: var(--c-tint-line); color: var(--c-text); }
.bd-newscard__d { font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 12px; color: var(--c-muted); }
.bd-newscard__t { font-size: 18px; font-weight: 700; line-height: 26px; }

@media (max-width: 1100px) {
  .bd-cols { grid-template-columns: 1fr; }
  .bd-cols__main { max-width: none; }
  .bd-newscards { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 760px) {
  .bd-hero--wide > .bd-wrap { padding-top: 28px; padding-bottom: var(--s8); }
  .bd-hero--wide h1 { font-size: 30px; line-height: 38px; }
  .bd-share { gap: var(--s2); }
  .bd-share__l { width: 100%; margin: 0 0 var(--s1); }
  .bd-article--rows ul > li, .bd-article--rows ol > li { padding: 16px 18px 16px 58px; }
  .bd-article--rows ul > li:before, .bd-article--rows ol > li:before { left: 16px; }
  .bd-newscards { grid-template-columns: 1fr; }
  .bd-also > .bd-wrap { padding-top: 36px; padding-bottom: 40px; }
  .bd-also__head h2 { font-size: var(--s6); line-height: var(--s8); }
}

/* ---------- лента новостей ---------- */
/* колонка контента шире, чем в статье: карточки, а не текст в 760 */
.bd-cols__main--wide { max-width: none; }

/* строка поиска и периодов в первом экране */
.bd-filterbar { display: flex; align-items: center; gap: 20px; margin-top: 26px; flex-wrap: wrap; }
.bd-search { position: relative; flex: 1 1 320px; max-width: 460px; display: flex; gap: var(--s2); }
.bd-search svg { position: absolute; left: 15px; top: 50%; transform: translateY(-50%); color: var(--c-muted); }
.bd-search input {
  width: 100%; height: 48px; border: 1px solid var(--c-line); border-radius: var(--r-field);
  background: var(--c-card); padding: 0 var(--s4) 0 43px; font-size: 15px; color: var(--c-text);
  outline: none; box-sizing: border-box;
}
.bd-search input:focus { border-color: var(--c-blue); box-shadow: 0 0 0 3px rgba(0,103,154,.14); }
.bd-search button {
  height: 48px; padding: 0 20px; border: 1px solid var(--c-blue); border-radius: var(--r-field);
  background: var(--c-card); color: var(--c-blue); font-size: 15px; font-weight: 600;
  cursor: pointer; white-space: nowrap; transition: background .2s;
}
.bd-search button:hover { background: var(--c-tint); }

.bd-chipset { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.bd-chipset__l { font-size: 14px; color: var(--c-text-2); }
.bd-chipset__i {
  display: inline-flex; align-items: center; height: 40px; padding: 0 15px;
  border-radius: 20px; border: 1px solid var(--c-line); background: var(--c-card);
  font-size: 14px; font-weight: 500; color: var(--c-text); transition: border-color .2s;
}
.bd-chipset__i:hover { border-color: var(--c-blue); color: var(--c-text); }
.bd-chipset__i.is-on {
  background: var(--c-blue); border-color: var(--c-blue); color: #fff; font-weight: 600;
}
.bd-chipset__i.is-on:hover { color: #fff; }

/* карточка материала в ленте */
.bd-newsfeed { display: flex; flex-direction: column; gap: 20px; }
.bd-newsrow {
  display: block; padding: 22px 26px 24px; background: var(--c-card);
  border: 1px solid var(--c-card-line); border-radius: var(--r-card);
  color: var(--c-text); transition: box-shadow .2s, border-color .2s;
}
.bd-newsrow:hover { box-shadow: var(--sh-overlay); border-color: var(--c-tint-line); color: var(--c-text); }
.bd-newsrow__meta { display: flex; align-items: center; gap: var(--s3); flex-wrap: wrap; }
.bd-newsrow__meta .bd-chip { height: 24px; padding: 0 9px; font-size: 12px; background: var(--c-tint); }
.bd-newsrow__d {
  font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 12.5px; color: var(--c-muted);
}
.bd-newsrow__t { display: block; margin-top: 10px; font-size: 20px; font-weight: 700; line-height: 28px; }
.bd-newsrow__x { display: block; margin-top: var(--s2); font-size: 15.5px; line-height: 26px; color: var(--c-text-2); }
.bd-newsrow--lead { padding: 26px 28px 28px; }
.bd-newsrow--lead .bd-newsrow__meta .bd-chip { height: 26px; padding: 0 10px; font-size: 12.5px; }
.bd-newsrow--lead .bd-newsrow__t { margin-top: 14px; font-size: 28px; line-height: 36px; letter-spacing: -.02em; }
.bd-newsrow--lead .bd-newsrow__x { margin-top: var(--s3); font-size: 16.5px; line-height: 27px; max-width: 680px; }
.bd-newsrow__more { display: block; margin-top: var(--s4); font-size: 15px; font-weight: 600; color: var(--c-blue); }

/* «Показать больше» и счётчик */
.bd-more {
  display: flex; align-items: center; justify-content: space-between;
  gap: 20px; margin-top: var(--s8); flex-wrap: wrap;
}
.bd-btn-out--wide { height: 52px; padding: 0 30px; font-size: 16px; }
.bd-btn-out.is-loading { opacity: .6; pointer-events: none; }
.bd-more__c {
  font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 12.5px; color: var(--c-muted);
}

/* пусто по поиску */
.bd-empty {
  border: 1px solid var(--c-card-line); border-radius: var(--r-card);
  padding: var(--s8) 30px; background: var(--c-card);
}
.bd-empty__t { font-size: 21px; font-weight: 700; line-height: 1.3; }
.bd-empty__d { margin-top: 10px; font-size: 16px; line-height: 27px; color: var(--c-text-2); max-width: 520px; }
.bd-empty .bd-side__btns { max-width: 280px; }

/* короткий отзыв в сайдбаре */
.bd-quote { margin-top: 14px; padding-top: 14px; border-top: 1px solid #F0F2F3; }
.bd-quote__h { display: flex; align-items: baseline; justify-content: space-between; gap: var(--s3); }
.bd-quote__n { font-size: 15.5px; font-weight: 700; }
.bd-quote__d {
  font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 12px;
  color: var(--c-muted); white-space: nowrap;
}
.bd-quote__t { margin-top: var(--s2); font-size: 14.5px; line-height: 24px; color: var(--c-text-2); }

@media (max-width: 760px) {
  .bd-filterbar { gap: var(--s3); margin-top: 20px; }
  .bd-search { flex: 1 1 100%; max-width: none; }
  .bd-chipset__l { width: 100%; }
  .bd-chipset__i { height: 36px; padding: 0 13px; }
  .bd-newsrow, .bd-newsrow--lead { padding: 18px 20px 20px; }
  /* анонс на узком экране в три строки: полный текст занимал восемь,
     и в ленте оставалось меньше двух карточек на экран */
  .bd-newsrow__x {
    display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
  }
  .bd-newsrow--lead .bd-newsrow__t { font-size: 22px; line-height: 30px; }
  .bd-newsrow__t { font-size: 18px; line-height: 26px; }
  .bd-more { gap: var(--s3); }
  .bd-btn-out--wide { width: 100%; }
  .bd-empty { padding: var(--s6) 20px; }
}

/* ==========================================================================
   14. ВОПРОСЫ И ОТВЕТЫ (.bd-tile, .bd-taglinks, аккордеон в две колонки)
   Аккордеон .bd-acc описан в разделе 12: он делался под секцию «вопрос-ответ»
   карточек услуг, но таблица questions пуста и до этого раздела не выводился
   ни разу. Здесь он получает реальные данные — 97 вопросов из админки.
   ========================================================================== */

/* первый экран раздела: лид на всю ширину колонки */
.bd-hero__in--full { max-width: none; }

/* плитки «выберите свою ситуацию» */
.bd-tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--s4); margin-top: 30px; }
.bd-tile {
  display: flex; flex-direction: column; gap: 10px; padding: 22px var(--s6);
  background: var(--c-card); border: 1px solid var(--c-card-line); border-radius: var(--r-card);
  color: var(--c-text); transition: box-shadow .2s, border-color .2s;
}
.bd-tile:hover { box-shadow: var(--sh-overlay); border-color: var(--c-tint-line); color: var(--c-text); }
.bd-tile__t { font-size: 17px; font-weight: 700; line-height: 1.35; }
.bd-tile__d { font-size: 14px; line-height: 1.5; color: var(--c-text-2); }

/* аккордеон вопросов: колонка карточек вместо сетки раздела 12 */
.bd-cols .bd-acc { max-width: none; gap: var(--s3); }
.bd-acc__i { border: 1px solid var(--c-card-line); border-radius: var(--r-card); background: var(--c-card); }
.bd-acc__i details { border: none; border-radius: 0; background: none; }
.bd-acc__i summary {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 20px;
  padding: 22px 26px; cursor: pointer; list-style: none;
}
.bd-acc__i summary::-webkit-details-marker { display: none; }
.bd-acc__i summary:hover .bd-acc__q { color: var(--c-blue); }
.bd-acc__i .bd-acc__q { font-size: 20px; font-weight: 700; line-height: 1.4; }
.bd-acc__i .bd-acc__ico { color: var(--c-blue); }
.bd-acc__i .bd-acc__a { padding: 0 26px 24px; max-width: none; }
.bd-acc__i .bd-acc__by { font-size: 13.5px; color: var(--c-muted); margin-bottom: var(--s3); }
.bd-acc__when { font-family: 'JetBrains Mono', ui-monospace, monospace; font-size: 12.5px; }
.bd-acc__when:before { content: '·'; margin: 0 6px; }
.bd-acc__link { display: inline-block; margin-top: var(--s4); font-size: 14.5px; font-weight: 600; color: var(--c-blue); }
/* фокус с клавиатуры виден: summary — основной элемент управления списком */
.bd-acc__i summary:focus-visible { outline: 2px solid var(--c-blue); outline-offset: -2px; border-radius: var(--r-card); }

/* текст ответа из редактора: те же правила, что у статьи, но компактнее */
.bd-prose { font-size: 16.5px; line-height: 28px; color: var(--c-text); max-width: 760px; }
.bd-prose p { margin: 0 0 14px; padding: 0; font-size: inherit; line-height: inherit; }
.bd-prose p:last-child { margin-bottom: 0; }
.bd-prose a { color: var(--c-blue); }
.bd-prose a:hover { color: var(--c-red); }
.bd-prose ul, .bd-prose ol { margin: 0 0 14px; padding: 0; list-style: none; }
.bd-prose ul > li, .bd-prose ol > li { list-style: none; margin-left: 0; position: relative; padding-left: 20px; margin-bottom: var(--s2); }
.bd-prose ul > li:before {
  content: ''; position: absolute; left: 2px; top: 11px; width: 6px; height: 6px;
  border-radius: 3px; background: var(--c-blue);
}
.bd-prose ol { counter-reset: bdprose; }
.bd-prose ol > li { padding-left: 28px; counter-increment: bdprose; }
.bd-prose ol > li:before {
  content: counter(bdprose) '.'; position: absolute; left: 0; top: 0;
  font-weight: 600; color: var(--c-blue);
}
.bd-prose img { max-width: 100%; height: auto; border-radius: var(--r-field); }
.bd-prose table { display: block; overflow-x: auto; width: 100%; border-collapse: collapse; margin: 0 0 14px; font-size: 15.5px; }
.bd-prose th, .bd-prose td { border: 1px solid var(--c-card-line); padding: 10px var(--s3); text-align: left; vertical-align: top; }
.bd-prose th { background: var(--c-bg); font-weight: 600; }
.bd-prose [style*="justify"] { text-align: left !important; }

/* ссылки-таблетки на услуги под ответом */
.bd-taglinks { display: flex; flex-wrap: wrap; gap: 10px; margin-top: var(--s4); }
.bd-taglinks a {
  display: inline-flex; align-items: center; height: 38px; padding: 0 15px;
  border: 1px solid var(--c-line); border-radius: 19px; background: var(--c-card);
  font-size: 14.5px; font-weight: 500; color: var(--c-text); transition: border-color .2s, color .2s;
}
.bd-taglinks a:hover { border-color: var(--c-blue); color: var(--c-blue); }
.bd-taglinks--wide { margin-top: var(--s6); }

/* белая карточка формы «задать вопрос» (в сайдбаре раздела) */
.bd-ask--plain {
  background: var(--c-card); border-color: var(--c-card-line); box-shadow: var(--sh-raised);
  padding: 26px var(--s6);
}
.bd-ask--plain .bd-ask__t { font-size: 21px; letter-spacing: -.01em; }

@media (max-width: 1100px) {
  .bd-tiles { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 760px) {
  .bd-tiles { grid-template-columns: 1fr; gap: var(--s3); margin-top: var(--s6); }
  .bd-acc__i summary { padding: 18px 20px; }
  .bd-acc__i .bd-acc__q { font-size: 17px; }
  .bd-acc__i .bd-acc__a { padding: 0 20px 20px; }
  .bd-prose { font-size: 16px; line-height: 27px; }
  .bd-taglinks a { height: 36px; padding: 0 13px; font-size: 14px; }
}

/* ==========================================================================
   19. Статья карточки услуги: фиксы и блоки внутри текста из БД
   ========================================================================== */

/* Баг размера текста в списках: в старой теме есть «article ul{font-size:.875rem}»,
   а у .bd-article ul>li стоит font-size:inherit — пункты получались 14px против
   17px у абзацев. Задаём размер самим спискам, наследуя от .bd-article. */
.bd-article ul,
.bd-article ol { font-size: inherit; line-height: 29px; }

/* Плитки и карточки внутри статьи: колонок меньше, чем в широких секциях,
   потому что колонка текста — 805px, а не вся ширина страницы. */
.bd-article .bd-tiles { grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 0 0 24px; }
.bd-article .bd-tiles--2 { grid-template-columns: repeat(2, 1fr); }
.bd-article .bd-tile { padding: 18px 20px; gap: 8px; }
.bd-article .bd-doccards { grid-template-columns: repeat(2, 1fr); gap: 14px; margin: 0 0 24px; }
.bd-article .bd-doccard { padding: 18px 20px; gap: 6px; }
.bd-article .bd-doccard__t { font-size: 16px; font-weight: 600; line-height: 1.35; }
.bd-article .bd-doccard__d { font-size: 14px; line-height: 22px; color: var(--c-text-2); }

/* Врезка-акцент. blockquote в статье оформлен «зелёным» (успех), для
   предупреждений и разграничений нужен нейтральный и красный варианты. */
.bd-article .bd-note { margin: 0 0 24px; padding: 20px 24px; max-width: 800px;
	background: var(--c-tint); border: 1px solid var(--c-tint-line); border-radius: var(--r-card); }
.bd-article .bd-note > .bd-mono { margin-bottom: 8px; }
.bd-article .bd-note p:last-child { margin-bottom: 0; }
.bd-article .bd-note--warn { background: #FFF7F7; border-color: #F3D6D7; }
.bd-article .bd-note--plain { background: #fff; border-color: var(--c-card-line); }

/* Пары «параметр — значение»: короткая справка по документу без таблицы */
.bd-article .bd-kv { margin: 0 0 24px; max-width: 800px; border: 1px solid var(--c-card-line);
	border-radius: var(--r-card); overflow: hidden; background: var(--c-card); }
.bd-article .bd-kv__r { display: grid; grid-template-columns: 260px 1fr; gap: 20px;
	padding: 14px 22px; border-bottom: 1px solid #F0F2F3; }
.bd-article .bd-kv__r:last-child { border-bottom: 0; }
.bd-article .bd-kv__k { font-size: 14.5px; color: var(--c-text-2); }
.bd-article .bd-kv__v { font-size: 16px; }
.bd-article .bd-kv__v b { font-weight: 600; }

/* Подзаголовки h3 внутри длинных перечислений — компактнее, без линии сверху */
.bd-article h3 { margin: 28px 0 12px; font-size: 20px; line-height: 28px; font-weight: 700; }

/* Сайдбар колонки контента короче статьи — прикрепляем, чтобы справа не
   оставалось пустого поля на всю длину текста. */
.sv-item .bd-body .bd-side { position: sticky; top: 88px; }

@media (max-width: 1100px) {
	.sv-item .bd-body .bd-side { position: static; }
}
@media (max-width: 900px) {
	.bd-article .bd-tiles,
	.bd-article .bd-tiles--2 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
	.bd-article .bd-tiles,
	.bd-article .bd-tiles--2,
	.bd-article .bd-doccards { grid-template-columns: 1fr; }
	.bd-article .bd-kv__r { grid-template-columns: 1fr; gap: 4px; padding: 12px 16px; }
	.bd-article .bd-note { padding: 16px 18px; }
}
/* Длинные перечисления — в две колонки, чтобы список из 10-18 пунктов
   не растягивался простынёй на весь экран. */
.bd-article .bd-cols2 { columns: 2; column-gap: 36px; max-width: 820px; margin: 0 0 22px; }
.bd-article .bd-cols2 > li { break-inside: avoid; margin-bottom: 8px; }

@media (max-width: 640px) {
	.bd-article .bd-cols2 { columns: 1; }
}
/* SEO-блок на главной: та же типографика статьи, отбит фоном от секций лендинга */
.pg-seo { background: #fff; border-top: 1px solid var(--c-card-line); }
.pg-seo > .pg-wrap { padding-top: 56px; padding-bottom: 60px; }
.pg-seo .bd-article { max-width: 880px; }
.pg-seo .bd-article > h2:first-child { margin-top: 0; border-top: 0; padding-top: 0; }

@media (max-width: 760px) {
	.pg-seo > .pg-wrap { padding-top: 36px; padding-bottom: 40px; }
}
