.l-carousel { position: relative; }

/* Sin JS: fila con desplazamiento horizontal */
.l-carousel .swiper-wrapper { display: flex; gap: var(--gap); overflow-x: auto; scroll-snap-type: x mandatory; }
.l-carousel .swiper-slide { flex: 0 0 calc((100% - (var(--visible) - 1) * var(--gap)) / var(--visible)); scroll-snap-align: start; }
.l-carousel.is-ready .swiper-wrapper { gap: 0; overflow: visible; }

.l-carousel .g-item { height: 100%; display: flex; flex-direction: column; justify-content: center; }
.l-carousel .g-frame img { width: 100%; height: auto; }

/* Altura fija: cada foto conserva su proporción y el ancho se adapta */
.l-carousel--fixed .swiper-slide { flex-basis: auto; width: auto; height: calc(var(--carousel-h) * 1vh); }
.l-carousel--fixed .g-item, .l-carousel--fixed .g-frame { height: 100%; }
.l-carousel--fixed .g-frame { aspect-ratio: var(--ar); }
.l-carousel--fixed .g-frame img { height: 100%; width: auto; object-fit: cover; }
@media (max-width: 639px) {
    .l-carousel--fixed .swiper-slide { height: auto; width: 88%; }
    .l-carousel--fixed .g-frame { aspect-ratio: auto; }
    .l-carousel--fixed .g-frame img { width: 100%; height: auto; }
}

.l-carousel__arrow {
    position: absolute; top: 50%; z-index: 2; transform: translateY(-50%);
    width: 44px; height: 44px;
    border: 0; border-radius: 50%;
    background: rgb(255 255 255 / .85); color: #111;
    font-size: 1.6rem; line-height: 1;
    cursor: pointer;
}
.l-carousel__arrow--prev { left: .75rem; }
.l-carousel__arrow--next { right: .75rem; }
.l-carousel__arrow:disabled { opacity: .3; cursor: default; }

.l-carousel__dots { display: flex; justify-content: center; gap: .4rem; margin-top: 1rem; }
.l-carousel__dots .swiper-pagination-bullet { width: 8px; height: 8px; margin: 0 !important; background: var(--color-text); opacity: .25; }
.l-carousel__dots .swiper-pagination-bullet-active { opacity: 1; }
