/* Mobile navigation only. Existing desktop styles and content are untouched. */
.mobile-menu-toggle, dialog.mobile-menu { display: none; }
@media screen and (max-width: 767px) {
  html.mobile-menu-ready #header-inner { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px; }
  html.mobile-menu-ready #header-inner::after { display: none; }
  html.mobile-menu-ready #header-inner .site-logo { flex: 0 1 168px; min-width: 0; }
  html.mobile-menu-ready #header-inner .site-logo > a { width: 100%; max-width: 168px; margin: 0; background-size: contain; background-position: left center; }
  html.mobile-menu-ready #header-inner #nav,
  html.mobile-menu-ready #header-inner > .search,
  html.mobile-menu-ready .sidemenu { display: none; }
  .mobile-menu-toggle, .mobile-menu-close { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 8px 12px; border: 1px solid #115eae; border-radius: 4px; color: #115eae; background: #fff; font: bold 16px/1.5 sans-serif; cursor: pointer; flex-shrink: 0; }
  .mobile-menu-symbol { font-size: 24px; line-height: 1; }
  dialog.mobile-menu { position: fixed; inset: 0; width: 100%; max-width: none; height: 100vh; height: 100dvh; max-height: none; margin: 0; padding: 0; border: 0; color: #373737; background: #fff; box-sizing: border-box; overflow: hidden; }
  dialog.mobile-menu[open] { display: flex; flex-direction: column; }
  dialog.mobile-menu::backdrop { background: rgba(0,0,0,.35); }
  .mobile-menu-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-shrink: 0; padding: max(14px, env(safe-area-inset-top)) 20px 14px; border-top: 6px solid #115eae; border-bottom: 1px solid #d3dce5; }
  .mobile-menu-header h2 { font-size: 18px; font-weight: bold; margin: 0; }
  .mobile-menu-scroll { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 8px 20px max(28px, env(safe-area-inset-bottom)); -webkit-overflow-scrolling: touch; }
  .mobile-menu ul { list-style: none; padding: 0; margin: 0; }
  .mobile-menu li { margin: 0; padding: 0; }
  .mobile-menu a { display: flex; align-items: center; gap: 14px; min-height: 48px; padding: 10px 4px; border-bottom: 1px solid #dce3ea; color: #373737; text-decoration: none; font-size: 16px; line-height: 1.6; box-sizing: border-box; }
  .mobile-menu a:hover { color: #115eae; background: #f1f6fb; }
  .mobile-menu-primary img { width: 28px; height: 28px; object-fit: contain; }
  .mobile-menu-search { margin: 24px 0 28px; }
  .mobile-menu-search label { display: block; font-size: 16px; font-weight: bold; margin-bottom: 8px; }
  .mobile-menu-search-row { display: flex; gap: 8px; }
  .mobile-menu-search input { flex: 1; width: 0; min-width: 0; min-height: 44px; padding: 8px 10px; border: 1px solid #8092a4; border-radius: 3px; font: 16px/1.5 sans-serif; box-sizing: border-box; }
  .mobile-menu-search button { min-width: 64px; min-height: 44px; padding: 8px 12px; border: 0; border-radius: 3px; background: #115eae; color: #fff; font: bold 16px/1.5 sans-serif; cursor: pointer; }
  .mobile-menu-search button { display: inline-flex; align-items: center; gap: 6px; }
  .mobile-menu-search button svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; }
  .mobile-menu-search-hint { font-size: 13px; line-height: 1.6; margin-top: 6px; color: #555; }
  .mobile-menu-fields h3 { margin: 0; padding: 10px 12px; background: #115eae; color: #fff; font-size: 17px; font-weight: bold; }
  .mobile-menu :focus-visible, .mobile-menu-toggle:focus-visible { outline: 3px solid #c66b00; outline-offset: 2px; }
  html.mobile-menu-open, html.mobile-menu-open body { overflow: hidden !important; }
}
