.sp-research-marquee {
    --sp-marquee-bg: #062e67;
    --sp-marquee-text: #ffffff;
    --sp-marquee-accent: #ff4d73;
    --sp-marquee-duration: 28s;
    position: relative;
    width: 100%;
    overflow: hidden;
    background-color: var(--sp-marquee-bg);
    color: var(--sp-marquee-text);
}

.sp-research-marquee,
.sp-research-marquee * {
    box-sizing: border-box;
}

.sp-research-marquee__viewport {
    width: calc(100% - 48px);
    max-width: 1260px;
    margin: 0 auto;
    overflow: hidden;
}

.sp-research-marquee__track {
    display: flex;
    width: max-content;
    animation: sp-research-marquee-scroll var(--sp-marquee-duration) linear infinite;
    will-change: transform;
}

.sp-research-marquee__set {
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    gap: 56px;
    min-width: max-content;
    padding-right: 56px;
}

.sp-research-marquee__item {
    display: inline-flex;
    align-items: baseline;
    gap: 4px;
    flex: 0 0 auto;
    color: inherit;
    text-decoration: none;
    white-space: nowrap;
    transition: opacity 180ms ease;
}

.sp-research-marquee__item:hover,
.sp-research-marquee__item:focus-visible {
    opacity: 0.72;
}

.sp-research-marquee__item-label {
    color: var(--sp-marquee-text);
    font-size: 0.95rem;
    line-height: 1.2;
    letter-spacing: 0.02em;
}

.sp-research-marquee__item-plus {
    color: var(--sp-marquee-accent);
    font-size: 0.7em;
    line-height: 1;
}

.sp-research-marquee--reverse .sp-research-marquee__track {
    animation-direction: reverse;
}

.sp-research-marquee--pause-hover:hover .sp-research-marquee__track {
    animation-play-state: paused;
}

@keyframes sp-research-marquee-scroll {
    from {
        transform: translate3d(0, 0, 0);
    }

    to {
        transform: translate3d(-50%, 0, 0);
    }
}

@media (max-width: 767px) {
    .sp-research-marquee__viewport {
        width: calc(100% - 32px);
    }

    .sp-research-marquee__set {
        gap: 34px;
        padding-right: 34px;
    }

    .sp-research-marquee__item-label {
        font-size: 0.8rem;
    }
}
