/* Public marketing shell only. 1600px retains the roomy desktop composition
   (including the existing >1440px ecosystem/carousel rules), without letting
   grids, artwork and type keep spreading on ultrawide screens or zoom-out.
   Use the same bounded unit in the existing CSS formulas, not transform/zoom.
   Admin routes omit this class and retain the original 1vw fallback. */
.public-site {
    --public-layout-max: 1600px;
    --public-layout-vw: min(1vw, calc(var(--public-layout-max) / 100));
}

/* Keep the section backgrounds/artwork full-bleed on ultrawide screens. The
   existing content blocks remain bounded below, so the composition does not
   stretch just because the viewport is wider. */
.public-site > main {
    width: 100%;
    max-width: none;
}

.public-site > main > section {
    width: 100%;
}

.public-site > main > section > :not(.hero-media):not(.hero-grid) {
    width: min(100%, var(--public-layout-max));
    margin-inline: auto;
}

/* Keep the two ecosystem text blocks separated on desktop layouts. */
@media (min-width: 821px) and (hover: hover) {
    .public-site .connected-ecosystem__intro {
        transform: translateY(-12px);
    }
}

/* Header/footer backgrounds remain full-bleed. Only their content is bounded,
   preserving the existing header (5vw) versus section (6vw) inset convention. */
@media (min-width: 1600px) {
    .public-site {
        /* Root-defined tokens otherwise resolve before the body unit exists. */
        --section-eyebrow-size: clamp(1.15rem, calc(var(--public-layout-vw) * 1.05), 1.6rem);
        --section-heading-size: clamp(3.25rem, calc(var(--public-layout-vw) * 4.15), 5.35rem);
        --section-copy-size: clamp(1.18rem, calc(var(--public-layout-vw) * 1.2), 1.46rem);
    }

    .public-site > .site-header {
        padding-inline: calc(
            max(0px, (100% - var(--public-layout-max)) / 2)
            + clamp(22px, calc(var(--public-layout-vw) * 5), 78px)
        );
    }
}

.public-site > .site-footer > .site-footer__inner {
    max-width: var(--public-layout-max);
}
