/* =========================================================
   ZIPTEH — плитка каталога.

   Карточка повторяет принятый модуль главной #ztSaleProducts
   один в один: правила ниже сгенерированы из
   assets/styles/sale-products.css заменой области видимости
   #ztSaleProducts → .zt-catalog-grid. Сам принятый модуль
   и его файл не изменяются.

   ВАЖНО: если карточку на главной когда-нибудь поправят,
   этот файл нужно пересобрать из sale-products.css тем же
   способом, иначе виды разойдутся.

   Сетка повторяет брейкпоинты карусели главной
   (sale-products.js: slidesPerView / spaceBetween):
     < 520   — 1 колонка,  зазор 12  (на главной 1.2 с подглядыванием)
     >= 520  — 2 колонки,  зазор 12
     >= 760  — 3 колонки,  зазор 14
     >= 1020 — 4 колонки,  зазор 14
     >= 1320 — 5 колонок,  зазор 16
     >= 1640 — 5 колонок (см. N-508), зазор 16
   ========================================================= */

.zt-catalog-grid {
    /* На главной цвет текста карточки наследуется от модуля (#333a43).
       В каталоге родитель отдаёт свой оттенок, поэтому задаём явно —
       иначе цена и подписи выходят темнее, чем на главной. */
    color: #333a43;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    width: 100%;
    margin: 0;
    padding: 0;
    list-style: none;
}

.zt-catalog-grid,
.zt-catalog-grid *,
.zt-catalog-grid *::before,
.zt-catalog-grid *::after {
    box-sizing: border-box;
}

/* Карточка внутри сетки — обычный элемент потока, а не слайд. */
.zt-catalog-grid .zt-product-card {
    width: auto !important;
    margin: 0 !important;
    flex: none !important;
}

@media (min-width: 520px) {
    .zt-catalog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
}

@media (min-width: 760px) {
    .zt-catalog-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
}

@media (min-width: 1020px) {
    .zt-catalog-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
}

@media (min-width: 1320px) {
    .zt-catalog-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
}

/* N-508: шестая колонка убрана. На странице каталога 20 товаров, и при
   шести в ряду последний ряд оставался рваным — 6/6/6/2. При пяти
   колонках 20 укладываются ровно в четыре ряда на всех широких
   разрешениях. Если увеличить число товаров на странице до кратного
   шести, правило можно вернуть. */


/* =========================================================
   N-517: верхняя панель каталога по референсу.

   Разметка, селекты и обработчики остаются штатными. Меняется
   только визуал: белая карточка с тонкой границей, компактная
   сводка слева и единая строка контролов справа. Селекторы с id
   и !important нужны из-за позднего блока ZIPTEH v6 в
   poisk-results.css, где серый фон закреплён через !important.
   ========================================================= */

#poisk-results > .poisk-results__toolbar {
    min-height: 60px;
    margin-bottom: 18px;
    padding: 9px 12px 9px 18px;
    gap: 18px;
    border: 1px solid #dfe3e8 !important;
    border-radius: 12px;
    background: #fff !important;
    color: #253142 !important;
    box-shadow: 0 8px 24px rgba(37, 49, 66, .055) !important;
}

#poisk-results > .poisk-results__toolbar .poisk-results__toolbar-summary {
    gap: 8px;
    color: #45566b !important;
    font-family: var(--zt-font-btn, "Manrope", Arial, sans-serif);
    font-size: 12px;
    font-weight: 500;
}

#poisk-results > .poisk-results__toolbar .poisk-results__toolbar-summary strong {
    color: #253142 !important;
    font-size: 12px;
    font-weight: 700;
}

#poisk-results > .poisk-results__toolbar .poisk-results__toolbar-badge {
    min-height: 26px;
    padding: 4px 10px;
    border: 1px solid #dfe3e8 !important;
    border-radius: 8px;
    background: #fff !important;
    color: #253142 !important;
    font-size: 10px;
    font-weight: 700;
}

#poisk-results > .poisk-results__toolbar .poisk-results__toolbar-actions {
    gap: 10px;
}

#poisk-results > .poisk-results__toolbar .poisk-results__view {
    min-height: 44px;
    gap: 4px;
    padding: 4px;
    border: 1px solid #dfe3e8;
    border-radius: 8px;
    background: #fff;
}

#poisk-results > .poisk-results__toolbar .poisk-results__view-button {
    width: 34px;
    height: 34px;
    border-radius: 7px;
    color: #45566b;
}

#poisk-results > .poisk-results__toolbar .poisk-results__view-button[aria-pressed="true"] {
    background: #ffb800;
    color: #253142;
    box-shadow: 0 4px 10px rgba(255, 184, 0, .22);
}

#poisk-results > .poisk-results__toolbar .poisk-results__page-size-wrap,
#poisk-results > .poisk-results__toolbar .poisk-results__sort-wrap {
    min-height: 44px;
    border: 1px solid #dfe3e8 !important;
    border-radius: 8px;
    background: #fff !important;
    color: #45566b !important;
    box-shadow: none;
}

#poisk-results > .poisk-results__toolbar .poisk-results__page-size-wrap {
    min-width: 176px;
    padding: 4px 7px 4px 13px;
}

#poisk-results > .poisk-results__toolbar .poisk-results__sort-wrap {
    min-width: 292px;
    padding: 4px 36px 4px 13px;
}

#poisk-results > .poisk-results__toolbar .poisk-results__page-size-wrap > span,
#poisk-results > .poisk-results__toolbar .poisk-results__sort-wrap > span {
    color: #45566b !important;
    font-size: 10px;
    font-weight: 600;
}

#poisk-results > .poisk-results__toolbar .poisk-results__page-size,
#poisk-results > .poisk-results__toolbar .poisk-results__sort {
    height: 34px;
    border: 1px solid #edf0f3 !important;
    border-radius: 7px;
    background: #fff !important;
    color: #253142 !important;
    font-family: var(--zt-font-btn, "Manrope", Arial, sans-serif);
    font-size: 10px;
    font-weight: 700;
}

#poisk-results > .poisk-results__toolbar .poisk-results__page-size {
    min-width: 72px;
}

#poisk-results > .poisk-results__toolbar .poisk-results__sort {
    width: 174px;
}

/* zf-toolbar-fix — только дожим уже заданных выше значений.
   Гарнитуру и кегль селектов перебивало правило уровня
   `#poisk-results *` из стилей боевого домена: вместо Manrope 10/700
   рисовался Tektur 12. Сами размеры, рамка и радиус — те, что заданы
   выше, здесь ничего не переопределяется по вкусу.
   Заодно убираем системную стрелку селекта и рисуем свою, иначе
   в каждом браузере она выглядит по-своему. */

#poisk-results > .poisk-results__toolbar .poisk-results__page-size,
#poisk-results > .poisk-results__toolbar .poisk-results__sort {
    padding: 0 30px 0 11px !important;
    font-family: var(--zt-font-btn, "Manrope", Arial, sans-serif) !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffb800' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 9px center !important;
    background-size: 13px !important;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
}

#poisk-results > .poisk-results__toolbar .poisk-results__page-size:hover,
#poisk-results > .poisk-results__toolbar .poisk-results__sort:hover {
    border-color: #cfd6de !important;
}

#poisk-results > .poisk-results__toolbar .poisk-results__page-size:focus-visible,
#poisk-results > .poisk-results__toolbar .poisk-results__sort:focus-visible {
    border-color: #ffb800 !important;
    box-shadow: 0 0 0 3px rgba(255, 184, 0, .18);
    outline: none;
}

/* Подписи «На странице:» и «Сортировка:» — тем же кеглем, что задан выше. */
#poisk-results > .poisk-results__toolbar .poisk-results__page-size-wrap > span,
#poisk-results > .poisk-results__toolbar .poisk-results__sort-wrap > span {
    font-family: var(--zt-font-btn, "Manrope", Arial, sans-serif) !important;
    font-size: 10px !important;
    font-weight: 600 !important;
}

/* =========================================================
   N-519 / N-520 / N-521: убрать рамки-обёртки в тулбаре.

   Заказчик просит, чтобы подписи «На странице:» и «Сортировка:»
   и группа переключателя вида не были обведены рамкой. Рамку
   держит только сам контрол — селект и активная кнопка вида.
   Размеры контролов не меняются: селекты остаются 34 px, кнопки
   вида 34×34, поэтому строка тулбара выравнивается по одной
   высоте без обёрток.
   ========================================================= */

#poisk-results > .poisk-results__toolbar .poisk-results__page-size-wrap,
#poisk-results > .poisk-results__toolbar .poisk-results__sort-wrap,
#poisk-results > .poisk-results__toolbar .poisk-results__view {
    min-height: 34px;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

#poisk-results > .poisk-results__toolbar .poisk-results__page-size-wrap,
#poisk-results > .poisk-results__toolbar .poisk-results__sort-wrap {
    min-width: 0;
    padding: 0;
    gap: 8px;
}

#poisk-results > .poisk-results__toolbar .poisk-results__view {
    padding: 0;
    gap: 6px;
}

/* Рамку теперь несёт сам селект: прежний #edf0f3 задумывался как
   внутренняя линия внутри обёртки и на белом фоне без неё
   не читается, поэтому берём тот же токен, что у тулбара. */
#poisk-results > .poisk-results__toolbar .poisk-results__page-size,
#poisk-results > .poisk-results__toolbar .poisk-results__sort {
    border-color: #dfe3e8 !important;
}

@media (max-width: 1100px) {
    #poisk-results > .poisk-results__toolbar {
        padding: 12px;
    }

    #poisk-results > .poisk-results__toolbar .poisk-results__toolbar-actions {
        justify-content: flex-end;
    }
}

@media (max-width: 700px) {
    #poisk-results > .poisk-results__toolbar .poisk-results__toolbar-summary {
        width: 100%;
    }

    #poisk-results > .poisk-results__toolbar .poisk-results__toolbar-summary strong {
        width: auto;
    }

    #poisk-results > .poisk-results__toolbar .poisk-results__toolbar-actions {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        gap: 8px;
    }

    #poisk-results > .poisk-results__toolbar .poisk-results__view {
        grid-column: 1;
        grid-row: 1;
    }

    #poisk-results > .poisk-results__toolbar .poisk-results__page-size-wrap {
        grid-column: 2;
        grid-row: 1;
        width: 100%;
        min-width: 0;
    }

    #poisk-results > .poisk-results__toolbar .poisk-results__sort-wrap {
        grid-column: 1 / -1;
        grid-row: 2;
        width: 100%;
        min-width: 0;
        margin: 0;
    }

    #poisk-results > .poisk-results__toolbar .poisk-results__sort {
        width: 100%;
    }
}


/* =========================================================
   N-511: пагинация каталога в стиле страницы новостей.

   Разметку даёт Битрикс (`.main-ui-pagination`), менять её нельзя,
   поэтому переоформляем существующие узлы: подпись «Страницы:»
   становится служебной строкой сверху, номера — квадратными
   кнопками 42×42 с радиусом 8, текущая страница — фирменным
   жёлтым, «Предыдущая»/«Следующая» — широкими кнопками, как
   «Назад»/«Вперёд» в новостях. Значения совпадают с
   .znh-pagination в news-hub.css.
   ========================================================= */

.poisk-results .main-ui-pagination {
    display: grid;
    grid-template-columns: auto auto auto minmax(150px, 1fr);
    align-items: center;
    justify-items: start;
    gap: 8px;
    margin-top: 24px;
    padding: 10px 12px;
    border: 1px solid #e3e5e5;
    border-radius: 12px;
    background: #fff;
}

.poisk-results .main-ui-pagination-pages {
    display: contents;
}

.poisk-results .main-ui-pagination-label {
    display: none;
}

.poisk-results .main-ui-pagination-pages-list {
    max-width: 100%;
    display: flex;
    flex-wrap: nowrap;
    gap: 6px;
    align-items: center;
    justify-content: flex-start;
}

.poisk-results .main-ui-pagination-pages-list { grid-column: 2; grid-row: 1; }

.poisk-results .main-ui-pagination-arrows { display: contents; }
.poisk-results .main-ui-pagination-prev { grid-column: 1; grid-row: 1; }
.poisk-results .main-ui-pagination-next { grid-column: 3; grid-row: 1; }

.poisk-results .zt-catalog-load-more {
    grid-column: 4;
    grid-row: 1;
    justify-self: end;
    min-width: 132px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 18px;
    border: 1px solid #ffb800;
    border-radius: 8px;
    background: #ffb800;
    color: #1d2228;
    font-family: var(--zt-font-btn, "Manrope", "Inter", Arial, sans-serif) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1;
    text-decoration: none;
}

.poisk-results .zt-catalog-load-more:hover {
    border-color: #e8a600;
    background: #e8a600;
}

/* Селектор поднят до id: гарнитуру перебивает правило уровня
   `#poisk-results *` из стилей боевого домена, и селектор из двух
   классов ему проигрывает даже с !important. */
#poisk-results .main-ui-pagination-page,
#poisk-results .main-ui-pagination-arrow,
.poisk-results .main-ui-pagination-page,
.poisk-results .main-ui-pagination-arrow {
    min-width: 42px;
    height: 42px;
    display: inline-grid;
    padding: 0 10px;
    place-items: center;
    border: 1px solid #e3e5e5;
    border-radius: 8px;
    color: #333a43;
    background: #fff;
    /* !important: гарнитуру кнопок перебивает легаси-CSS с боевого
       домена — без этого выходит Tektur вместо Manrope новостей. */
    font-family: var(--zt-font-btn, "Manrope", "Inter", Arial, sans-serif) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    text-decoration: none;
    transition: border-color 160ms ease, background 160ms ease;
}

.poisk-results .main-ui-pagination-page:hover,
.poisk-results .main-ui-pagination-arrow:hover {
    border-color: #ffb800;
}

#poisk-results .main-ui-pagination-page.main-ui-pagination-active,
.poisk-results .main-ui-pagination-page.main-ui-pagination-active {
    border-color: #ffb800;
    background: #ffb800;
}

