.partners-section {
    background: color-mix(in srgb, var(--col-site-accent) 7%, var(--col-body-bg, #fff));
    overflow: hidden;
    padding-bottom: clamp(2rem, 4vw, 3.25rem);
}

.partners-container {
    max-width: var(--content-max, 1120px);
    margin: 0 auto;
    padding: 0 1rem;
}

.partners-intro {
    text-align: center;
    color: var(--col-muted, var(--col-body-text));
    font-size: 1rem;
    line-height: 1.55;
    margin: -0.5rem auto 1.5rem;
    max-width: 34rem;
}

.partners-marquee {
    overflow: hidden;
    width: 100%;
    mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent);
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 3%, #000 97%, transparent);
}

.partners-marquee-track {
    display: flex;
    width: max-content;
    will-change: transform;
    backface-visibility: hidden;
    transform: translate3d(0, 0, 0);
    animation: partners-scroll 70s linear infinite;
}

.partners-marquee:hover .partners-marquee-track {
    animation-play-state: paused;
}

.partners-track {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    gap: 2.75rem;
    list-style: none;
    margin: 0;
    /* Trailing gap equal to item gap so the loop seam matches mid-track spacing */
    padding: 0 2.75rem 0 0;
}

.partners-item {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 9.5rem;
    height: 3.25rem;
    padding: 0;
    margin: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
    border-radius: 0;
}

.partners-logo {
    display: block;
    width: auto;
    height: 2.6rem;
    max-width: 9rem;
    object-fit: contain;
    object-position: center;
    filter: brightness(0) saturate(100%) invert(58%);
    opacity: 0.9;
}

.partners-logo--icon {
    height: 3.15rem;
}

@keyframes partners-scroll {
    from { transform: translate3d(0, 0, 0); }
    to { transform: translate3d(-50%, 0, 0); }
}

@media (prefers-reduced-motion: reduce) {
    .partners-marquee {
        mask-image: none;
        -webkit-mask-image: none;
    }

    .partners-marquee-track {
        animation: none;
        width: 100%;
        max-width: var(--content-max, 1120px);
        margin: 0 auto;
        flex-wrap: wrap;
        justify-content: center;
        transform: none;
        will-change: auto;
    }

    .partners-track:nth-child(2) {
        display: none;
    }

    .partners-track {
        flex-wrap: wrap;
        justify-content: center;
        gap: 1.5rem 2.25rem;
        padding: 0 1rem;
    }
}
