/* Shared grouped navigation, based on the approved AB-471 layout. */
.ws-header {
    --ws-header-navy: #002868;
    --ws-header-line: #c4cede;
    color: #17293b;
    background: #002868;
    border-bottom: 4px solid #bf0a30;
    margin-bottom: 16px;
    position: relative;
    z-index: 1030;
}
.ws-header * { box-sizing: border-box; }
/* Bottom environment badges remain visible; the duplicate top pair obscures navigation. */
body:has(#site-header) .ws-env-badge--top { display: none; }
.ws-header-inner { max-width: 1320px; padding: 0 max(24px, env(safe-area-inset-right)) 0 max(24px, env(safe-area-inset-left)); margin: 0 auto; }
.ws-header :is(a, button, summary) { touch-action: manipulation; -webkit-tap-highlight-color: #c4cede; }
.ws-header button:hover { filter: brightness(.9); }
.ws-header-search:focus-within { outline: 2px solid #fff; outline-offset: 2px; }
.ws-header-mega-panel h2 { text-wrap: balance; }
.ws-header a, .ws-header summary { color: var(--ws-header-navy); }
.ws-header a:hover, .ws-header summary:hover { text-decoration: underline; }
.ws-header :is(a, button, summary, input):focus-visible,
.ws-header-context a:focus-visible {
    outline: 3px solid #fff;
    outline-offset: 3px;
}
.ws-header-panel :is(a, button):focus-visible,
.ws-header-mobile-menu :is(a, button, summary):focus-visible,
.ws-header-context a:focus-visible,
.ws-header-search input:focus-visible {
    outline-color: #bf0a30;
}
.ws-header-masthead { display: flex; align-items: center; gap: 24px; padding: 16px 0; }
.ws-header-brand { flex-shrink: 0; background: #002868; padding: 8px 12px; border-radius: 4px; }
.ws-header-brand img { display: block; width: 154px; height: 48px; }
.ws-header-search { display: flex; flex: 1 1 600px; min-width: 160px; max-width: 600px; margin: 0; border: 1px solid #7a879a; border-radius: 4px; background: #fff; }
.ws-header-search input { width: 100%; min-width: 0; border: 0; border-radius: 4px; padding: 10px 12px; color: #17293b; background: #fff; font: inherit; }
.ws-header-search input::placeholder { color: #596579; opacity: 1; }
.ws-header-search button { min-width: 44px; min-height: 44px; border: 0; border-left: 1px solid #7a879a; border-radius: 0 3px 3px 0; background: #002868; color: #fff; }
.ws-header-contact { display: flex; flex-direction: column; gap: 2px; margin-left: auto; }
.ws-header-support { display: contents; }
.ws-header .ws-header-contact-button {
    --bs-btn-bg: var(--bs-teal);
    --bs-btn-border-color: var(--bs-teal);
    --bs-btn-hover-bg: var(--bs-teal);
    --bs-btn-hover-border-color: #002868;
    --bs-btn-active-bg: var(--bs-teal);
    --bs-btn-active-border-color: #002868;
    --bs-btn-color: #002868;
    --bs-btn-hover-color: #002868;
    --bs-btn-active-color: #002868;
    display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0;
    min-height: 44px; padding: 8px 14px; border-radius: 4px; color: #002868;
    font-weight: 600; white-space: nowrap;
}
.ws-header .ws-header-contact-button:hover { color: #002868; text-decoration: none; }
.ws-header-contact > a { font-size: 19px; font-weight: 700; text-decoration: none; white-space: nowrap; min-height: 30px; }
.ws-header-contact > span { font-size: 13px; color: #49596b; }
.ws-header-cart { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 8px; text-decoration: none; font-weight: 600; }
.ws-header-cart i { font-size: 22px; }
.ws-header-utilities { display: flex; align-items: center; justify-content: flex-end; gap: 16px; padding: 0; margin: 0; }
.ws-header-utilities > .ws-header-links > li > a, .ws-header-utilities > details > summary { font-size: 14px; min-height: 44px; padding: 10px 8px; }
.ws-header .ws-header-utilities .ws-header-home-link,
.ws-header .ws-header-grouped-nav .ws-header-home-link { gap: 8px; min-height: 36px; margin-block: 6px; padding: 6px 12px; border: 1px solid currentColor; border-radius: 4px; font-size: 14px; font-weight: 700; }
.ws-header .ws-header-home-link i { flex-shrink: 0; }
.ws-header-disclosure { position: relative; }
.ws-header-disclosure > summary { display: flex; justify-content: space-between; align-items: center; gap: 12px; cursor: pointer; list-style: none; min-height: 48px; padding: 12px 10px; font-weight: 600; }
.ws-header-disclosure > summary::-webkit-details-marker { display: none; }
.ws-header-disclosure > summary::after { content: ''; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); flex-shrink: 0; margin: -4px 2px 0; }
.ws-header-disclosure[open] > summary { background: #eaf0f8; }
.ws-header-disclosure[open] > summary::after { transform: rotate(225deg); margin-top: 4px; }
.ws-header-panel { position: absolute; top: 100%; left: 0; width: 280px; max-width: calc(100vw - 48px); padding: 8px; border: 1px solid #c4cede; background: #fff; box-shadow: 0 2px 6px #00000018; z-index: 2; }
.ws-header-links { padding: 0; margin: 0; list-style: none; }
.ws-header-links a { display: flex; align-items: center; min-height: 44px; padding: 10px 12px; color: #002868; line-height: 1.4; text-decoration: none; overflow-wrap: anywhere; }
.ws-header-links a:hover { background: #eaf0f8; text-decoration: underline; }
.ws-header-links a[aria-current="page"] { font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.ws-header-utilities .ws-header-panel { left: auto; right: 0; }
.ws-header .ws-header-contact > a, .ws-header .ws-header-contact > span, .ws-header .ws-header-cart { color: #fff; }
.ws-header .ws-header-masthead { padding-bottom: 12px; }
.ws-header .ws-header-brand { padding-left: 0; }
.ws-header-browse-row { display: flex; justify-content: space-between; gap: 12px; position: relative; }
.ws-header-grouped-nav { display: flex; gap: 12px; margin: 0; padding: 0; }
.ws-header .ws-header-grouped-nav > details > summary,
.ws-header .ws-header-grouped-nav .ws-header-home-link,
.ws-header .ws-header-utilities > details > summary,
.ws-header .ws-header-utilities > .ws-header-links a { color: #fff; }
.ws-header .ws-header-grouped-nav > details[open] > summary,
.ws-header .ws-header-grouped-nav .ws-header-home-link:hover,
.ws-header .ws-header-utilities > details[open] > summary,
.ws-header .ws-header-utilities > .ws-header-links a:hover { color: #002868; background: #fff; }
.ws-header .ws-header-home-link[aria-current="page"] { color: #002868; background: #fff; border-color: #fff; }
.ws-header-mega { position: relative; }
.ws-header-mega-panel { left: 0; right: auto; display: flex; gap: 12px; }
.ws-header .ws-header-panel { width: max-content; min-width: 0; max-width: min(360px, calc(100vw - 48px)); padding: 6px; }
.ws-header .ws-header-mega-panel--2 { max-width: min(520px, calc(100vw - 48px)); }
.ws-header-mega-panel > .ws-header-menu-group { flex: 1 1 auto; min-width: 0; }
.ws-header-mega-panel > .ws-header-menu-group + .ws-header-menu-group { padding-left: 12px; border-left: 1px solid #c4cede; }
.ws-header-mega-panel h2 { font-size: 17px; margin: 6px 10px 8px; color: #002868; }
.ws-header .ws-header-panel .ws-header-links > li + li { border-top: 1px solid #d5dde8; }
.ws-header .ws-header-panel .ws-header-links a { min-height: 40px; padding: 6px 10px; }
.ws-header-context { padding: 8px 0; margin: 0 0 24px; border-block: 1px solid #c4cede; }
.ws-header-context > ul { display: flex; justify-content: center; flex-wrap: wrap; gap: 8px; }
.ws-header-mobile-menu { display: none; margin: 0; padding: 0 0 16px; width: 100%; }
.ws-header-mobile-heading { display: flex; justify-content: space-between; align-items: center; margin: 8px 0; }
.ws-header-close { min-height: 44px; border: 1px solid #7a879a; border-radius: 4px; background: #fff; color: #002868; padding: 8px 12px; }
.ws-header-mobile-menu .ws-header-disclosure { border-top: 1px solid #c4cede; }
.ws-header .ws-header-mobile-menu .ws-header-home-link { gap: 8px; margin-bottom: 12px; padding: 10px 12px; border: 1px solid #c4cede; border-radius: 4px; background: #eaf0f8; font-weight: 700; }
.ws-header-mobile-menu .ws-header-panel { position: static; box-shadow: none; border: 0; width: auto; max-width: none; background: #f4f6f9; }
.ws-header-mobile-menu .ws-header-mega-panel { display: block; }
.ws-header .ws-header-mobile-menu .ws-header-panel { width: auto; min-width: 0; max-width: none; }
.ws-header .ws-header-mobile-menu .ws-header-panel .ws-header-links a { min-height: 44px; padding: 8px 12px; }
.ws-header-mobile-menu .ws-header-menu-group + .ws-header-menu-group { margin-top: 12px; padding: 12px 0 0; border-left: 0; border-top: 1px solid #c4cede; }
.ws-header-menu-toggle { align-items: center; justify-content: center; gap: 4px; min-height: 44px; border: 1px solid #7a879a; border-radius: 4px; background: #fff; color: #002868; padding: 8px; }
@media (max-width: 1239px) {
    .ws-header-browse-row { display: none; }
    .ws-header-menu-toggle:not([hidden]) { display: inline-flex; }
    .ws-header-mobile-menu:not([hidden]) { display: block; }
    .ws-header .ws-header-mobile-menu { color: #17293b; background: #fff; padding: 16px; }
    .ws-header-contact > span { display: none; }
    .ws-header-contact > a { font-size: 16px; }
    .ws-header-inner { padding: 0 max(20px, env(safe-area-inset-right)) 0 max(20px, env(safe-area-inset-left)); }
    .ws-header-masthead { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 12px 8px; width: 100%; padding: 12px 0; }
    .ws-header-brand { grid-column: 1; grid-row: 1; justify-self: start; padding: 4px 6px; }
    .ws-header-brand img { width: 128px; height: 40px; }
    .ws-header-search { grid-column: 1 / -1; grid-row: 2; width: 100%; max-width: 420px; justify-self: center; }
    .ws-header-search input { font-size: 16px; }
    .ws-header-cart { grid-column: 2; grid-row: 1; gap: 4px; padding: 4px; }
    .ws-header-cart i { font-size: 18px; }
    .ws-header-menu-toggle { grid-column: 3; grid-row: 1; }
    .ws-header-support { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px 16px; grid-column: 1 / -1; grid-row: 3; min-width: 0; }
    .ws-header-contact { margin-left: 0; }
    .ws-header-contact > a { min-height: 44px; display: inline-flex; align-items: center; gap: 8px; }
    .ws-header-disclosure > summary { min-height: 52px; padding-inline: 12px; }
    .ws-header-mobile-menu .ws-header-links a { padding-left: 24px; }
}
/* Mid-size screens keep search beside the logo, with support grouped underneath. */
@media (min-width: 700px) and (max-width: 1239px) {
    .ws-header-masthead { grid-template-columns: auto minmax(0, 1fr) auto auto; gap: 12px; }
    .ws-header-brand img { width: 154px; height: 48px; }
    .ws-header-search { grid-column: 2; grid-row: 1; min-width: 0; }
    .ws-header-support { grid-row: 2; }
    .ws-header-cart { grid-column: 3; }
    .ws-header-menu-toggle { grid-column: 4; }
}
@media (max-width: 699px) {
    .ws-header-support { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; width: 100%; max-width: 420px; justify-self: center; }
    .ws-header-contact { align-items: center; }
    .ws-header .ws-header-contact-button { width: 100%; }
}
@media (min-width: 1240px) {
    .ws-header-menu-toggle { display: none; }
}
@media (max-width: 1023px) {
    .ws-header-context > ul { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; }
    .ws-header-context a { justify-content: center; text-align: center; font-size: 14px; padding: 8px 4px; }
}
@media (max-width: 359px) {
    .ws-header-inner { padding-inline: 12px; }
    .ws-header-brand img { width: 112px; height: auto; }
    .ws-header-contact > a { font-size: 15px; gap: 6px; }
}
