/* Исправления визуальных и доступностных дефектов prokupol.ru (12.11.2026).
   Подключается отдельным файлом, шаблон не правится. Откат — убрать <link>. */

/* 1. Цена. В 561 карточке блок цены пустой — выглядело как обрыв вёрстки.
      Правило срабатывает ТОЛЬКО на пустом блоке: та карточка, где цена есть,
      содержит дочерние элементы и остаётся нетронутой. */
.cost.prices.detail:not(:has(*))::before {
  content: "Цена по запросу";
  display: block;
  font-size: 18px;
  font-weight: 600;
  color: #17689B;
  padding: 4px 0 2px;
}
.cost.prices.detail:not(:has(*))::after {
  content: "Зависит от комплектации и объёма — пришлём расчёт по заявке";
  display: block;
  font-size: 12px;
  line-height: 1.35;
  color: #6B7480;
  padding-bottom: 6px;
}

/* 2. Блок разделов каталога на главной: его данные грузились ajax-запросом,
      которого в статической копии нет. Оставалась полоса 101 px со спиннером. */
.drag-block.container.CATALOG_SECTIONS {
  display: none !important;
}

/* 3. Спиннеры ленивой загрузки: показываем только реально загруженные фоны. */
.lazy:not(.lazyloaded) {
  background-image: none !important;
}

/* 4. Контраст: «Заказать звонок» в шапке — 10 px, #2196E0 на белом = 3,1:1,
      ниже нормы 4,5:1. Тёмный оттенок того же синего даёт 5,1:1. */
.header .callback-block,
.header__top .callback-block,
.header__top-item .callback-block {
  color: #17689B !important;
}

/* 5. Кнопки-иконки без текста: даём им видимый фокус и подсказку курсором. */
.btn-search:focus-visible,
.pkz-close:focus-visible {
  outline: 2px solid #17689B;
  outline-offset: 2px;
}

/* 6. Скрытый H1 там, где его не было (главная): нужен поиску и скринридеру,
      вид страницы не меняет. */
.sr-only {
  position: absolute !important;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0);
  white-space: nowrap; border: 0;
}

/* 7. Блок «Нужен расчёт» на страницах услуг: в контенте не было ни одного
      призыва к действию. Вставляется в разметку скриптом fix_bc.py. */.pkz-cta {
  max-width: 1180px;
  margin: 32px auto 8px;
  padding: 0 20px;
}
.pkz-cta__inner {
  display: flex; align-items: center; justify-content: space-between; gap: 20px;
  padding: 22px 24px;
  border: 1px solid #DCE6EE;
  border-left: 4px solid #2196E0;
  border-radius: 12px;
  background: #F5FAFE;
  font-family: "Open Sans", "Segoe UI", Arial, sans-serif;
}
.pkz-cta__title { font-size: 18px; font-weight: 600; color: #2B2B2B; line-height: 1.3; }
.pkz-cta__sub { font-size: 13px; color: #5C646C; margin-top: 4px; line-height: 1.45; }
.pkz-cta__btn { white-space: nowrap; flex: 0 0 auto; }
@media (max-width: 760px) {
  .pkz-cta { margin-top: 22px; padding: 0 12px; }
  .pkz-cta__inner { flex-direction: column; align-items: stretch; text-align: left; padding: 18px; gap: 14px; }
  .pkz-cta__title { font-size: 16px; }
  .pkz-cta__btn { width: 100%; text-align: center; }
}

/* 8. Баннер страницы с утраченной картинкой: фон прозрачный, а текст в нём белый —
      получалось белое на белом. Цветная подложка возвращает контраст.
      Реальные баннеры не трогаем: их картинка лежит поверх этого цвета. */
.maxwidth-banner.only-bg {
  background-color: #1B7FBF;
}

/* 9. Заголовок и вводный текст в таком баннере — белые: если фон пришёл
      из картинки (есть на части страниц), ничего не меняем. */
.maxwidth-banner.only-bg h1,
.maxwidth-banner.only-bg .intro-text {
  color: #FFFFFF;
}

/* 10. Баннер без картинки был высотой 500 px — под текстом оставалась голая
       синяя полоса. Высоту задаёт картинка, которой нет: подстраиваем под текст. */
.maxwidth-banner.only-bg {
  height: auto !important;
  min-height: 0 !important;
  padding: 34px 0 !important;
}

/* 11. Второй H1 на страницах: один заголовок первого уровня на страницу.
       Второй по счёту понижается до H2 скриптом fix_h1.py. */

/* 12. Внутри баннера высоту 500 px держит обёртка — без картинки это пустая полоса. */
.maxwidth-banner.only-bg .banner-wrapper {
  height: auto !important;
  min-height: 0 !important;
  padding-top: 8px;
  padding-bottom: 8px;
}

/* 13. Высоту 500 px держит внутренний контейнер баннера (min-height в шаблоне),
       а содержимого без картинки на 274 px. Без этого остаётся пустая полоса. */
.maxwidth-banner.only-bg .banner-wrapper .maxwidth-theme {
  min-height: 0 !important;
  height: auto !important;
}

/* 14. Контраст мелких серых подписей в шапке и ссылок-почт:
       #777777 и #858585 на белом дают 4,47 и 3,69 при норме 4,5. */
.top-description.addr,
.address.tables.inline-block,
.header__top .address {
  color: #5C646C !important;
}
a[href^="mailto"] {
  color: #17689B !important;
}

/* 15. «Все статьи» — серый #999 на белом (2,8:1). */
.show_all > span,
.show_all span.all {
  color: #5C646C !important;
}
