.products-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, 300px);
    gap: 40px;
    justify-content: start;
    margin: 0 auto;
    max-width: calc(2 * 300px + 40px);
}

.products-grid .product-card .position-relative {
    aspect-ratio: 2 / 3;
    width: 100%;
    overflow: hidden;
}

.products-grid .product-card .position-relative > img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    object-position: center;
}

.swiper-container {
    width: auto;
    height: 70vh;
    overflow: hidden;
    aspect-ratio: 2/3;
}

.swiper-slide {
    aspect-ratio: 2/3;
}

.swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

@media screen and (orientation: portrait) {
    .swiper-container {
        max-height: 50vh;
        width: 100%;
    }
}

.swiper-container .swiper-button-prev,
.swiper-container .swiper-button-next {
    color: var(--text-color) !important;
    border-radius: 50% !important;
    width: 28px !important;
    height: 28px !important;
}

.swiper-container .swiper-button-prev::after,
.swiper-container .swiper-button-next::after {
    font-size: 10px;
}

@media (max-width: 768px) {
    .swiper-container {
        max-height: 70vh;
    }
}

@media (max-width: 500px) {
    .products-grid {
        grid-template-columns: repeat(auto-fit, 200px);
        max-width: 100%;
        gap: 20px;
        justify-content: space-between;
    }
}

@media (max-width: 420px) {
    .products-grid {
        grid-template-columns: repeat(auto-fit, 180px);
    }
}

@media (max-width: 380px) {
    .products-grid {
        grid-template-columns: repeat(auto-fit, 160px);
    }
}

.color-button {
    width: 24px;
    height: 24px;
}