.vio-logo-carousel {
    --vio-logo-carousel-duration: 32s;
    --vio-logo-carousel-gap: clamp(1.2rem, 3vw, 3rem);
    width: 100%;
    overflow: hidden;
    position: relative;
}

.vio-logo-carousel-track {
    display: flex;
    width: max-content;
    align-items: center;
    animation: vio-logo-carousel-scroll var(--vio-logo-carousel-duration) linear infinite;
    will-change: transform;
}

.vio-logo-carousel-group {
    display: flex;
    align-items: center;
    gap: var(--vio-logo-carousel-gap);
    flex-shrink: 0;
    padding-right: var(--vio-logo-carousel-gap);
}

.vio-logo-carousel-item {
    flex: 0 0 auto;
}

.vio-logo-carousel-image {
    display: block;
    height: 72px;
    width: auto;
    max-width: 100%;
    object-fit: contain;
}

.vio-logo-carousel.is-pause-on-hover:hover .vio-logo-carousel-track {
    animation-play-state: paused;
}

.vio-logo-carousel.is-static .vio-logo-carousel-track {
    animation: none;
    width: 100%;
    justify-content: center;
}

.vio-logo-carousel.is-static .vio-logo-carousel-group {
    width: 100%;
    justify-content: center;
    padding-right: 0;
}

@keyframes vio-logo-carousel-scroll {
    from {
        transform: translate3d(0, 0, 0);
    }
    to {
        transform: translate3d(-50%, 0, 0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .vio-logo-carousel-track {
        animation: none;
    }
}
