/* Shared navigation, independent of Bootstrap and icon fonts. */
.header-section {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: auto;
    max-width: 100vw;
    z-index: 12;
    background: #fff;
    box-shadow: 0 0 6px 2px rgba(0, 0, 0, .1);
}
.site-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-width: 0;
    width: 100%;
    padding: 5px 0;
}
.site-nav-brand { display: block; flex: 0 1 180px; min-width: 0; padding: 5px 0; }
.site-nav-brand img { display: block; width: 180px; max-width: 100%; height: auto; }
.site-nav-menu { min-width: 0; margin-left: auto; }
.site-nav-links { display: flex; align-items: center; list-style: none; padding: 0; margin: 0; }
.site-nav-item { position: relative; }
.site-nav-link { display: block; color: #333; padding: 8px 20px; }
.site-nav-link:hover { color: #000; text-decoration: none; }
.site-nav-link[aria-current="page"] { color: #000; font-weight: bold; }
.site-nav-link[aria-current="page"]::after {
    content: ''; position: absolute; bottom: -5px; left: 10%; width: 80%; height: 3px; background: #fad201;
}
.site-nav-toggle {
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px;
    border: 1px solid transparent;
    border-radius: 4px;
    background: #fff;
    color: #333;
    cursor: pointer;
    touch-action: manipulation;
}
.site-nav-toggle-icon,
.site-nav-toggle-icon::before,
.site-nav-toggle-icon::after { display: block; width: 22px; height: 2px; background: currentColor; }
.site-nav-toggle-icon { position: relative; }
.site-nav-toggle-icon::before,
.site-nav-toggle-icon::after { content: ''; position: absolute; left: 0; }
.site-nav-toggle-icon::before { top: -7px; }
.site-nav-toggle-icon::after { top: 7px; }
.site-nav-toggle:focus-visible,
.site-nav-link:focus-visible,
.site-nav-brand:focus-visible { outline: 2px solid #1d2087; outline-offset: 2px; }
.site-nav-toggle[hidden], .site-nav-menu[hidden] { display: none; }

@media (max-width: 992px) {
    .header-section { max-height: 100vh; max-height: 100dvh; overflow-y: auto; }
    .site-nav { flex-wrap: wrap; gap: 0 16px; }
    .site-nav-brand { flex-basis: 154px; max-width: calc(100% - 60px); }
    .site-nav-brand img { width: 154px; }
    .site-nav-menu { flex: 0 0 100%; width: 100%; margin: 0; background: #fad201; }
    .site-nav-links { display: block; padding: 8px 0; }
    .site-nav-link { min-height: 44px; padding: 10px 20px; overflow-wrap: anywhere; }
    .site-nav-link[aria-current="page"]::after { bottom: 3px; left: 20px; width: 32px; background: #1d2087; }
}
