/* ---------- mobile ---------- */

.approach-module {
    margin-bottom: 96px;
}

.approach-module .approach-wrapper {
    max-width: 1440px;
    margin: 0 auto;
}

.approach-module .approach-wrapper .approach-container {
    padding-left: 24px;
    padding-right: 24px;
}

.approach-module .approach-wrapper .approach-container .vision .description,
.approach-module .approach-wrapper .approach-container .engagement .description {
    margin-bottom: 24px;
}

.approach-module .approach-wrapper .approach-container .vision .description h2,
.approach-module .approach-wrapper .approach-container .engagement .description h2 {
    margin-bottom: 24px;
}

.approach-module .approach-wrapper .approach-container .vision .description p,
.approach-module .approach-wrapper .approach-container .engagement .description p {
    margin-bottom: 24px;

    &:last-of-type {
        margin-bottom: 0;
    }
}

.approach-module .approach-wrapper .approach-container .vision .media {
    margin-bottom: 48px;
}

.approach-module .approach-wrapper .approach-container .vision .media img,
.approach-module .approach-wrapper .approach-container .engagement .media img {
    display: block;
    margin-bottom: 12px;
    width: 100%;
    border-radius: 24px;
}

.approach-module .approach-wrapper .approach-container .vision .media small,
.approach-module .approach-wrapper .approach-container .engagement .media small {
    display: block;
    border-left: 3px solid #d9d9d9;
    padding-left: 12px;
    padding-right: 12px;
}

/* ---------- tablet ---------- */

@media screen and (min-width: 48rem) {
    .approach-module .approach-wrapper .approach-container {
        display: flex;
        justify-content: space-between;
        gap: 24px;
    }

    .approach-module .approach-wrapper .approach-container > * {
        flex: 1;
    }

    .approach-module .approach-wrapper .approach-container .vision .media {
        margin-bottom: 0;
    }

    .approach-module .approach-wrapper .approach-container .vision,
    .approach-module .approach-wrapper .approach-container .engagement {
        display: flex;
        flex-direction: column;
        justify-content: space-between;
    }
}

/* ---------- laptop ---------- */

@media screen and (min-width: 90rem) {
    .approach-module {
        margin-bottom: 192px;
    }

    .approach-module .approach-wrapper .approach-container {
        flex-direction: column;
        gap: 96px;
    }

    .approach-module .approach-wrapper .approach-container .vision, 
    .approach-module .approach-wrapper .approach-container .engagement {
        display: grid;
        grid-template-columns: repeat(12, 1fr);
        gap: 24px;
        padding-left: 24px;
        padding-right: 24px;
    }

    .approach-module .approach-wrapper .approach-container .vision .description,
    .approach-module .approach-wrapper .approach-container .engagement .description {
        grid-column: 2 / span 5;
    }

    .approach-module .approach-wrapper .approach-container .vision .media {
        grid-column: 8 / span 4;
    }

    .approach-module .approach-wrapper .approach-container .engagement .description {
        grid-column: 7 / span 5;
    }

    .approach-module .approach-wrapper .approach-container .engagement .media {
        order: -1;
        grid-column: 2 / span 4;
    }
}

/* ---------- tablet (only) ---------- */

@media screen and (min-width: 48rem) and (max-width: 1439px) {
    .approach-module .approach-wrapper .approach-container .engagement {
        justify-content: flex-start;
    }
}