.subcategories-slider {
    margin-top: var(--gap-vertical-medium);
}

.subcategory-card {
    text-align: center;
    text-decoration: none;
    color: inherit;
    background-color: var(--bg-lighter);
    display: block;
}


.subcategory-card img {
    display: block;
    width: 100%;
    height: auto;
    object-fit: cover;
    flex-shrink: 0;
    aspect-ratio: 1 / 1;
    mix-blend-mode: darken;
    max-width: 160px;
    margin: auto;
    margin-bottom: var(--space-1);
}

.subcategory-card img.subcategory-card__image--placeholder {
    object-fit: contain;
}

.subcategory-card__name {
    font-size: var(--font-size-sm);
    line-height: 1.3;
    display: block;
    margin-bottom: .15rem;
}


.subcategory-card__name--2lines {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-wrap: balance;
    /* Evita que el slider cambie de alto al cargar nombres de dos lineas. */
    min-height: 2.6em;
}

/*
 * Swiper parte de width: 100% y calcula los anchos al arrancar. Estos valores
 * reproducen sus slidesPerView/spaceBetween antes de que llegue JavaScript,
 * evitando el salto de layout (CLS). Swiper los sustituye por estilos inline
 * una vez inicializado.
 */
.subcategories-slider:not(.swiper-initialized) .swiper-slide {
    width: calc(40% - 9.6px); /* 2.5 slides, gap 16px */
    margin-right: 16px;
}

@media (min-width: 480px) {
    .subcategories-slider:not(.swiper-initialized) .swiper-slide {
        width: calc(28.5714% - 11.4286px); /* 3.5 slides */
    }
}

@media (min-width: 768px) {
    .subcategories-slider:not(.swiper-initialized) .swiper-slide {
        width: calc(15.3846% - 13.5385px); /* 6.5 slides */
    }
}

@media (min-width: 1400px) {
    .subcategories-slider:not(.swiper-initialized) .swiper-slide {
        width: calc(12.5% - 14px); /* 8 slides */
    }
}
