/* =====================================================================
   РАДУГА — редизайн каталога (структурный проход под макет)
   ---------------------------------------------------------------------
   Оверрайд поверх вендорной темы Sotbit B2C. Ядро/тему не правим — всё здесь,
   в /local/, легко откатить. Вид карточки — по макету клиента (23.09).
   Bootstrap-утилиты вендора (mt-1, pb-1, gap-3) идут с !important — только их и перебиваем !important.

   Загружается глобально из header.php; правила матчатся только в каталоге
   (класс .catalog__wrapper), другие страницы не задеты.
   ===================================================================== */

/* --- 1. Сетка каталога: крупные карточки, 4 в ряд (макет), адаптив вниз -----
   Базовая тема даёт 6→5→4→3→2. Таргетим только главный листинг (.catalog__wrapper),
   селектор из 2 классов по специфичности выше базового (1 класс) — без !important. */
.catalog__wrapper .catalog-section__container {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
@media (max-width: 1200px) {
  .catalog__wrapper .catalog-section__container {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 900px) {
  .catalog__wrapper .catalog-section__container {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 576px) {
  /* minmax(0,…), НЕ 1fr: у 1fr минимум = min-content, а слайдер картинок раздувает его до ∞ →
     на телефоне колонка уходила в 16 777 202px (карточки исчезали). */
  .catalog__wrapper .catalog-section__container {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* --- 2. Карточка каталога (макет клиента + правки 23.09) ------------------
   Структура (обёртки .catalog-item__top / .catalog-item__order — в card/template.php), эскиз 24.09:
     [фото 48%: бейдж сверху, ЦЕНА плашкой снизу] [название — ровно 2 строки]
                                                  [● ● ● ●  кружки 24px, 4 в ряд]
                                                  [голубой — выбранный цвет, серым]
     [Размер / Количество:]  ячейки 3 в ряд: размер, [ввод | ▲▼], полоска наличия снизу
     [(⚡ 1 клик) (   Добавить в корзину → 🛒, если не влезает   ) (♡)]
   Отзывы/рейтинг и «✓ N шт» убраны — наличие показывает цветная полоска ячейки (без надписей).
   Цвета — явные (сайт всегда в светлой теме, см. header.php). */

.catalog__wrapper .catalog-section__container {
  column-gap: 14px;
  row-gap: 14px;
}

.catalog__wrapper .catalog-item {
  border: 1px solid #ececf1;
  border-radius: 16px;
  padding: 16px;
  background: #fff;
  box-shadow: 0 1px 3px rgba(31, 31, 41, .04);
  transition: box-shadow .2s ease;
}
.catalog__wrapper .catalog-item:hover { box-shadow: 0 8px 24px rgba(31, 31, 41, .08); }

/* Выравнивание по ряду: верх (картинка|инфо) и зона заказа у всех карточек ряда начинаются на одной
   линии — даже если у товара нет цветов или название в 2 строки (CSS subgrid: 2 строки сетки на карточку).
   contain:size у картинки ОБЯЗАТЕЛЕН: без него слайдер фото даёт «бесконечную» собственную ширину и
   высота ряда в subgrid уходит в миллионы px. Маркер ленивой инициализации — absolute, вне сетки. */
@supports (grid-template-rows: subgrid) {
  .catalog__wrapper:not([data-template-variant=list]) .catalog-section__item-wrapper,
  .catalog__wrapper:not([data-template-variant=list]) .catalog-item {
    display: grid;
    grid-row: span 2;
    grid-template-rows: subgrid;
    row-gap: 0;
  }
  .catalog__wrapper .catalog-item > [id^="lazy-load-"] { position: absolute; }
  .catalog__wrapper .catalog-item__image-container { contain: size; }
}

/* Картинка: крупнее, без подложки; бейдж («Распродажа») — на картинке, слева сверху.
   Контейнер ОБЯЗАТЕЛЬНО position: relative — внутри абсолютный оверлей «листания фото при наведении»
   (.overlay-pagination-container, 100%×100%): при static он накрывал всю карточку и перехватывал клики. */
.catalog__wrapper .catalog-item__image-container {
  position: relative;
  overflow: hidden;
  background: transparent;
  border-radius: 12px;
}
.catalog__wrapper .catalog-item .catalog-item__badges {
  top: 6px;
  left: 6px;
  right: auto;
  bottom: auto;
  transform: none;
  justify-content: flex-start;
  padding-right: 0;
  max-width: calc(100% - 12px);
  gap: 4px;
}
/* цвет бейджа из свойства (HINT) приходит inline-стилем — перебить можно только !important */
.catalog__wrapper .catalog-item .catalog-item__badges .badge {
  height: 22px;
  padding: 0 8px;
  border-radius: 7px;
  background-color: #fde6ec !important;
  color: #e32b52;
  font-size: 11px;
  font-weight: 500;
  line-height: 22px;
}

/* Одна кнопка заказа: «Купить в 1 клик» убираем везде на карточках листинга */
.catalog__wrapper .catalog-item__one-click-btn { display: none; }

/* Горизонталь [картинка | тело] на всех ширинах (на телефоне карточка той же ширины, что на десктопе). */
.catalog__wrapper .catalog-item__top {
  position: relative;          /* опора для плашки цены на фото */
  container-type: inline-size; /* 48cqw = ширина (и высота) квадратного фото */
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 14px;
}
.catalog__wrapper .catalog-item__top .catalog-item__image-container {
  flex: 0 0 48%;
  width: 48%;
}
.catalog__wrapper .catalog-item__slider-pagination { display: none; }

/* Правая колонка: НАЗВАНИЕ → цвет (серым) → цена → «Цвет:» кружки.
   Вендор рендерит цену и info разными блоками — «расшториваем» info (display:contents),
   его дети встают в один флекс с ценой, порядок задаём order'ом. */
.catalog__wrapper .catalog-item__body {
  display: flex;
  flex-direction: column;
  flex: 1 1 0;
  min-width: 0;               /* длинные названия не распирают колонку */
  gap: 6px;
}
.catalog__wrapper .catalog-item__body .catalog-item__info { display: contents; }

.catalog__wrapper .catalog-item__body .catalog-item__name {
  order: -3;
  margin: 0;
  color: #1f1f29;
  font-size: 15px;
  font-weight: 500;
  line-height: 20px;
  -webkit-line-clamp: 2;       /* ровно 2 строки у всех карточек; полное название — в подсказке (title) */
  height: 40px;
}
/* Цвет — без заголовка «Цвет:»: сначала кружки, под ними название выбранного цвета мелким серым
   (меняется при клике, raduga_size_grid.js); у кружка — подсказка с названием (title). */
.catalog__wrapper .catalog-item__body .catalog-item__sku-colors { order: 1; }
.catalog__wrapper .catalog-item__body .catalog-item__info > .catalog-item__prop {
  order: 2;
  margin: -2px 0 0;
  color: #7a7a86;
  font-size: 12px;
  line-height: 16px;
  text-transform: lowercase;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.catalog__wrapper .catalog-item__body .catalog-item__info > .catalog-item__prop::first-letter { text-transform: uppercase; }
.catalog__wrapper .catalog-item__body .catalog-item__info > .catalog-item__prop > .catalog-item__prop-name { display: none; }
.catalog__wrapper .catalog-item .catalog-item__sku-block .catalog-item__prop-name { display: none; }

/* Цена — элемент дизайна: белая плашка в левом нижнем углу фото (правая колонка — под название и цвета). */
.catalog__wrapper .catalog-item__body .catalog-item__price-container {
  position: absolute;
  z-index: 2;
  left: 6px;
  top: calc(48cqw - 36px);
  margin: 0;
  padding: 3px 10px;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 2px 10px rgba(31, 31, 41, .14);
}
.catalog__wrapper .catalog-item__body .catalog-item__price {
  color: #1f1f29;
  font-size: 17px;
  font-weight: 700;
  line-height: 24px;
}

/* Отзывы/рейтинг и «✓ N шт» не показываем ни в одной карточке (каталог, «похожие» в деталке):
   наличие — цветными точками в таблице размеров. */
.catalog-item .catalog-item__info .reviews-and-quantity { display: none; }

/* «Цвет:» + кружки (Bootstrap-утилиты вендора mt-1/pb-1/gap-3 — с !important) */
.catalog__wrapper .catalog-item__sku-colors { margin-top: 4px !important; }
.catalog__wrapper .catalog-item__sku-tree { padding-bottom: 0 !important; }
.catalog__wrapper .catalog-item .catalog-item__sku-block { gap: 8px !important; margin: 0; }
.catalog__wrapper .catalog-item .catalog-item__sku-block .catalog-item__prop-name { color: #7a7a86; font-size: 13px; line-height: 16px; }
/* Цвет (29.09, по заказчику): миниатюры фото цвета (нет фото — плитка цветом той же формы), 3 в ряд, до 6 —
   остальные окном «Все цвета (N)» (raduga_pages.js); поле цветов — на светло-лиловой подложке, заметно, но не броско.
   Та же плитка — в деталке (.rdp-colors). */
.catalog__wrapper .catalog-item__sku-colors { margin-top: 6px !important; padding: 6px; border-radius: 12px; background: #f5f1fd; }
.catalog__wrapper .catalog-item .catalog-item__sku-block ul { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px !important; max-width: none; }
.catalog__wrapper .catalog-item .color-select,
.detail-product .rdp-colors .rdp-swatch,
.rh-quick .rdp-colors .rdp-swatch {
  --color-select-border-width: 1px;
  --color-select-border-color: #e3dcf3;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  padding: 0;
  border-radius: 8px;
  background-color: #fff;
  background-size: cover;
  background-clip: border-box;
  cursor: pointer;
}
.catalog__wrapper .catalog-item li.selected > .color-select,
.detail-product .rdp-colors li.selected .rdp-swatch,
.rh-quick .rdp-colors li.selected .rdp-swatch { --color-select-border-color: #8450db; padding: 0; background-size: cover; box-shadow: 0 0 0 1.5px #8450db; }
.catalog__wrapper .catalog-item li:not(.selected) > .color-select:hover,
.detail-product .rdp-colors li:not(.selected) .rdp-swatch:hover,
.rh-quick .rdp-colors li:not(.selected) .rdp-swatch:hover { --color-select-border-color: #b9a6ec; }
.rh-color-extra { display: none !important; }
.rh-color-none { display: none !important; } /* «-»: цвет в 1С не указан — пункт нужен JS вендора, покупателю не показываем */
/* у товара нет выбора цвета — поле цветов не показываем (иначе оставалась пустая лиловая плашка) */
.catalog__wrapper .catalog-item__sku-colors:not(:has([data-entity="sku-block"]:not(.d-none) li:not(.rh-color-none))) { display: none; }
/* принт без своего фото — цвет фона с мелким узором точками (raduga_color_tile.php) */
.catalog__wrapper .catalog-item li.rh-color-print > .color-select,
.detail-product .rdp-colors li.rh-color-print .rdp-swatch,
.rh-quick .rdp-colors li.rh-color-print .rdp-swatch,
.rh-colors-dialog__thumb.rh-color-print {
  background-image: radial-gradient(circle, rgba(255, 255, 255, .85) 1.3px, transparent 1.7px), radial-gradient(circle, rgba(31, 31, 41, .22) 1.3px, transparent 1.7px);
  background-size: 8px 8px;
  background-position: 0 0, 4px 4px;
}
/* «Цвет: Голубой» — внутри поля над плитками: название цвета тёмным полужирным, заметно */
.catalog__wrapper .catalog-item__sku-colors > .catalog-item__color-name { display: flex; flex-wrap: wrap; align-items: baseline; column-gap: 4px; min-width: 0; margin: 0 2px 6px; color: #6e6e7a; font-size: 12px; line-height: 16px; }
.catalog__wrapper .catalog-item__sku-colors > .catalog-item__color-name > .catalog-item__prop-name { flex: none; }
.catalog__wrapper .catalog-item__sku-colors [data-raduga-color-value] { display: -webkit-box; min-width: 0; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; color: #1f1f29; font-size: 13px; font-weight: 700; text-transform: lowercase; } /* длинное название — в 2 строки */
.catalog__wrapper .catalog-item__sku-colors [data-raduga-color-value]::first-letter { text-transform: uppercase; }
.rh-colors-all { display: block; width: 100%; margin: 6px 0 0; padding: 2px 0; border: 0; background: none; color: #5b3fb8; font-size: 12px; font-weight: 600; line-height: 16px; text-align: center; cursor: pointer; }
.rh-colors-all:hover { color: #8450db; text-decoration: underline; }

/* Зона заказа: таблица под верхом, кнопки — у нижнего края карточки */
.catalog__wrapper .catalog-item__order {
  display: flex;
  flex-direction: column;
  flex: 1 0 auto;
  margin-top: 14px;
}

/* Избранное — справа от «Добавить в корзину» (вендорская кнопка остаётся на месте в DOM, её JS цел;
   переносим позиционированием в правый нижний угол, строку кнопок сужаем на её ширину). */
.catalog__wrapper .catalog-item__card-controls { top: 12px; right: 12px; gap: 6px; }
.catalog__wrapper .catalog-item__card-controls-item {
  width: 34px;
  height: 34px;
  background: #fff;
  border: 1px solid #ececf1;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.catalog__wrapper .catalog-item__card-controls-item svg { width: 20px; height: 20px; }
.catalog__wrapper .catalog-item:has(.catalog-item__order) .catalog-item__card-controls {
  top: auto;
  bottom: 16px;
  right: 16px;
}
.catalog__wrapper .catalog-item:has(.catalog-item__order) .catalog-item__card-controls-item.favorite-btn {
  width: 44px;
  height: 44px;
  border: 1.5px solid #e3e3ea;
}
.catalog__wrapper .catalog-item:has(.catalog-item__order) .catalog-item__card-controls-item.favorite-btn svg { width: 22px; height: 22px; }
.catalog__wrapper .catalog-item:has(.catalog-item__order) .rsg-foot--compact { padding-right: 54px; }
/* под «Добавить в корзину» — строка «Купить в 1 клик» (raduga_size_grid.js): сердечко поднимаем к кнопке корзины,
   строка «в 1 клик» — на всю ширину, под сердечком тоже (40 px строки + 8 px зазора) */
.catalog__wrapper .catalog-item:has(.catalog-item__order):has(.rsg-oneclick) .catalog-item__card-controls { bottom: 64px; }
.catalog__wrapper .catalog-item:has(.catalog-item__order) .rsg-foot--compact .rsg-oneclick { margin-right: -54px; }

/* «Найдено N товаров» над товарами раздела и поиска (raduga_pages.js, 29.09) */
.catalog__wrapper .rh-found { margin: 0 0 12px; color: #6e6e7a; font-size: 14px; line-height: 1.4; }

/* --- 3. Подзаголовок-строка каталога (замена рекламных плашек) ------------- */
.catalog__subtitle {
  margin-top: 6px;
  color: #6e6e7a;
  font-size: 15px;
  line-height: 1.4;
}
@media (max-width: 576px) {
  .catalog__subtitle { font-size: 13px; }
}

/* --- 4. «Сравнение» убрано (по решению) -----------------------------------
   Ссылка в шапке отключена через USE_COMPARE=N (personal_menu.php).
   Здесь прячем кнопку сравнения на карточке листинга и в деталке.
   Для карточки — селектор из 2 классов (выше специфичности вендора), без !important. */
.catalog-item__card-controls-item.compare-btn,
.compare-btn,
[data-entity="compare-btn"] {
  display: none;
}

/* --- 5. Шапка каталога: хлебные крошки → заголовок → подзаголовок; чипсы подразделов, «Фильтры» и сортировка —
   бледно-фиолетовые плашки; пагинация — плашки-кнопки (правки 23.09) ------------------------------------------- */
/* хлебные крошки — мелко и бледно, в одну строку (не влезает — горизонтальная прокрутка); на странице раздела —
   вместо «← Заголовок» (вендор там прячет список и ставит стрелку назад) */
.breadcrumbs .breadcrumbs__list {
  flex-wrap: nowrap;
  overflow-x: auto;
  scrollbar-width: none;
  font-size: 12px;
  line-height: 16px;
  color: #a2a2ad;
}
.breadcrumbs .breadcrumbs__list::-webkit-scrollbar { display: none; }
.breadcrumbs .breadcrumbs__item { flex: 0 0 auto; white-space: nowrap; }
.breadcrumbs .breadcrumbs__link { color: #8a8a96; }
.breadcrumbs .breadcrumbs__link:hover { color: var(--primary, #8450db); }
.breadcrumbs .breadcrumbs__item--last { color: #b4b4be; }
.catalog__breadcrumbs-section {
  flex-direction: row !important;
  flex-wrap: wrap;
  align-items: center !important;
  gap: 4px 16px !important;
}
.catalog__breadcrumbs-section .breadcrumbs { flex: 0 0 100%; max-width: 100%; }
.catalog__breadcrumbs-section .breadcrumbs__list { display: flex !important; }
.catalog__breadcrumbs-title {
  margin: 0;
  color: #1f1f29;
  font-size: 32px;
  font-weight: 700;
  line-height: 40px;
}
/* наклейка «🛒 заказ от 20 000 ₽» (27.09: «мин. 20 000 ₽» читали как «одна позиция от 20 000») — под углом на краю
   последней буквы заголовка (::after — в тексте H1 её нет). Абсолютная без координат = встаёт ровно за последним
   символом; справа у заголовка место под неё. На телефоне — отдельной строкой под заголовком */
.catalog__breadcrumbs-title,
.rdp-head h1 { position: relative; padding-right: 172px; }
.catalog__breadcrumbs-title::after,
.rdp-head h1::after {
  content: "заказ от 20\00a0 000\00a0 ₽";
  position: absolute;
  display: inline-block;
  padding: 5px 10px 5px 28px;
  border-radius: 10px;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4h2.2l2.1 10.2a1.5 1.5 0 0 0 1.5 1.2h8.6a1.5 1.5 0 0 0 1.5-1.2L20.5 8H6.2'/%3E%3Ccircle cx='9.5' cy='19.5' r='1.3'/%3E%3Ccircle cx='17' cy='19.5' r='1.3'/%3E%3C/svg%3E") 9px 50% / 14px no-repeat,
    linear-gradient(135deg, #8450db, #b06ad9);
  box-shadow: 0 6px 14px rgba(132, 80, 219, .28);
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.2;
  vertical-align: top;
  white-space: nowrap;
  transform: translate(6px, -2px) rotate(-6deg);
}
@media (max-width: 576px) {
  .catalog__breadcrumbs-title { font-size: 24px; line-height: 30px; }
  .catalog__breadcrumbs-title,
  .rdp-head h1 { padding-right: 0; }
  .catalog__breadcrumbs-title::after,
  .rdp-head h1::after {
    position: static;
    display: block;
    width: fit-content;
    margin: 8px 0 2px;
    padding: 4px 9px 4px 26px;
    background-position: 8px 50%, 0 0;
    font-size: 12.5px;
    transform: rotate(-3deg);
    transform-origin: left center;
  }
}

/* панель над товарами — одна строка: [Фильтры] [чипсы подразделов — листаются] [сортировка]
   (чипсы переносятся сюда в section.php; слайдер вендора со стрелками не запускается — нативная прокрутка) */
.catalog__wrapper .catalog__filter-container {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}
.catalog__filter-container .catalog__filter-btn { flex: 0 0 auto; }
.catalog__filter-container .catalog__sections-list--toolbar { flex: 1 1 auto; min-width: 0; margin: 0; }
.catalog__filter-container .sort { flex: 0 0 auto; margin: 0 0 0 auto; }
.catalog__sections-list .section-pills,
.catalog__sections-list .section-pills__wrapper { position: relative; margin: 0; padding: 0; }
.catalog__sections-list .section-pills .swiper { overflow: visible; }
.catalog__sections-list .section-pills .swiper-wrapper {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: none;
  cursor: grab;
  transform: none !important;
  /* справа — мягкое затухание: видно, что чипсы листаются */
  -webkit-mask-image: linear-gradient(to right, #000 calc(100% - 40px), transparent);
  mask-image: linear-gradient(to right, #000 calc(100% - 40px), transparent);
}
/* прокручено от начала — затухание и слева (класс ставит raduga_size_grid.js) */
.catalog__sections-list .section-pills .swiper-wrapper.is-scrolled {
  -webkit-mask-image: linear-gradient(to right, transparent, #000 40px, #000 calc(100% - 40px), transparent);
  mask-image: linear-gradient(to right, transparent, #000 40px, #000 calc(100% - 40px), transparent);
}
.catalog__sections-list .section-pills .swiper-wrapper.is-end {
  -webkit-mask-image: linear-gradient(to right, transparent, #000 40px);
  mask-image: linear-gradient(to right, transparent, #000 40px);
}
.catalog__sections-list .section-pills .swiper-wrapper::-webkit-scrollbar { display: none; }
.catalog__sections-list .section-pills .swiper-wrapper.is-dragging { cursor: grabbing; user-select: none; }
.catalog__sections-list .section-pills .swiper-slide { flex: 0 0 auto; width: auto !important; margin: 0 !important; }
.catalog__sections-list .section-pills .swiper-button-prev,
.catalog__sections-list .section-pills .swiper-button-next { display: none !important; }
/* пилюли — одна стилистика на весь сайт (вендор задаёт высоту с !important): подразделы каталога, меню раздела
   «О компании/Помощь» (на десктопе оно списком — раздел 22), разделы блога; выбранная — фиолетовая */
.catalog__sections-list .section-pills .pill,
.sidebar .sidebar__item > a,
.blog-list-sections .blog-list-section {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: auto !important;
  height: 34px !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 14px !important;
  border: 0;
  border-radius: 999px;
  background: #f1ecfd;
  color: #5b3fb8;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  white-space: nowrap;
  transition: background .2s, color .2s;
}
.catalog__sections-list .section-pills .pill:hover,
.sidebar .sidebar__item > a:hover,
.blog-list-sections .blog-list-section:hover { background: #e4d9fb; color: #4a2fa0; }
.sidebar .sidebar__item > a[class*="text-primary"],
.blog-list-sections .blog-list-section.active { background: #8450db; color: #fff; }
.blog-list-sections .blog-list-section-count { color: inherit; font-size: 12px; opacity: .7; }

/* «Фильтры» и сортировка — белые с фиолетовым контуром, той же высоты, что чипсы (акцент — отличаются от них) */
.catalog__wrapper .catalog__filter-btn,
.catalog__wrapper .catalog__sort {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 34px;
  padding: 0 14px;
  border: 1.5px solid var(--primary, #8450db);
  border-radius: 999px;
  background: #fff;
  color: var(--primary, #8450db);
  font-size: 14px;
  font-weight: 500;
  white-space: nowrap;
  transition: background .2s, color .2s;
}
.catalog__wrapper .catalog__filter-btn:hover,
.catalog__wrapper .catalog__sort:hover { background: #f7f3fe; color: var(--primary, #8450db); }
.catalog__wrapper .catalog__filter-btn svg,
.catalog__wrapper .catalog__sort svg { width: 18px; height: 18px; color: currentColor; }
.catalog__wrapper .catalog__sort .sort__title { color: inherit; }
.catalog__wrapper .catalog__filter-container .sort__list-popup { left: auto; right: 0; top: 40px; }
/* телефон: «Фильтры» — плавающая пилюля внизу по центру над доком (раздел 10), как на iPhone; открывает штатную
   панель фильтров на весь экран (aside.filter, z-index 120000 — выше пилюли). Чипсы — своей строкой, под ними
   компактная сортировка слева. */
@media (max-width: 576px) {
  .catalog__wrapper .catalog__filter-container { flex-wrap: wrap; gap: 10px; margin-bottom: 12px; }
  .catalog__filter-container .catalog__sections-list--toolbar { order: -1; flex: 0 0 100%; }
  .catalog__wrapper .catalog__filter-btn,
  .catalog__wrapper .catalog__filter-btn:hover {
    position: fixed;
    left: 50%;
    bottom: calc(76px + env(safe-area-inset-bottom, 0px)); /* над плавающим доком (10 + 56px), зазор 10px */
    z-index: 1050;
    transform: translateX(-50%);
    height: 38px;
    padding: 0 16px;
    gap: 6px;
    background: #fff;
    box-shadow: 0 6px 18px rgba(31, 31, 41, .16);
    font-size: 14px;
  }
  .catalog__wrapper .catalog__filter-btn svg { width: 16px; height: 16px; }
  .catalog__filter-container .sort { margin: 0; } /* слева, под чипсами */
  .catalog__wrapper .catalog__sort { height: 28px; padding: 0 10px; gap: 2px; border-width: 1px; font-size: 12px; }
  .catalog__wrapper .catalog__sort svg { width: 14px; height: 14px; }
  .catalog__wrapper .catalog__filter-container .sort__list-popup { left: 0; right: auto; }
}

/* «Показать ещё» и пагинация */
.catalog-section__show-more-btn.btn {
  height: 48px;
  border: 0;
  border-radius: 14px;
  background: #f1ecfd;
  color: #5b3fb8;
  font-weight: 500;
}
.catalog-section__show-more-btn.btn:hover { background: #e4d9fb; color: #4a2fa0; }
/* пагинация — скромно: это навигация, не акцент */
.catalog-section__navigation .page-navigation {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px 16px;
}
.page-navigation .page-navigation__list { display: flex; align-items: center; flex-wrap: wrap; gap: 2px; }
.page-navigation .page-navigation__list > a,
.page-navigation .page-navigation__list > b,
.page-navigation .page-navigation__list > span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 32px;
  height: 32px;
  padding: 0 6px;
  border-radius: 8px;
  background: none;
  color: #6e6e7a;
  font-size: 14px;
  font-weight: 400;
  line-height: 1;
  text-decoration: none;
  transition: background .2s, color .2s;
}
.page-navigation .page-navigation__list > b { background: #f1ecfd; color: #5b3fb8; font-weight: 500; }
.page-navigation .page-navigation__list > a:hover { background: #f4f4f8; color: #1f1f29; }
.page-navigation .page-navigation__list > a.icon { color: #a2a2ad; }
.page-navigation .page-navigation__list > a.icon svg { width: 18px; height: 18px; }
.catalog-section__navigation .page-navigation > span { color: #a2a2ad; font-size: 13px; }

/* --- 6. Отзывы о товаре убраны (решение 23.09): рейтинг у названия и блок «Отзывы / Вопросы» в деталке.
   Страница отзывов о магазине (/reviews/, пункт меню) — не трогаем. */
body .sotbit-rvw-rating,
body .sotbit-reviews-container,
body .detail-product-rating-container {
  display: none;
}

/* --- 7. Страница товара, «3 колонки» по ориентиру клиента (23.09):
   название во всю ширину; [фото | цвет → размеры → вкладки | карточка покупки]. От 1280 — три колонки,
   фото и карточка покупки закреплены при прокрутке; 769–1279 — две ([фото | всё остальное]); ниже — одна.
   Разметка-крючки (rdp-*) — catalog.element/.default/1/template.php; таблица, итог и кнопки — raduga_size_grid.js. */
:root { --rdp-sticky-top: 96px; } /* закреплённая шапка сайта (80px, раздел 12) + отступ */
@media (max-width: 1024px) { :root { --rdp-sticky-top: 84px; } }

/* шапка товара: бейджи → название → артикул */
.rdp-head { margin: 0 0 24px; }
.rdp-head .info__main-data { display: flex; flex-direction: column; gap: 10px; margin: 0; }
.rdp-head .info__badges { order: -1; gap: 8px; margin: 0; }
.rdp-head .info__badges .badge {
  padding: 6px 14px;
  border-radius: 999px;
  font-size: 13px;
  font-weight: 500;
  background-color: #ffe4ee !important; /* цвет из свойства (HINT) приходит inline-стилем */
  color: #d6336c;
}
.rdp-head h1 { /* на h1 утилиты вендора fs-4 fw-medium (с !important) */
  margin: 0 !important;
  font-size: 34px !important;
  line-height: 40px;
  font-weight: 700 !important;
  color: #1f1f29;
}
.rdp-article { display: flex; align-items: center; gap: 6px; margin-top: 8px; font-size: 14px; color: #6e6e7a; }
.rdp-article span { color: #1f1f29; }
.rdp-article__copy { display: inline-flex; padding: 0; border: 0; background: none; color: #9a9aa6; cursor: pointer; }
/* «Поделиться» (29.09) — справа от артикула, ссылкой */
.rdp-share { display: inline-flex; align-items: center; gap: 6px; margin-left: 14px; padding: 0; border: 0; background: none; color: #8450db; font-size: 14px; font-weight: 600; cursor: pointer; }
.rdp-article > .rdp-share:first-child { margin-left: 0; }
.rdp-share:hover { color: #6a3cc0; }
.rdp-share svg { flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
/* вкладка «Доставка и оплата» (29.09) — список с галочками, как в текстах страниц */
.rdp-ship { display: flex; flex-direction: column; gap: 10px; margin: 16px 0 0; padding: 0; list-style: none; }
.rdp-ship li { position: relative; padding-left: 28px; color: #4a4a57; font-size: 15px; line-height: 1.55; }
.rdp-ship li::before { content: ""; position: absolute; top: 3px; left: 0; width: 18px; height: 18px; border-radius: 50%; background: #f1ecfd url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238450db' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12l4 4 8-8'/%3E%3C/svg%3E") center / 12px no-repeat; }
.rdp-ship b { color: #1f1f29; }
.rdp-ship__more { display: flex; gap: 18px; margin: 14px 0 0; font-size: 14px; }
.rdp-ship__more a { color: #8450db; font-weight: 600; text-decoration: none; }
.rdp-ship__more a:hover { text-decoration: underline; }
@media (max-width: 768px) {
  .rdp-head { margin-bottom: 8px; }
  .rdp-head h1 { font-size: 24px !important; line-height: 30px; }
}

/* колонки (две — уже с 769px: иначе на планшете/узком окне фото во всю ширину, огромное) */
@media (min-width: 769px) {
  .detail-product {
    display: grid !important; /* на элементе утилита вендора d-flex (display:flex !important) */
    grid-template-columns: minmax(0, 44fr) minmax(0, 56fr);
    grid-template-rows: auto auto 1fr;
    column-gap: 32px;
    row-gap: 24px;
    align-items: start;
  }
  .detail-product > .product-gallery {
    grid-column: 1;
    grid-row: 1 / -1;
    position: sticky;
    top: var(--rdp-sticky-top);
    width: 100%;
    height: auto;
    margin: 0;
  }
  .detail-product > .product-main { grid-column: 2; grid-row: 1; }
  .detail-product > .rdp-buy { grid-column: 2; grid-row: 2; }
  .detail-product > .rdp-info { grid-column: 2; grid-row: 3; }
  .detail-product .gallery-side { margin-right: 16px !important; }
  .detail-product .gallery-side__slider { width: 90px !important; }
  .detail-product .gallery-main { flex: 1 1 0; min-width: 0; max-width: none; max-height: none; aspect-ratio: 1 / 1; }
  /* одно фото — без столбика миниатюр */
  .detail-product .gallery-side:not(:has(.keen-slider__slide + .keen-slider__slide)) { display: none !important; }
}
@media (min-width: 1280px) {
  .detail-product {
    grid-template-columns: minmax(0, 33fr) minmax(0, 41fr) minmax(0, 26fr);
    grid-template-rows: auto auto 1fr;
  }
  .detail-product > .product-main { grid-column: 2; grid-row: 1; }
  .detail-product > .rdp-info { grid-column: 2; grid-row: 2; }
  /* карточка покупки — своя колонка, закреплена при прокрутке */
  .detail-product > .rdp-buy { display: contents; }
  .detail-product .rdp-buy__box {
    grid-column: 3;
    grid-row: 1 / -1;
    align-self: start;
    position: sticky;
    top: var(--rdp-sticky-top);
  }
}
.detail-product .gallery-main { border-radius: 20px; background: #f6f6f9; }
/* миниатюры — квадраты; keen-slider ставит слайду min-height:100% → при одном фото он растягивался на всю высоту */
.detail-product .product-gallery .gallery-side__slider .keen-slider__slide {
  flex: 0 0 90px;
  height: 90px;
  min-height: 0;
  border: 1px solid #ececf1;
  border-radius: 12px;
  background: #fff;
}
.detail-product .product-gallery .gallery-side__slider .keen-slider__slide.active { border: 2px solid var(--primary, #8450db); }

/* средняя колонка: цвет → «Размер и количество» (без подложки) */
.detail-product .info__main { display: flex; flex-direction: column; }
/* схлопнутые штатные кнопки — вверху колонки: по ним вендор решает, когда показать свою липкую шапку (до 1280) */
.detail-product .info__main > .rdp-vendor-buttons { order: -1; }
.detail-product:has(.raduga-size-grid) [id$="_skudiv"] .info__prop:not(.rdp-colors) { display: none !important; }
.detail-product .rdp-colors { margin: 0 0 24px; padding: 12px 14px 14px; border-radius: 16px; background: #f5f1fd; }
.detail-product .rdp-colors .prop__name { margin-bottom: 12px; font-size: 15px !important; color: #6e6e7a; }
.detail-product .rdp-color-name { display: inline-block; color: #1f1f29; font-weight: 700; text-transform: lowercase; }
.detail-product .rdp-color-name::first-letter { text-transform: uppercase; }
.detail-product .rdp-colors .prop__values { display: grid; grid-template-columns: repeat(6, minmax(0, 56px)); gap: 8px; }
.detail-product .rdp-colors .rdp-swatch { border-radius: 10px; }
.detail-product .rdp-colors .rh-colors-all { width: auto; margin-top: 10px; font-size: 14px; text-align: left; }
.detail-product .raduga-size-grid.raduga-size-grid--detail { margin: 0 0 8px; padding: 0; border-radius: 0; background: none; }
.detail-product .raduga-size-grid--detail .rsg-title { font-size: 16px; line-height: 22px; margin-bottom: 12px; }

/* карточка покупки: наличие → цена → «Выбрано» + кнопки → мин. партия */
.rdp-buy__box {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 20px;
  border: 1px solid #ececf1;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 8px 28px rgba(31, 31, 41, .07);
}
.rdp-stock { display: flex; align-items: center; gap: 6px; min-height: 20px; font-size: 14px; line-height: 20px; color: #1f1f29; }
.rdp-price-card > .d-flex { margin: 0 !important; }
.rdp-price-row { flex-wrap: wrap; align-items: center; gap: 10px !important; }
.rdp-price-card [data-entity="price"] {
  font-size: 30px !important;
  line-height: 36px;
  font-weight: 700 !important;
  color: #1f1f29;
  white-space: nowrap;
}
.rdp-price-chip {
  display: inline-flex;
  align-items: center;
  height: 26px;
  padding: 0 10px;
  border-radius: 999px;
  background: #f0f0f5;
  color: #6e6e7a;
  font-size: 12px;
  white-space: nowrap;
}
.rdp-buy__order { padding-top: 14px; border-top: 1px solid #ececf1; }
.rdp-buy__order:empty { display: none; }
/* на телефоне вендор прячет цену в теле (она в нижней панели) — в карточке покупки показываем её всегда */
@media (max-width: 768px) {
  .rdp-price-card > .d-md-none,
  .rdp-price-card .detail-product-price-wrapper.d-flex { display: flex !important; }
  .rdp-price-card [data-entity="price"] { font-size: 28px !important; line-height: 34px; }
}

/* вкладки «Описание | Характеристики | Доставка и оплата | Уход» (4 вкладки влезают в колонку 530 px: 15px, зазор 20) */
.rdp-info { margin-top: 8px; }
.rdp-tabs__nav {
  display: flex;
  gap: 20px;
  margin-bottom: 20px;
  border-bottom: 1px solid #ececf1;
  overflow-x: auto;
  scrollbar-width: none;
}
.rdp-tabs__btn {
  position: relative;
  padding: 0 0 12px;
  border: 0;
  background: none;
  font-size: 15px;
  font-weight: 500;
  color: #4a4a55;
  white-space: nowrap;
  cursor: pointer;
}
.rdp-tabs__btn.is-active,
.rdp-tabs__btn.is-active:hover { color: var(--primary, #8450db); }
.rdp-tabs__btn.is-active::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 2px;
  border-radius: 2px;
  background: var(--primary, #8450db);
}
/* телефон: 4 вкладки не влезают (506 px в 343) и уезжали за край — пилюлями в две строки, вид общей пилюли (раздел 5) */
@media (max-width: 767px) {
  .rdp-tabs__nav { flex-wrap: wrap; gap: 8px; border-bottom: 0; overflow: visible; }
  .rdp-tabs__btn { height: 34px; padding: 0 14px; border-radius: 999px; background: #f1ecfd; color: #5b3fb8; font-size: 14px; }
  .rdp-tabs__btn.is-active,
  .rdp-tabs__btn.is-active:hover { background: #8450db; color: #fff; }
  .rdp-tabs__btn.is-active::after { display: none; }
}
.rdp-tabs__pane { display: none; }
.rdp-tabs__pane.is-active { display: block; }
.rdp-info .product-full-description { margin: 0; }
.rdp-info .info__tab { margin: 0; }
.rdp-info .tab__header { display: none; }
.rdp-info .tab__body { display: block !important; height: auto !important; overflow: visible !important; opacity: 1 !important; }

/* --- 8. «Похожие товары» на странице товара и ряды товаров на главной (.main-page-block) — мини-карточки по ориентиру: фото, ♡, цена, название.
   Карточка — тот же catalog.item, что в каталоге, но стили каталога (раздел 2) действуют только в .catalog__wrapper;
   без них фото растягивалось и обрезало цену/название. */
/* нет подходящих товаров (в разделе нет товаров с фото) — блок не показываем, без пустого заголовка */
.similar-products:has(.catalog-section__container--empty) { display: none; }
:is(.similar-products, .main-page-block) .catalog-section__container {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  column-gap: 16px;
  row-gap: 16px;
}
:is(.similar-products, .main-page-block) .catalog-section__item-wrapper,
:is(.similar-products, .main-page-block) .catalog-item { height: auto !important; }
:is(.similar-products, .main-page-block) .catalog-item {
  position: relative;
  container-type: inline-size; /* 100cqw = ширина фото (фото во всю ширину карточки) */
  display: flex;
  flex-direction: column;
  padding: 10px;
  border: 1px solid #ececf1;
  border-radius: 16px;
  background: #fff;
  overflow: hidden;
}
:is(.similar-products, .main-page-block) .catalog-item__top { position: relative; }
:is(.similar-products, .main-page-block) .catalog-item__image-container {
  display: block;
  width: 100%;
  height: auto !important;
  aspect-ratio: 1 / 1;
  border-radius: 12px;
  overflow: hidden;
  background: #f6f6f9;
}
:is(.similar-products, .main-page-block) .catalog-item__image,
:is(.similar-products, .main-page-block) .catalog-item__image .lazy-loader { width: 100%; height: 100% !important; }
:is(.similar-products, .main-page-block) .catalog-item__image img { width: 100%; height: 100%; object-fit: contain; }
:is(.similar-products, .main-page-block) .catalog-item__card-controls {
  position: absolute;
  top: 16px;
  right: 16px;
  bottom: auto;
  left: auto;
  z-index: 3;
}
:is(.similar-products, .main-page-block) .catalog-item__body { position: static; display: flex; flex-direction: column; gap: 4px; padding: 12px 4px 4px; }
/* цена — белая плашка в левом нижнем углу фото (6px от края), как в карточке каталога */
:is(.similar-products, .main-page-block) .catalog-item__body .catalog-item__price-container {
  position: absolute;
  z-index: 2;
  left: 16px;
  top: calc(100cqw - 36px);
  margin: 0;
  padding: 3px 10px;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 2px 10px rgba(31, 31, 41, .14);
}
:is(.similar-products, .main-page-block) .catalog-item__price { font-size: 17px; line-height: 24px; font-weight: 700; color: #1f1f29; }
:is(.similar-products, .main-page-block) .catalog-item__name {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  height: 40px;
  font-size: 15px;
  line-height: 20px;
  font-weight: 500;
  color: #1f1f29;
}
:is(.similar-products, .main-page-block) .catalog-item__buttons-block,
:is(.similar-products, .main-page-block) .catalog-item__slider-pagination { display: none !important; }
@media (max-width: 1024px) {
  :is(.similar-products, .main-page-block) .catalog-section__container { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 576px) {
  :is(.similar-products, .main-page-block) .catalog-section__container { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 10px; }
}

/* --- 9. SEO-текст раздела под каталогом: карточка, текст на всю ширину, заголовки; длинный — свёрнут
   до «Читать полностью» (кнопку добавляет raduga_size_grid.js) ---------------------------------------------- */
.sotbit_b2c_section_description {
  position: relative;
  margin: 48px 0 32px;
  padding: 32px 40px;
  border-radius: 20px;
  background: #f7f7fb;
  color: #4a4a55;
  font-size: 15px;
  line-height: 1.65;
}
.sotbit_b2c_section_description > br { display: none; }
.sotbit_b2c_section_description p { margin: 0 0 12px; }
.sotbit_b2c_section_description h2 {
  margin: 28px 0 10px;
  font-size: 22px;
  line-height: 28px;
  font-weight: 700;
  color: #1f1f29;
}
.sotbit_b2c_section_description h3 {
  margin: 20px 0 6px;
  font-size: 17px;
  line-height: 24px;
  font-weight: 500;
  color: #1f1f29;
}
.sotbit_b2c_section_description > :first-child { margin-top: 0; }
.sotbit_b2c_section_description b,
.sotbit_b2c_section_description strong { font-weight: 500; color: #1f1f29; }
.sotbit_b2c_section_description.rdp-seo--collapsed { max-height: 300px; overflow: hidden; }
.sotbit_b2c_section_description.rdp-seo--collapsed::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 140px;
  border-radius: 0 0 20px 20px;
  background: linear-gradient(rgba(247, 247, 251, 0), #f7f7fb 70%);
  pointer-events: none;
}
.rdp-seo-toggle {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 8px;
  padding: 0;
  border: 0;
  background: none;
  color: var(--primary, #8450db);
  font-size: 15px;
  font-weight: 500;
  cursor: pointer;
}
.rdp-seo--collapsed .rdp-seo-toggle { position: absolute; left: 40px; bottom: 24px; margin: 0; }
.rdp-seo-toggle svg { transition: transform .2s; }
.sotbit_b2c_section_description:not(.rdp-seo--collapsed) .rdp-seo-toggle svg { transform: rotate(180deg); }
@media (max-width: 768px) {
  .sotbit_b2c_section_description { margin-top: 32px; padding: 24px 20px; font-size: 14px; }
  .sotbit_b2c_section_description h2 { font-size: 19px; line-height: 25px; }
  .rdp-seo--collapsed .rdp-seo-toggle { left: 20px; bottom: 20px; }
}

/* --- 10. Нижняя панель телефона (док) — плавающая «стеклянная» пилюля в духе iOS: светлое матовое стекло
   с размытием, отступы от краёв; «Каталог» — фиолетовый сегмент-акцент по центру. Состав: Главная · Избранное ·
   Каталог · Корзина · Профиль (sale.basket.basket.line/.default/mobile_bottom_menu/template.php). ------------- */
@media (max-width: 1024px) {
  /* высота зоны дока у вендора — одна переменная: сама панель, липкая подложка под контентом, тень, нижняя
     панель товара; было 76px. Док 56px (только иконки) + отступ снизу 10px */
  :root:has(.personal__menu--mobile-bottom) { --bottom-bar-height: calc(66px + env(safe-area-inset-bottom, 0px)); }
  nav.personal:has(.personal__menu--mobile-bottom) {
    overflow: visible;
    padding: 0 12px calc(10px + env(safe-area-inset-bottom, 0px));
    border: 0;
    background: transparent;
    box-shadow: none;
    pointer-events: none; /* кликается только сама пилюля */
    align-items: flex-end;
    justify-content: center;
  }
  /* подложка-разделитель под контентом — прозрачная (иначе вокруг плавающего дока белая полоса) */
  body:has(.personal__menu--mobile-bottom) .bottom-bar-placeholder { background: transparent; }
  body:has(.personal__menu--mobile-bottom) .bottom-bar-placeholder-shadow { display: none; }
  /* как в iOS 26: капсула постоянного размера по центру, на планшете не растягивается */
  .personal__menu--mobile-bottom {
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    align-items: center;
    width: 100%;
    max-width: 380px;
    height: 56px !important;
    margin: 0 auto;
    padding: 6px;
    border: 1px solid rgba(255, 255, 255, .7);
    border-radius: 24px;
    background: rgba(255, 255, 255, .74);
    -webkit-backdrop-filter: blur(20px) saturate(1.8);
    backdrop-filter: blur(20px) saturate(1.8);
    box-shadow: 0 10px 30px rgba(31, 31, 41, .14), inset 0 1px 0 rgba(255, 255, 255, .9);
    pointer-events: auto;
    transform-origin: 50% 100%;
    transition: transform .28s cubic-bezier(.2, .8, .2, 1), box-shadow .28s;
  }
  /* при прокрутке вниз — чуть меньше (скрипт в шаблоне дока ставит .is-compact, после остановки снимает) */
  .personal__menu--mobile-bottom.is-compact { transform: scale(.86); box-shadow: 0 6px 18px rgba(31, 31, 41, .12); }
  .personal__menu--mobile-bottom .personal__item { height: 100%; }
  .personal__menu--mobile-bottom .personal__item-link {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    width: 100%;
    height: 100%;
    padding: 0;
    border-radius: 18px;
    color: #6e6e7a;
    transition: background .2s, color .2s;
  }
  .personal__menu--mobile-bottom .personal__item-inner svg { width: 24px; height: 24px; }
  /* подписи не показываем — иконки говорящие; для экранных читалок текст остаётся (визуально скрыт) */
  .personal__menu--mobile-bottom .personal__item-text {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
  }
  .personal__menu--mobile-bottom .personal__item-link--active { color: var(--primary, #8450db); }
  /* «Каталог» — акцентный сегмент */
  .personal__menu--mobile-bottom [data-menu-code="CATALOG"] .personal__item-link,
  .personal__menu--mobile-bottom [data-menu-code="CATALOG"] .personal__item-link:hover {
    background: var(--primary, #8450db);
    color: #fff;
    box-shadow: 0 6px 14px rgba(132, 80, 219, .32);
  }
}

/* --- 11. Панель фильтров (aside.filter; на телефоне — на весь экран): секции-карточки, варианты — пилюли
   (выбранный — фиолетовый), скруглённые поля цены, крупная «Показать» и сброс внизу. ------------------------ */
.filter .filter__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px;
  border-bottom: 1px solid #ececf1;
}
.filter .filter__title { font-size: 22px !important; line-height: 28px; font-weight: 700 !important; color: #1f1f29; }
.filter .filter__close-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #f4f4f8;
  color: #4a4a55;
}
.filter .filter__close-btn svg { width: 20px; height: 20px; }
/* одна сетка 16px: у контейнера вендора свои 16px по бокам — убираем, отступ задаёт форма */
.filter .filter__container { padding: 0 0 24px; }
.filter .filter__form { display: flex; flex-direction: column; gap: 10px; padding: 14px 16px; }
.filter .filter__item { margin: 0; padding: 0; border: 0; border-radius: 16px; background: #f7f7fb; }
.filter .filter__item-header { display: flex; align-items: center; justify-content: space-between; padding: 14px 16px; cursor: pointer; }
.filter .filter__item-name { font-size: 15px; font-weight: 600 !important; color: #1f1f29; }
.filter .filter__item-icon { width: 20px; height: 20px; color: #8a8a96; }
/* отступы — внутри содержимого: свёрнутую секцию вендор сжимает по высоте, и отступ самой обёртки «выглядывал» */
.filter .filter__item-content { padding: 0 16px; }
.filter .filter__item-content > :last-child { padding-bottom: 16px; }
.filter .filter__item-control-list { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }
.filter .filter__item-control-list-item { margin: 0; }
.filter .filter__item-control-list-letter { flex: 0 0 100%; margin-top: 6px; font-size: 13px; font-weight: 600; color: #8a8a96; }
/* вариант — пилюля; чекбокс скрыт (клик по подписи отмечает его, штатный onclick фильтра срабатывает) */
.filter .filter__item-control {
  position: relative;
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  margin: 0;
  padding: 0 14px;
  border: 1px solid #e3e3ea;
  border-radius: 999px;
  background: #fff;
  color: #1f1f29;
  font-size: 14px;
  cursor: pointer;
  transition: background .15s, border-color .15s, color .15s;
}
.filter .filter__item-control .filter__item-control-input { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.filter .filter__item-control > span { display: inline-block; text-transform: lowercase; }
.filter .filter__item-control > span::first-letter { text-transform: uppercase; }
.filter .filter__item-control:hover { border-color: var(--primary, #8450db); color: var(--primary, #8450db); }
.filter .filter__item-control:has(.filter__item-control-input:checked) {
  border-color: var(--primary, #8450db);
  background: var(--primary, #8450db);
  color: #fff;
}
.filter .filter__item-control.disabled,
.filter .filter__item-control:has(.filter__item-control-input:disabled) { opacity: .4; pointer-events: none; }
.filter .filter__item-control-more { margin-top: 10px; font-size: 14px; font-weight: 500; }
/* цена: скруглённые поля */
.filter .filter__item--slider input[type="text"],
.filter .filter__item--slider input[type="number"] {
  height: 40px;
  border: 1px solid #e3e3ea;
  border-radius: 12px;
  background: #fff;
  font-size: 15px;
}
/* низ: «Показать» и сброс */
.filter .filter__footer {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 16px calc(12px + env(safe-area-inset-bottom, 0px));
  border-top: 1px solid #ececf1;
  background: #fff;
  box-shadow: 0 -6px 20px rgba(31, 31, 41, .05);
}
.filter .filter__footer-apply-container { flex: 1 1 auto; min-width: 0; }
.filter .filter__apply-btn { width: 100%; height: 52px; border-radius: 16px; font-size: 16px; font-weight: 600; }
.filter .filter__clear-btn {
  flex: 0 0 52px;
  width: 52px;
  height: 52px;
  padding: 0;
  border: 1.5px solid #e3e3ea;
  border-radius: 16px;
  background: #fff;
  color: #4a4a55;
}

/* --- 12. Шапка — аккуратнее: верхняя полоса белая и тонкая (мелкий серый текст), основная часть ниже;
   «Каталог» — сплошной фиолетовый, поиск — мягкое серое поле без рамки (фокус — белое с фиолетовой рамкой);
   закреплённая при прокрутке — с лёгкой тенью. Телефон: компактнее, бургер — светло-фиолетовый. ------------- */
.header .header__top {
  height: 36px;
  border-bottom: 1px solid #f0f0f4;
  background: #fff;
  font-size: 13px;
}
.header .header__top .header-multilevel-menu a,
.header .header__top .header-multilevel-menu span { color: #6e6e7a; font-size: 13px; }
.header .header__top .header-multilevel-menu a:hover { color: var(--primary, #8450db); }
.header .contacts-header { color: #1f1f29; font-size: 14px; font-weight: 500; }
/* высота основной части на десктопе — переменная вендора (104px; от неё же отступы выпадающего каталога и пр.) */
@media (min-width: 1025px) {
  :root { --header-main-height: 80px; }
  .header--1 .header__main { padding-top: 14px; padding-bottom: 14px; }
}
.header .catalog-btn {
  height: 48px;
  border-radius: 14px;
  background: var(--primary, #8450db) !important;
  background-image: none !important;
  box-shadow: 0 6px 16px rgba(132, 80, 219, .25);
}
.header .catalog-btn::before,
.header .catalog-btn::after { display: none; }
.header .header__search .search-label {
  height: 48px;
  border: 1px solid transparent;
  border-radius: 14px;
  background: #f4f4f8;
  transition: background .2s, border-color .2s, box-shadow .2s;
}
.header .header__search .search-label:focus-within {
  border-color: var(--primary, #8450db);
  background: #fff;
  box-shadow: 0 0 0 3px rgba(132, 80, 219, .12);
}
.header .header__search .search-input { font-size: 15px; }
.header .personal__menu--desktop .personal__item-link { color: #4a4a55; }
.header .personal__menu--desktop .personal__item-link:hover { color: var(--primary, #8450db); }
.header .personal__menu--desktop .personal__item-text { font-size: 12px; }
.header.fixed .header__main { box-shadow: 0 8px 24px rgba(31, 31, 41, .06); }
@media (max-width: 1024px) {
  .header .header__top { height: 32px; }
  .header .contacts-header { font-size: 13px; }
  .header .header__main { padding-top: 8px; padding-bottom: 8px; }
  .header .header__logo-image--mobile { width: auto; height: 42px; }
  .header .header__search .search-label { height: 42px; }
  .header .catalog-btn {
    width: 42px;
    height: 42px;
    border-radius: 14px;
    background: #f1ecfd !important;
    color: var(--primary, #8450db) !important;
    box-shadow: none;
  }
}

/* =====================================================================
   13. Главная (24.09): первый экран, «Удобный оптовый заказ», плитки разделов.
   Разметка — template_layouts/blocks/{hero_banner,advantages}/template.php
   и catalog.section.list/raduga_tiles. Картинки — /local/img/home/*.webp.
   ===================================================================== */
.rh-ico {
  flex: none;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 12px;
  background: #f1ecfd;
  color: #8450db;
}
.rh-ico svg,
.rh-btn svg,
.rh-section-head__link svg,
.rh-cat__go svg {
  width: 20px;
  height: 20px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.rh-ico--soft { background: linear-gradient(145deg, #f4efff, #ebe2fd); }

/* первый блок главной идёт после пустого .title-container, :first-child вендора не срабатывает */
.main-page-block:has(> .rh-hero) { margin-top: 0; }

/* 13.1 Первый экран: [текст | фото] + строка фактов. Фото — обычная картинка в скруглённой рамке,
   без растворений по краям: админ меняет его на любое (3:2, люди по центру) и ничего не надо подгонять. */
.rh-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr);
  grid-template-areas: "text media" "facts facts";
  align-items: stretch;
  border-radius: 28px;
  overflow: hidden;
  background:
    radial-gradient(120% 90% at 0% 0%, #f3edff 0%, rgba(243, 237, 255, 0) 60%),
    linear-gradient(115deg, #f7f3ff 0%, #fbf8ff 45%, #fff4f7 100%);
}
.rh-hero__text {
  grid-area: text;
  align-self: center;
  padding: 44px 32px 36px 48px;
}
.rh-hero__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 18px;
  padding: 6px 14px 6px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .85);
  color: #5b3fb8;
  font-size: 13px;
  font-weight: 500;
  box-shadow: 0 1px 2px rgba(31, 31, 41, .06);
  max-width: 100%;
  white-space: nowrap; /* одна строка */
}
.rh-hero__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: conic-gradient(#f59ab4, #fbc97a, #8fd9b0, #8cb8f2, #b79cf0, #f59ab4);
}
.rh-hero__title {
  margin: 0 0 14px;
  color: #1f1f29;
  font-size: clamp(28px, 2.8vw, 40px);
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -.02em;
  text-wrap: balance; /* без одинокого слова на строке */
}
.rh-hero__lead {
  max-width: 34em;
  margin: 0 0 24px;
  color: #4a4a55;
  font-size: 16px;
  line-height: 1.5;
}
.rh-hero__chips {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  max-width: 500px;
  margin: 0 0 28px;
  padding: 0;
  list-style: none;
}
.rh-hero__chips li {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px;
  border-radius: 16px;
  background: rgba(255, 255, 255, .82);
  box-shadow: 0 1px 2px rgba(31, 31, 41, .05);
  color: #6e6e7a;
  font-size: 12px;
  line-height: 1.3;
}
.rh-hero__chips li > span:last-child { min-width: 0; white-space: nowrap; }
.rh-hero__chips b {
  display: block;
  color: #1f1f29;
  font-size: 14px;
  font-weight: 600;
}
.rh-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}
.rh-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  height: 52px;
  padding: 0 26px;
  border: 0;
  border-radius: 16px;
  font-size: 16px;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  transition: background .2s, box-shadow .2s, color .2s;
}
.rh-btn--primary {
  background: #8450db;
  color: #fff;
  box-shadow: 0 10px 24px rgba(132, 80, 219, .28);
}
.rh-btn--primary:hover { background: #7443c9; color: #fff; }
.rh-btn--ghost {
  background: #fff;
  color: #1f1f29;
  box-shadow: inset 0 0 0 1px #e3e3ea;
}
.rh-btn--ghost:hover { color: #5b3fb8; box-shadow: inset 0 0 0 1px #c9b8f5; }
.rh-hero__media {
  grid-area: media;
  position: relative;
  align-self: center;
  margin: 14px 14px 0 0;
  border-radius: 22px;
  overflow: hidden;
  background: #efe9fb;
}
/* фото — в потоке, пропорция 3:2 у самой картинки (не обрезается ни на какой ширине). Раньше 3:2 было у блока,
   а фото лежало в нём абсолютно: Safari на iPhone считал высоту такого блока в сетке нулевой — фото пропадало */
.rh-hero__media picture { display: block; }
.rh-hero__media img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  object-fit: cover;
  object-position: 50% 35%;
}
.rh-hero--noimg .rh-hero__media { aspect-ratio: 3 / 2; } /* заглушка-радуга (без фото) — абсолютная */
.rh-hero__rainbow {
  position: absolute;
  left: 8%;
  bottom: 0;
  width: 84%;
  height: 86%;
}
.rh-hero__facts {
  grid-area: facts;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin: 14px;
  padding: 16px 20px;
  border-radius: 20px;
  background: rgba(255, 255, 255, .8);
  box-shadow: 0 6px 20px rgba(60, 40, 120, .06);
  list-style: none;
}
.rh-hero__facts li {
  display: flex;
  align-items: center;
  gap: 12px;
}
.rh-hero__facts b {
  display: block;
  color: #1f1f29;
  font-size: 16px;
  font-weight: 700;
  line-height: 1.2;
}
.rh-hero__facts small {
  display: block;
  color: #6e6e7a;
  font-size: 13px;
  line-height: 1.3;
}

/* 13.2 «Удобный оптовый заказ» — 4 шага в строку */
.rh-steps {
  display: grid;
  grid-template-columns: minmax(200px, 270px) minmax(0, 1fr);
  align-items: center;
  gap: 28px;
  padding: 26px 32px;
  border-radius: 24px;
  background: linear-gradient(100deg, #f5f0ff, #f9f6ff);
  scroll-margin-top: 110px;
}
.rh-steps__title {
  margin: 0 0 6px;
  color: #1f1f29;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.2;
}
.rh-steps__lead {
  margin: 0;
  color: #6e6e7a;
  font-size: 14px;
  line-height: 1.45;
}
.rh-steps__list {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.rh-steps__list li {
  display: flex;
  align-items: center;
  gap: 12px;
  color: #1f1f29;
  font-size: 14px;
  line-height: 1.4;
}
.rh-steps__text { white-space: nowrap; }
.rh-steps__list li:not(:last-child)::after {
  content: "";
  flex: 1 1 12px;
  min-width: 12px;
  height: 1px;
  background: #d8cbf6;
}
.rh-steps__num {
  flex: none;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #8450db;
  color: #fff;
  font-size: 15px;
  font-weight: 600;
  box-shadow: 0 0 0 6px rgba(132, 80, 219, .12);
}

/* 13.3 Заголовок секции + плитки разделов */
.rh-section-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 18px;
}
.rh-section-head__title {
  margin: 0;
  color: #1f1f29;
  font-size: 26px;
  font-weight: 700;
  line-height: 1.2;
}
.rh-section-head__link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #8450db;
  font-size: 15px;
  font-weight: 500;
  text-decoration: none;
  white-space: nowrap;
}
.rh-section-head__link { gap: 8px; }
.rh-section-head__link:hover { color: #5b3fb8; }
.rh-section-head__go {
  display: grid;
  place-items: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #f1ecfd;
  transition: background .2s, color .2s;
}
.rh-section-head__go svg { width: 16px; height: 16px; stroke-width: 2.2; }
.rh-section-head__link:hover .rh-section-head__go { background: #8450db; color: #fff; }
.rh-cats {
  /* число плиток задаёт каталог (разделы 1-го уровня + «Весь каталог») — одна строка, доли поровну */
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(0, 1fr);
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.rh-cats > li { min-width: 0; } /* длинное название («Новорождённые») не должно раздувать плитку */
.rh-cat {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  aspect-ratio: 5 / 6;
  border-radius: 22px;
  overflow: hidden;
  isolation: isolate;
  background: var(--tile-bg, #f4effd);
  color: #1f1f29;
  text-decoration: none;
}
.rh-cat img {
  position: absolute;
  inset: 0;
  z-index: -1;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .5s ease;
}
.rh-cat:hover img { transform: scale(1.05); }
/* подпись — одной строкой и одной высоты у всех плиток; возраст и число моделей — пилюлями справа сверху */
.rh-cat__label {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  height: 46px;
  margin: 8px;
  padding: 0 8px 0 12px;
  border-radius: 15px;
  background: rgba(255, 255, 255, .88);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}
.rh-cat__name {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  color: #1f1f29;
  font-size: clamp(13px, .95vw, 15px);
  font-weight: 600;
  line-height: 1.2;
  white-space: nowrap;
  text-overflow: ellipsis;
}
.rh-cat__go {
  flex: none;
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 1px 3px rgba(31, 31, 41, .1);
  color: #1f1f29;
  transition: background .2s, color .2s;
}
.rh-cat__go svg { width: 16px; height: 16px; stroke-width: 2.2; transition: transform .2s; }
.rh-cat:hover .rh-cat__go { background: #8450db; color: #fff; }
.rh-cat:hover .rh-cat__go svg { transform: translate(1px, -1px); }
.rh-cat__pills {
  position: absolute;
  top: 8px;
  right: 8px;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}
.rh-pill {
  padding: 3px 9px;
  border-radius: 999px;
  background: rgba(255, 255, 255, .9);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
  box-shadow: 0 1px 2px rgba(31, 31, 41, .06);
  color: #4a4a55;
  font-size: 12px;
  font-weight: 500;
  line-height: 16px;
  white-space: nowrap;
}
.rh-pill--age { color: #5b3fb8; font-weight: 600; }
/* «Весь каталог»: та же подпись, в центре — 4 пастельных квадрата (цвета плиток) */
.rh-cat--all { background: linear-gradient(160deg, #9b70f0 0%, #7447d6 100%); }
.rh-cat--all .rh-pill { background: rgba(255, 255, 255, .2); color: #fff; box-shadow: none; }
.rh-cat__art {
  position: absolute;
  top: 42%;
  left: 50%;
  display: grid;
  grid-template-columns: repeat(2, 26px);
  gap: 7px;
  transform: translate(-50%, -50%) rotate(-8deg);
  transition: transform .4s ease;
}
.rh-cat__art i { width: 26px; height: 26px; border-radius: 9px; background: #fbeef7; }
.rh-cat__art i:nth-child(2) { background: #fff5e3; }
.rh-cat__art i:nth-child(3) { background: #ecf7f0; }
.rh-cat__art i:nth-child(4) { background: #eaf1fd; }
.rh-cat--all:hover .rh-cat__art { transform: translate(-50%, -50%) rotate(0deg) scale(1.06); }
.rh-cat--all .rh-cat__label { background: rgba(255, 255, 255, .16); }
.rh-cat--all .rh-cat__name { color: #fff; }
.rh-cat--all .rh-cat__go { background: #fff; color: #7447d6; }

/* 13.4 Ряды товаров на главной («Хиты и новинки», «Покупатели выбирают», «Просмотренные»):
   мини-карточки из раздела 8; 2 ряда по 6 → 4 → 3, на телефоне — лента со свайпом */
.main-page-block .catalog-section__title {
  margin: 0 0 18px;
  color: #1f1f29;
  font-size: 26px !important;
  font-weight: 700 !important;
  line-height: 1.2;
}
.main-page-block .catalog-section__container { grid-template-columns: repeat(6, minmax(0, 1fr)); }
/* «Хит»/«Новинка» — в левый верхний угол фото: внизу слева плашка цены */
:is(.similar-products, .main-page-block) .catalog-item__badges { top: 8px; bottom: auto; left: 8px; }
.main-page-block .catalog-section__item-wrapper:nth-of-type(n+13) { display: none; }
@media (max-width: 1279px) {
  .main-page-block .catalog-section__container { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .main-page-block .catalog-section__item-wrapper:nth-of-type(n+9) { display: none; }
}
@media (max-width: 1023px) {
  .main-page-block .catalog-section__container { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .main-page-block .catalog-section__item-wrapper:nth-of-type(n+7) { display: none; }
}
@media (max-width: 767px) {
  .main-page-block .catalog-section__title { font-size: 22px !important; margin-bottom: 14px; }
  .main-page-block .catalog-section__container {
    display: flex;
    gap: 10px;
    margin: 0 -16px;
    padding: 0 16px 4px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding: 0 16px;
    scrollbar-width: none;
  }
  .main-page-block .catalog-section__container::-webkit-scrollbar { display: none; }
  .main-page-block .catalog-section__item-wrapper { flex: 0 0 44%; scroll-snap-align: start; }
  .main-page-block .catalog-section__item-wrapper:nth-of-type(n+7) { display: flex; }
  .main-page-block .catalog-section__item-wrapper:nth-of-type(n+13) { display: none; }
}

/* 13.5 Нижние блоки главной (отзывы, сертификаты, «О нас», вопросы): заголовки как у секций выше */
.main-page-block > h2.fs-4,
.main-page-block .mainpage-faq__title {
  margin: 0 0 18px;
  color: #1f1f29;
  font-size: 26px !important;
  font-weight: 700 !important;
  line-height: 1.2;
}
.main-page-block .mainpage-about__subtitle {
  color: #8450db;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: .02em;
  text-transform: uppercase;
}
.main-page-block .mainpage-about__title {
  color: #1f1f29;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.15;
}
.main-page-block .mainpage-about__button { border-radius: 16px; }
@media (max-width: 767px) {
  .main-page-block > h2.fs-4,
  .main-page-block .mainpage-faq__title { font-size: 22px !important; margin-bottom: 14px; }
  .main-page-block .mainpage-about__title { font-size: 24px; }
}

/* 13.6 Отзывы — лента карточек (news.list/main_rev): 3 → 2 → 1,2 в ряд, свайп, стрелки у заголовка */
.rh-reviews { position: relative; }
.rh-reviews__title { margin-bottom: 18px; }
.rh-reviews__track {
  display: flex;
  align-items: stretch;
  gap: 16px;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  scrollbar-width: none;
  overscroll-behavior-x: contain;
  cursor: grab;
  -webkit-mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 48px), transparent 100%);
  mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 48px), transparent 100%);
}
.rh-reviews__track::-webkit-scrollbar { display: none; }
.rh-reviews__track.is-dragging { cursor: grabbing; scroll-snap-type: none; -webkit-user-select: none; user-select: none; }
.rh-reviews.is-scrolled .rh-reviews__track {
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 48px, #000 calc(100% - 48px), transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 48px, #000 calc(100% - 48px), transparent 100%);
}
.rh-reviews.is-scrolled.is-end .rh-reviews__track {
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 48px);
  mask-image: linear-gradient(90deg, transparent 0, #000 48px);
}
.rh-review {
  position: relative;
  flex: 0 0 calc((100% - 32px) / 3);
  display: flex;
  flex-direction: column;
  min-height: 250px;
  padding: 22px 22px 18px;
  border-radius: 22px;
  background: #faf8ff;
  box-shadow: inset 0 0 0 1px #efe9fb;
  scroll-snap-align: start;
}
.rh-review__quote { width: 30px; height: 22px; margin-bottom: 12px; fill: #d9ccf6; }
.rh-review__text {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 5;
  overflow: hidden;
  margin: 0;
  color: #2e2e38;
  font-size: 15px;
  line-height: 1.55;
}
.rh-review.is-open .rh-review__text { display: block; -webkit-line-clamp: unset; }
.rh-review__more {
  align-self: flex-start;
  margin-top: 6px;
  padding: 0;
  border: 0;
  background: none;
  color: #8450db;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
}
.rh-review__more[hidden] { display: none; }
.rh-review__who {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: auto;
  padding-top: 16px;
}
.rh-review__avatar {
  flex: none;
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  color: #5b3fb8;
  font-size: 16px;
  font-weight: 700;
}
.rh-review__who b { display: block; color: #1f1f29; font-size: 15px; font-weight: 600; line-height: 1.2; }
.rh-review__who small { display: block; margin-top: 2px; color: #8a8a96; font-size: 13px; }
@media (max-width: 1023px) { .rh-review { flex-basis: calc((100% - 16px) / 2); } }
@media (max-width: 767px) {
  .rh-reviews__track { gap: 10px; margin: 0 -16px; padding: 0 16px; scroll-padding: 0 16px; }
  .rh-review { flex-basis: 84%; min-height: 220px; padding: 18px 18px 16px; border-radius: 20px; }
  .rh-review__text { font-size: 14px; }
}

/* 13.7 Сертификаты (news.list/main_cert): лента без стрелок — свайп/тачпад/перетаскивание, затухание краёв;
   по клику — крупно в <dialog> */
.rh-certs { position: relative; }
.rh-certs__track {
  display: flex;
  gap: 16px;
  padding: 4px 0 8px;
  overflow-x: auto;
  scroll-snap-type: x proximity;
  scrollbar-width: none;
  overscroll-behavior-x: contain;
  cursor: grab;
  -webkit-mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 48px), transparent 100%);
  mask-image: linear-gradient(90deg, #000 0, #000 calc(100% - 48px), transparent 100%);
}
.rh-certs__track::-webkit-scrollbar { display: none; }
.rh-certs__track.is-dragging { cursor: grabbing; scroll-snap-type: none; }
.rh-certs__track.is-dragging .rh-cert { pointer-events: none; }
.rh-certs.is-scrolled .rh-certs__track {
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 48px, #000 calc(100% - 48px), transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0, #000 48px, #000 calc(100% - 48px), transparent 100%);
}
.rh-certs.is-scrolled.is-end .rh-certs__track {
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 48px);
  mask-image: linear-gradient(90deg, transparent 0, #000 48px);
}
.rh-certs.is-end:not(.is-scrolled) .rh-certs__track { -webkit-mask-image: none; mask-image: none; }
.rh-cert {
  flex: 0 0 calc((100% - 5 * 16px) / 6);
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 10px;
  border: 1px solid #ececf1;
  border-radius: 18px;
  background: #fff;
  color: #1f1f29;
  text-decoration: none;
  scroll-snap-align: start;
  transition: box-shadow .2s, border-color .2s;
  -webkit-user-select: none;
  user-select: none;
}
.rh-cert:hover { border-color: #e4d9fb; box-shadow: 0 8px 24px rgba(31, 31, 41, .08); color: #1f1f29; }
.rh-cert__img {
  display: block;
  aspect-ratio: 1 / 1.414;
  border-radius: 10px;
  overflow: hidden;
  background: #f7f7fb;
}
.rh-cert__img img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top; }
.rh-cert__title {
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  min-height: 2.7em;
  padding: 0 2px;
  color: #4a4a55;
  font-size: 13px;
  line-height: 1.35;
}
.rh-cert-dialog {
  max-width: min(92vw, 760px);
  max-height: 92vh;
  padding: 16px;
  border: 0;
  border-radius: 22px;
  box-shadow: 0 24px 60px rgba(31, 31, 41, .25);
}
.rh-cert-dialog::backdrop { background: rgba(31, 31, 41, .55); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); }
.rh-cert-dialog__img { display: block; max-width: 100%; max-height: calc(92vh - 90px); margin: 0 auto; border-radius: 10px; }
.rh-cert-dialog__title { margin: 12px 40px 0; color: #1f1f29; font-size: 14px; font-weight: 500; text-align: center; }
.rh-cert-dialog__close {
  position: absolute;
  top: 10px;
  right: 10px;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border: 0;
  border-radius: 50%;
  background: rgba(255, 255, 255, .92);
  box-shadow: 0 2px 8px rgba(31, 31, 41, .12);
  color: #1f1f29;
  cursor: pointer;
}
.rh-cert-dialog__close svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
@media (max-width: 1279px) { .rh-cert { flex-basis: calc((100% - 3 * 16px) / 4); } }
@media (max-width: 767px) {
  .rh-certs__track { gap: 10px; margin: 0 -16px; padding: 4px 16px 8px; scroll-padding: 0 16px; }
  .rh-cert { flex-basis: 42%; padding: 8px; border-radius: 16px; }
  .rh-cert__title { font-size: 12px; }
}

/* 13.8 «О нас» (include/main/about.php, .rh-about): текст + 3 факта + фото; обёртку вендора обнуляем */
.main-page-block .mainpage-about:has(> .rh-about) {
  display: block;
  padding: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
}
.rh-about {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: 40px;
  padding: 16px 16px 16px 44px;
  border-radius: 28px;
  background: linear-gradient(110deg, #f7f3ff 0%, #fbf9ff 55%, #fff6f8 100%);
}
.rh-about__eyebrow {
  display: inline-block;
  margin-bottom: 10px;
  color: #8450db;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.rh-about__title {
  margin: 0 0 16px;
  color: #1f1f29;
  font-size: clamp(24px, 2.2vw, 32px);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -.01em;
}
.rh-about__content p { margin: 0 0 10px; color: #4a4a55; font-size: 15px; line-height: 1.6; }
.rh-about__facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 20px 0 24px;
  padding: 0;
  list-style: none;
}
.rh-about__facts li {
  padding: 12px 14px;
  border-radius: 16px;
  background: rgba(255, 255, 255, .85);
  box-shadow: 0 1px 2px rgba(31, 31, 41, .05);
}
.rh-about__facts b { display: block; color: #1f1f29; font-size: 15px; font-weight: 700; line-height: 1.25; }
.rh-about__facts span { display: block; margin-top: 3px; color: #6e6e7a; font-size: 12.5px; line-height: 1.35; }
.rh-about__more svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.rh-about__media {
  aspect-ratio: 3 / 2;
  border-radius: 22px;
  overflow: hidden;
  background: #efe9fb;
}
.rh-about__media img { display: block; width: 100%; height: 100%; object-fit: cover; }

/* 13.9 «Вопросы и ответы» (blocks/faq): слева — пояснение, телефон, «Заказать звонок»; справа — карточки-вопросы */
.main-page-block .rh-faq {
  display: grid;
  grid-template-columns: minmax(260px, 340px) minmax(0, 1fr);
  align-items: start;
  gap: 40px;
  padding: 0;
}
.rh-faq__aside { position: sticky; top: calc(var(--header-main-height, 80px) + 24px); }
.rh-faq .mainpage-faq__title { margin-bottom: 12px; }
.rh-faq__lead { margin: 0 0 20px; color: #6e6e7a; font-size: 15px; line-height: 1.55; }
.rh-faq__phone {
  display: block;
  color: #1f1f29;
  font-size: 22px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  text-decoration: none;
}
.rh-faq__phone:hover { color: #8450db; }
.rh-faq__hours { display: block; margin-top: 4px; color: #8a8a96; font-size: 13px; }
.rh-faq__call { margin-top: 18px; }
.rh-faq .mainpage-faq__list { gap: 10px; }
.rh-faq .mainpage-faq__item {
  border: 1px solid #ececf1;
  border-radius: 18px;
  background: #fff;
  transition: border-color .2s, box-shadow .2s;
}
.rh-faq .mainpage-faq__item:has(.mainpage-faq__question.active) {
  border-color: #e4d9fb;
  box-shadow: 0 8px 24px rgba(132, 80, 219, .08);
}
.rh-faq .mainpage-faq__question {
  box-sizing: border-box;
  padding: 18px 20px;
  color: #1f1f29;
  font-size: 16px;
  font-weight: 600;
  line-height: 1.35;
}
.rh-faq .mainpage-faq__question:hover { background: #faf8ff; }
.rh-faq .mainpage-faq__question-icon {
  box-sizing: border-box;
  width: 30px;
  height: 30px;
  padding: 6px;
  border-radius: 50%;
  background: #f1ecfd;
  color: #8450db;
}
.rh-faq .mainpage-faq__question-icon { transform: rotate(90deg) !important; transition: transform .25s, background .2s, color .2s; }
.rh-faq .mainpage-faq__question.active .mainpage-faq__question-icon { transform: rotate(-90deg) !important; background: #8450db; color: #fff; }
.rh-faq .mainpage-faq__answer {
  padding: 0 20px 18px;
  color: #4a4a55;
  font-size: 15px;
  line-height: 1.6;
  white-space: pre-line;
}
@media (max-width: 1023px) {
  .rh-about { grid-template-columns: minmax(0, 1fr); gap: 20px; padding: 24px; }
  .rh-about__media { order: -1; }
  .main-page-block .rh-faq { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .rh-faq__aside { position: static; }
}
@media (max-width: 767px) {
  .rh-about { padding: 10px 10px 20px; border-radius: 22px; }
  .rh-about__text { padding: 0 8px; }
  .rh-about__media { border-radius: 16px; }
  .rh-about__facts { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .rh-about__more { width: 100%; }
  .rh-faq__phone { font-size: 20px; }
  .rh-faq__call { width: 100%; }
  .rh-faq .mainpage-faq__question { padding: 16px; font-size: 15px; }
  .rh-faq .mainpage-faq__answer { padding: 0 16px 16px; font-size: 14px; }
}

/* 13.10 Адаптив */
@media (max-width: 1279px) {
  .rh-hero__text { padding: 32px 20px 24px 28px; }
  .rh-steps { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .rh-steps__list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 24px; }
  .rh-steps__list li::after { display: none; }
  /* планшет и телефон — лента со свайпом (любое число плиток) */
  .rh-cats {
    display: flex;
    gap: 12px;
    padding-bottom: 4px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
  }
  .rh-cats::-webkit-scrollbar { display: none; }
  .rh-cats > li { flex: 0 0 calc((100% - 3 * 12px) / 3.4); scroll-snap-align: start; }
}
@media (max-width: 1023px) {
  /* планшет: первый экран — фото сверху (3:2, без обрезки), текст снизу, факты строкой */
  .rh-hero { grid-template-columns: minmax(0, 1fr); grid-template-areas: "media" "text" "facts"; }
  .rh-hero__media { align-self: start; margin: 14px 14px 0; }
  .rh-hero__text { padding: 24px 28px 12px; }
  .rh-hero__chips { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 560px; }
}
@media (max-width: 767px) {
  .rh-hero { border-radius: 22px; }
  .rh-hero__media { margin: 10px 10px 0; border-radius: 18px; }
  .rh-hero__text { padding: 18px 18px 8px; }
  .rh-hero__eyebrow { margin-bottom: 12px; font-size: 12px; }
  .rh-hero__title { font-size: 25px; }
  .rh-hero__lead { margin-bottom: 18px; font-size: 14px; }
  .rh-hero__chips { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: none; gap: 8px; margin-bottom: 20px; }
  .rh-hero__chips li { gap: 8px; padding: 8px; font-size: 11px; line-height: 1.25; }
  .rh-hero__chips li > span:last-child { white-space: normal; }
  .rh-hero__chips b { font-size: 13px; }
  .rh-hero__chips .rh-ico { width: 30px; height: 30px; border-radius: 10px; }
  .rh-hero__chips .rh-ico svg { width: 17px; height: 17px; }
  .rh-hero__actions .rh-btn { flex: 1 1 100%; height: 50px; }
  .rh-hero__facts { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; margin: 10px; padding: 16px; }
  .rh-hero__facts li { flex-direction: column; align-items: flex-start; gap: 8px; } /* значок над текстом — подписи не рвутся на 3–4 строки */
  .rh-hero__facts .rh-ico { width: 32px; height: 32px; }
  .rh-hero__facts b { font-size: 14px; }
  .rh-hero__facts small { font-size: 12px; }
  .rh-steps { padding: 20px 18px; border-radius: 20px; }
  .rh-steps__title { font-size: 20px; }
  .rh-steps__list { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .rh-steps__text { white-space: normal; }
  .rh-section-head__title { font-size: 22px; }
  .rh-cats { gap: 10px; margin: 0 -16px; padding: 0 16px 4px; scroll-padding: 0 16px; }
  .rh-cats > li { flex: 0 0 44%; }
  .rh-cat { border-radius: 18px; }
  .rh-cat__label { height: 42px; margin: 6px; padding: 0 6px 0 10px; border-radius: 12px; }
  .rh-cat__name { font-size: 13px; }
  .rh-cat__go { width: 26px; height: 26px; }
  .rh-cat__pills { top: 6px; right: 6px; }
  .rh-pill { padding: 2px 8px; font-size: 11px; }
}

/* =====================================================================
   14. Плашка cookie (SweetAlert2 вендора, .cookies-form) — компактная карточка в углу.
   Клики и прокрутку страницы вендор не блокирует (контейнер pointer-events:none) — только вид.
   ===================================================================== */
.swal2-container.cookies-form { padding: 20px !important; background: transparent !important; } /* без затемнения: страница под плашкой кликабельна */
.swal2-container.cookies-form .swal2-popup {
  width: 360px !important;
  padding: 18px 18px 16px !important;
  gap: 0;
  border: 1px solid #ececf1;
  border-radius: 20px !important;
  box-shadow: 0 16px 40px rgba(31, 31, 41, .14) !important;
}
.swal2-container.cookies-form .swal2-title {
  margin: 0 0 6px;
  padding: 0 32px 0 0 !important;
  color: #1f1f29;
  font-size: 16px !important;
  font-weight: 700 !important;
  line-height: 1.3;
}
.swal2-container.cookies-form .swal2-html-container {
  margin: 0 0 14px;
  padding: 0 !important;
  color: #6e6e7a;
  font-size: 13.5px !important;
  line-height: 1.45;
}
.swal2-container.cookies-form [data-show-argeement] {
  padding: 0;
  border: 0;
  background: none;
  color: #8450db;
  font-size: inherit;
  text-decoration: underline;
  text-decoration-color: rgba(132, 80, 219, .35);
  text-underline-offset: 3px;
  cursor: pointer;
}
.swal2-container.cookies-form .swal2-actions {
  justify-content: flex-start;
  gap: 8px;
  margin: 0;
  padding: 0 !important;
}
.swal2-container.cookies-form .swal2-actions .btn {
  height: 38px !important;
  margin: 0;
  padding: 0 18px !important;
  border-radius: 12px !important;
  font-size: 14px !important;
  font-weight: 600 !important;
}
.swal2-container.cookies-form .swal2-cancel { background: #f4f4f8 !important; color: #4a4a55 !important; }
.swal2-container.cookies-form .swal2-cancel:hover { background: #ececf1 !important; }
.swal2-container.cookies-form .swal2-close {
  top: 12px;
  right: 12px;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  color: #a2a2ad;
}
.swal2-container.cookies-form .swal2-close svg { width: 18px; height: 18px; }
.swal2-container.cookies-form .swal2-close:hover { background: #f4f4f8; color: #1f1f29; }
@media (max-width: 767px) {
  /* контейнер вендор уже поднимает над доком (bottom: var(--bottom-bar-height)) */
  .swal2-container.cookies-form { padding: 8px 10px 10px !important; }
  .swal2-container.cookies-form .swal2-popup { width: 100% !important; }
  .swal2-container.cookies-form .swal2-actions { flex-wrap: nowrap; }
  .swal2-container.cookies-form .swal2-actions .btn { flex: 1 1 0 !important; }
}

/* =====================================================================
   15. Контакты в шапке (template_layouts/header/areas/header_contacts.php): телефон — пилюля,
   список на десктопе (наведение) и окно на телефоне (SweetAlert2 .contacts-popup-container) —
   одинаковые строки: значок в сиреневом квадрате, номера крупно. Номер «+7 960 301-97-17» — в PHP.
   ===================================================================== */
.header .contacts-header {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  height: 28px;
  padding: 0 8px 0 3px;
  border-radius: 999px;
  color: #1f1f29;
  text-decoration: none;
  transition: background .2s;
}
.header .contacts-header:hover,
.header .contacts:hover .contacts-header { background: #f4f4f8; }
.header .contacts-header > svg:first-child {
  flex: none;
  width: 22px;
  height: 22px;
  padding: 4px;
  box-sizing: border-box;
  border-radius: 50%;
  background: #f1ecfd;
  color: #8450db;
}
.header .contacts-header .contacts-main {
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .01em;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.header .contacts-header .contacts-arrow {
  width: 14px;
  height: 14px;
  color: #a2a2ad;
  transform: rotate(-90deg); /* в спрайте шеврон смотрит влево: −90° = вниз (выпадающий список) */
  transition: transform .2s;
}
@media (min-width: 1025px) {
  .header .contacts:hover .contacts-arrow { transform: rotate(90deg); }
}
/* выпадающий список (десктоп) */
#header-contacts .contacts-popup {
  width: 320px;
  padding: 10px;
  border: 1px solid #ececf1;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 16px 40px rgba(31, 31, 41, .12);
}
#header-contacts .contacts-popup__button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  height: 44px;
  margin-top: 6px;
  border-radius: 14px;
  font-size: 15px;
  font-weight: 600;
}
/* значок в кнопке — просто белая иконка, не «квадрат» строки контактов (.contacts-popup в селекторе — иначе правило
   строк ниже той же силы перебивало: в кнопке был лиловый квадрат с контурной трубкой) */
#header-contacts .contacts-popup .contacts-popup__button .contacts-popup__item-icon {
  width: 20px;
  height: 20px;
  padding: 0;
  border-radius: 0;
  background: none;
  color: #fff;
}
/* блок открыт, пока указатель над номером или над ним (CSS вендора); между ними зазор 8 px — блок пропадал по пути
   к мессенджерам. «Мостик» над блоком, как у мини-корзины */
#header-contacts .contacts-popup::before { content: ""; position: absolute; top: -14px; right: 0; left: 0; height: 14px; }
/* строки — общие для списка и окна */
:is(#header-contacts .contacts-popup, .contacts-popup-container) .contacts-popup__list {
  display: grid;
  gap: 2px;
  margin: 0;
  padding: 0;
  list-style: none;
}
:is(#header-contacts .contacts-popup, .contacts-popup-container) .contacts-popup__item,
:is(#header-contacts .contacts-popup, .contacts-popup-container) .contacts-popup__item-content {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  color: #4a4a55;
  font-size: 14px;
  line-height: 1.35;
}
:is(#header-contacts .contacts-popup, .contacts-popup-container) .contacts-popup__item { padding: 8px; border-radius: 14px; }
:is(#header-contacts .contacts-popup, .contacts-popup-container) .contacts-popup__item:empty { display: none; }
:is(#header-contacts .contacts-popup, .contacts-popup-container) .contacts-popup__item-icon {
  flex: none;
  width: 36px;
  height: 36px;
  padding: 9px;
  box-sizing: border-box;
  border-radius: 12px;
  background: #f1ecfd;
  color: #8450db;
}
:is(#header-contacts .contacts-popup, .contacts-popup-container) .contacts-popup__item-list {
  display: grid;
  gap: 2px;
  margin: 0;
  padding: 0;
  list-style: none;
}
:is(#header-contacts .contacts-popup, .contacts-popup-container) .contacts-popup__item-link {
  color: #1f1f29;
  font-weight: 600;
  text-decoration: none;
}
:is(#header-contacts .contacts-popup, .contacts-popup-container) .contacts-popup__phone .contacts-popup__item-link {
  font-size: 16px;
  font-variant-numeric: tabular-nums;
}
:is(#header-contacts .contacts-popup, .contacts-popup-container) a.contacts-popup__item-link:hover { color: #8450db; }
:is(#header-contacts .contacts-popup, .contacts-popup-container) .contacts-popup__phone-caption {
  display: block;
  color: #8a8a96;
  font-size: 12px;
  font-weight: 400;
}
/* окно «Контакты» (телефон/планшет) */
.contacts-popup-container .swal2-popup { gap: 0 !important; padding: 22px 14px 14px !important; }
.contacts-popup-container .swal2-title {
  padding: 0 44px 0 8px !important;
  color: #1f1f29;
  font-size: 20px !important;
  font-weight: 700 !important;
}
.contacts-popup-container .swal2-html-container { margin: 10px 0 12px !important; padding: 0 !important; }
.contacts-popup-container .swal2-html-container .contacts-popup__button { display: none; }
.contacts-popup-container .swal2-actions { width: 100%; margin: 0; padding: 0 !important; }
.contacts-popup-container .swal2-confirm {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  height: 52px !important;
  border-radius: 16px !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  box-shadow: 0 10px 24px rgba(132, 80, 219, .24);
}
@media (max-width: 767px) {
  /* шторка снизу — «ручка» сверху */
  .contacts-popup-container .swal2-popup::before {
    content: "";
    position: absolute;
    top: 8px;
    left: 50%;
    width: 36px;
    height: 4px;
    margin-left: -18px;
    border-radius: 2px;
    background: #e3e3ea;
  }
}
/* крестик всех окон вендора — круглый, как у плашки cookie */
.swal2-container .swal2-popup.popup .swal2-close {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  color: #a2a2ad;
  transition: background .2s, color .2s;
}
.swal2-container .swal2-popup.popup .swal2-close:hover { background: #f4f4f8; color: #1f1f29; }

/* =====================================================================
   16. Окна вендора (SweetAlert2) на всём сайте: пока открыто окно/шторка — нижняя панель (док)
   уезжает вниз, окно не поднимается над ней. Плашка cookie — не окно: док остаётся.
   Формы (обратный звонок и др., .form__popup-container) — всегда по центру, в стиле сайта.
   ===================================================================== */
@media (max-width: 1024px) {
  nav.personal:has(.personal__menu--mobile-bottom) { transition: transform .28s cubic-bezier(.2, .8, .2, 1), opacity .2s; }
  body:has(.swal2-container:not(.cookies-form)) nav.personal:has(.personal__menu--mobile-bottom),
  body:has(dialog[open]) nav.personal:has(.personal__menu--mobile-bottom) {
    transform: translateY(calc(100% + 24px));
    opacity: 0;
    pointer-events: none;
  }
  /* затемнение — на весь экран: с top/bottom: 0 контейнер на телефоне не доставал до низа на высоту дока */
  .swal2-container:not(.cookies-form) { top: 0 !important; bottom: auto !important; height: 100dvh !important; }
  .swal2-container:not(.cookies-form) .swal2-popup { padding-bottom: calc(16px + env(safe-area-inset-bottom, 0px)) !important; }
}
/* формы — по центру на любой ширине */
.swal2-container.form__popup-container {
  display: grid !important;
  grid-template: minmax(0, 1fr) / minmax(0, 1fr) !important;
  place-items: center;
  top: 0;
  padding: 16px !important;
}
/* у вендора на ≤1024: .swal2-popup { width:100% !important; grid-area:3/3 !important; place-self:end !important } — шторка */
.swal2-container.form__popup-container > .swal2-popup {
  grid-area: 1 / 1 !important;
  place-self: center !important;
  width: min(460px, 100%) !important;
  max-height: calc(100dvh - 32px) !important;
  margin: 0 !important;
  padding: 28px 28px 24px !important;
  overflow-y: auto;
  border-radius: 24px !important;
  box-shadow: 0 24px 60px rgba(31, 31, 41, .22) !important;
}
.form__popup-container .swal2-title {
  padding: 0 40px 0 0 !important;
  color: #1f1f29;
  font-size: 20px !important;
  font-weight: 600 !important;
  text-align: left;
}
/* без своей прокрутки: поля шире блока на 1px давали горизонтальную полосу прокрутки (фиолетовая черта под согласием);
   прокручивается само окно */
.form__popup-container .swal2-html-container { margin: 20px 0 0 !important; padding: 0 !important; overflow: visible !important; }
.form__popup-container .form__questions-container { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; }
.form__popup-container .form__text,
.form__popup-container .form__captcha { gap: 8px !important; }
.form__popup-container .form__text > span,
.form__popup-container .form__text > label,
.form__popup-container .form__captcha > label {
  color: #6e6e7a;
  font-size: 14px !important;
  font-weight: 400 !important;
}
.form__popup-container .input-text {
  height: 48px;
  padding: 0 14px;
  border: 1px solid #e3e3ea;
  border-radius: 14px;
  background: #fafafe;
  color: #1f1f29;
  font-size: 16px;
  transition: border-color .2s, box-shadow .2s, background .2s;
}
.form__popup-container .input-text:focus {
  border-color: #8450db;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(132, 80, 219, .14);
  outline: none;
}
.form__popup-container .captcha { height: 48px; border: 1px solid #e3e3ea; border-radius: 14px; }
.form__popup-container .captcha-reload {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: #f4f4f8;
  color: #6e6e7a;
}
.form__popup-container [data-bx-user-consent] { color: #6e6e7a; font-size: 13px; line-height: 1.4; }
.form__popup-container [data-bx-user-consent] a { color: #8450db; }
.form__popup-container .swal2-actions { width: 100%; margin: 26px 0 0 !important; padding: 0 !important; }
.form__popup-container .swal2-confirm {
  width: 100%;
  height: 52px !important;
  margin: 0 !important;
  border-radius: 16px !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  box-shadow: 0 10px 24px rgba(132, 80, 219, .24);
}

/* =====================================================================
   17. Мессенджеры (.rh-msg), полоса «прайс / консультация» (.rh-help), подвал (.rf).
   Мессенджеры и прайс — из «Настройки → Радуга: мессенджеры и прайс» (/local/raduga/settings.php).
   ===================================================================== */
.rh-msg {
  --msg: #8450db;
  flex: none;
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 14px;
  background: var(--msg);
  color: #fff;
  text-decoration: none;
  transition: filter .2s, transform .2s;
}
.rh-msg:hover { filter: brightness(1.08); color: #fff; transform: translateY(-1px); }
.rh-msg svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.rh-msg--whatsapp { --msg: #25d366; }
.rh-msg--telegram { --msg: #229ed9; }
.rh-msg--max { background: linear-gradient(135deg, #19baff 0%, #2b32ff 55%, #7b08fc 100%); } /* цвета знака MAX */
.rh-msg svg.rh-msg__fill { width: 20px; height: 20px; fill: currentColor; stroke: none; }
.rh-msg--wide {
  display: inline-flex;
  gap: 8px;
  width: auto;
  height: 44px;
  padding: 0 16px 0 12px;
  font-size: 14px;
  font-weight: 600;
}
/* в контактах шапки (список и окно) */
:is(#header-contacts .contacts-popup, .contacts-popup-container) .contacts-popup__messengers {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 6px 8px 4px;
}
:is(#header-contacts .contacts-popup, .contacts-popup-container) .contacts-popup__messengers .rh-msg { width: 48px; height: 48px; border-radius: 15px; }
:is(#header-contacts .contacts-popup, .contacts-popup-container) .contacts-popup__messengers .rh-msg svg { width: 24px; height: 24px; }
/* «Вопросы и ответы» */
.rh-faq__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 18px; }
.rh-faq__actions .rh-faq__call { box-sizing: border-box; flex: 1 1 140px; min-width: 0; margin-top: 0; padding: 0 12px; white-space: nowrap; } /* кнопка уже — три мессенджера в ту же строку */
.rh-faq__actions .rh-msg { width: 52px; height: 52px; border-radius: 16px; }

/* полоса после ряда «Рекомендуем» */
.rh-help { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; margin-top: 28px; }
.rh-help--two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.rh-help__card {
  position: relative;
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 24px 28px;
  border-radius: 24px;
  overflow: hidden;
}
.rh-help__card--price { background: linear-gradient(110deg, #f1ecfd, #f8f5ff); }
.rh-help__card--consult { background: linear-gradient(110deg, #eef7f2, #f6fbf8); }
.rh-help__body { position: relative; z-index: 1; min-width: 0; }
.rh-help__title { margin: 0 0 6px; color: #1f1f29; font-size: 20px; font-weight: 700; line-height: 1.25; }
.rh-help__text { margin: 0 0 16px; color: #6e6e7a; font-size: 14px; line-height: 1.45; }
.rh-help__btn { height: 44px; padding: 0 18px; font-size: 15px; }
.rh-help__btn svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.rh-help__actions { display: flex; flex-wrap: wrap; gap: 8px; }
/* иллюстрация «файл таблицы» */
.rh-help__file {
  position: relative;
  flex: none;
  display: grid;
  align-content: center;
  gap: 7px;
  width: 84px;
  height: 104px;
  margin-left: auto;
  padding: 0 16px;
  border-radius: 12px 26px 12px 12px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(60, 40, 120, .12);
  transform: rotate(6deg);
}
.rh-help__file i { display: block; height: 5px; border-radius: 3px; background: #e4d9fb; }
.rh-help__file i:nth-child(2) { width: 70%; }
.rh-help__file b {
  position: absolute;
  left: -10px;
  bottom: 14px;
  padding: 3px 8px;
  border-radius: 6px;
  background: #1f9d55;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .03em;
}

/* подвал (template_layouts/footer/templates/2) — обёртку вендора обнуляем */
/* короткая страница: у вендора растягивается main и под содержимым пустота до подвала (на высоком экране
   260 px под «Нужна консультация?» — замечание проверки 29.09); теперь подвал идёт сразу, растягивается его фон */
body:has(> .footer > .rf) > main { flex-grow: 0; }
body > .footer:has(> .rf) {
  display: flex;
  flex-direction: column;
  flex-grow: 1;
  margin-top: 40px;
  padding: 0;
  padding-top: 0 !important; /* у вендора .footer--2 { padding-top: 42px !important } — было 48 + 42 px до подвала */
  background: none;
  border: 0;
}
.rf {
  flex-grow: 1;
  padding: 36px 40px 20px;
  border-radius: 28px 28px 0 0;
  background: #f7f5fc;
  color: #4a4a55;
}
.rf__top {
  display: grid;
  grid-template-columns: minmax(260px, 320px) minmax(0, 1fr);
  gap: 48px;
  padding-bottom: 28px;
  border-bottom: 1px solid #e9e4f5;
}
.rf__logo .footer__logo-container { display: inline-block; height: 48px; }
.rf__logo img,
.rf__logo .footer__logo-image { width: auto !important; height: 48px !important; }
.rf__logo .lazy-loader { height: 48px !important; width: auto !important; }
.rf__about { margin: 12px 0 18px; font-size: 14px; line-height: 1.5; color: #6e6e7a; }
.rf__phone {
  display: block;
  color: #1f1f29;
  font-size: 22px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
  text-decoration: none;
}
.rf__phone:hover { color: #8450db; }
.rf__hours { display: block; margin-top: 2px; color: #8a8a96; font-size: 13px; }
.rf__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.rf__call { height: 44px; padding: 0 18px; font-size: 15px; }
.rf__nav { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; }
.rf__title {
  margin: 0 0 12px;
  color: #1f1f29;
  font-size: 15px;
  font-weight: 700;
}
.rf .footer__menu,
.rf__contacts { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.rf__lead-link { margin-bottom: 9px; }
.rf__lead-link a,
.rf .footer__menu-text,
.rf__contacts a {
  color: #4a4a55;
  font-size: 14px;
  line-height: 1.35;
  text-decoration: none;
  transition: color .2s;
}
.rf__lead-link a:hover,
.rf .footer__menu-text:hover,
.rf__contacts a:hover { color: #8450db; }
.rf__contacts a { font-weight: 600; color: #1f1f29; }
.rf__address { font-size: 14px; line-height: 1.45; color: #6e6e7a; }
.rf__bottom {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 24px;
  padding-top: 18px;
  color: #8a8a96;
  font-size: 13px;
}
.rf__bottom-right { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; }
.rf .footer__copyright { color: #8a8a96; font-size: 13px; }
.rf .footer__vendor { display: inline; color: #8a8a96 !important; font-size: 13px; text-decoration: none; transition: color .2s; }
.rf .footer__vendor b { color: #4a4a55; font-weight: 700; letter-spacing: .02em; }
.rf .footer__vendor:hover,
.rf .footer__vendor:hover b { color: #8450db !important; }
.rf .footer__vendor:hover { filter: none !important; } /* у вендора :hover { filter: contrast(0) brightness(2) } — текст белел */
.rf .footer__payments { display: flex; gap: 8px; }
@media (max-width: 1279px) {
  .rf__top { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .rf__nav { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 20px; }
}
@media (max-width: 1023px) {
  .rh-help--two { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 767px) {
  .rh-help { margin-top: 20px; gap: 12px; }
  .rh-help__card { padding: 20px 18px; border-radius: 20px; }
  .rh-help__title { font-size: 18px; }
  .rh-help__file { width: 64px; height: 80px; padding: 0 12px; }
  .footer:has(> .rf) { margin-top: 32px; }
  .rf { padding: 24px 18px 16px; border-radius: 22px 22px 0 0; }
  .rf__phone { font-size: 20px; }
  .rf__nav { gap: 22px 14px; }
  .rf__col--contacts { grid-column: 1 / -1; }
  .rf__bottom { flex-direction: column; align-items: flex-start; }
}

/* =====================================================================
   18. Меню каталога (/local/js/raduga_menu.js): десктоп — разделы слева + мега-панель со всеми подразделами
   и их подпунктами; телефон/планшет — экран на всю страницу, по уровням (разделы → подразделы → подпункты).
   ===================================================================== */
@media (min-width: 1025px) {
  .catalog-menu [data-entity="header-menu-banner"],
  .catalog-menu [data-depth-level="3"],
  .catalog-menu [data-depth-level="4"] { display: none !important; }
  /* на всю ширину экрана (у вендора width: fit-content — на широких экранах меню было узким, сбоку страница) */
  /* высота — по содержимому (вендор тянул на весь экран — под списками пустое поле), страница ниже затемнена */
  .header .catalog-menu {
    width: 100%;
    height: auto !important;
    max-height: calc(100dvh - 120px);
    border-radius: 0 0 28px 28px;
    box-shadow: 0 30px 60px rgba(31, 31, 41, .12);
  }
  .catalog-menu [data-depth-level="1"] { flex: 0 0 290px; padding: 16px 10px; border-right: 1px solid #f0edf7; }
  .catalog-menu [data-depth-level="1"] .catalog-menu__link { border-radius: 14px; transition: background .15s, color .15s; }
  .catalog-menu [data-depth-level="1"] .catalog-menu__item.is-active > .catalog-menu__link,
  .catalog-menu [data-depth-level="1"] .catalog-menu__link:hover { background: #f1ecfd; color: #5b3fb8; }
  .catalog-menu .rdp-mega {
    flex: 1 1 auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) clamp(240px, 20vw, 320px);
    grid-template-rows: auto 1fr;
    align-content: start;
    column-gap: 40px;
    max-width: none;
    width: auto;
    padding: 22px 24px 28px 36px;
    overflow-y: auto;
  }
  .rdp-mega__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 20px;
    list-style: none;
  }
  .rdp-mega__title { color: #1f1f29; font-size: 22px; font-weight: 700; text-decoration: none; }
  .rdp-mega__title:hover { color: #8450db; }
  .rdp-mega__all { display: inline-flex; align-items: center; gap: 6px; color: #8450db; font-size: 14px; font-weight: 600; text-decoration: none; white-space: nowrap; }
  .rdp-mega__all svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
  /* подразделы колонками-«газетой»: группы разной длины без дыр между рядами */
  .rdp-mega__head, .rdp-mega__grid { grid-column: 1; }
  .rdp-mega__grid { columns: 4 210px; column-gap: 36px; list-style: none; }
  .rdp-mega__group { padding-bottom: 24px; break-inside: avoid; }
  .rdp-mega__promo { grid-column: 2; grid-row: 1 / span 2; list-style: none; }
  .rdp-mega__card.rh-cat { position: sticky; top: 0; aspect-ratio: 4 / 5; }
  .rdp-mega__card .rh-cat__name { font-size: 15px; }
  .rdp-mega:has(.rdp-mega__promo) .rdp-mega__all { display: none; } /* «Все товары раздела» — плитка справа */
  .rdp-mega__sub { color: #1f1f29; font-size: 16px; font-weight: 700; line-height: 1.3; text-decoration: none; }
  .rdp-mega__sub:hover { color: #8450db; }
  .rdp-mega__list { display: grid; gap: 9px; margin: 12px 0 0; padding: 0; list-style: none; }
  .rdp-mega__link { color: #5d5b6a; font-size: 15px; line-height: 1.35; text-decoration: none; }
  .rdp-mega__link:hover { color: #8450db; }
}
@media (min-width: 1025px) and (max-width: 1199px) {
  .catalog-menu .rdp-mega { grid-template-columns: minmax(0, 1fr); }
  .rdp-mega__promo { display: none; }
  .rdp-mega:has(.rdp-mega__promo) .rdp-mega__all { display: inline-flex; }
}
/* телефон/планшет: меню — отдельный экран на всю страницу поверх шапки; док остаётся сверху
   («Каталог» в нём закрывает меню). Вендор ставил меню под шапку по её положению — после прокрутки
   страницы оно уезжало за экран; позицию вендора скрипт сбрасывает. */
@media (max-width: 1024px) {
  .header .header-mobile-menu {
    top: 0 !important;
    right: 0;
    bottom: 0;
    left: 0;
    height: auto !important;
    padding: env(safe-area-inset-top, 0px) 0 calc(var(--bottom-bar-height, 66px) + 24px);
    background: #fff !important;
    overscroll-behavior: contain;
  }
  /* кнопка телефона в шапке лежит слоем выше меню — пока меню открыто, её не видно */
  .header:has(.header-mobile-menu:not(.d-none)) .header__top { visibility: hidden; }
}
.rdp-mpage {
  box-sizing: border-box;
  width: 100%;
  max-width: 680px;
  margin: 0 auto;
  padding: 0 16px;
  animation: rdpPageIn .24s cubic-bezier(.2, .8, .2, 1);
}
.rdp-mpage.is-back { animation-name: rdpPageBack; }
@keyframes rdpPageIn {
  from { opacity: 0; transform: translateX(24px); }
  to { opacity: 1; transform: none; }
}
@keyframes rdpPageBack {
  from { opacity: 0; transform: translateX(-24px); }
  to { opacity: 1; transform: none; }
}
.rdp-mbar {
  position: sticky;
  top: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 64px;
  margin: 0 -16px;
  padding: 10px 16px;
  background: rgba(255, 255, 255, .92);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
}
.rdp-mbar__title {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  color: #1f1f29;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.rdp-mbar--root .rdp-mbar__title { font-size: 26px; }
.rdp-mbar__btn {
  flex: none;
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  border-radius: 50%;
  background: #f4f3f8;
  color: #1f1f29;
}
.rdp-mbar svg,
.rdp-mlist svg { fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.rdp-mbar__btn svg { width: 22px; height: 22px; }
.rdp-mlist { margin: 0; padding: 0; list-style: none; }
.rdp-mrow {
  display: flex;
  align-items: center;
  gap: 14px;
  box-sizing: border-box;
  width: 100%;
  min-height: 56px;
  padding: 8px 0;
  border: 0;
  border-bottom: 1px solid #f0eff5;
  background: none;
  color: #1f1f29;
  font: inherit;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.3;
  text-align: left;
  text-decoration: none;
}
.rdp-mrow:active,
.rdp-mrow:hover { color: #8450db; }
.rdp-mlist > li:last-child > .rdp-mrow { border-bottom: 0; }
.rdp-mrow__name { flex: 1 1 auto; min-width: 0; }
.rdp-mrow > svg { flex: none; width: 20px; height: 20px; color: #b9b7c6; }
.rdp-mrow__thumb {
  flex: none;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  overflow: hidden;
  border-radius: 14px;
  background: #f3effc;
  color: #8450db;
  font-size: 18px;
  font-weight: 700;
}
.rdp-mrow__thumb img { display: block; width: 100%; height: 100%; object-fit: cover; }
.rdp-mrow--all { color: #8450db; font-weight: 600; }
.rdp-mrow--all > svg { width: 18px; height: 18px; color: currentColor; }
/* остальные меню сайта и вход — спокойнее каталога, отделены линией */
.rdp-mlist--links { margin-top: 16px; border-top: 1px solid #ececf1; }
.rdp-mlist--links .rdp-mrow { min-height: 48px; color: #4a4a57; font-size: 15px; font-weight: 400; }
.rdp-mlist--links + .rdp-mlist--links { margin-top: 0; }
/* «Войти» / профиль (пункт вендора) — строкой как остальные, акцентом */
.rdp-mlist--links .header-mobile-menu-item > a,
.rdp-mlist--links .header-mobile-menu-item > button {
  align-items: center;
  width: 100%;
  min-height: 52px;
  padding: 8px 0 !important;
  color: #8450db;
  font-size: 15px;
  font-weight: 600;
}

/* =====================================================================
   19. Телефон/планшет (≤1024): шапка в одну строку — логотип · поиск · телефон (бургера нет: меню открывает
   «Каталог» в доке, раздел 18). Верхняя полоса выведена из потока — телефон встаёт на место бургера.
   ===================================================================== */
@media (max-width: 1024px) {
  .header .header__catalog-button-wrapper { display: none !important; }
  .header .header__top {
    position: absolute;
    top: 0;
    right: 16px;
    bottom: 0;
    z-index: 3;
    display: flex;
    align-items: center;
    width: auto;
    height: auto !important;
    padding: 0 !important;
    background: none !important;
    border: 0 !important;
  }
  .header .header__top-menu-wrapper { display: none !important; }
  .header .header__main { padding-right: 70px !important; }
  /* телефон — круглая кнопка (открывает окно контактов вендора) */
  .header .header__top .contacts-header {
    width: 42px;
    height: 42px;
    padding: 0;
    justify-content: center;
    border-radius: 14px;
    background: #f1ecfd;
  }
  .header .header__top .contacts-header > svg:first-child { width: 24px; height: 24px; padding: 2px; background: none; }
  .header .header__top .contacts-header .contacts-main,
  .header .header__top .contacts-header .contacts-arrow { display: none !important; }
  .header .header__logo-image--mobile,
  .header .header__logo img { max-height: 42px; width: auto; }
  /* одна линия: логотип, поиск и телефон — все 42px, по центру строки (были блоки по 52px, прижатые кверху) */
  .header .header__main { align-items: center; min-height: 58px; }
  .header .header__logo-wrapper,
  .header .header__logo,
  .header .header__search { display: flex; align-items: center; height: 42px; align-self: center; }
  .header .header__logo img { max-height: 42px !important; }
  .header .header__search .search-label { margin: 0; }

  /* «Каталог» в доке подсвечен, пока меню открыто */
  .personal__menu--mobile-bottom [data-menu-code="CATALOG"] .is-menu-open { background: #5b3fb8 !important; }
}

/* =====================================================================
   20. Планшет (600–1024): окна и шторки — как в iOS: постоянной ширины по центру, не во весь экран
   (как капсула дока). Телефон (<600) — шторки во всю ширину. Меню каталога — на весь экран (раздел 18).
   ===================================================================== */
@media (min-width: 600px) and (max-width: 1024px) {
  .swal2-container:not(.cookies-form):not(.form__popup-container) {
    display: grid !important;
    grid-template: minmax(0, 1fr) / minmax(0, 1fr) !important;
    padding: 16px 16px calc(16px + env(safe-area-inset-bottom, 0px)) !important;
  }
  .swal2-container:not(.cookies-form):not(.form__popup-container) > .swal2-popup {
    grid-area: 1 / 1 !important;
    place-self: end center !important;
    width: min(480px, 100%) !important;
    border-radius: 24px !important;
  }
}

/* =====================================================================
   21. Шапка всегда едет за прокруткой (десктоп и телефон). Страница товара: шапка сайта не прячется,
   «Назад» — в строке хлебных крошек; плавающая панель «В корзину» над доком и «Сравнение» убраны
   (покупка — карточкой на странице, внизу — только док).
   ===================================================================== */
@media (min-width: 1025px) {
  /* на странице товара вендор при прокрутке делал шапку прозрачной (.hidden) и показывал свою липкую шапку
     товара — она дублирует карточку покупки */
  body:has(.rdp-buy) .header.hidden { opacity: 1; pointer-events: auto; }
  .detail__fixed-header { display: none !important; }
}
@media (max-width: 1024px) {
  /* у вендора шапка закрепляется только на десктопе */
  .header.header { position: sticky; top: 0; }
  .header.fixed { box-shadow: 0 1px 0 #efeef4, 0 6px 16px rgba(31, 31, 41, .05); }

  /* страница товара: вендор обнулял шапку (height: 0 !important, логотип и поиск скрыты) — возвращаем как везде */
  body:has(.rdp-buy) .header .header__main {
    height: auto !important;
    padding: 8px 70px 8px var(--padding-container-left, 16px) !important;
    overflow: visible !important;
  }
  body:has(.rdp-buy) .header .header__top { overflow: visible !important; }
  body:has(.rdp-buy) .header .header__logo-wrapper,
  body:has(.rdp-buy) .header .header__regions-wrapper { display: flex !important; } /* в regions — кнопка телефона */
  body:has(.rdp-buy) .header .header__search-wrapper { display: block !important; }
  /* «Назад» — в строке хлебных крошек (общее правило — раздел 23) */
  body:has(.rdp-buy) .catalog__breadcrumbs-element { height: auto; }
  body:has(.rdp-buy) .catalog__breadcrumbs-element .breadcrumbs { padding: 10px var(--padding-container-right, 16px) 6px var(--padding-container-left, 16px); }

  /* плавающая панель товара (цена, «В корзину», «Купить в 1 клик») над доком — не нужна */
  html body .bottom-bar { display: none !important; }
  html:root { --bottom-catalog-bar-height: 0px; } /* вендор резервировал под неё отступ внизу страницы */
}
/* «Сравнение» — нигде (на странице товара кнопка вендора перебивала правило раздела 4) */
html body .compare-btn,
html body [data-entity="compare-btn"],
.compare-list__wrapper { display: none !important; }

/* =====================================================================
   22. Остальные страницы (О компании, Помощь, Акции, Блог, 404, /catalog/): только стили поверх разметки
   вендора и текстов из админки — без новых шаблонов. Боковое меню раздела (menu/sidebar) — карточкой на
   десктопе, пилюлями на телефоне; текст — читаемой колонкой; ручная вёрстка отзывов и сертификатов
   (инлайн-стили из визуального редактора) — в сетку.
   ===================================================================== */
@media (min-width: 1025px) {
  .sidebar {
    position: sticky;
    top: calc(var(--header-main-height, 80px) + 24px);
    align-self: flex-start;
    flex: none;
    width: 250px;
    padding: 8px;
    border: 1px solid #ececf1;
    border-radius: 20px;
    background: #fff;
  }
  .sidebar .swiper-wrapper { flex-direction: column; gap: 2px; width: 100% !important; transform: none !important; }
  .sidebar .sidebar__item { width: 100% !important; min-width: 0 !important; margin: 0 !important; padding: 0 !important; }
  /* вариант общей пилюли — строка списка */
  .sidebar .sidebar__item > a { display: flex; width: 100% !important; height: auto !important; padding: 10px 14px !important; border-radius: 12px; background: transparent; color: #4a4a57; font-size: 15px; line-height: 1.35; white-space: normal; } /* длинное «Согласие на обработку…» — в две строки, не обрезается */
  .sidebar .sidebar__item > a[class*="text-primary"] { background: #f1ecfd; color: #5b3fb8; font-weight: 600; }
}
/* отзывы (/about/otzyvy/): ручная сетка «3 колонки» ломалась на телефоне */
.sidebar-section > div:has(> .reviews-page) { max-width: none; } /* 3 отзыва на странице — в ряд */
.reviews-page > br { display: none; }
/* по 3 в ряд на всю ширину (на последней странице 1–2 отзыва не растягиваются) */
.reviews-page > div[style] { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 14px !important; }
@media (max-width: 1023px) { .reviews-page > div[style] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } }
@media (max-width: 767px) { .reviews-page > div[style] { grid-template-columns: minmax(0, 1fr) !important; } }
.reviews-page > div[style] > div[style] {
  min-height: 0 !important;
  padding: 20px !important;
  border: 1px solid #ececf1 !important;
  border-radius: 20px !important;
  background: #fff;
}
.reviews-page > div[style] > div[style] > div:first-child { color: #1f1f29 !important; font-size: 15px !important; }
.reviews-page > div[style] > div[style] > div:last-child { color: #4a4a57 !important; font-size: 15px !important; }
#prevBtn,
#nextBtn { width: 44px !important; border-radius: 50% !important; background: #f1ecfd !important; color: #8450db !important; }
/* сертификаты (/about/sertifikaty/): карточки сеткой, по 2 в ряд на телефоне */
.sidebar-section div[style]:has(> a.cboxElement) {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 14px !important;
}
.sidebar-section div[style]:has(> div[style] > a.cboxElement) { max-width: none !important; margin: 8px 0 0 !important; font-family: inherit !important; }
a.cboxElement[style] { width: auto !important; border: 1px solid #ececf1; border-radius: 18px !important; box-shadow: none !important; }
a.cboxElement[style] > div:first-child { height: auto !important; aspect-ratio: 3 / 4; padding: 10px; background: #f7f6fa !important; }
a.cboxElement[style] > div:last-child { color: #3d3d4a; font-size: 13px !important; line-height: 1.35; }
@media (max-width: 767px) {
  .sidebar-section div[style]:has(> a.cboxElement) { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px !important; }
}
/* постраничная навигация из одной страницы («1 · Все · Акции 1 - 1 из 1») не нужна */
.page-navigation:not(:has(.page-navigation__list a)) { display: none; }
/* /catalog/: плитки разделов как на главной (raduga_tiles, RADUGA_PAGE) — сеткой, не лентой */
/* разделов три — плитки на всю ширину и пониже (проверка 29.09: «занимают небольшую часть экрана»); под ними — блоки главной */
.rh-cats.rh-cats--page {
  display: grid;
  grid-auto-flow: row;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 14px;
  margin: 16px 0 0;
  padding: 0;
  overflow: visible;
}
@media (min-width: 768px) { .rh-cats--page .rh-cat { aspect-ratio: 4 / 3; } }
.rh-more { display: flex; flex-direction: column; gap: 48px; margin-top: 48px; } /* блоки главной под плитками /catalog/ (sections.php) и списком акций (footer.php) */
.rh-more > * { margin: 0 !important; }
@media (max-width: 767px) { .rh-more { gap: 32px; margin-top: 32px; } }
@media (max-width: 767px) {
  .rh-cats.rh-cats--page { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .rh-cats--page > li:last-child:nth-child(odd) { grid-column: 1 / -1; } /* третий раздел — на всю строку, без пустой половины */
  .rh-cats--page > li:last-child:nth-child(odd) .rh-cat { aspect-ratio: 2 / 1; }
  .rh-cats--page .rh-cat__name { font-size: 14px; }
}
/* акция без привязанных товаров: под текстом не показываем пустой каталог («нет товаров», сортировка, «Фильтры») */
.promo-detail ~ .catalog__wrapper:has(.catalog-section__container--empty) { display: none; }
/* маска телефона «+7(___)___-__-__» — бледная, пока не введены цифры (класс ставит скрипт в подвале) */
masked-phone > input.input-text:not(.is-filled) { color: #a9a9b6; }

/* =====================================================================
   23. Единый стиль страниц (24.09, вторая итерация). Хлебные крошки — одинаковые везде: на телефоне круглая
   «Назад» (шеврон) + строка крошек над заголовком, на десктопе — только строка. Текстовые страницы (О компании,
   Помощь, документы), SEO-тексты разделов и описания акций — одна «читаемая» типографика: колонка, заголовки
   с акцентом, списки с галочками; инлайн-стили из визуального редактора перебиваются. Контакты (.rc), пустой
   раздел (.rce), акции, пилюли блога и меню разделов. Поведение — /local/js/raduga_pages.js.
   ===================================================================== */
/* --- крошки --- */
.breadcrumbs__back { --arrow-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 7l-5 5 5 5'/%3E%3C/svg%3E"); }
.breadcrumbs__back::before { -webkit-mask-size: 18px; mask-size: 18px; }
@media (max-width: 1024px) {
  .breadcrumbs.breadcrumbs { display: flex; align-items: center; gap: 10px; width: 100%; margin: 0; }
  .breadcrumbs .breadcrumbs__inner { flex: 1 1 auto; min-width: 0; }
  .breadcrumbs .breadcrumbs__list { display: flex !important; padding: 0 !important; }
  .breadcrumbs .breadcrumbs__back {
    display: block !important;
    order: -1;
    position: relative;
    top: auto;
    left: auto;
    flex: none;
    width: 32px;
    height: 32px;
    margin: 0;
    border: 1px solid #e6e4ee;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 2px 6px rgba(31, 31, 41, .06);
    color: #4a4a57;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    transition: color .15s, border-color .15s;
  }
  .breadcrumbs .breadcrumbs__back:active { border-color: #c9b8f5; color: #8450db; }
}
/* заголовок страницы — как в каталоге: сразу под крошками, 32/40 (телефон — 24/30) */
.title-container { display: flex; flex-direction: column; align-items: stretch; gap: 4px; }
.title-container #pagetitle { margin: 0; color: #1f1f29; font-size: 32px; font-weight: 700; line-height: 40px; }
@media (max-width: 576px) {
  .title-container #pagetitle { font-size: 24px; line-height: 30px; }
}

/* --- меню раздела (О компании / Помощь / Документы) и разделы блога: пилюли, обычная прокрутка --- */
.rdp-scroll { overflow-x: auto !important; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.rdp-scroll::-webkit-scrollbar { display: none; }
.rdp-scroll .swiper-wrapper { transform: none !important; }
@media (max-width: 1024px) {
  /* порядок как на остальных страницах: крошки → заголовок → пилюли раздела → текст */
  div:has(> .sidebar ~ .sidebar-section) { flex-direction: column !important; gap: 0 !important; }
  div:has(> .sidebar ~ .sidebar-section) > .sidebar-section { display: contents; }
  .sidebar-section > .title-container { order: -2; }
  .sidebar { order: -1; min-width: 0; margin: 0 -16px 22px; }
  .sidebar .swiper { padding: 0 16px; }
  .sidebar .swiper-wrapper { width: max-content; }
}
.blog-list-sections .swiper { overflow-x: auto; scrollbar-width: none; }
.blog-list-sections .swiper::-webkit-scrollbar { display: none; }
.blog-list-sections .swiper-wrapper { flex-wrap: nowrap !important; gap: 8px; width: max-content; }

/* --- читаемый текст: страницы с меню раздела, SEO-тексты разделов, описания акций --- */
:is(.sidebar-section, .sotbit_b2c_section_description, .promo-detail) :is(p, li:not([class])) { color: #3d3d4a; font-size: 16px; line-height: 1.7; }
:is(.sidebar-section, .sotbit_b2c_section_description, .promo-detail) p { margin: 0 0 14px; }
:is(.sidebar-section, .sotbit_b2c_section_description, .promo-detail) > br { display: none; }
:is(.sidebar-section, .sotbit_b2c_section_description, .promo-detail) h2 {
  margin: 32px 0 14px;
  padding-left: 14px;
  border-left: 4px solid #8450db;
  color: #1f1f29;
  font-size: 22px;
  font-weight: 700;
  line-height: 1.3;
}
:is(.sidebar-section, .sotbit_b2c_section_description, .promo-detail) h3 { margin: 24px 0 10px; color: #1f1f29; font-size: 18px; font-weight: 600; line-height: 1.35; }
:is(.sidebar-section, .sotbit_b2c_section_description, .promo-detail) :is(h2, h3) > br { display: none; }
/* инлайн-размеры и отступы из визуального редактора (span внутри заголовков, style у абзацев и списков) */
:is(.sidebar-section, .sotbit_b2c_section_description, .promo-detail) :is(h2, h3, p, li, ul, ol, span)[style] {
  font-size: inherit !important;
  line-height: inherit !important;
}
:is(.sidebar-section, .sotbit_b2c_section_description, .promo-detail) :is(h2, h3) span[style] { color: inherit !important; font-weight: inherit !important; }
:is(.sidebar-section, .sotbit_b2c_section_description, .promo-detail) :is(h2, h3)[style] { font-size: 22px !important; margin: 32px 0 14px !important; }
:is(.sidebar-section, .sotbit_b2c_section_description, .promo-detail) h3[style] { font-size: 18px !important; margin: 24px 0 10px !important; }
:is(.sidebar-section, .sotbit_b2c_section_description, .promo-detail) :is(p, ul, ol)[style] { margin: 0 0 14px !important; }
:is(.sidebar-section, .sotbit_b2c_section_description, .promo-detail) :is(b, strong) { color: #1f1f29; font-weight: 600; }
:is(.sidebar-section, .sotbit_b2c_section_description, .promo-detail) a:not([class]):not([style]) { color: #8450db; text-decoration: underline; text-underline-offset: 3px; }
/* списки: маркер — галочка в кружке, нумерация — фиолетовые кружки */
:is(.sidebar-section, .sotbit_b2c_section_description, .promo-detail) ul:not([class]) { margin: 0 0 16px; padding: 0; list-style: none; }
:is(.sidebar-section, .sotbit_b2c_section_description, .promo-detail) ul:not([class]) > li { position: relative; margin: 8px 0; padding-left: 30px; }
:is(.sidebar-section, .sotbit_b2c_section_description, .promo-detail) ul:not([class]) > li::before {
  content: '';
  position: absolute;
  left: 0;
  top: .3em;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #f1ecfd url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%238450db' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 12.5 4 4 8-9'/%3E%3C/svg%3E") center / 13px no-repeat;
}
:is(.sidebar-section, .sotbit_b2c_section_description, .promo-detail) ol:not([class]) { margin: 0 0 16px; padding: 0; list-style: none; counter-reset: rdp-ol; }
:is(.sidebar-section, .sotbit_b2c_section_description, .promo-detail) ol:not([class]) > li { position: relative; margin: 10px 0; padding-left: 36px; counter-increment: rdp-ol; }
:is(.sidebar-section, .sotbit_b2c_section_description, .promo-detail) ol:not([class]) > li::before {
  content: counter(rdp-ol);
  position: absolute;
  left: 0;
  top: .15em;
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: #8450db;
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
}
/* первый абзац — вводный, крупнее */
.sidebar-section { min-width: 0; }
.sidebar-section > .title-container + p { color: #1f1f29; font-size: 18px; }
.sidebar-section > .title-container { margin-bottom: 20px; }
@media (max-width: 767px) {
  :is(.sidebar-section, .sotbit_b2c_section_description, .promo-detail) :is(p, li:not([class])) { font-size: 15px; }
  :is(.sidebar-section, .sotbit_b2c_section_description, .promo-detail) h2,
  :is(.sidebar-section, .sotbit_b2c_section_description, .promo-detail) :is(h2, h3)[style] { font-size: 19px !important; margin-top: 26px !important; }
  .sidebar-section > .title-container + p { font-size: 16px; }
}
/* SEO-текст раздела каталога: 15px, на всю ширину карточки (замечание проверки 29.09) */
.sotbit_b2c_section_description :is(p, li:not([class])) { font-size: 15px; }
.sotbit_b2c_section_description h2:first-of-type { margin-top: 0; }

/* реквизиты — строками «зеброй», чтобы было за что зацепиться взглядом */
.sidebar:has(a[href$="/requisites/"][class*="text-primary"]) ~ .sidebar-section p:has(> b:first-child) {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 12px;
  margin: 0;
  padding: 12px 16px;
  border-radius: 12px;
}
.sidebar:has(a[href$="/requisites/"][class*="text-primary"]) ~ .sidebar-section p:has(> b:first-child) > b { flex: 0 0 170px; color: #6e6e7a; font-weight: 500; }
.sidebar:has(a[href$="/requisites/"][class*="text-primary"]) ~ .sidebar-section p:has(> b:first-child):nth-child(odd of p:has(> b:first-child)) { background: #f5f1fe; }
@media (max-width: 576px) {
  .sidebar:has(a[href$="/requisites/"][class*="text-primary"]) ~ .sidebar-section p:has(> b:first-child) > b { flex-basis: 100%; }
}

/* --- контакты (include/page/contacts.php) --- */
.rc { max-width: none !important; }
.rc__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; margin-top: 8px; }
.rc-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  padding: 22px;
  border: 1px solid #ececf1;
  border-radius: 24px;
  background: #fff;
}
.rc-card--accent { border-color: transparent; background: linear-gradient(160deg, #f5f0ff, #fdf2f8); }
.rc-card__icon {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  margin-bottom: 10px;
  border-radius: 14px;
  background: #f1ecfd;
  color: #8450db;
}
.rc-card--accent .rc-card__icon { background: #fff; }
.rc-card svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.rc-card__label { margin-top: 6px; color: #8a8a96; font-size: 13px; }
.rc-card__label:first-of-type { margin-top: 0; }
.rc-card__big { color: #1f1f29; font-size: 22px; font-weight: 700; line-height: 1.3; text-decoration: none; }
.rc-card__big:hover { color: #8450db; }
.rc-card__value { margin: 0; color: #1f1f29; font-size: 16px; font-weight: 500; line-height: 1.45; text-decoration: none; word-break: break-word; }
a.rc-card__value:hover { color: #8450db; }
.rc-card__note { margin: 0; color: #6e6e7a; font-size: 14px; line-height: 1.45; }
.rc-card__btn { margin-top: auto; padding-top: 0; }
.rc-card--accent .rc-card__btn { margin-top: 14px; }
.rc-card__msgs { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.rc-card__link { display: inline-flex; align-items: center; gap: 4px; margin-top: 10px; color: #8450db; font-size: 15px; font-weight: 600; text-decoration: none; }
.rc-card__link svg { width: 16px; height: 16px; stroke-width: 2.2; }
.rc__map { margin-top: 14px; overflow: hidden; border-radius: 24px; background: #f4f3f8; }
.rc__map iframe { display: block; width: 100%; height: 440px; border: 0; }
@media (max-width: 767px) {
  .rc-card { padding: 18px; border-radius: 20px; }
  .rc__map iframe { height: 320px; }
}

/* --- пустой раздел каталога (/local/raduga/catalog_empty.php) --- */
.catalog-section__container--empty { display: block !important; }
/* раздел пуст сам по себе — сортировать и фильтровать нечего (при пустом результате фильтра панель остаётся) */
.catalog__wrapper:has(.rce:not(.rce--filtered)) :is(.products__filter, .catalog__filter-btn, .sort) { display: none !important; }
.rce {
  display: flex;
  flex-direction: column;
  align-items: center;
  max-width: 640px;
  margin: 24px auto 0;
  padding: 36px 28px;
  border-radius: 28px;
  background: linear-gradient(160deg, #f5f0ff, #fdf2f8);
  text-align: center;
}
.rce__icon {
  display: grid;
  grid-template-columns: repeat(2, 22px);
  gap: 6px;
  margin-bottom: 18px;
  padding: 14px;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 10px 24px rgba(132, 80, 219, .12);
}
.rce__icon i { width: 22px; height: 22px; border-radius: 7px; background: #c9b8f5; }
.rce__icon i:nth-child(2), .rce__icon i:nth-child(3) { background: #8450db; }
.rce__title { margin: 0 0 8px; color: #1f1f29; font-size: 24px; font-weight: 700; line-height: 1.3; }
.rce__text { max-width: 460px; margin: 0 0 22px; color: #4a4a57; font-size: 16px; line-height: 1.6; }
.rce__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.rce__actions svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2.2; stroke-linecap: round; stroke-linejoin: round; }
.rce + .rh-help { max-width: 640px; margin: 14px auto 0; }
@media (max-width: 576px) {
  .rce { padding: 28px 18px; border-radius: 24px; }
  .rce__title { font-size: 20px; }
  .rce__actions > .rh-btn { flex: 1 1 100%; justify-content: center; }
}

/* --- акции: список и страница акции --- */
.promo-container .promo { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 20px; }
.promo-container .promo__item {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #ececf1;
  border-radius: 24px;
  background: #fff;
  transition: box-shadow .2s, transform .2s;
}
.promo-container .promo__item:hover { transform: translateY(-2px); box-shadow: 0 16px 36px rgba(31, 31, 41, .1); }
.promo-container .promo__image-container { position: relative; display: block; overflow: hidden; height: auto; margin: 0; border-radius: 0; aspect-ratio: auto; } /* у вендора высота 200 px (с 1440 — 544/233) и отступ 8 px — пустота под картинкой 720/230 */
.promo-container .promo__image { overflow: hidden; height: auto !important; aspect-ratio: 720 / 230; } /* overflow — иначе заглушка 1×1 до загрузки растягивает блок до квадрата */
.promo-container .promo__image img { display: block; width: 100%; height: 100% !important; object-fit: cover; }
.promo-container .promo__title { margin: 18px 20px 6px; font-size: 20px; font-weight: 700; line-height: 1.3; }
.promo-container .promo__link { color: #1f1f29; text-decoration: none; }
.promo-container .promo__link:hover { color: #8450db; }
.promo-container .promo__description { margin: 0 20px 20px; color: #6e6e7a; font-size: 15px; }
/* одна-две акции — карточка во всю ширину: картинка 720×230 слева (крупнее — мылится), текст справа (проверка 29.09) */
@media (min-width: 1024px) {
  .promo-container .promo:has(> .promo__item:nth-child(-n+2):last-child) { grid-template-columns: minmax(0, 1fr); }
  .promo-container .promo:has(> .promo__item:nth-child(-n+2):last-child) > .promo__item {
    display: grid;
    grid-template-columns: minmax(0, 720px) minmax(0, 1fr);
    column-gap: 36px; /* высота — по картинке; заголовок и описание парой по центру */
  }
  .promo-container .promo:has(> .promo__item:nth-child(-n+2):last-child) .promo__image-container { grid-row: 1 / 3; }
  .promo-container .promo:has(> .promo__item:nth-child(-n+2):last-child) .promo__title { grid-column: 2; grid-row: 1; align-self: end; margin: 0 32px 10px 0; font-size: 28px; }
  .promo-container .promo:has(> .promo__item:nth-child(-n+2):last-child) .promo__description { grid-column: 2; grid-row: 2; align-self: start; margin: 0 32px 0 0; font-size: 17px; }
  .promo-container .promo:has(> .promo__item:nth-child(-n+2):last-child) .promo__link::after { content: " →"; color: #8450db; }
}
.promo-detail__image-container { overflow: hidden; margin-bottom: 24px; border-radius: 24px; }
/* баннер акции целиком на всю ширину (у вендора высота 523px и обрезка по бокам) */
.promo-detail__image { overflow: hidden; height: auto !important; aspect-ratio: 14 / 5; } /* ponytail: пропорция баннера 1463×523; другой формат — обрежется по краям */
.promo-detail__image img { display: block; width: 100%; height: 100% !important; object-fit: cover; }
.promo-detail__description { color: #1f1f29; font-size: 18px !important; }
/* кнопка «Перейти в каталог» из визуального редактора (градиент, ☰) — кнопкой сайта */
.promo-detail div[style]:has(> a[style]) { margin: 28px 0 0 !important; text-align: left !important; }
.promo-detail a[style] {
  display: inline-flex !important;
  align-items: center;
  gap: 8px;
  height: 52px;
  padding: 0 26px !important;
  border: 0 !important;
  border-radius: 16px !important;
  background: #8450db !important;
  box-shadow: 0 10px 24px rgba(132, 80, 219, .24) !important;
  color: #fff !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  text-decoration: none !important;
}
.promo-detail a[style]:hover { background: #7443c9 !important; }

/* --- «О компании» и «Помощь» (/local/raduga/pages/*.php): вводный абзац, цифры, фото, карточки --- */
.sidebar-section > .rp-lead,
.rp-lead { margin: 0 0 22px; color: #1f1f29; font-size: 18px; line-height: 1.6; }
.rp-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 0 0 18px; }
.rp-stats > div { padding: 18px; border-radius: 20px; background: linear-gradient(160deg, #f5f0ff, #fdf2f8); }
.rp-stats b { display: block; color: #5b3fb8; font-size: 22px; font-weight: 800; line-height: 1.2; white-space: nowrap; }
.rp-stats span { display: block; margin-top: 4px; color: #6e6e7a; font-size: 14px; line-height: 1.35; }
.rp-photo { margin: 0 0 8px; overflow: hidden; border-radius: 24px; }
.rp-photo img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; }
.rp-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; margin: 0 0 12px; }
.rp-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 22px;
  border: 1px solid #ececf1;
  border-radius: 24px;
  background: #fff;
  color: inherit;
  text-decoration: none;
  transition: border-color .2s, box-shadow .2s, transform .2s;
}
a.rp-card:hover { border-color: #d9ccfa; box-shadow: 0 14px 30px rgba(31, 31, 41, .08); transform: translateY(-2px); }
.rp-card__icon { display: grid; place-items: center; width: 44px; height: 44px; margin-bottom: 8px; border-radius: 14px; background: #f1ecfd; color: #8450db; }
.rp-card svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.sidebar-section .rp-card h3 { margin: 0 !important; padding: 0; border: 0; color: #1f1f29; font-size: 17px; font-weight: 700; line-height: 1.3; }
.sidebar-section .rp-card p { margin: 0 !important; color: #6e6e7a; font-size: 14px; line-height: 1.5; }
.rp-card__go {
  position: absolute;
  top: 22px;
  right: 22px;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #f4f3f8;
  color: #1f1f29;
  transition: background .2s, color .2s;
}
.rp-card__go svg { width: 16px; height: 16px; stroke-width: 2.2; }
a.rp-card:hover .rp-card__go { background: #8450db; color: #fff; }
@media (max-width: 767px) {
  .rp-lead { font-size: 16px; }
  .rp-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .rp-stats > div { padding: 14px; border-radius: 18px; }
  .rp-stats b { font-size: 19px; }
  .rp-card { padding: 18px; border-radius: 20px; }
  .rp-card__go { top: 18px; right: 18px; }
  .rp-photo { border-radius: 20px; }
  /* разделы помощи — строками: значок · текст · стрелка */
  a.rp-card { flex-direction: row; align-items: center; gap: 14px; padding: 14px 16px; }
  a.rp-card .rp-card__icon { flex: none; margin: 0; }
  a.rp-card .rp-card__text { flex: 1 1 auto; min-width: 0; }
  a.rp-card .rp-card__go { position: static; flex: none; }
  .rp-cards:has(> a.rp-card) { gap: 10px; }
}
.rp-card__text { display: flex; flex-direction: column; gap: 4px; }

/* =====================================================================
   24. Корзина и заказ (25.09). Шаги «Как заказать» (.rh-order): в каталоге над товарами (закрывается «Понятно»)
   и в корзине вместо плашки «Минимальная сумма…» — текущий шаг подсвечен. Страница корзины, мини-корзина в шапке,
   плашка «Товар добавлен», удалённая позиция — разметка вендора (js-шаблоны), здесь только стили; шаги, строку
   «Нужна помощь?», кнопку «Перейти в корзину» и ссылку в плашке добавляет /local/js/raduga_pages.js.
   Оформление заказа (sale.order.ajax) — тоже здесь, разметка вендора; шаги и «Нужна помощь?» — raduga_pages.js.
   404 — /local/raduga/pages/404.php (подключает footer.php).
   ===================================================================== */
/* --- шаги заказа: кружки на линии, подписи под ними --- */
.rh-order { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 20px; margin: 0 0 16px; padding: 16px 20px; border-radius: 20px; background: #f7f4fe; }
.rh-order__title { color: #1f1f29; font-size: 15px; font-weight: 700; }
.rh-order__close { height: 32px; margin-left: auto; padding: 0 14px; border: 0; border-radius: 999px; background: #fff; color: #5b3fb8; font-size: 14px; font-weight: 500; cursor: pointer; }
.rh-order__close:hover { background: #e4d9fb; }
.rh-order__close { order: 1; } /* заголовок и «Понятно» — первой строкой, шаги и подсказка — под ними */
.rh-order ol { order: 2; }
.rh-order__hint { order: 3; }
@media (min-width: 1025px) { /* в каталоге на десктопе — одной строкой: заголовок · шаги · «Понятно» */
  .rh-order:not(.rh-order--cart) { flex-wrap: nowrap; }
  .rh-order:not(.rh-order--cart) ol { flex: 1 1 0; }
  .rh-order:not(.rh-order--cart) .rh-order__close { order: 3; margin-left: 0; }
}
.rh-order ol { display: grid; flex: 1 1 100%; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none; counter-reset: rh-order-step; }
.rh-order li { position: relative; display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 0 8px; text-align: center; counter-increment: rh-order-step; }
.rh-order li::before {
  content: counter(rh-order-step);
  position: relative;
  z-index: 1;
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  margin-bottom: 8px;
  border-radius: 50%;
  background: #fff;
  box-shadow: inset 0 0 0 1.5px #d9ccfa;
  color: #8450db;
  font-size: 14px;
  font-weight: 700;
}
.rh-order li:not(:last-child)::after { content: ""; position: absolute; top: 14px; left: calc(50% + 22px); right: calc(-50% + 22px); height: 2px; border-radius: 2px; background: #e4d9fb; }
.rh-order li b { color: #1f1f29; font-size: 14px; font-weight: 600; line-height: 1.3; }
.rh-order li span { max-width: 240px; color: #6e6e7a; font-size: 13px; line-height: 1.35; }
.rh-order__hint { flex: 1 1 100%; margin: 0; color: #4a4a57; font-size: 14px; line-height: 1.45; text-align: center; }
.rh-order__hint b { color: #5b3fb8; font-size: inherit; font-weight: 700; white-space: nowrap; }
/* корзина и оформление заказа: белая карточка; шаг 1 сделан; шаг 2 — пока вендор показывает полоску «до оформления заказа
   осталось…», потом шаг 3 */
.rh-order--cart { padding: 18px 16px 16px; border: 1px solid #ececf1; background: #fff; }
.rh-order--cart li:first-child::before,
:is(.basket, #bx-soa-order-form):not(:has(.minimum-price-remainder)) .rh-order--cart li:nth-child(2)::before {
  content: "";
  background: #8450db url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 14px no-repeat;
  box-shadow: none;
}
:is(.basket, #bx-soa-order-form):has(.minimum-price-remainder) .rh-order--cart li:nth-child(2)::before,
:is(.basket, #bx-soa-order-form):not(:has(.minimum-price-remainder)) .rh-order--cart li:nth-child(3)::before { background-color: #8450db; box-shadow: 0 0 0 4px #ece6fb; color: #fff; }
.rh-order--cart li:first-child::after,
:is(.basket, #bx-soa-order-form):not(:has(.minimum-price-remainder)) .rh-order--cart li:nth-child(2)::after { background: #8450db; }
.basket:has(.rh-order) #basket-min-price-message { display: none; }
@media (max-width: 767px) {
  .rh-order { gap: 12px; padding: 14px 12px; border-radius: 18px; }
  .rh-order__title { padding-left: 4px; }
  .rh-order li { padding: 0 4px; }
  .rh-order li::before { width: 26px; height: 26px; margin-bottom: 6px; font-size: 13px; }
  .rh-order li:not(:last-child)::after { top: 12px; left: calc(50% + 19px); right: calc(-50% + 19px); }
  .rh-order li b { font-size: 12.5px; }
  .rh-order li span { display: none; }
  .rh-order__hint { font-size: 13px; }
}

/* --- страница корзины --- */
.basket.basket { gap: 24px !important; }
#basket-items-list-wrapper { position: relative; }
#basket-items-list-wrapper h1 { color: #1f1f29; font-size: 32px !important; font-weight: 700; line-height: 1.25; }
#basket-items-list-wrapper h1 + span { font-size: 18px !important; }
.basket-filter-clear-button.btn { height: 36px; padding: 0 4px; background: none; color: #6e6e7a; font-size: 14px; font-weight: 500; }
.basket-filter-clear-button.btn svg { width: 18px; height: 18px; }
.basket-filter-clear-button.btn:hover { background: none; color: #d63c5e; }
/* поиск по корзине — когда позиций много (от 6); иначе «Очистить корзину» — в строке заголовка */
.basket-filter .basket-filter-input { height: 44px; border: 1px solid #e3e3ea; border-radius: 14px; background: #fff; font-size: 15px; }
.basket-filter .basket-filter-input:hover, .basket-filter .basket-filter-input:focus { border-color: #c9b8f5; }
#basket-items-list-wrapper:not(:has(.basket-item:nth-child(6))) .basket-filter { display: none; }
#basket-items-list-wrapper:not(:has(.basket-item:nth-child(6))) .basket-filter-container { position: absolute; top: 2px; right: 0; margin: 0 !important; }
.basket-items.basket-items { gap: 12px; }
.basket-item:not(.basket-item-restore) { padding: 16px; border: 1px solid #ececf1; border-radius: 20px; background: #fff; }
.basket-item:hover, .basket-item--hovered { border-color: #d9ccfa; background: #fff !important; }
.basket-item-image { border-radius: 14px; background: #f7f6fa; }
.basket-item-image-container .swiper-pagination { display: none; }
.basket-item-info > div:has(> .basket-item-label) { display: none !important; } /* «Хит», «Новинка» в корзине не нужны */
.basket-item-info h2 { color: #1f1f29; font-size: 16px; font-weight: 600; line-height: 1.35; }
span.basket-item-property[data-entity="basket-item-property"] { display: none; } /* «Вес», «Краткое описание» (= название) */
/* цвет и размер — выбранные значения строкой («Цвет: синий   Размер: 86-52»), без переключателей: состав собирают в каталоге */
.basket-item-properties.basket-item-properties { flex-direction: row; flex-wrap: wrap; gap: 4px 16px; }
.basket-item-sku-block.basket-item-sku-block { flex-direction: row; align-items: center; gap: 6px; margin: 0 !important; }
.basket-item-sku-block > .basket-item-property { color: #6e6e7a; font-size: 14px !important; }
.basket-item-sku-block ul { gap: 0 !important; margin: 0; padding: 0; }
.basket-item-sku-block li:not(.selected) { display: none; }
.basket-item-sku-block .sku-select { height: auto; padding: 0 !important; border: 0 !important; background: none; box-shadow: none; color: #1f1f29; font-size: 14px; font-weight: 600; text-transform: lowercase; pointer-events: none; }
.basket-item-sku-block .sku-select::before, .basket-item-sku-block .sku-select::after { display: none; }
.basket-item-sku-block .color-select { --color-select-size: 22px; pointer-events: none; }
.basket-item-prices span { color: #1f1f29; font-size: 17px; }
/* итог: белая карточка */
.basket > .basket-total { align-self: flex-start; border: 1px solid #ececf1; border-radius: 24px; background: #fff; box-shadow: 0 12px 32px rgba(31, 31, 41, .06); }
/* порядок: позиции и вес → Итого → полоска «осталось» → кнопки → «Нужна помощь?» → купон */
.basket-total > .basket-total { gap: 16px; padding: 24px !important; border-radius: 24px; background: none; }
.basket-total > .basket-total > * { margin: 0 !important; }
.basket-total > .basket-total > div.gap-2.mb-5 { order: 1; gap: 6px !important; font-size: 14px; }
.basket-total > .basket-total > div.gap-2.mb-5 > div { color: #6e6e7a !important; }
.basket-total > .basket-total > div.gap-2.mb-5 .fw-medium { color: #1f1f29; }
.basket-total > .basket-total > div:first-child { order: 2; padding-top: 16px; border-top: 1px solid #f0eef5; }
.basket-total > .basket-total > div:first-child > .fs-4 { font-size: 20px !important; font-weight: 700 !important; }
.basket-total > .basket-total > div:first-child > .fs-3 { font-size: 26px !important; font-weight: 800 !important; }
.basket-total > .basket-total > div:has(> .minimum-price-remainder) { order: 3; }
.basket-total > .basket-total > .basket-total-buttons { order: 4; }
.basket-total > .basket-total > .rh-cart-help { order: 5; }
.basket-total > .basket-total > .basket-coupon-wrapper { order: 6; gap: 6px; padding-top: 16px; border-top: 1px solid #f0eef5; }
.basket-coupon-wrapper label { color: #6e6e7a; font-size: 13px !important; font-weight: 500 !important; }
.basket-coupon-wrapper .basket-coupon-input { height: 44px; border: 1px solid #e3e3ea; border-radius: 14px; font-size: 15px; }
.basket-coupon-wrapper .basket-coupon-input:hover, .basket-coupon-wrapper .basket-coupon-input:focus { border-color: #c9b8f5; }
.basket-total-buttons .btn { height: 52px; border-radius: 16px; font-size: 16px; font-weight: 600; }
.basket-total-buttons .btn-primary:disabled, .basket-total-buttons .btn-primary.disabled { background: #ece9f3; color: #9a95ad; opacity: 1; }
.basket-total-buttons .btn-secondary:disabled { display: none; } /* «Купить в 1 клик», пока сумма меньше минимальной, — вторая серая кнопка не нужна */
/* под неактивной кнопкой вендор пишет «Добавьте товар в корзину» — сколько добрать, видно по полоске выше */
.basket-total:has(.minimum-price-remainder) .basket-total-buttons span.fs-1 { display: none; }
.rh-cart-help { color: #6e6e7a; font-size: 14px; line-height: 1.5; text-align: center; }
.rh-cart-help a, .rh-cart-help button { padding: 0; border: 0; background: none; color: #5b3fb8; font: inherit; font-weight: 600; text-decoration: none; white-space: nowrap; cursor: pointer; }
.rh-cart-help a:hover, .rh-cart-help button:hover { color: #8450db; }
/* под заказ (29.09): у позиции, где заказано больше, чем на складе, в итоге корзины и в плашке «Товар добавлен» —
   синим, как «под заказ» в сетке размеров (зелёный — в наличии, оранжевый — мало) */
.rh-backorder { display: flex; align-items: center; gap: 6px; margin: 6px 0 0; color: #3e63c9; font-size: 13.5px; font-weight: 600; line-height: 1.35; }
.rh-backorder::before { content: ""; flex: none; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.basket-total > .basket-total > .rh-cart-backorder { order: 3; }
.rh-cart-backorder, .top-message__warn { margin: 0; padding: 10px 12px; border-radius: 12px; background: #eef2fd; color: #2f4fa8; font-size: 13.5px; line-height: 1.45; }
.top-message__warn { margin-bottom: 10px; font-size: 13px; }
/* полоска «до оформления заказа осталось» — в корзине и в мини-корзине */
.minimum-price-remainder.minimum-price-remainder { gap: 8px; }
.minimum-price-remainder > .d-flex { align-items: baseline; gap: 12px !important; }
.minimum-price-remainder .progressbar-track { height: 8px; border-radius: 99px; background: #e4d9fb; }
.minimum-price-remainder .progressbar-bar { height: 8px; border-radius: 99px; background: linear-gradient(90deg, #8450db, #b06ad9); }
.minimum-price-remainder .fs-1 { color: #4a4a57 !important; font-size: 14px !important; line-height: 1.35; }
.minimum-price-remainder .minimum-price-remainder_value { flex: none; min-width: 0; color: #5b3fb8 !important; font-weight: 700; white-space: nowrap; } /* у вендора min-width 100px — текст слева рвался */
/* удалённая позиция: «Товар … был удален» + «Восстановить» */
.basket-item.basket-item-restore { padding: 14px 16px; border: 1px dashed #d9ccfa; border-radius: 20px; background: #faf8ff; }
.basket-item-restore > div { align-items: center !important; gap: 12px; }
.basket-item-restore > div > .d-flex { flex-flow: row wrap !important; align-items: center; gap: 8px 16px !important; color: #6e6e7a; font-size: 14px; line-height: 1.4; }
.basket-item-restore strong { color: #1f1f29; font-weight: 600; }
.basket-item-restore .btn { height: 36px; padding: 0 16px; border-radius: 999px; background: #fff; box-shadow: inset 0 0 0 1px #d9ccfa; color: #5b3fb8; font-size: 14px; font-weight: 600; }
.basket-item-restore .btn:hover { background: #8450db; color: #fff; }
.basket-item-restore [data-entity="basket-item-close-restore-button"] { flex: none; color: #9a9aa8; }
/* десктоп: у вендора вокруг счётчика отступы 42 + 64 px и цена шириной 100 px — название зажималось в две строки */
@media (min-width: 1025px) {
  .basket-item-image-container { width: 96px; }
  .basket-item-quantity { margin: 0 20px; }
  .basket-item-prices { width: auto; min-width: 88px; margin-right: 12px; align-items: flex-end; }
}
/* телефон и планшет: фото · название и «Цвет · Размер»; ниже одной строкой — количество, сумма, избранное и удалить */
@media (max-width: 1024px) {
  .basket-item:not(.basket-item-restore) {
    grid-template-columns: 100px minmax(0, 1fr) auto auto;
    grid-template-rows: none;
    grid-template-areas:
      "image info info info"
      "image properties properties properties"
      "quantity quantity prices buttons"
      "services services services services";
    align-items: start;
    padding: 14px;
  }
  .basket-item-image-container { width: 88px; margin: 0 12px 0 0; }
  .basket-item-info { margin: 0 0 6px; }
  .basket-item-info h2 { font-size: 15px; }
  .basket-item-quantity, .basket-item-prices, .basket-item-buttons { align-self: center; margin: 14px 0 0; }
  .basket-item-prices { justify-content: flex-end; margin-right: 6px; }
  .basket-item-buttons { display: flex; align-items: center; }
  .basket-item-quantity .counter { height: 40px; }
  .basket-item-quantity .counter__button { width: 40px; }
}
@media (max-width: 576px) {
  #basket-items-list-wrapper h1 { font-size: 24px !important; }
  #basket-items-list-wrapper h1 + span { font-size: 16px !important; }
  #basket-items-list-wrapper:not(:has(.basket-item:nth-child(6))) .basket-filter-container { top: -2px; }
  .basket-total > .basket-total { padding: 20px !important; }
}

/* --- мини-корзина в шапке (наведение на «Корзину», только десктоп) --- */
.header-basket-popup { width: 440px; padding: 18px; border: 1px solid #ececf1; border-radius: 22px; box-shadow: 0 20px 50px rgba(31, 31, 41, .14); }
/* список открыт, пока указатель над иконкой или над ним (CSS вендора); «мостик» вендора 4 px, а зазор 18 px — список
   пропадал по пути к «Перейти в корзину» (замечание проверки 29.09) */
.header-basket-popup::before { top: -24px; height: 24px; }
.header-basket-items { gap: 0; min-width: 0; max-height: 320px; margin-bottom: 12px; }
.header-basket-item { align-items: center; margin: 0 !important; padding: 10px 0; border-bottom: 1px solid #f0eef5; }
.header-basket-item:first-child { padding-top: 0; }
.header-basket-image { width: 56px; height: 56px; margin-right: 12px; border-radius: 12px; background: #f7f6fa; }
.header-basket-item-info > :first-child { color: #1f1f29; font-size: 14px; font-weight: 600; line-height: 1.35; }
.header-basket-item-price { color: #6e6e7a; font-size: 13px; font-weight: 500; }
.header-basket-item-summary { align-items: baseline; }
.header-basket-item-summary-inner { font-size: 13px; }
.header-basket-item-summary-sum { font-size: 15px; }
.header-basket-remainder { margin: 0 0 12px; }
.header-basket-total { width: 100%; margin: 0; }
.header-basket-total strong { display: block; color: #1f1f29; font-size: 17px; font-weight: 700; text-align: right; }
.header-basket-buttons { flex-direction: row; gap: 8px; margin-top: 14px; }
.header-basket-buttons > .btn { flex: 1 1 0; height: 44px; border-radius: 14px; font-size: 15px; font-weight: 600; }
.header-basket-buttons > .rh-cart-link { background: #f1ecfd; color: #5b3fb8; }
.header-basket-buttons > .rh-cart-link:hover { background: #e4d9fb; color: #4a2fa0; }
/* пока сумма меньше минимальной, «Оформить заказ» неактивна — вместо неё главная кнопка «Перейти в корзину» */
.header-basket-buttons:has(.disabled) :is(.header-basket-button-order, .header-basket-muted-link) { display: none; }
.header-basket-buttons:has(.disabled) > .rh-cart-link { background: #8450db; color: #fff; }

/* --- плашка «Товар добавлен в корзину» (BX.Sotbit.B2C.showMessage) --- */
.top-message { padding: 14px 18px; border: 1px solid #ececf1; border-radius: 18px; background: #fff; box-shadow: 0 16px 40px rgba(31, 31, 41, .16); -webkit-backdrop-filter: none; backdrop-filter: none; color: #1f1f29; }
.top-message .flex-shrink-0 > svg { width: 30px; height: 30px; padding: 6px; border-radius: 50%; background: #eaf7ef; color: #1f9d55 !important; }
.top-message .flex-shrink-0 > svg.text-warning { background: #fff5e3; }
.top-message .fw-medium { font-size: 15px; font-weight: 600 !important; }
.top-message__link { display: flex; align-items: center; justify-content: center; height: 40px; border-radius: 12px; background: #8450db; color: #fff; font-size: 14px; font-weight: 600; text-decoration: none; }
.top-message__link:hover { background: #7443c9; color: #fff; }

/* --- оформление заказа (27.09). Раньше: блок «Итого» у вендора справа только от 1440 px — ниже уезжал вниз узкой колонкой;
   первым открывался выбор оплаты из одного варианта, данные покупателя — только после «Продолжить»; над формой — весь
   список товаров. Теперь: шаги как в корзине; итог справа с 1025 px; белые карточки; поля крупнее, короткие — по два в ряд.
   .rh-soa-simple (ставит raduga_pages.js, когда способ оплаты и доставка — по одному): сразу форма «Покупатель», оплата
   и доставка — две плитки с галочкой после неё, состав заказа — перед согласиями. Без класса — порядок вендора. --- */
main:has(#bx-soa-order-form) h1 { color: #1f1f29; font-size: 32px !important; font-weight: 700 !important; line-height: 1.25; }
#bx-soa-order-form > .rh-order { margin-bottom: 24px; }
@media (max-width: 1024px) { /* у вендора крошки здесь position: absolute (инлайн-стиль) — лежали поверх заголовка */
  main:has(#bx-soa-order-form) .breadcrumbs-container { position: static; margin-bottom: 12px !important; }
}
@media (min-width: 1025px) {
  #bx-soa-order { flex-direction: row; column-gap: 32px; }
  #bx-soa-order .bx-soa { margin-right: 0; }
  #bx-soa-order .bx-soa-sidebar { width: 360px; }
}
#bx-soa-order .bx-soa-section { margin-bottom: 16px; padding: 22px 24px; border: 1px solid #ececf1; border-radius: 24px; background: #fff; }
#bx-soa-order .bx-soa-section.bx-selected { border-color: #d9ccfa; box-shadow: 0 12px 32px rgba(132, 80, 219, .08); }
#bx-soa-order .bx-soa-section.bx-step-error { border-color: #f3b4c1; }
#bx-soa-order .bx-soa-section-title-container { display: flex; align-items: center; gap: 12px; margin: 0 0 16px; }
#bx-soa-order .bx-soa-section-title { display: flex; flex: 1 1 auto; align-items: center; gap: 10px; width: auto; max-width: none; padding: 0; color: #1f1f29; font-size: 20px; font-weight: 700; line-height: 1.3; }
#bx-soa-order .bx-step-completed:not(.bx-selected) .bx-soa-section-title::before {
  content: "";
  flex: none;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #8450db url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 13px no-repeat;
}
/* «изменить» — пилюлей в строке заголовка (у вендора — кнопкой 52 px под блоком, с отступом 100 px) */
#bx-soa-order .bx-soa-editstep-container { position: static; flex: none; width: auto; max-width: none; padding: 0; }
#bx-soa-order .bx-soa-section:not(.bx-selected) .bx-soa-editstep { display: inline-flex; align-items: center; width: auto; height: 38px; padding: 0 16px; border: 0; border-radius: 999px; background: #8450db; color: #fff !important; font-size: 14px; font-weight: 600; line-height: 1; text-decoration: none; }
#bx-soa-order .bx-soa-section:not(.bx-selected) .bx-soa-editstep:hover { background: #7443c9; }
#bx-soa-order .bx-soa-more:not(:has(button)) { display: none; }
#bx-soa-order .bx-soa-more .btn { height: 48px; padding: 0 28px; border-radius: 16px; font-size: 16px; font-weight: 600; }
#bx-soa-order .alert-danger { margin: 0 0 16px; padding: 12px 16px; border: 0; border-radius: 14px; background: #fff1f3; color: #b4233c; font-size: 14px; line-height: 1.45; }
/* оплата и доставка в свёрнутом виде: название, без логотипа и повтора описания */
#bx-soa-order .bx-soa-section:not(.bx-selected) .bx-soa-pp-company-selected { display: flex; align-items: center; }
#bx-soa-order .bx-soa-section:not(.bx-selected) .bx-soa-pp-company-selected > img { display: none; }
#bx-soa-order .bx-soa-section:not(.bx-selected) .bx-soa-pp-company-selected .fw-medium { margin: 0 !important; color: #1f1f29; font-size: 16px; font-weight: 600 !important; }
#bx-soa-order .bx-soa-section:not(.bx-selected) .bx-soa-pp-company-selected .fw-medium ~ div { display: none; }
#bx-soa-delivery:not(.bx-selected) .bx-soa-section-content .d-flex.flex-column { flex-direction: row !important; align-items: baseline; gap: 8px; color: #1f1f29; font-size: 16px; font-weight: 600; }
#bx-soa-delivery:not(.bx-selected) .bx-soa-pp-price { order: 2; color: #6e6e7a; font-size: 14px; font-weight: 500; }
/* простой сценарий: форма первой, оплата и доставка — плитками по половине, товары и согласия — ниже */
#bx-soa-order-form.rh-soa-simple .bx-soa { display: flex; flex-wrap: wrap; column-gap: 16px; }
.rh-soa-simple .bx-soa > * { flex: 1 1 100%; min-width: 0; }
.rh-soa-simple .bx-soa > #bx-soa-properties { order: 1; }
.rh-soa-simple .bx-soa > :is(#bx-soa-paysystem, #bx-soa-delivery) { flex-basis: calc(50% - 8px); order: 2; padding: 18px 20px; }
.rh-soa-simple .bx-soa > #bx-soa-basket { order: 3; }
.rh-soa-simple .bx-soa > #bx-soa-orderSave { order: 4; }
@media (min-width: 1025px) { /* кнопка «Оформить» справа — согласия сразу под формой, не под списком товаров */
  .rh-soa-simple .bx-soa > #bx-soa-orderSave { order: 2; }
}
.rh-soa-simple :is(#bx-soa-paysystem, #bx-soa-delivery) .bx-soa-section-title-container { margin-bottom: 8px; }
.rh-soa-simple :is(#bx-soa-paysystem, #bx-soa-delivery) .bx-soa-section-title { color: #6e6e7a; font-size: 15px; font-weight: 600; }
.rh-soa-simple :is(#bx-soa-paysystem, #bx-soa-delivery) .bx-soa-editstep-container { display: none; } /* выбирать не из чего */
.rh-soa-simple #bx-soa-delivery .bx-soa-pp-price { display: none; } /* «0 ₽» — стоимость доставки есть в итоге */
/* раскрытые «Оплата» / «Доставка» (клик по плитке или следующий шаг вендора): на всю строку, способы — плитками;
   без логотипов вендора (на картинке «САМОВЫВОЗ» — противоречит названию) и без дубля описания справа (проверка 29.09) */
.rh-soa-simple .bx-soa > :is(#bx-soa-paysystem, #bx-soa-delivery).bx-selected { flex-basis: 100%; }
#bx-soa-order .bx-soa-section.bx-selected .bx-soa-pp { display: block; margin: 0; }
#bx-soa-order .bx-soa-section.bx-selected .bx-soa-pp-desc-container { display: none; }
#bx-soa-order .bx-soa-section.bx-selected .bx-soa-pp-item-container {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); /* один способ — на всю ширину, текст не столбиком */
  gap: 12px;
  width: 100%;
  max-width: none;
  padding: 0;
}
#bx-soa-order .bx-soa-section.bx-selected .bx-soa-pp-item-container .bx-soa-pp-company {
  margin: 0;
  padding: 16px;
  border: 1px solid #ececf1;
  border-radius: 16px;
  background: #fff;
  cursor: pointer;
}
#bx-soa-order .bx-soa-section.bx-selected .bx-soa-pp-item-container .bx-soa-pp-company.bx-selected { border-color: #8450db; background: #faf7ff; box-shadow: 0 0 0 1px #8450db; }
#bx-soa-order .bx-soa-section.bx-selected .bx-soa-pp-company-graf-container { display: flex; align-items: flex-start; gap: 12px; width: auto; height: auto; }
#bx-soa-order .bx-soa-section.bx-selected .bx-soa-pp-company-wrapper { gap: 4px; margin: 0 !important; }
#bx-soa-order .bx-soa-section.bx-selected .bx-soa-pp-company-image { display: none; }
#bx-soa-order .bx-soa-section.bx-selected .bx-soa-pp-company-smalltitle { color: #1f1f29; font-size: 16px; font-weight: 600; line-height: 1.35; }
#bx-soa-order .bx-soa-section.bx-selected .bx-soa-pp-company-description { color: #6e6e7a; font-size: 14px; line-height: 1.5; }
.rh-soa-simple #bx-soa-delivery .bx-soa-pp-delivery-cost { display: none; }
#bx-soa-order .bx-soa-section.bx-selected .bx-soa-more { margin-top: 16px !important; }
/* «Заказ оформлен» (confirm.php): способ оплаты строкой; пустой iframe вендора прячет raduga_pages.js (.rh-pay-note) */
.order-success-pay__logo-wrap { flex-direction: row; align-items: center; gap: 12px; }
.order-success-pay__logo { width: auto; height: auto; }
.order-success-pay__logo img { display: block; width: 56px; height: auto; border-radius: 10px; }
.order-success-pay__logo-description { color: #1f1f29; font-size: 16px; font-weight: 600; }
.rh-pay-note { margin: 0; color: #4a4a57; font-size: 15px; line-height: 1.5; }
/* данные покупателя: крупные поля; короткие — по два в ряд, адреса и название компании — во всю ширину */
#bx-soa-order .bx-soa-customer { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
#bx-soa-order .bx-soa-customer::before { content: "Звёздочкой * отмечены обязательные поля"; grid-column: 1 / -1; color: #6e6e7a; font-size: 14px; }
#bx-soa-order .bx-soa-customer > * { margin: 0 !important; }
#bx-soa-order .bx-soa-customer > :is(:first-child, :has(textarea)) { grid-column: 1 / -1; }
#bx-soa-order .bx-soa-customer + .col-sm-12 { margin-top: 16px; }
#bx-soa-order .bx-soa-customer-field { gap: 6px !important; }
#bx-soa-order .bx-soa-customer-field label { margin: 0; color: #1f1f29; font-size: 15px; font-weight: 600; }
#bx-soa-order .bx-soa-customer-field .form-control { min-height: 48px; padding: 11px 14px; border: 1px solid #e3e3ea; border-radius: 14px; background: #fff; color: #1f1f29; font-size: 16px; line-height: 1.4; }
#bx-soa-order .bx-soa-customer-field textarea.form-control { height: 76px; min-height: 76px; resize: vertical; }
#bx-soa-order .bx-soa-customer-field .form-control:hover { border-color: #c9b8f5; }
#bx-soa-order .bx-soa-customer-field .form-control:focus { border-color: #8450db; box-shadow: 0 0 0 3px #ece6fb; outline: 0; }
#bx-soa-order .bx-soa-order-captcha { padding: 0; }
#bx-soa-order masked-phone::part(toggle) { height: 46px; border-color: #e3e3ea; border-radius: 14px; } /* флаг страны — в рост поля */
@media (max-width: 767px) {
  #bx-soa-order .bx-soa-customer { grid-template-columns: minmax(0, 1fr); }
}
/* состав заказа: компактные строки — фото 56 px, название, количество, сумма; «Изменить в корзине» — в заголовке */
#bx-soa-order #bx-soa-basket .bx-soa-section-title-container { display: flex; }
.rh-soa-cart-link { flex: none; color: #5b3fb8; font-size: 15px; font-weight: 600; text-decoration: none; }
.rh-soa-cart-link:hover { color: #8450db; }
#bx-soa-order .bx-soa-basket-info { align-items: center; padding: 10px 0; border-top: 1px solid #f0eef5; }
#bx-soa-order .bx-soa-basket-info.bx-soa-item-tr-first { padding-top: 0; border-top: 0; }
#bx-soa-order .bx-soa-item-block { align-items: center; gap: 14px; }
#bx-soa-order .bx-soa-item-img-block { width: 56px; height: 56px; border-radius: 12px; background: #f7f6fa; }
#bx-soa-order .bx-soa-item-imgcontainer { border-radius: 12px; }
#bx-soa-order .bx-soa-item-title { color: #1f1f29; font-size: 15px; font-weight: 600; line-height: 1.35; }
#bx-soa-order .bx-soa-item-quantity--column { color: #6e6e7a; font-size: 15px; white-space: nowrap; }
#bx-soa-order .bx-soa-item-price--column { min-width: 90px; color: #1f1f29; font-size: 16px; white-space: nowrap; }
@media (min-width: 768px) and (max-width: 1024px) { /* у вендора сумма здесь над названием — ставим колонкой справа, как на десктопе */
  #bx-soa-order .bx-soa-item-price--inline { display: none; }
  #bx-soa-order .bx-soa-item-price--column { display: block; flex: 0 0 auto; text-align: right; }
}
@media (max-width: 767px) { /* у вендора фото 120 px — строка 130 px; здесь: фото 56 · название, ниже «20 шт» и сумма */
  #bx-soa-order .bx-soa-item-block { grid-template-columns: 56px minmax(0, 1fr); column-gap: 12px; align-items: center; }
  #bx-soa-order .bx-soa-item-img-block { width: 56px !important; height: 56px !important; }
  #bx-soa-order .bx-soa-item-info-col { flex-flow: row wrap; align-items: baseline; gap: 2px 12px; }
  #bx-soa-order .bx-soa-item-content { flex: 1 1 100%; }
  #bx-soa-order .bx-soa-item-meta--mobile { order: 2; margin: 0; color: #6e6e7a; font-size: 14px; }
  #bx-soa-order .bx-soa-item-quantity--mobile { font-size: 14px; }
  #bx-soa-order .bx-soa-item-quantity--mobile > span:first-child { display: none; } /* «Количество:» */
  #bx-soa-order .bx-soa-item-price--mobile { order: 3; margin-left: auto; }
  #bx-soa-order .bx-soa-item-price--mobile .bx-soa-item-price-text { color: #1f1f29; font-size: 15px; }
}
/* согласия: флажки крупнее */
#bx-soa-order #bx-soa-orderSave .bx-soa-section { margin: 0 0 16px; }
#bx-soa-orderSave .main-user-consent-request { align-items: flex-start; gap: 10px; font-size: 15px; line-height: 1.45; }
#bx-soa-orderSave .main-user-consent-request input[type="checkbox"] { flex: none; width: 22px; height: 22px; margin: 0; accent-color: #8450db; }
/* итог справа: как в корзине — Итого → сколько добрать → кнопки → «Нужна помощь?» → купон */
#bx-soa-order .bx-soa-cart-total { display: flex; flex-direction: column; gap: 10px; padding: 24px; border: 1px solid #ececf1; border-radius: 24px; background: #fff; box-shadow: 0 12px 32px rgba(31, 31, 41, .06); }
#bx-soa-order .bx-soa-cart-total > * { margin: 0 !important; }
#bx-soa-order .bx-soa-cart-total-line { color: #6e6e7a; font-size: 14px; }
#bx-soa-order .bx-soa-cart-total-line .bx-soa-cart-d { color: #1f1f29; font-weight: 600; }
.rh-soa-simple .bx-soa-price-free { color: #1f1f29; } /* «по согласованию» (raduga_pages.js) — не зелёным «Бесплатно» */
#bx-soa-order .bx-soa-cart-total-line-total { align-items: baseline; margin-top: 6px !important; padding-top: 16px; border-top: 1px solid #f0eef5; }
#bx-soa-order .bx-soa-cart-total-line-total .bx-soa-cart-t { color: #1f1f29; font-size: 20px; font-weight: 700; }
#bx-soa-order .bx-soa-cart-total-line-total .bx-soa-cart-d { font-size: 26px; font-weight: 800; }
#bx-soa-order .bx-soa-cart-total > .mt-4 { order: 2; margin-top: 6px !important; }
#bx-soa-order .bx-soa-cart-total > .bx-soa-cart-total-button-container { order: 3; margin-top: 6px !important; text-align: center; }
#bx-soa-order .bx-soa-cart-total > .bx-soa-cart-oneclick-button-container { order: 4; }
#bx-soa-order .bx-soa-cart-total > .rh-cart-help { order: 5; }
#bx-soa-order .bx-soa-cart-total > .basket-coupon-wrapper { order: 6; gap: 6px; padding-top: 16px; border-top: 1px solid #f0eef5; }
#bx-soa-order .bx-soa-cart-total .btn { width: 100%; height: 52px; border-radius: 16px; font-size: 16px; font-weight: 600; }
#bx-soa-order .bx-soa-cart-total .btn:disabled { background: #ece9f3; color: #9a95ad; opacity: 1; }
#bx-soa-order .bx-soa-cart-total:has(.minimum-price-remainder) :is(.bx-soa-cart-total-button-container span.fs-1, .bx-soa-cart-oneclick-button-container) { display: none; }
@media (max-width: 576px) {
  main:has(#bx-soa-order-form) h1 { font-size: 24px !important; }
  #bx-soa-order .bx-soa-section { padding: 18px 16px; border-radius: 20px; }
  .rh-soa-simple .bx-soa > :is(#bx-soa-paysystem, #bx-soa-delivery) { padding: 14px 16px; }
  #bx-soa-order .bx-soa-section-title { font-size: 18px; }
  #bx-soa-order .bx-soa-cart-total { padding: 20px; }
  #bx-soa-order .bx-soa-item-price--column { min-width: 0; }
}

/* --- окно «Все цвета» (29.09; raduga_pages.js): все цвета товара плитками с названием, выбор — как клик по цвету --- */
.rh-colors-dialog { width: min(560px, calc(100vw - 32px)); max-height: calc(100dvh - 48px); padding: 20px; border: 0; border-radius: 24px; background: #fff; box-shadow: 0 24px 60px rgba(31, 31, 41, .25); }
.rh-colors-dialog[open] { display: flex; flex-direction: column; }
.rh-colors-dialog::backdrop { background: rgba(31, 31, 41, .45); }
.rh-colors-dialog__head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 16px; }
.rh-colors-dialog__title { margin: 0; color: #1f1f29; font-size: 20px; font-weight: 700; }
.rh-colors-dialog__close { display: grid; place-items: center; flex: none; width: 36px; height: 36px; padding: 0; border: 0; border-radius: 50%; background: #f3effc; color: #5b3fb8; cursor: pointer; }
.rh-colors-dialog__close svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.rh-colors-dialog__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(96px, 1fr)); gap: 12px; overflow: auto; }
.rh-colors-dialog__item { display: flex; flex-direction: column; gap: 6px; padding: 6px 6px 8px; border: 1px solid #ececf1; border-radius: 14px; background: #fff; color: #1f1f29; font: inherit; font-size: 13px; font-weight: 500; line-height: 1.3; text-align: center; cursor: pointer; }
.rh-colors-dialog__item:hover { border-color: #b9a6ec; }
.rh-colors-dialog__item.is-selected { border-color: #8450db; box-shadow: 0 0 0 1px #8450db; }
/* «В корзину» в мини-карточках (главная, «Похожие товары») → окно с цветами и сеткой размеров (raduga_pages.js, 29.09):
   рамка и крестик — от окна «Все цвета», цвета — плитками как в деталке, сетка — как в каталоге */
:is(.similar-products, .main-page-block) .catalog-item__body { padding-bottom: 10px; }
.rh-quick-btn { display: flex; align-items: center; justify-content: center; box-sizing: border-box; width: 100%; height: 38px; margin-top: auto; padding: 0 12px; border: 0; border-radius: 999px; background: #8450db; color: #fff; font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; transition: background .2s; }
.rh-quick-btn:hover { background: #7443c9; color: #fff; }
.rh-quick { width: min(600px, calc(100vw - 32px)); }
.rh-quick .rh-colors-dialog__title { font-size: 18px; line-height: 1.3; }
.rh-quick__body { min-height: 0; overflow: auto; }
.rh-quick__load { margin: 4px 0 12px; color: #6e6e7a; font-size: 15px; }
.rh-quick__more { align-self: flex-start; margin-top: 14px; color: #8450db; font-size: 14px; font-weight: 600; text-decoration: none; }
.rh-quick__more:hover { text-decoration: underline; }
.rh-quick .rdp-colors { margin: 0 0 16px; padding: 12px 14px 14px; border-radius: 16px; background: #f5f1fd; }
.rh-quick .rdp-colors .prop__name { display: block; margin-bottom: 10px; color: #6e6e7a; font-size: 14px; }
.rh-quick .rdp-color-name { color: #1f1f29; font-weight: 700; text-transform: lowercase; }
.rh-quick .rdp-color-name::first-letter { text-transform: uppercase; }
.rh-quick .rdp-colors .prop__values { display: grid; grid-template-columns: repeat(auto-fill, minmax(48px, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.rh-quick .rdp-colors .prop__values li { margin: 0; }
.rh-quick .rsg-foot { position: sticky; bottom: 0; z-index: 1; padding-bottom: 2px; background: #fff; } /* много размеров — кнопка всегда видна */
.rh-colors-dialog__thumb { display: block; aspect-ratio: 1; border: 1px solid #efeaf8; border-radius: 10px; background-color: #fff; background-position: center; background-size: cover; }
.rh-colors-dialog__name { display: block; text-transform: lowercase; }
.rh-colors-dialog__name::first-letter { text-transform: uppercase; }
@media (max-width: 576px) {
  .rh-colors-dialog { padding: 16px; border-radius: 20px; }
  .rh-colors-dialog__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
}

/* --- 404 --- */
main:has(.r404) .not-found { display: none; }
.r404__head { display: flex; flex-direction: column; align-items: center; margin: 8px 0 40px; padding: 48px 24px; border-radius: 32px; background: linear-gradient(160deg, #f5f0ff, #fdf2f8); text-align: center; }
.r404__code { background: linear-gradient(135deg, #8450db, #e27bb1); -webkit-background-clip: text; background-clip: text; color: transparent; font-size: 96px; font-weight: 800; line-height: 1; }
.r404__title { margin: 12px 0 0; color: #1f1f29; font-size: 32px; font-weight: 700; line-height: 1.25; }
.r404__text { max-width: 460px; margin: 10px 0 0; color: #6e6e7a; font-size: 16px; line-height: 1.55; }
.r404__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 24px; }
@media (max-width: 576px) {
  .r404__head { margin-bottom: 28px; padding: 32px 16px; border-radius: 24px; }
  .r404__code { font-size: 72px; }
  .r404__title { font-size: 24px; }
  .r404__actions > .rh-btn { flex: 1 1 100%; }
}

/* =====================================================================
   25. Шрифт сайта — Nunito: вендор берёт шрифт из переменной --font-family.
   Файлы свои (/local/fonts, вариативный 400–800, наборы Google Fonts v32; лицензия SIL OFL 1.1 — внутри файлов),
   без обращений к Google. Кириллица — preload в header.php. latin-ext нужен ради «₽».
   ===================================================================== */
@font-face { font-family: Nunito; font-weight: 400 800; font-display: swap; src: url("/local/fonts/nunito-cyrillic.woff2") format("woff2"); unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116; }
@font-face { font-family: Nunito; font-weight: 400 800; font-display: swap; src: url("/local/fonts/nunito-latin.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; }
@font-face { font-family: Nunito; font-weight: 400 800; font-display: swap; src: url("/local/fonts/nunito-latin-ext.woff2") format("woff2"); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }
:root { --font-family: Nunito; }

/* Товар без цены (в 1С цена не заведена): купить и отложить нельзя (Битрикс не кладёт в корзину без цены) —
   вместо пустой плашки цены подпись */
.catalog__wrapper .catalog-item .catalog-item__price:empty::before { content: "Цена уточняется"; font-size: 14px; white-space: nowrap; }

/* Товар, блок цветов (13.10, замечания заказчика): плитки — в один ряд на всю ширину блока (сколько поместится, остальные
   уходят в строки нулевой высоты и обрезаются), «Все цвета (N)» — заметная кнопка справа от названия цвета,
   у выбранного цвета нет круглой обводки вендора (рамка плитки прямоугольная). */
.detail-product .rdp-colors .prop__values { grid-template-columns: repeat(auto-fill, minmax(56px, 1fr)); grid-template-rows: auto; grid-auto-rows: 0; gap: 0 8px; overflow: hidden; margin: -2px -2px 0; padding: 2px 2px 0; } /* снизу без отступа — иначе видна кромка скрытого ряда */
.detail-product .rdp-colors li.rh-color-extra:not(.rh-color-none):not([style*="display: none"]) { display: block !important; }
.detail-product .rdp-colors li.selected > .rdp-swatch::before,
.rh-quick .rdp-colors li.selected > .rdp-swatch::before { content: none; }
.detail-product .rdp-colors:has(> .rh-colors-all) { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; }
.detail-product .rdp-colors:has(> .rh-colors-all) .prop__name { margin-bottom: 0; }
.detail-product .rdp-colors:has(> .rh-colors-all) .prop__values { grid-column: 1 / -1; grid-row: 2; }
.detail-product .rdp-colors .rh-colors-all { grid-column: 2; grid-row: 1; width: auto; min-height: 36px; margin: 0; padding: 0 16px; border: 1.5px solid #8450db; border-radius: 99px; background: #fff; color: #5b3fb8; font-size: 14px; font-weight: 700; line-height: 1.2; text-align: center; white-space: nowrap; }
.detail-product .rdp-colors .rh-colors-all:hover { background: #8450db; color: #fff; text-decoration: none; }

/* Метки «Хит» / «Новинка» (13.10, PageSpeed, контраст): цвет фона задан в админке строкой style — чуть темнее, чтобы белый
   текст читался (было 4,0 и 3,9 при норме 4,5) */
.badge[style*="#ff0000"] { background-color: #d6001c !important; }
.badge[style*="#009900"] { background-color: #0b7a0b !important; }
/* выбранный цвет дальше пятого (на телефоне в ряд входит пять) встаёт первым — выбранное всегда на виду;
   класс rh-color-extra у выбранного снимает JS, поэтому по номеру */
.detail-product .rdp-colors li.selected:nth-child(n+6) { order: -1; }

/* Блог, статья (13.10): широкая картинка в тексте (1536 px) распирала колонку статьи за экран — у flex-колонки вендора
   нет min-width: 0, у картинок текста нет ограничения ширины */
.blog-detail__content { min-width: 0; }
.blog-detail__content img { max-width: 100%; height: auto; }
.blog-detail__image img.img-cover { height: 100%; }
