/* ==========================================================================
   Brands — Seamless Logo Marquee
   ========================================================================== */

.brands-section {
    padding: var(--space-10) 0;
    overflow: hidden;
}

.brands-wrapper {
    display: grid;
    min-height: 92px;
    overflow: hidden;
    align-items: center;
    grid-template-columns: 170px minmax(0, 1fr);
}

.brands-label {
    display: flex;
    min-height: 52px;
    margin: 0;
    padding-right: var(--space-8);
    align-items: center;
    border-right: 1px solid var(--color-border-light);
    color: var(--color-text-muted);
    font-size: var(--text-xs);
    font-weight: var(--font-bold);
    letter-spacing: 0.1em;
    line-height: 1.4;
    text-transform: uppercase;
}

.brands-marquee {
    position: relative;
    min-width: 0;
    margin-left: var(--space-6);
    overflow: hidden;
    -webkit-mask-image: linear-gradient(to right, transparent, #000 7%, #000 93%, transparent);
    mask-image: linear-gradient(to right, transparent, #000 7%, #000 93%, transparent);
}

.brands-marquee:not(.is-ready) {
    overflow-x: auto;
    -webkit-mask-image: none;
    mask-image: none;
    scrollbar-width: none;
}

.brands-marquee:not(.is-ready)::-webkit-scrollbar {
    display: none;
}

.brands-marquee:focus-visible {
    outline: 2px solid var(--color-primary);
    outline-offset: var(--space-1);
}

.brands-track {
    display: flex;
    width: max-content;
    align-items: center;
    transform: translate3d(0, 0, 0);
    will-change: transform;
}

.brands-marquee.is-ready .brands-track {
    animation: brands-marquee-scroll var(--brands-duration, 32s) linear infinite;
}

.brands-marquee.is-ready:hover .brands-track,
.brands-marquee.is-ready:focus .brands-track {
    animation-play-state: paused;
}

.brands-group {
    display: flex;
    margin: 0;
    padding: 0 var(--space-8) 0 0;
    flex: 0 0 auto;
    align-items: center;
    list-style: none;
}

.brand-item {
    display: flex;
    width: clamp(150px, 13vw, 190px);
    height: 76px;
    padding: 0 var(--space-6);
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
}

.brand-item img {
    display: block;
    width: auto;
    height: auto;
    max-width: 138px;
    max-height: 34px;
    object-fit: contain;
    filter: grayscale(1);
    opacity: 0.42;
    transition:
        filter var(--transition-base),
        opacity var(--transition-base),
        transform var(--transition-base);
}

@media (hover: hover) {
    .brand-item:hover img {
        filter: grayscale(0);
        opacity: 1;
        transform: scale(1.04);
    }
}

@keyframes brands-marquee-scroll {
    to {
        transform: translate3d(var(--brands-shift, -1000px), 0, 0);
    }
}

@media (max-width: 991px) {
    .brands-wrapper {
        grid-template-columns: 145px minmax(0, 1fr);
    }

    .brands-label {
        padding-right: var(--space-6);
    }

    .brand-item img {
        filter: none;
        opacity: 0.76;
    }
}

@media (max-width: 767px) {
    .brands-section {
        padding: var(--space-6) 0;
    }

    .brands-wrapper {
        display: block;
        min-height: 66px;
    }

    .brands-label {
        display: none;
    }

    .brands-marquee {
        margin-left: 0;
        padding: var(--space-2) 0;
        -webkit-mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent);
        mask-image: linear-gradient(to right, transparent, #000 5%, #000 95%, transparent);
    }

    .brands-group {
        padding-right: var(--space-4);
    }

    .brand-item {
        width: 140px;
        height: 66px;
        padding: 0 var(--space-5);
    }

    .brand-item img {
        max-width: 112px;
        max-height: 28px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .brands-marquee {
        overflow-x: auto;
        -webkit-mask-image: none;
        mask-image: none;
        scrollbar-width: none;
    }

    .brands-marquee::-webkit-scrollbar {
        display: none;
    }

    .brands-marquee.is-ready .brands-track {
        animation: none;
    }

    .brands-group[aria-hidden="true"] {
        display: none;
    }

    .brands-marquee [data-brand-generated] {
        display: none;
    }

    .brand-item img {
        transition: none;
    }
}
