@keyframes slide {
    from {
        transform: translateX(0);
    }
    to {
        transform: translateX(calc(-1 * var(--scroll-width)));
    }
}

.carousel__header {
    margin: 30px auto;
}

.carousel__logos {
    overflow: hidden;
    position: relative;
    width: 100%;
    background: #fff;
    cursor: default;
}

.carousel__logos::before,
.carousel__logos::after {
    content: "";
    position: absolute;
    top: 0;
    width: 150px;
    height: 100%;
    pointer-events: none;
    z-index: 2;
}

.carousel__logos::before {
    left: 0;
    background: linear-gradient(to left, rgba(255,255,255,0), white);
}

.carousel__logos::after {
    right: 0;
    background: linear-gradient(to right, rgba(255,255,255,0), white);
}

.carousel__logos-track {
    display: flex;
    width: max-content;
    gap: 40px;

    will-change: transform;
    transform: translateZ(0);
    animation: none;
}

.carousel__logos-track.is-ready {
    animation: slide linear infinite;
}

.carousel__logos:hover .carousel__logos-track {
    animation-play-state: paused;
    cursor: default;
}

.carousel__logo[data-link] {
    cursor: pointer;
}

.carousel__logo {
    display: block;
    max-height: 100px;
    height: auto;
    width: auto;
    max-width: 100%;
    flex-shrink: 0;
}

@media (max-width: 768px) {
    .carousel {
        display: none;
    }
}
