/* Normal-flow sticky chrome. Its scrolled state changes elevation, never geometry. */
html { --bwcet-admin-offset: 0px; --bwcet-header-height: min(28rem, 55vh); scroll-padding-block-start: calc(var(--bwcet-admin-offset) + var(--bwcet-header-height) + 1rem); }
html:has(body.admin-bar), body.admin-bar { --bwcet-admin-offset: 32px; }
.bwcet-header-sentinel { position: absolute; width: 1px; height: 1px; pointer-events: none; }
.site-header { position: sticky; inset-block-start: var(--bwcet-admin-offset); z-index: 100; }
.site-header.is-scrolled { box-shadow: 0 5px 18px #071f3212, 0 1px 0 #071f320d; }
/* A failed or missing script keeps an arbitrarily deep native menu reachable.
   The bounded fallback is intentionally conservative and never hides content. */
.site-header:not(.is-sticky-ready) { max-block-size: min(28rem, 55vh); overflow: auto; overscroll-behavior: auto; }
.site-header:not(.is-sticky-ready) :is(.header-search__panel, .bwcet-accessibility__panel),
.site-header:not(.is-sticky-ready) .primary-nav.is-enhanced .primary-menu > li > .sub-menu { position: static; width: 100%; max-block-size: none; margin-block: .5rem; }
.site-header:not(.is-sticky-ready) .site-header__utilities { flex-wrap: wrap; }
.site-header:not(.is-sticky-ready) .site-header__utilities > details[open] { flex-basis: 100%; min-width: 0; }
.site-header:not(.is-sticky-ready) .primary-nav.is-enhanced .primary-menu > li:has(> .sub-menu:not([hidden])) { flex-wrap: wrap; }
.site-header:not(.is-sticky-ready) .primary-nav.is-enhanced .primary-menu > li > .sub-menu { flex-basis: 100%; }
.site-header.is-sticky-ready { max-block-size: var(--bwcet-header-limit, 65vh); }
.site-header.is-sticky-overflow { overflow: auto; overscroll-behavior: auto; scrollbar-gutter: stable; scroll-padding-block: .75rem; }
.site-header.is-sticky-overflow :is(.header-search__panel, .bwcet-accessibility__panel),
.site-header.is-sticky-overflow .primary-nav.is-enhanced .primary-menu > li > .sub-menu { position: static; width: 100%; max-block-size: none; max-height: none; overflow: visible; margin-block: .5rem; }
/* A very short viewport or unusually tall identity must not clip an absolute
   utility panel. In the bounded header, it instead takes its own full row. */
.site-header.is-sticky-overflow .site-header__utilities { flex-wrap: wrap; }
.site-header.is-sticky-overflow .site-header__utilities > details[open] { flex-basis: 100%; min-width: 0; }
/* Static fallback panels need the entire content measure, not the narrow
   utility-icon grid track. Return to the normal grid as soon as they close. */
.site-header:is(:not(.is-sticky-ready), .is-sticky-overflow) .site-header__inner:has(.site-header__utilities > details[open]) { grid-template-columns: minmax(0, 1fr); grid-template-areas: "brand" "utilities" "navigation"; }
.site-header.is-sticky-overflow .primary-nav.is-enhanced .primary-menu > li:has(> .sub-menu:not([hidden])) { flex-wrap: wrap; }
.site-header.is-sticky-overflow .primary-nav.is-enhanced .primary-menu > li > .sub-menu { flex-basis: 100%; }
.site-header.is-sticky-ready:not(.is-sticky-overflow) :is(.header-search__panel, .bwcet-accessibility__panel) { max-block-size: var(--bwcet-panel-room, calc(100vh - 12rem)); overflow-y: auto; overscroll-behavior: auto; scroll-padding-block: .75rem; }
@media (min-width: 1100px) {
 .site-header.is-sticky-ready:not(.is-sticky-overflow) .primary-nav.is-enhanced .primary-menu > li > .sub-menu { max-height: min(36rem, var(--bwcet-panel-room, calc(100vh - 12rem))); max-block-size: min(36rem, var(--bwcet-panel-room, calc(100vh - 12rem))); overscroll-behavior: auto; scroll-padding-block: .75rem; }
}
/* A small margin plus the root's measured scroll padding protects targets and
   focus rings. Avoid applying two complete header-height offsets. */
:where(.site-main [id], .site-main, .site-footer [id], a, button, input, select, textarea, summary, [tabindex]) { scroll-margin-block-start: .75rem; scroll-margin-block-end: .75rem; }
.skip-link:focus { position: fixed !important; inset-block-start: calc(var(--bwcet-admin-offset) + .5rem); }
@media (max-width: 782px) { html:has(body.admin-bar), body.admin-bar { --bwcet-admin-offset: 46px; } }
/* WordPress makes its toolbar absolute below 601px. It scrolls away naturally;
   the header's initial normal-flow position already sits underneath it. */
@media (max-width: 600px) { html:has(body.admin-bar), body.admin-bar { --bwcet-admin-offset: 0px; } }
@supports (height: 100dvh) {
 html { --bwcet-header-height: min(28rem, 55dvh); }
 .site-header:not(.is-sticky-ready) { max-block-size: min(28rem, 55dvh); }
}
@media (prefers-reduced-motion: no-preference) {
 html:not([data-bwcet-reduce-motion="true"]) .site-header { transition: box-shadow .18s ease; }
}
@media (forced-colors: active) {
 .site-header, .site-header.is-scrolled { background: Canvas; border-color: CanvasText; box-shadow: none; }
}
@media print {
 html { scroll-padding-block-start: 0; }
 .bwcet-header-sentinel { display: none; }
}
