.sps-timeline {
    --sps-timeline-red: #d7192d;
    --sps-timeline-red-dark: #b31325;
    --sps-timeline-navy: #0b1424;
    --sps-timeline-text: #101828;
    --sps-timeline-muted: #667085;
    position: relative;
    width: 100%;
    padding: 86px 30px 100px;
    color: var(--sps-timeline-text);
    background: #f7f8fa;
    overflow: hidden;
}

.sps-timeline *, .sps-timeline *::before, .sps-timeline *::after { box-sizing: border-box; }
.sps-timeline__inner { position: relative; z-index: 1; width: min(1180px, 100%); margin: 0 auto; }
.sps-timeline__header { max-width: 880px; margin: 0 auto 62px; text-align: center; }
.sps-timeline__eyebrow { position: relative; display: inline-flex; margin-bottom: 17px; padding: 7px 12px; color: var(--sps-timeline-red); background: rgba(215,25,45,.08); border-radius: 999px; font-size: 12px; font-weight: 850; letter-spacing: .1em; line-height: 1; }
.sps-timeline__eyebrow::after { content: ''; position: absolute; width: 52px; height: 3px; margin-top: 26px; left: 50%; background: var(--sps-timeline-red); border-radius: 5px; transform: translateX(-50%); }
.sps-timeline__title { margin: 13px 0 0; color: var(--sps-timeline-navy); font-size: clamp(34px,4.4vw,58px); font-weight: 850; line-height: 1.08; letter-spacing: -.042em; }
.sps-timeline__lead { max-width: 760px; margin: 17px auto 0; color: var(--sps-timeline-muted); font-size: clamp(16px,1.6vw,19px); line-height: 1.65; }

