/* ==========================================================================
   Flexable Home V3 — how it works   (Module 3)
   ========================================================================== */

.flxb-steps {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    column-gap: 52px;
    border-top: 1px solid var(--flxb-line);
}

.flxb-step {
    position: relative;
    padding: 26px 0 0;
    min-height: 180px;
}

/* Divider sits in the gap, so it never shifts the text. */
.flxb-step:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 26px;
    bottom: 0;
    right: -26px;
    border-right: 1px solid var(--flxb-line);
}

.flxb-step-num {
    font-size: 12px;
    color: #969896;
    font-weight: 700;
    letter-spacing: .04em;
    margin-bottom: 40px;
}

.flxb-home .flxb-step-title {
    font-size: 18px;
    margin: 0 0 8px;
    letter-spacing: -.03em;
    font-weight: 700;
    color: var(--flxb-ink);
}

.flxb-step-copy {
    font-size: 13px;
    color: var(--flxb-muted);
    line-height: 1.55;
    margin: 0;
    max-width: 220px;
}

/* ---------- Responsive ---------- */

@media (max-width: 900px) {
    .flxb-steps {
        grid-template-columns: 1fr 1fr;
        column-gap: 24px;
        row-gap: 4px;
        border-top: 0;
    }

    .flxb-step {
        border-top: 1px solid var(--flxb-line);
        padding-top: 22px;
        min-height: 160px;
    }

    /* Vertical dividers don't read well in a wrapped grid. */
    .flxb-step:not(:last-child)::after {
        display: none;
    }

    .flxb-step-num {
        margin-bottom: 24px;
    }
}

@media (max-width: 560px) {
    .flxb-steps {
        grid-template-columns: 1fr;
    }

    .flxb-step {
        min-height: auto;
        padding-bottom: 18px;
    }

    .flxb-step-num {
        margin-bottom: 14px;
    }
}
