/* Fit the existing header on one row; retain the current control treatments. */
.site-header {
  flex-wrap: nowrap;
  gap: clamp(.625rem, 1.5vw, 1.375rem);
}
.site-header > .brand {
  flex: 0 0 auto;
  min-width: 0;
  max-width: none;
}
.site-header .brand-words strong,
.site-header .brand-words small {
  white-space: nowrap;
  overflow-wrap: normal;
}
.site-header > .desktop-nav {
  flex: 1 1 auto;
  flex-wrap: nowrap;
  min-width: 0;
  margin-inline: 0;
  justify-content: center;
}
.site-header > .desktop-nav > :is(a, button) {
  flex: 0 0 auto;
  white-space: nowrap;
}
.site-header > .header-actions {
  flex: 0 0 auto;
  margin-inline-start: auto;
  inline-size: auto;
  justify-content: flex-end;
  flex-wrap: nowrap;
  min-width: 0;
  max-width: none;
  gap: clamp(.35rem, .8vw, 1rem);
  padding-inline-start: 0;
}
.site-header > .header-actions > * { flex-shrink: 0; }
.site-header .header-actions > .button-small {
  white-space: nowrap;
}
.site-header .header-actions > .button-small > span {
  white-space: nowrap;
  overflow-wrap: normal;
}
.site-header .portal-button {
  white-space: nowrap;
}
/* Controls grow left from the right edge; the menu fills the remaining span. */
.site-header .emergency-help {
  --header-emergency-label-room: 1;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex: 0 0 auto;
  inline-size: fit-content;
  min-inline-size: 2.75rem;
  block-size: 2.75rem;
}
.site-header .emergency-help > .emergency-trigger {
  flex: 0 0 auto;
  min-inline-size: 2.75rem;
  min-block-size: 2.75rem;
  block-size: 2.75rem;
}
.site-header .emergency-symbol {
  inline-size: 1.3125rem;
  block-size: 1.3125rem;
  margin-inline: .71875rem;
}
.site-header .emergency-trigger-label {
  order: -1;
  padding-inline: 0;
  transform: translateX(.25rem);
  transition: max-width .24s ease, padding-inline-start .24s ease, opacity .16s ease, transform .24s ease;
}
.site-header .emergency-help > .emergency-trigger:is(:hover, :focus-visible) > .emergency-trigger-label,
.site-header .emergency-help[open] > .emergency-trigger > .emergency-trigger-label { padding-inline-start: .875rem; padding-inline-end: 0; }
.site-header[data-header-fit] > .desktop-nav { display: flex; }
.site-header[data-header-fit] .header-actions > .mobile-menu-toggle { display: none; }
.site-header[data-header-fit] .header-actions > .button-small { display: inline-flex; }
.site-header[data-header-fit="no-faq"] .desktop-nav > [data-header-fit-faq] { display: none; }
.site-header:is([data-header-fit="drawer"], [data-header-fit="no-cta"], [data-header-fit="compact"], [data-header-fit="minimal"]) > .desktop-nav { display: none; }
.site-header:is([data-header-fit="drawer"], [data-header-fit="no-cta"], [data-header-fit="compact"], [data-header-fit="minimal"]) .header-actions > .mobile-menu-toggle { display: flex; }
.site-header:is([data-header-fit="no-cta"], [data-header-fit="compact"], [data-header-fit="minimal"]) .header-actions > .button-small { display: none; }
.site-header:is([data-header-fit="compact"], [data-header-fit="minimal"]) {
  padding-inline: .65rem;
  gap: .5rem;
}
.site-header:is([data-header-fit="compact"], [data-header-fit="minimal"]) > .brand { gap: .45rem; }
.site-header:is([data-header-fit="compact"], [data-header-fit="minimal"]) > .brand > img {
  inline-size: 2.75rem;
  block-size: 2.75rem;
}
.site-header:is([data-header-fit="compact"], [data-header-fit="minimal"]) .brand-words strong { font-size: 1rem; }
.site-header:is([data-header-fit="compact"], [data-header-fit="minimal"]) .brand-words small { display: none; }
.site-header:is([data-header-fit="compact"], [data-header-fit="minimal"]) .portal-button {
  min-inline-size: 2.75rem;
  min-block-size: 2.75rem;
  padding: .5rem;
  justify-content: center;
}
.site-header:is([data-header-fit="compact"], [data-header-fit="minimal"]) .portal-button > span {
  position: absolute;
  inline-size: .0625rem;
  block-size: .0625rem;
  padding: 0;
  margin: 0;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.site-header[data-header-fit="minimal"] .brand-words { display: none; }
/* Safe no-script layout. Script-driven thresholds depend on localized content. */
@media (max-width: 80rem) {
  .site-header:not([data-header-fit]) .desktop-nav > a:last-of-type { display: none; }
}
@media (max-width: 72rem) {
  .site-header:not([data-header-fit]) > .desktop-nav { display: none; }
  .site-header:not([data-header-fit]) .header-actions > .mobile-menu-toggle { display: flex; }
}
@media (max-width: 48rem) {
  .site-header:not([data-header-fit]) .header-actions > .button-small { display: none; }
}
@media (max-width: 44rem) {
  .site-header .emergency-help { --header-emergency-label-room: 0; min-inline-size: 2.75rem; }
  .site-header .emergency-help > .emergency-trigger { inline-size: 2.75rem; }
  .site-header .emergency-help .emergency-trigger-label,
  .site-header .emergency-help > .emergency-trigger:is(:hover, :focus-visible) > .emergency-trigger-label,
  .site-header .emergency-help[open] > .emergency-trigger > .emergency-trigger-label {
    max-width: 0;
    padding-inline-start: 0;
    padding-inline-end: 0;
    opacity: 0;
  }
}
@media (max-width: 32rem) {
  .site-header:not([data-header-fit]) { padding-inline: .65rem; gap: .5rem; }
  .site-header:not([data-header-fit]) .portal-button > span {
    position: absolute;
    inline-size: .0625rem;
    block-size: .0625rem;
    padding: 0;
    margin: 0;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
  }
  .site-header:not([data-header-fit]) .brand-words small { display: none; }
  .site-header:not([data-header-fit]) .brand-words strong { font-size: 1rem; }
}
@media (max-width: 26rem) {
  .site-header:not([data-header-fit]) .brand-words { display: none; }
}
/* The inert measurement copy never paints, receives focus or traps pointers. */
.site-header.header-fit-measure {
  position: fixed;
  inset: 0 auto auto 0;
  visibility: hidden !important;
  pointer-events: none;
  opacity: 0;
  max-inline-size: none;
  margin: 0;
  z-index: -1;
  contain: layout style;
}
.site-header.header-fit-measure > .header-actions { margin-inline: 0; inline-size: auto; flex-basis: auto; }
.site-header.header-fit-measure > .desktop-nav { flex: 0 0 auto; margin-inline: 0; }
/* Reserve both expanded labels only in the inert fit measurement. */
.site-header.header-fit-measure .emergency-help { inline-size: var(--header-emergency-reserve, 2.75rem); }

/* Fade the surface alone: the navigation controls remain fully visible. */
.site-header {
  isolation: isolate;
  background: transparent;
  border-color: transparent;
  box-shadow: none;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.site-header::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  border: .0625rem solid rgba(255, 255, 255, .88);
  border-radius: inherit;
  background: rgba(252, 250, 245, .94);
  box-shadow: var(--shadow-soft);
  backdrop-filter: blur(1.25rem);
  -webkit-backdrop-filter: blur(1.25rem);
  opacity: 1;
  transition: opacity .22s ease;
}
.site-header[data-header-past-threshold="true"]::before { opacity: .25; }
.site-header[data-header-past-threshold="true"]:has(:focus-visible)::before,
.site-header[data-header-past-threshold="true"]:has(.language-picker[open], .emergency-help[open], [data-open-menu][aria-expanded="true"])::before {
  opacity: 1;
}
@media (hover: hover) and (pointer: fine) {
  .site-header[data-header-past-threshold="true"]:hover::before { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .site-header::before { transition: none; }
}
@media (forced-colors: active) {
  .site-header::before {
    background: Canvas;
    border-color: CanvasText;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    opacity: 1 !important;
  }
}

/* White utility surfaces remain legible when the header surface has faded. */
.site-header .header-actions .language-picker > summary,
.site-header .header-actions .portal-button {
  background: #fff;
  border: .0625rem solid var(--line);
  border-radius: 2rem;
  color: var(--ink);
  min-block-size: 2.75rem;
  block-size: 2.75rem;
}
.site-header .header-actions .language-picker > summary {
  padding-inline: .75rem;
  gap: .25rem;
}
.site-header .header-login-slot {
  position: relative;
  flex: 0 0 auto;
  inline-size: fit-content;
  block-size: 2.75rem;
}
.site-header .header-actions .portal-button {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  gap: 0;
  inline-size: 2.75rem;
  min-inline-size: 2.75rem;
  padding: 0;
  overflow: hidden;
  transition: inline-size .2s ease, background-color .18s ease, border-color .18s ease, color .18s ease, filter .18s ease, box-shadow .18s ease;
}
.site-header .header-actions .portal-button > .icon {
  flex: 0 0 1.125rem;
  inline-size: 1.125rem;
  block-size: 1.125rem;
  margin-inline: .75rem;
}
.site-header .header-actions .header-login-slot > a.portal-button:not([aria-disabled="true"]) {
  transition: inline-size .2s ease, background-color .18s ease, border-color .18s ease, color .18s ease, filter .18s ease, box-shadow .18s ease;
}
.site-header .header-actions .portal-button > span {
  position: static;
  flex: 0 0 auto;
  inline-size: auto;
  block-size: auto;
  margin: 0;
  padding: 0;
  overflow: visible;
  clip-path: none;
  white-space: nowrap;
  opacity: 0;
  transition: opacity .16s ease;
}
/* Measure the expanded endpoint; real controls flow as the pill animates. */
.site-header.header-fit-measure .portal-button { transition: none !important; }
@media (width > 44rem) {
  .site-header.header-fit-measure:is([data-header-fit="full"], [data-header-fit="no-faq"], [data-header-fit="drawer"], [data-header-fit="no-cta"]) .header-login-slot,
  .site-header.header-fit-measure:is([data-header-fit="full"], [data-header-fit="no-faq"], [data-header-fit="drawer"], [data-header-fit="no-cta"]) .header-actions .portal-button {
    inline-size: var(--header-login-reserve, 6.75rem);
  }
}
.site-header .header-actions .portal-button:focus-visible {
  inline-size: var(--header-login-reserve, 6.75rem);
}
.site-header .header-actions .portal-button:focus-visible > span { opacity: 1; }
.site-header .header-actions .language-picker[open] > summary,
.site-header .header-actions .language-picker > summary:focus-visible,
.site-header .header-actions .portal-button:focus-visible {
  background: var(--mist);
  border-color: var(--violet);
}
.site-header .header-actions .language-picker > summary:active,
.site-header .header-actions .portal-button:active {
  background: #e1e6df;
  border-color: var(--violet);
}
@media (hover: hover) and (pointer: fine) {
  .site-header .header-actions .language-picker > summary:hover,
  .site-header .header-actions .portal-button:hover {
    background: var(--mist);
    border-color: var(--violet);
  }
  .site-header .header-actions .portal-button:hover {
    inline-size: var(--header-login-reserve, 6.75rem);
  }
  .site-header .header-actions .portal-button:hover > span { opacity: 1; }
}
/* Cramped headers reveal the label below the icon without widening the row. */
.site-header:is([data-header-fit="compact"], [data-header-fit="minimal"]) .header-login-slot {
  flex-basis: 2.75rem;
  inline-size: 2.75rem;
}
.site-header:is([data-header-fit="compact"], [data-header-fit="minimal"]) .header-actions .portal-button {
  inline-size: 2.75rem;
  overflow: visible;
}
.site-header:is([data-header-fit="compact"], [data-header-fit="minimal"]) .header-actions .portal-button > span {
  position: absolute;
  inset-block-start: calc(100% + .5rem);
  inset-inline-start: 50%;
  transform: translateX(-50%);
  padding: .4rem .7rem;
  background: #fff;
  border: .0625rem solid var(--line);
  border-radius: 2rem;
  box-shadow: var(--shadow-soft);
  pointer-events: none;
}
@media (max-width: 44rem) {
  .site-header .header-login-slot { flex-basis: 2.75rem; inline-size: 2.75rem; }
  .site-header .header-actions .portal-button,
  .site-header .header-actions .portal-button:is(:hover, :focus-visible) { inline-size: 2.75rem; overflow: visible; }
  .site-header .header-actions .portal-button > span {
    position: absolute;
    inset-block-start: calc(100% + .5rem);
    inset-inline-start: 50%;
    transform: translateX(-50%);
    padding: .4rem .7rem;
    background: #fff;
    border: .0625rem solid var(--line);
    border-radius: 2rem;
    box-shadow: var(--shadow-soft);
    pointer-events: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  .site-header .header-actions .portal-button,
  .site-header .header-actions .portal-button > span { transition: none; }
}
@media (forced-colors: active) {
  .site-header .header-actions .language-picker > summary,
  .site-header .header-actions .portal-button,
  .site-header .header-actions .portal-button > span {
    background: ButtonFace;
    color: ButtonText;
    border-color: ButtonText;
  }
}

/* Actual mouse/pen input also works when the primary-pointer query says touch. */
.site-header[data-header-pointer="login"] .header-actions .portal-button > span { opacity: 1; }
.site-header[data-header-pointer="login"] .header-actions .portal-button:not(:active),
.site-header[data-header-pointer="language"] .header-actions .language-picker > summary:not(:active) {
  background: var(--mist);
  border-color: var(--violet);
}
@media (width > 44rem) {
  .site-header[data-header-pointer="login"]:not([data-header-fit="compact"]):not([data-header-fit="minimal"]) .header-actions .portal-button {
    inline-size: var(--header-login-reserve, 6.75rem);
  }
}
.site-header .header-actions > .button-small {
  transition: transform .18s ease, background-color .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease, filter .18s ease;
}
.site-header[data-header-pointer="cta"] .header-actions > .button-small:not(:disabled):not([aria-disabled="true"]):not([aria-busy="true"]):not(:active) {
  transform: translateY(-.125rem);
  filter: brightness(.96);
}
.site-header[data-header-pointer="cta"] .header-actions > .button-small:not(:active) [data-hover-arrow] { translate: .25rem 0; }
.site-header[data-header-past-threshold="true"][data-header-pointer]::before { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .site-header[data-header-pointer="cta"] .header-actions > .button-small { transform: none !important; }
  .site-header[data-header-pointer="cta"] .header-actions > .button-small [data-hover-arrow] { translate: none !important; }
}

/* A pointer preview uses the same menu in the top layer without making the page inert. */
.mega-menu:popover-open {
  display: block;
  position: fixed;
  inset-block-start: calc(var(--header-height, 5.375rem) + 2.5rem);
  inset-block-end: auto;
  inset-inline: 1.5rem;
  margin: 0 auto;
  max-block-size: calc(100dvh - var(--header-height, 5.375rem) - 3.5rem);
}
.mega-menu:popover-open::backdrop { background: transparent; backdrop-filter: none; pointer-events: none; }

/* Grow the logo picture alone for the pointer actually using the home link. */
.site-header > .brand[data-logo-pointer]:not(:active) > img,
.footer-logo-link[data-logo-pointer]:not(:active) > .footer-logo { scale: 1.15; }
.site-header > .brand[data-logo-pointer]:active > img,
.footer-logo-link[data-logo-pointer]:active > .footer-logo { scale: 1.05; }
@media (prefers-reduced-motion: reduce) {
  .site-header > .brand[data-logo-pointer] > img,
  .footer-logo-link[data-logo-pointer] > .footer-logo { scale: none !important; transition: none !important; }
}

/* Reveal emergency help for the mouse/pen actually using the control. */
@media (width > 44rem) {
  .site-header[data-header-pointer="emergency"]:not([data-header-fit="compact"]):not([data-header-fit="minimal"]) .emergency-help > .emergency-trigger > .emergency-trigger-label {
    max-width: 12rem;
    padding-inline-start: .875rem;
    padding-inline-end: 0;
    opacity: 1;
    transform: none;
  }
}
/* A cramped row keeps its circle fixed and reveals a bounded white tooltip. */
.site-header:is([data-header-fit="compact"], [data-header-fit="minimal"]) .emergency-help { --header-emergency-label-room: 0; }
.site-header:is([data-header-fit="compact"], [data-header-fit="minimal"]) .emergency-help > .emergency-trigger {
  position: relative;
  inline-size: 2.75rem;
}
.site-header:is([data-header-fit="compact"], [data-header-fit="minimal"]) .emergency-help > .emergency-trigger > .emergency-trigger-label {
  position: absolute;
  inset-block-start: calc(100% + .5rem);
  inset-inline-start: 50%;
  max-width: min(12rem, calc(100vw - 3rem));
  padding: .4rem .7rem;
  background: #fff;
  color: var(--ink);
  border: .0625rem solid var(--line);
  border-radius: 2rem;
  box-shadow: var(--shadow-soft);
  transform: translateX(-50%);
  pointer-events: none;
  opacity: 0;
}
.site-header[data-header-pointer="emergency"]:is([data-header-fit="compact"], [data-header-fit="minimal"]) .emergency-help > .emergency-trigger > .emergency-trigger-label,
.site-header:is([data-header-fit="compact"], [data-header-fit="minimal"]) .emergency-help > .emergency-trigger:focus-visible > .emergency-trigger-label { opacity: 1; }
@media (max-width: 44rem) {
  .site-header .emergency-help > .emergency-trigger { position: relative; inline-size: 2.75rem; }
  .site-header .header-actions .emergency-help > .emergency-trigger > .emergency-trigger-label {
    position: absolute;
    inset-block-start: calc(100% + .5rem);
    inset-inline-start: 50%;
    max-width: min(12rem, calc(100vw - 3rem));
    padding: .4rem .7rem;
    background: #fff;
    color: var(--ink);
    border: .0625rem solid var(--line);
    border-radius: 2rem;
    box-shadow: var(--shadow-soft);
    transform: translateX(-50%);
    pointer-events: none;
    opacity: 0;
  }
  .site-header[data-header-pointer="emergency"] .emergency-help > .emergency-trigger > .emergency-trigger-label,
  .site-header .emergency-help > .emergency-trigger:focus-visible > .emergency-trigger-label { opacity: 1; }
}
@media (forced-colors: active) {
  .site-header .emergency-help > .emergency-trigger > .emergency-trigger-label {
    background: ButtonFace;
    color: ButtonText;
    border-color: ButtonText;
  }
}