.sps-timeline__track { position: relative; padding: 18px 0; }
.sps-timeline__line { position: absolute; top: 0; bottom: 0; left: 50%; width: 3px; background: linear-gradient(180deg, transparent 0, var(--sps-timeline-navy) 4%, var(--sps-timeline-navy) 96%, transparent 100%); border-radius: 5px; transform: translateX(-50%); opacity: .95; }
.sps-timeline__event { position: relative; display: grid; width: 100%; min-height: 178px; grid-template-columns: 1fr 1fr; }
.sps-timeline__event + .sps-timeline__event { margin-top: 22px; }
.sps-timeline__card { position: relative; width: calc(100% - 54px); max-width: 510px; padding: 24px 28px 25px 34px; background: rgba(255,255,255,.96); border: 1px solid #e2e6ec; border-radius: 18px; box-shadow: 0 16px 38px rgba(16,24,40,.08); transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.sps-timeline__event.is-left .sps-timeline__card { grid-column: 1; justify-self: start; }
.sps-timeline__event.is-right .sps-timeline__card { grid-column: 2; justify-self: end; }
.sps-timeline__card::after { content: ''; position: absolute; top: 54px; width: 55px; height: 2px; background: #b9c0cb; }
.sps-timeline__event.is-left .sps-timeline__card::after { right: -55px; }
.sps-timeline__event.is-right .sps-timeline__card::after { left: -55px; }
.sps-timeline__event:hover .sps-timeline__card { transform: translateY(-4px); border-color: rgba(215,25,45,.28); box-shadow: 0 22px 48px rgba(16,24,40,.13); }
.sps-timeline__accent { position: absolute; top: 20px; bottom: 20px; width: 4px; background: var(--sps-timeline-red); border-radius: 9px; }
.sps-timeline__event.is-left .sps-timeline__accent { left: 13px; }
.sps-timeline__event.is-right .sps-timeline__accent { right: 13px; }
.sps-timeline__date { display: inline-flex; min-width: 82px; min-height: 38px; padding: 7px 17px; align-items: center; justify-content: center; color: var(--sps-timeline-red-dark); background: #fdebed; border-radius: 999px; font-size: 18px; font-weight: 850; line-height: 1; }
.sps-timeline__event-title { margin: 13px 0 0; color: var(--sps-timeline-navy); font-size: clamp(20px,2vw,25px); font-weight: 820; line-height: 1.25; letter-spacing: -.025em; }
.sps-timeline__event-description { margin: 9px 0 0; color: var(--sps-timeline-muted); font-size: 15px; line-height: 1.65; }
.sps-timeline__node { position: absolute; z-index: 2; top: 42px; left: 50%; width: 25px; height: 25px; background: var(--sps-timeline-red); border: 5px solid #fff; border-radius: 50%; transform: translateX(-50%); box-shadow: 0 0 0 2px rgba(215,25,45,.22), 0 5px 17px rgba(215,25,45,.38); transition: transform .25s ease; }
.sps-timeline__event:hover .sps-timeline__node { transform: translateX(-50%) scale(1.14); }

.sps-timeline__event { opacity: 0; transform: translateY(30px); transition: opacity .58s ease, transform .58s cubic-bezier(.22,1,.36,1); }
.sps-timeline__event.is-visible { opacity: 1; transform: none; }
.sps-timeline__decor { position: absolute; width: 320px; height: 320px; border: 54px solid rgba(11,20,36,.025); border-radius: 50%; pointer-events: none; }
.sps-timeline__decor--top { top: -205px; right: -120px; }
.sps-timeline__decor--bottom { bottom: -225px; left: -155px; border-color: rgba(215,25,45,.055); }

@media (max-width: 900px) {
    .sps-timeline { padding: 72px 22px 82px; }
    .sps-timeline__header { margin-bottom: 46px; }
    .sps-timeline__line { left: 19px; transform: none; }
    .sps-timeline__event { display: block; min-height: 0; padding-left: 61px; }
    .sps-timeline__event + .sps-timeline__event { margin-top: 28px; }
    .sps-timeline__card, .sps-timeline__event.is-left .sps-timeline__card, .sps-timeline__event.is-right .sps-timeline__card { width: 100%; max-width: none; }
    .sps-timeline__card::after, .sps-timeline__event.is-left .sps-timeline__card::after, .sps-timeline__event.is-right .sps-timeline__card::after { top: 47px; right: auto; left: -43px; width: 43px; }
    .sps-timeline__event.is-left .sps-timeline__accent, .sps-timeline__event.is-right .sps-timeline__accent { right: auto; left: 13px; }
    .sps-timeline__node { top: 35px; left: 8px; transform: none; }
    .sps-timeline__event:hover .sps-timeline__node { transform: scale(1.14); }
}

@media (max-width: 560px) {
    .sps-timeline { padding: 57px 16px 66px; }
    .sps-timeline__header { margin-bottom: 35px; text-align: left; }
    .sps-timeline__eyebrow::after { left: 0; transform: none; }
    .sps-timeline__title { font-size: clamp(31px,10vw,41px); }
    .sps-timeline__track { padding: 8px 0; }
    .sps-timeline__line { left: 12px; }
    .sps-timeline__event { padding-left: 42px; }
    .sps-timeline__card { padding: 21px 19px 22px 27px; border-radius: 15px; }
    .sps-timeline__card::after, .sps-timeline__event.is-left .sps-timeline__card::after, .sps-timeline__event.is-right .sps-timeline__card::after { top: 43px; left: -30px; width: 30px; }
    .sps-timeline__node { top: 31px; left: 1px; width: 24px; height: 24px; }
    .sps-timeline__date { min-width: 72px; min-height: 34px; padding: 6px 14px; font-size: 16px; }
    .sps-timeline__event-title { font-size: 20px; }
    .sps-timeline__event-description { font-size: 14px; }
}

@media (prefers-reduced-motion: reduce) {
    .sps-timeline__event { opacity: 1; transform: none; transition: none; }
    .sps-timeline__card, .sps-timeline__node { transition: none; }
}
