/* ── SJNC grouped navigation (2026-09-05, Justin's structure) ──
   For Builders ▾ (Buy Land, Communities) · For Buyers ▾ (Homes, Communities, Buy a Home)
   · For Land Owners · Track Record · News ▾ (News, Planning Boards) · Get In Touch.
   Loaded by every page after the page's own nav CSS; pairs with sjnc-nav.js. */

.nav-links > li.has-menu { position: relative; }
.nav-links > li.has-menu > a { cursor: pointer; padding-right: 16px; position: relative; }
.nav-links > li.has-menu > a::after {
  content: ''; position: absolute; right: 0; top: 50%; width: 6px; height: 6px; margin-top: -5px;
  border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg);
  transition: transform .2s ease;
}
.nav-links > li.has-menu.open > a::after { transform: rotate(-135deg); margin-top: -1px; }

.nav-menu {
  position: absolute; top: calc(100% + 34px); left: -24px; min-width: 292px; z-index: 1300;
  background: #fff; border: 1px solid rgba(10,22,40,.1); border-radius: 16px; padding: 10px;
  box-shadow: 0 18px 44px rgba(10,22,40,.14);
  opacity: 0; visibility: hidden; transform: translateY(6px);
  transition: opacity .18s ease, transform .18s ease, visibility 0s linear .18s;
}
.nav-menu::before { content: ''; position: absolute; left: 0; right: 0; top: -34px; height: 34px; }
.nav-links > li.has-menu:hover > .nav-menu,
.nav-links > li.has-menu:focus-within > .nav-menu,
.nav-links > li.has-menu.open > .nav-menu {
  opacity: 1; visibility: visible; transform: none; transition-delay: .25s;
}
.nav-links > li.has-menu.open > .nav-menu { transition-delay: 0s; }
.nav-menu a {
  display: block !important; padding: 10px 14px !important; border-radius: 10px;
  font-size: 16px !important; font-weight: 500 !important; line-height: 1.3; color: #0A1628 !important;
  text-transform: none !important; letter-spacing: 0 !important; background: none !important;
}
.nav-menu a small { display: block; font-size: 13px; font-weight: 400; color: #4a4a5a; margin-top: 2px; letter-spacing: 0; }
.nav-menu a:hover, .nav-menu a:focus { background: #F6F4EF !important; color: #0A1628 !important; }

/* current page: the link itself, or the group that holds it */
.nav-links a[aria-current="page"],
.nav-links > li.has-menu.cur > a { box-shadow: inset 0 -2px 0 #C9A84C; padding-bottom: 4px; }
.nav-links .nav-cta[aria-current="page"] { box-shadow: none; }

/* phone menu groups (both the satellite #mobileMenu and the homepage .mobile-menu) */
#mobileMenu .mm-group, .mobile-menu .mm-group {
  font-family: 'DM Sans', sans-serif; font-size: 11px; letter-spacing: .22em; text-transform: uppercase;
  color: rgba(201,168,76,.75); font-weight: 700; margin: 22px 0 2px; padding: 0; border: 0;
}
#mobileMenu .mm-group:first-of-type, .mobile-menu .mm-group:first-of-type { margin-top: 0; }
/* every link in the phone menu is the same size and weight; group headings are the only small caps */
#mobileMenu a, .mobile-menu a { text-transform: none !important; letter-spacing: 0 !important; font-size: 19px !important; font-weight: 500 !important; color: #fff !important; padding: 12px 0 !important; line-height: 1.3 !important; }
#mobileMenu a.mm-top, .mobile-menu a.mm-top { margin-top: 18px; }
#mobileMenu a[aria-current="page"], .mobile-menu a[aria-current="page"] { color: #C9A84C !important; }
/* the contact link is the one button: gold pill, full width, after a gap */
#mobileMenu a.mm-top[href$="#contact"], .mobile-menu a.mm-top[href$="#contact"] {
  margin-top: 28px !important; display: block; text-align: center; background: #C9A84C; color: #0A1628 !important;
  border: none !important; border-radius: 100px; padding: 15px 26px !important; font-size: 16px !important; font-weight: 700 !important; letter-spacing: .06em !important; text-transform: uppercase !important;
}
#mobileMenu a.mm-top[href$="#contact"]:hover, .mobile-menu a.mm-top[href$="#contact"]:hover { padding-left: 26px !important; background: #e2c67a; }
