/* The blue surface belongs only to this removable overlay, never to the document. */
.mobile-menu { display: none; }
@media (max-width: 850px) {
  .mobile-menu:not([hidden]) { position: fixed; inset: 0; z-index: 10020; display: flex; flex-direction: column; width: 100%; height: 100vh; height: 100dvh; margin: 0; padding: 0; overflow: hidden; isolation: isolate; background: var(--blue); color: #fff; }
  .mobile-menu-top { position: absolute; inset: 0 0 auto; z-index: 2; height: var(--menu-toolbar-bottom); background: var(--blue); }
  .mobile-menu-home { position: absolute; left: var(--menu-logo-left); top: calc(var(--menu-logo-top) + var(--menu-logo-height) / 2 - 22px); display: flex; align-items: center; width: 44px; height: 44px; }
  .mobile-menu-home img { display: block; width: var(--menu-logo-width); height: var(--menu-logo-height); filter: brightness(0) invert(1); }
  .mobile-menu-close { position: absolute; left: var(--menu-toggle-left); top: var(--menu-toggle-top); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; width: var(--menu-toggle-width); height: var(--menu-toggle-height); margin: 0; padding: 10px; border: 0; border-radius: 50%; background: #ffffff26; color: #fff; }
  .mobile-menu-close span { flex: none; width: 18px; height: 1px; background: currentColor; transform: translateY(3.5px) rotate(45deg); }
  .mobile-menu-close span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
  .mobile-menu.is-open .mobile-menu-close span { animation: mobile-menu-toggle-top .32s cubic-bezier(.2,.8,.2,1) both; }
  .mobile-menu.is-open .mobile-menu-close span:last-child { animation-name: mobile-menu-toggle-bottom; }
  .mobile-menu.is-closing .mobile-menu-close span { animation: mobile-menu-toggle-top .25s ease-in-out reverse both; }
  .mobile-menu.is-closing .mobile-menu-close span:last-child { animation-name: mobile-menu-toggle-bottom; }
  .mobile-menu #mobile-nav { position: relative; inset: auto; display: flex; flex: 1; flex-direction: column; min-height: 0; width: 100%; padding: calc(max(10px, env(safe-area-inset-top, 0px)) + 94px) clamp(30px, 9.5vw, 64px) calc(36px + env(safe-area-inset-bottom, 0px)); gap: 2px; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; background: transparent; border: 0; border-radius: 0; box-shadow: none; scrollbar-width: none; }
  .mobile-menu #mobile-nav::-webkit-scrollbar { display: none; }
  .mobile-menu #mobile-nav a { display: flex; flex: none; align-items: center; min-height: 56px; margin: 0; padding: 7px 0; color: #fff; font-size: clamp(30px, 7.8vw, 36px); font-weight: 500; line-height: 1.35; letter-spacing: .015em; text-decoration: none; }
  .mobile-menu #mobile-nav a[aria-current] { text-decoration: underline; text-decoration-thickness: 1.5px; text-underline-offset: 8px; }
  .mobile-menu :is(a,button):focus-visible { outline: 2px solid #fff; outline-offset: 5px; }
  .mobile-menu.is-open { animation: mobile-menu-expand .43s cubic-bezier(.2,.8,.2,1) both; }
  .mobile-menu.is-open #mobile-nav a { animation: mobile-menu-link-in .28s ease-out both; animation-delay: calc(80ms + var(--menu-order,0) * 42ms); }
  .mobile-menu #mobile-nav a:nth-child(2) { --menu-order: 1; }
  .mobile-menu #mobile-nav a:nth-child(3) { --menu-order: 2; }
  .mobile-menu #mobile-nav a:nth-child(4) { --menu-order: 3; }
  .mobile-menu #mobile-nav a:nth-child(5) { --menu-order: 4; }
  .mobile-menu #mobile-nav a:nth-child(6) { --menu-order: 5; }
  .mobile-menu #mobile-nav a:nth-child(7) { --menu-order: 6; }
  .mobile-menu #mobile-nav a:nth-child(8) { --menu-order: 7; }
  .mobile-menu.is-closing { animation: mobile-menu-collapse .25s cubic-bezier(.4,0,.6,1) both; }
  .mobile-menu.is-closing #mobile-nav a { animation: mobile-menu-link-out .14s ease-in both; }
}
@keyframes mobile-menu-expand { from { clip-path: inset(0 0 100% 0); } to { clip-path: inset(0); } }
@keyframes mobile-menu-collapse { from { clip-path: inset(0); } to { clip-path: inset(0 0 100% 0); } }
@keyframes mobile-menu-link-in { from { opacity: 0; transform: translateY(-10px); } to { opacity: 1; transform: translateY(0); } }
@keyframes mobile-menu-link-out { to { opacity: 0; transform: translateY(-6px); } }
@keyframes mobile-menu-toggle-top { from { transform: translateY(0) rotate(0); } to { transform: translateY(3.5px) rotate(45deg); } }
@keyframes mobile-menu-toggle-bottom { from { transform: translateY(0) rotate(0); } to { transform: translateY(-3.5px) rotate(-45deg); } }
@media (prefers-reduced-motion: reduce) {
  .mobile-menu.is-open, .mobile-menu.is-closing, .mobile-menu.is-open #mobile-nav a, .mobile-menu.is-closing #mobile-nav a, .mobile-menu.is-open .mobile-menu-close span, .mobile-menu.is-closing .mobile-menu-close span { animation: none; }
}
