/*
 * PROTECTED PUBLIC SUBPAGE HERO SYSTEM
 *
 * Architecture rule:
 * - Every public subpage hero uses class="sb-page-hero".
 * - The shared image is always /hero.jpg.
 * - Page-specific styles must not set hero backgrounds or disable hero layers.
 * - Changes to the public subpage hero belong only in this file.
 */

.sb-page-hero,
main [class*="-hero"],
body > section.hero {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    box-sizing: border-box;
    max-width: none !important;
    min-height: clamp(300px, 34vw, 460px);
    margin-bottom: 34px;
    padding: clamp(64px, 9vw, 118px) max(clamp(22px, 5vw, 64px), calc((100vw - 1250px) / 2 + 25px));
    border: 0 !important;
    border-radius: 0 !important;
    background-image:
        linear-gradient(to bottom, rgba(0, 0, 0, 0.28), rgba(0, 0, 0, 0.78)),
        url("/hero.jpg?v=20260718-13") !important;
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    background-color: #050505 !important;
    box-shadow: 0 24px 70px rgba(0, 0, 0, 0.34);
}

/* Heroes inside constrained page shells must break out to the viewport edges. */
.sb-page-hero,
main [class*="-hero"] {
    width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
}

/* Legacy heroes already placed directly below body are naturally full width. */
body > section.hero {
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.sb-page-hero::after,
main [class*="-hero"]::after,
body > section.hero::after {
    content: "" !important;
    display: block !important;
    position: absolute;
    inset: 0;
    z-index: 0;
    background: linear-gradient(90deg, rgba(0, 0, 0, 0.62) 0%, rgba(0, 0, 0, 0.18) 62%, rgba(0, 0, 0, 0.4) 100%);
    pointer-events: none;
}

.sb-page-hero > *,
main [class*="-hero"] > *,
body > section.hero > * {
    position: relative;
    z-index: 1;
}

.sb-page-hero h1,
main [class*="-hero"] h1,
body > section.hero h1 {
    text-shadow: 0 3px 18px rgba(0, 0, 0, 0.78);
}

.sb-page-hero p,
main [class*="-hero"] p,
body > section.hero p {
    color: rgba(255, 255, 255, 0.9) !important;
    text-shadow: 0 2px 12px rgba(0, 0, 0, 0.72);
}

@media (max-width: 700px) {
    .sb-page-hero,
    main [class*="-hero"],
    body > section.hero {
        min-height: 280px;
        padding: 58px 20px 52px;
        background-position: 58% center !important;
    }
}