ol, li {
    list-style: none;
}

.carousel {
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 15px 35px rgba(0,0,0,0.6);
    position: relative;
    width: 100%;
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.carousel__viewport {
    display: flex;
    overflow-x: hidden; /* Oculta barras de scroll residuales */
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    height: auto;
}

.carousel__slide {
    flex: 0 0 100%;
    width: 100%;
    position: relative;
}

.carousel__slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.carousel__navigation {
    display: flex;
    justify-content: center;
    gap: 12px;
    position: absolute;
    bottom: 15px;
    width: 100%;
    z-index: 10;
}

.carousel__viewport {
    display: flex;
    overflow-x: hidden; /* Oculta barras de scroll residuales */
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory;
    height: auto;
    
    /* NUEVO: Permite que el cálculo del desplazamiento por script funcione perfectamente */
    position: relative; 
}

.carousel__navigation-button {
    display: block;
    width: 1px;
    height: 1px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.3);
    text-indent: -9999px; /* Oculta el texto descriptivo manteniendo la accesibilidad */
    border: 1px solid rgba(0,0,0,0.4);
    transition: 0.3s ease;
}

.carousel__navigation-button:hover {
    background: #a84e33;
    transform: scale(1.2);
}