/* Mobile Navigation Patterns - Optimized Selectors */

/* Shared utility classes to reduce duplication */
.nav-mobile-fixed {
  position: fixed !important;
  background: #fff !important;
  z-index: 2202 !important;
}

.nav-mobile-flex {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.nav-mobile-fullscreen {
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
}

/* Mobile Mega Menu Responsive Behavior */
/* Desktop intermediate breakpoint: 1025-1480px - Align Services dropdown with logo */
@media (min-width: 1025px) and (max-width: 1480px) {
  .mega-menu>.wp-block-navigation-item.has-child.is-menu-open>.wp-block-navigation__submenu-container {
    left: 0 !important;
    margin-left: 0 !important;
    transform: translateX(0) !important;
  }

  .mega-menu .wp-block-navigation__submenu-container>li:first-child {
    min-width: 150px !important;
    flex-shrink: 1 !important;
  }

  .mega-menu .wp-block-navigation__submenu-container>li:not(:first-child) {
    min-width: 322px !important;
    flex-shrink: 0 !important;
  }
}

@media (min-width: 1025px) and (max-width: 1150px) {
  .mega-menu .wp-block-navigation__submenu-container>li:first-child {
    min-width: 150px !important;
    max-width: 400px;
    flex-shrink: 1 !important;
  }

  .mega-menu .wp-block-navigation__submenu-container>li:not(:first-child) {
    min-width: 222px !important;
    flex-shrink: 1 !important;
  }
}

/* Global mega-menu label and icon base styles (moved here for navigation grouping) */
.mega-menu-label-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  margin-left: 12px;
  border-radius: 50%;
  background: var(--Brand-2, #d53007);
  position: relative;
  top: 2px;
}

.mega-menu-label-icon svg {
  width: 16px;
  height: 16px;
  display: block;
}

.wp-block-navigation-item__content.mega-menu-label {
  color: var(--Brand-Black, #222);
  text-transform: none;
  font-family: Montserrat, sans-serif;
  font-size: 20px;
  font-style: normal;
  font-weight: 600;
  line-height: 1.3;
  letter-spacing: -0.4px;
}

/* is-style-dark: a block style that creates the dark, lower-row appearance
   Example usage: add `is-style-dark` to a menu item (<li class="is-style-dark">)
   Produces a dark background row with white text and a white circular chevron. */
.wp-block-navigation__container .is-style-dark>.wp-block-navigation-item__content,
.wp-block-navigation__container .is-style-dark>a {
  background: #183342 !important;
  color: #ffffff !important;
  text-decoration: none !important;
}

/* Desktop/top-level (non-responsive) item appearance */
.wp-block-navigation .wp-block-navigation-item.is-style-dark>.wp-block-navigation-item__content {
  background: #183342 !important;
  color: #ffffff !important;
}

@media (max-width: 1024px) {
  .wp-block-navigation__responsive-container .wp-block-navigation__container .is-style-dark>a {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
  }

  /* White circular chevron at the right for dark rows */
  .wp-block-navigation__responsive-container .wp-block-navigation__container .is-style-dark>a::after {
    content: '';
    display: inline-block;
    width: 28px;
    height: 28px;
    background-color: #ffffff;
    border-radius: 50%;
    flex-shrink: 0;
    margin-left: 12px;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 16 16' fill='none'><path d='M11.354 8.35378L6.35403 13.3538C6.30757 13.4002 6.25242 13.4371 6.19173 13.4622C6.13103 13.4874 6.06598 13.5003 6.00028 13.5003C5.93458 13.5003 5.86953 13.4874 5.80883 13.4622C5.74813 13.4371 5.69298 13.4002 5.64653 13.3538C5.60007 13.3073 5.56322 13.2522 5.53808 13.1915C5.51294 13.1308 5.5 13.0657 5.5 13C5.5 12.9343 5.51294 12.8693 5.53808 12.8086C5.56322 12.7479 5.60007 12.6927 5.64653 12.6463L10.2934 8.00003L5.64653 3.35378C5.55271 3.25996 5.5 3.13272 5.5 3.00003C5.5 2.86735 5.55271 2.7401 5.64653 2.64628C5.74035 2.55246 5.8676 2.49976 6.00028 2.49976C6.13296 2.49976 6.26021 2.55246 6.35403 2.64628L11.354 7.64628C11.4005 7.69272 11.4374 7.74786 11.4626 7.80856C11.4877 7.86926 11.5007 7.93433 11.5007 8.00003C11.5007 8.06574 11.4877 8.13081 11.4626 8.1915C11.4374 8.2522 11.4005 8.30735 11.354 8.35378Z' fill='%23183342'/></svg>");
    background-repeat: no-repeat;
    background-position: center;
    background-size: 12px 12px;
  }

  /* Base overlay container + dialog - Shortened selectors */
  .wp-block-navigation__responsive-container {
    display: none !important;
  }

  .wp-block-navigation__responsive-container.is-menu-open {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    z-index: 99999 !important;
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    padding: 0 !important;
    background: #fff !important;
  }

  .wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open {
    background: transparent !important;
  }

  body .wp-block-navigation__responsive-dialog {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2202 !important;
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
    background: transparent !important;
    padding-top: calc(90px + env(safe-area-inset-top)) !important;
  }

  body .wp-block-navigation__responsive-container-close {
    position: fixed !important;
    right: 16px !important;
    top: 26px !important;
    z-index: 2203 !important;
    background: #fff !important;
    border: none !important;
    box-shadow: 0 2px 8px -4px rgba(0, 0, 0, .07) !important;
    padding: 8px !important;
    border-radius: 50% !important;
    width: 40px !important;
    height: 40px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }

  /* Content containers - consolidated and shortened */
  #header .wp-block-navigation__responsive-container-content,
  body .wp-block-navigation__responsive-dialog .wp-block-navigation__responsive-container-content {
    position: relative !important;
    flex: 1 1 auto !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    min-height: 0 !important;
    height: auto !important;
    max-height: none !important;
    overflow: auto !important;
    transform: none !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }

  /* Container list - shortened */
  body .wp-block-navigation__responsive-container-content>ul.wp-block-navigation__container {
    flex: 1 1 auto !important;
    width: 100% !important;
  }

  #wp-site-blocks.menu-overlay-open,
  body.menu-overlay-open {
    overflow: hidden !important;
  }

  /* Root container + rows */
  .wp-block-navigation__responsive-container .wp-block-navigation__container {
    position: static !important;
    top: auto !important;
    left: auto !important;
    width: 100% !important;
    height: auto !important;
    margin-top: 0 !important;
    background: #fff !important;
    z-index: 1;
    box-sizing: border-box;
    transform: none !important;
    opacity: 1;
    overflow-y: auto;
    flex: 1 1 auto !important;
    min-height: 0 !important;
    display: block !important;
  }

  .wp-block-navigation__responsive-container .wp-block-navigation__container>li {
    width: 100% !important;
  }

  .wp-block-navigation__responsive-container .wp-block-navigation__container>li>a {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    min-height: 64px !important;
    gap: 0px;
    color: inherit;
    text-decoration: none;
    border-bottom: 1px solid #e6eaee;
    width: calc(100vw - 106px) !important;
    font-size: 18px;
    line-height: 1.4;
    background: #fff;
    padding-left: 64px !important;
    padding-right: 52px !important;
  }

  .wp-block-navigation__responsive-container .wp-block-navigation__container>li:last-child>a {
    border-bottom: none;
  }

  .wp-block-navigation__responsive-container .wp-block-navigation__container>li.has-child>a::after {
    content: '';
    display: inline-block;
    width: 20px;
    height: 20px;
    background-repeat: no-repeat;
    background-size: 20px 20px;
    background-position: center;
    flex-shrink: 0;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'><path d='M14.1925 10.4423L7.94254 16.6923C7.88447 16.7504 7.81553 16.7964 7.73966 16.8278C7.66379 16.8593 7.58247 16.8755 7.50035 16.8755C7.41823 16.8755 7.33691 16.8593 7.26104 16.8278C7.18517 16.7964 7.11623 16.7504 7.05816 16.6923C7.00009 16.6342 6.95403 16.5653 6.9226 16.4894C6.89117 16.4135 6.875 16.3322 6.875 16.2501C6.875 16.168 6.89117 16.0867 6.9226 16.0108C6.95403 15.9349 7.00009 15.866 7.05816 15.8079L12.8668 10.0001L7.05816 4.19229C6.94088 4.07502 6.875 3.91596 6.875 3.7501C6.875 3.58425 6.94088 3.42519 7.05816 3.30792C7.17544 3.19064 7.3345 3.12476 7.50035 3.12476C7.6662 3.12476 7.82526 3.19064 7.94254 3.30792L14.1925 9.55792C14.2506 9.61596 14.2967 9.68489 14.3282 9.76077C14.3597 9.83664 14.3758 9.91797 14.3758 10.0001C14.3758 10.0822 14.3597 10.1636 14.3282 10.2394C14.2967 10.3153 14.2506 10.3842 14.1925 10.4423Z' fill='%23222222'/></svg>");
  }

  /* Submenu panels (first level collapses; JS toggles .submenu-active) */
  .wp-block-navigation__responsive-container .wp-block-navigation__submenu-container {
    position: absolute !important;
    inset: 0 !important;
    margin-top: 0 !important;
    background: #fff !important;
    z-index: 2;
    box-sizing: border-box;
    transform: none !important;
    opacity: 1;
    overflow-y: auto;
    display: none !important;
    max-height: none !important;
    min-height: 100% !important;
    width: 100% !important;
  }

  .wp-block-navigation__responsive-container .wp-block-navigation__submenu-container.submenu-active {
    display: block !important;
  }

  .wp-block-navigation__responsive-container .wp-block-navigation__container:not(.submenu-hidden) {
    display: block !important;
  }

  .wp-block-navigation__responsive-container .wp-block-navigation__container.submenu-hidden {
    display: none;
  }

  /* Submenu header (back) */
  .wp-block-navigation__responsive-container .submenu-header {
    position: relative !important;
    top: 0 !important;
    z-index: 2202 !important;
    background: #183342 !important;
    color: #fff !important;
    height: 64px !important;
    display: flex !important;
    align-items: center !important;
    padding: 0 56px;
    font-size: 1.11rem !important;
    font-weight: 600 !important;
    box-shadow: 0 2px 8px -4px rgba(0, 0, 0, .07) !important;
  }

  .wp-block-navigation__responsive-container .submenu-header .back-arrow {
    width: 40px !important;
    height: 40px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    margin-right: 16px !important;
    cursor: pointer !important;
    color: #fff !important;
    flex-shrink: 0 !important;
  }

  .wp-block-navigation__responsive-container .submenu-header .back-arrow::before {
    content: '' !important;
    display: block !important;
    width: 20px !important;
    height: 20px !important;
    background-repeat: no-repeat !important;
    background-size: 20px 20px !important;
    background-position: center !important;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 20 20' fill='none'><path d='M14.1925 10.4423L7.94254 16.6923C7.88447 16.7504 7.81553 16.7964 7.73966 16.8278C7.66379 16.8593 7.58247 16.8755 7.50035 16.8755C7.41823 16.8755 7.33691 16.8593 7.26104 16.8278C7.18517 16.7964 7.11623 16.7504 7.05816 16.6923C7.00009 16.6342 6.95403 16.5653 6.9226 16.4894C6.89117 16.4135 6.875 16.3322 6.875 16.2501C6.875 16.168 6.89117 16.0867 6.9226 16.0108C6.95403 15.9349 7.00009 15.866 7.05816 15.8079L12.8668 10.0001L7.05816 4.19229C6.94088 4.07502 6.875 3.91596 6.875 3.7501C6.875 3.58425 6.94088 3.42519 7.05816 3.30792C7.17544 3.19064 7.3345 3.12476 7.50035 3.12476C7.6662 3.12476 7.82526 3.19064 7.94254 3.30792L14.1925 9.55792C14.2506 9.61596 14.2967 9.68489 14.3282 9.76077C14.3597 9.83664 14.3758 9.91797 14.3758 10.0001C14.3758 10.0822 14.3597 10.1636 14.3282 10.2394C14.2967 10.3153 14.2506 10.3842 14.1925 10.4423Z' fill='%23ffffff'/></svg>") !important;
    transform: rotate(180deg) !important;
  }

  /* Submenu base + rows */
  .wp-block-navigation__responsive-container .wp-block-navigation__submenu-container {
    background: #fff !important;
    text-align: left !important;
  }

  .wp-block-navigation__responsive-container .wp-block-navigation__submenu-container>li>a {
    justify-content: flex-start !important;
    gap: 0 !important;
    text-align: left !important;
  }


  .wp-block-navigation__responsive-container .wp-block-navigation__submenu-container>li>.wp-block-navigation-item__content {
    gap: 0 !important;

    line-height: 64px !important;

    text-align: left !important;
  }


  .wp-block-navigation__responsive-container .wp-block-navigation__submenu-container>li {
    border-bottom: 1px solid #e6eaee !important;
  }

  /* Last child border - shortened selector */
  body .wp-block-navigation__responsive-container .wp-block-navigation__submenu-container>li:last-child>a,
  body .wp-block-navigation__responsive-container .wp-block-navigation__submenu-container>li:last-child>.wp-block-navigation-item__content {
    border-bottom: none !important;
  }

  /* White background enforcement - shortened */
  .wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container .wp-block-navigation__container,
  .wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container .wp-block-navigation__submenu-container {
    background: #fff !important;
  }

  /* Safety: backgrounds */
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item,
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item .wp-block-navigation__submenu-container,
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container,
  .wp-block-navigation__responsive-container.is-menu-open .wp-block-page-list {
    background-color: #fff !important;
  }

  /* Nested submenu handling - Optimized selectors */
  .wp-block-navigation__responsive-container .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container {
    position: static !important;
    inset: auto !important;
    display: block !important;
    width: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    background: #fff !important;
    padding: 0 !important;
    border: 0 !important;
  }

  /* Hide nested submenu toggles - consolidated selector */
  .wp-block-navigation__responsive-container .wp-block-navigation__submenu-container .wp-block-navigation__submenu-icon,
  .wp-block-navigation__responsive-container .wp-block-navigation__submenu-container .wp-block-navigation-submenu__toggle {
    display: none !important;
  }

  /* Nested row styling - shortened selector */
  .wp-block-navigation__responsive-container .wp-block-navigation__submenu-container li li .wp-block-navigation-item__content {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
    text-align: left !important;
  }

  .wp-block-navigation__responsive-container .wp-block-navigation__submenu-container li li:last-child .wp-block-navigation-item__content {
    border-bottom: none !important;
  }


}

/* Additional navigation utility styles - shortened selectors */
body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
body .wp-block-navigation__responsive-container.is-menu-open .has-child .wp-block-navigation__submenu-container {
  padding: 0;
}


.wp-block-navigation .wp-block-navigation-submenu .wp-block-navigation-item:not(:last-child) {
  margin-bottom: 0 !important;
}

li[data-original-link] {
  display: none;
}