.gr-partners {
    width: 100%;
    margin: 0 auto;
}

.gr-partners__title {
    margin: 0 0 clamp(1.25rem, 3vw, 2rem);
    text-align: center;
    color: #6b5030;
}

.gr-partners__viewport {
    position: relative;
    width: 100%;
    overflow: hidden;
    padding-block: 1rem;
}

.gr-partners--fade .gr-partners__viewport {
    -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);
}

.gr-partners__track {
    display: flex;
    width: max-content;
    will-change: transform;
    animation: gr-partners-scroll var(--gr-partners-speed, 32s) linear infinite;
}

.gr-partners__group {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: var(--gr-logo-gap, 56px);
    padding-right: var(--gr-logo-gap, 56px);
}

.gr-partners__item {
    display: grid;
    flex: 0 0 var(--gr-logo-width, 220px);
    width: var(--gr-logo-width, 220px);
    height: var(--gr-logo-height, 96px);
    place-items: center;
}

.gr-partners__item a {
    display: grid;
    width: 100%;
    height: 100%;
    place-items: center;
}

.gr-partners__item img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: 100%;
    max-height: 100%;
    margin: 0;
    object-fit: contain;
    transition: filter 180ms ease, opacity 180ms ease, transform 180ms ease;
}

.gr-partners--grayscale .gr-partners__item img {
    filter: grayscale(1);
    opacity: .78;
}

.gr-partners--grayscale .gr-partners__item a:hover img,
.gr-partners--grayscale .gr-partners__item a:focus-visible img {
    filter: grayscale(0);
    opacity: 1;
}

.gr-partners__item a:hover img,
.gr-partners__item a:focus-visible img {
    transform: scale(1.035);
}

.gr-partners__item a:focus-visible {
    outline: 3px solid #d9a441;
    outline-offset: 6px;
    border-radius: 6px;
}

.gr-partners--pause .gr-partners__viewport:hover .gr-partners__track,
.gr-partners--pause .gr-partners__viewport:focus-within .gr-partners__track {
    animation-play-state: paused;
}

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

@media (max-width: 767px) {
    .gr-partners {
        --gr-logo-height: min(var(--gr-logo-height), 72px) !important;
        --gr-logo-width: min(var(--gr-logo-width), 170px) !important;
        --gr-logo-gap: min(var(--gr-logo-gap), 32px) !important;
    }

    .gr-partners--fade .gr-partners__viewport {
        -webkit-mask-image: linear-gradient(to right, transparent, #000 4%, #000 96%, transparent);
        mask-image: linear-gradient(to right, transparent, #000 4%, #000 96%, transparent);
    }
}

@media (prefers-reduced-motion: reduce) {
    .gr-partners__track {
        width: 100%;
        animation: none;
    }

    .gr-partners__group {
        width: 100%;
        flex-wrap: wrap;
        justify-content: center;
        padding-right: 0;
    }

    .gr-partners__group[aria-hidden="true"] {
        display: none;
    }
}
