.ebmnt1-steps__list {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 0;
    counter-reset: ebmnt1-step;
}

.ebmnt1-step {
    display: flex;
    align-items: stretch;
    gap: 1em;
    padding-block-end: 1.5em;
}

.ebmnt1-step:last-child {
    padding-block-end: 0;
}

/* ===== rail (node + progress line) ===== */
.ebmnt1-step__rail {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex-shrink: 0;
    gap: 0.4em;
}

.ebmnt1-step__node {
    flex-shrink: 0;
    width: 1.25rem;
    aspect-ratio: 1;
    border: 3px solid var(--ebmnt1-color-step-node-border);
    border-radius: var(--ebmnt1-radius-circle);
    background-color: var(--ebmnt1-color-step-node-bg);
    transition: background-color var(--ebmnt1-duration-slow) var(--ebmnt1-ease-main), transform var(--ebmnt1-duration-slow) var(--ebmnt1-ease-main);
}

.ebmnt1-step.is-active .ebmnt1-step__node {
    background-color: var(--ebmnt1-color-step-node-active-bg);
    transform: scale(1.2);
}

.ebmnt1-step__line {
    position: relative;
    flex: 1;
    width: 3px;
    border-radius: 3px;
    background-color: var(--ebmnt1-color-step-rail-track);
    overflow: hidden;
}

.ebmnt1-step__line::after {
    content: "";
    position: absolute;
    inset: 0;
    background-color: var(--ebmnt1-color-step-rail-fill);
    transform: scaleY(0);
    transform-origin: top;
    transition: transform 1s var(--ebmnt1-ease-main) 0.3s;
}

.ebmnt1-step.is-active .ebmnt1-step__line::after {
    transform: scaleY(1);
}

.ebmnt1-step:last-child .ebmnt1-step__line {
    display: none;
}

/* ===== card ===== */
.ebmnt1-step__card {
    position: relative;
    isolation: isolate;
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1em;
    padding: 1.75em 1.5em;
    border: 1px solid var(--ebmnt1-color-step-card-border);
    border-radius: var(--ebmnt1-radius-card);
    background-color: var(--ebmnt1-color-step-card-bg);
    overflow: hidden;
    text-align: start;
    --ebmnt1-circle-bg: var(--ebmnt1-color-step-icon-bg);
    --ebmnt1-circle-fill: var(--ebmnt1-color-step-icon-fill);
    --ebmnt1-circle-icon: var(--ebmnt1-color-step-icon);
    --ebmnt1-circle-size: 4rem;
}

.ebmnt1-step__card::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background-color: var(--ebmnt1-color-step-card-fill);
    transform: translateY(100%);
    transition: transform var(--ebmnt1-duration-medium) var(--ebmnt1-ease-main);
}

.ebmnt1-step__card:hover::before {
    transform: translateY(0);
}

.ebmnt1-step__number {
    position: absolute;
    top: 0.1em;
    inset-inline-end: 0.4em;
    z-index: -1;
    font-size: var(--ebmnt1-fs-step-number);
    font-weight: 700;
    line-height: 1;
    color: transparent;
    -webkit-text-stroke: 1.5px var(--ebmnt1-color-step-number-stroke);
    transition: -webkit-text-stroke-color var(--ebmnt1-duration-medium) var(--ebmnt1-ease-main);
}

.ebmnt1-step__card:hover .ebmnt1-step__number {
    -webkit-text-stroke-color: var(--ebmnt1-color-step-number-stroke-hover);
}

.ebmnt1-step__card:hover .ebmnt1-icon-circle {
    transform: rotate(-360deg);
}

.ebmnt1-step__title {
    font-size: var(--ebmnt1-fs-h3);
    color: var(--ebmnt1-color-step-title);
    transition: color var(--ebmnt1-duration-fast) var(--ebmnt1-ease-main);
}

.ebmnt1-step__text {
    color: var(--ebmnt1-color-step-text);
    transition: color var(--ebmnt1-duration-fast) var(--ebmnt1-ease-main);
}

.ebmnt1-step__card:hover .ebmnt1-step__title {
    color: var(--ebmnt1-color-step-title-hover);
}

.ebmnt1-step__card:hover .ebmnt1-step__text {
    color: var(--ebmnt1-color-step-text-hover);
}

@media (min-width: 768px) {
    .ebmnt1-steps__list {
        flex-direction: row;
        flex-wrap: wrap;
        row-gap: 1.5em;
    }

    .ebmnt1-step {
        width: 50%;
        padding-block-end: 0;
        padding-inline-end: var(--ebmnt1-gap-cards);
    }
}

@media (min-width: 1024px) {
    .ebmnt1-steps__list {
        flex-wrap: nowrap;
    }

    .ebmnt1-step {
        flex: 1;
        flex-direction: column;
        gap: 1.2em;
        padding-block-end: 0;
        padding-inline-end: var(--ebmnt1-gap-cards);
    }

    .ebmnt1-step:last-child {
        padding-inline-end: 0;
    }

    .ebmnt1-step__rail {
        flex-direction: row;
        gap: 0.4em;
    }

    .ebmnt1-step__line {
        flex: 1;
        width: auto;
        height: 3px;
        margin-inline-end: calc(var(--ebmnt1-gap-cards) * -1);
    }

    .ebmnt1-step__line::after {
        transform: scaleX(0);
        transform-origin: right;
    }

    .ebmnt1-step.is-active .ebmnt1-step__line::after {
        transform: scaleX(1);
    }

    .ebmnt1-step:last-child .ebmnt1-step__line {
        display: none;
    }
}
