/* Production Steps Section
   Figma: desktop 23:1074 / mobile 28:2477
   ──────────────────────────────────────────── */

.production-steps {
    padding: 24px;
}

/* ── Shared ─────────────────────────────────── */

.production-steps__badge {
    flex: 0 0 auto;
    width: 45px;
    height: 45px;
    border-radius: 10px;
    background: #4C8840;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Arial', Serif;
    font-size: 16px;
    font-weight: 700;
    line-height: 20px;
    color: #ffffff;
}

.production-steps__title {
    font-family: 'Arial', Serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 24px;
    letter-spacing: -0.4px;
    color: #1C1F22;
    margin: 0;
    max-width: 150px;
    text-align: center;
}

.production-steps__dot {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: #4C8840;
    border: 2px solid #ffffff;
    box-shadow: 0 0 0 1px #D9D9D9;
    z-index: 9;
}

/* ── Desktop (zigzag timeline) ──────────────── */

.production-steps__desktop {
    display: block;
}

.production-steps__row,
.production-steps__line {
    display: flex;
    justify-content: space-between;
}

.production-steps__row {
    position: relative;
    min-height: 140px;
}

.production-steps__row--top {
    margin-bottom: 32px;
}

.production-steps__row--bottom {
    margin-top: 32px;
}

/* Zero-width "anchor" per step — justify-content: space-between then
   distributes all anchors with perfectly equal gaps, first flush left,
   last flush right. Actual content is absolutely positioned on top of
   its anchor, so its own width never affects the spacing math. */
.production-steps__slot {
    position: relative;
    width: 0;
}

.production-steps__step {
    position: absolute;
    left: 0;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    gap: 12px;
    text-align: center;
    width: max-content;
    max-width: 220px;
    align-items: center;
}

.production-steps__row--top .production-steps__step {
    bottom: 0;
}

.production-steps__row--bottom .production-steps__step {
    top: 0;
}

.production-steps__slot:first-child .production-steps__step {
    left: 0;
    right: auto;
    transform: translateX(0);
    align-items: flex-start;
    text-align: left;
}

.production-steps__slot:last-child .production-steps__step {
    left: auto;
    right: 0;
    transform: translateX(0);
    align-items: flex-end;
    text-align: right;
}

.production-steps__line {
    position: relative;
    height: 18px;
}

.production-steps__line::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    height: 1px;
    background: #D9D9D9;
    transform: translateY(-50%);
}

.production-steps__slot--dot .production-steps__dot {
    position: absolute;
    top: 0;
    left: 0;
    transform: translateX(-50%);
}

.production-steps__slot--dot:first-child .production-steps__dot {
    left: 0;
    transform: translateX(0);
}

.production-steps__slot--dot:last-child .production-steps__dot {
    left: auto;
    right: 0;
    transform: translateX(0);
}

/* ── Mobile (vertical timeline) ─────────────── */

.production-steps__mobile {
    display: none;
    position: relative;
    list-style: none;
    padding-left: 40px;
    margin-left: 20px;
}

.production-steps__mobile::before {
    content: "";
    position: absolute;
    left: 11px;
    top: 12px;
    bottom: 12px;
    width: 1px;
    background: #D9D9D9;
}

.production-steps__row-mobile {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 16px;
    padding-bottom: 32px;
}

.production-steps__row-mobile:last-child {
    padding-bottom: 0;
}

.production-steps__dot--mobile {
    position: absolute;
    left: -37px;
    top: 13px;
}

/* ── Breakpoint: switch to mobile layout ────── */

@media (max-width: 992px) {
    .production-steps {
        padding: 24px 0;
    }

    .production-steps__title {
        font-size: 14px;
        line-height: 20px;
    }

    .production-steps__desktop {
        display: none;
    }

    .production-steps__mobile {
        display: block;
    }
}
