.media-logo-slider-wrapper-16a2354c {
    --mls-per-row: 5;
    --mls-card-w: 240px; /* fallback; script.js overrides so exactly --mls-per-row cards fit the row */
    --mls-card-h: 110px;
    --mls-gap: 28px;
    --mls-logo-opacity: 0.7;
    width: 100%;
    overflow: hidden;
    padding: 20px 0;
}

.media-logo-swiper-16a2354c {
    width: 100%;
    overflow: visible !important;
}

.media-logo-swiper-16a2354c .swiper-wrapper {
    display: flex;
    align-items: center;
    gap: var(--mls-gap);
    width: max-content !important;
    box-sizing: content-box;
    transform: translate3d(0, 0, 0);
    will-change: transform;
}

/* Animation is attached only after script.js measures the track and sets --mls-shift / --mls-duration */
.media-logo-slider-wrapper-16a2354c.is-ready .swiper-wrapper {
    animation: mls-scroll-16a2354c var(--mls-duration, 20s) linear infinite;
    animation-play-state: running;
}

/* Hover pauses in place; leaving resumes from the same point */
.media-logo-slider-wrapper-16a2354c.is-ready:hover .swiper-wrapper,
.media-logo-slider-wrapper-16a2354c.is-ready:focus-within .swiper-wrapper {
    animation-play-state: paused;
}

@keyframes mls-scroll-16a2354c {
    from { transform: translate3d(0, 0, 0); }
    to   { transform: translate3d(calc(-1 * var(--mls-shift, 0px)), 0, 0); }
}

.media-logo-slide-16a2354c {
    width: auto !important;
    height: auto !important;
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    margin: 0 !important;
}

.media-logo-card-16a2354c,
.media-logo-card-16a2354c:link,
.media-logo-card-16a2354c:visited {
    box-sizing: border-box;
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: var(--mls-card-w);
    height: var(--mls-card-h);
    padding: 12px 20px;
    margin: 0;
    overflow: hidden;
    line-height: 0;
    background-color: #ffffff;
    border: 1px solid #ececec;
    border-radius: 16px;
    box-shadow: none;
    text-decoration: none;
    transition: box-shadow 0.3s ease, border-color 0.3s ease;
    cursor: pointer;
}

.media-logo-card-16a2354c:hover {
    border-color: #e4e4e4;
    box-shadow: 0 0 14px rgba(0, 0, 0, 0.07);
}

/* High specificity on purpose: theme/global img rules must not resize the logo */
.media-logo-card-16a2354c img.media-logo-img-16a2354c {
    display: block;
    width: auto !important;
    height: auto !important;
    max-width: 100% !important;
    max-height: 100% !important;
    margin: 0 auto;
    object-fit: contain;
    object-position: center;
    opacity: var(--mls-logo-opacity);
    transition: opacity 0.3s ease;
}

.media-logo-card-16a2354c:hover img.media-logo-img-16a2354c {
    opacity: 1;
}

.media-logo-placeholder-16a2354c {
    font-size: 18px;
    line-height: 1.2;
    font-weight: bold;
    color: #333;
    text-align: center;
    opacity: var(--mls-logo-opacity);
    transition: opacity 0.3s ease;
}

.media-logo-card-16a2354c:hover .media-logo-placeholder-16a2354c {
    opacity: 1;
}

@media (max-width: 1024px) {
    .media-logo-slider-wrapper-16a2354c {
        --mls-per-row: 3;
        --mls-card-h: 104px;
        --mls-gap: 24px;
    }
}

@media (max-width: 767px) {
    .media-logo-slider-wrapper-16a2354c {
        --mls-per-row: 2;
        --mls-card-h: 88px;
        --mls-gap: 16px;
        padding: 12px 0;
    }

    .media-logo-card-16a2354c,
    .media-logo-card-16a2354c:link,
    .media-logo-card-16a2354c:visited {
        padding: 10px 14px;
        border-radius: 12px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .media-logo-slider-wrapper-16a2354c.is-ready .swiper-wrapper {
        animation: none;
    }
}
