.header-frame { position: sticky; top: 0; z-index: 50; transition: transform .25s ease; }
.header-frame[data-hidden=true] { transform: translateY(-100%); }
.navigation-backdrop { display: none; }
.header-inner { --header-gap: 32px; max-width: none; min-height: 105px; padding: 10px clamp(22px, 3.75vw, 72px); gap: var(--header-gap); }
.site-brand { flex-basis: 143px; }
.site-brand img { width: 143px; height: 71px; }
:is(.site-brand, .footer-brand a) img { transition: opacity var(--interaction-duration) var(--interaction-ease); }
:is(.site-brand, .footer-brand a):hover img { opacity: .65; }
.primary-nav { gap: 27px; font-size: 16px; }
.primary-navigation-panel { display: contents; }
.primary-navigation-panel[hidden] { display: none; }
.primary-nav .action-button { min-width: 142px; padding: 10px 18px; text-align: center; font-size: 15px; }
.menu-toggle { border-color: var(--control-border); border-radius: var(--radius-control); min-height: var(--control-height); }
.language-switcher { display: block; position: relative; flex: 0 0 138px; margin: 0; padding: 0; border: 1px solid transparent; border-radius: var(--radius-control); font: var(--type-ui)/var(--leading-ui) var(--font-ui); }
.language-switcher::before { content: ''; position: absolute; left: calc(var(--header-gap) / -2 - 1.5px); top: 7px; bottom: 7px; border-left: 1px solid var(--color-ink); }
.language-switcher summary { display: flex; align-items: center; min-height: var(--control-height); gap: 9px; padding: 11px 14px; cursor: pointer; list-style: none; }
.language-switcher summary::-webkit-details-marker { display: none; }
.language-chevron { margin-left: auto; flex: none; width: 18px; height: 18px; background: currentColor; mask: var(--disclosure-chevron) center / contain no-repeat; transition: transform 180ms ease-out; }
.language-switcher:not([data-disclosure-ready])[open] .language-chevron, .language-switcher summary[aria-expanded=true] .language-chevron { transform: rotate(180deg); }
.language-switcher nav { position: absolute; z-index: 3; top: calc(100% + 5px); left: -1px; right: -1px; padding: 0; border: 1px solid var(--control-border); border-radius: var(--radius-control); background: var(--color-paper); box-shadow: var(--shadow-popover); }
.language-switcher a { display: flex; align-items: center; gap: 9px; padding: 10px 14px; font-weight: 400; }
.language-switcher a:first-child { border-radius: calc(var(--radius-control) - 1px) calc(var(--radius-control) - 1px) 0 0; }
.language-switcher a:last-child { border-radius: 0 0 calc(var(--radius-control) - 1px) calc(var(--radius-control) - 1px); }
.language-switcher a:hover, .language-switcher a[aria-current=true] { background: var(--color-cream); }
.language-switcher summary { background: #e9e7e1; color: var(--color-accent); border-radius: var(--radius-control); transition: background-color var(--interaction-duration) var(--interaction-ease), color var(--interaction-duration) var(--interaction-ease); }
.language-switcher summary:hover { background: #d8d7ce; color: var(--color-accent); }
.primary-nav a:not(.action-button):is(:hover, :focus-visible) { text-decoration-line: underline; text-decoration-thickness: var(--link-underline-active-width); }
.flag { flex-shrink: 0; display: block; width: 32px; height: 20px; }
.site-footer { padding: 62px 30px 24px; font-family: var(--font-ui); }
.footer-inner { max-width: var(--content-wide); grid-template-columns: minmax(190px, 1fr) repeat(3, minmax(0, max-content)); column-gap: 100px; }
.footer-inner > * { min-width: 0; }
.footer-logo { width: 190px; }
.site-footer h2 { font: 20px/1.4 var(--font-ui); color: var(--color-paper); margin-bottom: 24px; }
.site-footer li { margin-bottom: 5px; font-size: var(--type-meta); }
.copyright { max-width: var(--content-wide); padding: 24px 0 0; margin: 40px auto 0; border: 0; border-top: 1px solid #627f80; text-align: start; font-size: var(--type-meta); color: var(--color-paper); }
@media (max-width: 1320px) {
  .header-inner { --header-gap: 24px; }
  .primary-nav { gap: 17px; font-size: 14px; }
  .primary-nav .action-button { min-width: 0; font-size: 14px; }
  .language-switcher { flex-basis: 110px; }
}
@media (max-width: 1120px) {
  .navigation-backdrop { display: block; position: fixed; inset: 0; z-index: 49; background: rgb(37 38 25 / 36%); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 240ms cubic-bezier(.2, .7, .2, 1), visibility 0s 240ms; }
  body:has(.menu-toggle[aria-expanded=true]) .navigation-backdrop { opacity: 1; visibility: visible; pointer-events: auto; transition-delay: 0s; }
  /* Explicit padding keeps the compact control row at a stable height. */
  .header-inner { position: relative; flex-wrap: wrap; min-height: 92px; padding-block: 16px; gap: 0 16px; }
  .site-brand { flex-basis: 122px; }
  .site-brand img { width: 122px; height: 60px; }
  .menu-toggle { display: none; margin-left: auto; min-width: 88px; min-height: 44px; background: var(--surface-support); border-color: transparent; color: var(--color-accent); transition: background-color var(--interaction-duration) var(--interaction-ease), color var(--interaction-duration) var(--interaction-ease); }
  .menu-toggle:hover { background: #c8dcda; color: var(--color-ink); }
  .site-header[data-navigation-ready=true] .menu-toggle { display: block; }
  .site-header[data-navigation-ready=true] .primary-nav:not([data-open=true]) { display: none; }
  .primary-navigation-panel { display: flow-root; position: absolute; z-index: 2; inset: 100% 0 auto; min-width: 0; padding-inline: inherit; background: var(--color-paper); border-radius: 0; box-shadow: 0 10px 18px #14272e18; }
  /* The early inline toggle also overlays content if deferred scripts fail. */
  .site-header[data-navigation-ready=true] .header-inner > .primary-nav { position: absolute; z-index: 2; inset: 100% 0 auto; padding-inline: inherit; background-color: var(--color-paper); box-shadow: 0 10px 18px #14272e18; }
  /* The list remains available when JavaScript is unavailable. */
  .primary-nav, .primary-nav[data-open=true] { display: grid; grid-template-columns: minmax(0, 1fr); flex-basis: 100%; order: 4; align-items: stretch; gap: 0; margin: 0; padding: 8px 0 16px; border-top: var(--border-surface); max-height: calc(100dvh - var(--header-bar-height, 96px) - 16px); overflow: auto; overscroll-behavior: contain;
    background: linear-gradient(var(--color-paper) 40%, transparent) top,
      linear-gradient(transparent, var(--color-paper) 60%) bottom,
      radial-gradient(farthest-side at 50% 0, var(--scroll-cue-color), transparent) top,
      radial-gradient(farthest-side at 50% 100%, var(--scroll-cue-color), transparent) bottom;
    background-size: 100% 32px, 100% 32px, 100% 10px, 100% 10px;
    background-repeat: no-repeat; background-attachment: local, local, scroll, scroll;
  }
  .primary-nav > a { display: flex; align-items: center; white-space: normal; min-height: 48px; padding: 10px 12px; border-radius: 0; font: 18px/1.5 var(--font-ui); transition: color var(--interaction-duration) var(--interaction-ease), background-color var(--interaction-duration) var(--interaction-ease), border-radius var(--interaction-duration) var(--interaction-ease); }
  .primary-nav > a:not(.action-button) { border-bottom: var(--border-surface); }
  .primary-nav > a:not(.action-button):is(:hover, :focus-visible) { background-color: var(--surface-support); color: var(--color-accent); text-decoration: none; }
  .primary-nav > a:focus-visible { text-decoration: none; }
  .primary-nav > a[aria-current=page] { position: relative; background-color: var(--surface-support); background-image: linear-gradient(90deg, var(--color-accent) 3px, transparent 3px); border-radius: var(--radius-control); text-decoration: none; }
  .primary-nav > a:not(.action-button):has(+ a[aria-current=page]) { border-bottom: 0; padding-bottom: 11px; }
  .primary-nav > a:not(.action-button) + a[aria-current=page]::before { content: ''; position: absolute; inset: -1px 0 auto; height: var(--radius-control); border-top: var(--border-surface); border-top-left-radius: inherit; border-top-right-radius: inherit; pointer-events: none; }
  .primary-nav > a[aria-current=page]:has(+ a:not(.action-button):is(:hover, :focus-visible)) { border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
  .primary-nav > a:not(.action-button):is(:hover, :focus-visible) + a[aria-current=page] { border-top-left-radius: 0; border-top-right-radius: 0; }
  .primary-nav > .action-button { justify-content: center; margin: 14px 0 0; min-height: 48px; font-size: 16px; border-radius: var(--radius-control); }
  .language-switcher { flex-basis: auto; min-width: 84px; border-color: transparent; }
  .language-switcher::before { display: none; }
  .language-switcher summary { min-height: 44px; padding: 8px 10px; border-radius: var(--radius-control); }
  .language-switcher nav { left: auto; right: 0; min-width: 110px; }
  .footer-inner { max-width: 680px; grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .footer-brand { justify-self: center; }
  .footer-logo { width: 170px; }
  .site-footer h2 { font-size: 20px; margin-bottom: 14px; }
  .site-footer li { margin: 0; font-size: 16px; }
  .site-footer li > a { display: inline-flex; align-items: center; min-height: 44px; max-width: 100%; padding-block: 7px; line-height: 1.5; }
  .footer-disclosure { margin: 0; padding: 0; border: 0; border-top: 1px solid #627f80; }
  .footer-disclosure > summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 58px; padding: 14px 0; font: 20px/1.5 var(--font-ui); cursor: pointer; transition: color var(--interaction-duration) var(--interaction-ease); }
  .footer-disclosure > summary::-webkit-details-marker { display: none; }
  .footer-disclosure > summary::after { content: '+'; font: 24px/1 var(--font-ui); }
  .footer-disclosure[open] > summary::after { content: '−'; }
  .footer-disclosure > summary:hover { color: #c8dcda; }
  .footer-disclosure h2 { margin: 0; font: inherit; color: inherit; }
  .footer-disclosure ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; padding: 0 0 16px; }
  .footer-links + .footer-links { margin-top: -28px; }
  .footer-social { border-bottom: 1px solid #627f80; }
  .copyright { max-width: 680px; margin-top: 32px; padding-top: 24px; padding-left: 0; border-top: 0; text-align: center; font-size: 14px; }
}
@media (max-width: 640px) {
  .header-inner { min-height: 80px; padding: 12px 16px; gap: 0 4px; }
  .site-brand { flex-basis: clamp(86px, 24vw, 110px); }
  .site-brand img { width: 100%; height: 56px; }
  .language-switcher summary { gap: 6px; padding-inline: 8px; }
  .language-switcher .flag { width: 22px; }
  .menu-toggle { padding: 9px; white-space: nowrap; }
  .site-footer { padding: 45px 28px 24px; }
}
@media (max-width: 360px) {
  /* Keep the serif controls on one row with space for the scrollbar gutter. */
  .header-inner { padding-inline: 12px; }
  .primary-nav > a { font-size: 17px; }
  .site-footer { padding-inline: 22px; }
}
@media (prefers-reduced-motion: reduce) { .header-frame, .navigation-backdrop, .menu-toggle, .language-switcher summary, .language-chevron, .primary-nav > a, .footer-disclosure > summary, :is(.site-brand, .footer-brand a) img { transition: none; } }
@media print { .header-frame { display: none; } }
