.logo-carousel {
    width: 100%;
    overflow: hidden;
    position: relative;
    box-sizing: border-box;
}

.carousel-row {
    width: 100%;
    height: var(--alc-row-height, 80px);
    overflow: hidden;
    position: relative;
    margin-bottom: 10px;
    display: flex;
    align-items: center;
    contain: layout paint;
}

.carousel-row:last-child {
    margin-bottom: 0;
}

.carousel-track {
    display: flex;
    width: max-content;
    min-width: max-content;
    align-items: center;
    will-change: transform;
    transform: translate3d(0, 0, 0);
    backface-visibility: hidden;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
    animation-fill-mode: both;
    animation-play-state: running;
}

.carousel-track.alc-ready[data-direction="right"] {
    animation-name: alcScrollRight;
}

.carousel-track.alc-ready[data-direction="left"] {
    animation-name: alcScrollLeft;
}

.carousel-sequence {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    width: max-content;
    min-width: max-content;
}

.carousel-item {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    height: var(--alc-row-height, 80px);
    margin-right: var(--alc-current-gap, var(--alc-logo-gap, 30px));
    box-sizing: border-box;
}

.carousel-item a {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
}

.carousel-item img {
    display: block;
    width: auto;
    height: auto;
    max-width: var(--alc-logo-max-width, 120px);
    max-height: calc(var(--alc-row-height, 80px) - 10px);
    object-fit: contain;
    mix-blend-mode: multiply;
    transition: transform 0.3s ease;
    transform: translateZ(0);
}

@media (hover: hover) and (pointer: fine) {
    .carousel-item:hover img {
        transform: scale(1.1) translateZ(0);
    }
}

@keyframes alcScrollRight {
    from {
        transform: translate3d(0, 0, 0);
    }
    to {
        transform: translate3d(calc(-1 * var(--alc-distance, 0px)), 0, 0);
    }
}

@keyframes alcScrollLeft {
    from {
        transform: translate3d(calc(-1 * var(--alc-distance, 0px)), 0, 0);
    }
    to {
        transform: translate3d(0, 0, 0);
    }
}

@media (max-width: 768px) {
    .carousel-row {
        margin-bottom: 8px;
    }
}

@media (max-width: 480px) {
    .carousel-row {
        margin-bottom: 5px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .carousel-track.alc-ready {
        animation-play-state: paused;
    }
}
