:root {
    --news-col-w: 377px;
    --news-gap-x: 10px;
    --news-gap-y: 70px;
    --news-wrap-pad: 20px;
    --news-wrap-w: calc(4 * var(--news-col-w) + 3 * var(--news-gap-x) + 2 * var(--news-wrap-pad));
}

#catalog-items-container {
    width: 100%;
    max-width: var(--news-wrap-w);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--news-wrap-pad);
    padding-right: var(--news-wrap-pad);
    box-sizing: border-box;
}

#catalog-items-container .news-grid {
    display: grid;
    grid-template-columns: repeat(4, var(--news-col-w));
    column-gap: var(--news-gap-x);
    row-gap: var(--news-gap-y);
    justify-content: center;
    align-items: start;
}

#catalog-items-container .news-grid > .news-slider__slide {
    justify-self: center;
}

.page-title.container--nopad--inside {
    max-width: var(--news-wrap-w);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--news-wrap-pad);
    padding-right: var(--news-wrap-pad);
    box-sizing: border-box;
}

#catalog-items-container {
    margin-bottom: 100px;
}

#catalog-items-container + .pagination-loader {
    margin-bottom: 0;
}

#catalog-items-container:has(+ .pagination-loader) {
    margin-bottom: 0;
}

/* ===== 1728px — 3 ===== */
@media (max-width: 1728px) {
    :root {
        --news-wrap-w: calc(3 * var(--news-col-w) + 2 * var(--news-gap-x) + 2 * var(--news-wrap-pad));
    }
    #catalog-items-container .news-grid {
        grid-template-columns: repeat(3, var(--news-col-w));
    }
}

/* ===== 1200px — 3 карточки не влезают, 2 ===== */
@media (max-width: 1200px) {
    :root {
        --news-wrap-w: calc(2 * var(--news-col-w) + 1 * var(--news-gap-x) + 2 * var(--news-wrap-pad));
    }
    #catalog-items-container .news-grid {
        grid-template-columns: repeat(2, var(--news-col-w));
    }
}

/* ===== 1024px — 2, карточка 280px ===== */
@media (max-width: 1024px) {
    :root {
        --news-col-w: 317px;
        --news-wrap-w: calc(2 * var(--news-col-w) + 1 * var(--news-gap-x) + 2 * var(--news-wrap-pad));
    }
    #catalog-items-container .news-grid {
        grid-template-columns: repeat(2, var(--news-col-w));
    }
    #catalog-items-container .news-grid .news-slider__slide {
        width: 280px;
        flex: 0 0 280px;
    }
    #catalog-items-container .news-grid .news-slider__slide .news-slider__image-link {
        height: 280px;
    }
}

/* ===== 715px — 1, карточка 340px ===== */
@media (max-width: 715px) {
    :root {
        --news-col-w: 377px;
        --news-gap-y: 46px;
        --news-wrap-w: calc(1 * var(--news-col-w) + 2 * var(--news-wrap-pad));
    }
    #catalog-items-container .news-grid {
        grid-template-columns: 1fr;
        justify-items: center;
    }
    #catalog-items-container .news-grid .news-slider__slide {
        width: 340px;
        flex: 0 0 340px;
    }
    #catalog-items-container .news-grid .news-slider__slide .news-slider__image-link {
        height: 340px;
    }
}

/* ===== 420px — 1, карточка 300px ===== */
@media (max-width: 420px) {
    :root {
        --news-col-w: 337px;
        --news-wrap-pad: 10px;
        --news-wrap-w: calc(1 * var(--news-col-w) + 2 * var(--news-wrap-pad));
    }
    #catalog-items-container .news-grid .news-slider__slide {
        width: 300px;
        flex: 0 0 300px;
    }
    #catalog-items-container .news-grid .news-slider__slide .news-slider__image-link {
        height: 300px;
    }
}

/* ===== 360px — 1, карточка 260px ===== */
@media (max-width: 360px) {
    :root {
        --news-col-w: 297px;
        --news-wrap-w: calc(1 * var(--news-col-w) + 2 * var(--news-wrap-pad));
    }
    #catalog-items-container .news-grid .news-slider__slide {
        width: 260px;
        flex: 0 0 260px;
    }
    #catalog-items-container .news-grid .news-slider__slide .news-slider__image-link {
        height: 260px;
    }
}

/* ===== 400px ===== */
@media (max-width: 400px) {
    :root {
        --news-wrap-pad: 0px;
        --news-wrap-w: 100%;
    }
    #catalog-items-container {
        max-width: 100%;
    }
}

@media (hover: none) {
    /* Убираем залипающий CSS hover */
    .news-slider__slide:hover {
        background: transparent;
    }
    .news-slider__slide:hover .news-slider__more {
        color: #222322;
    }
    .news-slider__slide:hover .news-slider__more::after {
        opacity: 0;
    }
    .products-grid__item:hover {
        background: transparent;
    }
    .products-slider__slide:hover {
        background: transparent;
    }

    /* JS hover при касании */
    .news-slider__slide.is-touch-hover {
        background: #FFFAF5;
    }
    .news-slider__slide.is-touch-hover .news-slider__more {
        color: #E61734;
    }
    .news-slider__slide.is-touch-hover .news-slider__more::after {
        opacity: 1;
    }

    .products-grid__item.is-touch-hover {
        background: #FFFAF5;
    }

    .products-slider__slide.is-touch-hover {
        background: #FFFAF5;
    }
}