/* One shared navigation treatment across every page and section. */
body .header {
  /* A real surface keeps scrolling content out of the navigation's hit area. */
  background: #fff !important;
  background-image: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border: 0 !important;
  box-shadow: 0 1px 0 #10182014 !important;
  color: #000 !important;
  isolation: isolate;
  mix-blend-mode: normal !important;
  position: fixed;
  z-index: 50;
  column-gap: 24px;
  grid-template-columns: minmax(90px,1fr) auto minmax(max-content,1fr);
}
body .header:before, body .header:after { display: none !important; }
body .header[data-header] {
  transform: translate3d(0,0,0);
  transition: transform .42s cubic-bezier(.22,1,.36,1);
  will-change: transform;
}
body .header[data-header].is-nav-hidden {
  pointer-events: none;
  transform: translate3d(0,calc(-100% - 10px),0);
}
body.menu-open .header[data-header],
body .header[data-header].has-nav-focus {
  pointer-events: auto;
  transform: translate3d(0,0,0);
}
body .header[data-header].has-nav-focus { transition-duration: 0s; }
body .header .brand, body .header .brand span,
body .header .brief-link, body .header .brief-link span,
body .header .header-index, body .header .header-service-nav a {
  background: transparent !important;
  color: #000 !important;
  mix-blend-mode: normal !important;
}
body .header .brand, body .header .brief-link {
  /* Keep the navigation clean: no white halo around the wordmark. */
  text-shadow: none;
}
body .header .brand { align-items: center; cursor: pointer; display: inline-flex; justify-self: start; min-height: 44px; text-transform: uppercase; white-space: nowrap; }
body .header .header-actions { flex-shrink: 0; min-width: 0; }
body .header .brief-link {
  align-items: center;
  border-color: #000 !important;
  display: inline-flex !important;
  flex-shrink: 0;
  min-height: 44px;
  /* Keep the underline close to the label, with a generous touch target. */
  border-bottom: 0;
  text-decoration: underline;
  text-underline-offset: 6px;
  white-space: nowrap;
}
body .header .header-service-nav a {
  border-color: #0006 !important;
  text-shadow: 0 0 2px #ffffffaa;
}
body .header .header-service-nav a:hover,
body .header .header-service-nav a[aria-current] { border-color: #000 !important; }
body .header .menu-toggle,
body .header .menu-toggle:hover,
body .header .menu-toggle[aria-expanded=true] {
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  border-color: #0009 !important;
  box-shadow: 0 0 1px #fff9 !important;
  transform: none;
  flex: 0 0 44px;
  height: 44px;
  width: 44px;
  touch-action: manipulation;
}
body .header .menu-toggle i {
  background: #000 !important;
  box-shadow: 0 0 1px 1px #ffffffb3;
  height: 1px;
  margin: 0 !important;
  top: 50%;
  transform: translate(-50%,-50%);
  width: 18px !important;
}
body .header .menu-toggle i:nth-of-type(1) { margin-top: -5px !important; }
body .header .menu-toggle i:nth-of-type(3) { margin-top: 5px !important; }
body .header .menu-toggle[aria-expanded=true] i:nth-of-type(1) { margin-top: 0 !important; transform: translate(-50%,-50%) rotate(45deg); }
body .header .menu-toggle[aria-expanded=true] i:nth-of-type(2) { opacity: 0; }
body .header .menu-toggle[aria-expanded=true] i:nth-of-type(3) { margin-top: 0 !important; transform: translate(-50%,-50%) rotate(-45deg); }
body .header a:focus-visible, body .header button:focus-visible { outline: 2px solid #ff8200; outline-offset: 5px; }
.language-switcher {
  align-items: center;
  background: #fff;
  border: 1px solid #000;
  border-radius: 999px;
  box-shadow: none;
  display: inline-flex;
  flex: 0 0 auto;
  gap: 3px;
  height: 44px;
  padding: 3px;
}
.language-switcher .language-switcher-label {
  color: #000;
  font: 9px/1 var(--mono);
  letter-spacing: .12em;
  padding: 0 5px 0 8px;
  pointer-events: none;
}
.language-switcher button {
  align-items: center;
  background: transparent;
  border: 0;
  border-radius: 999px;
  color: #000;
  cursor: pointer;
  display: inline-flex;
  font: 10px/1 var(--mono);
  font-weight: 700;
  height: 36px;
  justify-content: center;
  letter-spacing: .05em;
  min-width: 34px;
  padding: 0 8px;
  touch-action: manipulation;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}
.language-switcher button:hover { background: rgba(0,0,0,.08); transform: translateY(-1px); }
.language-switcher button[aria-pressed="true"] { background: #000; color: #fff; }
.language-switcher button[aria-pressed="true"]:hover { background: #000; }
body.menu-open .header-service-nav { visibility: hidden; }
body .menu { background: #fff !important; color: #000 !important; }
/* Let longer navigation lists grow downwards instead of clipping their first
   destinations above the scrollable panel on short desktop viewports. */
body .menu .menu-inner { height: auto; min-height: 100%; }
body .menu .menu-inner > p, body .menu .menu-inner a span { color: #606765; }
body .menu .menu-inner a { border-color: #0003; color: #000; }
body .menu .menu-inner a:hover { color: #666; }
body .menu:before { background-image: radial-gradient(circle, #0003 0 1px, transparent 1.6px); }
body .menu:after { border-color: #0003; }
body .menu-ambient { background: radial-gradient(circle,#ffaa5233,transparent 66%); }
.site-footer a.footer-wordmark { cursor: pointer; display: block; font-size: clamp(2rem, 10vw, 15rem); text-decoration: none; text-transform: uppercase; }
.site-footer a.footer-wordmark:hover { opacity: .8; }
.site-footer a.footer-wordmark:focus-visible { border-radius: 4px; outline: 2px solid #ff8200; outline-offset: 8px; }
@media (min-width: 821px) and (max-width: 1100px) {
  body .header { grid-template-columns: 1fr auto; }
  body .header .header-service-nav, body .header .header-index { display: none; }
}
@media (max-width: 820px) {
  /* Contain the info-page decoration so it cannot expand the mobile viewport. */
  body .info-page { overflow: clip; }
  body .header { gap: 12px; grid-template-columns: minmax(0,1fr) auto; height: 72px; padding-left: 20px; padding-right: 20px; }
  body .header .header-service-nav { display: none; }
  body .header .header-actions { gap: 12px; }
  body .header .brief-link { font-size: 12px; }
  .language-switcher { height: 44px; }
  .language-switcher .language-switcher-label { display: none; }
  .language-switcher button { height: 36px; min-width: 30px; padding: 0 6px; }
  /* Show every destination promptly on touch devices; don't stagger clipped text. */
  body .menu.is-open .menu-inner > p, body .menu.is-open .menu-inner a {
    animation: none;
    clip-path: none;
    opacity: 1;
    transform: none;
    transition-delay: 0s;
  }
}
@media (max-width: 370px) {
  body .header { padding-left: 16px; padding-right: 16px; }
  body .header .header-actions { gap: 10px; }
  body .header .brief-link { font-size: 11px; }
}
@media (max-width: 480px) {
  /* Contact stays in the menu; don't squeeze the language and menu controls. */
  body .header .brief-link { display: none !important; }
}
@media (max-width: 340px) {
  body.home-overview .header .brand { font-size: 19px; }
}
@media (prefers-reduced-motion: reduce) {
  body .header[data-header] { transition: none; transition-property: none !important; }
  body .menu, body .menu * { transition-property: none !important; }
  body .menu.is-open .menu-inner > p, body .menu.is-open .menu-inner a {
    animation: none;
    opacity: 1;
    transform: none;
    transition: none;
  }
  .language-switcher button { transition: none; }
}
