.marquee-container {
    overflow: hidden;
    width: 100%;
    position: relative;
    display: flex;
}

.marquee-track {
    display: flex;
    flex-wrap: nowrap;
    animation: marquee-scroll 20s linear infinite;
    gap: 30px; /* Overridden by widget settings */
}

.marquee-pause-hover-yes .marquee-container:hover .marquee-track {
    animation-play-state: paused;
}

.marquee-item {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
}

.marquee-item img {
    display: block;
    width: 150px; /* Overridden by widget settings */
    height: auto;
}

@keyframes marquee-scroll {
    0% {
        transform: translateX(0%);
    }
    100% {
        transform: translateX(calc(-50% - (var(--gap, 0px) / 2)));
    }
}

/* Fallback for exact looping if gap is set */
.marquee-track {
    animation-name: marquee-scroll-exact;
}

@keyframes marquee-scroll-exact {
    0% {
        transform: translateX(0);
    }
    100% {
        transform: translateX(-50%);
    }
}
