.td-carousel {
    position: relative;
    width: 100%;
    overflow: hidden;
    padding: var(--td-carousel-padding-y, 0px) 0;
}

.td-carousel__viewport {
    overflow: hidden;
    width: 100%;
}

.td-carousel__track {
    display: flex;
    align-items: center;
    width: max-content;
    gap: var(--td-carousel-gap, 24px);
    animation: td-carousel-marquee var(--td-carousel-speed, 28s) linear infinite;
    will-change: transform;
}

.td-carousel:hover .td-carousel__track {
    animation-play-state: paused;
}

.td-carousel__item {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
}

.td-carousel__image {
    display: block;
    width: auto;
    height: var(--td-carousel-height, 96px);
    max-width: none;
    object-fit: contain;
}

@keyframes td-carousel-marquee {
    from {
        transform: translate3d(0, 0, 0);
    }

    to {
        transform: translate3d(calc(-50% - (var(--td-carousel-gap, 24px) / 2)), 0, 0);
    }
}

@media (max-width: 767px) {
    .td-carousel__image {
        height: var(--td-carousel-mobile-height, 72px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .td-carousel__track {
        animation-duration: 1ms;
        animation-iteration-count: 1;
    }
}