/* Многоточие — без рамки, как разделитель в новостях. */
#poisk-results .main-ui-pagination-page.main-ui-pagination-dots,
.poisk-results .main-ui-pagination-page.main-ui-pagination-dots {
    border-color: transparent;
    background: transparent;
    color: #909090;
}

/* «Предыдущая» и «Следующая» — широкие кнопки направления. */
#poisk-results .main-ui-pagination-arrow,
.poisk-results .main-ui-pagination-arrow {
    min-width: 132px;
    align-items: center;
    justify-content: center;
    text-align: center;
}

/* Неактивная стрелка приходит как <span> без href. */
.poisk-results span.main-ui-pagination-arrow,
.poisk-results span.main-ui-pagination-page:not(.main-ui-pagination-active) {
    opacity: .42;
    pointer-events: none;
}

/* Ниже 900 px широкие подписи «Предыдущая»/«Следующая» перестают
   помещаться рядом с номерами: на 768 ряд был шире колонки на 71 px.
   Оставляем стрелки, подписи убираем. */
@media (max-width: 900px) {
    .poisk-results .main-ui-pagination {
        grid-template-columns: auto minmax(0, 1fr) auto auto;
    }

    .poisk-results .main-ui-pagination-prev { grid-column: 1; }
    .poisk-results .main-ui-pagination-pages-list { grid-column: 2; justify-content: center; }
    .poisk-results .main-ui-pagination-next { grid-column: 3; }
    .poisk-results .zt-catalog-load-more { grid-column: 4; }

    #poisk-results .main-ui-pagination-arrow,
    .poisk-results .main-ui-pagination-arrow {
        width: 42px;
        min-width: 42px;
        max-width: 42px;
        padding: 0;
        /* !important — перебиваем `font-size: 13px !important`
           у кнопок пагинации выше по файлу, иначе подпись
           возвращается и вылезает за кнопку. */
        font-size: 0 !important;
        overflow: hidden;
    }

    .poisk-results .main-ui-pagination-prev { justify-self: start; }
    .poisk-results .main-ui-pagination-next { justify-self: end; }

    .poisk-results .main-ui-pagination-arrow::before {
        display: block;
        font: 700 15px/1 var(--zt-font-btn, "Manrope", Arial, sans-serif);
        text-align: center;
    }

    .poisk-results .main-ui-pagination-prev::before { content: "←"; }
    .poisk-results .main-ui-pagination-next::before { content: "→"; }
}

@media (max-width: 620px) {
    .poisk-results .main-ui-pagination {
        grid-template-columns: auto minmax(0, 1fr) auto;
        gap: 8px;
    }

    .poisk-results .main-ui-pagination-prev { grid-column: 1; grid-row: 1; }
    .poisk-results .main-ui-pagination-pages-list { grid-column: 2; grid-row: 1; }
    .poisk-results .main-ui-pagination-next { grid-column: 3; grid-row: 1; }

    .poisk-results .main-ui-pagination-pages-list {
        max-width: 100%;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .poisk-results .zt-catalog-load-more {
        grid-column: 1 / -1;
        grid-row: 2;
        width: 100%;
        justify-self: stretch;
    }
}

/* N-513…N-516: заголовок каталога и интервалы страницы. */
.zt-page-content-area--catalog .zip-catalog-page {
    margin-top: 18px;
}

.zt-page-content-area--catalog .poisk-results__header {
    margin-bottom: 18px;
}

body:has(.zt-page-content-area--catalog) #ziptehLeadModule {
    margin-top: 40px;
}

/* Фильтры каталога по утверждённому референсу. Ширина колонки и
   штатная smart-filter-разметка Битрикса не меняются. */
.poisk-results .poisk-filters {
    overflow: hidden;
    border: 1px solid #e3e5e5;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(29, 34, 40, .045);
}

.poisk-results .poisk-filters__header {
    min-height: 64px;
    padding: 15px 16px;
    align-items: center;
    border-bottom: 1px solid #e9ebee;
    background: #fff;
}

.poisk-results .poisk-filters__eyebrow { display: none; }

.poisk-results .poisk-filters__title {
    display: flex;
    align-items: center;
    gap: 8px;
    color: #253142;
    font-family: var(--zt-font-head, "Russo One", Arial, sans-serif);
    font-size: 20px;
    font-weight: 400;
    line-height: 1;
}

/* N-525: значок фильтров. Прежний собирался из шести градиентов
   и на ретине расползался. Теперь — чистый SVG-глиф воронки
   в мягкой фирменной плашке, как у остальных иконок каталога. */
.poisk-results .poisk-filters__title::before {
    width: 26px;
    height: 26px;
    flex: 0 0 26px;
    display: block;
    content: "";
    border-radius: 8px;
    background:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23f0a500'%3E%3Cpath d='M3.6 5.1c0-.72.58-1.3 1.3-1.3h14.2c.72 0 1.3.58 1.3 1.3v1.06c0 .35-.14.68-.38.92l-5.62 5.62a1.3 1.3 0 0 0-.38.92v4.28c0 .46-.24.88-.63 1.11l-2.62 1.57a1.3 1.3 0 0 1-1.97-1.11v-5.85c0-.35-.14-.68-.38-.92L3.98 8.08a1.3 1.3 0 0 1-.38-.92V5.1Z'/%3E%3C/svg%3E")
        center / 16px 16px no-repeat,
        rgba(255, 184, 0, .16);
}

.poisk-results .poisk-filters__reset {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 0;
    border: 0;
    color: #69809a;
    font-family: var(--zt-font-btn, "Manrope", Arial, sans-serif);
    font-size: 10px;
    font-weight: 600;
}

.poisk-results .poisk-filters__reset::before {
    content: "↻";
    color: #3b73a7;
    font-size: 16px;
    line-height: 1;
}

.poisk-results .poisk-filters__group {
    padding: 0 16px;
    border-bottom: 1px solid #e9ebee;
}

.poisk-results .poisk-filters__group-title {
    min-height: 53px;
    color: #253142;
    font-family: var(--zt-font-btn, "Manrope", Arial, sans-serif);
    font-size: 12px;
    font-weight: 700;
}

.poisk-results .poisk-filters__group-title svg {
    width: 15px;
    height: 15px;
    stroke: #253142;
}

.poisk-results .poisk-filters__group-body { padding-bottom: 17px; }

.poisk-results .poisk-filters__price {
    position: relative;
    gap: 10px;
    padding-bottom: 28px;
}

.poisk-results .poisk-filters__price::before {
    position: absolute;
    right: 3px;
    bottom: 8px;
    left: 3px;
    height: 3px;
    border-radius: 3px;
    background: #ffb800;
    content: "";
}

.poisk-results .poisk-filters__price::after {
    position: absolute;
    right: -1px;
    bottom: 2px;
    left: -1px;
    height: 13px;
    background:
        radial-gradient(circle, #fff 0 5px, #ffb800 5.5px 6.5px, transparent 7px) left center / 14px 14px no-repeat,
        radial-gradient(circle, #fff 0 5px, #ffb800 5.5px 6.5px, transparent 7px) right center / 14px 14px no-repeat;
    content: "";
}

.poisk-results .poisk-filters__price input,
.poisk-results .poisk-filters__search input {
    height: 39px;
    border: 1px solid #dfe3e8;
    border-radius: 8px;
    background: #fff;
    color: #253142;
    box-shadow: none;
}

.poisk-results .poisk-filters__search { margin-bottom: 13px; }

.poisk-results .poisk-filters__options { gap: 9px; }

.poisk-results .poisk-filters__option {
    grid-template-columns: 16px minmax(0, 1fr) auto;
    gap: 8px;
    color: #45566b;
    font-size: 10px;
    font-weight: 500;
}

.poisk-results .poisk-filters__checkbox {
    width: 16px;
    height: 16px;
    border-color: #ccd4dc;
    border-radius: 2px;
}

.poisk-results .poisk-filters__option-count {
    color: #60748a;
    font-size: 10px;
}

/* =========================================================
   N-528: группа «Наличие» — тумблеры «На складе» / «Под заказ».

   На референсе это не чекбоксы, а переключатели-ползунки.
   Трек 34×20, шарик 16, включённое состояние — фирменный жёлтый.
   Разметка: label > input[type=checkbox] + span.track + span.text.
   ========================================================= */

#poisk-results .poisk-filters__switches {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

#poisk-results .poisk-filters__switch {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    user-select: none;
}

#poisk-results .poisk-filters__switch input {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    border: 0;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    overflow: hidden;
    white-space: nowrap;
}

/* Фон трека и шарика идёт с !important: у стилей умного фильтра
   с боевого домена есть правило на span внутри label фильтра,
   которое красит его фоном поверх наших классов. */
#poisk-results .poisk-filters__switch-track {
    position: relative;
    flex: 0 0 34px;
    width: 34px;
    height: 20px;
    border: 0 !important;
    border-radius: 999px !important;
    background: #dfe3e8 !important;
    transition: background .16s ease;
}

#poisk-results .poisk-filters__switch-track::after {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 16px;
    height: 16px;
    content: "";
    border-radius: 50%;
    background: #fff !important;
    box-shadow: 0 1px 3px rgba(29, 34, 40, .28);
    transition: transform .16s ease;
}

#poisk-results .poisk-filters__switch input:checked + .poisk-filters__switch-track {
    background: #ffb800 !important;
}

#poisk-results .poisk-filters__switch input:checked + .poisk-filters__switch-track::after {
    transform: translateX(14px);
}

#poisk-results .poisk-filters__switch input:focus-visible + .poisk-filters__switch-track {
    outline: 2px solid #ffb800;
    outline-offset: 2px;
}

#poisk-results .poisk-filters__switch-text {
    color: #253142;
    font-family: var(--zt-font-btn, "Manrope", Arial, sans-serif) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
}

.poisk-results .poisk-filters__more {
    margin-top: 12px;
    border-bottom: 1px dashed #507090;
    color: #3b658f;
    font-size: 10px;
    font-weight: 600;
}

.poisk-results .poisk-filters__footer {
    padding: 16px 16px 14px;
    background: #fff;
}

.poisk-results .poisk-filters__apply {
    width: 100%;
    min-height: 44px;
    margin: 0;
    border: 0;
    border-radius: 8px;
    background: #ffb800;
    box-shadow: none;
    color: #1d2228;
    font-family: var(--zt-font-btn, "Manrope", Arial, sans-serif);
    /* N-527: кегль поднят с 12 до 14, добавлены внутренние отступы,
       чтобы подпись не упиралась в границу кнопки. */
    font-size: 14px;
    font-weight: 700;
}

.poisk-results .poisk-filters__apply {
    min-height: 46px;
    padding: 0 24px !important;
    font-size: 14px !important;
}

/* N-526: строка «Показано N из M» набиралась двумя гарнитурами —
   сам абзац Manrope 10, а число внутри наследовало Tektur 16 от
   правила уровня `#poisk-results *` боевого домена. Приводим всю
   строку к кеглю и гарнитуре «Уточняйте цену»: Manrope 14/700.
   Селектор поднят до уровня id: в zt-redesign.css гарнитуру держит
   `body :not(i):not(...)` с !important и весом 0-2-3, который
   перебивает правило из двух классов. */
/* N-713, 04.09.2026: заказчик — «тут шрифт как на складе и под заказ».
   Берём значения ярлыка наличия .poisk-product__stock: Tektur 12/750,
   интерлиньяж 1,2. Прежние Manrope 14/700 (правка N-526) отменены. */
#poisk-results .poisk-filters__result-count,
#poisk-results .poisk-filters__result-count span {
    color: #75859a;
    font-family: var(--zt-font, "Tektur", "Inter", Arial, sans-serif) !important;
    font-size: 12px !important;
    font-weight: 750 !important;
    line-height: 1.2 !important;
}

.poisk-results .poisk-filters__result-count {
    margin: 11px 0 0;
    text-align: center;
}

/* Переключение видов: показываем ровно один список.
   Специфичность подобрана выше блока «ZIPTEH v5» в poisk-results.css,
   где `.poisk-results .catalog-section .poisk-results__list > .items`
   держит `display: block !important` независимо от классов вида. */
.poisk-results .catalog-section .poisk-results__list.zt-view-cards > .items {
    display: none !important;
}

.poisk-results .catalog-section .poisk-results__list.zt-view-cards > .zt-catalog-grid {
    display: grid !important;
}

.poisk-results .catalog-section .poisk-results__list.zt-view-lines > .zt-catalog-grid {
    display: none !important;
}

