/* BastionGuard 1.10.24: stable full-width mega navigation.
 * Public header only; login and maintenance keep their original markup.
 */

@media (min-width: 992px) {
  /* The original theme positions every LI relative. Mega panels must instead
     position against the full navbar container, never the 120px menu label. */
  body .site-header.bsg-header:not(.bsg-login-header):not(.swmm-header) .navbar > .container {
    position: relative !important;
    overflow: visible !important;
  }

  body .site-header.bsg-header:not(.bsg-login-header):not(.swmm-header) .navbar-nav,
  body .site-header.bsg-header:not(.bsg-login-header):not(.swmm-header) .navbar-nav > li.bsg-has-mega-menu {
    position: static !important;
  }

  body .site-header.bsg-header:not(.bsg-login-header):not(.swmm-header)
    .navbar-nav > li.bsg-has-mega-menu > .dropdown-menu.bsg-mega-menu {
    position: absolute !important;
    inset: auto auto auto 50% !important;
    top: calc(100% + 5px) !important;
    left: 50% !important;
    right: auto !important;
    bottom: auto !important;
    transform: translateX(-50%) !important;
    width: min(1040px, calc(100vw - 48px)) !important;
    min-width: min(1040px, calc(100vw - 48px)) !important;
    max-width: min(1040px, calc(100vw - 48px)) !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: min(75vh, 650px) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 1px solid #e5edf7 !important;
    border-radius: 17px !important;
    background: #ffffff !important;
    box-shadow: 0 26px 65px rgba(10,45,90,0.135) !important;
    z-index: 1060 !important;
  }
}

body .site-header.bsg-header:not(.bsg-login-header):not(.swmm-header)
  .navbar-nav > li.bsg-has-mega-menu > .dropdown-menu.bsg-mega-menu:not(.show) {
  display: none !important;
}

body .site-header.bsg-header:not(.bsg-login-header):not(.swmm-header)
  .navbar-nav > li.bsg-has-mega-menu > .dropdown-menu.bsg-mega-menu.show {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
}

body .site-header.bsg-header .bsg-mega-menu .bsg-mega-menu__inner {
  display: block !important;
  min-width: 0 !important;
  padding: clamp(19px, 2vw, 30px) !important;
}

body .site-header.bsg-header .bsg-mega-menu .bsg-mega-menu__intro {
  padding: 0 0 20px !important;
  margin-bottom: 23px !important;
  border-bottom: 1px solid #e5edf7 !important;
}

body .site-header.bsg-header .bsg-mega-menu .bsg-mega-menu__intro-title {
  margin: 0 0 7px !important;
  color: #121f32 !important;
  font-size: 18px !important;
  font-weight: 750 !important;
}

body .site-header.bsg-header .bsg-mega-menu .bsg-mega-menu__intro-text {
  margin: 0 !important;
  max-width: 75ch !important;
  color: #4d5d73 !important;
  line-height: 1.6 !important;
  white-space: pre-line !important;
  overflow-wrap: break-word !important;
}

/* This grid must override the legacy dropdown's inherited flex/list rules. */
body .site-header.bsg-header .bsg-mega-menu .bsg-mega-menu__grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 24px !important;
  align-items: stretch !important;
  width: 100% !important;
  min-width: 0 !important;
}
body .site-header.bsg-header .bsg-mega-menu .bsg-mega-menu__grid.bsg-mega-cols-1 {
  grid-template-columns: minmax(0, 1fr) !important;
}
body .site-header.bsg-header .bsg-mega-menu .bsg-mega-menu__grid.bsg-mega-cols-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
body .site-header.bsg-header .bsg-mega-menu .bsg-mega-menu__grid.bsg-mega-cols-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
body .site-header.bsg-header .bsg-mega-menu .bsg-mega-menu__grid.bsg-mega-cols-4 {
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
}

body .site-header.bsg-header .bsg-mega-menu .bsg-mega-col {
  display: flex !important;
  flex-direction: column !important;
  position: relative !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: none !important;
}

