/* M61/M62：新規メニューだけを対象。背景の不活性化・Tab制限はnative dialog。 */
.mobile-menu-toggle { display: none; }
.mobile-menu-dialog:not([open]) { display: none; }
@media (max-width: 900px) {
  .mobile-menu-toggle { display: block; position: fixed; right: max(16px, env(safe-area-inset-right)); bottom: max(12px, env(safe-area-inset-bottom)); z-index: 950; max-width: calc(100% - 32px); min-height: 48px; padding: 10px 20px; border: 2px solid #fff; border-radius: 12px; background: #142b44; color: #fff; font: 700 1rem/1.5 system-ui, sans-serif; box-shadow: 0 3px 12px #0004; cursor: pointer; }
  .mobile-menu-dialog { box-sizing: border-box; width: min(28rem, calc(100% - 24px)); max-width: none; max-height: calc(100vh - 24px); max-height: calc(100dvh - 24px); margin: auto; padding: 16px; border: 1px solid #7891a4; border-radius: 16px; background: #fff; color: #132b43; overflow: auto; overscroll-behavior: contain; }
  .mobile-menu-dialog::backdrop { background: #071126bb; }
  .mobile-menu-dialog .mobile-menu-close { display: block; position: sticky; top: 0; z-index: 1; margin: 0 0 12px auto; background: #fff; box-shadow: 0 2px 8px #0002; }
  .mobile-menu-dialog nav { display: grid; gap: 8px; }
  .mobile-menu-dialog a, .mobile-menu-dialog button { display: block; box-sizing: border-box; min-width: 0; min-height: 48px; padding: 10px 14px; border: 1px solid #b8c8d4; border-radius: 8px; color: #132b43; background: #f1f5f8; font: 600 1rem/1.6 system-ui, sans-serif; text-align: left; text-decoration: none; white-space: normal; overflow-wrap: anywhere; cursor: pointer; }
  .mobile-menu-dialog a[aria-current="page"] { background: #ceff3b; color: #111; border-color: #172b43; }
  .mobile-menu-dialog :focus-visible, .mobile-menu-toggle:focus-visible { outline: 3px solid #b24f00; outline-offset: 3px; }
  body.mobile-menu-open .mobile-menu-toggle, body.modal-open .mobile-menu-toggle { visibility: hidden; }
}
