/* BPH Mega Grid 2.0 — shortcode cards and optional native WordPress menu */
.bph-mega-grid,
.bph-mega-grid *{box-sizing:border-box}
.bph-mega-grid{
  --bph-cols:3;--bph-tablet-cols:2;--bph-width:900px;--bph-gap:10px;
  --bph-pad:18px;--bph-radius:14px;--bph-bg:#fff;--bph-text:#20313a;--bph-accent:#2496ad;
  width:min(var(--bph-width),94vw);max-width:100%;padding:var(--bph-pad);
  background:var(--bph-bg);border-radius:var(--bph-radius);
  box-shadow:0 14px 38px rgba(0,0,0,.12);color:var(--bph-text);
  margin:0;overflow:visible;
}
.bph-mega-grid__heading{font-size:1.18rem;line-height:1.35;margin:0 0 14px;color:var(--bph-text)}
.bph-mega-grid__group-title{font-size:.9rem;letter-spacing:.035em;text-transform:uppercase;margin:14px 0 9px;color:var(--bph-accent);font-weight:750}
.bph-mega-grid__heading + .bph-mega-grid__group-title{margin-top:0}
.bph-mega-grid__items{display:grid;grid-template-columns:repeat(var(--bph-cols),minmax(0,1fr));gap:var(--bph-gap)}
.bph-mega-grid__items + .bph-mega-grid__items,.bph-mega-grid__items + .bph-mega-grid__group-title{margin-top:14px}
.bph-mega-grid a.bph-mega-grid__card,.bph-mega-grid .bph-mega-grid__card{
  display:flex;flex-direction:column;justify-content:center;min-width:0;
  padding:12px 14px;border:1px solid #edf1f3;border-radius:9px;
  background:var(--bph-bg);color:var(--bph-text);text-decoration:none;
  font-size:14px;line-height:1.36;font-weight:600;transition:background-color .18s,color .18s,transform .18s,border-color .18s;
}
.bph-mega-grid a.bph-mega-grid__card:hover,.bph-mega-grid a.bph-mega-grid__card:focus-visible{
  background:color-mix(in srgb,var(--bph-accent) 8%,var(--bph-bg));
  color:var(--bph-accent);border-color:var(--bph-accent);transform:translateY(-1px);outline-offset:2px
}
.bph-mega-grid__description{display:block;margin-top:5px;font-size:12px;line-height:1.35;font-weight:400;opacity:.76}
.bph-mega-grid__card--unlinked{opacity:.68;cursor:default}
.bph-services-mega-notice{padding:12px;background:#fff8e5;border:1px solid #f0d58a;color:#604513}
@media(max-width:900px){
  .bph-mega-grid{width:min(var(--bph-width),95vw)}
  .bph-mega-grid__items{grid-template-columns:repeat(var(--bph-tablet-cols),minmax(0,1fr))}
}
@media(max-width:640px){
  .bph-mega-grid{width:100%;max-width:100%;padding:10px;box-shadow:none;border-radius:min(var(--bph-radius),10px)}
  .bph-mega-grid__items{grid-template-columns:minmax(0,1fr);gap:7px}
  .bph-mega-grid a.bph-mega-grid__card,.bph-mega-grid .bph-mega-grid__card{padding:11px 12px}
}

/* v4: Robust automatic mega dropdown.
   A panel is placed at body level, outside narrow theme/ElementsKit submenus. */
.bph-auto-mega-active > ul,
.bph-auto-mega-active > .elementskit-dropdown,
.bph-auto-mega-active > .sub-menu,
.bph-auto-mega-active > .dropdown-menu {
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
#bph-auto-mega-overlay,
#bph-auto-mega-overlay * {box-sizing:border-box!important}
#bph-auto-mega-overlay {
  --bph-auto-cols:3;
  display:grid!important;
  grid-template-columns:repeat(var(--bph-auto-cols),minmax(0,1fr))!important;
  position:fixed!important;
  inset:auto auto auto auto!important;
  z-index:2147483000!important;
  width:640px;
  max-width:calc(100vw - 24px)!important;
  gap:10px!important;
  padding:18px!important;
  margin:0!important;
  overflow-x:hidden!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
  background:#fff!important;
  color:#20313a!important;
  border:0!important;
  border-radius:14px!important;
  box-shadow:0 14px 38px rgba(0,0,0,.16)!important;
  transform:none!important;
  opacity:1!important;
  visibility:visible!important;
  text-align:left!important;
  text-transform:none!important;
}
#bph-auto-mega-overlay[hidden] {display:none!important}
#bph-auto-mega-overlay a.bph-auto-mega-link {
  display:flex!important;
  align-items:center!important;
  width:100%!important;
  min-width:0!important;
  min-height:46px!important;
  padding:12px 14px!important;
  margin:0!important;
  border:1px solid #edf1f3!important;
  border-radius:9px!important;
  background:#fff!important;
  color:#20313a!important;
  box-shadow:none!important;
  text-decoration:none!important;
  text-align:left!important;
  text-transform:none!important;
  letter-spacing:normal!important;
  font-family:inherit!important;
  font-size:14px!important;
  line-height:1.35!important;
  font-weight:600!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:anywhere!important;
  transition:background .18s ease,color .18s ease,border-color .18s ease!important;
}
#bph-auto-mega-overlay a.bph-auto-mega-link:hover,
#bph-auto-mega-overlay a.bph-auto-mega-link:focus-visible {
  background:#f3fafc!important;
  color:#2496ad!important;
  border-color:#2496ad!important;
}
@media (prefers-reduced-motion:reduce) {
  #bph-auto-mega-overlay a.bph-auto-mega-link {transition:none!important}
}