body .site-header.bsg-header .bsg-mega-menu .bsg-mega-heading,
body .site-header.bsg-header .bsg-mega-menu .bsg-mega-textblock {
  display: flex !important;
  align-items: flex-start !important;
  flex-direction: row !important;
  gap: 12px !important;
  width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 13px 14px !important;
  text-align: left !important;
  white-space: normal !important;
  overflow-wrap: break-word !important;
  text-decoration: none !important;
  border: 1px solid #e5edf7 !important;
  border-radius: 11px !important;
  background: rgba(8,107,235,0.025) !important;
  box-shadow: none !important;
  color: #121f32 !important;
}
body .site-header.bsg-header .bsg-mega-menu .bsg-mega-heading:is(:hover,:focus-visible),
body .site-header.bsg-header .bsg-mega-menu .bsg-mega-textblock:is(:hover,:focus-visible) {
  background: rgba(17,129,248,0.065) !important;
  border-color: rgba(8,107,235,0.23) !important;
}
body .site-header.bsg-header .bsg-mega-menu .bsg-mega-copy {
  display: flex !important;
  flex: 1 1 auto !important;
  flex-direction: column !important;
  gap: 0 !important;
  min-width: 0 !important;
  white-space: normal !important;
}
body .site-header.bsg-header .bsg-mega-menu .bsg-mega-title {
  display: block !important;
  font-size: 15px !important;
  font-weight: 740 !important;
  letter-spacing: .012em !important;
  line-height: 1.45 !important;
  color: #121f32 !important;
  white-space: normal !important;
  overflow-wrap: break-word !important;
  word-break: normal !important;
}
body .site-header.bsg-header .bsg-mega-menu .bsg-mega-description {
  display: block !important;
  margin-top: 7px !important;
  font-size: 13px !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
  letter-spacing: normal !important;
  color: #4d5d73 !important;
  white-space: pre-line !important;
  overflow-wrap: break-word !important;
  word-break: normal !important;
}
body .site-header.bsg-header .bsg-mega-menu .bsg-mega-icon {
  flex: 0 0 21px !important;
  width: 21px !important;
  margin-top: 3px !important;
  text-align: center !important;
  color: #086beb !important;
}
body .site-header.bsg-header .bsg-mega-menu .bsg-mega-links {
  display: flex !important;
  flex-direction: column !important;
  list-style: none !important;
  width: 100% !important;
  margin: 11px 0 0 !important;
  padding: 0 !important;
  gap: 5px !important;
}
body .site-header.bsg-header .bsg-mega-menu .bsg-mega-link-item {
  display: block !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
body .site-header.bsg-header .bsg-mega-menu .bsg-mega-link {
  display: flex !important;
  align-items: flex-start !important;
  gap: 9px !important;
  text-decoration: none !important;
  padding: 10px 12px !important;
  border-radius: 9px !important;
  background: transparent !important;
  color: #121f32 !important;
  white-space: normal !important;
}
body .site-header.bsg-header .bsg-mega-menu .bsg-mega-link:hover {
  background: rgba(8,107,235,0.03) !important;
}

/* A divider decorates the start of the next column; it never takes a grid cell. */
body .site-header.bsg-header .bsg-mega-menu .bsg-mega-col--has-divider::before {
  content: "" !important;
  position: absolute !important;
  display: block !important;
  width: 1px !important;
  height: 100% !important;
  top: 0 !important;
  left: -12px !important;
  background: rgba(8,107,235,0.07) !important;
  box-shadow: none !important;
}
body .site-header.bsg-header .bsg-mega-menu .bsg-mega-break {
  display: block !important;
  grid-column: 1 / -1 !important;
  height: 0 !important;
  min-height: 0 !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}

/* Remove the unwanted blue hover/focus ring from public top-level nav links.
 * The small original teal dot is retained; there is no pill or blue border. */
body .site-header.bsg-header:not(.swmm-header):not(.bsg-login-header)
  .navbar-nav > li > a,
body .site-header.bsg-header:not(.swmm-header):not(.bsg-login-header)
  .navbar-nav > li > a:is(:hover,:focus,:focus-visible,.active,.show),
body .site-header.bsg-header:not(.swmm-header):not(.bsg-login-header)
  .navbar-nav > li:is(:hover,:focus-within,.show,.current-menu-item,.current-menu-parent,.current-menu-ancestor) > a {
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  background: transparent !important;
  background-image: none !important;
  text-shadow: none !important;
  filter: none !important;
  transform: none !important;
}
body .site-header.bsg-header:not(.swmm-header):not(.bsg-login-header)
  .navbar-nav > li > a:focus-visible {
  text-decoration: none !important;
}

/* Login and maintenance: don't re-skin the original header, just fix focus. */
body.login .bsg-login-primary-menu > li > a:is(:focus,:focus-visible),
body.login .bsg-login-primary-menu .sub-menu a:is(:focus,:focus-visible),
body.swmm-maintenance-active .swmm-header .navbar-nav .menu-item > a:is(:focus,:focus-visible),
body.swmm-maintenance-active .swmm-header .sub-menu a:is(:focus,:focus-visible) {
  box-shadow: none !important;
  outline: 2px solid transparent !important;
}
body.login .bsg-login-primary-menu > li > a:focus-visible,
body.login .bsg-login-primary-menu .sub-menu a:focus-visible,
body.swmm-maintenance-active .swmm-header .navbar-nav .menu-item > a:focus-visible,
body.swmm-maintenance-active .swmm-header .sub-menu a:focus-visible {
  outline-color: #e5edf7 !important;
  outline-offset: 2px !important;
}

@media (max-width: 991.98px) {
  body .site-header.bsg-header:not(.bsg-login-header):not(.swmm-header)
    .navbar-nav > li.bsg-has-mega-menu > .dropdown-menu.bsg-mega-menu {
    position: static !important;
    transform: none !important;
    inset: auto !important;
    display: none !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    max-height: 55vh !important;
    overflow-y: auto !important;
    padding: 0 !important;
    margin: 8px 0 12px !important;
    border-radius: 12px !important;
  }
  body .site-header.bsg-header:not(.bsg-login-header):not(.swmm-header)
    .navbar-nav > li.bsg-has-mega-menu > .dropdown-menu.bsg-mega-menu.show {
    display: block !important;
  }
  body .site-header.bsg-header .bsg-mega-menu .bsg-mega-menu__inner {
    padding: 16px !important;
  }
  body .site-header.bsg-header .bsg-mega-menu .bsg-mega-menu__grid,
  body .site-header.bsg-header .bsg-mega-menu .bsg-mega-menu__grid.bsg-mega-cols-1,
  body .site-header.bsg-header .bsg-mega-menu .bsg-mega-menu__grid.bsg-mega-cols-2,
  body .site-header.bsg-header .bsg-mega-menu .bsg-mega-menu__grid.bsg-mega-cols-3,
  body .site-header.bsg-header .bsg-mega-menu .bsg-mega-menu__grid.bsg-mega-cols-4 {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 12px !important;
  }
  body .site-header.bsg-header .bsg-mega-menu .bsg-mega-col--has-divider::before {
    width: 100% !important;
    height: 1px !important;
    top: -6px !important;
    left: 0 !important;
  }
}


/* Explicit display modes — including custom links with an existing URL. */
body .site-header.bsg-header .bsg-mega-menu .bsg-mega-display--text,
body .site-header.bsg-header .bsg-mega-menu .bsg-mega-display--heading {
  cursor: default !important;
  text-decoration: none !important;
  transform: none !important;
  box-shadow: none !important;
}
body .site-header.bsg-header .bsg-mega-menu .bsg-mega-display--text:is(:hover,:focus),
body .site-header.bsg-header .bsg-mega-menu .bsg-mega-display--heading:is(:hover,:focus) {
  background: transparent !important;
  border-color: transparent !important;
}
body .site-header.bsg-header .bsg-mega-menu .bsg-mega-heading.bsg-mega-display--text,
body .site-header.bsg-header .bsg-mega-menu .bsg-mega-link.bsg-mega-display--text,
body .site-header.bsg-header .bsg-mega-menu .bsg-mega-link.bsg-mega-display--heading,
body .site-header.bsg-header .bsg-mega-menu .bsg-mega-heading.bsg-mega-display--heading {
  background: transparent !important;
  border-color: transparent !important;
}
body .site-header.bsg-header .bsg-mega-menu .bsg-mega-display--text .bsg-mega-title {
  color: #66768a !important;
  font-weight: 500 !important;
}
body .site-header.bsg-header .bsg-mega-menu .bsg-mega-display--heading .bsg-mega-title {
  font-size: .86rem !important;
  font-weight: 800 !important;
  text-transform: uppercase !important;
  letter-spacing: .075em !important;
  color: #121f32 !important;
}
/* Preserve readable text inside the mega menu when text wraps over multiple lines. */
body .site-header.bsg-header .bsg-mega-menu :is(.bsg-mega-display--text,.bsg-mega-display--heading) .bsg-mega-description {
  white-space: pre-line !important;
  line-height: 1.6 !important;
}
/* Non-clickable top-level labels: inherit the exact same chrome as existing links. */
body .site-header.bsg-header:not(.bsg-login-header):not(.swmm-header) .navbar-nav > li > button.nav-link,
body .site-header.bsg-header:not(.bsg-login-header):not(.swmm-header) .navbar-nav > li > span.nav-link {
  display: inline-flex !important;
  align-items: center !important;
  padding: .5rem .78rem !important;
  font-family: inherit !important;
  font-size: .95rem !important;
  font-weight: 700 !important;
  letter-spacing: .035em !important;
  background: transparent !important;
  background-image: none !important;
  border: none !important;
  box-shadow: none !important;
  text-shadow: none !important;
  color: rgba(18,31,50,0.798) !important;
  cursor: default;
}
body .site-header.bsg-header:not(.bsg-login-header):not(.swmm-header) .navbar-nav > li > button.nav-link {
  cursor: pointer;
}
body .site-header.bsg-header:not(.bsg-login-header):not(.swmm-header) .navbar-nav > li > button.nav-link:focus-visible {
  outline: 2px solid rgba(8,107,235,0.5) !important;
  outline-offset: 3px !important;
}


/* 1.10.26 — SOLO navigazione HEADER (pubblico, login, manutenzione).
 * Nessun selettore coinvolge il footer. Pallini disattivati,
 * sottolineatura lineare al passaggio del mouse / voce corrente.
 */

/* Pallino ricavato dal LI nei menu pubblici e manutenzione.
   Sul login, il ::after delle voci con figli serve come ponte hover:
   viene conservato trasparente per non interrompere il dropdown. */
body .site-header.bsg-header:not(.bsg-login-header) .navbar-nav > li::after,
body.login .site-header.bsg-header.bsg-login-header .navbar-nav > li:not(.menu-item-has-children)::after {
  content: none !important;
  display: none !important;
}
body.login .site-header.bsg-header.bsg-login-header .navbar-nav > li.menu-item-has-children::after {
  background: transparent !important;
  box-shadow: none !important;
}

/* Niente pallini laterali nelle voci dei sottomenu.
   Il controllo dropdown Bootstrap continua ad usare ::after (freccetta). */
body .site-header.bsg-header .navbar-nav .dropdown-menu a::before,
body .site-header.bsg-header .navbar-nav .sub-menu a::before {
  content: none !important;
  display: none !important;
}
body .site-header.bsg-header .navbar-nav > li:not(.dropdown):not(.menu-item-has-children) > a::after {
  content: none !important;
  display: none !important;
}

/* Niente sfondo blu, pillola, glow o movimento sulle voci principali. */
body .site-header.bsg-header .navbar-nav > li > :is(a, button.nav-link, span.nav-link),
body .site-header.bsg-header .navbar-nav > li > :is(a, button.nav-link, span.nav-link):is(:hover, :focus, :focus-visible, .active, .show),
body .site-header.bsg-header .navbar-nav > li:is(:hover, :focus-within, .show, .bsg-menu-open, .current-menu-item, .current-menu-parent, .current-menu-ancestor) > :is(a, button.nav-link, span.nav-link) {
  position: relative !important;
  background: transparent !important;
  background-image: none !important;
  border-color: transparent !important;
  box-shadow: none !important;
  text-shadow: none !important;
  filter: none !important;
  transform: none !important;
  text-decoration: none !important;
}

/* Il ::before del link è una linea, non un pallino.
   Mantiene intatta la freccia ::after dei link con figli. */
body .site-header.bsg-header .navbar-nav > li > :is(a, button.nav-link, span.nav-link)::before {
  content: "" !important;
  display: block !important;
  position: absolute !important;
  top: auto !important;
  right: auto !important;
  bottom: .16rem !important;
  left: 50% !important;
  width: calc(100% - 1.5rem) !important;
  height: 2px !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: var(--bsg-primary, #1181f8) !important;
  background-image: none !important;
  box-shadow: none !important;
  opacity: 0 !important;
  transform: translateX(-50%) !important;
  pointer-events: none !important;
  transition: opacity .17s ease !important;
}

body .site-header.bsg-header .navbar-nav > li:is(:hover, :focus-within, .show, .bsg-menu-open, .active, .current-menu-item, .current-menu-parent, .current-menu-ancestor, .current_page_item, .current_page_parent, .current_page_ancestor) > :is(a, button.nav-link, span.nav-link)::before,
body .site-header.bsg-header .navbar-nav > li > :is(a, button.nav-link, span.nav-link):is(:hover, :focus-visible, .active, .show)::before {
  opacity: 1 !important;
}

/* Login: sono presenti regole storiche per il ::before del link,
   qui sovrascritte senza modificare la freccia o il ponte invisibile. */
body.login .site-header.bsg-header.bsg-login-header .bsg-login-primary-menu > li > a::before {
  left: 50% !important;
  bottom: .16rem !important;
  width: calc(100% - 1.5rem) !important;
  height: 2px !important;
  border-radius: 0 !important;
  background: var(--bsg-primary, #1181f8) !important;
  box-shadow: none !important;
  transform: translateX(-50%) !important;
}

@media (max-width: 991.98px) {
  /* Sui menu mobile mantieni la sottolineatura allineata alla voce. */
  body .site-header.bsg-header .navbar-nav > li > :is(a, button.nav-link, span.nav-link)::before,
  body.login .site-header.bsg-header.bsg-login-header .bsg-login-primary-menu > li > a::before {
    left: 50% !important;
    right: auto !important;
    bottom: .25rem !important;
    width: calc(100% - 2rem) !important;
    transform: translateX(-50%) !important;
  }
}


/* 1.10.27 — mobile mega-menu is an accordion within the single off-canvas scroll.
 * The entire submenu expands naturally; only the outer #primaryNavbar can scroll
 * if its full contents exceed the viewport. Desktop and footer are unaffected.
 */
@media (max-width: 991.98px) {
  body .site-header.bsg-header:not(.bsg-login-header):not(.swmm-header) #primaryNavbar.navbar-collapse {
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior-y: contain !important;
    -webkit-overflow-scrolling: touch;
  }

  body .site-header.bsg-header:not(.bsg-login-header):not(.swmm-header)
    #primaryNavbar .navbar-nav > li.bsg-has-mega-menu > .dropdown-menu.bsg-mega-menu,
  body .site-header.bsg-header:not(.bsg-login-header):not(.swmm-header)
    #primaryNavbar .navbar-nav > li.bsg-has-mega-menu > .dropdown-menu.bsg-mega-menu.show {
    position: static !important;
    inset: auto !important;
    transform: none !important;
    float: none !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
    overscroll-behavior: auto !important;
    scrollbar-width: auto !important;
  }

  body .site-header.bsg-header:not(.bsg-login-header):not(.swmm-header)
    #primaryNavbar .bsg-mega-menu__inner,
  body .site-header.bsg-header:not(.bsg-login-header):not(.swmm-header)
    #primaryNavbar .bsg-mega-menu__grid,
  body .site-header.bsg-header:not(.bsg-login-header):not(.swmm-header)
    #primaryNavbar .bsg-mega-col,
  body .site-header.bsg-header:not(.bsg-login-header):not(.swmm-header)
    #primaryNavbar .bsg-mega-links {
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }
}

