/**
 * Unity public marketing layout — shared canvas, header/footer rhythm, viewport heroes.
 * Scoped to body.ua-public-site (marketing shell). Portal uses .ua-portal-body — excluded.
 */

:root {
    --ua-public-canvas: #0b1426;
    --ua-public-content-gap: clamp(14px, 1.65vw, 24px);
    --ua-public-footer-gap: clamp(16px, 2vw, 28px);
    --ua-public-hero-fill: calc(100dvh - var(--ua-header-h, 136px) - var(--ua-public-content-gap));
}

/* ── Continuous page canvas ─────────────────────────────────────────────── */

html:not(.ua-portal-body) body.ua-public-site {
    background-color: var(--ua-public-canvas);
}

html:not(.ua-portal-body) body.ua-public-site .ua-mkt,
html:not(.ua-portal-body) body.ua-public-site .ua-om,
html:not(.ua-portal-body) body.ua-public-site .ua-pds,
html:not(.ua-portal-body) body.ua-public-site .ua-ia,
html:not(.ua-portal-body) body.ua-public-site .ua-credential-bar,
html:not(.ua-portal-body) body.ua-public-site .ua-section-dark,
html:not(.ua-portal-body) body.ua-public-site .ua-section-slate,
html:not(.ua-portal-body) body.ua-public-site .ua-listings-theme {
    background-color: var(--ua-public-canvas);
}

html:not(.ua-portal-body) body.ua-public-site .ua-mkt .ua-section {
    background: transparent;
}

/* ── Space below fixed global header (not homepage — hero owns viewport there) ── */

html:not(.ua-portal-body) body.ua-public-site:not(.ua-homepage) {
    padding-top: calc(var(--ua-header-h, 136px) + var(--ua-public-content-gap));
}

/* ── Space above global footer ─────────────────────────────────────────── */

html:not(.ua-portal-body) body.ua-public-site > footer.footer-dark,
html:not(.ua-portal-body) body.ua-public-site > footer.bg-dark-blue {
    margin-top: var(--ua-public-footer-gap);
}

/* ── Full-viewport photo / image heroes ──────────────────────────────────── */

html:not(.ua-portal-body) body.ua-public-site .ua-photo-hero:not(.ua-hero--compact) {
    min-height: max(var(--ua-public-hero-fill), 420px);
    display: flex;
    flex-direction: column;
    justify-content: center;
}

html:not(.ua-portal-body) body.ua-public-site .ua-mkt .ua-photo-hero:not(.ua-hero--compact) .ua-photo-hero-grid,
html:not(.ua-portal-body) body.ua-public-site .ua-mkt .ua-photo-hero:not(.ua-hero--compact) > .container {
    min-height: inherit;
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding-top: clamp(16px, 2.5vw, 36px);
    padding-bottom: clamp(32px, 5vw, 72px);
    box-sizing: border-box;
}

html:not(.ua-portal-body) body.ua-public-site .ua-hero.ua-photo-hero:not(.ua-hero--compact) {
    min-height: max(var(--ua-public-hero-fill), 420px);
}

html:not(.ua-portal-body) body.ua-public-site .ua-hero:not(.ua-photo-hero):has(.ua-hero-bg:not([style*="display: none"]):not([style*="display:none"])) {
    min-height: max(var(--ua-public-hero-fill), 480px);
}

html:not(.ua-portal-body) body.ua-public-site .ua-hero-content {
    padding-top: clamp(16px, 2.5vw, 36px);
    padding-bottom: clamp(32px, 5vw, 72px);
}

html:not(.ua-portal-body) body.ua-public-site .ua-mkt .ua-photo-slide,
html:not(.ua-portal-body) body.ua-public-site .ua-mkt .ua-photo-hero,
html:not(.ua-portal-body) body.ua-public-site .ua-hero-bg {
    background-size: cover;
    background-position: center;
}

/* Homepage: first viewport = header + hero (existing homepage CSS; no body padding) */

html:not(.ua-portal-body) body.ua-homepage.ua-public-site {
    padding-top: 0;
}

html:not(.ua-portal-body) body.ua-public-site .ua-investor-hero-shell {
    padding-top: clamp(16px, 2.5vw, 36px);
    padding-bottom: clamp(32px, 5vw, 72px);
}

html:not(.ua-portal-body) body.ua-public-site .ua-investor-hero.ua-photo-hero {
    align-items: stretch;
}


html:not(.ua-portal-body) body.ua-public-site .ua-om-hero:not(.ua-hero--compact) {
    min-height: max(var(--ua-public-hero-fill), 420px);
}

@media (max-width: 575.98px) {
    :root {
        --ua-public-content-gap: clamp(12px, 3.5vw, 18px);
        --ua-public-footer-gap: clamp(14px, 4vw, 22px);
    }
}

/* Mobile horizontal gutter — shared by ua-public-mobile-safe*.css (avoid left-edge clip). */

@media (max-width: 991.98px) {
    html:not(.ua-portal-body) body.ua-public-site {
        --ua-public-inline-min: 20px;
        --ua-public-inline-gutter-left: max(var(--ua-public-inline-min), env(safe-area-inset-left, 0px));
        --ua-public-inline-gutter-right: max(var(--ua-public-inline-min), env(safe-area-inset-right, 0px));
    }
}

/* Membership / tier queue block → next marketing section (CTA band) ─────────── */

html:not(.ua-portal-body) body.ua-public-site .ua-mkt .ua-buyer-priority-section + .ua-section {
    /* Beats inline padding-top:0 on trailing CTAs */
    padding-top: clamp(40px, 9vw, 56px) !important;
}

@media (min-width: 992px) {
    html:not(.ua-portal-body) body.ua-public-site .ua-mkt .ua-buyer-priority-section + .ua-section {
        padding-top: 2in !important;
    }
}
