/* ── 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; }

/* ── Lead paths (sjnc-leads.js, 2026-09-25) ── */
/* Call button beside the menu button, only while the menu button shows. */
.sjnc-call { display: none; }
@media (max-width: 1150px) {
  #topNav .sjnc-call, #mainNav .sjnc-call {
    display: inline-flex; align-items: center; align-self: center; flex: 0 0 auto; gap: 7px; margin-left: auto; margin-right: 14px; height: 40px; box-sizing: border-box;
    background: #0A1628; color: #fff !important; text-decoration: none; border-radius: 100px;
    padding: 9px 16px; min-height: 40px; font-family: 'DM Sans', sans-serif; font-size: 15px; font-weight: 600; line-height: 1;
  }
  #topNav .sjnc-call:hover, #mainNav .sjnc-call:hover { background: #13243f; }
}
@media (max-width: 380px) { #topNav .sjnc-call, #mainNav .sjnc-call { padding: 9px 12px; margin-right: 10px; } }

/* Page contact form above the footer. */
.sjnc-pf { background: #F6F4EF; border-top: 1px solid rgba(10,22,40,.08); padding: clamp(56px, 8vw, 96px) 20px; scroll-margin-top: 90px; }
.sjnc-pf-in { max-width: 1080px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
.sjnc-pf-eyebrow { font-family: 'DM Sans', sans-serif; font-size: 13px; font-weight: 700; letter-spacing: .22em; text-transform: uppercase; color: #9a7b2c; margin: 0 0 12px; }
.sjnc-pf-title { font-family: 'Cormorant Garamond', serif; font-size: clamp(38px, 4.4vw, 54px); font-weight: 600; line-height: 1.05; color: #0A1628; margin: 0 0 16px; white-space: nowrap; }
.sjnc-pf-sub, .sjnc-pf-call { font-family: 'DM Sans', sans-serif; font-size: 19px; line-height: 1.6; color: #3d4654; margin: 0 0 14px; }
.sjnc-pf-call a { color: #0A1628; font-weight: 700; text-decoration: none; white-space: nowrap; }
.sjnc-pf-form, .sjnc-pf-ok { background: #fff; border: 1px solid rgba(10,22,40,.08); border-radius: 18px; padding: clamp(22px, 3vw, 34px); box-shadow: 0 10px 30px rgba(10,22,40,.06); font-family: 'DM Sans', sans-serif; }
.sjnc-pf-form > div, .sjnc-pf-row > div { margin-bottom: 16px; }
.sjnc-pf-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
.sjnc-pf-row > div[hidden] { display: none; }
.sjnc-pf-form label { display: block; font-size: 14px; font-weight: 600; color: #0A1628; margin-bottom: 6px; }
.sjnc-pf-form input, .sjnc-pf-form select, .sjnc-pf-form textarea {
  width: 100%; box-sizing: border-box; font: 400 17px/1.4 'DM Sans', sans-serif; color: #0A1628; background: #fff;
  border: 1.5px solid rgba(10,22,40,.18); border-radius: 10px; padding: 12px 14px; min-height: 48px;
}
.sjnc-pf-form textarea { resize: vertical; min-height: 110px; }
.sjnc-pf-form input:focus, .sjnc-pf-form select:focus, .sjnc-pf-form textarea:focus { outline: none; border-color: #0A1628; box-shadow: 0 0 0 3px rgba(10,22,40,.15); }
.sjnc-pf-hp { position: absolute !important; left: -9999px !important; }
.sjnc-pf-about { background: #eef0f3; color: #0A1628; border-radius: 10px; padding: 10px 14px; font-size: 16px; font-weight: 600; margin: 0 0 16px; }
.sjnc-pf-about[hidden], .sjnc-pf-err[hidden], .sjnc-pf-ok[hidden], .sjnc-pf-form[hidden] { display: none; }
.sjnc-pf-err { color: #9b1c1c; font-size: 15px; margin: 0 0 14px; }
.sjnc-pf-btn { width: 100%; background: #0A1628; color: #fff; border: 0; border-radius: 100px; padding: 16px 28px; min-height: 52px; font: 600 17px 'DM Sans', sans-serif; cursor: pointer; }
.sjnc-pf-btn:hover { background: #13243f; }
.sjnc-pf-btn:disabled { opacity: .7; cursor: default; }
.sjnc-pf-ok h3 { font-family: 'Cormorant Garamond', serif; font-size: 30px; color: #0A1628; margin: 0 0 8px; }
.sjnc-pf-ok p { font-size: 18px; line-height: 1.6; color: #3d4654; margin: 0; }
@media (max-width: 820px) {
  .sjnc-pf-in { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 520px) {
  .sjnc-pf-row { grid-template-columns: minmax(0, 1fr); }
}


/* ============================================================
   Readability (2026-09-25, Justin, same pass as the JK site):
   text on navy is white at full strength, small text on navy is weight 400,
   form labels are readable sentence case, interest-list fields are full size.
   Gold eyebrows, gold buttons and headers are unchanged.
   ============================================================ */

/* footer */
footer p, footer a, footer li, footer span, footer strong, footer small,
.footer-brand-desc, .footer-copy, .footer-disclaimer, .footer-license-text,
.footer-license-text a, .footer-license-text strong{color:#fff !important;}
.footer-brand-desc, .footer-copy, .footer-disclaimer, .footer-license-text{font-weight:400 !important;}

/* breadcrumbs (they sit on the dark page heroes) */
body:not(:has(.news-hero)) .breadcrumb span, body:not(:has(.news-hero)) .breadcrumb a{color:#fff !important;}

/* hero leads and dark bands */
.hero-desc, .pv2-hero-lead, .lv2-hero-lead, .county-hero:not(.news-hero) .county-hero-inner p, .scrim-hero-inner p,
.h-band-sub, .section-models-dark .section-subtitle, .txt p,
.pl-item p, .land-desc, .lv2-notice span, .h-comm-in .meta, .county-card .county-towns,
.pv2-trust-label, .comm-stat-l, .comm-back-bar, .model-notes-row, .model-spec-label{
  color:#fff !important;font-weight:400 !important;
}

/* inline styles that set faded white */
[style*="color:rgba(255,255,255"], [style*="color: rgba(255,255,255"],
[style*="color:rgba(255, 255, 255"], [style*="color: rgba(255, 255, 255"]{color:#fff !important;}

/* forms on navy: land form, home land band, interest list */
.land-form-sub, .land-right p, .cil-note, .bl-checks label{color:#fff !important;font-weight:400 !important;}
.form-group label, .form-group legend{
  color:#fff !important;font-size:14px !important;font-weight:500 !important;
  letter-spacing:.02em !important;text-transform:none !important;
}
.form-group input::placeholder, .form-group textarea::placeholder,
.cil-form input::placeholder, .cil-form textarea::placeholder{color:rgba(255,255,255,.62) !important;}
.cil-form input, .cil-form select, .cil-form textarea{
  min-height:52px !important;padding:14px 16px !important;font-size:16px !important;
  color:#fff !important;border-radius:10px !important;
  border:1px solid rgba(255,255,255,.38) !important;background-color:rgba(255,255,255,.07) !important;
}
.cil-form select option{background:#0a1628;color:#fff;}
.cil-form button{min-height:52px !important;font-size:13px !important;}

/* home page bands, stats and the multi-step contact form; model cards */
.c1 .h-plans-band .h-lead, .c1 .h-band-feature p, .c1 .h-band-form .land-form-sub,
.c1 .hero-stat-label, .c1 .h-comm-stats .l, .sjncf-pill.selected .sjncf-pill-desc,
#page-models .model-notes-row, .models-full .model-notes-row{color:#fff !important;font-weight:400 !important;}
.c1 .h-comm-stats .l{font-size:11px !important;}
