/**
 * Elementor Logo Marquee — frontend styles
 */

.elm-logo-marquee {
    --items-per-view: 5;
    --logo-gap: 30px;

    position: relative;
    width: 100%;
    overflow: hidden;
    container-type: inline-size;
}

.elm-logo-marquee__track {
    display: flex;
    flex-wrap: nowrap;
    width: max-content;
    animation: elm-marquee-scroll 30s linear infinite;
    will-change: transform;
}

.elm-logo-marquee__item {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: var(--logo-gap);
    /* Width derived from the container so "items per view" is honored
       even though the track itself is wider than the container. */
    width: calc(
        (100cqi - (var(--items-per-view) * var(--logo-gap)))
        / var(--items-per-view)
    );
    box-sizing: border-box;
}

.elm-logo-marquee__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    text-decoration: none;
}

.elm-logo-marquee__img {
    display: block;
    max-width: 100%;
    width: 150px;
    height: 80px;
    object-fit: contain;
    transition: filter .3s ease, transform .3s ease, opacity .3s ease;
}

/* ---------- Direction ---------- */
.elm-direction-right .elm-logo-marquee__track {
    animation-direction: reverse;
}

/* ---------- Pause on hover ---------- */
.elm-pause-hover-yes .elm-logo-marquee:hover .elm-logo-marquee__track {
    animation-play-state: paused;
}

/* ---------- Edge fade ---------- */
.elm-fade-yes .elm-logo-marquee {
    -webkit-mask-image: linear-gradient(
        to right,
        transparent 0,
        #000 8%,
        #000 92%,
        transparent 100%
    );
            mask-image: linear-gradient(
        to right,
        transparent 0,
        #000 8%,
        #000 92%,
        transparent 100%
    );
}

/* ---------- Grayscale ---------- */
.elm-grayscale-yes .elm-logo-marquee__img {
    filter: grayscale(100%);
}
.elm-grayscale-yes .elm-logo-marquee__item:hover .elm-logo-marquee__img {
    filter: grayscale(0%);
}

/* ---------- Animation ---------- */
@keyframes elm-marquee-scroll {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}

/* ---------- Accessibility: respect reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
    .elm-logo-marquee__track {
        animation: none;
    }
}

/* ---------- Fallback for very old browsers without container queries ---------- */
@supports not (container-type: inline-size) {
    .elm-logo-marquee__item {
        width: 150px; /* falls back to fixed width = logo width default */
    }
}
