/* Urban Web mobile navigation — full-width accessibility and layout fix */
@media (max-width: 1100px) {
  html,
  body {
    max-width: 100%;
    overflow-x: clip;
  }

  .site-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 10000 !important;
    width: 100% !important;
    min-width: 0 !important;
    padding-left: max(0.85rem, env(safe-area-inset-left)) !important;
    padding-right: max(0.85rem, env(safe-area-inset-right)) !important;
  }

  details.mobile-menu {
    position: static !important;
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    z-index: 10001 !important;
  }

  details.mobile-menu > summary {
    box-sizing: border-box !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-width: 72px !important;
    min-height: 46px !important;
    margin: 0 !important;
    padding: 0.7rem 0.9rem !important;
    border: 2px solid currentColor !important;
    border-radius: 8px !important;
    cursor: pointer !important;
    list-style: none !important;
    line-height: 1 !important;
    text-align: center !important;
    white-space: nowrap !important;
    touch-action: manipulation;
  }

  details.mobile-menu > summary::-webkit-details-marker {
    display: none !important;
  }

  details.mobile-menu[open] > summary {
    position: relative !important;
    z-index: 10003 !important;
  }

  details.mobile-menu > nav {
    box-sizing: border-box !important;
    position: fixed !important;
    z-index: 10002 !important;
    top: 88px !important;
    left: 0 !important;
    right: 0 !important;
    width: 100vw !important;
    max-width: none !important;
    min-width: 0 !important;
    height: calc(100dvh - 88px) !important;
    max-height: calc(100dvh - 88px) !important;
    margin: 0 !important;
    padding: 1rem max(1.15rem, env(safe-area-inset-right)) max(2rem, env(safe-area-inset-bottom)) max(1.15rem, env(safe-area-inset-left)) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    background: #fffdf8 !important;
    border: 0 !important;
    border-top: 1px solid rgba(23, 70, 54, 0.14) !important;
    box-shadow: 0 20px 42px rgba(15, 45, 36, 0.18) !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    gap: 0 !important;
    text-align: left !important;
    transform: none !important;
  }

  details.mobile-menu > nav > a,
  details.mobile-menu > nav .nav-link {
    box-sizing: border-box !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 100% !important;
    max-width: none !important;
    min-height: 50px !important;
    margin: 0 !important;
    padding: 0.78rem 0.75rem !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(23, 70, 54, 0.11) !important;
    color: #172126 !important;
    background: transparent !important;
    font-size: 1rem !important;
    font-weight: 750 !important;
    line-height: 1.28 !important;
    letter-spacing: 0.01em !important;
    text-align: left !important;
    text-transform: none !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }

  details.mobile-menu > nav > a:hover,
  details.mobile-menu > nav > a:focus-visible {
    color: #0f6848 !important;
    background: rgba(20, 134, 83, 0.08) !important;
    outline: none !important;
  }

  details.mobile-menu > nav > a[aria-current="page"],
  details.mobile-menu > nav > a.is-active {
    color: #0f6848 !important;
    background: rgba(20, 134, 83, 0.09) !important;
    border-left: 4px solid #148653 !important;
    padding-left: calc(0.75rem - 4px) !important;
  }

  details.mobile-menu .mobile-nav-label {
    width: 100% !important;
    margin: 0.9rem 0 0 !important;
    padding: 0.6rem 0.75rem 0.35rem !important;
    color: #66736c !important;
    font-size: 0.72rem !important;
    font-weight: 850 !important;
    line-height: 1.2 !important;
    letter-spacing: 0.14em !important;
    text-align: left !important;
    text-transform: uppercase !important;
  }

  details.mobile-menu > nav > a.mobile-service-link {
    min-height: 46px !important;
    padding-left: 1.35rem !important;
    font-size: 0.95rem !important;
    font-weight: 680 !important;
  }

  details.mobile-menu > nav > a.quote-nav-link {
    justify-content: center !important;
    min-height: 52px !important;
    margin-top: 1rem !important;
    padding: 0.9rem 1rem !important;
    color: #ffffff !important;
    background: #148653 !important;
    border: 0 !important;
    border-radius: 8px !important;
    text-align: center !important;
    font-weight: 850 !important;
  }

  details.mobile-menu > nav > a.quote-nav-link:hover,
  details.mobile-menu > nav > a.quote-nav-link:focus-visible {
    color: #ffffff !important;
    background: #0f6848 !important;
  }

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

@media (max-width: 620px) {
  .site-header {
    min-height: 76px !important;
    height: 76px !important;
    gap: 0.55rem !important;
  }

  details.mobile-menu > summary {
    min-width: 64px !important;
    min-height: 44px !important;
    padding-inline: 0.72rem !important;
    font-size: 0.84rem !important;
  }

  details.mobile-menu > nav {
    top: 76px !important;
    height: calc(100dvh - 76px) !important;
    max-height: calc(100dvh - 76px) !important;
  }
}

@media (max-width: 390px) {
  .site-header {
    padding-left: max(0.6rem, env(safe-area-inset-left)) !important;
    padding-right: max(0.6rem, env(safe-area-inset-right)) !important;
  }

  details.mobile-menu > summary {
    min-width: 58px !important;
    padding-inline: 0.58rem !important;
    font-size: 0.78rem !important;
  }

  details.mobile-menu > nav {
    padding-left: max(0.85rem, env(safe-area-inset-left)) !important;
    padding-right: max(0.85rem, env(safe-area-inset-right)) !important;
  }
}
