/*
 * TheraWIDE Mobile Menu Fix 1.0
 * Scope: WordPress Navigation block overlay only.
 * No desktop/page-content layout changes.
 */

@media (max-width: 781px) {
  /* Keep the hamburger visible against the navy header. */
  .tw-site-header .wp-block-navigation__responsive-container-open,
  .tw-mainnav .wp-block-navigation__responsive-container-open {
    color: #ffffff !important;
    background: transparent !important;
    border: 0 !important;
  }

  .tw-site-header .wp-block-navigation__responsive-container-open svg,
  .tw-mainnav .wp-block-navigation__responsive-container-open svg {
    fill: currentColor !important;
    stroke: currentColor !important;
  }

  /* WordPress opens this as a full-screen modal. Force the brand background
     so white menu text can never disappear onto a white overlay. */
  body .wp-block-navigation__responsive-container.is-menu-open {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    min-height: 100vh !important;
    z-index: 999999 !important;
    display: flex !important;
    flex-direction: column !important;
    overflow-y: auto !important;
    background: #08264A !important;
    background-color: #08264A !important;
    color: #ffffff !important;
    padding: 24px !important;
  }

  body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-close {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 100% !important;
  }

  body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
    width: 100% !important;
    min-height: calc(100dvh - 48px) !important;
    display: flex !important;
    flex-direction: column !important;
  }

  body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
    position: absolute !important;
    top: 4px !important;
    right: 4px !important;
    z-index: 2 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 48px !important;
    height: 48px !important;
    color: #ffffff !important;
    background: transparent !important;
    border: 0 !important;
  }

  body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close svg {
    width: 30px !important;
    height: 30px !important;
    fill: currentColor !important;
    stroke: currentColor !important;
  }

  body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
    display: flex !important;
    flex: 1 1 auto !important;
    flex-direction: column !important;
    justify-content: flex-start !important;
    align-items: flex-start !important;
    width: 100% !important;
    padding-top: 72px !important;
  }

  body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
  body .wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    width: 100% !important;
  }

  body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    border-bottom: 1px solid rgba(255,255,255,.16) !important;
  }

  body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content,
  body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__label,
  body .wp-block-navigation__responsive-container.is-menu-open a:not(.wp-element-button) {
    display: block !important;
    width: 100% !important;
    padding: 16px 2px !important;
    color: #ffffff !important;
    background: transparent !important;
    font-size: 1.18rem !important;
    line-height: 1.3 !important;
    font-weight: 750 !important;
    text-decoration: none !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover,
  body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:focus,
  body .wp-block-navigation__responsive-container.is-menu-open a:not(.wp-element-button):hover,
  body .wp-block-navigation__responsive-container.is-menu-open a:not(.wp-element-button):focus {
    color: #FFD23F !important;
  }

  /* Submenus stack naturally in the mobile modal. */
  body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
    position: static !important;
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    padding: 0 0 8px 18px !important;
    color: #ffffff !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
  }

  /* Preserve modal scroll behavior on iOS/Safari. */
  html.has-modal-open,
  body.has-modal-open {
    overflow: hidden !important;
  }
}
