/* Mobile-only viewport layer. The native desktop Navigation DOM is restored on close. */
@media (max-width: 900px) {
  /* Core's :not(.is-menu-open.is-menu-open) forces background-color: inherit
     with !important. Our own mobile state must outrank that closed-core rule. */
  body > .bb-navigation-overlay.bb-mobile-overlay.wp-block-navigation__responsive-container {
    display: flex !important;
    position: fixed !important;
    inset: 0 !important;
    width: 100%;
    height: 100vh;
    height: 100dvh;
    max-height: none !important;
    max-width: none;
    margin: 0;
    padding: calc(18px + env(safe-area-inset-top, 0px)) calc(24px + env(safe-area-inset-right, 0px)) calc(18px + env(safe-area-inset-bottom, 0px)) calc(24px + env(safe-area-inset-left, 0px));
    /* Same layer as core's fullscreen Navigation: above header (30), site
       dialogs (80), and the WordPress admin bar (99999). */
    z-index: 100000;
    background: #0c1915 !important;
    opacity: 1 !important;
    color: var(--ink) !important;
    border: 0 !important;
    border-radius: 0;
    box-shadow: none !important;
    overflow: hidden !important;
    overscroll-behavior: contain;
    transform: none !important;
    filter: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    mix-blend-mode: normal;
    isolation: isolate;
    /* Surface and text enter/leave together; never fade the surface alone. */
    animation: none !important;
    transition: none !important;
  }
  .bb-mobile-overlay.wp-block-navigation__responsive-container .wp-block-navigation__responsive-close,
  .bb-mobile-overlay.wp-block-navigation__responsive-container .wp-block-navigation__responsive-dialog { position: relative; width: 100%; height: 100%; max-width: none; display: flex; flex-direction: column; min-height: 0; margin: 0; }
  .bb-mobile-overlay.wp-block-navigation__responsive-container .bb-mobile-menu-heading { flex: 0 0 48px; margin: 0; padding: 0 60px 0 0; font: 580 18px/48px Inter, ui-sans-serif, sans-serif; letter-spacing: -.02em; color: var(--ink); }
  .bb-mobile-overlay.wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-close { display: flex !important; align-items: center; justify-content: center; position: absolute; z-index: 1; inset: 0 0 auto auto; width: 48px; height: 48px; margin: 0; padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: transparent; color: var(--ink); }
  .bb-mobile-overlay.wp-block-navigation__responsive-container .wp-block-navigation__responsive-container-content {
    display: block !important;
    flex: 1;
    min-height: 0;
    width: 100%;
    padding: 22px 0 16px !important;
    overflow-y: auto;
    overflow-x: hidden;
    overscroll-behavior: contain;
    touch-action: pan-y;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
  }
  .bb-mobile-overlay.wp-block-navigation__responsive-container .bb-mobile-menu-list { display: flex !important; flex-direction: column !important; align-items: stretch !important; width: 100%; gap: 0 !important; margin: 0; padding: 0; }
  .bb-mobile-overlay.wp-block-navigation__responsive-container .bb-mobile-menu-list.wp-block-navigation__container > .wp-block-navigation-item { display: block !important; width: 100%; margin: 0; padding: 0; border-bottom: 1px solid var(--line); }
  .bb-mobile-overlay.wp-block-navigation__responsive-container .bb-mobile-menu-list.wp-block-navigation__container > .wp-block-navigation-item > a.wp-block-navigation-item__content,
  .bb-mobile-overlay.wp-block-navigation__responsive-container .bb-mobile-accordion-toggle {
    display: flex !important;
    position: relative;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    min-height: 56px;
    margin: 0;
    padding: 14px 14px 14px 16px;
    border: 0;
    border-radius: 0;
    background: transparent;
    font: 580 22px/28px Inter, ui-sans-serif, sans-serif;
    letter-spacing: -.02em;
    text-align: left;
    color: var(--ink);
  }
  .bb-mobile-overlay.wp-block-navigation__responsive-container .bb-mobile-menu-list.wp-block-navigation__container > .wp-block-navigation-item > a.bb-mobile-accordion-source { display: none !important; }
  .bb-mobile-overlay.wp-block-navigation__responsive-container .bb-mobile-accordion-toggle svg { flex: 0 0 14px; width: 14px; height: 14px; margin-left: 16px; transition: transform 180ms ease; }
  .bb-mobile-overlay.wp-block-navigation__responsive-container .bb-mobile-accordion-toggle[aria-expanded="true"] svg { transform: rotate(180deg); }
  .bb-mobile-overlay.wp-block-navigation__responsive-container .wp-block-navigation__submenu-container { position: static !important; width: 100% !important; min-width: 0; height: auto !important; max-height: none; overflow: visible !important; visibility: visible !important; opacity: 1 !important; margin: 0; padding: 0 0 14px 16px; border: 0 !important; border-radius: 0; box-shadow: none !important; background: transparent !important; transform: none !important; gap: 0 !important; flex-direction: column; align-items: stretch; }
  .bb-mobile-overlay.wp-block-navigation__responsive-container .wp-block-navigation__submenu-container:not([hidden]) { display: flex !important; }
  .bb-mobile-overlay.wp-block-navigation__responsive-container .wp-block-navigation__submenu-container[hidden] { display: none !important; }
  .bb-mobile-overlay.wp-block-navigation__responsive-container .wp-block-navigation__submenu-container .wp-block-navigation-item { display: block; width: 100%; margin: 0; padding: 0; }
  .bb-mobile-overlay.wp-block-navigation__responsive-container .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { padding: 0; }
  .bb-mobile-overlay.wp-block-navigation__responsive-container .wp-block-navigation__submenu-container .wp-block-navigation-item__content { display: flex; align-items: center; position: relative; min-height: 46px; padding: 11px 14px; margin: 0; border: 0; border-radius: 0; font: 500 15px/24px Inter, ui-sans-serif, sans-serif; letter-spacing: -.015em; white-space: normal; overflow-wrap: anywhere; text-align: left; color: var(--ink); background: transparent !important; }
  .bb-mobile-overlay.wp-block-navigation__responsive-container .bb-mobile-service-category > .wp-block-navigation-submenu__toggle { display: none !important; }
  .bb-mobile-overlay.wp-block-navigation__responsive-container .bb-mobile-service-category > a.wp-block-navigation-item__content { min-height: 44px; padding-top: 18px; padding-bottom: 6px; font-size: 11px; line-height: 20px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--sage); }
  .bb-mobile-overlay.wp-block-navigation__responsive-container .bb-mobile-all-services { border-bottom: 1px solid var(--line); }
  .bb-mobile-overlay.wp-block-navigation__responsive-container .wp-block-navigation-item__content::after { display: none; }
  .bb-mobile-overlay.wp-block-navigation__responsive-container .wp-block-navigation-item__content:is([aria-current="page"], [data-bb-current-section="true"]),
  .bb-mobile-overlay.wp-block-navigation__responsive-container .bb-mobile-accordion-toggle[data-bb-mobile-section-current="true"] { color: var(--coral); }
  .bb-mobile-overlay.wp-block-navigation__responsive-container .wp-block-navigation-item__content:is([aria-current="page"], [data-bb-current-section="true"])::before,
  .bb-mobile-overlay.wp-block-navigation__responsive-container .bb-mobile-accordion-toggle[data-bb-mobile-section-current="true"]::before { content: ""; position: absolute; left: 0; top: 18px; width: 2px; height: 20px; border-radius: 1px; background: var(--coral); }
  .bb-mobile-overlay :is(a,button):focus-visible { outline: 2px solid var(--coral-l); outline-offset: -3px; }
  .bb-mobile-overlay.wp-block-navigation__responsive-container .wp-block-navigation-item__content:hover,
  .bb-mobile-overlay.wp-block-navigation__responsive-container .bb-mobile-accordion-toggle:hover { color: var(--coral-l); }
}
@media (prefers-reduced-motion: reduce) { .bb-mobile-overlay *, .bb-mobile-overlay *::before, .bb-mobile-overlay *::after { animation: none !important; transition: none !important; } }