/* v5 no-JavaScript fallback. Uses modern :has() to count existing menu links.
   It intentionally never affects the Services shortcode or mobile accordions. */
@media (min-width: 768px) {
  body :is(header nav, [role="banner"] nav, .elementor-nav-menu,
      .elementskit-navbar-nav, .site-header nav, #masthead nav,
      .main-navigation, .primary-navigation, .ekit-template-content-header nav)
      li:has(> ul:is(.sub-menu,.elementskit-dropdown,.dropdown-menu,.children):has(> li:nth-child(11))) {
    position:relative!important;
  }
  body :is(header nav, [role="banner"] nav, .elementor-nav-menu,
      .elementskit-navbar-nav, .site-header nav, #masthead nav,
      .main-navigation, .primary-navigation, .ekit-template-content-header nav)
      li > ul:is(.sub-menu,.elementskit-dropdown,.dropdown-menu,.children):has(> li:nth-child(11)) {
    --bph-native-cols:3;
    box-sizing:border-box!important;
    position:absolute!important;
    top:100%!important;
    right:0!important;
    left:auto!important;
    bottom:auto!important;
    width:min(650px,calc(100vw - 24px))!important;
    min-width:0!important;
    max-width:calc(100vw - 24px)!important;
    height:auto!important;
    max-height:min(680px,calc(100vh - 120px))!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    grid-template-columns:repeat(var(--bph-native-cols),minmax(0,1fr))!important;
    grid-auto-flow:row!important;
    align-items:stretch!important;
    gap:10px!important;
    padding:18px!important;
    margin:0!important;
    border:0!important;
    border-radius:14px!important;
    background:#fff!important;
    box-shadow:0 14px 38px rgba(0,0,0,.15)!important;
    white-space:normal!important;
    transform:none!important;
    z-index:999999!important;
  }
  body :is(header nav, [role="banner"] nav, .elementor-nav-menu,
      .elementskit-navbar-nav, .site-header nav, #masthead nav,
      .main-navigation, .primary-navigation, .ekit-template-content-header nav)
      li > ul:is(.sub-menu,.elementskit-dropdown,.dropdown-menu,.children):has(> li:nth-child(17)) {
    --bph-native-cols:4;
    width:min(870px,calc(100vw - 24px))!important;
  }
  body :is(header nav, [role="banner"] nav, .elementor-nav-menu,
      .elementskit-navbar-nav, .site-header nav, #masthead nav,
      .main-navigation, .primary-navigation, .ekit-template-content-header nav)
      li > ul:is(.sub-menu,.elementskit-dropdown,.dropdown-menu,.children):has(> li:nth-child(25)) {
    --bph-native-cols:5;
    width:min(1090px,calc(100vw - 24px))!important;
  }
  body :is(header nav, [role="banner"] nav, .elementor-nav-menu,
      .elementskit-navbar-nav, .site-header nav, #masthead nav,
      .main-navigation, .primary-navigation, .ekit-template-content-header nav)
      li:not(.bph-auto-mega-active):is(:hover,:focus-within)
      > ul:is(.sub-menu,.elementskit-dropdown,.dropdown-menu,.children):has(> li:nth-child(11)) {
    display:grid!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
  }
  body :is(header nav, [role="banner"] nav, .elementor-nav-menu,
      .elementskit-navbar-nav, .site-header nav, #masthead nav,
      .main-navigation, .primary-navigation, .ekit-template-content-header nav)
      li > ul:is(.sub-menu,.elementskit-dropdown,.dropdown-menu,.children):has(> li:nth-child(11)) > li {
    display:block!important;
    float:none!important;
    clear:none!important;
    position:static!important;
    width:auto!important;
    min-width:0!important;
    height:auto!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    transform:none!important;
  }
  body :is(header nav, [role="banner"] nav, .elementor-nav-menu,
      .elementskit-navbar-nav, .site-header nav, #masthead nav,
      .main-navigation, .primary-navigation, .ekit-template-content-header nav)
      li > ul:is(.sub-menu,.elementskit-dropdown,.dropdown-menu,.children):has(> li:nth-child(11)) > li > a {
    display:flex!important;
    align-items:center!important;
    box-sizing:border-box!important;
    width:100%!important;
    min-width:0!important;
    height:100%!important;
    min-height:46px!important;
    padding:12px 14px!important;
    margin:0!important;
    border:1px solid #edf1f3!important;
    border-radius:9px!important;
    background:#fff!important;
    color:#20313a!important;
    font-size:14px!important;
    font-weight:600!important;
    line-height:1.35!important;
    text-align:left!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    text-transform:none!important;
    text-decoration:none!important;
    box-shadow:none!important;
  }
  body :is(header nav, [role="banner"] nav, .elementor-nav-menu,
      .elementskit-navbar-nav, .site-header nav, #masthead nav,
      .main-navigation, .primary-navigation, .ekit-template-content-header nav)
      li > ul:is(.sub-menu,.elementskit-dropdown,.dropdown-menu,.children):has(> li:nth-child(11)) > li > a:is(:hover,:focus-visible) {
    background:#f3fafc!important;
    color:#2496ad!important;
    border-color:#2496ad!important;
  }
}
@media (min-width:768px) and (max-width:1099px) {
  body :is(header nav,[role="banner"] nav,.elementor-nav-menu,
      .elementskit-navbar-nav,.site-header nav,#masthead nav,
      .main-navigation,.primary-navigation,.ekit-template-content-header nav)
      li > ul:is(.sub-menu,.elementskit-dropdown,.dropdown-menu,.children):has(> li:nth-child(11)) {
    --bph-native-cols:3;
    width:min(650px,calc(100vw - 24px))!important;
  }
}