/* 1.10.29 — shared mega panel on the existing login/maintenance headers. */
@media (min-width: 992px) {
  body .site-header.bsg-header:is(.bsg-login-header, .swmm-header) .navbar > .container {
    position: relative !important;
    overflow: visible !important;
  }
  body .site-header.bsg-header:is(.bsg-login-header, .swmm-header) .navbar-nav,
  body .site-header.bsg-header:is(.bsg-login-header, .swmm-header) .navbar-nav > li.bsg-has-mega-menu {
    position: static !important;
  }
  body .site-header.bsg-header:is(.bsg-login-header, .swmm-header)
    .navbar-nav > li.bsg-has-mega-menu > .dropdown-menu.bsg-mega-menu {
    position: absolute !important;
    top: calc(100% + 5px) !important;
    left: 50% !important;
    right: auto !important;
    bottom: auto !important;
    inset: auto auto auto 50% !important;
    transform: translateX(-50%) !important;
    width: min(1040px, calc(100vw - 48px)) !important;
    min-width: min(1040px, calc(100vw - 48px)) !important;
    max-width: min(1040px, calc(100vw - 48px)) !important;
    min-height: 0 !important;
    max-height: min(75vh, 650px) !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 1px solid #e5edf7 !important;
    border-radius: 17px !important;
    background: #ffffff !important;
    box-shadow: 0 26px 65px rgba(10,45,90,0.135) !important;
    z-index: 1060 !important;
  }
}

