.bcw-marquee{
    overflow: hidden;
}

.bcw-marquee-track{
    display: flex;
    width: max-content;
}

/* La animación no arranca hasta que el JS confirma que el segundo grupo ya
   está clonado y la duración calculada — si arrancara antes (con la pista
   teniendo un solo grupo y sin duración definida) se vería un salto al
   corregirse de golpe en cuanto el JS termina de construir todo. */
.bcw-marquee.is-ready .bcw-marquee-track{
    animation: bcw-marquee-scroll linear infinite;
}

.bcw-marquee-group{
    display: flex;
    flex-shrink: 0;
    white-space: nowrap;
}

@keyframes bcw-marquee-scroll{
    from{
        transform: translateX(0);
    }
    to{
        /* -50% de la pista = el ancho de un grupo completo, ya que siempre
           hay exactamente dos grupos idénticos: el bucle es perfecto sin
           importar cuántas copias del contenido haya dentro de cada uno. */
        transform: translateX(-50%);
    }
}

.bcw-marquee[data-direction="right"] .bcw-marquee-track{
    animation-direction: reverse;
}

.bcw-marquee[data-pause-hover="yes"]:hover .bcw-marquee-track{
    animation-play-state: paused;
}
