/* «Webivan» v2 work stages: a line that fills with cobalt as you scroll. */
.wi-steps { --p: 1; --dot: 48px; position: relative; }
.wi-js:not(.wi-still) .wi-steps { --p: 0; }
.wi-steps__rail {
    position: absolute;
    top: calc(var(--dot) / 2);
    left: calc(var(--dot) / 2);
    right: calc(100% / var(--cols, 4) - var(--dot) / 2);
    height: 2px;
    border-radius: 2px;
    background: var(--wi-line-2);
    overflow: hidden;
}
.wi-steps__fill { position: absolute; inset: 0; background: var(--webivan-cobalt-2); transform: scaleX(var(--p)); transform-origin: left; }
.wi-steps__list { position: relative; display: grid; grid-template-columns: repeat(var(--cols, 4), minmax(0, 1fr)); gap: 32px clamp(20px, 2.4vw, 40px); margin: 0; padding: 0; list-style: none; }
.wi-steps__item { position: relative; display: grid; align-content: start; gap: 10px; min-width: 0; }
.wi-steps__dot {
    display: grid;
    place-items: center;
    width: var(--dot);
    height: var(--dot);
    margin-bottom: 14px;
    border-radius: 50%;
    background: var(--webivan-night);
    box-shadow: inset 0 0 0 1px var(--wi-line-2);
    color: var(--webivan-mute);
    font-family: var(--webivan-font-display);
    font-size: 14px;
    font-weight: 600;
    transition: background-color 0.4s var(--wi-ease-out), color 0.4s var(--wi-ease-out), box-shadow 0.4s var(--wi-ease-out);
}
.wi-steps__dot svg { width: 20px; height: 20px; }
.wi-steps__item.is-on .wi-steps__dot,
.wi-still .wi-steps__dot, html:not(.wi-js) .wi-steps__dot {
    background: var(--webivan-cobalt);
    color: #fff;
    box-shadow: 0 0 0 6px color-mix(in srgb, var(--webivan-cobalt) 16%, transparent);
}
.wi-body .wi-steps__title { margin: 0; font-size: var(--wi-fs-card); }
.wi-steps__meta { margin: 0; color: var(--webivan-cobalt-2); font-size: 14px; font-weight: 500; }
.wi-steps__text { margin: 0; color: var(--webivan-mute); font-size: 15px; line-height: 1.6; }
.wi-steps__result { display: flex; gap: 8px; margin: 4px 0 0; font-size: 15px; }
.wi-steps__result svg { flex: 0 0 auto; width: 18px; height: 18px; margin-top: 2px; color: var(--webivan-cobalt-2); }
.wi-steps__total { margin: 48px 0 0; color: var(--webivan-mute); }
.wi-steps__total strong { margin-left: 8px; font-family: var(--webivan-font-display); font-size: 24px; font-weight: 600; color: #fff; }

/* More than six steps or narrow screens: a vertical line on the left. */
@media (max-width: 63.99rem) {
    .wi-steps__rail { top: calc(var(--dot) / 2); bottom: calc(var(--dot) / 2); left: calc(var(--dot) / 2 - 1px); right: auto; width: 2px; height: auto; }
    .wi-steps__fill { transform: scaleY(var(--p)); transform-origin: top; }
    .wi-steps__list { grid-template-columns: 1fr; gap: 28px; }
    .wi-steps__item { grid-template-columns: var(--dot) minmax(0, 1fr); column-gap: 20px; row-gap: 6px; }
    .wi-steps__item > :not(.wi-steps__dot) { grid-column: 2; }
    .wi-steps__dot { grid-row: 1 / span 4; margin-bottom: 0; }
    .wi-steps__title { padding-top: 10px; }
}
@media (max-width: 47.99rem) { .wi-steps { --dot: 40px; } }
