/* BSBWEALTH Core 3.0.0 — compatibility/hardening layer.
 * Preserves the menu behavior approved in 2.0.1 across Theme 1.3.x/3.0.0.
 * All selectors are scoped to BSBWEALTH-owned interface.
 */

html.bsbw-menu-open,
html.bsbw-menu-open body {
  overflow: hidden !important;
  overscroll-behavior: none;
}

/* WordPress Navigation overlay — deterministic across iOS/Safari/Chrome. */
.bsbw-header .wp-block-navigation__responsive-container {
  box-sizing: border-box;
}

.bsbw-header .wp-block-navigation__responsive-container.is-menu-open {
  position: fixed !important;
  inset: 0 !important;
  z-index: 99999 !important;
  width: 100vw !important;
  max-width: none !important;
  min-height: 100vh !important;
  min-height: 100dvh !important;
  margin: 0 !important;
  padding: max(1rem, env(safe-area-inset-top)) max(1.25rem, env(safe-area-inset-right)) max(1.5rem, env(safe-area-inset-bottom)) max(1.25rem, env(safe-area-inset-left)) !important;
  background: #f4f1eb !important;
  color: #102733 !important;
  overflow-x: hidden !important;
  overflow-y: auto !important;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
}

.bsbw-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog {
  width: min(100%, 720px) !important;
  min-height: calc(100dvh - max(2rem, env(safe-area-inset-top)) - max(2.5rem, env(safe-area-inset-bottom))) !important;
  margin: 0 auto !important;
  display: flex !important;
  flex-direction: column !important;
}

.bsbw-header .wp-block-navigation__responsive-container-close {
  display: none !important;
}

.bsbw-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close {
  position: sticky !important;
  top: max(.25rem, env(safe-area-inset-top)) !important;
  margin-left: auto !important;
  width: 48px !important;
  height: 48px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  z-index: 4 !important;
  color: #102733 !important;
  background: rgba(244,241,235,.96) !important;
  border-radius: 999px !important;
}

.bsbw-header .wp-block-navigation__responsive-container-content {
  flex: 1 1 auto !important;
  width: 100% !important;
  padding: clamp(2rem, 9vh, 5rem) 0 2rem !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
}

.bsbw-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
  width: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
  gap: 0 !important;
}

.bsbw-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  align-items: stretch !important;
}

.bsbw-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
  width: 100% !important;
  padding: 1rem 0 !important;
  border-bottom: 1px solid rgba(16,39,51,.16) !important;
  color: #102733 !important;
  font-size: clamp(1.05rem, 4.6vw, 1.45rem) !important;
  font-weight: 650 !important;
  line-height: 1.2 !important;
  letter-spacing: .02em !important;
  text-decoration: none !important;
  white-space: normal !important;
  overflow-wrap: anywhere;
}

.bsbw-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
  position: static !important;
  width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  visibility: visible !important;
  opacity: 1 !important;
  margin: 0 !important;
  padding: .25rem 0 .75rem 1rem !important;
  border: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

.bsbw-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  padding: .8rem 0 !important;
  font-size: clamp(.95rem, 4vw, 1.2rem) !important;
  font-weight: 550 !important;
  color: #315a66 !important;
}

.bsbw-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu__toggle {
  display: none !important;
}

/* Mobile header remains compact and never competes with overlay. */
@media (max-width: 1020px) {
  .bsbw-header__inner {
    min-height: 72px !important;
    gap: 1rem !important;
  }
  .bsbw-brand {
    min-width: 0 !important;
    flex: 1 1 auto !important;
  }
  .bsbw-brand img {
    width: min(230px, 62vw) !important;
    max-width: 100% !important;
  }
  .bsbw-header .wp-block-navigation__responsive-container-open {
    width: 48px !important;
    height: 48px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 48px !important;
  }
}

/* Avoid iOS zoom on form focus and improve touch targets. */
@media (max-width: 720px) {
  .bsbw-form input:not([type="checkbox"]),
  .bsbw-form textarea,
  .bsbw-form select {
    font-size: 16px !important;
  }
  .bsbw-form button,
  .wp-block-button__link,
  .bsbw-service__cta,
  .bsbw-partner__cta {
    min-height: 44px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .bsbw-header .wp-block-navigation__responsive-container,
  .bsbw-header .wp-block-navigation__responsive-container * {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
  }
}
