.menu-icon { display: block; position: relative; width: 24px; height: 20px; }
.menu-icon > span { position: absolute; left: 0; width: 24px; height: 2px; background: currentColor; border-radius: 1px; transform-origin: center; transition: transform 200ms ease, opacity 160ms ease; }
.menu-icon > span:nth-child(1) { top: 0; }
.menu-icon > span:nth-child(2) { top: 9px; }
.menu-icon > span:nth-child(3) { top: 18px; }
.menu-button[aria-expanded="true"] .menu-icon > span:nth-child(1) { transform: translateY(9px) rotate(45deg); }
.menu-button[aria-expanded="true"] .menu-icon > span:nth-child(2) { opacity: 0; transform: scaleX(.4); }
.menu-button[aria-expanded="true"] .menu-icon > span:nth-child(3) { transform: translateY(-9px) rotate(-45deg); }
.legal-header #site-nav { display: none; }
@media (max-width: 850px) {
  .site-header, .legal-header { position: sticky; top: 0; z-index: 40; }
  :is(.site-header, .legal-header) .menu-button { display: inline-flex; order: -1; flex: 0 0 44px; width: 44px; height: 44px; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; margin: 0; padding: 10px; color: #f7f5f1; cursor: pointer; }
  :is(.site-header, .legal-header) #site-nav { display: flex; position: absolute; top: 100%; left: 0; right: 0; flex-direction: column; align-items: stretch; gap: 0; max-height: calc(100dvh - var(--site-header-height, 82px)); padding: 12px max(18px, env(safe-area-inset-left, 0px)); background: #191919; border-bottom: 1px solid #631017; opacity: 0; visibility: hidden; pointer-events: none; translate: 0 -8px; overflow-y: auto; transition: opacity 180ms ease, translate 180ms ease, visibility 180ms; }
  :is(.site-header, .legal-header) #site-nav.open { opacity: 1; visibility: visible; pointer-events: auto; translate: 0 0; }
  :is(.site-header, .legal-header) #site-nav a { display: flex; align-items: center; min-height: 48px; padding: 12px 0; color: #f7f5f1; font-size: 13px; line-height: 1.4; }
  :is(.site-header, .legal-header) .brand { margin-right: auto; }
  .menu-button:focus-visible { outline: 2px solid #f7f5f1; outline-offset: 1px; }
}
@media (max-width: 600px) {
  :is(.site-header, .legal-header) { height: calc(70px + env(safe-area-inset-top, 0px)); padding-top: env(safe-area-inset-top, 0px); padding-left: max(10px, env(safe-area-inset-left, 0px)); gap: 8px; }
  .legal-header .brand { width: clamp(108px, 34vw, 126px); flex: 0 0 auto; }
  .legal-header .legal-back { max-width: 36%; font-size: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  .menu-icon > span, :is(.site-header, .legal-header) #site-nav { transition: none; }
}
