/* Primary Menu foundations, transferred from style.css. */
.main-nav {
  display: flex;
  justify-content: center;
}

.nav-menu {
  display: flex;
  gap: 30px;
  list-style: none;
  margin: 0;
  padding: 0;
}

.nav-menu li { position: relative; }

.nav-menu a {
  position: relative;
  color: var(--text);
  font-weight: 500;
  padding: 6px 0;
}

.nav-menu a::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -4px;
  width: 0;
  height: 2px;
  background: var(--primary);
  transition: 0.25s;
}

.nav-menu a:hover::after {
  width: 100%;
}

/* Single Primary Menu. Scoped to header, loaded after Header Layout. */
body #site-header .main-nav { position:relative; z-index:60; min-width:0; }
body #site-header .main-nav .nav-menu { gap:clamp(12px,1.6vw,24px); }
body #site-header .main-nav .nav-menu li { list-style:none; position:relative; }
body #site-header .main-nav .nav-menu > li { display:flex; align-items:center; }
body #site-header .main-nav .nav-menu a { display:block; padding:12px 4px; line-height:1.35; }
body #site-header .main-nav .sub-menu {
 display:none; position:absolute; top:100%; left:0; z-index:70;
 width:max-content; min-width:240px; max-width:min(380px,calc(100vw - 40px));
 max-height:min(65vh,520px); overflow-y:auto; margin:0; padding:8px;
 list-style:none; background:#fff; border:1px solid #e5e7eb; border-radius:8px;
 box-shadow:0 10px 24px rgba(0,0,0,.12);
}
body #site-header .main-nav .nav-menu .sub-menu a { font-size:16px; font-weight:400; color:#123b45; padding:12px; overflow-wrap:anywhere; }
body #site-header .main-nav .sub-menu a::after { display:none; }
body #site-header .main-nav .sub-menu a:hover { background:#edf8f7; }
body #site-header .bs-menu-toggle, body #site-header .bs-submenu-toggle { background:#fff; color:#123b45; border:1px solid #cbd5db; border-radius:5px; font:inherit; cursor:pointer; min-height:44px; min-width:44px; padding:8px; }
body #site-header .bs-menu-toggle { display:none; }
body #site-header .main-nav a:focus-visible, body #site-header button:focus-visible { outline:3px solid #0e5c63; outline-offset:2px; }
body #site-header .main-nav .menu-item-has-children:focus-within > .sub-menu,
body #site-header .main-nav .menu-item-has-children.bs-submenu-open > .sub-menu { display:block; }
@media (hover:hover) and (min-width:1101px) {
 body #site-header .main-nav .menu-item-has-children:hover > .sub-menu { display:block; }
}
body #site-header .main-nav .menu-item-has-children.bs-submenu-dismissed > .sub-menu { display:none; }
@media (max-width:1100px) {
 body.bs-header-layout-enabled #site-header .header-inner, body #site-header .header-inner { flex-direction:row; flex-wrap:wrap; justify-content:space-between; gap:12px; }

 body #site-header .bs-menu-toggle:not([hidden]) { display:inline-flex; align-items:center; }
 body #site-header .main-nav { width:100%; order:3; display:block; }
 body #site-header.bs-nav-ready .main-nav:not(.bs-menu-open) { display:none; }
 body #site-header .main-nav .nav-menu { flex-direction:column; flex-wrap:nowrap; align-items:stretch; gap:0; width:100%; }
 body #site-header .main-nav .nav-menu > li { flex-wrap:wrap; border-top:1px solid #e5e7eb; }
 body #site-header .main-nav .nav-menu > li > a { flex:1; text-align:left; padding:14px 8px; }
 body #site-header .main-nav .sub-menu { position:static; width:100%; max-width:none; max-height:50vh; box-shadow:none; border:0; border-left:2px solid #1bb5b0; border-radius:0; margin:0 0 12px; }
 body #site-header .main-nav .menu-item-has-children:focus-within > .sub-menu { display:none; }
 body #site-header .main-nav .menu-item-has-children.bs-submenu-open > .sub-menu { display:block; }
 body #site-header:not(.bs-nav-ready) .main-nav .sub-menu { display:block; }
}

/* Preserve the existing narrow-width alignment without a second menu layout. */
@media (max-width:768px) { .nav-menu { justify-content:center; } }
