/* ── [etapes] — Carousel de cards ───────────────────────────────────────── */

.timeline-wrap {
    display: flex;
    flex-direction: column;
    gap: var(--Spacing-m);
}

/* ── Navigation ─────────────────────────────────────────────────────────── */
.timeline-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-inline: var(--Spacing-l);
}

.timeline-nav__count {
    font-family: var(--font-family-body);
    font-size: var(--font-size-p);
    font-weight: 500;
    color: var(--Neutral-500);
}

.timeline-nav__current {
    color: var(--Neutral-900);
    font-weight: 700;
}

.timeline-nav__btns {
    display: flex;
    gap: var(--Spacing-s);
}

.timeline-nav__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border: 1px solid var(--Neutral-200);
    border-radius: var(--Radius-full);
    background: transparent;
    color: var(--Neutral-700);
    cursor: pointer;
    transition: border-color 0.2s, color 0.2s, background 0.2s;
    padding: 0;
    flex-shrink: 0;
}

.timeline-nav__btn:hover {
    border-color: var(--Primary-main);
    color: var(--Primary-main);
    background: var(--Primary-50);
}


.timeline-nav__btn svg {
    width: 1.25rem;
    height: 1.25rem;
    display: block;
}

/* ── Track ───────────────────────────────────────────────────────────────── */
.timeline-track {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-behavior: smooth;
    -webkit-overflow-scrolling: touch;
    gap: var(--Spacing-m);
    scrollbar-width: none;
    /* padding-inline calculé en JS (calibratePadding) pour centrer 1re/dernière card */
}

.timeline-track::-webkit-scrollbar {
    display: none;
}

/* Spacers de centrage (pseudo-éléments) */
.timeline-track::before,
.timeline-track::after {
    content: '';
    flex: 0 0 1px; /* sera remplacé par le calcul JS si besoin, sinon ok avec scroll-snap: start */
}

/* ── Cards ───────────────────────────────────────────────────────────────── */
.timeline-step {
    flex: 0 0 clamp(24rem, 72%, 36rem);
    scroll-snap-align: center;
    display: flex;
    flex-direction: column;
    gap: var(--Spacing-l);
    padding: var(--Spacing-xl);
    border-radius: var(--Radius-m);
    border: 1px solid var(--Neutral-200);
    background: var(--Neutral-50);
    transition:
        background 0.35s ease,
        border-color 0.35s ease;
}

/* ── État actif ──────────────────────────────────────────────────────────── */
.timeline-step.is-active {
    background: var(--Neutral-950);
    border-color: var(--Neutral-800);
}

/* ── Numéro ──────────────────────────────────────────────────────────────── */
.timeline-step__num {
    font-family: var(--font-family-heading);
    font-size: var(--font-size-h2);
    font-weight: 700;
    line-height: 1;
    color: var(--Neutral-200);
    letter-spacing: -0.03em;
    transition: color 0.35s ease;
}

.timeline-step.is-active .timeline-step__num {
    color: var(--Primary-main);
}

/* ── Body ────────────────────────────────────────────────────────────────── */
.timeline-step__body {
    display: flex;
    flex-direction: column;
    gap: var(--Spacing-s);
}

.timeline-step__titre {
    font-family: var(--font-family-heading);
    font-size: var(--font-size-h6);
    font-weight: 700;
    line-height: var(--line-height-h2);
    text-transform: uppercase;
    color: var(--Neutral-400);
    margin: 0;
    transition: color 0.35s ease;
}

.timeline-step.is-active .timeline-step__titre {
    color: var(--Neutral-50);
}

.timeline-step__texte {
    font-family: var(--font-family-body);
    font-size: var(--font-size-p);
    font-weight: 400;
    line-height: var(--line-height-p);
    color: var(--Neutral-400);
    transition: color 0.35s ease;
}

.timeline-step.is-active .timeline-step__texte {
    color: var(--Neutral-400);
}

.timeline-step__texte p { margin: 0 0 var(--Spacing-xs); }
.timeline-step__texte p:last-child { margin-bottom: 0; }

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media (max-width: 980px) {
    .timeline-step {
        flex: 0 0 clamp(20rem, 80%, 28rem);
    }
}

@media (max-width: 600px) {
    .timeline-step {
        flex: 0 0 calc(100% - 2rem);
    }
}
