.service-marquee {
    overflow: hidden;
}

.service-marquee__track {
    animation: service-marquee 28s linear infinite;
    display: flex;
    gap: 1.25rem;
    width: max-content;
    will-change: transform;
}

.service-marquee:hover .service-marquee__track,
.service-marquee:focus-within .service-marquee__track {
    animation-play-state: paused;
}

.service-marquee__card {
    background: var(--sw-color-surface);
    border: 1px solid var(--sw-color-border);
    border-radius: var(--sw-radius-xl);
    box-shadow: var(--sw-shadow-sm);
    display: block;
    flex: 0 0 20rem;
    overflow: hidden;
    text-decoration: none;
    transition:
        box-shadow var(--sw-duration-base) var(--sw-ease),
        transform var(--sw-duration-base) var(--sw-ease);
}

.service-marquee__card:hover,
.service-marquee__card:focus-visible {
    box-shadow: var(--sw-shadow-soft);
    transform: translateY(-0.35rem);
}

@keyframes service-marquee {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(calc(-50% - 0.625rem));
    }
}

@media (prefers-reduced-motion: reduce) {
    .service-marquee__track {
        animation: none;
        flex-wrap: wrap;
        width: auto;
    }
}
