.fm-logo-marquee,
.fm-logo-marquee * {
    box-sizing: border-box;
}

.fm-logo-marquee {
    position: relative;
    width: 100%;
    padding: var(--fm-logo-padding-y, 28px) 0;
    overflow: hidden;
    background: var(--fm-logo-background, #fff);
}

.fm-logo-marquee--fullwidth-yes {
    width: 100vw;
    max-width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
}

.fm-logo-marquee__viewport {
    width: 100%;
    overflow: hidden;
}

.fm-logo-marquee--fade-yes .fm-logo-marquee__viewport {
    -webkit-mask-image: linear-gradient(to right, transparent 0, #000 6%, #000 94%, transparent 100%);
    mask-image: linear-gradient(to right, transparent 0, #000 6%, #000 94%, transparent 100%);
}

.fm-logo-marquee__track {
    display: flex;
    width: max-content;
    min-width: 100%;
    will-change: transform;
    animation-duration: var(--fm-logo-duration, 30s);
    animation-timing-function: linear;
    animation-iteration-count: infinite;
}

.fm-logo-marquee--left .fm-logo-marquee__track {
    animation-name: fm-logo-marquee-left;
}

.fm-logo-marquee--right .fm-logo-marquee__track {
    animation-name: fm-logo-marquee-right;
}

.fm-logo-marquee--pause-yes:hover .fm-logo-marquee__track,
.fm-logo-marquee--pause-yes:focus-within .fm-logo-marquee__track {
    animation-play-state: paused;
}

.fm-logo-marquee__group {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    gap: var(--fm-logo-gap, 70px);
    min-width: max-content;
    padding-right: var(--fm-logo-gap, 70px);
}

.fm-logo-marquee__item,
.fm-logo-marquee__link {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
}

.fm-logo-marquee__link {
    text-decoration: none;
}

.fm-logo-marquee__image {
    display: block;
    width: auto;
    max-width: 240px;
    height: var(--fm-logo-height, 70px);
    object-fit: contain;
    opacity: .76;
    transform: translateZ(0) scale(1);
    transition: filter .22s ease, opacity .22s ease, transform .22s ease;
}

.fm-logo-marquee--grayscale-yes .fm-logo-marquee__image {
    filter: grayscale(1);
}

.fm-logo-marquee__item:hover .fm-logo-marquee__image,
.fm-logo-marquee__link:focus-visible .fm-logo-marquee__image {
    filter: grayscale(0);
    opacity: 1;
    transform: translateZ(0) scale(1.04);
}

@keyframes fm-logo-marquee-left {
    from { transform: translate3d(0, 0, 0); }
    to { transform: translate3d(calc(-1 * var(--fm-logo-distance, 0px)), 0, 0); }
}

@keyframes fm-logo-marquee-right {
    from { transform: translate3d(calc(-1 * var(--fm-logo-distance, 0px)), 0, 0); }
    to { transform: translate3d(0, 0, 0); }
}

@media (max-width: 767px) {
    .fm-logo-marquee__image {
        max-width: 180px;
        height: var(--fm-logo-height-mobile, 48px);
    }

    .fm-logo-marquee--fade-yes .fm-logo-marquee__viewport {
        -webkit-mask-image: linear-gradient(to right, transparent 0, #000 10%, #000 90%, transparent 100%);
        mask-image: linear-gradient(to right, transparent 0, #000 10%, #000 90%, transparent 100%);
    }
}

@media (prefers-reduced-motion: reduce) {
    .fm-logo-marquee__viewport {
        overflow-x: auto;
        -webkit-mask-image: none !important;
        mask-image: none !important;
        scrollbar-width: thin;
    }

    .fm-logo-marquee__track {
        animation: none !important;
        transform: none !important;
    }

    .fm-logo-marquee__group[aria-hidden="true"] {
        display: none;
    }
}
