/* Shared public-site navigation. Calculator and content pages use this file. */
.site-header, .site-header * { box-sizing: border-box; }
html { scroll-behavior: auto; }
.site-header { position: sticky; top: 0; z-index: 20; background: #fff; border-bottom: 1px solid #d5e2e8; font: 14px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; }
.site-header .wrap { width: min(100% - 64px, 1240px); margin-inline: auto; }
.site-header .header-inner { min-height: 76px; display: flex; align-items: center; gap: 28px; padding: 0; }
.site-header a { text-decoration: none; }
.site-header .brand { display: inline-flex; flex-direction: column; align-items: flex-start; gap: 4px; color: #142c39; font-size: 31px; font-weight: 800; letter-spacing: -.08em; line-height: 1; white-space: nowrap; }
.site-header .brand-name { display: block; }
.site-header .brand-mark { display: inline-block; width: 8px; height: 8px; margin-left: 4px; border-radius: 50%; background: #096e9d; vertical-align: top; }
.site-header .brand-descriptor { display: block; margin: 0; color: #405663; font-size: 12px; font-weight: 600; letter-spacing: 0; line-height: 1.2; }
.site-header .primary-nav { display: flex; align-items: center; gap: 22px; margin-left: auto; padding: 0; color: #405663; font-size: 14px; line-height: 1.5; }
.site-header .primary-nav a { position: relative; display: inline-flex; align-items: center; min-height: 44px; padding: 0; color: inherit; font-size: 14px; font-weight: 400; line-height: 1.5; white-space: nowrap; text-decoration: none; transition: color .15s; }
.site-header .primary-nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: 3px; height: 2px; border-radius: 2px; background: #096e9d; transform: scaleX(0); transform-origin: left; transition: transform .15s; }
.site-header .primary-nav a[aria-current] { color: #0b557a; }
.site-header .primary-nav a[aria-current]::after { transform: scaleX(1); }
.site-header .primary-nav a:hover { color: #096e9d; text-decoration: none; }
.site-header .header-cta { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 16px; border: 1px solid #096e9d; border-radius: 4px; background: #096e9d; color: #fff; font-size: 14px; font-weight: 700; line-height: 1.5; white-space: nowrap; text-decoration: none; }
.site-header .header-cta:hover { background: #0b557a; border-color: #0b557a; color: #fff; }
.site-header .header-cta[aria-current] { background: #0b557a; color: #fff; border-color: #0b557a; }
.site-header .menu-toggle { display: none; }
.site-header :focus-visible { outline: 3px solid #096e9d; outline-offset: 4px; box-shadow: 0 0 0 6px #fff; }
:where(a, button, input, select, textarea, summary, [tabindex]):focus { scroll-margin-block: calc(var(--site-header-height, 76px) + 18px) 24px; }
main[id], section[id] { scroll-margin-top: calc(var(--site-header-height, 76px) + 18px); }
#calculator { scroll-margin-top: calc(var(--site-header-height, 76px) + 18px); }
@media (max-width: 1200px) { .site-header .header-inner { gap: 18px; } .site-header .primary-nav { gap: 14px; } }
@media (max-width: 1050px) {
  main[id], section[id], #calculator { scroll-margin-top: calc(var(--site-header-height, 160px) + 18px); }
  .site-header .header-inner { min-height: 0; padding-block: 16px; flex-wrap: wrap; }
  .site-header .header-cta { margin-left: auto; }
  .site-header .primary-nav { order: 3; width: 100%; margin-left: 0; flex-wrap: wrap; gap: 4px 22px; overflow: visible; padding: 0; }
}
@media (max-width: 520px) {
  main[id], section[id], #calculator { scroll-margin-top: calc(var(--site-header-height, 200px) + 18px); }
  .site-header .wrap { width: calc(100% - 36px); }
  .site-header .brand { font-size: 27px; }
  .site-header .header-inner { gap: 12px; }
  .site-header .primary-nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px 10px; }
  .site-header .primary-nav a { font-size: 12px; white-space: normal; justify-self: start; }
  .site-header .header-cta { padding: 10px 12px; font-size: 12px; }
  .site-header.navigation-ready .header-inner { min-height: 76px; padding-block: 12px; }
  .site-header.navigation-ready .menu-toggle { display: inline-flex; align-items: center; justify-content: center; gap: 10px; margin-left: auto; padding: 10px 14px; min-height: 44px; border: 1px solid #718b99; border-radius: 4px; background: #fff; color: #142c39; font: inherit; font-weight: 650; cursor: pointer; }
  .site-header .menu-toggle::after { content: ""; width: 7px; height: 7px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg) translateY(-2px); }
  .site-header .menu-toggle[aria-expanded=true]::after { transform: rotate(225deg) translate(-2px, -1px); }
  .site-header.navigation-ready:not(.menu-open) .primary-nav,
  .site-header.navigation-ready:not(.menu-open) .header-cta { display: none; }
  .site-header.navigation-ready .header-cta { order: 4; width: 100%; margin: 0; font-size: 14px; }
  .site-header.navigation-ready .primary-nav { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .site-header.navigation-ready .primary-nav a { font-size: 14px; min-height: 44px; }
  .site-header.menu-open { max-height: 85dvh; overflow-y: auto; }
}
@media (prefers-reduced-motion: reduce) { .site-header .primary-nav a, .site-header .primary-nav a::after { transition: none; } }
@media print { .site-header { display: none !important; } }