/* Visibility is controlled by the trigger only, not hover of the LI/panel. */
body .site-header.bsg-header:is(.bsg-login-header, .swmm-header)
  .navbar-nav > li.bsg-has-mega-menu > .dropdown-menu.bsg-mega-menu:not(.show) {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
body .site-header.bsg-header:is(.bsg-login-header, .swmm-header)
  .navbar-nav > li.bsg-has-mega-menu > .dropdown-menu.bsg-mega-menu.show {
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}
/* Avoid the old login hover bridge covering unrelated triggers. */
body.login .bsg-login-header .bsg-login-primary-menu > li.bsg-has-mega-menu::after {
  content: none !important;
  display: none !important;
}
body.login .bsg-login-header .bsg-login-primary-menu > li.bsg-has-mega-menu > :is(a,button.nav-link) {
  font: inherit !important;
  font-weight: 700 !important;
  color: rgba(18,31,50,0.798) !important;
  text-align: left !important;
  background: transparent !important;
  border: 0 !important;
  outline: none !important;
  box-shadow: none !important;
  text-shadow: none !important;
}
body.login .bsg-login-header .bsg-login-primary-menu > li.bsg-has-mega-menu > :is(a,button.nav-link):focus-visible {
  text-decoration: underline !important;
  text-decoration-color: #086beb !important;
  text-underline-offset: 7px !important;
}

@media (max-width: 991.98px) {
  body .site-header.bsg-header:is(.bsg-login-header, .swmm-header)
    .navbar-nav > li.bsg-has-mega-menu > .dropdown-menu.bsg-mega-menu,
  body .site-header.bsg-header:is(.bsg-login-header, .swmm-header)
    .navbar-nav > li.bsg-has-mega-menu > .dropdown-menu.bsg-mega-menu.show {
    position: static !important;
    float: none !important;
    inset: auto !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    height: auto !important;
    overflow: visible !important;
    transform: none !important;
    padding: 0 !important;
    margin: 8px 0 !important;
  }
  body .site-header.bsg-header:is(.bsg-login-header, .swmm-header) .bsg-mega-menu__grid,
  body .site-header.bsg-header:is(.bsg-login-header, .swmm-header) .bsg-mega-menu__grid.bsg-mega-cols-1,
  body .site-header.bsg-header:is(.bsg-login-header, .swmm-header) .bsg-mega-menu__grid.bsg-mega-cols-2,
  body .site-header.bsg-header:is(.bsg-login-header, .swmm-header) .bsg-mega-menu__grid.bsg-mega-cols-3,
  body .site-header.bsg-header:is(.bsg-login-header, .swmm-header) .bsg-mega-menu__grid.bsg-mega-cols-4 {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 12px !important;
  }
  body.login .bsg-login-header .bsg-login-navbar-collapse,
  body.swmm-maintenance-active .swmm-header .navbar-collapse {
    overflow-y: auto !important;
    overflow-x: hidden !important;
    max-height: calc(100dvh - 90px) !important;
  }
}

/* This line must follow only the real trigger, not the large hovered parent LI. */
@media (hover:hover) and (pointer:fine) {
  body .site-header.bsg-header .navbar-nav > li.bsg-has-mega-menu > :is(a,button.nav-link):not(:hover):not(:focus-visible):not(.show)::before {
    opacity: 0 !important;
  }
}


/* 1.10.30 — identical mega panel geometry in public, login and maintenance.
 * Anchor the panel to the fixed header instead of a submenu LI or a differently
 * sized inner Bootstrap container. This fixes login panels overlapping the bar.
 * Desktop only: mobile keeps its existing native expanded accordion layout. */
@media (min-width: 992px) {
  body .site-header.bsg-header:not(.bsg-login-header):not(.swmm-header) > .navbar,
  body.login .site-header.bsg-header.bsg-login-header > .navbar,
  body.swmm-maintenance-active .site-header.bsg-header.swmm-header > .navbar,
  body .site-header.bsg-header:not(.bsg-login-header):not(.swmm-header) .navbar > .container,
  body.login .site-header.bsg-header.bsg-login-header .navbar > .container,
  body.swmm-maintenance-active .site-header.bsg-header.swmm-header .navbar > .container,
  body .site-header.bsg-header .navbar-collapse,
  body .site-header.bsg-header .navbar-nav,
  body .site-header.bsg-header .navbar-nav > li.bsg-has-mega-menu {
    position: static !important;
  }

  body .site-header.bsg-header:not(.bsg-login-header):not(.swmm-header)
    .navbar-nav > li.bsg-has-mega-menu > .dropdown-menu.bsg-mega-menu,
  body.login .site-header.bsg-header.bsg-login-header
    .navbar-nav > li.bsg-has-mega-menu > .dropdown-menu.bsg-mega-menu,
  body.swmm-maintenance-active .site-header.bsg-header.swmm-header
    .navbar-nav > li.bsg-has-mega-menu > .dropdown-menu.bsg-mega-menu {
    position: absolute !important;
    inset: auto auto auto 50% !important;
    top: calc(100% + 5px) !important;
    left: 50% !important;
    right: auto !important;
    bottom: auto !important;
    transform: translateX(-50%) !important;
    margin: 0 !important;
    width: min(1040px, calc(100vw - 48px)) !important;
    min-width: min(1040px, calc(100vw - 48px)) !important;
    max-width: min(1040px, calc(100vw - 48px)) !important;
  }
}
