.ms-sp {
    --ms-sp-cols-desktop: 4;
    --ms-sp-cols-tablet: 3;
    --ms-sp-cols-mobile: 2;
    --ms-sp-gap: 24px;
    --ms-sp-logo-aspect-ratio: 3 / 2;
    width: 100%;
}

.ms-sp-grid {
    display: grid;
    grid-template-columns: repeat(var(--ms-sp-cols-desktop), minmax(0, 1fr));
    gap: var(--ms-sp-gap);
}

.ms-sp-grid-item,
.ms-sp-slide {
    box-sizing: border-box;
	display:flex;
}

.ms-sp-logo-link,
.ms-sp-logo-box {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-width: 0;
	max-height:200px;
}

.ms-sp-logo-link {
    text-decoration: none;
}

.ms-sp-logo-box {
    aspect-ratio: var(--ms-sp-logo-aspect-ratio);
    padding:5px;
    box-sizing: border-box;
}

.ms-sp-logo-img {
    display: block;
    max-width: 100%;
    width: 100%;
    height: 100%;
    object-fit: contain;
    opacity: 1;
    transition: opacity 0.2s ease;
	max-height:200px;
}

.ms-sp-logo-link:hover .ms-sp-logo-img,
.ms-sp-logo-link:focus .ms-sp-logo-img {
    opacity: 0.8;
}

.ms-sp-slider {
    overflow: hidden;
    position: relative;
    --ms-sp-slide-width: calc(100% / var(--ms-sp-cols-desktop));
    --ms-sp-duration: 28s;
    --ms-sp-distance: -50%;
}

.ms-sp-slider-track {
    display: flex;
    align-items: stretch;
    width: max-content;
    will-change: transform;
    animation: ms-sp-marquee var(--ms-sp-duration) linear infinite;
}

.ms-sp-slider:hover .ms-sp-slider-track {
    animation-play-state: paused;
}

.ms-sp-slide {
    flex: 0 0 var(--ms-sp-slide-width);
    width: var(--ms-sp-slide-width);
    padding: 0 calc(var(--ms-sp-gap) / 2);
}

@keyframes ms-sp-marquee {
    from {
        transform: translate3d(0, 0, 0);
    }
    to {
        transform: translate3d(var(--ms-sp-distance), 0, 0);
    }
}

@media (max-width: 1024px) {
    .ms-sp-grid {
        grid-template-columns: repeat(var(--ms-sp-cols-tablet), minmax(0, 1fr));
    }

    .ms-sp-slider {
        --ms-sp-slide-width: calc(100% / var(--ms-sp-cols-tablet));
    }
}

@media (max-width: 767px) {
    .ms-sp-grid {
        grid-template-columns: repeat(var(--ms-sp-cols-mobile), minmax(0, 1fr));
    }

    .ms-sp-slider {
        --ms-sp-slide-width: calc(100% / var(--ms-sp-cols-mobile));
    }
}

@media (prefers-reduced-motion: reduce) {
    .ms-sp-slider {
        overflow-x: auto;
    }

    .ms-sp-slider-track {
        animation: none;
    }
}
