/* The homepage spans the viewport; each content row keeps its original grid width. */
.site-theme { --header-content-max:1200px; --header-page-gutter:64px; }
.site-theme.width-wide { --header-content-max:1560px; }
.site-theme.width-full { --header-content-max:100%; --header-page-gutter:32px; }
.site-header.header-width-contained,
.site-header.header-width-auto.is-positioned {
    width:min(calc(100% - var(--header-page-gutter)),var(--header-content-max));
    max-width:none; margin-inline:auto;
}
.site-header.header-width-contained:not(.is-positioned) { margin-top:20px; }
.site-header.header-width-contained > .header-inner {
    width:100%; max-width:none; padding-inline:24px;
}
.site-header.header-width-full {
    width:100%; max-width:none; margin-inline:0; margin-top:0; border-radius:0;
}
.site-header.header-width-full > .header-inner {
    width:min(calc(100% - var(--header-page-gutter)),var(--header-content-max));
    max-width:none; padding-inline:0;
}
/* Sticky stays in the normal document flow, so reaching it never shifts the page. */
.site-header.is-sticky { position:sticky; top:0; z-index:40; }
.site-header.is-stuck { box-shadow:0 8px 26px #122d292b,0 1px 0 #bda16c66; }
.site-header.header-sticky-tall { position:relative; }
html { scroll-padding-top:var(--site-sticky-height,0px); }
.site-header.is-sticky .desktop-navigation .mega-panel,
.site-header.is-sticky .desktop-navigation .menu-panel {
    max-height:min(72vh,calc(100dvh - var(--header-measured-height,180px) - 18px));
    overflow:auto; overscroll-behavior:contain;
}
@media (max-width:767px) {
    .site-theme { --header-page-gutter:36px; }
    .site-header.header-width-contained:not(.is-positioned) { margin-top:12px; }
    .site-header.header-width-contained > .header-inner { padding-inline:16px; }
    /* The mobile drawer is a light surface, independent of a dark/custom header.
       Reset its appearance ink as well as inherited text so theme colors cannot
       leave white menu labels on the ivory panel. */
    .site-header .mobile-menu-body {
        --ta-b-ink:var(--site-ink,#203044);
        margin-top:10px; padding:10px;
        background:#fffefa; color:var(--site-ink,#203044);
        border:1px solid var(--site-line); border-top:2px solid var(--site-gold);
        border-radius:12px;
    }
    .site-header .mobile-navigation .mobile-menu-body :is(a,summary) {
        color:var(--site-ink,#203044);
    }
    .site-header .mobile-menu-body .menu-root > .menu-item + .menu-item {
        border-top:1px solid var(--site-line);
    }
    .site-header.is-sticky:not(.header-sticky-tall) .mobile-menu-body {
        position:absolute; top:100%; left:0; right:0; margin-top:0; padding:12px;
        max-height:calc(100dvh - var(--header-measured-height,240px) - 12px);
        overflow:auto; overscroll-behavior:contain; background:#fffefa; color:var(--site-ink);
        border:1px solid var(--site-line); border-top:2px solid var(--site-gold);
        border-radius:0 0 14px 14px; box-shadow:0 14px 30px #122d2924;
    }
}
/* Custom height replaces the variant's outer whitespace, never clips its content. */
.site-theme .site-header.header-custom-height { padding-block:0!important; }
.site-header.header-custom-height > .header-inner {
    min-height:var(--header-min-height,96px); padding-block:8px;
}
.site-header.header-custom-height:is(.header-centered,.header-crest,.header-ribbon) > .header-inner {
    justify-content:center; gap:12px;
}
.site-header.header-custom-height:is(.header-ribbon,.header-split) .site-brand { padding-block:8px; }
.site-header.header-custom-height.header-split > .header-inner { padding-block:0; }
.site-header.header-custom-height.header-split .header-navigation { padding-block:8px; }
@media print { .site-header.is-sticky { position:relative; box-shadow:none; } }
