/* iPhone・Android両方のジェスチャー競合を防止 */
.mobile-menu,
.mobile-menu *,
nav,
nav *,
.site-navigation,
.site-navigation * {
  touch-action: pan-y !important;
  -webkit-overflow-scrolling: touch !important;
}

.menu-toggle,
.hamburger-menu,
button {
  touch-action: manipulation !important;
}

/* メニューオープン時の本体固定（iOS Safari対応） */
body.menu-open {
  overflow: hidden !important;
  position: fixed !important;
  width: 100% !important;
  height: 100% !important;
  -webkit-overflow-scrolling: auto !important;
}

/* メニュー本体の固定表示 */
.mobile-menu,
.menu-wrapper,
.navigation-wrapper,
nav.toggled-on,
.main-navigation.toggled-on {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 9999 !important;
  background: #fff !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  -webkit-overflow-scrolling: touch !important;
  overscroll-behavior: contain !important;
}

/* メニュー内部のスクロール領域 */
.mobile-menu ul,
.mobile-menu .menu,
nav.toggled-on ul {
  overflow-y: auto !important;
  max-height: calc(100vh - 60px) !important;
  -webkit-overflow-scrolling: touch !important;
}

/* iOS Safariの誤動作防止 */
* {
  -webkit-tap-highlight-color: transparent;
}

/* 横スワイプ完全ブロック */
.mobile-menu-container {
  touch-action: pan-y pinch-zoom !important;
  overscroll-behavior-x: none !important;
}

/* メニュー表示時のオーバーレイ */
.mobile-menu::before,
nav.toggled-on::before {
  content: '' !important;
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  width: 100% !important;
  height: 100% !important;
  background: rgba(0,0,0,0.5) !important;
  z-index: -1 !important;
}

/* ハンバーガーメニューボタンの固定 */
.menu-toggle {
  position: relative !important;
  z-index: 10000 !important;
}

/* スクロール時もメニューが消えないように */
@media (max-width: 768px) {
  .mobile-menu.is-active,
  nav.toggled-on,
  .main-navigation.toggled-on {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: translateX(0) !important;
    transition: none !important;
  }
}