/* Explain: Layout helpers for editorial fashion spacing and grids. */
.section-shell {
    width: min(100% - 2rem, 1240px);
    margin-inline: auto;
}

.section-padding {
    padding-block: clamp(5.25rem, 9vw, 9.25rem);
}

.section-padding-sm {
    padding-block: clamp(3.75rem, 7vw, 6.75rem);
}

.hero-height {
    min-height: calc(100svh - 76px);
}

.page-hero-height {
    min-height: min(780px, calc(92svh - 76px));
}

.text-column {
    max-width: 40rem;
}

.wide-copy {
    max-width: 58rem;
}

.editorial-split {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(320px, 1.1fr);
    gap: clamp(2rem, 6vw, 6rem);
    align-items: center;
}

.editorial-split-reverse {
    display: grid;
    grid-template-columns: minmax(320px, 1.08fr) minmax(0, 0.92fr);
    gap: clamp(2rem, 6vw, 6rem);
    align-items: center;
}

.campaign-row {
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(320px, 1.08fr);
    gap: clamp(2rem, 6vw, 6rem);
    align-items: center;
}

.campaign-row--reverse {
    grid-template-columns: minmax(320px, 1.08fr) minmax(0, 0.92fr);
}

.campaign-row--reverse .campaign-row__media {
    order: -1;
}

.offering-columns {
    display: grid;
    grid-template-columns: minmax(0, 1.2fr) minmax(300px, 0.8fr);
    gap: clamp(1.5rem, 4vw, 4rem);
    align-items: stretch;
}

.editorial-runway {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: clamp(0.85rem, 1.8vw, 1.35rem);
}

.lookbook-mosaic {
    display: grid;
    grid-auto-rows: minmax(220px, auto);
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(0.85rem, 1.8vw, 1.35rem);
}

.foundation-route-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(1rem, 2vw, 1.35rem);
}

.contact-grid {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(320px, 1.1fr);
    gap: clamp(2rem, 6vw, 5rem);
    align-items: start;
}

@media (max-width: 1100px) {
    .lookbook-mosaic,
    .foundation-route-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .editorial-runway {
        grid-template-columns: repeat(6, minmax(0, 1fr));
    }
}

@media (max-width: 900px) {
    .editorial-split,
    .editorial-split-reverse,
    .campaign-row,
    .campaign-row--reverse,
    .offering-columns,
    .contact-grid {
        grid-template-columns: 1fr;
    }

    .campaign-row--reverse .campaign-row__media {
        order: 0;
    }

    .page-hero-height {
        min-height: auto;
    }
}

@media (max-width: 640px) {
    .section-shell {
        width: min(100% - 1.25rem, 1240px);
    }

    .section-padding {
        padding-block: 4.4rem;
    }

    .section-padding-sm {
        padding-block: 3.8rem;
    }

    .lookbook-mosaic,
    .foundation-route-grid,
    .editorial-runway {
        grid-template-columns: 1fr;
    }
}