/* Кнопки переключателя в тулбаре. */
.poisk-results__view {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px;
    border: 1px solid var(--znh-line, #e3e5e5);
    border-radius: 10px;
    background: #fff;
}

.poisk-results__view-button {
    width: 38px;
    height: 34px;
    display: inline-grid;
    place-items: center;
    padding: 0;
    border: 0;
    border-radius: 7px;
    color: #6b7480;
    background: transparent;
    cursor: pointer;
    transition: background 160ms ease, color 160ms ease;
}

.poisk-results__view-button svg {
    width: 18px;
    height: 18px;
    fill: currentColor;
}

.poisk-results__view-button:hover { color: #333a43; background: #f4f5f7; }

.poisk-results__view-button[aria-pressed="true"] {
    color: #333a43;
    background: #ffb800;
}

.poisk-results__view-button:focus-visible {
    outline: 2px solid #175cd3;
    outline-offset: 2px;
}

/* ---------------------------------------------------------
   Ниже — карточка, перенесённая из принятого модуля главной.
   Файл собирается скриптом Редизайн/Инструменты/generate-catalog-grid-css.py
   из четырёх источников; правила руками не редактировать.
   --------------------------------------------------------- */

/* ---- из sale-products.css — 74 правил ---- */

.poisk-results .zt-catalog-grid .zt-product-card {
    min-width: 0;
    height: auto;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    color: #1e2428;
    background: #fff;
    border: 1px solid #e3e5e5;
    border-radius: 8px;
    box-shadow: none;
    transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}

.poisk-results .zt-catalog-grid .zt-product-card:hover {
    border-color: #d6d8d8;
    box-shadow: 0 10px 26px rgba(33, 39, 43, .07);
    transform: translateY(-3px);
}

.poisk-results .zt-catalog-grid .zt-product-card__media {
    position: relative;
    padding: 12px 12px 0;
    background: #fff;
}

.poisk-results .zt-catalog-grid .zt-product-card__badge {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 2;
    min-height: 22px;
    padding: 0 8px;
    display: inline-flex;
    align-items: center;
    color: #fff;
    background: #ffb600;
    border-radius: 8px;
    font: 800 9px/1 var(--zt-font, Arial, Helvetica, sans-serif);
    letter-spacing: .01em;
}

.poisk-results .zt-catalog-grid .zt-product-card--new .zt-product-card__badge {
    color: #256d40;
    background: #dff5e6;
}

.poisk-results .zt-catalog-grid .zt-product-card--hit .zt-product-card__badge {
    color: #8a6200;
    background: #ffeab1;
}

.poisk-results .zt-catalog-grid .zt-product-card__image {
    width: 100%;
    aspect-ratio: 1.18 / 1;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    color: inherit;
    background: #fff;
    text-decoration: none;
}

.poisk-results .zt-catalog-grid .zt-product-card__image img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
    transition: transform .28s ease;
}

.poisk-results .zt-catalog-grid .zt-product-card:hover .zt-product-card__image img {
    transform: scale(1.035);
}

.poisk-results .zt-catalog-grid .zt-product-card__placeholder {
    width: 100%;
    height: 100%;
    display: grid;
    place-items: center;
    color: #929aa1;
    background: linear-gradient(135deg, #fbfbfb, #f1f2f1);
}

.poisk-results .zt-catalog-grid .zt-product-card__placeholder svg {
    width: 52px;
    height: 52px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.4;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.poisk-results .zt-catalog-grid .zt-product-card__body {
    min-height: 218px;
    padding: 9px 13px 13px;
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
}

.poisk-results .zt-catalog-grid .zt-product-card__article {
    margin-bottom: 5px;
    overflow: hidden;
    color: #252a2e;
    /* П-5: вес 700 вместо 800. Заодно снят Arial из шортката —
       последнее место, где артикул рисовался не шрифтом сайта. */
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.poisk-results .zt-catalog-grid .zt-product-card__name {
    min-height: 34px;
    margin: 0 0 8px !important;
    font-family: var(--zt-font, 'Inter', Arial, Helvetica, sans-serif) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    line-height: 1.38 !important;
    text-transform: none !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__name a {
    display: -webkit-box;
    overflow: hidden;
    color: #3d454a !important;
    text-decoration: none !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.poisk-results .zt-catalog-grid .zt-product-card__stock {
    margin-bottom: 11px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #46995f;
    font: 500 10px/1 var(--zt-font, Arial, Helvetica, sans-serif);
}

.poisk-results .zt-catalog-grid .zt-product-card__stock span {
    width: 6px;
    height: 6px;
    flex: 0 0 6px;
    background: currentColor;
    border-radius: 50%;
}

.poisk-results .zt-catalog-grid .zt-product-card__stock.is-order {
    color: #8a6200;
}

.poisk-results .zt-catalog-grid .zt-product-card__prices {
    min-height: 37px;
    margin-top: auto;
    display: flex;
    align-items: flex-end;
    gap: 9px;
}

.poisk-results .zt-catalog-grid .zt-product-card__old-price {
    padding-bottom: 2px;
    color: #9ea3a6;
    font: 500 10px/1 var(--zt-font, Arial, Helvetica, sans-serif);
    text-decoration: line-through;
    white-space: nowrap;
}

.poisk-results .zt-catalog-grid .zt-product-card__price {
    color: #1c2226;
    font: 800 17px/1.05 var(--zt-font, Arial, Helvetica, sans-serif);
    white-space: nowrap;
}

.poisk-results .zt-catalog-grid .zt-product-card__price--request {
    font-size: 14px;
    white-space: normal;
}

.poisk-results .zt-catalog-grid .zt-product-card__buttons {
    margin-top: 11px;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 34px;
    gap: 8px;
}

.poisk-results .zt-catalog-grid .zt-product-card__cart {
    min-width: 0;
    min-height: 34px;
    padding: 0 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #333a43 !important;
    /* N-209: тот же фирменный жёлтый, что у акцента
       «НАДЁЖНЫЙ ПАРТНЁР» в модуле «О компании». */
    background: var(--zt-products-yellow, #ffb800);
    border: 0;
    border-radius: 8px;
    font: 800 11px/1 var(--zt-font, Arial, Helvetica, sans-serif);
    text-align: center;
    text-decoration: none !important;
    cursor: pointer;
    transition: background-color .18s ease, color .18s ease;
}

.poisk-results .zt-catalog-grid .zt-product-card__cart:hover {
    background: var(--zt-products-yellow, #ffb800);
}

.poisk-results .zt-catalog-grid .zt-product-card__cart-success {
    display: none;
}

.poisk-results .zt-catalog-grid .zt-product-card__cart.is-loading {
    cursor: wait;
    opacity: .65;
}

.poisk-results .zt-catalog-grid .zt-product-card__cart.is-added {
    color: #fff !important;
    background: #3f9b60;
}

.poisk-results .zt-catalog-grid .zt-product-card__cart.is-added .zt-product-card__cart-label {
    display: none;
}

.poisk-results .zt-catalog-grid .zt-product-card__cart.is-added .zt-product-card__cart-success {
    display: inline;
}

.poisk-results .zt-catalog-grid .zt-product-card__cart.is-error {
    color: #fff !important;
    background: #bd4d45;
}

.poisk-results .zt-catalog-grid .zt-product-card__more {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    color: #737a7e !important;
    background: #fff;
    border: 1px solid #dfe2e2;
    border-radius: 8px;
    text-decoration: none !important;
    transition: color .18s ease, border-color .18s ease, background-color .18s ease;
}

.poisk-results .zt-catalog-grid .zt-product-card__more:hover {
    color: #333a43 !important;
    background: #f5f5f4;
    border-color: #cfd2d2;
}

.poisk-results .zt-catalog-grid .zt-product-card__more svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@media (max-width: 680px) {
    .poisk-results .zt-catalog-grid .zt-product-card__body {
            min-height: 210px;
            }
}

.poisk-results .zt-catalog-grid .zt-product-card__media {
    padding: 0 !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__image img {
    object-fit: cover !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__badge {
    top: 10px !important;
    left: 10px !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__price {
    text-align: right;
}

.poisk-results .zt-catalog-grid .zt-product-card__image {
    position: relative;
}

.poisk-results .zt-catalog-grid .zt-product-card__dots {
    position: absolute;
    right: 0;
    bottom: 5px;
    left: 0;
    z-index: 3;
    display: flex;
    justify-content: center;
    gap: 4px;
    pointer-events: none;
}

.poisk-results .zt-catalog-grid .zt-product-card__dots i {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: rgba(21, 26, 30, .25);
}

.poisk-results .zt-catalog-grid .zt-product-card__dots i.is-active {
    background: #ffb800;
}

.poisk-results .zt-catalog-grid .zt-product-card__cart {
    position: relative;
    overflow: hidden;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
}

.poisk-results .zt-catalog-grid .zt-product-card__cart-icon {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    transition: transform .3s cubic-bezier(.25, 1, .5, 1), opacity .2s ease;
}

.poisk-results .zt-catalog-grid .zt-product-card__cart-icon svg {
    width: 18px;
    height: 18px;
    fill: none;
    /* Корзинка чёрная и до нажатия — #333a43 читался серым */
    stroke: #000;
    stroke-width: 2.4;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.poisk-results .zt-catalog-grid .zt-product-card__cart:hover .zt-product-card__cart-icon {
    animation: zt-cart-hop .5s cubic-bezier(.25, 1, .5, 1);
}

.poisk-results .zt-catalog-grid .zt-product-card__cart.is-loading .zt-product-card__cart-icon,
.poisk-results .zt-catalog-grid .zt-product-card__cart.is-added .zt-product-card__cart-icon,
.poisk-results .zt-catalog-grid .zt-product-card__cart.is-error .zt-product-card__cart-icon {
    opacity: 0;
}

.poisk-results .zt-catalog-grid .zt-product-card__favorite {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 4;
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    padding: 0;
    color: #6b747c;
    background: rgba(255, 255, 255, .92);
    border: 1px solid #e3e5e5;
    border-radius: 50%;
    cursor: pointer;
    transition: color .18s ease, background-color .18s ease, border-color .18s ease, transform .18s ease;
}

.poisk-results .zt-catalog-grid .zt-product-card__favorite svg {
    width: 17px;
    height: 17px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: fill .18s ease;
}

.poisk-results .zt-catalog-grid .zt-product-card__favorite:hover {
    color: #151a1e;
    border-color: #ffb800;
    transform: scale(1.06);
}

.poisk-results .zt-catalog-grid .zt-product-card__favorite.is-active {
    color: #fff;
    background: #ffb800;
    border-color: #ffb800;
}

.poisk-results .zt-catalog-grid .zt-product-card__favorite.is-active svg {
    fill: currentColor;
}

@media (prefers-reduced-motion: reduce) {
    .poisk-results .zt-catalog-grid .zt-product-card__cart-blob,
    .poisk-results .zt-catalog-grid .zt-product-card__cart-blob svg,
    .poisk-results .zt-catalog-grid .zt-product-card__favorite {
            transition: none;
            }
}

@media (prefers-reduced-motion: reduce) {
    .poisk-results .zt-catalog-grid .zt-product-card__cart-qty,
    .poisk-results .zt-catalog-grid .zt-product-card__qty-confirm {
            transition: none;
            }
}

.poisk-results .zt-catalog-grid .zt-product-card__id-row {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
    min-width: 0;
}

.poisk-results .zt-catalog-grid .zt-product-card__maker {
    flex: 0 1 auto;
    overflow: hidden;
    color: #8a939b;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.poisk-results .zt-catalog-grid .zt-product-card__avail {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-left: auto;
    color: #23a05a;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}

.poisk-results .zt-catalog-grid .zt-product-card__avail i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #2eb968;
}

.poisk-results .zt-catalog-grid .zt-product-card__avail--order {
    color: #98a1a9;
}

.poisk-results .zt-catalog-grid .zt-product-card__avail--order i {
    background: #b9c0c6;
}

.poisk-results .zt-catalog-grid .zt-product-card__purchase {
    display: flex;
    flex: 1 1 auto;
    align-items: stretch;
    gap: 6px;
    width: 100%;
    min-width: 0;
}

.poisk-results .zt-catalog-grid .zt-product-card__purchase .zt-product-card__stepper,
.poisk-results .zt-catalog-grid .zt-product-card__purchase .zt-product-card__cart {
    height: 42px !important;
    min-height: 42px !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    align-self: center;
}

.poisk-results .zt-catalog-grid .zt-product-card__stepper {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    background: #fff;
    border: 1px solid #dfe3e7;
    border-radius: 8px;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.poisk-results .zt-catalog-grid .zt-product-card__purchase.is-in-basket .zt-product-card__stepper {
    border-color: #ffb800;
    box-shadow: 0 0 0 1px #ffb800;
}

.poisk-results .zt-catalog-grid .zt-product-card__step-btn {
    display: grid;
    place-items: center;
    width: 28px;
    height: 100%;
    min-height: 40px;
    padding: 0;
    color: #333a43;
    font-size: 16px;
    font-weight: 700;
    line-height: 1;
    background: transparent;
    border: 0;
    cursor: pointer;
    transition: color .15s ease, background-color .15s ease;
}

.poisk-results .zt-catalog-grid .zt-product-card__step-btn:hover {
    color: #111820;
    background: transparent;
}

.poisk-results .zt-catalog-grid .zt-product-card__step-value {
    min-width: 24px;
    color: #1e2428;
    font-size: 14px;
    font-weight: 700;
    text-align: center;
}

.poisk-results .zt-catalog-grid .zt-product-card__purchase .zt-product-card__cart {
    flex: 1 1 auto;
    width: auto;
    min-width: 0;
}

.poisk-results .zt-catalog-grid .zt-product-card__purchase.is-in-basket .zt-product-card__cart {
    color: #1d9d54 !important;
    background: #fff !important;
    /* обводка один в один со степпером: рамка 1px + тень 1px */
    border: 1px solid #ffb800 !important;
    box-shadow: 0 0 0 1px #ffb800 !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__purchase.is-in-basket .zt-product-card__cart:hover {
    background: #fff !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__purchase.is-in-basket .zt-product-card__cart:hover .zt-product-card__cart-icon {
    animation: none;
}

.poisk-results .zt-catalog-grid .zt-product-card__purchase.is-in-basket .zt-product-card__cart-label,
.poisk-results .zt-catalog-grid .zt-product-card__purchase.is-in-basket .zt-product-card__cart-icon {
    color: #1d9d54 !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__purchase.is-in-basket .zt-product-card__cart-svg-cart {
    /* N-140/N-141: корзинка в состоянии «N в корзине» — чёрная
       (была жёлтая по N-135, заказчик передумал) */
    stroke: #000 !important;
}

/* ---- из zt-redesign.css — 3 правил ---- */

.poisk-results .zt-catalog-grid .zt-product-card__name,
.poisk-results .zt-catalog-grid .zt-product-card__article,
.poisk-results .zt-catalog-grid .zt-product-card__article-mobile {
    overflow-wrap: anywhere;
}

.poisk-results .zt-catalog-grid.zt-sale-products .zt-product-card__cart,
.poisk-results .zt-catalog-grid.zt-sale-products .zt-product-card__buttons .zt-product-card__cart {
    width: 100% !important;
    flex: 1 1 auto !important;
}

.poisk-results .zt-catalog-grid.zt-sale-products .zt-product-card__buttons {
    width: 100% !important;
    display: flex !important;
}

/* ---- из zt-home-unify.css — 42 правил ---- */

.poisk-results .zt-catalog-grid .zt-product-card__name,
.poisk-results .zt-catalog-grid .zt-product-card__name a {
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1.35 !important;
    color: var(--zt-ink) !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__name,
.poisk-results .zt-catalog-grid .zt-product-card__name a,
.poisk-results .zt-catalog-grid .zt-product-card * {
    font-family: var(--zt-font, 'Inter', Arial, sans-serif) !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__cart {
    background-color: var(--zt-yellow, #FFB800) !important;
    color: #1A1A1A !important;
    border-radius: var(--zt-radius-btn) !important;
    font-weight: 700 !important;
    border-color: var(--zt-yellow, #FFB800) !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__cart:hover {
    background-color: var(--zt-yellow-hover, #E8A600) !important;
    color: #1A1A1A !important;
}

.poisk-results .zt-catalog-grid .zt-product-card {
    border-radius: var(--zt-radius-card) !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__cart {
    min-height: var(--zt-btn-h-sm) !important;
    height: auto !important;
    padding: 0 var(--zt-btn-pad-sm) !important;
    font-size: var(--zt-btn-fs-sm) !important;
    font-weight: var(--zt-btn-weight) !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    border-radius: var(--zt-radius-btn, 8px) !important;
    border: 1px solid var(--zt-yellow, #FFB800) !important;
    background-color: var(--zt-yellow, #FFB800) !important;
    color: #1A1A1A !important;
    -webkit-text-fill-color: #1A1A1A !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__more {
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    /* N-027…N-035 (06.08.2026): квадрат со скруглением вместо круга —
       единый стиль стрелок каруселей по указанию заказчика */
    border-radius: 10px !important;
    border: 1px solid #E3E6E9 !important;
    background-color: #FFFFFF !important;
    color: #333A43 !important;
    box-shadow: none !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__more:hover {
    border-color: var(--zt-yellow, #FFB800) !important;
}

@media (max-width: 1023px) {
    .poisk-results .zt-catalog-grid .zt-product-card__cart {
            min-height: 44px !important;
            }
}

.poisk-results .zt-catalog-grid .zt-product-card__cart {
    color: #1A1A1A !important;
    -webkit-text-fill-color: #1A1A1A !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__cart {
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__image img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    object-fit: contain;
}

.poisk-results .zt-catalog-grid .zt-product-card__article,
.poisk-results .zt-catalog-grid .zt-product-card__article-mobile,
.poisk-results .zt-catalog-grid .zt-product-card__brand,
.poisk-results .zt-catalog-grid .zt-product-card__stock,
.poisk-results .zt-catalog-grid .zt-product-card__property-label,
.poisk-results .zt-catalog-grid .zt-product-card__client-price-label,
.poisk-results .zt-catalog-grid .zt-product-card__added,
.poisk-results .zt-catalog-grid .zt-product-card__image-label {
    font-size: 12px !important;
    line-height: 1.35 !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__price {
    /* N-097 → N-111: цена ещё заметнее */
    font-size: 24px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__prices {
    flex-direction: row !important;
    justify-content: flex-end !important;
    align-items: baseline !important;
    gap: 8px !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__old-price {
    margin: 0 !important;
    font-size: 13px !important;
    line-height: 1.2 !important;
    text-decoration: line-through;
    white-space: nowrap;
}

.poisk-results .zt-catalog-grid .zt-product-card__prices .zt-product-card__price--request,
.poisk-results .zt-catalog-grid .zt-product-card__price.zt-product-card__price--request {
    font-size: 13px !important;
    text-align: right;
}

.poisk-results .zt-catalog-grid .zt-product-card {
    display: flex !important;
    flex-direction: column !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__name {
    min-height: 2.7em !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__cart,
.poisk-results .zt-catalog-grid .zt-product-card [class*="__footer"],
.poisk-results .zt-catalog-grid .zt-product-card [class*="__actions"] {
    margin-top: auto !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__badge {
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    padding: 3px 8px !important;
    border-radius: 6px !important;
}

@media (max-width: 1023px) {
    .poisk-results .zt-catalog-grid .zt-product-card__more {
            width: 44px !important;
            height: 44px !important;
            min-width: 44px !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__name a,
    .poisk-results .zt-catalog-grid .zt-product-card a[class*="__image"] {
            display: block !important;
            min-height: 44px !important;
            }
}

.poisk-results .zt-catalog-grid .zt-product-card img[src*="c79c3kq4tn43rcwt3zz3w71z2xilkbe5"],
.poisk-results .zt-catalog-grid .zt-product-card img[src*="4ziinx151auz9aqegxadaywaj6uq5f5l"] {
    content: url("/local/templates/zipteh/assets/images/product-placeholder.svg") !important;
    object-fit: contain !important;
    background: #F6F7F8 !important;
    width: 100% !important;
    height: 100% !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__cart {
    transition: background-color .18s ease, border-color .18s ease,
                color .18s ease, transform .12s ease !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__cart:active {
    transform: scale(.985) !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__cart:focus-visible {
    outline: 3px solid #1A1A1A !important;
    outline-offset: 3px !important;
    outline-style: solid !important;
}

.poisk-results .zt-catalog-grid .swiper-slide.zt-product-card {
    height: auto !important;
    align-self: stretch !important;
}

.poisk-results .zt-catalog-grid.zt-sale-products .zt-product-card__cart {
    font-size: 14px !important;
    font-weight: 600 !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__cart .zt-product-card__cart-label,
.poisk-results .zt-catalog-grid .zt-product-card__cart .zt-product-card__cart-success {
    font-size: inherit !important;
    font-weight: inherit !important;
    letter-spacing: inherit !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__badge {
    text-transform: uppercase !important;
    letter-spacing: .05em !important;
}

@media (max-width: 680px) {
    .poisk-results .zt-catalog-grid .zt-product-card__price:not([class*="label"]) {
            font-size: 18px !important;
            }
}

.poisk-results .zt-catalog-grid .zt-product-card__id-row .zt-product-card__article,
.poisk-results .zt-catalog-grid .zt-product-card__article {
    margin: 0 !important;
    /* двойной селектор: инлайн модуля красит артикул в muted
       с той же специфичностью — перебиваем связкой id-row */
    color: #1e2428 !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    letter-spacing: .01em;
}

.poisk-results .zt-catalog-grid .zt-product-card__name:not(#zt_):not(#zt_),
.poisk-results .zt-catalog-grid .zt-product-card__name:not(#zt_):not(#zt_) a {
    color: #6b747c !important;
    /* двойной :not(#zt_) — иначе шрифтовой слой заголовков
       (body h3:not(#zt_):not(#zt_) → Russo One) сильнее */
    font-family: var(--zt-font-badge, 'Manrope', Arial, sans-serif) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    line-height: 1.4 !important;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.poisk-results .zt-catalog-grid .zt-product-card__prices {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 0 8px !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__old-price {
    grid-column: 1;
    order: -1;
    margin: 0 !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__price:not([class*="request"]) {
    grid-column: 1;
    margin-left: 0 !important;
    text-align: left !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__avail {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: center;
    margin-left: 0 !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__body {
    min-height: 0 !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__prices {
    margin: 10px 0 0 !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__buttons {
    margin-top: 10px !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__name:not(#zt_):not(#zt_) {
    display: -webkit-box !important;
    overflow: hidden !important;
    max-height: 32px;
    margin: 7px 0 0 !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

/* ---- из sale-products.php — 105 правил ---- */

.poisk-results .zt-catalog-grid .zt-product-card,
.poisk-results .zt-catalog-grid .zt-product-card a,
.poisk-results .zt-catalog-grid .zt-product-card button {
    font-family: inherit !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__article,
.poisk-results .zt-catalog-grid .zt-product-card__stock,
.poisk-results .zt-catalog-grid .zt-product-card__old-price {
    color: var(--zt-products-muted) !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__mobile-meta,
.poisk-results .zt-catalog-grid .zt-product-card__mobile-brand {
    display: none;
}

.poisk-results .zt-catalog-grid .zt-product-card__name,
.poisk-results .zt-catalog-grid .zt-product-card__name a,
.poisk-results .zt-catalog-grid .zt-product-card__price {
    color: var(--zt-products-text) !important;
}

@media (max-width: 680px) {
    .poisk-results .zt-catalog-grid .zt-product-card.swiper-slide {
            height: auto !important;
            min-height: 0 !important;
            align-self: stretch !important;
            display: flex !important;
            flex-direction: column !important;
            align-items: stretch !important;
            overflow: hidden !important;
            padding: 8px !important;
            border: 1px solid var(--zt-products-border) !important;
            border-radius: 12px !important;
            background: var(--zt-products-surface) !important;
            box-shadow: none !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__media {
            position: relative;
            width: 100% !important;
            min-width: 0 !important;
            height: 112px !important;
            min-height: 112px !important;
            margin: 0 !important;
            padding: 0 !important;
            overflow: hidden;
            border-radius: 8px !important;
            background: #f7f7f7 !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__image {
            width: 100% !important;
            height: 112px !important;
            min-height: 112px !important;
            display: flex !important;
            align-items: center !important;
            justify-content: center !important;
            padding: 8px !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__image img {
            width: 100% !important;
            height: 100% !important;
            max-width: 118px !important;
            max-height: 94px !important;
            object-fit: contain !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__badge {
            top: 6px !important;
            left: 6px !important;
            z-index: 3;
            min-height: 19px !important;
            padding: 0 6px !important;
            border-radius: 8px !important;
            font-size: 12px !important;
            font-weight: 700 !important;
            line-height: 19px !important;
            /* П-4: капс через CSS, в данных обычный регистр */
        text-transform: uppercase;
        letter-spacing: .05em;
        }

    .poisk-results .zt-catalog-grid .zt-product-card__body {
            min-width: 0;
            min-height: 0 !important;
            height: auto !important;
            /* Растягиваем тело на остаток высоты карточки: иначе внизу
               оставалась пустота, а кнопка «В корзину» висела в воздухе
               на разной высоте у соседних карточек. */
            flex: 1 1 auto !important;
            display: flex !important;
            flex-direction: column !important;
            padding: 8px 1px 0 !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__article {
            display: none !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__mobile-meta {
            width: 100%;
            min-width: 0;
            margin: 0 0 3px !important;
            display: block !important;
            overflow: hidden;
            color: var(--zt-products-muted) !important;
            font-size: 12px !important;
            font-weight: 500 !important;
            line-height: 1.2 !important;
            text-overflow: ellipsis;
            white-space: nowrap;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__article-mobile {
            display: block;
            min-width: 0;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__name {
            /* Ровно две строки, а не «до двух»: в em, чтобы высота
               не разъезжалась при смене кегля. Иначе однострочное
               название делало карточку короче, и цена у соседей
               вставала на разной высоте (разброс 81 px на 390). */
            min-height: 2.6em !important;
            height: 2.6em !important;
            margin: 0 0 2px !important;
            overflow: hidden;
            font-size: 12px !important;
            font-weight: 600 !important;
            line-height: 1.3 !important;
            display: -webkit-box !important;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__name a {
            font-size: inherit !important;
            font-weight: inherit !important;
            line-height: inherit !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__mobile-brand {
            min-width: 0;
            margin: 0 0 2px !important;
            display: block !important;
            overflow: hidden;
            color: var(--zt-products-muted) !important;
            font-size: 12px !important;
            font-weight: 500 !important;
            line-height: 1.2 !important;
            text-overflow: ellipsis;
            white-space: nowrap;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__stock {
            min-width: 0;
            margin: 0 0 2px !important;
            overflow: hidden;
            font-size: 12px !important;
            line-height: 1.2 !important;
            text-overflow: ellipsis;
            white-space: nowrap;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__stock > span {
            width: 5px !important;
            height: 5px !important;
            margin-right: 4px !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__prices {
            min-height: 0 !important;
            margin-top: -1px !important;
            margin-bottom: 4px !important;
            display: flex !important;
            flex-direction: column !important;
            justify-content: flex-start !important;
            gap: 1px !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__old-price {
            font-size: 12px !important;
            line-height: 1.1 !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__price {
            font-size: 16px !important;
            font-weight: 700 !important;
            line-height: 1.1 !important;
            white-space: nowrap;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__price--request {
            font-size: 12px !important;
            white-space: normal;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__buttons {
            display: grid !important;
            /* Одна колонка: вторая была под кнопку-стрелку, которую
               запрещает ТЗ §8.7 и которая удалена из разметки. */
            grid-template-columns: minmax(0, 1fr) !important;
            gap: 5px !important;
            /* Прижимаем к нижнему краю карточки — ТЗ, критерий 14 */
            margin: auto 0 0 !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__cart,
    .poisk-results .zt-catalog-grid .zt-product-card__more {
            min-height: 44px !important;
            height: 44px !important;
            border-radius: 8px !important;
            box-shadow: none !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__cart {
            min-width: 0;
            padding: 0 6px !important;
            overflow: hidden;
            color: var(--zt-products-text) !important;
            font-size: 12px !important;
            font-weight: 600 !important;
            line-height: 30px !important;
            text-overflow: ellipsis;
            white-space: nowrap;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__more {
            width: 44px !important;
            min-width: 44px !important;
            padding: 0 !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__more svg {
            width: 14px !important;
            height: 14px !important;
            }
}

@media (max-width: 380px) {
    .poisk-results .zt-catalog-grid .zt-product-card.swiper-slide {
            height: auto !important;
            min-height: 0 !important;
            padding: 7px !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__media,
    .poisk-results .zt-catalog-grid .zt-product-card__image {
            height: 102px !important;
            min-height: 102px !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__image img {
            max-height: 86px !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__body {
            padding-top: 7px !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__price {
            font-size: 14px !important;
            }
}

@media (min-width: 1281px) and (max-width: 1599px) {
    .poisk-results .zt-catalog-grid .zt-product-card__cart-icon {
            display: none !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__cart {
            justify-content: center !important;
            gap: 0 !important;
            text-align: center !important;
            }
}

@media (max-width: 1100px) {
    .poisk-results .zt-catalog-grid .zt-product-card__cart-label {
            display: none !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__purchase.is-in-basket .zt-product-card__cart-label,
    .poisk-results .zt-catalog-grid .zt-product-card__cart.is-loading .zt-product-card__cart-label,
    .poisk-results .zt-catalog-grid .zt-product-card__cart.is-error .zt-product-card__cart-label {
            display: inline !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__purchase.is-in-basket .zt-product-card__cart-icon {
            display: grid !important;
            opacity: 1 !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__cart {
            justify-content: center !important;
            gap: 5px !important;
            text-align: center !important;
            }
}

@media (max-width: 680px) {
    .poisk-results .zt-catalog-grid .zt-product-card__image img {
            display: block !important;
            margin: auto !important;
            object-position: center center !important;
            transform: none !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__favorite {
            top: 6px !important;
            }
}

@media (min-width: 381px) and (max-width: 680px) {
    .poisk-results .zt-catalog-grid .zt-product-card__mobile-meta,
    .poisk-results .zt-catalog-grid .zt-product-card__mobile-brand {
            display: none !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__id-row {
            display: flex !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__article {
            display: block !important;
            min-width: 0;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__prices {
            display: grid !important;
            grid-template-columns: minmax(0, 1fr) auto !important;
            grid-template-rows: auto auto !important;
            align-items: end !important;
            gap: 1px 6px !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__old-price {
            grid-column: 2;
            grid-row: 1;
            justify-self: end;
            padding-bottom: 0 !important;
            text-align: right;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__price {
            grid-column: 2;
            grid-row: 2;
            justify-self: end;
            text-align: right;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__avail {
            grid-column: 1;
            grid-row: 1 / 3;
            align-self: end;
            justify-self: start;
            margin: 0 !important;
            text-align: left;
            }
}

@media (max-width: 380px) {
    .poisk-results .zt-catalog-grid .zt-product-card__badge {
            min-height: 16px !important;
            padding: 0 4px !important;
            border-radius: 6px !important;
            font-size: 10px !important;
            line-height: 16px !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__id-row,
    .poisk-results .zt-catalog-grid .zt-product-card__maker,
    .poisk-results .zt-catalog-grid .zt-product-card__mobile-brand {
            display: none !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__prices {
            display: grid !important;
            grid-template-columns: auto minmax(0, 1fr) !important;
            grid-template-rows: auto auto !important;
            align-items: end !important;
            gap: 1px 5px !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__old-price {
            grid-column: 1;
            grid-row: 1;
            justify-self: start;
            padding-bottom: 0 !important;
            text-align: left;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__price {
            grid-column: 1;
            grid-row: 2;
            justify-self: start;
            text-align: left;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__avail {
            grid-column: 2;
            grid-row: 1 / 3;
            align-self: end;
            justify-self: end;
            margin: 0 !important;
            text-align: right;
            }
}

@media (min-width: 681px) and (max-width: 800px) {
    .poisk-results .zt-catalog-grid .zt-product-card {
            position: relative;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__avail {
            position: absolute !important;
            top: 37px !important;
            left: 10px !important;
            z-index: 4;
            margin: 0 !important;
            }
}

@media (max-width: 680px) {
    .poisk-results .zt-catalog-grid .zt-product-card {
            position: relative;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__avail {
            position: absolute !important;
            top: 38px !important;
            left: 14px !important;
            z-index: 4;
            grid-column: auto !important;
            grid-row: auto !important;
            margin: 0 !important;
            text-align: left !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__favorite {
            top: 6px !important;
            right: 6px !important;
            width: 19px !important;
            height: 19px !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__favorite svg {
            width: 14px !important;
            height: 14px !important;
            }
}

@media (max-width: 380px) {
    .poisk-results .zt-catalog-grid .zt-product-card__avail {
            top: 34px !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__favorite,
    .poisk-results .zt-catalog-grid .zt-product-card__favorite:hover,
    .poisk-results .zt-catalog-grid .zt-product-card__favorite.is-active {
            width: 16px !important;
            height: 16px !important;
            color: #6b747c !important;
            background: transparent !important;
            border: 0 !important;
            border-radius: 0 !important;
            box-shadow: none !important;
            transform: none !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__favorite.is-active {
            color: var(--zt-products-yellow) !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__favorite svg {
            width: 16px !important;
            height: 16px !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__old-price {
            display: none !important;
            }
}

@media (min-width: 681px) and (max-width: 800px) {
    .poisk-results .zt-catalog-grid .zt-product-card.swiper-slide {
            min-height: 355px !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__prices {
            display: grid !important;
            grid-template-columns: minmax(0, 1fr) auto !important;
            grid-template-rows: auto auto !important;
            align-items: end !important;
            gap: 3px 6px !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__old-price {
            grid-column: 1;
            grid-row: 1;
            justify-self: start;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__price {
            grid-column: 1 / 3;
            grid-row: 2;
            justify-self: start;
            text-align: left;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__avail {
            position: static !important;
            grid-column: 2;
            grid-row: 1;
            justify-self: end;
            align-self: end;
            margin: 0 !important;
            text-align: right !important;
            }
}

@media (min-width: 381px) and (max-width: 680px) {
    .poisk-results .zt-catalog-grid .zt-product-card.swiper-slide {
            min-height: 272px !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__avail {
            display: none !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__price {
            justify-self: end !important;
            text-align: right !important;
            }
}

@media (max-width: 380px) {
    .poisk-results .zt-catalog-grid .zt-product-card.swiper-slide {
            min-height: 260px !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__avail {
            position: absolute !important;
            top: 113px !important;
            right: 8px !important;
            left: auto !important;
            display: flex !important;
            justify-content: flex-end;
            text-align: right !important;
            }
}

@media (min-width: 681px) and (max-width: 800px) {
    .poisk-results .zt-catalog-grid .zt-product-card__purchase {
            gap: 4px !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__stepper {
            width: 66px !important;
            flex: 0 0 66px !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__step-btn {
            width: 22px !important;
            flex: 0 0 22px !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__step-value {
            min-width: 20px !important;
            font-size: 13px !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__cart {
            gap: 4px !important;
            padding-right: 4px !important;
            padding-left: 4px !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__cart-label {
            white-space: nowrap !important;
            }
}

@media (min-width: 381px) and (max-width: 680px) {
    .poisk-results .zt-catalog-grid .zt-product-card__favorite,
    .poisk-results .zt-catalog-grid .zt-product-card__favorite:hover,
    .poisk-results .zt-catalog-grid .zt-product-card__favorite.is-active {
            color: #6b747c !important;
            background: transparent !important;
            border: 0 !important;
            border-radius: 0 !important;
            box-shadow: none !important;
            transform: none !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__favorite.is-active {
            color: var(--zt-products-yellow) !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__favorite svg {
            width: 19px !important;
            height: 19px !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__old-price {
            display: none !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__prices {
            margin-top: auto !important;
            margin-bottom: 6px !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__buttons {
            margin-top: 0 !important;
            }
}

@media (max-width: 380px) {
    .poisk-results .zt-catalog-grid .zt-product-card__avail {
            display: none !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__mobile-brand {
            display: block !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__prices {
            margin-top: auto !important;
            margin-bottom: 6px !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__buttons {
            margin-top: 0 !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__purchase.is-in-basket .zt-product-card__cart-label {
            width: 16px;
            display: inline-flex !important;
            align-items: center;
            justify-content: center;
            overflow: visible;
            font-size: 0 !important;
            line-height: 1;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__purchase.is-in-basket .zt-product-card__cart-label::after {
            content: "→";
            color: currentColor;
            font-size: 18px;
            font-weight: 800;
            line-height: 1;
            }
}

@media (max-width: 680px) {
    .poisk-results .zt-catalog-grid .zt-product-card__favorite.is-active,
    .poisk-results .zt-catalog-grid .zt-product-card__favorite.is-active:hover {
            color: var(--zt-products-yellow) !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__favorite.is-active svg,
    .poisk-results .zt-catalog-grid .zt-product-card__favorite.is-active svg path {
            color: var(--zt-products-yellow) !important;
            fill: currentColor !important;
            stroke: currentColor !important;
            }
}

@media (max-width: 380px) {
    .poisk-results .zt-catalog-grid .zt-product-card__mobile-brand {
            display: none !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__purchase.is-in-basket .zt-product-card__cart {
            gap: 2px !important;
            padding-right: 10px !important;
            padding-left: 10px !important;
            }
}

@media (min-width: 681px) and (max-width: 1100px) {
    .poisk-results .zt-catalog-grid .zt-product-card__cart {
            align-items: center !important;
            flex-wrap: nowrap !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__purchase.is-in-basket .zt-product-card__cart-icon,
    .poisk-results .zt-catalog-grid .zt-product-card__purchase.is-in-basket .zt-product-card__cart-label {
            flex: 0 0 auto !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__purchase.is-in-basket .zt-product-card__cart-label {
            display: inline-flex !important;
            align-items: center !important;
            line-height: 1 !important;
            white-space: nowrap !important;
            }
}

@media (min-width: 760px) {
    .poisk-results .zt-catalog-grid .zt-product-card__favorite.is-active,
    .poisk-results .zt-catalog-grid .zt-product-card__favorite.is-active:hover {
            color: var(--zt-products-yellow) !important;
            background: #fff !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__favorite.is-active {
            border-color: #e3e5e5 !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__favorite.is-active:hover {
            border-color: var(--zt-products-yellow) !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__favorite.is-active svg,
    .poisk-results .zt-catalog-grid .zt-product-card__favorite.is-active svg path {
            color: var(--zt-products-yellow) !important;
            fill: currentColor !important;
            stroke: currentColor !important;
            }
}

@media (min-width: 1600px) {
    .poisk-results .zt-catalog-grid .zt-product-card__favorite {
            display: grid !important;
            place-items: center !important;
            padding: 0 !important;
            }

    .poisk-results .zt-catalog-grid .zt-product-card__favorite svg {
            display: block !important;
            margin: 0 !important;
            transform: none !important;
            }
}
/* ---------------------------------------------------------
   Токены карточки — своей копией, а не в расчёте на соседей.

   Правила, перенесённые генератором, ссылаются на двенадцать
   переменных. На главной их задаёт inline-<style> модуля
   `sale-products.php` (`#ztSaleProducts { --zt-products-*: … }`)
   и файлы `zt-redesign.css` / `zt-home-unify.css`. Ни того,
   ни другого нет ни на `/catalog/`, ни в карточке товара —
   на бою `zt-redesign.css` и `zt-home-unify.css` вообще
   отдают 404 (проверено 01.09.2026). Селектор самих токенов
   не содержит `zt-product-card`, поэтому генератор его
   отбрасывает и переменные до этих файлов не доезжали:
   объявления с `var()` без запасного значения браузер
   отбрасывает молча.

   Значения сняты замером с принятого модуля на главной,
   поэтому плитка и блоки карточки товара выглядят так же
   и не зависят от порядка выкладки других позиций.
   --------------------------------------------------------- */

.poisk-results .zt-catalog-grid {
    --zt-products-yellow: #ffb800;
    --zt-products-text: #333a43;
    --zt-products-muted: #929aa1;
    --zt-products-border: #d9dee5;
    --zt-products-surface: #ffffff;
    --zt-ink: #333a43;
    --zt-radius-card: 12px;
    --zt-radius-btn: 8px;
    --zt-btn-h-sm: 40px;
    --zt-btn-pad-sm: 16px;
    --zt-btn-fs-sm: 13px;
    --zt-btn-weight: 700;
}


/* ---------------------------------------------------------
   Товары без цены — последним слоем.

   У принятого модуля уже есть свой вариант `--request`
   (`font-size: 13px !important`, специфичность 0-4-0), поэтому
   переопределение стоит здесь, ниже всех перенесённых правил,
   и повторяет ту же специфичность.

   По решению заказчика 01.09.2026 строка «Уточняйте цену»
   в раскладке карточек набирается кеглем и гарнитурой кнопки
   «В корзину»: 14 px / 600 / Manrope. Модификатор вешает
   catalog-view.js только там, где data-price пустой или нулевой.
   --------------------------------------------------------- */

.poisk-results .zt-catalog-grid .zt-product-card__prices .zt-product-card__price--request,
.poisk-results .zt-catalog-grid .zt-product-card__price.zt-product-card__price--request {
    font-family: var(--zt-font-btn, "Manrope", "Inter", system-ui, Arial, sans-serif) !important;
    font-size: 14px !important;
    /* N-507: заказчик просил жирнее — 700 вместо 600 */
    font-weight: 700 !important;
    line-height: 1.2 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    align-self: center !important;
    /* N-509: у принятого модуля строка выровнена вправо
       (`text-align: right`), в карточке нужна по левому краю. */
    text-align: left !important;
}

/* N-507: «Уточняйте цену» и статус наличия должны стоять на одной линии.
   Раньше строка цены была выше статуса на 5,5 px, потому что у неё
   собственная высота строки. Центруем обе части ряда, но только там,
   где цены нет: у товаров с ценой прежняя раскладка не трогается. */
.poisk-results .zt-catalog-grid .zt-product-card__prices:has(.zt-product-card__price--request) {
    /* Сетка модуля рассчитана на короткую цифру и на длинной подписи
       переносила статус на вторую строку (замер: две строки 26,9 и 10,1 px).
       Для случая без цены переводим ряд во flex — обе части остаются
       на одной линии и ужимаются по месту. */
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 8px !important;
}

.poisk-results .zt-catalog-grid .zt-product-card__prices:has(.zt-product-card__price--request) .zt-product-card__price--request {
    min-width: 0;
    flex: 1 1 auto;
}

.poisk-results .zt-catalog-grid .zt-product-card__prices:has(.zt-product-card__price--request) .zt-product-card__avail {
    flex: 0 0 auto;
    white-space: nowrap;
}

.poisk-results .zt-catalog-grid .zt-product-card__prices:has(.zt-product-card__price--request) .zt-product-card__avail {
    align-self: center !important;
}


/* Кнопка «В корзину»: часть легаси-CSS приходит с боевого домена и
   перекрашивает/переразмеряет её по имени тега, из-за чего подпись
   уезжала на 13 px / 700 / Tektur вместо 14 / 600 / Manrope с главной.
   Закрепляем значения главной — на них же равняется «Цена по запросу». */

.poisk-results .zt-catalog-grid .zt-product-card__cart,
.poisk-results .zt-catalog-grid .zt-product-card__cart-label {
    font-family: var(--zt-font-btn, "Manrope", "Inter", system-ui, Arial, sans-serif) !important;
    font-size: 14px !important;
    font-weight: 600 !important;
}


/* =========================================================
   04.09.2026 — правки по аудиту страницы каталога.
   Файл подключается ТОЛЬКО на catalog.html, поэтому селекторы
   вида `.poisk-results ...` тут безопасны: на карточку товара
   и на остальные страницы они не попадают.
   Разбор: Вики/05 Аудит/Аудит страницы каталога.md
   ========================================================= */


/* ---------------------------------------------------------
   A. Каталог в сетку шапки.

   Боевой CSS компонента выводит секцию во всю ширину окна:
   `left:50% + width:100vw + transform:translateX(-50%)`
   (components/bitrix/catalog/catalog/style.css:557-565, всё
   с !important). Отсюда три беды сразу:

   1. 100vw включает полосу прокрутки, body — нет. Колонка
      каталога уезжала на 7,5 px левее и правее колонки шапки
      на всех ширинах 768…1920. Каталог был единственной
      страницей стенда мимо сетки шапки.
   2. transform делает секцию containing block для
      position:fixed — мобильная панель фильтров считала
      top:0 от верха секции (10 490 px), а не от экрана,
      и ниже первого экрана не показывалась вовсе.
   3. Секция была шире body на 8 px; переполнение гасил
      overflow-x:clip.

   Приём взят со страницы «Сертификаты»: колонку задаёт
   родительский `.zt-page-content-area > .container`, у которого
   уже стоит сетка шапки (site-shell.css:289-296), а секция
   и её внутренний .container просто занимают её целиком.

   Специфичность повторяет боевую (html body + 3 класса),
   файл подключается позже — поэтому !important перебивается.
   --------------------------------------------------------- */

html body .zip-catalog-page,
html body .content-area.content-area-catalog.zip-catalog-page {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    transform: none !important;
}

html body .zip-catalog-page > .container,
html body .content-area.content-area-catalog.zip-catalog-page > .container {
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    margin: 0 !important;
    padding-right: 0 !important;
    padding-left: 0 !important;
}

/* Панель фильтров как ящик должна прокручиваться внутри себя.
   `overflow-y: auto` из poisk-results.css перебивалось правилом
   оформления `overflow: hidden` (оно ниже по этому файлу и нужно,
   чтобы скругление 12 px резало содержимое на десктопе). Возвращаем
   прокрутку только там, где панель — ящик. */
@media (max-width: 980px) {
    .poisk-results .poisk-filters {
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: contain;
    }
}


/* ---------------------------------------------------------
   B. Вертикальный ритм.

   Было: над H1 108 px из трёх паддингов подряд (50 + 26 + 32),
   под списком 262 px из четырёх (80 + 52 + 50 + 80). На
   «Сертификатах» на том же месте один отступ 80 px.

   Оставляем ровно по одному отступу на стык:
   шапка → крошки 32 (как на «Вакансиях»), крошки → H1 24,
   список → CTA 80 (как на «Сертификатах»).
   --------------------------------------------------------- */

/* Селекторы подняты до `html body` + два класса: на узких ширинах
   ту же пару перебивает `mobile.css:85` — `.content-area
   { padding: 20px 0 !important }` из общего файла, который его
   и не трогаем. */
html body .content-area.zt-page-content-area--catalog {
    padding-top: 32px !important;
    padding-bottom: 0 !important;
}

/* Селектор поднят до `html body` + три класса: боевой CSS ставит
   `padding: 26px 0 52px !important` селектором из трёх классов
   (catalog/style.css:27-31), и правило из двух классов ему проигрывает. */
html body .zt-page-content-area--catalog .zip-catalog-page,
html body .content-area.content-area-catalog.zip-catalog-page {
    margin-top: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* Крошки на остальных страницах отбиты 50 px — там под ними сразу
   начинается модуль. В каталоге дальше идёт свой отступ до H1,
   иначе разрыв складывается в 100 px. Правило только для каталога. */
html body .zt-page-content-area--catalog .zt-breadcrumbs,
html body .zt-page-content-area--catalog .breadcrumbs {
    margin-bottom: 0 !important;
}

/* Нижний отступ — 16 px, а не 80. Видимый просвет считается не до
   секции CTA, а до её карточки, и к нему прибавляется собственный
   верхний паддинг секции: 64 px на десктопе, 48 на планшете, 36 на
   телефоне. При 80 px получалось 144 px пустоты между кнопками
   пагинации и карточкой. С 16 px просвет ложится на общую лестницу
   отступов сайта: 80 → 64 → 56. */
html body .zt-page-content-area--catalog #poisk-results {
    margin-top: 24px !important;
    margin-bottom: 16px !important;
}

/* Прежнее правило ставило 40 px и не срабатывало — фактически
   было 80 px из lead-form-compact.css. Теперь отступ до CTA
   целиком задаёт margin-bottom списка. */
body:has(.zt-page-content-area--catalog) #ziptehLeadModule {
    margin-top: 0 !important;
}

@media (max-width: 680px) {
    html body .content-area.zt-page-content-area--catalog {
        padding-top: 20px !important;
    }

    html body .zt-page-content-area--catalog #poisk-results {
        margin-top: 18px !important;
        margin-bottom: 20px !important;
    }
}


/* ---------------------------------------------------------
   C. Пагинация помещается на любой ширине.

   Было: треки `auto auto auto minmax(150px,1fr)`. Средний трек
   с номерами сжиматься не мог, а подписи «Предыдущая»/
   «Следующая» держат min-width 132 px и превращаются в стрелки
   только с 900 px. В полосе 901…1085 px ряд был шире колонки:
   на 1024 «Показать ещё» уезжала за экран на 279 px,
   «Следующая» — на 107. Полосы прокрутки нет (overflow-x:clip),
   поэтому кнопки просто исчезали.

   Правка: средний трек `minmax(0,1fr)` — сжимается и при
   нехватке места прокручивает номера по горизонтали.
   Ниже 620 px раскладка своя (см. выше по файлу), поэтому
   правило ограничено `min-width: 621px`.
   --------------------------------------------------------- */

/* N-714: «стрелочки должны быть уже в кнопках, а не рядом с ними,
   выравнивание по центру». Жёсткий грид заменён на flex с переносом
   и центрированием: ряд собирается по содержимому и центрируется
   целиком, а при нехватке ширины переносится, а не вылезает за экран.
   Стрелка — псевдоэлемент внутри самой кнопки направления
   («← Предыдущая», «Следующая →»), фирменным жёлтым. */
/* N-718, N-717: «предыдущая», номера и «следующая» — слева,
   «Показать ещё» — справа, прижата к краю колонки.
   N-719: у ряда снята обводка — он больше не карточка, а строка
   в общем потоке, поэтому обнулены и рамка, и скругление,
   и фон, и боковые поля: кнопки встают ровно по краям колонки. */
@media (min-width: 621px) {
    .poisk-results .main-ui-pagination {
        display: flex;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
        gap: 8px;
    }

    .poisk-results .main-ui-pagination-pages-list {
        min-width: 0;
        max-width: 100%;
        flex: 0 1 auto;
        flex-wrap: wrap;
        justify-content: flex-start;
        order: 2;
    }

    .poisk-results .main-ui-pagination-prev { order: 1; }
    .poisk-results .main-ui-pagination-next { order: 3; }

    .poisk-results .zt-catalog-load-more {
        order: 4;
        margin-left: auto;
    }

    /* У Битрикса на кнопках и номерах свои поля `0 10px`. После снятия
       обводки они отодвигали «Предыдущая» на 10 px от левого края
       колонки — ряд переставал попадать в край плитки. Промежутки
       и так задаёт gap. */
    .poisk-results .main-ui-pagination-arrow,
    .poisk-results .main-ui-pagination-page {
        margin-right: 0;
        margin-left: 0;
    }

    /* inline-grid из базового правила поставил бы стрелку и подпись
       в разные строки — для «стрелка рядом с текстом» нужен flex. */
    #poisk-results .main-ui-pagination-arrow,
    .poisk-results .main-ui-pagination-arrow {
        display: inline-flex;
        align-items: center;
        justify-content: center;
    }

    .poisk-results .main-ui-pagination-arrow::before,
    .poisk-results .main-ui-pagination-arrow::after {
        color: #ffb800;
        font: 700 15px/1 var(--zt-font-btn, "Manrope", Arial, sans-serif);
    }
}

/* ---------------------------------------------------------
   N-723…N-726: сколько строк занимает тулбар.

   Было: `poisk-results.css` с 1100 px разворачивает тулбар
   в колонку (`flex-direction: column`), поэтому сводка и элементы
   управления всегда шли двумя строками — и на 1022, и на 766, где
   места хватает на одну. На мобильных к этому добавлялся третий
   ряд: «Сортировка» не влезала рядом с «На странице» и уезжала вниз.

   Стало: до 701 px — одна строка (сводка слева, управление справа),
   ниже — ровно две: сводка и «Фильтры» сверху, два списка снизу.
   --------------------------------------------------------- */

@media (min-width: 701px) {
    #poisk-results > .poisk-results__toolbar {
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: center;
        gap: 12px;
    }

    /* width: auto обязателен — у сводки в колоночной раскладке стоит
       нулевая ширина, и при flex-basis: auto она схлопывалась в 0,
       а «12 633 предложений» вылезало за свою ячейку. */
    #poisk-results > .poisk-results__toolbar .poisk-results__toolbar-summary {
        width: auto;
        min-width: auto;
        flex: 0 0 auto;
    }

    /* Та же ловушка, что у сводки: в колоночной раскладке у блока
       управления ширина 100 %, и при flex-basis: auto он занимал всю
       строку целиком — ряд вылезал за колонку на 122 px. */
    #poisk-results > .poisk-results__toolbar .poisk-results__toolbar-actions {
        display: flex;
        flex: 0 0 auto;
        flex-wrap: nowrap;
        gap: 8px;
        width: auto;
        min-width: 0;
        margin-left: auto;
    }
}

@media (max-width: 700px) {
    /* `display: contents` у блока управления нужен, чтобы кнопка
       «Фильтры» и два списка стали ячейками общей сетки тулбара:
       иначе кнопку не поднять в первую строку к сводке. */
    /* Колонки не пополам: «Сортировка: по релевантности» длиннее
       «На странице: 20», и при равных половинах список сортировки
       обрезался. Первая колонка — по содержимому, вторая забирает
       остаток. */
    #poisk-results > .poisk-results__toolbar {
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        align-items: center;
        gap: 10px 12px;
    }

    #poisk-results > .poisk-results__toolbar .poisk-results__toolbar-summary {
        grid-column: 1;
        grid-row: 1;
    }

    #poisk-results > .poisk-results__toolbar .poisk-results__toolbar-actions {
        display: contents;
    }

    #poisk-results > .poisk-results__toolbar .poisk-results__filter-toggle {
        grid-column: 2;
        grid-row: 1;
        justify-self: end;
    }

    #poisk-results > .poisk-results__toolbar .poisk-results__page-size-wrap {
        grid-column: 1;
        grid-row: 2;
        width: auto;
    }

    #poisk-results > .poisk-results__toolbar .poisk-results__sort-wrap {
        grid-column: 2;
        grid-row: 2;
        width: auto;
        min-width: 0;
    }
}

/* Ниже 400 px даже второй колонки не хватает: «по релевантности»
   обрезалось в списке. Снимаем подпись «Сортировка:» — сам вариант
   в списке себя называет. У «На странице:» подпись остаётся: «20»
   без неё не читается. */
@media (max-width: 400px) {
    #poisk-results > .poisk-results__toolbar .poisk-results__sort-wrap > span {
        display: none;
    }
}


/* ---------------------------------------------------------
   CTA: строка согласия набиралась не тем кеглем.

   Ссылка «политикой обработки персональных данных» внутри
   согласия получала Tektur 16 (на главной — 12): на странице
   каталога её перехватывает легаси-CSS с боевого домена,
   который красит ссылки по тегу. Строка становилась 373 px
   вместо 279 и переносилась на вторую строку — из-за этого
   весь модуль был на 12,6 px выше, чем на главной.
   --------------------------------------------------------- */

#ziptehLeadModule .zl-consent-copy a,
#ziptehLeadModule .zl-consent-link,
#ziptehLeadModule .zl-consent-link * {
    font: inherit !important;
    letter-spacing: inherit !important;
}


/* ---------------------------------------------------------
   Телефон: карточка как в модуле «Товары по акции» на главной.

   Было: одна карточка в ряд во всю ширину (332 px), нулевые поля
   и кнопка «В корзину» на 240 px — растянутая почти во всю строку.
   Эталон с главной на 360 px: карточка 160 px, поля 7 px, ряд
   покупки 142 px = степпер 82 + зазор 6 + кнопка 54×42 значком.

   Ставим две карточки в ряд и возвращаем кнопке размер эталона;
   остальные размеры внутри карточки уже совпадают с главной.
   --------------------------------------------------------- */

@media (max-width: 479px) {
    .poisk-results .zt-catalog-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px;
    }

    /* Поля карточки — те же, что на главной: 7 px на 360, 8 px на 414. */
    .poisk-results .zt-catalog-grid .zt-product-card {
        padding: 7px;
    }

    .poisk-results .zt-catalog-grid .zt-product-card__purchase {
        gap: 6px;
    }

    /* Ширину кнопке не задаём: на главной она `width: 100%` внутри
       флекс-ряда и забирает остаток после степпера — 54 px на 360
       и 79 px на 414. Жёсткие 54 px, поставленные было под снимок
       360 px, на 414 давали кнопку уже эталона. */

    /* Отступ «название → цена». На главной он берётся из
       `margin-top: auto` у блока цен: карточки лежат в карусели,
       где все слайды растянуты по самому высокому, и остаток
       высоты уходит в этот автоотступ — на 414 px получается 9,8 px.
       В сетке каталога свободной высоты нет, `auto` схлопывается
       в 0, и цена прилипала к названию. Задаём отступ явно, чтобы
       он не зависел от того, сколько места осталось в карточке. */
    .poisk-results .zt-catalog-grid .zt-product-card__prices {
        margin-top: 10px !important;
    }

    /* N-743: на телефоне «Уточняйте цену» прижимается к ЛЕВОМУ краю.
       Настоящая цена по-прежнему справа — как на главной; правка
       касается только варианта без цены, где длинная надпись
       у правого края отрывалась от названия над ней.
       Строка центровалась автополями флекс-элемента, поэтому
       выравниваем именно полями. */
    .poisk-results .zt-catalog-grid .zt-product-card__prices .zt-product-card__price--request {
        margin-right: auto !important;
        margin-left: 0 !important;
        text-align: left !important;
    }
}

@media (min-width: 400px) and (max-width: 479px) {
    .poisk-results .zt-catalog-grid .zt-product-card {
        padding: 8px;
    }
}


/* ---------------------------------------------------------
   «В корзину» — одной строкой.

   Подпись переносилась на вторую строку: при 14 px она занимает
   72,7 px, а кнопке доставалось меньше. Считаем, сколько ей нужно:
   значок 18 + зазор + подпись 72,7 + боковые поля кнопки.
   При прежних 16 px полей и зазоре 10 требовалось 132,7 px.

   Поджимаем поля до 10, зазор до 7 и степпер до 72 px — требуется
   117,7 px. На 1280 кнопке достаётся 121,5, на 1600 — 132,4,
   на 1920 и так хватало. Запрет переноса добавлен, чтобы подпись
   не ломалась на пробеле, когда не хватает пары пикселей.

   ⚠️ На 1440 px этого мало: там в ряду пять карточек по 209,6 px,
   кнопке остаётся 103,6 — меньше 117,7. Одной строкой подпись там
   помещается только если убрать одну колонку из ряда или спрятать
   значок; решение за заказчиком, поэтому 1440 пока как было.
   --------------------------------------------------------- */

@media (min-width: 1025px) {
    .poisk-results .zt-catalog-grid .zt-product-card__cart-label {
        white-space: nowrap;
    }

    .poisk-results .zt-catalog-grid .zt-product-card__cart {
        padding: 0 10px;
        gap: 7px;
    }

    .poisk-results .zt-catalog-grid .zt-product-card__stepper {
        flex: 0 0 72px;
        width: 72px;
        min-width: 72px;
    }
}


/* ---------------------------------------------------------
   «Под заказ» — не зелёным.

   В плитке каталога строка наличия рисовалась одним цветом
   для всех состояний: и «На складе 8 шт», и «Под заказ» были
   зелёными. Зелёный по смыслу значит «есть на складе», поэтому
   для товаров под заказ берём тот же красный, что в списочной
   выдаче (`.poisk-product__stock--empty`, #c83a3a).
   Модификатор ставит catalog-view.js.
   --------------------------------------------------------- */

.poisk-results .zt-catalog-grid .zt-product-card__avail--order {
    color: #c83a3a;
}

.poisk-results .zt-catalog-grid .zt-product-card__avail--order i {
    background: #c83a3a;
    border-color: #c83a3a;
}


/* ---------------------------------------------------------
   Анимация корзинки на кнопке «В корзину».

   Правило `animation: zt-cart-hop` в этом файле было (строка 1245),
   а самих кадров — нет: во всём файле ноль `@keyframes`. Генератор,
   который собрал catalog-grid.css из sale-products.css, переписал
   селекторы, но at-правила не перенёс. Браузер молча игнорирует
   ссылку на несуществующую анимацию, поэтому на каталоге корзинка
   стояла на месте, а на главной прыгала.

   Кадры перенесены из `sale-products.css:936-941` без изменений —
   поведение кнопки совпадает с модулем «Товары по акции».
   --------------------------------------------------------- */

@keyframes zt-cart-hop {
    0% { transform: translate(0, 0); }
    40% { transform: translate(2px, -3px); }
    70% { transform: translate(4px, 0); }
    100% { transform: translate(0, 0); }
}


/* ---------------------------------------------------------
   Синяя рамка при нажатии.

   Это стандартное кольцо фокуса браузера: по клику мышью Chrome
   ставит фокус на кнопку, ссылку или поле и рисует вокруг них
   синюю обводку. Убираем её только для мыши и касания — через
   `:focus:not(:focus-visible)`. Для клавиатуры (`:focus-visible`)
   кольцо остаётся: без него страницу нельзя пройти табом, видя,
   где находишься. Заодно снят синий подсвет тапа на мобильных
   (`-webkit-tap-highlight-color`).
   --------------------------------------------------------- */

#poisk-results,
#poisk-results-filters,
#ziptehLeadModule {
    -webkit-tap-highlight-color: transparent;
}

#poisk-results :focus:not(:focus-visible),
#poisk-results-filters :focus:not(:focus-visible),
#ziptehLeadModule :focus:not(:focus-visible) {
    outline: none;
}

/* У `<select>` кольцо не снимается прошлым правилом: Chrome считает
   его клавиатурным элементом и держит `:focus-visible` даже при клике
   мышью. Синюю рамку браузера убираем совсем, а то, что список открыт,
   показываем фирменной жёлтой рамкой самого поля. */
#poisk-results > .poisk-results__toolbar .poisk-results__page-size:focus,
#poisk-results > .poisk-results__toolbar .poisk-results__page-size:focus-visible,
#poisk-results > .poisk-results__toolbar .poisk-results__sort:focus,
#poisk-results > .poisk-results__toolbar .poisk-results__sort:focus-visible {
    outline: none !important;
    border-color: #ffb800 !important;
    box-shadow: none !important;
}

/* Остальным элементам каталога кольцо оставляем — без него не пройти
   страницу с клавиатуры, — но перекрашиваем из браузерного синего
   в фирменный жёлтый. */
#poisk-results :focus-visible,
#poisk-results-filters :focus-visible,
#ziptehLeadModule :focus-visible {
    outline: 2px solid #ffb800;
    outline-offset: 2px;
}


/* ---------------------------------------------------------
   Пагинация ниже 1025 px: ряд распирало на 196 px.

   Общий файл доступности `zt-home-unify.css:2113-2118`
   (@media max-width: 1024px) добавляет каждой кнопке и каждому
   номеру по 14 px полей с обеих сторон — приём для мелких
   битриксовых цифр 17×16, чтобы зоны нажатия не слипались.
   У нас кнопки уже 42×42 и разведены `gap`, поэтому поля шли
   в чистый убыток: семь кнопок × 28 px = **196 px** лишней
   ширины. Список номеров раздувался с 333 до 529 px, ряд
   переставал помещаться и переносился в две строки на 1024,
   768 и 640, а на 640 «Предыдущая» и «Следующая» оказывались
   на разных строках. Плюс сами поля сдвигали «Предыдущая»
   на 14 px от левого края плитки.

   Общий файл не трогаем — гасим поля только у пагинации
   каталога, а разделение зон нажатия оставляем на `gap`:
   42 px кнопка + 8 px промежуток = 50 px шаг, больше
   требуемых 44 px. Невидимая зона 44×44 на `::after`,
   которую ставит тот же общий файл, остаётся на месте.
   --------------------------------------------------------- */

/* На узких экранах семь номеров по 42 px в строку не влезают:
   на 414 px списку достаётся 282 px, а ряду нужно 342. Часть
   кнопок уезжала за край и обрезалась на половине. Уменьшаем
   шаг: кнопка 36 px, промежуток 4 — ряд укладывается в 276 px
   и помещается целиком. Зона нажатия не страдает: невидимый
   квадрат 44×44 на `::after` из общего файла остаётся.
   На 360 px даже так остаётся прокрутка — там 7 номеров
   в строку не помещаются ни при каком разумном шаге. */
@media (max-width: 479px) {
    #poisk-results .main-ui-pagination-page,
    .poisk-results .main-ui-pagination-page {
        min-width: 36px;
        width: 36px;
        height: 36px;
        padding: 0;
    }

    /* Стрелки тоже 36 — иначе списку не хватает ровно тех 12 px,
       которых недостаёт до полного ряда на 414 px. */
    #poisk-results .main-ui-pagination-arrow,
    .poisk-results .main-ui-pagination-arrow {
        width: 36px;
        min-width: 36px;
        max-width: 36px;
        height: 36px;
    }

    /* Селектор с id — ниже по файлу блок ≤1024 ставит промежуток 8 px
       правилом из двух классов, и без id он бы перебил этот. */
    #poisk-results .main-ui-pagination-pages-list {
        gap: 4px;
    }
}

/* До 400 px даже шаг 36 не спасает: списку остаётся 244 px, а семи
   кнопкам нужно 276 — ряд прокручивался, активная «1» обрезалась
   слева, «632» справа. Ужимаем номера до 30 px, стрелки до 32:
   ряду хватает 234 px из 252 доступных, прокрутка не нужна,
   ничего не режется. Зона нажатия по-прежнему 44×44 —
   её держит невидимый `::after` из общего файла. */
@media (max-width: 400px) {
    #poisk-results .main-ui-pagination-page,
    .poisk-results .main-ui-pagination-page {
        min-width: 30px;
        width: 30px;
        height: 30px;
    }

    #poisk-results .main-ui-pagination-arrow,
    .poisk-results .main-ui-pagination-arrow {
        width: 32px;
        min-width: 32px;
        max-width: 32px;
        height: 32px;
    }

    #poisk-results .main-ui-pagination-pages-list {
        gap: 3px;
        justify-content: space-between;
    }
}

/* Стрелка — строго по центру своей кнопки.

   Пока подпись возвращалась 13-м кеглем (см. выше), глиф стоял
   не по центру: рядом с ним в потоке лежал текст «Предыдущая».
   Теперь текста нет, но центрирование закрепляем явно — кнопка
   становится flex-боксом с выравниванием по обеим осям, а у глифа
   обнуляются поля и межстрочный интервал. Правило действует там,
   где кнопка показана значком: до 1180 px. Выше подпись есть,
   и там у глифа свои отступы от текста — их не трогаем. */
@media (max-width: 1180px) {
    #poisk-results .main-ui-pagination-arrow,
    .poisk-results .main-ui-pagination-arrow {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 0;
        line-height: 1;
    }

    #poisk-results .main-ui-pagination-arrow::before,
    .poisk-results .main-ui-pagination-arrow::before {
        display: block;
        margin: 0;
        line-height: 1;
        text-align: center;
    }
}

@media (max-width: 1024px) {
    #poisk-results .main-ui-pagination-page,
    #poisk-results .main-ui-pagination-arrow,
    .poisk-results .main-ui-pagination-page,
    .poisk-results .main-ui-pagination-arrow {
        margin-right: 0 !important;
        margin-left: 0 !important;
    }

    .poisk-results .main-ui-pagination-pages-list {
        gap: 8px;
    }

    .poisk-results .main-ui-pagination {
        gap: 10px;
    }
}


/* ---------------------------------------------------------
   N-742: счётчик над плашкой и на планшете.

   На 358 px счётчик уже вынесен за «шейп» (N-739). Заказчик
   попросил то же на 766. Полосу управления при этом трогать
   нельзя: по N-724 на 766 она должна идти одной строкой.

   Поэтому здесь только переносим счётчик наверх и снимаем
   карточку с тулбара, отдавая её блоку управления, — а сам
   блок остаётся однострочным. Диапазон 701…980 px: ниже 701
   работает двухрядная мобильная раскладка (N-741), выше 980
   кнопки «Фильтры» нет и тулбар остаётся десктопным.
   --------------------------------------------------------- */

@media (min-width: 701px) and (max-width: 980px) {
    #poisk-results > .poisk-results__toolbar {
        display: block;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    #poisk-results > .poisk-results__toolbar .poisk-results__toolbar-summary {
        display: block;
        width: auto;
        margin: 0 0 10px;
    }

    #poisk-results > .poisk-results__toolbar .poisk-results__toolbar-actions {
        display: flex;
        flex-wrap: nowrap;
        align-items: center;
        gap: 10px;
        width: auto;
        margin-left: 0;
        padding: 12px;
        border: 1px solid #dfe3e8;
        border-radius: 12px;
        background: #fff;
        box-shadow: 0 8px 24px rgba(37, 49, 66, .055);
    }
}


/* ---------------------------------------------------------
   Тулбар не прилипает.

   В `poisk-results.css` он объявлен `position: sticky` с
   `top: var(--poisk-toolbar-sticky-top)` и `z-index: 80` — при
   прокрутке полоса со счётчиком, сортировкой и фильтрами
   зависала под шапкой. По указанию заказчика прилипание снято
   на всех ширинах: полоса едет вместе со страницей.
   --------------------------------------------------------- */

#poisk-results > .poisk-results__toolbar,
.poisk-results .poisk-results__toolbar {
    position: static !important;
    top: auto !important;
    z-index: auto !important;
}


/* ---------------------------------------------------------
   N-739…N-741: мобильный тулбар пересобран.

   Просили: счётчик «12 633 предложений» вынести за пределы
   плашки и поднять над ней; сортировку поставить слева,
   «На странице» справа; кнопку «Фильтры» сделать во всю ширину
   и увести под эти два списка.

   Разметку не трогаем — счётчик остаётся внутри `.poisk-results__toolbar`.
   Вместо переноса узла снимаем «шейп» с самого тулбара (фон, рамку,
   тень, поля) и отдаём его блоку управления `.toolbar-actions`.
   Счётчик оказывается над карточкой и вне её — ровно то, что нужно,
   и без вмешательства в DOM.

   Этот блок идёт ниже прежней мобильной раскладки тулбара
   и перекрывает её целиком.
   --------------------------------------------------------- */

@media (max-width: 700px) {
    /* !important — «шейп» тулбару задан правилом
       `.zip-catalog-page .poisk-results__toolbar` с !important
       (poisk-results.css:2789), без приоритета фон и рамка остаются
       и получается карточка в карточке. */
    #poisk-results > .poisk-results__toolbar {
        display: block;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    #poisk-results > .poisk-results__toolbar .poisk-results__toolbar-summary {
        display: block;
        width: auto;
        margin: 0 0 10px;
    }

    /* Плашка теперь тут: списки и кнопка. */
    #poisk-results > .poisk-results__toolbar .poisk-results__toolbar-actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        align-items: center;
        gap: 10px 12px;
        padding: 12px;
        border: 1px solid #dfe3e8;
        border-radius: 12px;
        background: #fff;
        box-shadow: 0 8px 24px rgba(37, 49, 66, .055);
    }

    /* Сортировка слева, «На странице» справа. */
    #poisk-results > .poisk-results__toolbar .poisk-results__sort-wrap {
        grid-column: 1;
        grid-row: 1;
        width: auto;
        min-width: 0;
    }

    #poisk-results > .poisk-results__toolbar .poisk-results__page-size-wrap {
        grid-column: 2;
        grid-row: 2 / 2;
        grid-row-start: 1;
        justify-self: end;
        width: auto;
    }

    /* «Фильтры» — во всю ширину плашки, отдельной строкой снизу. */
    #poisk-results > .poisk-results__toolbar .poisk-results__filter-toggle {
        grid-column: 1 / -1;
        grid-row: 2;
        justify-self: stretch;
        width: 100%;
    }
}


/* N-719: обводка ряда пагинации снята на всех ширинах. */
.poisk-results .main-ui-pagination {
    padding-right: 0;
    padding-left: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
}


/* N-722: значок-воронка перед словом «Фильтры» снят. */
.poisk-results .poisk-filters__title::before {
    display: none;
}


/* N-721: «Показано N из M» набирается той же гарнитурой, что подписи
   переключателей «На складе» и «Под заказ» — Manrope 12/600.
   Прежние значения (Tektur 12/750 по N-713) отменены. */
#poisk-results .poisk-filters__result-count,
#poisk-results .poisk-filters__result-count span {
    color: #253142;
    font-family: var(--zt-font-btn, "Manrope", Arial, sans-serif) !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
}


/* Родные шевроны Битрикса — вон.

   `bitrix/css/main/grid/pagenavigation.css:28-84` рисует у кнопок
   направления по два бруска 2×7 px, ставит их `position: absolute`
   на `left/right: -10px` (снаружи кнопки) и разворачивает на ±45°,
   собирая «‹» и «›». У ссылок они синие #2067b0, у неактивной
   кнопки серые. Именно они висели сбоку от «Предыдущая» и
   «Следующая» и мешались с нашей стрелкой.

   Гасим не `content`, а саму рисовку: подложку, размеры, поворот
   и абсолютную привязку. Так правило доступности
   `zt-home-unify.css:2099-2109` (@media max-width:1024px), которое
   держит на ::after невидимую зону нажатия 44×44 через !important,
   продолжает работать — мы ему не мешаем. */
.poisk-results .main-ui-pagination-arrow::before,
.poisk-results .main-ui-pagination-arrow::after,
.poisk-results a.main-ui-pagination-arrow::before,
.poisk-results a.main-ui-pagination-arrow::after,
.poisk-results span.main-ui-pagination-arrow::before,
.poisk-results span.main-ui-pagination-arrow::after {
    position: static;
    width: auto;
    height: auto;
    background: none;
    transform: none;
}

/* От 1181 px кнопки направления — просто подписи «Предыдущая» и
   «Следующая», без стрелок, как было до правки N-714: заказчик
   посмотрел вариант со стрелками внутри кнопок и вернул прежний вид.

   Полоса 621…1180 px: подписи рядом с номерами и «Показать ещё»
   в строку не помещаются — ряд переносился так, что «Следующая»
   уезжала под номера. Здесь, как и ниже 900 px до всех правок,
   остаются только стрелки.

   Рисуем через ::before: ::after у этих кнопок занят общим
   правилом доступности `zt-home-unify.css` (@media max-width:1024px),
   которое расширяет зону нажатия до 44 px пустым псевдоэлементом.
   Общий файл не трогаем — просто не занимаем ::after. */
@media (min-width: 621px) and (max-width: 1180px) {
    /* font-size: 0 обязателен с !important: выше по этому файлу
       кнопкам пагинации задан `font-size: 13px !important` (он нужен,
       чтобы перебить легаси-CSS боевого домена). Без приоритета
       подпись возвращалась 13-м кеглем и вылезала за кнопку 42 px —
       «Предыдущая» и «Следующая» наезжали на номера страниц. */
    #poisk-results .main-ui-pagination-arrow,
    .poisk-results .main-ui-pagination-arrow {
        width: 42px;
        min-width: 42px;
        max-width: 42px;
        padding: 0;
        font-size: 0 !important;
        overflow: hidden;
    }

    .poisk-results .main-ui-pagination-prev::before {
        content: "←";
        margin: 0;
    }

    .poisk-results .main-ui-pagination-next::before {
        content: "→";
        margin: 0;
    }
}


/* ---------------------------------------------------------
   D. Строка товара: свойства читаются.

   Было: `198px minmax(0,1fr) minmax(380px,420px)`. Колонка
   «купить» фиксирована, весь дефицит ширины уходил в среднюю
   колонку с пятью свойствами `repeat(5, minmax(0,1fr))`:
   на 1440 одно свойство получало 69 px (42 обрезанных значения
   на странице), на 1280 — 39 px (65 обрезанных).

   Правка: колонка «купить» ужимается вместе со строкой,
   а свойства переносятся на второй ряд вместо сжатия.
   Высота содержимого перестаёт быть фиксированной 132 px.
   --------------------------------------------------------- */

@media (min-width: 981px) {
    .poisk-results .poisk-product__content {
        height: auto;
        min-height: 132px;
    }

    .poisk-results .poisk-product__info {
        height: auto;
        gap: 10px;
        justify-content: flex-start;
    }

    .poisk-results .poisk-product__properties {
        row-gap: 10px;
        align-items: start;
    }

    /* Внутренности колонки «купить» были на жёстких треках
       (`130px 180px` у ряда с корзиной, `197px 44px` у ряда с ценой).
       Пока колонка была фиксированные 420 px, это работало; после
       того как она стала сжимаемой, кнопка «В корзину» вылезала
       за край карточки на 30 px. Переводим на гибкие треки. */
    .poisk-results .poisk-product__cart-control {
        grid-template-columns: minmax(96px, 130px) minmax(0, 1fr) !important;
        column-gap: 12px !important;
    }

    .poisk-results .poisk-product__total-row {
        grid-template-columns: minmax(0, 1fr) 44px !important;
    }

    .poisk-results .poisk-product__actions,
    .poisk-results .poisk-product__cart-button {
        width: 100% !important;
        min-width: 0 !important;
    }
}

/* Широкий десктоп — пять свойств в один ряд, как было. */
@media (min-width: 1600px) {
    .poisk-results .poisk-product {
        grid-template-columns: 198px minmax(0, 1fr) clamp(300px, 22%, 400px) !important;
    }

    .poisk-results .poisk-product__properties {
        grid-template-columns: repeat(5, minmax(0, 1fr));
    }
}

/* 1200…1599 — три свойства в ряд, два переносятся вниз. */
@media (min-width: 1200px) and (max-width: 1599px) {
    .poisk-results .poisk-product {
        grid-template-columns: 198px minmax(0, 1fr) clamp(280px, 22%, 360px) !important;
    }

    .poisk-results .poisk-product__properties {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        column-gap: 20px;
    }
}

/* 981…1199 — два свойства в ряд. */
@media (min-width: 981px) and (max-width: 1199px) {
    .poisk-results .poisk-product {
        grid-template-columns: 183px minmax(0, 1fr) clamp(240px, 24%, 320px) !important;
    }

    .poisk-results .poisk-product__properties {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        column-gap: 16px;
    }
}

/* Длинные значения («Цена за шт. с НДС» → «Уточняйте цену»)
   теперь переносятся, а не обрезаются многоточием. */
@media (min-width: 981px) {
    .poisk-results .poisk-product__property-value {
        overflow: visible;
        white-space: normal;
        text-overflow: clip;
    }

    .poisk-results .poisk-product__property-label {
        white-space: normal;
    }
}


/* ---------------------------------------------------------
   D1. N-711: заголовок каталога капсом, «для спецтехники» жёлтым.
   Капс делает CSS, span расставляет catalog-view.js.
   --------------------------------------------------------- */

#poisk-results .poisk-results__title {
    text-transform: uppercase;
}

/* font: inherit обязателен: правило уровня `#poisk-results *` с боевого
   домена ставит голому span'у Tektur 16, и «для спецтехники» рисовалось
   мелким шрифтом рядом с 46-м заголовком. */
#poisk-results .poisk-results__title-accent {
    color: #ffb800;
    font: inherit !important;
    letter-spacing: inherit !important;
    text-transform: inherit !important;
}


/* ---------------------------------------------------------
   D2. N-712: временно только плитка — переключатель видов
   не выводится (catalog-view.js), правило страхует случай,
   когда кнопки пришли из разметки боевого тулбара.
   --------------------------------------------------------- */

.zip-catalog-page .poisk-results__view {
    display: none !important;
}

/* Списочная разметка гасится с первой отрисовки.

   Компонент отдаёт список готовым и с классами
   `view-lines poisk-force-list`, а плитку собирает
   catalog-view.js на DOMContentLoaded. На странице в 674 КБ
   это успевало показаться: сначала товары строками, через
   мгновение — карточками. Пока список ждал своей очереди,
   его держало правило `... .poisk-results__list > .items
   { display: block !important }` весом 0-3-0, поэтому
   селектор здесь на класс длиннее.

   Разметку списка не убираем: catalog-view.js берёт из неё
   данные товаров (data-article, data-title, data-price…)
   и фотографии из конфигурации JCCatalogItem. Она остаётся
   в DOM, просто не рисуется. */
.zip-catalog-page #poisk-results .catalog-section .poisk-results__list > .items,
.zip-catalog-page #poisk-results .catalog-section .poisk-results__list > .items-header,
.zip-catalog-page #poisk-results .catalog-section .poisk-force-list > .items,
.zip-catalog-page #poisk-results .catalog-section .poisk-force-list > .items-header {
    display: none !important;
}

/* Почему в селекторе идентификатор, а не только классы.
   Правило poisk-results.css:2729 держит список показанным:

     .poisk-results .catalog-section
     .cards.view-lines.poisk-force-list > .items { display: block !important }

   вес 0-6-0 с !important. Прежняя редакция правила выше весила 0-5-0
   и проигрывала — на бою список успевал отрисоваться таблицей, и лишь
   потом скрипт заменял его плиткой. На стенде это не бросалось в глаза:
   страница отдаётся с локального сервера, окно между отрисовкой и
   DOMContentLoaded — доли мгновения. Идентификатор #poisk-results
   поднимает вес до 1-4-0, а идентификатор перевешивает любое число
   классов. Проверено на боевой странице: при исходных классах сервера
   `cards view-lines poisk-force-list` вычисленный display у .items
   был `block`, с этим правилом — `none`, даже если поставить его
   первым стилем в head. */

/* Место под плитку резервируется, пока её не построил скрипт, —
   иначе на долю секунды подвал подскакивает вверх и страница
   дёргается. Как только плитка появилась, ограничение снимается. */
.zip-catalog-page .poisk-results__list:not(:has(.zt-catalog-grid)) {
    min-height: 60vh;
}


/* ---------------------------------------------------------
   D3. Мёртвая кнопка «Фильтры» в полосе 981…1024 px.

   Ящик фильтров включается с 980 px (poisk-results.css:2050),
   а кнопку показывает общий файл доступности с 1024 px и
   с !important (zt-home-unify.css:2086, 2119-2126). В зазоре
   шириной 44 px кнопка стояла рядом с уже видимой боковой
   панелью и по нажатию ничего не показывала. Общий файл не
   трогаем — гасим кнопку только на каталоге.
   --------------------------------------------------------- */

@media (min-width: 1025px) {
    .poisk-results .poisk-results__filter-toggle {
        display: none !important;
    }
}


/* ---------------------------------------------------------
   E. Стрелки — фирменные жёлтые вместо синих.

   Синими были: шевроны выпадающих списков тулбара
   («На странице», «Сортировка») — #69809a; шевроны групп
   фильтров — #253142; значок сброса фильтров ↻ — #3b73a7.
   Стрелки пагинации ←/→ были тёмно-серыми.
   --------------------------------------------------------- */

/* Шевроны селектов тулбара перекрашены на месте, в правиле выше
   по этому файлу (строка 209): у него селектор с id и !important,
   и правило из двух классов ему проигрывает. */

.poisk-results .poisk-filters__group-title svg,
.poisk-results .poisk-filters__group-title svg path,
.poisk-results .poisk-filters__accordion svg,
.poisk-results .poisk-filters__accordion svg path {
    color: #ffb800 !important;
    stroke: #ffb800 !important;
}

.poisk-results .main-ui-pagination-arrow::before {
    color: #ffb800;
}

.poisk-results .poisk-filters__reset::before {
    color: #ffb800;
}


/* ---------------------------------------------------------
   Фильтры кнопкой-ящиком и на 1024.

   `poisk-results.css` переводит панель в выдвижной ящик
   с 980 px. Заказчик попросил тот же режим на 1024, поэтому
   диапазон 981…1024 повторяет те же правила: колонка фильтров
   уходит из потока, список товаров занимает всю ширину,
   появляется кнопка «Фильтры», подложка и запрет прокрутки
   страницы при открытом ящике.

   Общий `poisk-results.css` не трогаем — он подключён и к карточке
   товара; правила продублированы здесь, в файле каталога.
   --------------------------------------------------------- */

@media (min-width: 981px) and (max-width: 1024px) {
    .poisk-results .poisk-results__filter-toggle {
        display: inline-flex;
    }

    .poisk-results .poisk-results__catalog,
    #poisk-results-catalog {
        display: block;
    }

    .poisk-results .poisk-filters {
        position: fixed;
        top: 0;
        bottom: 0;
        left: 0;
        z-index: 1000001;
        width: min(355px, calc(100vw - 36px));
        overflow-x: hidden;
        overflow-y: auto;
        overscroll-behavior: contain;
        border-radius: 0 16px 16px 0;
        transform: translateX(-105%);
        transition: transform .24s ease;
    }

    .poisk-results .poisk-filters.is-open {
        transform: translateX(0);
    }

    .poisk-results .poisk-filters__close,
    .poisk-results .poisk-filters__apply {
        display: flex;
    }

    .poisk-results .poisk-filters__backdrop:not([hidden]) {
        position: fixed;
        inset: 0;
        z-index: 1000000;
        display: block;
        border: 0;
        background: rgba(17, 24, 32, .45);
        backdrop-filter: blur(2px);
    }

    body.poisk-filters-open {
        overflow: hidden;
    }
}
