.client-carousel {
    overflow: hidden;
    --client-visible-count: 6;
    --client-group-width: max(100%, calc(100% / var(--client-visible-count) * var(--client-count)));
}
.client-carousel-track {
    display: flex;
    width: 100%;
    animation: client-carousel-scroll 36s linear infinite;
}
.client-carousel-group {
    display: grid;
    grid-template-columns: repeat(var(--client-count), minmax(0, 1fr));
    flex: 0 0 var(--client-group-width);
}
.client-carousel-item { padding: 5vw 15px; }
.client-carousel .client-box { display: flex; align-items: center; justify-content: center; height: 110px; }
.client-carousel .client-box a { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.client-carousel .client-box img { width: auto; height: auto; max-width: 100%; max-height: 100%; object-fit: contain; }
.client-carousel:hover .client-carousel-track,
.client-carousel:focus-within .client-carousel-track { animation-play-state: paused; }
@keyframes client-carousel-scroll {
    to { transform: translateX(calc(-1 * var(--client-group-width))); }
}
@media (max-width: 1199px) {
    .client-carousel .client-box { height: 80px; }
}
@media (max-width: 991px) {
    .client-carousel { --client-visible-count: 3; }
}
@media (max-width: 767px) {
    .client-carousel { --client-visible-count: 2; }
    .client-carousel-item { padding-block: 30px; }
}
@media (max-width: 575px) {
    .client-carousel-single-mobile { --client-visible-count: 1; }
}
@media (prefers-reduced-motion: reduce) {
    .client-carousel-track { animation: none; }
    .client-carousel-group { flex-basis: 100%; grid-template-columns: repeat(6, minmax(0, 1fr)); }
    .client-carousel-group[aria-hidden] { display: none; }
    @media (max-width: 991px) {
        .client-carousel-group { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    }
    @media (max-width: 767px) {
        .client-carousel-group { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    }
    @media (max-width: 575px) {
        .client-carousel-single-mobile .client-carousel-group { grid-template-columns: 1fr; }
    }
}
