/* ==========================================================================
   Component library, proven in production. Extend rather than replace.
   Requires tokens.css to load first.
   ========================================================================== */

/* ==========================================================================
   NewBuild Construction Lending. Component library.
   Tokens from Brand Style Guide v2. Understated. No drop shadows, no gradients.
   ========================================================================== */


*, *::before, *::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: var(--lh-prose);
  color: var(--site-charcoal);
  background: var(--site-cream);
  -webkit-text-size-adjust: 100%;
}

img { max-width: 100%; height: auto; }
a { color: var(--site-teal-dark); text-underline-offset: 3px; }
a:focus-visible, button:focus-visible, summary:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible {
  outline: 3px solid rgba(200, 169, 106, .8);
  outline-offset: 2px;
  border-radius: 4px;
}

.container { width: calc(100% - 2 * var(--site-gutter)); margin-inline: auto; }
.site-nav > .container { width: calc(100% - 2 * max(16px, 2.4vw)); }

.skip-link {
  position: absolute; left: -9999px; top: 0; z-index: 200;
  padding: 12px 20px; background: var(--site-navy); color: #fff;
  font-weight: 700; border-radius: 0 0 12px 0; text-decoration: none;
}
.skip-link:focus { left: 0; }

.visually-hidden {
  position: absolute !important; width: 1px; height: 1px;
  margin: -1px; padding: 0; overflow: hidden;
  clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* ==========================================================================
   Buttons
   ========================================================================== */
.site-btn {
  display: inline-flex; min-height: clamp(52px, 4.875vw, 5.85rem); align-items: center; justify-content: center;
  gap: 10px; border-radius: var(--site-radius); padding: 0 clamp(18px, 2.9vw, 36px);
  font-size: var(--fs-btn); font-weight: 600; line-height: 1; text-align: center;
  text-decoration: none; border: 0; cursor: pointer; font-family: var(--font-body);
  letter-spacing: .01em; transition: background .15s ease;
}
.site-btn:hover, .site-btn:focus-visible { transform: none; }
.site-btn--primary { color: #fff; background: var(--site-cta); box-shadow: none; }
.site-btn--primary:hover { background: var(--site-cta-dark); }
.site-btn--secondary { color: var(--site-navy); background: var(--site-gold); box-shadow: none; }
.site-btn--secondary:hover { background: var(--site-gold-dark); color: #fff; }
.site-btn--gold { color: #fff; background: var(--site-gold); }
.site-btn--gold:hover { background: var(--site-gold-dark); }
.site-btn--ghost {
  color: #fff; background: transparent;
  border: 1.5px solid var(--site-gold);
}
.site-btn--ghost:hover { background: var(--site-gold); color: var(--site-navy); }
.site-btn--text { color: var(--site-navy); background: transparent; border: 1px solid var(--site-birch); }
.btn-block {
  display: flex; width: 100%; min-height: 46px; align-items: center; justify-content: center;
  border-radius: 999px; background: var(--site-gold); color: var(--site-navy);
  font-weight: 700; text-decoration: none; font-size: .9rem; padding: 10px 16px;
}
.btn-white {
  display: inline-flex; min-height: 46px; align-items: center; padding: 10px 20px;
  border-radius: 999px; background: var(--site-gold); color: var(--site-navy);
  font-weight: 700; text-decoration: none;
}
.btn-outline-white {
  display: inline-flex; min-height: 46px; align-items: center; padding: 10px 20px;
  border-radius: 999px; border: 1px solid rgba(255,255,255,.55); color: #fff;
  font-weight: 700; text-decoration: none;
}
@media (prefers-reduced-motion: reduce) {
  .site-btn { transition: none; }
  .site-btn:hover, .site-btn:focus-visible { transform: none; }
}

/* ==========================================================================
   Header + navigation (replaces the review-only background picker)
   ========================================================================== */
.site-nav {
  position: sticky; top: 0; z-index: 100;
  background: var(--site-navy);
  border-bottom: 0;
}
.site-nav__inner {
  display: flex; align-items: center; justify-content: space-between;
  gap: 14px; padding: clamp(8px, 1.1vw, 12px) 0;
}
.site-nav__brand { display: inline-flex; align-items: center; flex-shrink: 0; }
.site-nav__brand img { width: clamp(140px, 13vw, 190px); height: auto; display: block; }

.site-nav__menu { display: flex; align-items: center; }
.nav-list {
  display: flex; align-items: center; gap: 0;
  margin: 0; padding: 0; list-style: none;
}
.nav-list > li { position: relative; }
.nav-list > li > a,
.nav-list > li > button {
  display: inline-flex; align-items: center; gap: 6px;
  min-height: 44px;
  padding: 0 10px; border: 0; background: none; cursor: pointer;
  color: #fff; font: 600 var(--fs-nav)/1.15 var(--font-body);
  text-decoration: none; border-radius: var(--site-radius); white-space: nowrap;
}
.nav-list > li > a:hover, .nav-list > li > button:hover,
.nav-list > li > a[aria-current="page"] { background: rgba(247, 246, 237, .08); }
.nav-list > li > a[aria-current="page"] { color: var(--site-gold); }

.nav-caret { width: 10px; height: 10px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; transition: transform .15s ease; }
.nav-item--open > button .nav-caret { transform: rotate(180deg); }

.nav-dropdown {
  position: absolute; top: calc(100% - 12px); left: 0; z-index: 110;
  min-width: 300px; margin: 0; padding: 10px; list-style: none;
  background: #fff; border: 1px solid var(--site-birch);
  border-radius: var(--site-radius-lg);
  display: none;
}
.nav-dropdown--wide {
  min-width: 340px;
  max-height: min(74vh, 720px);
  overflow: auto;
}
.nav-dropdown__label {
  display: block;
  padding: 10px 14px 4px;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--site-ink-faint);
}
.nav-item--open > .nav-dropdown { display: block; }
.nav-item--open > .nav-dropdown.nb-nav-mega {
  display: grid;
  grid-template-columns: repeat(4, minmax(168px, 210px));
  gap: 4px 18px;
  min-width: 0;
  max-height: min(78vh, 760px);
  overflow: auto;
  padding: 14px 16px 16px;
}
.nb-nav-mega--where {
  left: 50%;
  transform: translateX(-38%);
}
.nb-nav-col {
  margin: 0;
  min-width: 0;
}
.nb-nav-col > ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.nb-nav-col .nav-dropdown__label { padding: 4px 14px 8px; }
.nb-nav-col li + li { margin-top: 2px; }
.nb-nav-col .nav-dropdown__all { margin-top: 8px !important; padding-top: 8px; }
.nav-dropdown li + li { margin-top: 2px; }
.nav-dropdown a {
  display: block; padding: 10px 14px; border-radius: 10px;
  color: var(--site-navy); font-size: 1rem; font-weight: 500; text-decoration: none;
}
.nav-dropdown a:hover, .nav-dropdown a:focus-visible { background: var(--site-cream); color: var(--site-teal-dark); }
.nav-dropdown a strong { display: block; font-weight: 700; }
.nav-dropdown a small { color: var(--site-ink-faint); font-size: .8rem; }
.nav-dropdown__all { border-top: 1px solid rgba(11,31,58,.08); margin-top: 8px !important; padding-top: 8px; }
.nav-dropdown__all a { color: var(--site-teal-dark); font-weight: 700; }

.site-nav__actions { display: flex; gap: 10px; align-items: center; flex-shrink: 0; }
.site-nav__actions .site-btn {
  min-height: 44px;
  padding: 0 clamp(12px, 1.2vw, 18px);
  font-size: clamp(0.82rem, 0.95vw, 0.95rem);
  box-shadow: none;
  font-weight: 600;
  white-space: nowrap;
}
.site-nav__phone {
  color: #fff; text-decoration: none; font-weight: 600;
  font-size: var(--fs-nav);
  letter-spacing: .01em; white-space: nowrap;
}
.site-nav__phone:hover { color: var(--site-gold); }

.nav-toggle {
  display: none; align-items: center; justify-content: center;
  width: 46px; height: 46px; border: 1px solid rgba(247,246,237,.28);
  border-radius: var(--site-radius); background: transparent; cursor: pointer; color: #fff;
}
.nav-toggle svg { width: 22px; height: 22px; stroke: currentColor; stroke-width: 2; stroke-linecap: round; fill: none; }
.nav-toggle .icon-close { display: none; }
.nav-toggle[aria-expanded="true"] .icon-open { display: none; }
.nav-toggle[aria-expanded="true"] .icon-close { display: block; }

@media (max-width: 1239px) {
  .nav-toggle { display: inline-flex; }
  .site-nav__menu {
    position: fixed; inset: var(--nav-h, 72px) 0 0 0; z-index: 105;
    display: none; overflow-y: auto;
    background: var(--site-navy); padding: 18px 20px 40px;
  }
  .site-nav__menu.is-open { display: block; }
  .nav-list { flex-direction: column; align-items: stretch; gap: 4px; }
  .nav-list > li > a, .nav-list > li > button {
    width: 100%; justify-content: space-between; padding: 14px 14px;
    font-size: 1.12rem; background: transparent; border: 1px solid rgba(247,246,237,.12);
    color: #fff;
  }
  .nav-dropdown {
    position: static; min-width: 0;
    border: 0; background: transparent; padding: 4px 6px 8px;
  }
  .nav-item--open > .nav-dropdown.nb-nav-mega {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px 16px;
    transform: none;
    left: auto;
    max-height: none;
    overflow: visible;
    padding: 8px 0 12px;
  }
  .nb-nav-mega--where { transform: none; }
  .nav-dropdown a { background: rgba(247,246,237,.06); margin-top: 4px; color: #fff; }
  .nav-dropdown a small { color: rgba(247,246,237,.55); }
  .nav-dropdown__label { color: rgba(247,246,237,.5); }
  .site-nav__actions { display: none; }
  .nav-list__cta { display: grid; gap: 10px; margin-top: 14px; }
  .nav-list__cta .site-btn, .nav-list__cta .site-nav__phone { width: 100%; text-align: center; }
}
@media (min-width: 1240px) { .nav-list__cta { display: none; } }

/* Jackie leftover .site-hero removed. Homepage uses .nb-hero--home. */

/* ==========================================================================
   Sections + shared components
   ========================================================================== */
.section { padding: clamp(56px, 8vw, 88px) 0; }
.section--white { background: #fff; }
.section--ivory { background: var(--site-cream); }
.section--navy { background: var(--site-navy); color: var(--site-cream); text-align: center; }
.section--navy h2 { color: #fff; }
.section h2,
.nb-stakes h2,
.nb-process h2 {
  font-family: var(--font-display);
  font-weight: 800;
  color: var(--site-navy);
  font-size: var(--fs-h2);
  margin: 0 0 .45em;
  letter-spacing: -.03em;
  line-height: var(--lh-display);
}
.section__lead { max-width: 680px; margin: 0 0 28px; color: var(--site-ink-soft); font-size: var(--fs-lead); }

.icon { width: 22px; height: 22px; stroke: var(--site-teal); fill: none; stroke-width: 1.75; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }

.path-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.path-card {
  display: flex; flex-direction: column; gap: 10px; min-height: 148px;
  padding: 22px 40px 20px 22px; border-radius: var(--site-radius-lg); background: #fff;
  border: 1px solid var(--site-birch); box-shadow: none;
  text-decoration: none; color: inherit; position: relative;
}
.path-card::after {
  content: ""; position: absolute; right: 18px; top: 50%;
  width: 8px; height: 8px; margin-top: -4px;
  border-right: 2px solid var(--site-navy); border-top: 2px solid var(--site-navy);
  transform: rotate(45deg);
}
.path-card:hover { border-color: var(--site-gold); }
.path-card__head { display: flex; align-items: center; gap: 10px; }
.path-card img { width: 48px; height: auto; display: block; }
.path-card h3 { margin: 0; font-family: var(--font-display); font-size: var(--fs-h3); color: var(--site-navy); }
.path-card p { margin: 0; font-size: var(--fs-small); line-height: var(--lh-body); color: var(--site-ink-soft); }
.path-card__cta { margin-top: auto; font-weight: 700; font-size: .92rem; color: var(--site-teal-dark); }

.strip-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.metric-card {
  position: relative; display: flex; flex-direction: column; align-items: center; justify-content: flex-end;
  min-height: 168px; padding: 22px 16px 20px; border-radius: var(--site-radius); overflow: hidden;
  text-align: center; border: 1px solid var(--site-birch); background: var(--site-navy);
}
.metric-card strong { display: block; position: relative; z-index: 1; font-family: var(--font-display); font-size: clamp(1.75rem, 3.2vw, 2.35rem); line-height: 1; color: var(--site-cream); letter-spacing: -0.02em; }
.metric-card span { position: relative; z-index: 1; display: block; margin-top: 8px; font-size: clamp(.95rem, 1.35vw, 1.12rem); font-weight: 600; line-height: 1.25; color: var(--site-gold); letter-spacing: 0.02em; }

.media-trust__label { margin: 0 0 14px; text-align: center; font-size: .78rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--site-teal-dark); }
.media-buckets--logos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.media-bucket {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px;
  min-height: 96px; padding: 20px 16px; border-radius: var(--site-radius); background: #fff;
  border: 1px solid rgba(200, 169, 106, 0.45); box-shadow: 0 14px 36px rgba(11, 31, 58, 0.08); text-align: center;
}
.media-bucket strong { font-family: var(--font-display); font-size: 1.15rem; color: var(--site-navy); letter-spacing: .02em; }
.media-bucket span { font-size: .78rem; color: var(--site-ink-faint); }

.loan-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.loan-card { display: flex; flex-direction: column; padding: 22px 18px; border-radius: var(--site-radius); background: var(--site-cream); border: 1px solid rgba(11, 31, 58, 0.08); }
.section--ivory .loan-card { background: #fff; }
.loan-card__icon { display: block; width: 56px; height: 56px; margin-bottom: 16px; fill: none; stroke: var(--site-teal); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.loan-card h3 { margin: 0 0 8px; font-family: var(--font-display); font-size: var(--fs-h3); color: var(--site-navy); }
.loan-card h3 a { color: inherit; text-decoration: none; }
.loan-card h3 a:hover { color: var(--site-teal-dark); }
.loan-card p { margin: 0 0 16px; font-size: .95rem; color: #555; flex-grow: 1; }

.steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-bottom: 24px; }
.step { padding: 22px; border-radius: 16px; background: #fff; border: 1px solid rgba(11, 31, 58, 0.08); }
.section--white .step { background: var(--site-cream); }
.step__num {
  display: inline-flex; width: 32px; height: 32px; align-items: center; justify-content: center;
  border-radius: 50%; background: var(--site-gold); color: var(--site-navy);
  font-weight: 800; font-size: .9rem; margin-bottom: 10px;
}
.step h3 { margin: 0 0 6px; font-family: var(--font-display); font-size: var(--fs-h3); color: var(--site-navy); }
.step p { margin: 0; font-size: 1rem; color: #555; }

.cta-banner {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
  gap: 18px; padding: 32px; border-radius: 20px; background: var(--site-navy); color: var(--site-cream);
}
.cta-banner h2 { color: #fff; margin: 0; }
.cta-banner p { margin: 6px 0 0; color: rgba(248,245,239,.85); max-width: 560px; }
.cta-banner__actions { display: flex; flex-wrap: wrap; gap: 10px; }

.closings-bar, .mortgage-question { padding: 28px; border-radius: var(--site-radius); background: #fff; border: 1px solid rgba(58, 143, 138, 0.22); text-align: center; }
.mortgage-question { border: 2px solid var(--site-gold); }

.testimonials { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.testimonial { margin: 0; padding: 20px; border-radius: 16px; background: #fff; border: 1px solid rgba(11, 31, 58, 0.08); display: flex; flex-direction: column; }
.section--white .testimonial { background: var(--site-cream); }
.testimonial blockquote { margin: 0; font-size: .92rem; color: var(--site-ink-soft); flex-grow: 1; }
.testimonial blockquote::before { content: "\201C"; display: block; font-family: var(--font-display); font-size: 2rem; line-height: .5; color: var(--site-gold); margin-bottom: 8px; }
.testimonial footer { margin-top: 14px; font-weight: 700; color: var(--site-navy); font-size: .86rem; }
.testimonial__avatar { width: 54px; height: 54px; border-radius: 50%; object-fit: cover; display: block; margin: 0 0 10px; box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--site-gold); }
.testimonial__avatars { display: flex; margin: 0 0 10px; }
.testimonial__avatars .testimonial__avatar { margin: 0; }
.testimonial__avatars .testimonial__avatar + .testimonial__avatar { margin-left: -14px; }
.testimonial footer small { display: block; font-weight: 500; color: var(--site-ink-faint); }

.final-cta { display: grid; gap: 10px; max-width: 400px; margin: 24px auto 0; }

/* ==========================================================================
   Inner pages
   ========================================================================== */
.site-page-hero {
  position: relative; isolation: isolate; overflow: hidden;
  padding: clamp(30px, 5vw, 56px) 0 clamp(30px, 4.5vw, 48px);
  background: var(--site-cream);
  border-bottom: 1px solid var(--site-birch);
}
.site-page-hero__eyebrow { margin: 14px 0 10px; color: var(--site-teal-dark); font-size: .82rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.site-page-hero h1 {
  margin: 0; color: var(--site-navy); font-family: var(--font-display);
  font-size: var(--fs-h1); line-height: 1.08; letter-spacing: -.02em;
  max-width: 880px; text-wrap: balance;
}
.site-page-hero__lead { margin: 14px 0 0; max-width: 760px; color: var(--site-ink-soft); font-size: var(--fs-lead); line-height: var(--lh-body); }
.site-page-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 22px; }

.site-breadcrumbs { display: flex; flex-wrap: wrap; gap: 4px 6px; margin: 0; padding: 0; list-style: none; font-size: .82rem; color: var(--site-ink-faint); }
.site-breadcrumbs li + li::before { content: "\203A"; margin: 0 4px; color: rgba(34,34,34,.4); }
.site-breadcrumbs a { color: var(--site-teal-dark); text-decoration: none; }
.site-breadcrumbs a:hover { text-decoration: underline; }
.site-breadcrumbs [aria-current="page"] { color: var(--site-navy); font-weight: 600; }

.site-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: clamp(28px, 4vw, 56px); align-items: start; }
.site-layout--single { grid-template-columns: minmax(0, 820px); justify-content: center; }

.site-content { max-width: 74ch; }
.site-content > p, .site-content > ul, .site-content > ol { color: #333; font-size: var(--fs-body); line-height: var(--lh-prose); }
.site-content h2 { font-family: var(--font-display); color: var(--site-navy); font-size: var(--fs-h2); margin: 1.8em 0 .5em; letter-spacing: -.02em; font-weight: 800; }
.site-content h2:first-child { margin-top: 0; }
.site-content h3 { color: var(--site-navy); font-size: 1.25rem; margin: 1.5em 0 .4em; }
.site-content ul, .site-content ol { padding-left: 1.3em; }
.site-content li { margin: .35em 0; }
.site-content li::marker { color: var(--site-gold-dark); font-weight: 700; }
.site-content img { border-radius: var(--site-radius); }
.site-content figure { margin: 1.6em 0; }
.site-content figcaption { font-size: .84rem; color: var(--site-ink-faint); margin-top: 8px; }

.site-callout {
  margin: 1.6em 0; padding: 18px 20px; border-radius: 16px;
  background: rgba(58, 143, 138, .08); border: 1px solid rgba(58, 143, 138, .28);
  font-size: var(--fs-lead); line-height: 1.6;
}
.site-callout strong { display: block; color: var(--site-teal-dark); font-size: .82rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; margin-bottom: 6px; }
.site-callout--gold { background: rgba(200, 169, 106, .12); border-color: rgba(200, 169, 106, .5); }
.site-callout--gold strong { color: var(--site-gold-dark); }

.site-table-wrap { overflow-x: auto; margin: 1.4em 0; border-radius: 14px; border: 1px solid rgba(11, 31, 58, .1); }
.site-table { width: 100%; border-collapse: collapse; font-size: .92rem; background: #fff; }
.site-table caption { text-align: left; padding: 12px 14px; font-weight: 700; color: var(--site-navy); background: var(--site-cream); border-bottom: 1px solid rgba(11,31,58,.1); }
.site-table th, .site-table td { padding: 12px 14px; text-align: left; border-bottom: 1px solid rgba(11, 31, 58, .08); vertical-align: top; }
.site-table thead th { background: var(--site-navy); color: var(--site-cream); font-weight: 700; white-space: nowrap; }
.site-table tbody tr:last-child td { border-bottom: 0; }
.site-table tbody tr:nth-child(even) { background: rgba(248, 245, 239, .55); }
.site-table td:first-child { font-weight: 600; color: var(--site-navy); }

/* FAQ, native details/summary: crawlable, keyboard accessible, zero JS */
.site-faq { margin: 1em 0 0; }
.site-faq details { border: 1px solid rgba(11, 31, 58, .1); border-radius: 14px; background: #fff; margin-bottom: 10px; overflow: hidden; }
.site-faq summary {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  padding: 16px 18px; cursor: pointer; list-style: none;
  font-weight: 700; color: var(--site-navy); font-size: var(--fs-lead);
}
.site-faq summary::-webkit-details-marker { display: none; }
.site-faq summary::after {
  content: ""; flex-shrink: 0; width: 12px; height: 12px;
  border-right: 2.4px solid var(--site-gold-dark); border-bottom: 2.4px solid var(--site-gold-dark);
  transform: rotate(45deg); transition: transform .15s ease; margin-top: -4px;
}
.site-faq details[open] summary::after { transform: rotate(-135deg); margin-top: 4px; }
.site-faq details[open] summary { border-bottom: 1px solid rgba(11,31,58,.08); }
.site-faq .site-faq__a { padding: 14px 18px 18px; font-size: var(--fs-lead); line-height: var(--lh-prose); color: #333; }
.site-faq .site-faq__a p { margin: 0 0 .8em; }
.site-faq .site-faq__a p:last-child { margin-bottom: 0; }

/* Sidebar */
.site-sidebar { position: sticky; top: 84px; display: grid; gap: 16px; }
.site-side-card { padding: 22px 20px; border-radius: 20px; background: #fff; border: 1px solid rgba(11, 31, 58, .09); box-shadow: var(--site-shadow); }
.site-side-card--navy { background: var(--site-navy); color: var(--site-cream); border: 0; }
.site-side-card--navy h2 { color: #fff; }
.site-side-card h2 { margin: 0 0 6px; font-family: var(--font-display); font-size: 1.2rem; color: var(--site-navy); }
.site-side-card p { margin: 0 0 14px; font-size: .9rem; color: inherit; opacity: .92; }
.site-side-card .site-btn { width: 100%; margin-top: 8px; min-height: 46px; font-size: .92rem; }
.site-side-card__phone { display: block; margin: 4px 0 2px; font-family: var(--font-display); font-size: 1.35rem; font-weight: 700; color: inherit; text-decoration: none; }
.site-side-links { margin: 0; padding: 0; list-style: none; }
.site-side-links li + li { border-top: 1px solid rgba(11,31,58,.07); }
.site-side-links a { display: block; padding: 10px 2px; font-size: .92rem; font-weight: 600; color: var(--site-navy); text-decoration: none; }
.site-side-links a:hover { color: var(--site-teal-dark); }
.site-side-jackie { display: flex; gap: 14px; align-items: center; }
.site-side-jackie img { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; border: 2px solid var(--site-gold); }
.site-side-jackie strong { display: block; color: var(--site-navy); }
.site-side-jackie small { color: var(--site-ink-faint); line-height: 1.4; display: block; }

@media (max-width: 960px) {
  .site-layout { grid-template-columns: 1fr; }
  .site-sidebar { position: static; }
}

/* Related cards */
.site-related-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; margin-top: 14px; }
.site-related-card { display: block; padding: 16px 18px; border-radius: 14px; background: var(--site-cream); border: 1px solid rgba(11,31,58,.08); text-decoration: none; transition: border-color .15s ease; }
.site-related-card:hover { border-color: var(--site-gold); }
.site-related-card h3 { margin: 0 0 4px; font-size: .98rem; color: var(--site-navy); font-family: var(--font-display); }
.site-related-card p { margin: 0; font-size: .84rem; color: #555; }
@media (max-width: 640px) { .site-related-grid { grid-template-columns: 1fr; } }

/* ==========================================================================
   Specialty page components
   ========================================================================== */
.team-grid { display: grid; gap: 18px; }
.team-member { display: grid; grid-template-columns: 300px minmax(0,1fr); gap: clamp(20px, 3vw, 36px); padding: clamp(20px, 3vw, 32px); border-radius: 22px; background: #fff; border: 1px solid rgba(11,31,58,.08); box-shadow: var(--site-shadow); align-items: start; }
.team-member img { width: 100%; border-radius: var(--site-radius); aspect-ratio: 1/1.05; object-fit: cover; }
.team-member h3 { margin: 0; font-family: var(--font-display); color: var(--site-navy); font-size: 1.75rem; }
.team-member .team-member__role { margin: 4px 0 12px; color: var(--site-gold-dark); font-weight: 700; font-size: .9rem; letter-spacing: .06em; text-transform: uppercase; }
.team-member p { color: #333; font-size: var(--fs-lead); line-height: 1.68; }
.team-member__contact { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 0 0 12px; font-weight: 600; font-size: .94rem; }
@media (max-width: 760px) { .team-member { grid-template-columns: 1fr; } .team-member img { max-width: 340px; } }

.case-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; }
.case-card__img { width: calc(100% + 44px); margin: -24px -22px 18px; border-radius: var(--site-radius) var(--site-radius) 0 0; display: block; height: auto; }
.case-card { display: flex; flex-direction: column; padding: 24px 22px; border-radius: var(--site-radius); background: #fff; border: 1px solid rgba(11,31,58,.08); box-shadow: var(--site-shadow); }
.case-card__amount { font-family: var(--font-display); font-size: 2.15rem; color: var(--site-navy); line-height: 1; letter-spacing: -.02em; }
.case-card h3 { margin: 10px 0 8px; font-size: 1.2rem; color: var(--site-navy); }
.case-card p { margin: 0 0 14px; font-size: 1rem; color: #555; flex-grow: 1; }
.case-card__tag { align-self: flex-start; margin-bottom: 12px; padding: 4px 12px; border-radius: 999px; background: rgba(58,143,138,.1); color: var(--site-teal-dark); font-size: .76rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
a.case-card__tag { text-decoration: none; }
a.case-card__tag:hover { text-decoration: underline; }
.case-card a { font-weight: 700; font-size: .88rem; }
@media (max-width: 960px) { .case-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 640px) { .case-grid { grid-template-columns: 1fr; } }

.contact-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; }
.contact-card { padding: 24px 22px; border-radius: var(--site-radius); background: #fff; border: 1px solid rgba(11,31,58,.08); box-shadow: var(--site-shadow); text-align: center; }
.contact-card .icon { width: 34px; height: 34px; margin: 0 auto 10px; display: block; }
.contact-card h3 { margin: 0 0 4px; font-family: var(--font-display); color: var(--site-navy); font-size: 1.25rem; }
.contact-card p { margin: 0 0 12px; font-size: 1rem; color: #555; }
.contact-card a.big { font-family: var(--font-display); font-size: 1.45rem; font-weight: 700; color: var(--site-navy); text-decoration: none; }
.contact-card a.big:hover { color: var(--site-teal-dark); }
@media (max-width: 900px) { .contact-grid { grid-template-columns: 1fr; } }

/* Blog */
.blog-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; }
.blog-card { display: flex; flex-direction: column; border-radius: 20px; overflow: hidden; background: #fff; border: 1px solid rgba(11,31,58,.08); box-shadow: var(--site-shadow); }
.blog-card__body { display: flex; flex-direction: column; padding: 20px; flex-grow: 1; }
.blog-card__kicker { color: var(--site-teal-dark); font-size: .76rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 8px; }
.blog-card h2, .blog-card h3 { margin: 0 0 8px; font-family: var(--font-display); font-size: 1.35rem; line-height: 1.3; }
.blog-card h2 a, .blog-card h3 a { color: var(--site-navy); text-decoration: none; }
.blog-card h2 a:hover, .blog-card h3 a:hover { color: var(--site-teal-dark); }
.blog-card p { margin: 0 0 14px; font-size: .9rem; color: #555; flex-grow: 1; }
.blog-card time { font-size: .8rem; color: var(--site-ink-faint); }
@media (max-width: 960px) { .blog-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 640px) { .blog-grid { grid-template-columns: 1fr; } }

.article-meta { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 14px 0 0; font-size: .86rem; color: var(--site-ink-faint); align-items: center; }
.article-meta img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; border: 2px solid var(--site-gold); }
.article-meta strong { color: var(--site-navy); }

/* Trust page */
.trust-links { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 12px; }
.trust-link { display: block; padding: 16px 18px; border-radius: 14px; background: #fff; border: 1px solid rgba(11,31,58,.08); text-decoration: none; transition: border-color .15s ease; }
.trust-link:hover { border-color: var(--site-gold); }
.trust-link strong { display: block; color: var(--site-navy); font-size: .95rem; }
.trust-link span { display: block; margin-top: 3px; font-size: .8rem; color: var(--site-ink-faint); }
@media (max-width: 900px) { .trust-links { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 600px) { .trust-links { grid-template-columns: 1fr; } }

.credential-list { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 0 28px; margin: 0; }
.credential-list div { display: flex; justify-content: space-between; gap: 14px; padding: 12px 2px; border-bottom: 1px solid rgba(11,31,58,.08); }
.credential-list dt { color: var(--site-ink-faint); font-size: .9rem; }
.credential-list dd { margin: 0; font-weight: 700; color: var(--site-navy); font-size: .92rem; text-align: right; }
@media (max-width: 760px) { .credential-list { grid-template-columns: 1fr; } }

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer { background: var(--site-charcoal); color: rgba(248,245,239,.85); font-size: .9rem; }
.site-footer a { color: var(--site-cream); text-decoration: none; }
.site-footer a:hover { color: var(--site-gold); text-decoration: underline; }
.site-footer__main { display: grid; grid-template-columns: 1.25fr 1fr 1fr 1.1fr; gap: clamp(24px, 4vw, 48px); padding: clamp(40px, 6vw, 60px) 0 32px; }
.site-footer__brand img { width: 200px; height: auto; margin-bottom: 14px; }
.site-footer__brand .site-footer__eho,
.site-footer__eho {
  display: block;
  width: 24px !important;
  height: 24px !important;
  margin: 4px 0 0;
}
.site-footer__brand p { margin: 0 0 14px; line-height: 1.6; color: rgba(248,245,239,.75); }
.site-footer h2 { margin: 0 0 14px; font-family: var(--font-display); font-size: 1.02rem; color: var(--site-gold); letter-spacing: .04em; }
.site-footer ul { margin: 0; padding: 0; list-style: none; }
.site-footer li { margin: 0 0 9px; }
.site-footer address { font-style: normal; line-height: 1.7; }
.footer-social { display: flex; gap: 10px; margin-top: 14px; }
.footer-social a {
  display: inline-flex; align-items: center; justify-content: center;
  width: 38px; height: 38px; border-radius: 50%;
  background: rgba(248,245,239,.1); border: 1px solid rgba(248,245,239,.2);
}
.footer-social a:hover { background: var(--site-gold); border-color: var(--site-gold); text-decoration: none; }
.footer-social svg { width: 17px; height: 17px; fill: var(--site-cream); }
.footer-social a:hover svg { fill: var(--site-navy); }
.site-footer__legal { border-top: 1px solid rgba(248,245,239,.15); padding: 22px 0 30px; font-size: .78rem; line-height: 1.6; color: rgba(248,245,239,.62); }
.site-footer__legal p { margin: 0 0 8px; }
.site-footer__legal-links { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0 0 12px; padding: 0; list-style: none; }
.site-footer__legal-links a { color: rgba(248,245,239,.82); }
.eho-mark { display: inline-flex; align-items: center; gap: 8px; margin-top: 6px; }
.eho-mark svg { width: 30px; height: 30px; fill: rgba(248,245,239,.75); }
@media (max-width: 960px) { .site-footer__main { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .site-footer__main { grid-template-columns: 1fr; } }

/* ==========================================================================
   Forms (contact)
   ========================================================================== */
.site-form { display: grid; gap: 14px; }
.site-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.site-form label { display: block; font-weight: 600; font-size: .9rem; color: var(--site-navy); margin-bottom: 5px; }
.site-form input, .site-form select, .site-form textarea {
  width: 100%; padding: 12px 14px; border-radius: 12px;
  border: 1px solid rgba(11,31,58,.2); background: #fff;
  font: inherit; color: var(--site-charcoal);
}
.site-form textarea { min-height: 130px; resize: vertical; }
.site-form small { color: var(--site-ink-faint); }
@media (max-width: 640px) { .site-form__row { grid-template-columns: 1fr; } }

/* Utility grids */
.grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; }
@media (max-width: 760px) { .grid-2 { grid-template-columns: 1fr; } }

@media (max-width: 900px) {
  .path-grid, .loan-grid, .testimonials, .strip-metrics, .steps, .media-buckets--logos { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .path-grid, .loan-grid, .testimonials, .strip-metrics, .steps, .media-buckets--logos { grid-template-columns: 1fr; }
  .cta-banner { text-align: center; justify-content: center; }
}

@media print {
  .site-nav, .site-hero__actions { display: none !important; }
}

/* ==========================================================================
   NewBuild: construction-brand components (not Jackie, not AgriFarm)
   ========================================================================== */

/* Photo heroes: full-bleed image, 50/50 split. Left pane is frosted teal glass
   so copy stays readable while timber and ridges still run edge to edge.
   Backdrop-filter, not a gradient. Legal pages without media stay solid teal. */
.nb-hero {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: var(--site-navy);
  color: #fff;
  padding: clamp(40px, 6vw, 72px) 0 clamp(48px, 7vw, 80px);
}
.nb-hero--page {
  padding: clamp(48px, 7vw, 88px) 0 clamp(56px, 8vw, 96px);
}
.nb-hero--home {
  min-height: 0;
  padding: clamp(64px, 8vw, 112px) 0;
}
.nb-hero--home h1 {
  max-width: 14ch;
  line-height: var(--lh-display);
  letter-spacing: -.045em;
  margin: 0;
  font-weight: 800;
}
.nb-hero--home .nb-hero__lead {
  font-size: var(--fs-lead);
  font-weight: 400;
  line-height: var(--lh-body);
  max-width: min(40vw, 42rem);
  margin: clamp(20px, 2.4vw, 32px) 0 0;
}
.nb-hero .site-btn {
  min-height: clamp(52px, 4.875vw, 5.85rem);
  padding: 0 clamp(20px, 2.9vw, 36px);
  font-size: var(--fs-btn);
  font-weight: 600;
}
.nb-hero--home .site-btn--primary {
  background: var(--site-gold);
  color: #fff;
}
.nb-hero--home .site-btn--primary:hover {
  background: var(--site-gold-dark);
}
.nb-hero--home .site-btn--primary::after {
  content: "";
  width: 7px;
  height: 7px;
  border-right: 2px solid currentColor;
  border-top: 2px solid currentColor;
  transform: rotate(45deg);
  margin-left: 2px;
}
.nb-hero__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  align-items: center;
  margin-top: clamp(16px, 1.8vw, 24px);
}
.nb-hero__media,
.nb-hero__scrim {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.nb-hero__media { z-index: 0; }
.nb-hero__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 72% 42%;
  filter: saturate(1.18) contrast(1.12) brightness(1.06);
}
.nb-hero--home .nb-hero__media img {
  transform: scaleX(-1);
  object-position: 62% 38%;
  filter: saturate(1.05) contrast(1.08) brightness(0.78);
}
.nb-hero--home .nb-hero__scrim {
  display: block;
  width: min(68%, 820px);
  background: linear-gradient(
    90deg,
    color-mix(in srgb, var(--site-teal) 94%, #000) 0%,
    color-mix(in srgb, var(--site-teal) 82%, transparent) 55%,
    color-mix(in srgb, var(--site-teal) 35%, transparent) 82%,
    transparent 100%
  );
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  border-right: 0;
}
.nb-hero--home .nb-hero__scrim::before,
.nb-hero--home .nb-hero__scrim::after { display: none; }
.nb-hero--home .nb-hero__lead,
.nb-hero--home .nb-hero__hook p {
  text-shadow: 0 1px 3px rgba(0,0,0,.45);
}
.nb-hero--home:has(.nb-hero__media) > .container {
  padding-top: clamp(28px, 3vw, 40px);
}
.nb-hero__media--va img {
  object-position: 50% 28%;
}
.nb-hero--porch .nb-hero__media img { object-position: 74% 28%; }
.nb-hero--office .nb-hero__media img { object-position: 72% 40%; }
.nb-hero--street .nb-hero__media img { object-position: 70% 82%; }
.nb-hero--ridge .nb-hero__media img { object-position: 76% 40%; }
.nb-hero__scrim {
  z-index: 1;
  inset: 0 auto 0 0;
  width: 50%;
  background: color-mix(in srgb, var(--site-teal) 64%, transparent);
  -webkit-backdrop-filter: blur(18px) saturate(0.78) brightness(0.88);
  backdrop-filter: blur(18px) saturate(0.78) brightness(0.88);
  border-right: 1px solid color-mix(in srgb, var(--site-gold) 58%, transparent);
}
.nb-hero__scrim::before {
  content: "";
  position: absolute;
  top: 10%;
  bottom: 10%;
  right: -1px;
  width: 2px;
  background: var(--site-gold);
  opacity: .7;
}
.nb-hero__scrim::after {
  content: "";
  position: absolute;
  inset: 0;
  opacity: .09;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
  background-size: 160px 160px;
  mix-blend-mode: overlay;
  pointer-events: none;
}
.nb-hero:has(.nb-hero__media) {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
  padding: 0;
  min-height: min(72vh, 760px);
}
.nb-hero--home:has(.nb-hero__media) {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: stretch;
  min-height: 0;
  padding: 0;
}
.nb-hero:has(.nb-hero__media) > .container {
  position: relative;
  z-index: 2;
  grid-column: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  max-width: none;
  margin: 0;
  padding-top: clamp(48px, 6.5vw, 88px);
  padding-bottom: clamp(48px, 6.5vw, 88px);
  padding-inline-start: var(--site-gutter);
  padding-inline-end: clamp(22px, 3.2vw, 48px);
}
.nb-hero--home:has(.nb-hero__media) > .container {
  width: 100%;
  max-width: none;
  margin: 0;
  padding-top: clamp(32px, 3.4vw, 44px);
  padding-bottom: clamp(32px, 3.4vw, 44px);
  padding-inline: var(--site-gutter);
  grid-column: auto;
  justify-content: flex-start;
}
.nb-hero:not(:has(.nb-hero__media)) .nb-hero__scrim { display: none; }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .nb-hero__scrim { background: color-mix(in srgb, var(--site-teal) 94%, #000); }
}
@media (prefers-reduced-transparency: reduce) {
  .nb-hero__scrim {
    background: var(--site-teal);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
  .nb-hero__scrim::after { opacity: .04; }
}
.nb-hero .site-breadcrumbs { margin: 0 0 18px; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 6px 10px; font-size: .82rem; color: rgba(247,246,237,.7); }
.nb-hero .site-breadcrumbs a { color: var(--site-cream); }
.nb-hero .site-breadcrumbs li + li::before { content: "/"; margin-right: 10px; color: rgba(247,246,237,.4); }
.nb-prose { max-width: none; }
.nb-prose > p,
.nb-prose > ul,
.nb-prose > ol { max-width: 46rem; }
.nb-prose > h2 { margin-top: 0; max-width: 22ch; }
.nb-prose > h2 + p { margin-top: 0; }
.section .container > p { max-width: 80rem; font-size: var(--fs-lead); line-height: var(--lh-prose); }
.section .container.nb-copy--wide > p,
.nb-split__copy > p { max-width: none; }

.nb-split {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(260px, 0.95fr);
  gap: clamp(28px, 4vw, 56px);
  align-items: stretch;
}
.nb-split + .container { margin-top: clamp(36px, 4.5vw, 56px); }
.nb-split__media {
  margin: 0;
  min-height: 280px;
  height: 100%;
}
.nb-split__media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 280px;
  object-fit: cover;
  border-radius: var(--site-radius-lg);
  filter: saturate(1.18) contrast(1.12) brightness(1.06);
}
.nb-prose details,
.site-faq details,
section details {
  border: 0;
  border-bottom: 1px solid var(--site-birch);
  border-radius: 0;
  background: transparent;
  margin-bottom: 0;
  overflow: visible;
}
.nb-prose summary,
.site-faq summary,
section summary {
  cursor: pointer;
  padding: 16px 0;
  font-weight: 650;
  list-style: none;
  font-size: var(--fs-lead);
}
.nb-prose .site-faq__a,
section .site-faq__a { padding: 0 18px 16px; }

.nb-geo {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, 0.78fr);
  gap: clamp(24px, 4vw, 48px);
  align-items: start;
}
.nb-desk {
  position: sticky;
  top: 88px;
  display: grid;
  gap: 14px;
}
.nb-desk__media img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: 50% 40%;
  display: block;
  border-radius: var(--site-radius-lg);
}
.nb-desk__card {
  background: #fff;
  border: 1px solid var(--site-birch);
  border-radius: var(--site-radius-lg);
  padding: 22px 20px 20px;
}
.nb-desk__card h2 {
  margin: 0 0 10px;
  font-size: 1.28rem;
  max-width: none;
  color: var(--site-teal);
}
.nb-desk__card p {
  margin: 0 0 12px;
  font-size: 1rem;
  color: var(--site-ink-soft);
}
.nb-desk__card p:last-child { margin-bottom: 0; }
.nb-desk__kicker {
  margin: 0 0 8px;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--site-gold);
}
.nb-desk__card--cta {
  background: var(--site-teal);
  border-color: var(--site-teal);
  color: var(--site-cream);
}
.nb-desk__card--cta h2 { color: #fff; }
.nb-desk__card--cta p { color: rgba(247, 246, 237, .86); }
.nb-desk .site-btn { width: 100%; box-sizing: border-box; }
.nb-desk .site-btn + .site-btn { margin-top: 8px; }
.nb-desk__phone {
  display: block;
  margin-top: 12px;
  font-size: 1.28rem;
  font-weight: 800;
  color: #fff;
  text-decoration: none;
  letter-spacing: .01em;
}
.nb-desk__phone:hover { color: var(--site-gold); }
.nb-desk__list {
  margin: 0;
  padding: 0;
  list-style: none;
}
.nb-desk__list li {
  position: relative;
  margin: 0;
  padding: 9px 0 9px 14px;
  border-bottom: 1px solid var(--site-birch);
  font-size: .9rem;
  color: var(--site-charcoal);
}
.nb-desk__list li:last-child { border-bottom: 0; }
.nb-desk__list li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 1.05em;
  width: 6px;
  height: 1px;
  background: var(--site-gold);
}
.nb-desk__list a { color: inherit; font-weight: 650; text-decoration: none; }
.nb-desk__list a:hover { color: var(--site-teal-dark); }
.nb-desk__neighbors {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.nb-desk__neighbors a {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 0 12px;
  border: 1px solid var(--site-birch);
  border-radius: 999px;
  font-size: .82rem;
  font-weight: 700;
  color: var(--site-teal);
  text-decoration: none;
}
.nb-desk__neighbors a:hover { border-color: var(--site-gold); color: var(--site-charcoal); }
.nb-person {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 28px;
  align-items: start;
  margin: 1.5rem 0 2rem;
}
.nb-person img { width: 100%; height: auto; display: block; border-radius: var(--site-radius-lg); }
.nb-mid-cta,
.nb-rescue {
  margin: 0;
  padding: clamp(28px, 4vw, 40px);
  border: 1px solid var(--site-birch);
  border-radius: var(--site-radius-lg);
  background: #fff;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.nb-mid-cta h2,
.nb-rescue h2 {
  margin: 0 0 8px;
  max-width: 18ch;
  font-size: var(--fs-h2-card);
}
.nb-mid-cta p,
.nb-rescue p { margin: 0; max-width: 36rem; }
.nb-stakes {
  background: var(--site-navy);
  color: #fff;
  padding: clamp(40px, 6vw, 72px) 0;
}
.nb-stakes .container { width: min(780px, calc(100% - 40px)); }
.nb-stakes h2 { color: #fff; max-width: none; }
.nb-stakes p { color: rgba(247,246,237,.78); max-width: 46rem; font-size: var(--fs-body); line-height: var(--lh-prose); }
.nb-prep {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
  margin-top: 28px;
}
.nb-prep__col {
  background: #fff;
  border: 1px solid var(--site-birch);
  border-radius: var(--site-radius-lg);
  padding: 22px 22px 18px;
}
.nb-prep__col h3 {
  margin: 0 0 14px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--site-birch);
  color: var(--site-navy);
  font-size: .82rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.nb-prep__col ul { margin: 0; padding: 0; list-style: none; }
.nb-prep__col li {
  position: relative;
  padding-left: 16px;
  margin: 0 0 10px;
  font-size: .92rem;
  color: var(--site-charcoal);
}
.nb-prep__col li::before {
  content: "";
  position: absolute;
  left: 0; top: .55em;
  width: 7px; height: 1px;
  background: var(--site-gold);
}
.nb-faq details {
  background: transparent;
  border: 0;
  border-radius: 0;
  border-bottom: 1px solid var(--site-birch);
  margin: 0;
}
.nb-faq summary {
  padding: 18px 0;
  font-size: var(--fs-lead);
}
.nb-faq .site-faq__a {
  padding: 0 0 18px;
  max-width: 46rem;
  color: var(--site-ink-soft);
}
@media (max-width: 800px) {
  .nb-geo, .nb-person { grid-template-columns: 1fr; }
  .nb-desk { position: static; }
}
.section--teal { background: var(--site-navy); color: #fff; }
.section--teal h2, .section--teal h3 { color: #fff; }
.section--teal p { color: rgba(247,246,237,.75); }

.nb-hero__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(32px, 5vw, 64px);
  align-items: center;
}
.nb-hero__eyebrow {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: var(--fs-kicker); letter-spacing: .08em; text-transform: uppercase;
  color: var(--site-gold); margin-bottom: 18px; font-weight: 600;
}
.nb-kicker {
  margin: 0 0 10px;
  font-size: var(--fs-kicker); letter-spacing: .16em; text-transform: uppercase;
  color: var(--site-gold); font-weight: 700;
}
.nb-hero h1 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: var(--fs-hero);
  line-height: var(--lh-display);
  letter-spacing: -.04em;
  margin: 0 0 18px;
  color: #fff;
  max-width: 12ch;
}
.nb-hero--page h1 { max-width: 16ch; font-size: var(--fs-h1); line-height: 0.92; }
.nb-hero h1 em { font-style: normal; color: var(--site-gold); }
.nb-hero h1 span {
  display: block;
  margin-top: .28em;
  font-weight: 400;
  font-size: .42em;
  line-height: 1.05;
  letter-spacing: -.01em;
  color: #fff;
  max-width: 16ch;
}
.nb-hero--home h1 span {
  font-size: 0.6em;
  max-width: none;
  margin-top: 0.68em;
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: -.02em;
}
.nb-hero__lead { color: var(--site-cream); font-size: var(--fs-lead); line-height: var(--lh-body); max-width: 40rem; }
.nb-hero .site-btn--secondary {
  color: #fff;
  background: transparent;
  border: 1.5px solid var(--site-gold);
}
.nb-hero .site-btn--secondary:hover {
  background: var(--site-gold);
  color: var(--site-navy);
}
.nb-hero__note { margin: clamp(12px, 1.3vw, 18px) 0 0; color: rgba(247,246,237,.88); font-size: var(--fs-hero-note); font-weight: 500; }
.nb-hero__note a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.nb-hero__hook {
  max-width: min(42rem, 92%);
  margin: clamp(18px, 2vw, 28px) 0 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.nb-hero__hook p {
  margin: 0;
  color: rgba(247,246,237,.9);
  font-size: var(--fs-small);
  line-height: var(--lh-body);
  position: relative;
  padding-left: 1.35em;
}
.nb-hero__hook p:not(.nb-hero__hook-proof)::before {
  content: "";
  position: absolute;
  left: 0;
  top: .42em;
  width: .7em;
  height: .38em;
  border-left: 2px solid var(--site-gold);
  border-bottom: 2px solid var(--site-gold);
  transform: rotate(-45deg);
}
.nb-hero__hook-proof {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  flex-wrap: wrap;
  padding-left: 0;
}
.nb-hero__stars { color: var(--site-gold); letter-spacing: .12em; }
.path-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.nb-dealer-line { margin: 22px 0 0; text-align: center; }
.nb-dealer-line a { color: var(--site-navy); font-weight: 600; }
.nb-feat { display: grid; gap: 16px; margin: 22px 0; }
.nb-feat h3 { margin: 0 0 4px; font-size: 1.05rem; }
.nb-feat p { margin: 0; }
.nb-watch { margin-top: 20px; display: flex; flex-direction: column; gap: 8px; }
.nb-watch details {
  background: #fff;
  border: 1px solid var(--site-birch);
  border-radius: var(--site-radius-lg);
  padding: 0;
}
.section--ivory .nb-watch details { border: 0; background: #fff; }
.nb-watch summary {
  cursor: pointer;
  list-style: none;
  padding: 16px 20px;
  font-weight: 700;
  color: var(--site-navy);
}
.nb-watch summary::-webkit-details-marker { display: none; }
.nb-watch summary::after { content: "+"; float: right; font-weight: 500; color: var(--site-gold); }
.nb-watch details[open] summary::after { content: "-"; }
.nb-watch__a { padding: 0 20px 18px; color: var(--site-charcoal); max-width: 46rem; }
.nb-fineprint { font-size: .88rem; color: var(--site-ink-faint); }
.nb-cases {
  display: grid;
  gap: 16px;
  margin-top: 28px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
}
@media (max-width: 960px) {
  .nb-cases { grid-template-columns: 1fr; }
}
.nb-case {
  background: #fff;
  border-radius: var(--site-radius-lg);
  padding: 24px 22px;
  display: flex;
  flex-direction: column;
}
.nb-case > p:not(.nb-case__badge):not(.nb-case__meta) {
  flex: 1;
  display: -webkit-box;
  -webkit-line-clamp: 7;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
@media (max-width: 960px) {
  .nb-case > p:not(.nb-case__badge):not(.nb-case__meta) {
    display: block;
    -webkit-line-clamp: unset;
    overflow: visible;
  }
}
.nb-case__badge {
  margin: 0 0 10px;
  font-size: .72rem;
  letter-spacing: .1em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--site-navy);
}
.nb-case h3 { margin: 0 0 10px; max-width: 28ch; }
.nb-case__meta { font-size: .9rem; font-weight: 600; color: var(--site-navy); }
.nb-inline-quote {
  margin: 20px 0;
  padding: 0 0 0 16px;
  border-left: 3px solid var(--site-gold);
}
.nb-inline-quote p { margin: 0; font-style: italic; }
.nb-inline-quote footer { margin-top: 8px; font-size: .85rem; font-weight: 700; font-style: normal; }

.nb-after { background: var(--site-cream); padding: clamp(40px, 6vw, 72px) 0; }
.nb-after__grid {
  display: grid;
  grid-template-columns: 0.78fr 1.22fr;
  gap: clamp(20px, 3vw, 36px);
  align-items: stretch;
}
.nb-know--card {
  background: #eceae2;
  border: 0;
  border-radius: var(--site-radius-lg);
  padding: 28px 30px;
  margin: 0;
  height: 100%;
}
.nb-know--card h2 {
  margin: 0 0 18px;
  color: var(--site-navy);
  font-size: var(--fs-h2-card);
  font-weight: 800;
  line-height: 1.22;
  letter-spacing: -.02em;
}
.nb-know--card ul { margin: 0; padding: 0; }
.nb-know--card li {
  position: relative;
  list-style: none;
  margin: 0 0 10px;
  padding-left: 28px;
  color: var(--site-charcoal);
  font-size: var(--fs-lead);
  line-height: var(--lh-prose);
}
.nb-know--card li::before {
  content: "";
  position: absolute;
  left: 0; top: .45em;
  width: 12px; height: 7px;
  border-left: 2.5px solid var(--site-gold);
  border-bottom: 2.5px solid var(--site-gold);
  transform: rotate(-50deg);
}

.nb-scenarios { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.nb-scenarios a {
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 12px;
  align-items: start;
  background: #fff;
  border-radius: var(--site-radius-lg);
  padding: 16px 16px 14px;
  text-decoration: none;
  color: var(--site-charcoal);
  border: 1px solid transparent;
  min-height: 100%;
  font-size: var(--fs-small);
  line-height: var(--lh-body);
}
.nb-scenarios a::after {
  content: "";
  width: 8px;
  height: 8px;
  border-right: 2px solid var(--site-navy);
  border-top: 2px solid var(--site-navy);
  transform: rotate(45deg);
  justify-self: end;
}
.nb-scenarios a:hover { border-color: var(--site-gold); }
.nb-scenarios a::after { display: none; }
.nb-scenarios img { width: 56px; height: auto; display: block; }
.nb-scenarios strong {
  display: block;
  color: var(--site-navy);
  font-size: var(--fs-card);
  margin-bottom: 4px;
}

.nb-strip {
  background: var(--site-charcoal); color: #fff; padding: 22px 0;
}
.nb-strip__inner { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; }
.nb-strip__item { padding: 8px 20px; border-right: 1px solid rgba(247,246,237,.12); text-align: center; }
.nb-strip__item:last-child { border-right: 0; }
.nb-strip strong { display: block; font-size: var(--fs-strip); color: var(--site-gold); font-weight: 800; }
.nb-strip span { display: block; font-size: var(--fs-micro); color: rgba(247,246,237,.7); margin-top: 4px; }

.nb-process {
  background: var(--site-navy);
  color: #fff;
  padding: clamp(52px, 8vw, 96px) 0;
  text-align: center;
}
.nb-process__eyebrow {
  margin: 0 0 12px;
  font-size: var(--fs-kicker); letter-spacing: .18em; text-transform: uppercase;
  color: var(--site-gold); font-weight: 700;
}
.nb-process h2 {
  color: #fff;
  margin: 0 auto 14px;
  max-width: 18ch;
}
.nb-process a:not(.site-btn) { color: var(--site-gold); }
.nb-stakes a { color: var(--site-gold); }
.nb-process > .container > p {
  max-width: 56rem;
  margin: 0 auto 8px;
  color: rgba(247,246,237,.78);
  font-size: var(--fs-lead);
  line-height: var(--lh-body);
}
.nb-rail {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  position: relative;
  margin: 48px 0 40px;
  text-align: center;
}
.nb-rail::before {
  content: "";
  position: absolute;
  top: 36px;
  left: 10%;
  right: 10%;
  height: 1px;
  background: rgba(247,246,237,.28);
}
.nb-rail__icon {
  width: 72px; height: 72px; border-radius: 50%;
  background: #fff;
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto 16px;
  position: relative;
  z-index: 1;
}
.nb-rail__icon img { width: 44px; height: auto; }
.nb-process h3 {
  color: #fff;
  font-size: var(--fs-lead);
  margin: 0 0 8px;
  font-weight: 700;
  line-height: 1.15;
}
.nb-process .nb-rail p {
  margin: 0;
  font-size: var(--fs-small);
  line-height: var(--lh-body);
  color: rgba(247,246,237,.7);
}

.nb-quotes {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin-top: 28px;
}
.nb-quote {
  margin: 0;
  background: #fff;
  border: 1px solid var(--site-birch);
  border-radius: var(--site-radius-lg);
  padding: 24px 22px 22px;
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
}
.section--ivory .nb-quote { border: 0; }
.nb-quote__stars { color: var(--site-gold); letter-spacing: .12em; margin: 0 0 12px; font-size: .95rem; }
.nb-quote p { margin: 0; color: var(--site-charcoal); font-size: var(--fs-lead); line-height: var(--lh-body); }
.nb-quote footer,
.nb-quote span {
  display: block;
  margin-top: auto;
  padding-top: 16px;
  font-weight: 700;
  color: var(--site-navy);
  font-size: .9rem;
}

.nb-vs { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 28px; }
.nb-vs__card { padding: 20px 22px; border-radius: var(--site-radius-lg); border: 1px solid var(--site-birch); }
.nb-vs__card--bad { background: #f8ece8; border-color: rgba(184,87,46,.25); }
.nb-vs__card--good { background: #eef4f3; border-color: rgba(44,96,94,.2); }
.nb-vs__label { font-size: .72rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; margin-bottom: 10px; }
.nb-vs__card--bad .nb-vs__label { color: var(--site-cta); }
.nb-vs__card--good .nb-vs__label { color: var(--site-navy); }
.nb-vs li { margin: 0 0 8px; font-size: var(--fs-lead); line-height: var(--lh-prose); }

.nb-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.nb-steps--3 { grid-template-columns: repeat(3, 1fr); }
.nb-steps > div {
  background: #fff;
  border: 1px solid var(--site-birch);
  border-radius: var(--site-radius-lg);
  padding: 22px 20px 20px;
}
.section--white .nb-steps > div { background: var(--site-cream); border-color: transparent; }
.nb-steps__n {
  width: 44px; height: 44px; border-radius: 50%;
  border: 1px solid var(--site-gold); color: var(--site-gold);
  display: flex; align-items: center; justify-content: center;
  font-weight: 800; margin-bottom: 12px;
}

.cta-band {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  padding: clamp(56px, 8vw, 96px) 0;
  color: #fff;
}
.cta-band__media,
.cta-band__scrim {
  position: absolute;
  inset: 0;
}
.cta-band__media { z-index: -2; }
.cta-band__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.cta-band__scrim {
  z-index: -1;
  background: rgba(44, 96, 94, 0.78);
}
.cta-band__inner {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: clamp(28px, 5vw, 64px);
  align-items: center;
}
.cta-band h2 {
  color: #fff;
  margin: 0 0 14px;
  font-size: var(--fs-h2-cta);
  font-weight: 800;
  line-height: var(--lh-display);
  letter-spacing: -.04em;
  max-width: 12ch;
}
.cta-band h2 em { font-style: normal; color: var(--site-gold); display: block; }
.cta-band p { color: rgba(247,246,237,.86); max-width: 38rem; font-size: var(--fs-lead); line-height: var(--lh-body); }
.cta-band__states { font-size: .95rem; color: rgba(247,246,237,.7); }
.cta-band__panel { display: grid; gap: 10px; justify-items: start; }
.cta-band .site-btn {
  min-height: clamp(52px, 4.875vw, 5.85rem);
  padding: 0 clamp(20px, 2.9vw, 36px);
  font-size: var(--fs-btn);
  font-weight: 600;
}
.cta-band .site-btn--primary {
  background: var(--site-gold);
  color: #fff;
}
.cta-band .site-btn--primary:hover { background: var(--site-gold-dark); }
.cta-band .site-btn--primary::after {
  content: "";
  width: 7px;
  height: 7px;
  border-right: 2px solid currentColor;
  border-top: 2px solid currentColor;
  transform: rotate(45deg);
  margin-left: 2px;
}
.cta-band__micro { margin: 0; font-size: var(--fs-micro); color: rgba(247,246,237,.65); }
.cta-band__direct {
  margin-top: 12px;
  padding-top: 16px;
  border-top: 1px solid rgba(247,246,237,.2);
  width: 100%;
}
.cta-band__direct p { margin: 0 0 6px; }
.cta-band__direct a { color: #fff; font-weight: 700; }

.nb-calc {
  background: var(--site-white);
  border: 1px solid var(--site-birch);
  border-radius: var(--site-radius-lg);
  padding: clamp(20px, 3vw, 32px);
}
.nb-calc label { display: block; font-weight: 600; margin: 16px 0 6px; }
.nb-calc input[type="range"] { width: 100%; accent-color: var(--site-navy); }
.nb-calc__out {
  margin-top: 24px; padding: 18px;
  background: var(--site-cream); border-radius: var(--site-radius);
}
.nb-calc__out strong { display: block; font-size: 1.6rem; color: var(--site-navy); }
.nb-calc__tabs { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 12px; }
.nb-calc__tabs button {
  border: 1px solid var(--site-birch); background: #fff; padding: 8px 14px;
  border-radius: var(--site-radius); cursor: pointer; font-family: var(--font-body); font-weight: 600;
}
.nb-calc__tabs button[aria-selected="true"] { background: var(--site-navy); color: #fff; border-color: var(--site-navy); }
.nb-calc__disclaimer { font-size: .85rem; color: var(--site-ink-faint); margin-top: 12px; }

.nb-eho { width: 48px; height: 48px; }

@media (max-width: 900px) {
  .nb-hero__grid, .nb-vs, .nb-steps, .nb-strip__inner,
  .nb-after__grid, .nb-rail, .nb-quotes, .cta-band__inner, .nb-prep { grid-template-columns: 1fr; }
  .nb-scenarios { grid-template-columns: 1fr; }
  .nb-strip__item { border-right: 0; border-bottom: 1px solid rgba(247,246,237,.1); text-align: left; padding: 12px 0; }
  .nb-rail::before { display: none; }
  .nb-hero h1 { max-width: none; }
  .nb-hero:has(.nb-hero__media) {
    display: flex;
    flex-direction: column;
    min-height: 0;
    background: var(--site-teal);
  }
  .nb-hero--home:has(.nb-hero__media) {
    min-height: 0;
    background: var(--site-navy);
  }
  .nb-hero--home .nb-hero__media {
    position: absolute;
    inset: 0;
    height: auto;
    min-height: 0;
  }
  .nb-hero--home:has(.nb-hero__media) > .container {
    padding: clamp(24px, 4.5vw, 36px) var(--site-gutter);
  }
  .nb-split { grid-template-columns: 1fr; }
  .nb-split__media { min-height: 0; max-height: 320px; }
  .nb-split__media img { max-height: 320px; }
  .nb-hero--home .nb-hero__lead { max-width: none; }
  .nb-hero__media {
    position: relative;
    inset: auto;
    height: min(42vh, 340px);
    min-height: 220px;
  }
  .nb-hero__scrim { display: none; }
  .nb-hero:has(.nb-hero__media) > .container {
    width: 100%;
    margin-inline: 0;
    padding: 32px var(--site-gutter) 40px;
  }
  .nb-hero--home .nb-hero__media {
    position: absolute;
    inset: 0;
    height: auto;
    min-height: 0;
  }
  .nb-hero--home:has(.nb-hero__media) > .container {
    padding: clamp(24px, 4.5vw, 36px) var(--site-gutter);
  }
  .cta-band h2 { max-width: none; }
  .path-grid, .path-grid--4 { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .path-grid, .path-grid--4 { grid-template-columns: 1fr; }
}

/* Agency side-by-side: photo fills one pane, copy sits on a theme color. */
.nb-pane {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  min-height: min(88svh, 820px);
}
.nb-pane--flip .nb-pane__media { order: 2; }
.nb-pane--flip .nb-pane__copy { order: 1; }
.nb-pane--even { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
.nb-pane__media {
  position: relative;
  min-height: 420px;
  background: var(--site-teal-dark);
}
.nb-pane__media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 0;
  filter: saturate(1.12) contrast(1.08);
}
.nb-pane__copy {
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(40px, 6vw, 88px) clamp(28px, 5.5vw, 80px);
}
.nb-pane__copy h1,
.nb-pane__copy h2 {
  margin: 0 0 16px;
  max-width: 16ch;
}
.nb-pane__lead,
.nb-pane__copy > p {
  margin: 0 0 16px;
  max-width: 42ch;
  font-size: var(--fs-lead);
  line-height: var(--lh-prose);
}
.nb-pane__copy .nb-hero__actions { margin-top: 8px; flex-wrap: wrap; }
.nb-pane .site-breadcrumbs {
  margin: 0 0 18px;
  padding: 0;
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  font-size: .82rem;
}
.nb-pane .site-breadcrumbs li + li::before { content: "/"; margin-right: 10px; opacity: .45; }

.nb-pane--teal .nb-pane__copy { background: var(--site-teal); color: var(--site-cream); }
.nb-pane--teal .nb-pane__copy h1,
.nb-pane--teal .nb-pane__copy h2 { color: #fff; }
.nb-pane--teal .nb-kicker,
.nb-pane--teal .nb-pane__copy .nb-kicker { color: var(--site-gold); }
.nb-pane--teal .site-breadcrumbs,
.nb-pane--teal .site-breadcrumbs a { color: rgba(247,246,237,.78); }
.nb-pane--teal .nb-pane__copy a:not(.site-btn) { color: var(--site-gold); }

.nb-pane--charcoal .nb-pane__copy { background: var(--site-charcoal); color: var(--site-cream); }
.nb-pane--charcoal .nb-pane__copy h1,
.nb-pane--charcoal .nb-pane__copy h2 { color: #fff; }
.nb-pane--charcoal .nb-kicker { color: var(--site-gold); }
.nb-pane--charcoal .site-breadcrumbs,
.nb-pane--charcoal .site-breadcrumbs a { color: rgba(247,246,237,.78); }
.nb-pane--charcoal .nb-pane__copy a:not(.site-btn) { color: var(--site-gold); }

.nb-pane--cream .nb-pane__copy { background: var(--site-cream); color: var(--site-charcoal); }
.nb-pane--cream .nb-kicker { color: var(--site-teal); }
.nb-pane--cream .site-breadcrumbs,
.nb-pane--cream .site-breadcrumbs a { color: var(--site-ink-faint); }

.nb-pane--gold .nb-pane__copy { background: var(--site-gold); color: var(--site-charcoal); }
.nb-pane--gold .nb-kicker { color: var(--site-teal-dark); }
.nb-pane--gold .site-breadcrumbs,
.nb-pane--gold .site-breadcrumbs a { color: var(--site-teal-dark); }

.nb-band {
  padding: clamp(56px, 7vw, 96px) var(--site-gutter);
}
.nb-band__inner { width: min(46rem, 100%); }
.nb-band__inner--wide { width: min(72rem, 100%); }
.nb-band h2 { margin: 0 0 16px; max-width: 18ch; }
.nb-band p { margin: 0 0 16px; font-size: var(--fs-lead); line-height: var(--lh-prose); }
.nb-band--cream { background: var(--site-cream); color: var(--site-charcoal); }
.nb-band--white { background: #fff; color: var(--site-charcoal); }
.nb-band--teal { background: var(--site-teal); color: var(--site-cream); }
.nb-band--teal h2 { color: #fff; }
.nb-band--teal a { color: var(--site-gold); }
.nb-band--charcoal { background: var(--site-charcoal); color: var(--site-cream); }
.nb-band--charcoal h2 { color: #fff; }
.nb-band--charcoal a { color: var(--site-gold); }
.nb-band--gold { background: var(--site-gold); color: var(--site-charcoal); }
.nb-band--gold a { color: var(--site-teal-dark); }
.nb-band .site-faq details { border-bottom-color: rgba(48,53,52,.16); }
.nb-band--teal .site-faq details,
.nb-band--charcoal .site-faq details { border-bottom-color: rgba(247,246,237,.18); }
.nb-band--teal .site-faq summary,
.nb-band--charcoal .site-faq summary { color: #fff; }
.nb-nearby { display: flex; flex-wrap: wrap; gap: 10px 18px; padding: 0; margin: 8px 0 0; list-style: none; }
.nb-landmark {
  margin: 28px 0 8px;
}
.nb-landmark img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 0;
}
.nb-landmark figcaption {
  margin: 10px 0 0;
  font-size: .92rem;
  line-height: 1.4;
  color: var(--site-ink-soft);
}
.nb-band--charcoal .nb-landmark figcaption,
.nb-band--teal .nb-landmark figcaption {
  color: rgba(247,246,237,.72);
}
.nb-prose .nb-landmark { max-width: 46rem; }

.nb-serve-group { margin: 0 0 clamp(40px, 5vw, 64px); }
.nb-serve-group h2 { margin: 0 0 8px; }
.nb-serve-group > p { margin: 0 0 22px; max-width: 46rem; }
.nb-serve-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.nb-serve-card {
  display: flex;
  flex-direction: column;
  text-decoration: none;
  color: inherit;
  background: #fff;
  border: 1px solid var(--site-birch);
  border-radius: 0;
}
.nb-serve-card img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  filter: saturate(1.12) contrast(1.08);
}
.nb-serve-card__body { padding: 16px 18px 20px; }
.nb-serve-card h3 { margin: 0 0 8px; font-size: var(--fs-h3); color: var(--site-navy); }
.nb-serve-card p { margin: 0; font-size: 1rem; color: var(--site-ink-soft); }
.nb-serve-card:hover { border-color: var(--site-teal); }
.nb-geo-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.nb-geo-card {
  display: block;
  text-decoration: none;
  color: inherit;
  background: #fff;
  border: 1px solid var(--site-birch);
}
.nb-geo-card img {
  width: 100%;
  height: 180px;
  object-fit: cover;
}
.nb-geo-card__body { padding: 16px 18px 20px; }
.nb-geo-card h3 { margin: 0 0 6px; color: var(--site-navy); }
.nb-geo-card p { margin: 0; color: var(--site-ink-soft); }

.nb-partner-bar {
  background: var(--site-cream);
  border-bottom: 1px solid var(--site-birch);
  padding: 12px 0;
  font-size: var(--fs-small);
  color: var(--site-ink-soft);
}
.nb-partner-bar .container {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 16px;
}
.nb-partner-bar strong { color: var(--site-navy); }
.nb-partner-bar a { font-weight: 600; }
.nb-ph {
  border: 2px dashed var(--site-birch);
  border-radius: var(--site-radius-lg);
  background: #fff;
  min-height: 220px;
  padding: 22px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
}
.nb-ph--dark {
  background: var(--site-navy);
  border-color: rgba(247,246,237,.18);
  color: rgba(247,246,237,.82);
}
.nb-ph__label {
  font-size: var(--fs-micro);
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 600;
  color: var(--site-terracotta);
}
.nb-ph--dark .nb-ph__label { color: var(--site-gold); }
.nb-ph p { margin: 0; font-size: var(--fs-small); }
.nb-hero-split {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: clamp(24px, 4vw, 48px);
  align-items: center;
}
.nb-hero-split__media {
  margin: 0;
  border-radius: var(--site-radius-lg);
  overflow: hidden;
  min-height: 280px;
  background: rgba(0,0,0,.25);
}
.nb-hero-split__media img {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 280px;
  object-fit: cover;
}
.nb-team-grid,
.nb-offer-grid,
.nb-loc-grid,
.nb-spec-grid {
  display: grid;
  gap: 16px;
  margin: 28px 0 0;
}
.nb-team-grid { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); }
.nb-offer-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.nb-loc-grid { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.nb-spec-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.nb-team-card,
.nb-offer-card,
.nb-loc-card,
.nb-spec-card {
  background: #fff;
  border: 1px solid var(--site-birch);
  border-radius: var(--site-radius-lg);
  padding: 22px 20px;
}
.nb-team-card { text-align: center; }
.nb-team-card__org {
  display: inline-block;
  font-size: var(--fs-micro);
  letter-spacing: .06em;
  text-transform: uppercase;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 999px;
  margin: 10px 0 8px;
}
.nb-team-card__org--dealer { background: #f4ead4; color: #7a4c0f; }
.nb-team-card__org--lender { background: #e4f0ee; color: #1d4a48; }
.nb-team-card h3 { margin: 0 0 4px; font-size: 1.15rem; }
.nb-team-card p { margin: 0; font-size: var(--fs-small); color: var(--site-ink-soft); }
.nb-offer-card h3,
.nb-loc-card h3 { margin: 0 0 8px; font-size: var(--fs-h3); }
.nb-offer-card p,
.nb-loc-card p { margin: 0; }
.nb-spec-empty {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  background: #fff;
  border: 1px solid var(--site-birch);
  border-radius: var(--site-radius-lg);
  padding: 22px;
}
.nb-spec-card--sample { border-style: dashed; opacity: .88; }
.nb-spec-card__pill,
.nb-case__pill {
  display: inline-block;
  font-size: var(--fs-micro);
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 700;
  background: var(--site-ink-soft);
  color: #fff;
  padding: 3px 8px;
  border-radius: 6px;
  margin-bottom: 10px;
}
.nb-loan-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 20px;
}
.nb-loan-strip div {
  background: #fff;
  border: 1px solid var(--site-birch);
  border-radius: var(--site-radius-lg);
  padding: 14px 16px;
}
.nb-loan-strip strong {
  display: block;
  font-size: var(--fs-micro);
  letter-spacing: .06em;
  text-transform: uppercase;
  color: var(--site-navy);
  margin-bottom: 4px;
}
.nb-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin: 24px 0;
}
.nb-steps article {
  background: #fff;
  border: 1px solid var(--site-birch);
  border-radius: var(--site-radius-lg);
  padding: 20px;
}
.nb-steps h3 { margin: 0 0 8px; }
.nb-value { display: grid; gap: 14px; margin: 22px 0; }
.nb-value__item { display: grid; grid-template-columns: 1.4rem 1fr; gap: 10px; }
.nb-value__item::before {
  content: "";
  width: .7em;
  height: .38em;
  margin-top: .45em;
  border-left: 2px solid var(--site-gold);
  border-bottom: 2px solid var(--site-gold);
  transform: rotate(-45deg);
}
.nb-build-story {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 12px;
  margin: 24px 0 0;
}

@media (max-width: 900px) {
  .nb-pane,
  .nb-pane--flip,
  .nb-pane--even {
    grid-template-columns: 1fr;
    min-height: 0;
  }
  .nb-pane--flip .nb-pane__media,
  .nb-pane__media { order: 0; min-height: 0; height: min(46vh, 360px); }
  .nb-pane--flip .nb-pane__copy,
  .nb-pane__copy { order: 1; padding: 36px var(--site-gutter) 48px; }
  .nb-pane__media img { position: relative; height: 100%; }
  .nb-serve-grid,
  .nb-geo-grid { grid-template-columns: 1fr 1fr; }
  .nb-hero-split,
  .nb-offer-grid,
  .nb-spec-grid,
  .nb-loan-strip,
  .nb-steps,
  .nb-build-story { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .nb-serve-grid,
  .nb-geo-grid { grid-template-columns: 1fr; }
  .nav-item--open > .nav-dropdown.nb-nav-mega {
    grid-template-columns: 1fr;
  }
}

/* ── Social proof (Tim 2026-09-16) ── */
.nav-reviews {
  display: inline-flex !important;
  align-items: center;
  gap: 6px;
  padding: 6px 10px !important;
  border: 1px solid rgba(212, 166, 83, .45) !important;
  border-radius: 4px;
  color: var(--site-cream) !important;
  text-decoration: none !important;
  white-space: nowrap;
}
.nav-reviews:hover {
  background: rgba(212, 166, 83, .12) !important;
  border-color: var(--site-gold) !important;
}
.nav-reviews__stars {
  color: var(--site-gold);
  letter-spacing: .06em;
  font-size: .72rem;
  line-height: 1;
}
.nav-reviews__label {
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .02em;
}

.nb-proof-chip {
  display: inline-flex;
  align-items: flex-start;
  gap: 10px;
  margin-top: 18px;
  max-width: 36rem;
  padding: 12px 14px;
  border: 1px solid rgba(212, 166, 83, .55);
  background: rgba(12, 28, 26, .55);
  color: var(--site-cream);
  text-decoration: none;
  border-radius: 4px;
  transition: border-color .15s, background .15s;
}
.nb-proof-chip:hover {
  border-color: var(--site-gold);
  background: rgba(12, 28, 26, .72);
  text-decoration: none;
  color: var(--site-cream);
}
.nb-proof-chip__stars {
  color: var(--site-gold);
  letter-spacing: .1em;
  flex-shrink: 0;
  margin-top: 2px;
}
.nb-proof-chip__copy {
  font-size: var(--fs-small);
  line-height: 1.35;
}
.nb-proof-chip__copy strong { color: #fff; font-weight: 700; }

.nb-proof-bar {
  background: var(--site-charcoal);
  border-bottom: 1px solid rgba(247, 246, 237, .08);
}
.nb-proof-bar__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 12px 24px;
  padding: 14px 0;
}
.nb-proof-bar__rating {
  margin: 0;
  color: var(--site-cream);
  font-size: var(--fs-small);
}
.nb-proof-bar__rating span { color: var(--site-gold); letter-spacing: .08em; margin-right: 6px; }
.nb-proof-bar__attr {
  margin: 0;
  color: rgba(247, 246, 237, .72);
  font-size: var(--fs-micro);
  flex: 1 1 220px;
}
.nb-proof-bar__link {
  color: var(--site-gold);
  font-weight: 700;
  font-size: var(--fs-small);
  white-space: nowrap;
}
.nb-proof-bar__link:hover { color: #fff; }

/* ── Dealer landing (Tim wireframe v3, NewBuild chrome) ── */
.nb-dealer-hook { margin: 0 0 22px; display: grid; gap: 8px; }
.nb-dealer-hook p {
  margin: 0;
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: var(--fs-small);
  line-height: 1.45;
  color: rgba(247, 246, 237, .82);
}
.nb-dealer-hook p::before {
  content: "\2713";
  color: var(--site-gold);
  font-weight: 800;
  flex-shrink: 0;
}
.nb-stakes-list { margin: 0; padding: 0; list-style: none; display: grid; gap: 14px; }
.nb-stakes-list li {
  padding-left: 1rem;
  border-left: 3px solid var(--site-gold);
  color: rgba(247, 246, 237, .8);
  font-size: var(--fs-lead);
  line-height: var(--lh-body);
}
.nb-stakes-list strong { color: #fff; font-weight: 600; }
.nb-value-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}
.nb-value-card {
  border: 1px solid rgba(48, 53, 52, .12);
  background: #fff;
  padding: 22px 20px;
}
.nb-value-card h3 { margin: 0 0 8px; font-size: 1.05rem; }
.nb-value-card p { margin: 0; color: var(--site-ink-soft); font-size: var(--fs-small); }
.nb-pull {
  max-width: 46rem;
  margin: 0 auto;
  text-align: left;
}
.nb-pull__quote {
  margin: 0;
  font-size: clamp(1.35rem, 2.4vw, 1.85rem);
  line-height: 1.35;
  font-weight: 700;
  color: var(--site-charcoal);
  letter-spacing: -0.02em;
}
.nb-pull__attr {
  margin: 18px 0 0;
  font-size: var(--fs-micro);
  color: var(--site-ink-soft);
  letter-spacing: .02em;
}
.nb-pull__under {
  margin: 22px 0 0;
  padding-top: 18px;
  border-top: 1px solid rgba(48, 53, 52, .12);
  color: var(--site-ink-soft);
  max-width: 40rem;
}
.nb-evidence { display: grid; gap: 16px; }
.nb-evidence__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.nb-ev-card {
  border: 1px solid rgba(48, 53, 52, .12);
  background: #fff;
  padding: 24px 26px;
}
.nb-ev-card--quote {
  background: var(--site-cream);
  border-left: 3px solid var(--site-teal);
}
.nb-ev-label {
  margin: 0 0 10px;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--site-teal);
}
.nb-ev-stat {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px solid rgba(48, 53, 52, .1);
  display: flex;
  gap: 10px;
  align-items: baseline;
}
.nb-ev-stat strong { font-size: 1.15rem; }
.nb-ev-stat span { font-size: var(--fs-micro); color: var(--site-ink-soft); }
.nb-steps3 {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  text-align: center;
}
.nb-steps3__n {
  width: 52px;
  height: 52px;
  margin: 0 auto 14px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: rgba(247, 246, 237, .08);
  border: 1px solid rgba(247, 246, 237, .16);
  color: var(--site-gold);
  font-weight: 800;
  font-size: 1.15rem;
}
.nb-steps3 p { margin: 0; color: rgba(247, 246, 237, .88); font-size: var(--fs-small); line-height: 1.4; }
.nb-agree-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
}
.nb-agree-card {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  background: #fff;
  border: 1px solid rgba(48, 53, 52, .1);
  padding: 18px 20px;
}
.nb-agree-card span {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  border-radius: 4px;
  background: #e4f0ee;
  color: var(--site-teal);
  display: grid;
  place-items: center;
  font-weight: 800;
  font-size: .85rem;
}
.nb-agree-card h3 { margin: 0 0 6px; font-size: 1rem; }
.nb-agree-card p { margin: 0; font-size: var(--fs-small); color: var(--site-ink-soft); }
.nb-route-note {
  margin-top: 22px;
  background: #f5ede4;
  border: 1px solid rgba(122, 92, 62, .22);
  padding: 22px 24px;
}
.nb-land-callout {
  margin-top: 18px;
  border: 1.5px solid var(--site-teal);
  background: #e8f2f1;
  padding: 22px 24px;
}
.nb-land-callout h3 { margin: 0 0 8px; }
.nb-fs-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.nb-fs-col {
  border: 1px solid rgba(48, 53, 52, .12);
  padding: 24px 26px;
}
.nb-fs-col--win { border-color: var(--site-teal); border-width: 1.5px; }
.nb-fs-hd {
  margin: 0 0 10px;
  font-size: .7rem;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: var(--site-ink-soft);
}
.nb-fs-col--win .nb-fs-hd { color: var(--site-teal); }
.nb-already {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  background: #fff;
  border: 1px solid rgba(48, 53, 52, .12);
  padding: 22px 26px;
}
.nb-send-buyer {
  background: rgba(247, 246, 237, .06);
  border: 1px solid rgba(247, 246, 237, .14);
  padding: 26px 28px;
}
.nb-send-buyer h3 { margin: 0 0 6px; color: #fff; }
.nb-send-buyer .nb-send-buyer__sub {
  margin: 0 0 18px;
  color: rgba(247, 246, 237, .65);
  font-size: var(--fs-small);
}
.nb-send-buyer label {
  display: block;
  margin: 0 0 6px;
  font-size: var(--fs-micro);
  color: rgba(247, 246, 237, .55);
}
.nb-send-buyer input,
.nb-send-buyer textarea {
  width: 100%;
  margin-bottom: 12px;
  padding: 12px 14px;
  border: 1px solid rgba(247, 246, 237, .2);
  background: rgba(247, 246, 237, .06);
  color: #fff;
  font: inherit;
}
.nb-send-buyer textarea { min-height: 88px; resize: vertical; }
.nb-send-buyer .site-btn { width: 100%; justify-content: center; }
.nb-send-buyer__note {
  margin: 12px 0 0;
  font-size: var(--fs-micro);
  color: rgba(247, 246, 237, .4);
}
.nb-team-coverage {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 22px;
  padding: 7px 14px;
  border-radius: 20px;
  background: #e4f0ee;
  color: var(--site-teal);
  font-size: var(--fs-small);
  font-weight: 600;
}
.nb-team-coverage::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--site-teal);
}
.nb-team-callout {
  margin-top: 22px;
  max-width: 48rem;
  border: 1px solid rgba(48, 53, 52, .12);
  background: #fff;
  padding: 18px 22px;
}
@media (max-width: 900px) {
  .nb-value-grid,
  .nb-evidence__row,
  .nb-agree-grid,
  .nb-fs-grid,
  .nb-steps3 { grid-template-columns: 1fr; }
}

/* Team headshots + Partner Resources (Tim 2026-09-19) */
.nb-ph--has-photo {
  min-height: 0;
  padding: 0;
  border-style: solid;
  overflow: hidden;
  aspect-ratio: 1;
}
.nb-ph--has-photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 20%;
}
.nb-ph--initials {
  min-height: 0;
  aspect-ratio: 1;
  align-items: center;
  justify-content: center;
  background: color-mix(in srgb, var(--site-teal) 12%, #fff);
  border-style: solid;
}
.nb-ph--initials .nb-ph__label {
  font-size: 1.4rem;
  letter-spacing: .06em;
  color: var(--site-teal);
}
.nb-team-card__role {
  margin: 0 0 6px;
  font-size: var(--fs-small);
  font-weight: 650;
  color: var(--site-navy);
}
.nb-team-card__photo,
.nb-resource-person .nb-team-card__photo {
  display: block;
  width: 96px;
  height: 96px;
  border-radius: 50%;
  object-fit: cover;
  object-position: 50% 18%;
  flex-shrink: 0;
}
.nb-team-card__initials {
  width: 96px;
  height: 96px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  background: color-mix(in srgb, var(--site-teal) 14%, #fff);
  color: var(--site-teal);
  font-weight: 700;
  letter-spacing: .06em;
  flex-shrink: 0;
}
.nb-tim-band {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 20px 28px;
  align-items: center;
  margin-top: 28px;
  padding: 22px 24px;
  background: #fff;
  border: 1px solid rgba(48, 53, 52, .12);
  border-radius: var(--site-radius-lg);
}
.nb-tim-band__photo img {
  display: block;
  width: 120px;
  height: 120px;
  border-radius: 50%;
  object-fit: cover;
  object-position: 50% 18%;
}
.nb-tim-band__attr {
  margin: 8px 0 0;
  font-size: var(--fs-small);
  font-weight: 650;
}
@media (max-width: 640px) {
  .nb-tim-band { grid-template-columns: 1fr; }
}

.nb-resource-stages { margin-top: 28px; display: grid; gap: 10px; }
.nb-resource-stage {
  border: 1px solid rgba(48, 53, 52, .12) !important;
  border-radius: var(--site-radius-lg) !important;
  background: #fff !important;
  overflow: hidden;
}
.nb-resource-stage > summary {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px 14px;
  padding: 16px 18px !important;
  font-size: 1.05rem;
  list-style: none;
}
.nb-resource-stage > summary::-webkit-details-marker { display: none; }
.nb-resource-stage__n {
  font-size: .75rem;
  font-weight: 800;
  letter-spacing: .1em;
  color: var(--site-gold);
}
.nb-resource-stage__who {
  flex: 1 1 100%;
  font-size: var(--fs-small);
  font-weight: 500;
  color: var(--site-ink-soft);
}
.nb-resource-stage__body {
  padding: 0 18px 22px;
  border-top: 1px solid rgba(48, 53, 52, .08);
}
.nb-resource-stage__body > *:first-child { margin-top: 16px; }
.nb-resource-person {
  display: flex;
  gap: 16px;
  align-items: flex-start;
  margin-top: 20px;
  padding: 16px;
  background: var(--site-cream);
  border-radius: var(--site-radius);
}
.nb-resource-person--stack { flex-direction: column; align-items: flex-start; }
.nb-send-buyer--inline {
  margin: 18px 0;
  background: var(--site-cream);
  border: 1px solid rgba(48, 53, 52, .1);
  color: var(--site-charcoal);
  padding: 22px;
}
.nb-send-buyer--inline label { color: var(--site-navy); }
.nb-send-buyer--inline input,
.nb-send-buyer--inline textarea {
  width: 100%;
  margin: 4px 0 12px;
  padding: 10px 12px;
  border: 1px solid rgba(48, 53, 52, .18);
  border-radius: 8px;
  font: inherit;
}


/* ==========================================================================
   Partner Resources - stage accordion and team cards
   Used by content/partners/partner-resources.html
   ========================================================================== */

.nb-res-map-head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-end;
  gap: 18px;
  margin-bottom: 24px;
}

.nb-res-stack { display: grid; gap: 10px; }

.nb-stage {
  background: #fff;
  border: 1px solid rgba(48, 53, 52, .12);
  border-radius: var(--site-radius-lg);
  overflow: hidden;
  scroll-margin-top: 80px;
  transition: border-color .15s, box-shadow .15s;
}
.nb-stage:hover { border-color: rgba(48, 53, 52, .22); }
.nb-stage[open] { border-color: var(--site-teal); box-shadow: 0 2px 14px rgba(10, 31, 61, .06); }

.nb-stage__summary {
  list-style: none;
  cursor: pointer;
  padding: 18px 22px;
  display: grid;
  grid-template-columns: 34px auto 1fr 28px;
  align-items: center;
  gap: 16px;
  min-height: 44px;
}
.nb-stage__summary::-webkit-details-marker { display: none; }

.nb-stage__num {
  font-size: 1rem;
  font-weight: 700;
  color: var(--site-ink-soft);
  letter-spacing: -.01em;
  font-variant-numeric: tabular-nums;
}
.nb-stage[open] .nb-stage__num { color: var(--site-teal); }

.nb-stage__faces { display: flex; }

.nb-stage__av {
  width: 42px;
  height: 42px;
  border-radius: 50%;
  overflow: hidden;
  background: color-mix(in srgb, var(--site-teal) 12%, #fff);
  border: 2px solid #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
  font-weight: 700;
  color: var(--site-teal);
  flex-shrink: 0;
}
.nb-stage__av:not(:first-child) { margin-left: -12px; }
.nb-stage__av img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nb-stage__av--ghost { background: var(--site-cream); color: var(--site-ink-soft); font-size: 16px; }
.nb-stage__av--initials { font-size: 13px; }

.nb-stage__info { display: flex; flex-direction: column; gap: 2px; }
.nb-stage__title { font-size: 1rem; font-weight: 600; color: var(--site-charcoal); line-height: 1.3; }
.nb-stage__sub { font-size: .8rem; color: var(--site-ink-soft); }

.nb-stage__toggle {
  color: var(--site-teal);
  font-size: 1.3rem;
  font-weight: 300;
  text-align: center;
  line-height: 1;
  transition: transform .2s;
}
.nb-stage[open] .nb-stage__toggle { transform: rotate(45deg); }

.nb-stage__body {
  border-top: 1px solid rgba(48, 53, 52, .08);
  padding: 24px 22px 28px;
  display: grid;
  grid-template-columns: 1fr 256px;
  gap: 32px;
  align-items: start;
}
.nb-stage__body--solo { grid-template-columns: 1fr; }

.nb-stage__content { min-width: 0; }
.nb-stage__side { min-width: 0; }

.nb-stage__claims {
  list-style: none;
  padding: 0;
  margin: 16px 0 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.nb-stage__claims li { display: flex; gap: 12px; align-items: flex-start; }
.nb-stage__ic { font-size: 15px; flex-shrink: 0; width: 22px; text-align: center; line-height: 1.55; opacity: .8; }

.nb-stage__key {
  margin: 16px 0 0;
  background: var(--site-cream);
  border: 1px solid rgba(48, 53, 52, .1);
  border-radius: var(--site-radius);
  padding: 12px 15px;
  font-size: var(--fs-small);
  color: var(--site-ink-soft);
}

.nb-stage__block { margin-top: 24px; }

.nb-stage__block-hd {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: var(--site-ink-soft);
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(48, 53, 52, .1);
  margin-bottom: 14px;
}

.nb-stage__headsup {
  margin-top: 16px;
  padding: 14px 18px;
  border: 1px solid rgba(212, 168, 74, .35);
  border-left: 3px solid var(--site-gold);
  background: color-mix(in srgb, var(--site-gold) 8%, #fff);
  border-radius: var(--site-radius);
}
.nb-stage__headsup-hd {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .09em;
  text-transform: uppercase;
  color: var(--site-gold);
  margin-bottom: 8px;
}

.nb-stage__checklist {
  list-style: none;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  font-size: var(--fs-small);
}
.nb-stage__checklist li { padding-left: 18px; position: relative; }
.nb-stage__checklist li::before {
  content: "\2713";
  position: absolute;
  left: 0;
  color: var(--site-teal);
  font-weight: 700;
  font-size: .8em;
  top: 2px;
}

.nb-stage__draws {
  list-style: none;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.nb-stage__draws li { display: flex; gap: 14px; align-items: flex-start; }

.nb-draw-pct {
  flex-shrink: 0;
  min-width: 42px;
  padding: 4px 8px;
  border-radius: 6px;
  background: var(--site-navy);
  color: #fff;
  font-size: .8rem;
  font-weight: 700;
  text-align: center;
}

.nb-draw-note {
  display: block;
  font-size: .78rem;
  color: var(--site-ink-soft);
  margin-top: 4px;
}

.nb-stage__forms-list {
  list-style: none;
  padding: 0;
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(48, 53, 52, .1);
  border-radius: var(--site-radius);
  overflow: hidden;
}
.nb-stage__forms-list li {
  padding: 12px 15px;
  border-bottom: 1px solid rgba(48, 53, 52, .08);
  font-size: var(--fs-small);
}
.nb-stage__forms-list li:last-child { border-bottom: none; }

.nb-stage__note {
  font-size: var(--fs-micro);
  color: var(--site-ink-soft);
}

/* Stage contact card */
.nb-stage-card {
  background: var(--site-cream);
  border: 1px solid rgba(48, 53, 52, .1);
  border-radius: var(--site-radius);
  padding: 16px;
}
.nb-stage-card__top {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-bottom: 10px;
}
.nb-stage-card__av {
  width: 54px;
  height: 54px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  background: color-mix(in srgb, var(--site-teal) 12%, #fff);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 16px;
  font-weight: 700;
  color: var(--site-teal);
}
.nb-stage-card__av img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nb-stage-card__av--initials { font-size: 15px; }
.nb-stage-card__name {
  font-size: 1rem;
  font-weight: 700;
  color: var(--site-navy);
  line-height: 1.2;
}
.nb-stage-card__role {
  font-size: .75rem;
  color: var(--site-teal-dark);
  margin-top: 3px;
  line-height: 1.4;
}
.nb-stage-card__desc {
  font-size: var(--fs-small);
  color: var(--site-ink-soft);
  margin-bottom: 12px;
  line-height: 1.55;
}
.nb-stage-card__contact {
  display: flex;
  flex-direction: column;
}
.nb-stage-card__contact a {
  font-size: .8rem;
  color: var(--site-ink-soft);
  text-decoration: none;
  display: flex;
  gap: 8px;
  align-items: center;
  min-height: 36px;
  word-break: break-all;
  line-height: 1.3;
}
.nb-stage-card__contact a:hover { color: var(--site-teal); }

/* Resource referral form */
.nb-res-form { margin-top: 18px; }
.nb-res-form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  margin-bottom: 12px;
}
.nb-res-form__label {
  display: block;
  font-size: .7rem;
  font-weight: 600;
  letter-spacing: .05em;
  text-transform: uppercase;
  color: var(--site-ink-soft);
  margin-bottom: 5px;
}
.nb-res-form input,
.nb-res-form textarea {
  width: 100%;
  font-family: inherit;
  font-size: var(--fs-small);
  color: var(--site-charcoal);
  background: #fff;
  border: 1px solid rgba(48, 53, 52, .18);
  border-radius: 8px;
  padding: 11px 13px;
  line-height: 1.5;
  min-height: 44px;
  margin-bottom: 12px;
}
.nb-res-form textarea { resize: vertical; min-height: 70px; }
.nb-res-form input:focus,
.nb-res-form textarea:focus {
  outline: none;
  border-color: var(--site-teal);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--site-teal) 12%, #fff);
}

/* Forms index */
.nb-res-forms-index {
  border: 1px solid rgba(48, 53, 52, .1);
  border-radius: var(--site-radius-lg);
  overflow: hidden;
  background: #fff;
  margin-top: 18px;
}
.nb-res-forms-index__empty { padding: 36px 28px; text-align: center; }
.nb-res-forms-index__badge {
  display: inline-block;
  background: color-mix(in srgb, var(--site-gold) 12%, #fff);
  border: 1px solid rgba(212, 168, 74, .35);
  color: var(--site-gold);
  border-radius: 20px;
  padding: 5px 14px;
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  margin-bottom: 14px;
}

/* Team headshot modifiers for builders-dealers.html */
.nb-ph--has-photo {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  overflow: hidden;
  border: 2px solid rgba(48, 53, 52, .1);
  margin: 0 auto 8px;
}
.nb-ph--has-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 15%; display: block; }
.nb-ph--initials {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--site-teal) 12%, #fff);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--site-teal);
  margin: 0 auto 8px;
  border: 2px solid rgba(48, 53, 52, .1);
}
.nb-team-card__role {
  font-size: .75rem;
  color: var(--site-teal-dark);
  font-weight: 600;
  margin: 0 0 6px;
  line-height: 1.4;
}

/* Hero compact for partner-resources page */
.nb-hero--compact .nb-hero__scrim--subtle {
  background: rgba(10, 20, 40, .55);
}

/* Responsive adjustments for stage accordion */
@media (max-width: 820px) {
  .nb-stage__body { grid-template-columns: 1fr; }
  .nb-stage__side { order: -1; }
  .nb-res-form__row { grid-template-columns: 1fr; }
  .nb-stage__summary { grid-template-columns: 28px auto 1fr 24px; gap: 10px; }
}
@media (max-width: 600px) {
  .nb-stage__num { display: none; }
  .nb-stage__summary { grid-template-columns: auto 1fr 22px; }
  .nb-stage__body { padding: 18px 16px 22px; }
}

/* ==========================================================================
   Responsive pass (2026-10). Header fits every desktop width; mobile menu
   sits flush under the bar. Tiers: 1700+ full, 1240-1699 compact, <1240 menu.
   ========================================================================== */
@media (min-width: 1240px) and (max-width: 1699px) {
  .site-nav__inner { gap: 10px; }
  .nav-list > li > a,
  .nav-list > li > button { padding: 0 clamp(6px, .55vw, 9px); font-size: clamp(.94rem, .45vw + .6rem, 1.05rem); gap: 4px; }
  .nav-reviews { padding: 5px 8px !important; }
  .site-nav__phone { font-size: clamp(.94rem, .45vw + .6rem, 1.05rem); }
  .site-nav__actions { gap: 12px; }
  .site-nav__actions .cta-long { display: none; }
  .site-nav__brand img { width: clamp(140px, 11vw, 176px); }
}
@media (min-width: 1240px) and (max-width: 1299px) {
  .nav-reviews__stars { display: none; }
}

/* Homepage hero: keep a readable wash behind the copy when the layout stacks.
   An older rule hid the scrim at <=900px, leaving text on the raw photo. */
@media (max-width: 1100px) {
  .nb-hero--home .nb-hero__scrim {
    display: block !important;
    inset: 0;
    width: 100%;
    background: linear-gradient(
      180deg,
      color-mix(in srgb, var(--site-teal) 90%, #000) 0%,
      color-mix(in srgb, var(--site-teal) 80%, transparent) 50%,
      color-mix(in srgb, var(--site-teal) 60%, transparent) 100%
    );
  }
  .nb-hero--home:has(.nb-hero__media) > .container { position: relative; z-index: 2; }
}

/* Tablet: two-up grids instead of one long column (601-900px). */
@media (min-width: 601px) and (max-width: 900px) {
  .nb-strip__inner { grid-template-columns: 1fr 1fr; column-gap: 32px; }
  .nb-quotes, .nb-vs, .nb-scenarios { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 901px) and (max-width: 1100px) {
  .nb-strip strong { font-size: clamp(1rem, 1.6vw, 1.2rem); }
  .nb-strip__item { padding: 8px 14px; }
}

/* Wide tablets: keep the open menu at a readable width instead of edge to edge. */
@media (min-width: 761px) and (max-width: 1239px) {
  .site-nav__menu > .nav-list { max-width: 860px; margin-inline: auto; }
}

/* Long links and URLs wrap instead of pushing small phones sideways. */
main p, main li, main dd, main td { overflow-wrap: anywhere; }

/* Touch: thumb-sized hit areas without changing the visual layout. */
@media (max-width: 900px), (pointer: coarse) {
  .site-footer li { margin: 0; }
  .site-footer li > a { display: inline-block; padding: 9px 0; }
  .site-footer p > a { display: inline-block; padding-block: 10px; }
  .nb-calc__tabs button { min-height: 44px; }
  .nb-calc input[type="range"] { min-height: 32px; }
  .nb-desk__phone, .nb-proof-bar__link { display: inline-block; padding-block: 10px; }
}

/* ==========================================================================
   Mobile quick-contact bar: Call, Text, Schedule. Phones only, always
   available mid-page. Hidden over the hero (it has the same buttons), near
   the closing CTA band and footer, and while the menu is open.
   ========================================================================== */
.nb-callbar { display: none; }
@media (max-width: 760px) {
  .nb-callbar {
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
    display: grid; grid-template-columns: 56px 56px 1fr; gap: 8px; align-items: stretch;
    padding: 8px max(10px, env(safe-area-inset-left, 0px)) calc(8px + env(safe-area-inset-bottom, 0px)) max(10px, env(safe-area-inset-right, 0px));
    background: var(--site-navy);
    border-top: 1px solid color-mix(in srgb, var(--site-gold) 40%, transparent);
    box-shadow: 0 -6px 20px rgba(0, 0, 0, .18);
    transform: translateY(0); visibility: visible;
    transition: transform .22s ease, visibility 0s linear 0s;
  }
  .nb-callbar[data-state="hidden"] {
    transform: translateY(calc(100% + 4px)); visibility: hidden;
    transition: transform .22s ease, visibility 0s linear .22s;
  }
  .nb-callbar__icon {
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
    min-height: 50px; border-radius: var(--site-radius);
    border: 1px solid rgba(247, 246, 237, .28);
    color: #fff; text-decoration: none; font: 600 .72rem/1 var(--font-body); letter-spacing: .01em;
  }
  .nb-callbar__icon svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
  .nb-callbar__icon:active { background: rgba(247, 246, 237, .12); }
  .nb-callbar__main {
    display: flex; align-items: center; justify-content: center; text-align: center;
    min-height: 50px; padding: 0 12px; border-radius: var(--site-radius);
    background: var(--site-gold); color: var(--site-navy);
    font: 700 1rem/1.15 var(--font-body); text-decoration: none;
  }
  .nb-callbar__main:active { filter: brightness(.94); }
  .nb-callbar a:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
}
@media (max-width: 419px) { .nb-callbar__long { display: none; } }
@media (prefers-reduced-motion: reduce) { .nb-callbar, .nb-callbar[data-state="hidden"] { transition: none; } }
@media print { .nb-callbar { display: none !important; } }

/* ==========================================================================
   Button contrast pass (2026-10).
   1) Every gold fill uses one dark text color (--site-on-gold, 5.8:1).
      White on gold measured 2.2:1 and failed WCAG AA.
   2) Ghost buttons were built for dark banners (white text). On light
      cards and sections they switch to teal text and a teal outline.
   ========================================================================== */
.site-btn--gold,
.site-btn--secondary,
.nb-hero--home .site-btn--primary,
.cta-band .site-btn--primary,
.nb-callbar__main,
.btn-block { color: var(--site-on-gold); }
.site-btn--gold:hover,
.site-btn--secondary:hover,
.nb-hero--home .site-btn--primary:hover,
.cta-band .site-btn--primary:hover,
.btn-block:hover { background: var(--site-gold-hover); color: var(--site-on-gold); }
.site-btn--ghost:hover { color: var(--site-on-gold); }

.nb-already .site-btn--ghost,
.section--white .site-btn--ghost,
.section--ivory .site-btn--ghost {
  color: var(--site-navy);
  border-color: var(--site-navy);
}
.nb-already .site-btn--ghost:hover,
.section--white .site-btn--ghost:hover,
.section--ivory .site-btn--ghost:hover {
  background: var(--site-navy);
  color: #fff;
}

/* ==========================================================================
   Partner Resources: team directory, journey rail, stage summaries (2026-10).
   Without JS the five stages stay a working accordion. With JS, the rail
   becomes the navigation and one stage shows at a time.
   ========================================================================== */
.nb-team-dir {
  margin: 22px 0 26px; padding: 16px 18px;
  background: #fff; border: 1px solid rgba(48, 53, 52, .12); border-radius: var(--site-radius-lg);
}
.nb-team-dir__hd { margin: 0 0 12px; font-size: .9rem; font-weight: 700; color: var(--site-navy); }
.nb-team-dir__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px 18px; }
.nb-team-dir__p { display: flex; gap: 10px; align-items: flex-start; min-width: 0; }
.nb-team-dir__av {
  width: 44px; height: 44px; border-radius: 50%; overflow: hidden; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  background: color-mix(in srgb, var(--site-teal) 12%, #fff); color: var(--site-teal-dark);
  font-size: .8rem; font-weight: 700;
}
.nb-team-dir__av img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nb-team-dir__txt { display: flex; flex-direction: column; min-width: 0; font-size: .82rem; line-height: 1.4; }
.nb-team-dir__txt strong { font-size: .92rem; color: var(--site-charcoal); }
.nb-team-dir__txt span { color: var(--site-ink-soft); margin-bottom: 2px; }
.nb-team-dir__txt a { color: var(--site-teal-dark); font-weight: 600; text-decoration: none; overflow-wrap: anywhere; padding: 2px 0; }
.nb-team-dir__txt a:hover { text-decoration: underline; }

.nb-journey { margin: 0 0 18px; }
.nb-journey__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); position: relative; }
.nb-journey__list::before {
  content: ""; position: absolute; left: 10%; right: 10%; top: 25px; height: 2px;
  background: color-mix(in srgb, var(--site-teal) 30%, transparent);
}
.nb-journey__stop {
  position: relative; display: flex; flex-direction: column; align-items: center; text-align: center;
  gap: 2px; padding: 0 4px 10px; text-decoration: none; color: var(--site-ink-soft); border-radius: var(--site-radius);
}
.nb-journey__dot {
  width: 52px; height: 52px; border-radius: 50%; overflow: hidden; margin-bottom: 6px;
  display: flex; align-items: center; justify-content: center;
  background: #fff; border: 2px solid color-mix(in srgb, var(--site-teal) 30%, #fff);
  color: var(--site-teal-dark); font-weight: 700; font-size: .85rem;
  transition: border-color .15s, box-shadow .15s;
}
.nb-journey__dot img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nb-journey__n { font-size: .72rem; font-weight: 700; color: var(--site-gold-dark); letter-spacing: .02em; }
.nb-journey__lb { font-size: .92rem; font-weight: 700; color: var(--site-charcoal); line-height: 1.25; }
.nb-journey__who { font-size: .78rem; }
.nb-journey__stop:hover .nb-journey__dot { border-color: var(--site-teal); }
.nb-journey__stop[aria-current="step"] .nb-journey__dot { border: 3px solid var(--site-teal); box-shadow: 0 0 0 4px color-mix(in srgb, var(--site-teal) 15%, transparent); }
.nb-journey__stop[aria-current="step"] .nb-journey__lb { color: var(--site-teal-dark); }
.nb-journey__stop[aria-current="step"]::after {
  content: ""; position: absolute; bottom: 0; left: 30%; right: 30%; height: 3px; border-radius: 3px; background: var(--site-gold);
}
.nb-journey__stop:focus-visible { outline: 3px solid var(--site-teal); outline-offset: 2px; }

.nb-trio { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 0 0 18px; }
.nb-trio__col { background: var(--site-cream); border-radius: var(--site-radius); padding: 14px 16px; }
.nb-trio__hd { margin: 0 0 8px; font-size: .8rem; font-weight: 700; color: var(--site-teal-dark); }
.nb-trio__hd span { color: var(--site-gold-dark); margin-right: 2px; }
.nb-trio ul { margin: 0; padding-left: 18px; }
.nb-trio li { font-size: .92rem; line-height: 1.45; margin: 0 0 6px; color: var(--site-charcoal); }
.nb-trio li:last-child { margin-bottom: 0; }

.nb-stage__more { border: 1px solid rgba(48, 53, 52, .12); border-radius: var(--site-radius); }
.nb-stage__more > summary {
  cursor: pointer; list-style: none; padding: 13px 16px; min-height: 44px; box-sizing: border-box;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  font-weight: 700; font-size: .92rem; color: var(--site-teal-dark);
}
.nb-stage__more > summary::-webkit-details-marker { display: none; }
.nb-stage__more > summary::after { content: "+"; font-size: 1.3rem; font-weight: 400; line-height: 1; transition: transform .2s; }
.nb-stage__more[open] > summary::after { transform: rotate(45deg); }
.nb-stage__more[open] > summary { border-bottom: 1px solid rgba(48, 53, 52, .08); }
.nb-stage__more-body { padding: 16px; }

/* One stage at a time once JS is running */
.nb-res-stack.is-tabs .nb-stage:not(.is-current) { display: none; }
.nb-res-stack.is-tabs .nb-stage__summary { cursor: default; grid-template-columns: auto 1fr; }
.nb-res-stack.is-tabs .nb-stage__num,
.nb-res-stack.is-tabs .nb-stage__toggle { display: none; }
.nb-res-stack.is-tabs .nb-stage__title { font-size: 1.2rem; }
.nb-res-stack.is-tabs .nb-stage__sub { font-size: .9rem; }
.nb-stage__pager { display: flex; justify-content: space-between; gap: 12px; margin-top: 14px; }
.nb-stage__pager a { font-weight: 700; font-size: .92rem; color: var(--site-teal-dark); text-decoration: none; padding: 10px 2px; }
.nb-stage__pager a:hover { text-decoration: underline; }

@media (max-width: 960px) {
  .nb-team-dir__list { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  .nb-trio { grid-template-columns: 1fr; gap: 8px; }
  .nb-journey { margin-inline: calc(-1 * var(--site-gutter)); }
  .nb-journey__list {
    display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 4px;
    padding: 0 var(--site-gutter); scrollbar-width: none;
  }
  .nb-journey__list::-webkit-scrollbar { display: none; }
  .nb-journey__list::before { left: 40px; right: 40px; }
  .nb-journey__list > li { flex: 0 0 31%; scroll-snap-align: center; }
  .nb-journey__dot { width: 46px; height: 46px; }
  .nb-journey__list::before { top: 22px; }
}
@media (max-width: 520px) {
  .nb-team-dir__list { grid-template-columns: 1fr; }
}
.nb-journey { scroll-margin-top: calc(var(--nav-h, 80px) + 12px); }
.nb-stage__pager { padding: 0 22px 18px; margin-top: 0; }
.nb-stage__body--solo > p:first-of-type { font-size: 1rem; line-height: 1.6; margin-top: 0; }
@media (max-width: 760px) {
  .nb-journey__list { position: relative; }
  .nb-res-stack.is-tabs .nb-stage__side { order: 2; }
  .nb-stage__pager { padding: 0 16px 16px; }
}
@media (max-width: 520px) {
  .nb-team-dir { padding: 14px; }
  .nb-team-dir__list { grid-template-columns: 1fr 1fr; gap: 14px 10px; }
  .nb-team-dir__p { flex-direction: column; gap: 6px; }
  .nb-team-dir__txt a[href^="mailto:"] { display: none; }
}

/* ==========================================================================
   Typography system pass (2026-10). One style per role, sitewide.
   - Labels (eyebrow + kicker): 14px, 700, tracked caps. Broader "lead
     paragraph" rules were inflating kickers to 22px on 41 pages.
   - Split-banner H1 and band/serve-group H2 had no styles at all and fell
     back to browser defaults (700 weight, loose 1.35 line height).
   ========================================================================== */
main .nb-kicker.nb-kicker,
main .nb-hero__eyebrow.nb-hero__eyebrow {
  font-size: var(--fs-kicker);
  font-weight: 700;
  letter-spacing: .14em;
  line-height: 1.35;
  text-transform: uppercase;
  max-width: none;
}
main .nb-kicker.nb-kicker { margin: 0 0 10px; }

.nb-pane__copy h1 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: var(--fs-h1-pane);
  line-height: 1;
  letter-spacing: -.035em;
}
.nb-pane--cream .nb-pane__copy h1,
.nb-pane--gold .nb-pane__copy h1 { color: var(--site-navy); }

.nb-band h2,
.nb-serve-group h2,
.nb-after h2 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: var(--fs-h2);
  line-height: var(--lh-display);
  letter-spacing: -.03em;
  margin: 0 0 .45em;
}
.nb-band--cream h2, .nb-band--white h2, .nb-band--gold h2,
.nb-serve-group h2, .nb-after h2 { color: var(--site-navy); }
.nb-hero-split h2 { font-weight: 800; line-height: 1.02; letter-spacing: -.03em; }

/* Section headlines that follow other content get room above them. */
.nb-band__inner > * + h2,
.nb-prose > * + h2 { margin-top: 1.1em; }

/* Partner Resources banner: copy left, team directory right. */
.nb-pr-hero { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(28px, 4vw, 56px); align-items: center; }
.nb-pr-hero__copy h1 { max-width: none; }
.nb-pr-hero__note { margin: 22px 0 0; font-size: var(--fs-small); color: rgba(247, 246, 237, .82); max-width: 40rem; }
.nb-pr-hero__note strong { color: #fff; }
.nb-pr-hero__note a { color: var(--site-gold); }
.nb-team-dir--hero { margin: 0; box-shadow: 0 12px 32px rgba(0, 0, 0, .18); border: 0; color: var(--site-charcoal); }
.nb-team-dir--hero .nb-team-dir__list { grid-template-columns: 1fr 1fr; gap: 16px 18px; }
.nb-res-map-head { margin-bottom: 22px; }
.nb-res-map-head h2 { margin-bottom: .3em; }
.nb-res-map-head__sub { margin: 0; font-size: var(--fs-lead); line-height: var(--lh-prose); color: var(--site-ink-soft); max-width: 40rem; }
@media (max-width: 1000px) {
  .nb-pr-hero { grid-template-columns: 1fr; }
  .nb-team-dir--hero { max-width: 640px; }
}
.nb-res-map-head { display: block; }
.nb-team-dir--hero .nb-team-dir__list { grid-template-columns: 1fr; gap: 0; }
.nb-team-dir--hero .nb-team-dir__p { padding: 10px 0; border-top: 1px solid rgba(48, 53, 52, .08); align-items: center; }
.nb-team-dir--hero .nb-team-dir__p:first-child { border-top: 0; padding-top: 2px; }
.nb-team-dir--hero .nb-team-dir__txt { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 12px; }
.nb-team-dir--hero .nb-team-dir__txt strong { grid-column: 1; }
.nb-team-dir--hero .nb-team-dir__txt span { grid-column: 1; margin: 0; }
.nb-team-dir--hero .nb-team-dir__txt a { grid-column: 2; text-align: right; overflow-wrap: normal; white-space: nowrap; }
.nb-team-dir--hero .nb-team-dir__txt a[href^="tel:"] { grid-row: 1; }
.nb-team-dir--hero .nb-team-dir__txt a[href^="mailto:"] { grid-row: 2; font-weight: 500; font-size: .78rem; }
@media (max-width: 520px) {
  .nb-team-dir--hero .nb-team-dir__txt { display: flex; }
  .nb-team-dir--hero .nb-team-dir__txt a { text-align: left; }
  .nb-team-dir--hero .nb-team-dir__list { grid-template-columns: 1fr 1fr; gap: 12px 10px; }
  .nb-team-dir--hero .nb-team-dir__p { border-top: 0; padding: 0; align-items: flex-start; }
}
.nb-team-dir--hero .nb-team-dir__txt { flex: 1; }
/* Heads-up callouts match the checklist they sit beside. */
.nb-stage__headsup p { font-size: var(--fs-small); line-height: 1.5; margin: 0 0 8px; }
.nb-stage__headsup p:last-child { margin-bottom: 0; }

/* ==========================================================================
   Homepage review pass (Jennifer's notes, 2026-10)
   ========================================================================== */
/* #5 Situation and partner doorways as outlined buttons */
.nb-dealer-line { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: 28px 0 0; }
.nb-after .site-btn--ghost { color: var(--site-navy); border-color: var(--site-navy); }
.nb-after .site-btn--ghost:hover { background: var(--site-navy); color: #fff; }

/* #7 Why NewBuild: subheads lead, supporting sentence follows */
.nb-feat { gap: 20px; }
.nb-feat h3 {
  font-family: var(--font-display); font-weight: 800; letter-spacing: -.02em;
  font-size: clamp(1.25rem, 1.6vw, 1.6rem); line-height: 1.15; color: var(--site-navy); margin: 0 0 4px;
}
.nb-feat p { font-size: 1rem; line-height: 1.55; color: var(--site-ink-soft); }

/* #8 Next step after Why NewBuild */
.nb-why-next { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 22px; margin-top: 26px; }
.nb-why-next .site-btn--ghost { color: var(--site-navy); border-color: var(--site-navy); }
.nb-why-next .site-btn--ghost:hover { background: var(--site-navy); color: #fff; }
.nb-why-next__link { font-weight: 700; color: var(--site-teal-dark); text-decoration: underline; text-underline-offset: 3px; padding: 10px 0; }

/* #11 Home types as a checklist under the programs headline */
.nb-checks { list-style: none; display: flex; flex-wrap: wrap; gap: 8px 22px; padding: 0; margin: 0 0 26px; }
.nb-checks li { position: relative; padding-left: 26px; font-weight: 700; font-size: 1.05rem; color: var(--site-charcoal); }
.nb-checks li::before { content: "\2713"; position: absolute; left: 0; top: 0; color: var(--site-gold-dark); font-weight: 800; }

/* #10 Disclaimer: smaller but still readable */
main p.nb-fineprint { font-size: .875rem; line-height: 1.55; color: var(--site-ink-soft); max-width: 60rem; margin-top: 22px; }

/* #14 Approach answers get paragraph breaks */
.nb-watch__a p { margin: 0 0 .85em; }
.nb-watch__a p:last-child { margin-bottom: 0; }

/* #15 Every plain FAQ question shows the same gold expand cue */
:where(section details > summary:not([class]))::after {
  content: "+"; float: right; margin-left: 16px; font-weight: 500; color: var(--site-gold);
}
:where(section details[open] > summary:not([class]))::after { content: "\2212"; }
.section .container > p.nb-fineprint,
main p.nb-fineprint.nb-fineprint { font-size: .875rem; line-height: 1.55; }
/* Balanced headline wrapping: no single orphaned word on the last line */
main h1, main h2, main h3 { text-wrap: balance; }
/* Hero bullets are the key value statements: match the intro line */
.nb-hero .nb-hero__hook p, .nb-hero--home .nb-hero__hook p { font-size: clamp(1.02rem, 1.25vw, 1.2rem); line-height: 1.45; }
@media (min-width: 901px) {
  .nb-strip strong { font-size: clamp(1.1rem, 1.55vw, 1.45rem); }
}

/* ==========================================================================
   FAQ convention (sitewide): "FAQ" label + "Frequently asked questions".
   Questions and answers share one readable width so answers never sit in a
   narrow column beside a full-width question bar.
   ========================================================================== */
.nb-faq-head { margin-top: clamp(36px, 4vw, 56px); }
.nb-faq-head h2 { margin-bottom: .35em; }
section details:has(> .site-faq__a) { max-width: 60rem; }
section details > .site-faq__a { max-width: none; }
section details > .site-faq__a p { max-width: none; }

/* Outline buttons on photo and teal banners: bolder white edge so they read
   as buttons, not floating text. */
.nb-hero .site-btn--ghost { border: 2px solid rgba(255, 255, 255, .9); color: #fff; }
.nb-hero .site-btn--ghost:hover { background: #fff; color: var(--site-teal-dark); border-color: #fff; }

/* All Loans page */
.nb-checks--hero { margin: 4px 0 18px; }
.nb-hero .nb-checks li { color: #fff; }
.nb-hero .nb-checks li::before { color: var(--site-gold); }
.nb-programs-note { margin: 24px 0 0; text-align: center; }
.nb-rail--3 { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 900px) { .nb-rail--3 { grid-template-columns: 1fr; } }
/* Keep the FAQ "+" beside the question even when the question wraps. */
:where(section details > summary:not([class])) { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
:where(section details > summary:not([class]))::after { float: none; margin-left: 0; flex-shrink: 0; }
/* "Building something specific?" links under the program cards */
.nb-situations { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px 12px; margin: 28px 0 0; }
.nb-situations span { font-weight: 700; color: var(--site-charcoal); margin-right: 4px; }
.nb-situations a {
  display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: 999px;
  border: 1.5px solid var(--site-navy); color: var(--site-navy); font-weight: 700; font-size: .95rem; text-decoration: none;
}
.nb-situations a:hover { background: var(--site-navy); color: #fff; }
.nb-programs-note { margin-top: 16px; }

/* VA page review (Jennifer, 2026-10) */
/* "Is this for you?" lists: bold lead phrase, lighter detail */
.nb-fit { list-style: none; padding: 0; margin: 0; display: grid; gap: 14px; }
.nb-fit li { position: relative; padding-left: 30px; line-height: 1.45; }
.nb-fit li strong { display: block; font-size: 1.05rem; color: var(--site-charcoal); }
.nb-fit li span { display: block; font-size: .95rem; color: var(--site-ink-soft); margin-top: 2px; }
.nb-vs__card--good .nb-fit li::before { content: "\2713"; position: absolute; left: 2px; top: 1px; color: var(--site-teal); font-weight: 800; }
.nb-vs__card--bad .nb-fit li::before { content: "!"; position: absolute; left: 6px; top: 1px; color: var(--site-gold-dark); font-weight: 800; }

/* Case studies: show the full story, credit line pinned to the bottom */
.nb-case > p:not(.nb-case__badge):not(.nb-case__meta) {
  display: block; -webkit-line-clamp: unset; overflow: visible; flex: 0 1 auto; font-size: 1rem; line-height: 1.6;
}
.nb-case__meta { margin-top: auto; padding-top: 14px; }

/* Paragraph that follows an FAQ list */
.nb-faq-after { margin-top: 26px; max-width: 60rem; }

/* "Your guide": the team as the guide (VA page) */
.nb-crew__lead { max-width: 52rem; }
.nb-crew { list-style: none; padding: 0; margin: 28px 0 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.nb-crew__p { background: #fff; border-radius: var(--site-radius-lg); padding: 22px 16px; text-align: center; box-shadow: 0 1px 0 rgba(48, 53, 52, .06); }
.nb-crew__av {
  width: 88px; height: 88px; margin: 0 auto 12px; border-radius: 50%; overflow: hidden;
  display: flex; align-items: center; justify-content: center;
  background: color-mix(in srgb, var(--site-teal) 12%, #fff); color: var(--site-teal-dark); font-weight: 800; font-size: 1.4rem;
}
.nb-crew__av img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nb-crew__p p { margin: 0; }
.nb-crew__name { font-weight: 800; font-size: 1.05rem; color: var(--site-charcoal); }
.nb-crew__role { font-size: .82rem; color: var(--site-ink-soft); margin-top: 2px !important; line-height: 1.35; }
.nb-crew__job { font-size: .92rem; color: var(--site-teal-dark); font-weight: 600; margin-top: 10px !important; line-height: 1.4; }
.nb-crew__proof { list-style: none; padding: 0; margin: 26px 0 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 36px; }
.nb-crew__proof li { color: var(--site-ink-soft); font-size: .98rem; }
.nb-crew__proof strong { color: var(--site-navy); font-size: 1.15rem; margin-right: 4px; }
@media (max-width: 1100px) { .nb-crew { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px) { .nb-crew { grid-template-columns: 1fr 1fr; } .nb-crew__av { width: 72px; height: 72px; } }

/* Dealer callout: visibly a different audience, not another borrower section */
.nb-partner-callout { background: var(--site-cream); padding: 22px 0; }
.nb-partner-callout .container {
  display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 10px 20px;
  border: 2px dashed color-mix(in srgb, var(--site-teal) 45%, transparent); border-radius: var(--site-radius-lg); padding-block: 18px;
}
.nb-partner-callout p { margin: 0; }
.nb-partner-callout__label {
  font-size: var(--fs-kicker); font-weight: 700; letter-spacing: .14em; text-transform: uppercase;
  color: #fff; background: var(--site-teal); padding: 5px 12px; border-radius: 999px;
}
.nb-partner-callout__text { font-weight: 700; color: var(--site-charcoal); }
.nb-partner-callout__link { font-weight: 700; color: var(--site-teal-dark); text-decoration: underline; text-underline-offset: 3px; padding: 8px 0; }

/* "One team, start to finish" (VA page, option B) */
.nb-oneteam { text-align: center; }
.nb-oneteam .nb-kicker, .nb-oneteam h2 { margin-left: auto; margin-right: auto; }
.nb-faces { list-style: none; padding: 0; margin: 22px 0 22px; display: flex; justify-content: center; }
.nb-faces__f {
  width: 96px; height: 96px; border-radius: 50%; overflow: hidden; margin-left: -18px;
  border: 4px solid var(--site-cream); background: color-mix(in srgb, var(--site-teal) 14%, #fff);
  display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 14px rgba(0, 0, 0, .08);
}
.nb-faces__f:first-child { margin-left: 0; }
.nb-faces__f img { width: 100%; height: 100%; object-fit: cover; display: block; }
.nb-faces__f span { font-weight: 800; font-size: 1.5rem; color: var(--site-teal-dark); }
.nb-oneteam__lead { max-width: 44rem; margin: 0 auto; }
.nb-oneteam__call { margin: 22px 0 0; font-weight: 600; }
.nb-oneteam__call a { color: var(--site-teal-dark); font-weight: 800; }
@media (max-width: 520px) { .nb-faces__f { width: 68px; height: 68px; margin-left: -14px; } .nb-faces__f span { font-size: 1.1rem; } }
.section--white .nb-faces__f { border-color: #fff; }

/* Case studies: short summary, full story on request */
.nb-case__sum { font-size: 1rem; line-height: 1.55; color: var(--site-charcoal); margin: 0 0 12px; }
.nb-case__more { border: 0 !important; margin: 0 0 4px; }
.nb-case__toggle {
  cursor: pointer; list-style: none; display: inline-flex; align-items: center; gap: 8px; padding: 8px 0 !important;
  font-weight: 700 !important; font-size: .95rem !important; color: var(--site-teal-dark);
}
.nb-case__toggle::-webkit-details-marker { display: none; }
.nb-case__toggle::after { content: "+"; color: var(--site-gold-dark); font-weight: 600; font-size: 1.15rem; line-height: 1; }
.nb-case__more[open] .nb-case__toggle::after { content: "\2212"; }
.nb-case__more p { font-size: .95rem; line-height: 1.6; color: var(--site-ink-soft); margin: 6px 0 0; }
.nb-cases { align-items: start; }
/* Case study placeholders (removed once real stories are in) */
.nb-case__pill { display: inline-block; margin: 0 0 10px; padding: 3px 10px; border-radius: 999px; font-size: .72rem; font-weight: 700; background: #fff4d6; color: #7a5a14; border: 1px dashed #c99a48; }
.nb-case--placeholder { outline: 2px dashed color-mix(in srgb, var(--site-gold) 55%, transparent); outline-offset: -2px; }
.section--white .nb-case { background: var(--site-cream); }
.nb-case__meta a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
.nb-case__meta a:hover { color: var(--site-teal); }
/* Two case studies: two columns instead of leaving an empty third slot */
@media (min-width: 961px) { .nb-cases:has(> .nb-case:nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ==========================================================================
   Builders and Dealers rebuild (Jennifer's notes, 2026-10)
   ========================================================================== */
.nb-bd-quote { margin: 30px 0 0; padding: 22px 26px; border-left: 4px solid var(--site-gold); background: rgba(255, 255, 255, .06); border-radius: 0 var(--site-radius-lg) var(--site-radius-lg) 0; max-width: 46rem; }
.nb-bd-quote p { font-size: clamp(1.1rem, 1.5vw, 1.3rem); line-height: 1.5; font-style: italic; color: #fff; margin: 0 0 10px; }
.nb-bd-quote footer { font-size: .9rem; color: var(--site-gold); font-weight: 600; }

.nb-feat3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; margin-top: 8px; }
.nb-feat3 article { background: var(--site-cream); border-radius: var(--site-radius-lg); padding: 24px 22px; border-top: 4px solid var(--site-gold); }
.nb-feat3 h3 { font-family: var(--font-display); font-weight: 800; font-size: clamp(1.15rem, 1.5vw, 1.4rem); line-height: 1.2; color: var(--site-navy); margin: 0 0 10px; letter-spacing: -.015em; }
.nb-feat3 p { margin: 0; font-size: 1rem; line-height: 1.55; color: var(--site-ink-soft); }

.nb-bd-proof { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2.2fr); gap: 22px; align-items: stretch; margin: 6px 0 22px; }
.nb-bd-stat { background: var(--site-teal); color: #fff; border-radius: var(--site-radius-lg); padding: 26px 24px; display: flex; flex-direction: column; justify-content: center; }
.nb-bd-stat strong { font-family: var(--font-display); font-weight: 800; font-size: clamp(3.5rem, 6vw, 5rem); line-height: .9; color: var(--site-gold); }
.nb-bd-stat span { margin-top: 10px; font-size: 1.02rem; line-height: 1.4; font-weight: 600; }
.nb-bd-dealers { background: #fff; border-radius: var(--site-radius-lg); padding: 22px 24px; }
.nb-bd-dealers__list { list-style: none; padding: 0; margin: 0 0 14px; display: flex; flex-wrap: wrap; gap: 8px; }
.nb-bd-dealers__list li { padding: 7px 14px; border-radius: 999px; background: var(--site-cream); border: 1px solid rgba(48, 53, 52, .1); font-weight: 600; font-size: .92rem; color: var(--site-charcoal); }
.nb-bd-dealers p { margin: 0; color: var(--site-ink-soft); font-size: .98rem; }
.nb-bd-story { background: #fff; border-radius: var(--site-radius-lg); padding: 22px 24px; margin-top: 22px; }
.nb-bd-story > p:not(.nb-ev-label) { margin: 6px 0 4px; }

.nb-rail__num { font-family: var(--font-display); font-weight: 800; font-size: 1.6rem; color: var(--site-teal-dark); }

.nb-already h3 { margin: 0 0 4px; font-size: 1.1rem; }
.nb-already p { margin: 0; color: var(--site-ink-soft); font-size: var(--fs-small); }
#team .nb-tim-band, #team .nb-already { margin-top: 26px; }
.nb-team-coverage { font-size: .92rem !important; color: var(--site-ink-soft); }

.nb-sendbuyer { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 64px); align-items: start; }
.nb-sendbuyer__contact { list-style: none; padding: 0; margin: 20px 0; display: grid; gap: 10px; }
.nb-sendbuyer__contact li { font-size: 1.05rem; }
.nb-sendbuyer__contact span { display: inline-block; min-width: 54px; font-size: .78rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--site-gold-dark); }
.nb-sendbuyer__contact a { color: var(--site-teal-dark); font-weight: 700; }
.nb-sendbuyer__note { font-size: .95rem; color: var(--site-ink-soft); }
#send-buyer .nb-send-buyer { background: #fff; border-radius: var(--site-radius-lg); box-shadow: 0 10px 30px rgba(0, 0, 0, .08); color: var(--site-charcoal); }

@media (max-width: 900px) {
  .nb-feat3, .nb-bd-proof, .nb-sendbuyer { grid-template-columns: 1fr; }
}
/* Send-a-buyer form on a light background */
#send-buyer .nb-send-buyer { border: 0; padding: 28px 30px; }
#send-buyer .nb-send-buyer h3 { color: var(--site-navy); font-size: 1.35rem; }
#send-buyer .nb-send-buyer .nb-send-buyer__sub { color: var(--site-ink-soft); font-size: .98rem; }
#send-buyer .nb-send-buyer label { color: var(--site-charcoal); font-weight: 700; font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; }
#send-buyer .nb-send-buyer input, #send-buyer .nb-send-buyer textarea {
  background: #fff; color: var(--site-charcoal); border: 1px solid rgba(48, 53, 52, .22); border-radius: var(--site-radius);
}
#send-buyer .nb-send-buyer input:focus, #send-buyer .nb-send-buyer textarea:focus { outline: 3px solid color-mix(in srgb, var(--site-teal) 40%, transparent); border-color: var(--site-teal); }
#send-buyer .nb-send-buyer__note { color: var(--site-ink-soft); font-size: .85rem; }

/* Partner hub doors, builder page pieces */
.nb-doors { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin-top: 8px; }
.nb-door {
  display: flex; flex-direction: column; gap: 8px; padding: 28px 26px; border-radius: var(--site-radius-lg);
  background: var(--site-cream); border: 2px solid transparent; text-decoration: none; color: var(--site-charcoal);
  transition: border-color .15s, transform .15s, box-shadow .15s;
}
.nb-door:hover, .nb-door:focus-visible { border-color: var(--site-teal); transform: translateY(-2px); box-shadow: 0 10px 26px rgba(0, 0, 0, .08); }
.nb-door img { width: 56px; height: auto; }
.nb-door h3 { font-family: var(--font-display); font-weight: 800; font-size: clamp(1.25rem, 1.8vw, 1.6rem); color: var(--site-navy); margin: 4px 0 0; letter-spacing: -.02em; line-height: 1.15; }
.nb-door p { margin: 0; color: var(--site-ink-soft); }
.nb-door__cta { margin-top: auto; padding-top: 10px; font-weight: 800; color: var(--site-teal-dark); }
.nb-vs__card--plan { background: color-mix(in srgb, var(--site-teal) 7%, #fff); border: 1px solid color-mix(in srgb, var(--site-teal) 22%, transparent); }
.nb-vs__card--plan .nb-fit li::before { content: "\2713"; position: absolute; left: 2px; top: 1px; color: var(--site-gold-dark); font-weight: 800; }
.nb-builder-proof { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.nb-builder-proof .nb-bd-story { margin-top: 0; background: var(--site-cream); }
.nb-builder-proof a { color: var(--site-teal-dark); }
.nb-builder-proof__link { display: inline-block; margin-top: 8px; font-weight: 700; padding: 6px 0; }
div.nb-crew__proof { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 36px; margin: 24px 0 0; color: var(--site-ink-soft); }
div.nb-crew__proof strong { color: var(--site-navy); font-size: 1.15rem; margin-right: 4px; }
@media (max-width: 900px) { .nb-doors, .nb-builder-proof { grid-template-columns: 1fr; } }

/* Run-a-deal form uses the same light card as send-a-buyer */
#run-a-deal .nb-send-buyer { background: #fff; border: 0; padding: 28px 30px; border-radius: var(--site-radius-lg); box-shadow: 0 10px 30px rgba(0, 0, 0, .08); color: var(--site-charcoal); }
#run-a-deal .nb-send-buyer h3 { color: var(--site-navy); font-size: 1.35rem; }
#run-a-deal .nb-send-buyer .nb-send-buyer__sub { color: var(--site-ink-soft); font-size: .98rem; }
#run-a-deal .nb-send-buyer label { color: var(--site-charcoal); font-weight: 700; font-size: .78rem; letter-spacing: .06em; text-transform: uppercase; }
#run-a-deal .nb-send-buyer input, #run-a-deal .nb-send-buyer textarea { background: #fff; color: var(--site-charcoal); border: 1px solid rgba(48, 53, 52, .22); border-radius: var(--site-radius); }
#run-a-deal .nb-send-buyer input:focus, #run-a-deal .nb-send-buyer textarea:focus { outline: 3px solid color-mix(in srgb, var(--site-teal) 40%, transparent); border-color: var(--site-teal); }
.section--white#run-a-deal .nb-send-buyer, .section--white#send-buyer .nb-send-buyer { box-shadow: 0 0 0 1px rgba(48, 53, 52, .1), 0 10px 30px rgba(0, 0, 0, .06); }
.nb-oneteam .nb-oneteam__lead + .nb-oneteam__lead { margin-top: 12px; }
.nb-team-hours { margin: 18px 0 0; font-size: .92rem; color: var(--site-ink-soft); }
.nb-team-hours a { color: var(--site-teal-dark); font-weight: 700; }
.nb-team-resources { margin: 10px auto 0; max-width: 44rem; font-size: .95rem; }
.nb-team-resources a { color: var(--site-teal-dark); font-weight: 700; }

/* Hub: compact "Run a deal by us" strip */
.nb-rundeal-strip { background: var(--site-teal); color: #fff; padding: 26px 0; }
.nb-rundeal-strip .container { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.nb-rundeal-strip p { margin: 0; }
.nb-rundeal-strip__label { font-size: var(--fs-kicker); font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--site-teal-dark); background: var(--site-gold); padding: 5px 12px; border-radius: 999px; }
.nb-rundeal-strip__text { flex: 1 1 360px; font-size: 1.05rem; line-height: 1.45; }
.nb-rundeal-strip__actions { display: flex; flex-wrap: wrap; gap: 10px; }
.nb-rundeal-strip__actions a {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border-radius: var(--site-radius);
  border: 2px solid rgba(255, 255, 255, .9); color: #fff; font-weight: 700; text-decoration: none; white-space: nowrap;
}
.nb-rundeal-strip__actions a:hover { background: #fff; color: var(--site-teal-dark); }
.nb-case--wide { max-width: 52rem; background: var(--site-cream); border-left: 4px solid var(--site-gold); }

/* Partner Resources rework (2026-10) */
.nb-stage__ic--dot { width: 8px; height: 8px; border-radius: 50%; background: var(--site-gold); flex-shrink: 0; margin-top: .55em; display: inline-block; }
.nb-team-dir__note { margin: 12px 0 0; padding-top: 12px; border-top: 1px solid rgba(48, 53, 52, .1); font-size: .82rem; line-height: 1.5; color: var(--site-ink-soft); }
.nb-draw-split { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 4px 0 18px; }
.nb-draw-split__col { background: var(--site-cream); border-radius: var(--site-radius); padding: 14px 16px; }
.nb-draw-split__col p { margin: 0; font-size: .95rem; line-height: 1.5; }
.nb-draw-split__hd { font-weight: 800; color: var(--site-navy); margin-bottom: 6px !important; }
.nb-forms-hd { margin: 18px 0 8px; font-weight: 700; font-size: .8rem; letter-spacing: .12em; text-transform: uppercase; color: var(--site-gold-dark); }
.nb-forms-list { columns: 2; column-gap: 32px; margin: 0; padding-left: 20px; }
.nb-forms-list li { margin: 0 0 8px; break-inside: avoid; }
.nb-pr-close { text-align: center; padding-block: clamp(36px, 5vw, 56px); }
.nb-pr-close__q { font-family: var(--font-display); font-weight: 800; font-size: clamp(1.3rem, 2vw, 1.7rem); color: var(--site-navy); margin: 0 0 12px; letter-spacing: -.02em; }
.nb-pr-close__q a { color: var(--site-teal-dark); white-space: nowrap; }
.nb-pr-close__links { margin: 0; color: var(--site-ink-soft); line-height: 1.8; }
.nb-pr-close__links a { color: var(--site-teal-dark); font-weight: 700; }
#refer .nb-stage__body--solo > form { margin-top: 12px; }
@media (max-width: 760px) { .nb-draw-split { grid-template-columns: 1fr; } .nb-forms-list { columns: 1; } }
/* Stage detail panels: one consistent reading size */
.nb-res-stack .nb-stage__more-body p,
.nb-res-stack .nb-stage__more-body li,
.nb-res-stack .nb-stage__more-body .nb-draw-row div,
.nb-res-stack .nb-stage__body--solo > p { font-size: 1rem; line-height: 1.6; }
.nb-res-stack .nb-stage__more-body .nb-draw-row strong { font-size: 1rem; }
.nb-res-stack .nb-stage__draws li > div, .nb-res-stack .nb-stage__draws li > div strong { font-size: 1rem; line-height: 1.55; }
.nb-res-stack .nb-stage__draws .nb-draw-note { font-size: .85rem; }

/* Partner Resources round 2: compact directory, OTC sample, draws tabs, lightbox */
.nb-team-dir--hero { padding: 14px 16px; }
.nb-team-dir--hero .nb-team-dir__hd { margin-bottom: 6px; }
.nb-team-dir--hero .nb-team-dir__p { padding: 7px 0; gap: 10px; }
.nb-team-dir--hero .nb-team-dir__av { width: 36px; height: 36px; font-size: .72rem; }
.nb-team-dir--hero .nb-team-dir__txt { font-size: .8rem; line-height: 1.3; column-gap: 14px; }
.nb-team-dir--hero .nb-team-dir__txt strong { font-size: .9rem; }
.nb-team-dir--hero .nb-team-dir__txt a { padding: 1px 0; }
.nb-team-dir--hero .nb-team-dir__txt a[href^="mailto:"] { font-size: .8rem; font-weight: 700; }
.nb-pr-hero { grid-template-columns: minmax(0, 1fr) minmax(320px, 420px); }
@media (max-width: 1100px) { .nb-pr-hero { grid-template-columns: 1fr; } .nb-team-dir--hero { max-width: 560px; } }
@media (max-width: 520px) {
  .nb-team-dir--hero .nb-team-dir__list { grid-template-columns: 1fr; gap: 0; }
  .nb-team-dir--hero .nb-team-dir__p { flex-direction: row; align-items: center; border-top: 1px solid rgba(48, 53, 52, .08); padding: 8px 0; }
  .nb-team-dir--hero .nb-team-dir__p:first-child { border-top: 0; }
  .nb-team-dir--hero .nb-team-dir__txt { display: grid; grid-template-columns: minmax(0, 1fr) auto; }
  .nb-team-dir--hero .nb-team-dir__txt a { text-align: right; }
}

.nb-otc-thumb { display: block; margin: 14px 0 12px; max-width: 520px; text-decoration: none; border-radius: var(--site-radius); overflow: hidden; border: 1px solid rgba(48, 53, 52, .15); background: #fff; }
.nb-otc-thumb img { display: block; width: 100%; height: auto; }
.nb-otc-thumb span { display: block; padding: 8px 12px; font-size: .88rem; font-weight: 700; color: var(--site-teal-dark); background: var(--site-cream); }
.nb-otc-thumb:hover span { text-decoration: underline; }
.nb-lightbox { padding: 0; border: 0; border-radius: 10px; max-width: min(96vw, 1200px); max-height: 94vh; background: #fff; box-shadow: 0 20px 60px rgba(0, 0, 0, .4); }
.nb-lightbox::backdrop { background: rgba(23, 54, 52, .75); }
.nb-lightbox img { display: block; width: 100%; height: auto; max-height: 94vh; object-fit: contain; }
.nb-lightbox__close { position: absolute; top: 8px; right: 8px; width: 40px; height: 40px; border-radius: 50%; border: 0; background: var(--site-teal); color: #fff; font-size: 1.5rem; line-height: 1; cursor: pointer; }

.nb-draws-intro { margin: 0 0 16px; font-size: 1rem; line-height: 1.6; }
.nb-tabs__list { display: inline-flex; gap: 4px; padding: 4px; background: var(--site-cream); border-radius: 999px; margin-bottom: 14px; flex-wrap: wrap; }
.nb-tabs__list [role="tab"] { border: 0; background: transparent; padding: 9px 18px; border-radius: 999px; font: inherit; font-weight: 700; font-size: .92rem; color: var(--site-teal-dark); cursor: pointer; min-height: 40px; }
.nb-tabs__list [role="tab"][aria-selected="true"] { background: var(--site-teal); color: #fff; }
.nb-tabs__list [role="tab"]:focus-visible { outline: 3px solid var(--site-gold); outline-offset: 2px; }
.nb-tabs__hd { margin: 0 0 8px; font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--site-gold-dark); }
.nb-dsteps { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.nb-dsteps li { display: flex; gap: 12px; align-items: flex-start; background: #fff; border: 1px solid rgba(48, 53, 52, .1); border-radius: var(--site-radius); padding: 12px 14px; font-size: 1rem; line-height: 1.5; }
.nb-dstep__tag { flex-shrink: 0; min-width: 46px; text-align: center; padding: 4px 8px; border-radius: 6px; background: var(--site-teal); color: #fff; font-weight: 800; font-size: .85rem; }
.nb-dstep__note { display: block; margin-top: 4px; font-size: .88rem; color: var(--site-ink-soft); }
.nb-tabs__note { margin: 12px 0 0; font-size: .95rem; }
.nb-draw-facts { list-style: none; padding: 0; margin: 18px 0 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.nb-draw-facts li { background: var(--site-cream); border-radius: var(--site-radius); padding: 12px 14px; font-size: .92rem; line-height: 1.45; }
.nb-draw-facts strong { display: block; color: var(--site-navy); }
.nb-draw-forms { margin: 16px 0 0; font-size: .92rem; color: var(--site-ink-soft); }
.nb-draw-forms a { color: var(--site-teal-dark); font-weight: 700; }
@media (max-width: 760px) { .nb-draw-facts { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .nb-team-dir--hero .nb-team-dir__txt a[href^="mailto:"] { display: block; } }
.nb-otc-placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; text-align: center; max-width: 520px; aspect-ratio: 11 / 9; margin: 14px 0 12px; border: 2px dashed color-mix(in srgb, var(--site-gold) 60%, transparent); border-radius: var(--site-radius); background: #fffaf0; color: var(--site-ink-soft); font-size: .92rem; padding: 16px; }
.nb-otc-placeholder strong { color: var(--site-navy); font-size: 1.05rem; }
.nb-otc-placeholder__pill { padding: 3px 10px; border-radius: 999px; font-size: .72rem; font-weight: 700; background: #fff4d6; color: #7a5a14; border: 1px dashed #c99a48; margin-bottom: 6px; }
@media (max-width: 520px) { .nb-team-dir--hero .nb-team-dir__txt a[href^="mailto:"] { display: block; } }

/* ==========================================================================
   Location pages v1 (Johnson City pilot)
   ========================================================================== */
.nb-towns { margin: 4px 0 14px; font-weight: 600; font-size: .95rem; letter-spacing: .02em; opacity: .9; }
.nb-glance { background: #fff; border-radius: var(--site-radius-lg); padding: 18px 22px; margin: 22px 0 8px; border-left: 4px solid var(--site-gold); }
.nb-glance__hd { margin: 0 0 10px !important; font-size: .78rem !important; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--site-gold-dark); }
.nb-glance dl { margin: 0; display: grid; gap: 10px; }
.nb-glance dl > div { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 14px; }
.nb-glance dt { font-weight: 800; color: var(--site-navy); font-size: .95rem; }
.nb-glance dd { margin: 0; font-size: .98rem; line-height: 1.5; }
.nb-checkfirst { display: grid; gap: 12px; margin: 6px 0 4px; }
.nb-checkfirst > div { background: #fff; border-radius: var(--site-radius); padding: 16px 20px; }
.nb-checkfirst h3 { margin: 0 0 6px; font-size: 1.12rem; color: var(--site-navy); }
.nb-checkfirst p { margin: 0; font-size: 1rem; line-height: 1.6; }
.nb-localstories { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 6px 0 10px; }
.nb-localstory { display: flex; flex-direction: column; gap: 6px; background: #fff; border-radius: var(--site-radius); padding: 16px 18px; text-decoration: none; color: var(--site-charcoal); border: 2px solid transparent; transition: border-color .15s; }
.nb-localstory:hover, .nb-localstory:focus-visible { border-color: var(--site-teal); }
.nb-localstory__badge { font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--site-teal-dark); }
.nb-localstory strong { font-size: 1.02rem; line-height: 1.3; color: var(--site-navy); }
.nb-localstory span:last-child { font-size: .92rem; color: var(--site-ink-soft); line-height: 1.45; }
.nb-local-programs { margin: 6px 0 18px; padding-left: 20px; }
.nb-local-programs li { margin: 0 0 8px; }
.nb-limits { background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .14); border-radius: var(--site-radius-lg); padding: 18px 20px; margin: 4px 0 28px; }
.nb-limits__hd { margin: 0 0 12px !important; font-size: .78rem !important; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--site-gold); }
.nb-limits__row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.nb-limits__row div { display: flex; flex-direction: column; }
.nb-limits__row strong { font-family: var(--font-display); font-weight: 800; font-size: clamp(1.4rem, 2.2vw, 1.9rem); color: #fff; line-height: 1.1; }
.nb-limits__row span { font-size: .88rem; opacity: .85; }
.nb-limits__note { margin: 12px 0 0 !important; font-size: .85rem !important; opacity: .8; }
@media (max-width: 760px) {
  .nb-localstories, .nb-limits__row { grid-template-columns: 1fr; }
  .nb-glance dl > div { grid-template-columns: 1fr; gap: 2px; }
}
@media (min-width: 761px) { .nb-localstories:has(> .nb-localstory:nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 761px) { .nb-localstories:has(> .nb-localstory:only-child) { grid-template-columns: minmax(0, 32rem); } }

/* About and Contact */
.nb-oneteam__names { margin: 0 0 14px; font-weight: 700; font-size: .95rem; color: var(--site-teal-dark); }
.nb-contact-big { font-size: 1.2rem; font-weight: 800; overflow-wrap: anywhere; }
.nb-contact-big a { color: var(--site-teal-dark); }
.nb-secure-note { background: #fff; border-left: 4px solid var(--site-gold); border-radius: var(--site-radius); padding: 14px 18px; }
.nb-start-list li { margin-bottom: 10px; }
.nb-bd-dealers__list a { color: inherit; text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--site-teal) 45%, transparent); text-underline-offset: 3px; }
.nb-bd-dealers__list a:hover { color: var(--site-teal-dark); text-decoration-color: currentColor; }
.nb-bd-dealers__list li:has(a):hover { border-color: var(--site-teal); }

/* One-time close vs two-close comparison */
.nb-compare-wrap { overflow-x: auto; margin: 14px 0 6px; border-radius: var(--site-radius-lg); background: #fff; box-shadow: 0 0 0 1px rgba(48, 53, 52, .1); }
.nb-compare { width: 100%; min-width: 560px; border-collapse: collapse; font-size: .98rem; }
.nb-compare th, .nb-compare td { padding: 12px 16px; text-align: left; vertical-align: top; border-bottom: 1px solid rgba(48, 53, 52, .08); line-height: 1.45; }
.nb-compare thead th { background: var(--site-teal); color: #fff; font-weight: 800; }
.nb-compare thead th:nth-child(2) { background: var(--site-teal-dark); }
.nb-compare tbody th { font-weight: 700; color: var(--site-navy); width: 28%; }
.nb-compare tbody td:nth-child(2) { font-weight: 600; color: var(--site-teal-dark); background: color-mix(in srgb, var(--site-teal) 6%, #fff); }
.nb-compare tbody tr:last-child th, .nb-compare tbody tr:last-child td { border-bottom: 0; }
/* Manufactured and modular page */
.nb-compare--even tbody td:nth-child(2) { font-weight: 400; color: inherit; background: #fff; }
.nb-compare--even thead th:nth-child(2) { background: var(--site-teal); }
.nb-vs--single { grid-template-columns: minmax(0, 1fr); max-width: 52rem; }
@media (min-width: 761px) { .nb-localstories:has(> .nb-localstory:nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.nb-band__inner > p + .nb-serve-group { margin-top: clamp(32px, 4vw, 52px); }
.section--white .nb-localstory { background: var(--site-cream); }
/* Situation pages */
.nb-fit--cols { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 28px; margin: 10px 0 26px; }
.nb-fit--cols li::before { content: "\2713"; position: absolute; left: 2px; top: 1px; color: var(--site-teal); font-weight: 800; }
.nb-answers-hd { margin: 8px 0 12px; font-size: 1.2rem; color: var(--site-navy); }
.section--ivory .nb-feat3 article { background: #fff; }
.nb-situations--left { justify-content: flex-start; }
@media (max-width: 760px) { .nb-fit--cols { grid-template-columns: 1fr; } }
@media (min-width: 761px) { .nb-cases:has(> .nb-case:only-child) { grid-template-columns: minmax(0, 36rem); } }
/* Outline buttons on light (cream) banners: dark text and border so they stay visible */
.nb-pane--cream .site-btn--ghost { color: var(--site-navy); border: 2px solid var(--site-navy); background: transparent; }
.nb-pane--cream .site-btn--ghost:hover { background: var(--site-navy); color: #fff; }
@media (min-width: 761px) { .nb-quotes:has(> .nb-quote:nth-child(4):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.nav-item--open > .nav-dropdown.nb-nav-mega:not(.nb-nav-mega--where) { grid-template-columns: repeat(3, minmax(168px, 210px)); }

/* ==========================================================================
   Location pages: local builders and home retailers (compact directory)
   ========================================================================== */
.nb-dir { padding-block: clamp(36px, 5vw, 56px); }
.nb-dir .container { max-width: 1040px; }
.nb-dir h2 { margin-bottom: 8px; }
.nb-dir__lede { max-width: 78ch; margin: 0 0 20px; color: var(--site-ink-soft); }
.nb-dir__lede a, .nb-dir__addme a { color: var(--site-teal-dark); font-weight: 700; }
.nb-dir__label { margin: 18px 0 8px; font-size: .78rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--site-gold-dark); }
.nb-dir__partner, .nb-dir__land { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin: 0 0 8px; padding: 10px 14px; border-radius: var(--site-radius); }
.nb-dir__partner { background: color-mix(in srgb, var(--site-teal) 9%, #fff); border-left: 4px solid var(--site-teal); }
.nb-dir__land { background: var(--site-cream); border-left: 4px solid var(--site-gold); }
.nb-dir__tag { font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--site-teal-dark); }
.nb-dir__meta { font-size: .92rem; color: var(--site-ink-soft); }
.nb-dir__name { font-weight: 700; color: var(--site-charcoal); }
a.nb-dir__name { text-decoration: underline; text-decoration-color: color-mix(in srgb, var(--site-teal) 40%, transparent); text-underline-offset: 3px; }
a.nb-dir__name:hover { color: var(--site-teal-dark); text-decoration-color: currentColor; }
.nb-dir__items { list-style: none; margin: 0; padding: 4px 0 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 28px; border-top: 2px solid var(--site-teal); }
.nb-dir__items li { display: flex; flex-direction: column; padding: 8px 0; border-bottom: 1px solid rgba(48, 53, 52, .1); line-height: 1.35; }
.nb-dir__town { font-size: .88rem; color: var(--site-ink-soft); }
.nb-dir__nearby { margin: 12px 0 0; font-size: .95rem; color: var(--site-ink-soft); }
.nb-dir__nearby .nb-dir__name { font-weight: 600; }
.nb-dir__addme { margin: 16px 0 0; padding-top: 14px; border-top: 1px dashed rgba(48, 53, 52, .2); font-size: .95rem; color: var(--site-ink-soft); }
.nb-dir .nb-fineprint { margin-top: 12px; }
@media (max-width: 900px) { .nb-dir__items { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .nb-dir__items { grid-template-columns: 1fr; } }
/* Directory sizing: scoped so the site's broader paragraph rules don't enlarge it */
.section.nb-dir h2 { font-size: clamp(1.6rem, 2.8vw, 2.2rem); }
.section.nb-dir p { font-size: 1rem; line-height: 1.55; }
.section.nb-dir p.nb-dir__label { font-size: .74rem; line-height: 1.2; margin: 16px 0 6px; }
.section.nb-dir p.nb-dir__nearby, .section.nb-dir p.nb-dir__addme { font-size: .94rem; }
.section.nb-dir p.nb-fineprint { font-size: .78rem; }
.section.nb-dir .nb-dir__name { font-size: 1rem; }
.section.nb-dir .nb-dir__meta, .section.nb-dir .nb-dir__town { font-size: .86rem; }
.section.nb-dir .nb-dir__tag { font-size: .68rem; }
/* Featured dealers: one banner, same name-and-town grid as the main list */
.nb-dir__featured { background: color-mix(in srgb, var(--site-teal) 8%, #fff); border-left: 4px solid var(--site-teal); border-radius: var(--site-radius); padding: 10px 16px 6px; margin: 0 0 8px; }
.section.nb-dir .nb-dir__featured p.nb-dir__tag { margin: 0 0 4px; font-size: .72rem; line-height: 1.2; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--site-teal-dark); }
.nb-dir__items--featured { border-top: 0; padding-top: 0; }
.nb-dir__items--featured li { border-bottom: 0; padding: 6px 0; }

/* Construction cost planner */
.nb-planner { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.nb-planner__form, .nb-planner__out { background: #fff; border-radius: var(--site-radius-lg); padding: 22px 24px; box-shadow: 0 0 0 1px rgba(48, 53, 52, .08); }
.nb-planner h2 { font-size: clamp(1.3rem, 2vw, 1.6rem); margin: 0 0 12px; }
.nb-planner__field { padding: 12px 0; border-top: 1px solid rgba(48, 53, 52, .08); }
.nb-planner__field:first-of-type { border-top: 0; padding-top: 0; }
.nb-planner__field label { font-weight: 700; color: var(--site-navy); }
.section .nb-planner__hint { margin: 2px 0 8px; font-size: .9rem; color: var(--site-ink-soft); line-height: 1.45; }
.nb-planner__inputs { display: flex; align-items: center; gap: 14px; }
.nb-planner__inputs input[type="range"] { flex: 1 1 auto; accent-color: var(--site-teal); min-height: 32px; }
.nb-planner__num { display: inline-flex; align-items: center; gap: 4px; font-weight: 700; color: var(--site-navy); }
.nb-planner__num input { width: 7.5em; padding: 8px 10px; border: 1px solid rgba(48, 53, 52, .25); border-radius: 8px; font: inherit; text-align: right; }
.nb-planner__out { position: sticky; top: 96px; background: var(--site-teal); color: #fff; box-shadow: none; }
.nb-planner__out h2 { color: #fff; }
.nb-planner__out dl { margin: 0 0 14px; }
.nb-planner__out dl div { display: flex; justify-content: space-between; padding: 6px 0; border-bottom: 1px solid rgba(255, 255, 255, .18); }
.nb-planner__out dd { margin: 0; font-weight: 700; }
.section .nb-planner__total-label { margin: 4px 0 0; font-size: .82rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--site-gold); }
.section .nb-planner__total { margin: 0 0 10px; font-family: var(--font-display); font-weight: 800; font-size: clamp(2rem, 4vw, 2.8rem); line-height: 1.1; color: #fff; }
.section .nb-planner__note { font-size: .92rem; color: rgba(255, 255, 255, .88); margin: 0 0 16px; }
@media (max-width: 860px) { .nb-planner { grid-template-columns: 1fr; } .nb-planner__out { position: static; } }
@media (max-width: 480px) {
  .nb-planner__form, .nb-planner__out { padding: 18px 16px; }
  .nb-planner__inputs { flex-wrap: wrap; gap: 8px; }
  .nb-planner__inputs input[type="range"] { flex-basis: 100%; }
  .nb-planner__num { width: 100%; }
  .nb-planner__num input { flex: 1 1 auto; width: auto; min-width: 0; }
}
.nb-planner__type { border: 0; margin: 0 0 6px; padding: 0 0 12px; border-bottom: 1px solid rgba(48, 53, 52, .08); display: flex; flex-wrap: wrap; gap: 8px 12px; }
.nb-planner__type legend { font-weight: 700; color: var(--site-navy); margin-bottom: 8px; padding: 0; width: 100%; }
.nb-planner__type label { display: inline-flex; align-items: center; gap: 8px; padding: 8px 14px; border: 1px solid rgba(48, 53, 52, .2); border-radius: 999px; cursor: pointer; font-weight: 600; min-height: 44px; }
.nb-planner__type input { accent-color: var(--site-teal); }
.nb-planner__type label:has(input:checked) { border-color: var(--site-teal); background: color-mix(in srgb, var(--site-teal) 10%, #fff); color: var(--site-teal-dark); }
.nb-planner__type label:has(input:focus-visible) { outline: 3px solid var(--site-gold); outline-offset: 2px; }

/* Final responsiveness pass (Oct 2026) */
.nb-case__toggle { display: inline-flex; align-items: center; min-height: 44px; }
@media (max-width: 480px) {
  .nb-ev-label, .nb-res-form__label { font-size: .75rem; }
}

/* NewBuild System band: badge, headline, six step tiles (Move-In Day in gold).
   --photo: daylight framing photo under a flat teal overlay (homepage, System page).
   --light: cream version for loan and guide pages, so dark bands do not stack. */
.nb-system--photo { position: relative; background: var(--site-navy) url(/assets/img/hero-frame-forest.webp) center / cover no-repeat; }
.nb-system--photo::before { content: ""; position: absolute; inset: 0; background: rgba(35,78,76,.74); }
.nb-system--photo > .container { position: relative; }
.nb-system__badge { display: block; width: min(340px, 86%); height: auto; margin: 0 auto 22px; }
.nb-system > .container > h2 { max-width: 22ch; }
.nb-system--photo > .container > p { color: rgba(247,246,237,.9); }
.nb-system__tiles { list-style: none; padding: 0; margin: 40px 0 36px; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; text-align: left; }
.nb-system__tile { background: rgba(23,54,52,.72); border: 1px solid rgba(212,166,83,.45); border-radius: var(--site-radius-lg); padding: 18px 14px 20px; }
.nb-system__phase-tag { display: block; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--site-gold); font-weight: 700; }
.nb-system__num { display: block; font-size: clamp(2.2rem, 3vw, 2.8rem); font-weight: 800; color: var(--site-gold); line-height: 1; margin: 10px 0 8px; }
.nb-system .nb-system__tile h3 { color: #fff; font-size: var(--fs-lead); font-weight: 700; line-height: 1.15; margin: 0; }
.nb-system__tile:last-child { background: var(--site-gold); border-color: var(--site-gold); }
.nb-system__tile:last-child .nb-system__phase-tag,
.nb-system__tile:last-child .nb-system__num,
.nb-system .nb-system__tile:last-child h3 { color: var(--site-on-gold); }
.nb-system__actions { display: flex; flex-wrap: wrap; gap: 14px 24px; justify-content: center; align-items: center; }
.nb-system--light { background: var(--site-cream); color: var(--site-charcoal); }
.nb-system--light h2 { color: var(--site-teal-dark); }
.nb-system--light > .container > p { color: var(--site-ink-soft); }
.nb-system--light .nb-system__tile { background: #fff; border-color: var(--site-birch); }
.nb-system--light .nb-system__phase-tag { color: var(--site-gold-dark); }
.nb-system--light .nb-system__num { color: var(--site-gold-dark); }
.nb-system--light .nb-system__tile h3 { color: var(--site-charcoal); }
.nb-system--light .nb-system__tile:last-child { background: var(--site-gold); border-color: var(--site-gold); }
.nb-system--light .nb-system__tile:last-child .nb-system__phase-tag,
.nb-system--light .nb-system__tile:last-child .nb-system__num,
.nb-system--light .nb-system__tile:last-child h3 { color: var(--site-on-gold); }
.nb-system--light .site-btn--ghost { color: var(--site-navy); border-color: var(--site-navy); }
.nb-system--light .site-btn--ghost:hover { background: var(--site-navy); color: #fff; }
@media (max-width: 900px) {
  .nb-system__tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Footer "Offered by" credit. Text stands in until the one-color Preferred Rate logo file arrives. The header credit was removed 2026-10-10 (proposal to compliance: identity statements live in the footer). */
.site-footer__program { font-size: 12px; letter-spacing: .04em; text-transform: uppercase; color: rgba(248,245,239,.75); }
.site-footer__program strong { text-transform: none; font-size: 15px; color: #f8f5ef; letter-spacing: .01em; }

/* Homepage hero headline is the brand line (2026-10-10). Longer than the old 7-word H1, so it runs a size smaller. */
.nb-hero--home h1.nb-hero__h1--brand { font-size: clamp(2.5rem, 4.6vw + .4rem, 4.75rem); max-width: 17ch; letter-spacing: -.035em; line-height: 1.02; }
.nb-hero--home h1.nb-hero__h1--brand em { display: block; margin-top: .12em; }
.nb-hero--home h1.nb-hero__h1--brand, .nb-hero--home h1.nb-hero__h1--brand em { text-wrap: balance; }
@media (max-width: 600px) { .nb-hero--home h1.nb-hero__h1--brand { font-size: clamp(2.1rem, 9vw, 2.6rem); } }
@media (max-width: 600px) { main .nb-hero--home .nb-hero__eyebrow.nb-hero__eyebrow { display: block; letter-spacing: .05em; font-size: 12.5px; } .nb-hero--home h1.nb-hero__h1--brand { max-width: none; } .nb-eyebrow__sep { display: none; } .nb-eyebrow__by { display: block; margin-top: 2px; } }

/* NewBuild System page: step blocks (2026-10-13). One line plus three short rows per step. */
.nb-steps { list-style: none; padding: 0; margin: 28px 0 32px; display: grid; gap: 16px; }
.nb-step { border: 1px solid var(--site-birch); border-radius: var(--site-radius-lg); padding: 22px 24px; background: #fff; }
.nb-step__hd { display: flex; align-items: center; gap: 14px; }
.nb-step__num { flex: none; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--site-teal, #2c605e); color: #fff; font-weight: 800; font-size: 1.1rem; }
.nb-step:last-child .nb-step__num { background: var(--site-gold); color: var(--site-on-gold); }
.nb-step h3 { margin: 0; font-size: clamp(1.15rem, 1vw + .8rem, 1.4rem); line-height: 1.2; }
.nb-step__line { margin: 12px 0 14px; font-size: 1.05rem; font-weight: 600; line-height: 1.45; color: var(--site-teal-dark); }
.nb-step__rows { margin: 0; display: grid; gap: 8px; }
.nb-step__rows > div { display: grid; gap: 2px; padding-top: 8px; border-top: 1px solid var(--site-birch); }
.nb-step__rows dt { font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; color: var(--site-teal); padding-top: 2px; }
.nb-step__rows dd { margin: 0; font-size: 1rem; line-height: 1.5; }
@media (max-width: 600px) { .nb-step { padding: 18px 16px; } }
@media (min-width: 901px) { .nb-agree-grid:has(> :nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* Partner landing pages (2026-10-14). Co-brand lockup, package cards, step pairs. */
.nb-cobrand { display: flex; width: fit-content; align-items: center; gap: 14px; margin: 6px 0 14px; padding: 10px 18px; border: 1px solid rgba(212,166,83,.55); border-radius: 999px; background: rgba(23,54,52,.35); }
.nb-cobrand__mark { font-family: var(--font-display); font-weight: 800; font-size: 1.15rem; color: #fff; letter-spacing: -.01em; }
.nb-cobrand__mark--partner { font-weight: 700; text-transform: uppercase; letter-spacing: .06em; font-size: 1rem; }
.nb-cobrand__x { color: var(--site-gold); font-weight: 700; font-size: 1.2rem; }
.nb-lede { max-width: 46rem; font-size: 1.1rem; }
.nb-pkgs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-top: 24px; }
.nb-pkg { border: 1px solid var(--site-birch); border-radius: var(--site-radius-lg); padding: 22px; background: #fff; }
.nb-pkg h3 { margin: 6px 0 10px; }
.nb-pkg p { margin: 0; }
.nb-pkg__tag { font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; color: var(--site-teal); margin: 0 !important; }
.nb-pkg--yes { border: 2px solid var(--site-gold); background: #fffaf0; }
.nb-pkg--yes .nb-pkg__tag { color: var(--site-gold-dark); }
.nb-pairs { list-style: none; padding: 0; margin: 20px 0 24px; display: grid; gap: 12px; }
.nb-pairs li { display: grid; grid-template-columns: 40px 1fr; gap: 14px; align-items: start; background: #fff; border: 1px solid var(--site-birch); border-radius: var(--site-radius-lg); padding: 16px 18px; }
.nb-pairs__n { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; background: var(--site-teal); color: #fff; font-weight: 800; }
.nb-pairs li:last-child .nb-pairs__n { background: var(--site-gold); color: var(--site-on-gold); }
.nb-pairs h3 { margin: 6px 0 4px; font-size: 1.15rem; }
.nb-pairs p { margin: 0; }
@media (max-width: 900px) { .nb-pkgs { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .nb-cobrand { gap: 10px; padding: 8px 14px; } .nb-cobrand__mark { font-size: 1rem; } .nb-cobrand__mark--partner { font-size: .85rem; } }
.nb-cobrand__logo { display: block; height: 40px; width: auto; border-radius: 6px; }
@media (max-width: 600px) { .nb-cobrand__logo { height: 26px; } }

/* Split section: text plus photo (partner pages). */
.nb-split { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 56px); align-items: center; }
.nb-split--media-left { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); align-items: center; }
.nb-split__media { margin: 0; }
.nb-split__media img { display: block; width: 100%; height: auto; border-radius: var(--site-radius-lg); box-shadow: 0 10px 30px rgba(23,54,52,.15); }
.nb-split__media--sticky { position: sticky; top: 110px; }
@media (max-width: 900px) { .nb-split, .nb-split--media-left { grid-template-columns: 1fr; } .nb-split__media--sticky { position: static; } .nb-split--media-left .nb-split__media { order: -1; } }
.nb-split--media-left .nb-split__media img { aspect-ratio: 4 / 3; object-fit: cover; object-position: 30% 50%; }
@media (max-width: 900px) { .nb-split--media-left .nb-split__media img { aspect-ratio: 16 / 10; } }

/* Pale teal band to set a section apart from its ivory and white neighbors. */
.section--sage { background: #e3eeec; border-top: 1px solid #c9dcd9; border-bottom: 1px solid #c9dcd9; }
@media (max-width: 900px) { .nb-split--media-first-mobile .nb-split__media { order: -1; } }
.nb-pkg--heloc { border-color: var(--site-teal); background: #eef5f4; }
.nb-pkg--heloc .nb-pkg__tag { color: var(--site-teal); }

/* Al's v2 logo lockups (2026-10-16): horizontal in the header, stacked in the footer. Both include "Offered by Preferred Rate". */
.site-nav__brand img { width: clamp(214px, 16.5vw, 280px); height: auto; }
@media (min-width: 1240px) and (max-width: 1499px) {
  .site-nav__inner { gap: 8px; }
  .nav-list > li > a, .nav-list > li > button { padding: 0 6px; }
  .site-nav__actions { gap: 10px; }
  .site-nav__actions .site-btn { padding-inline: 14px; }
}
.site-footer__brand img.site-footer__logo { width: 250px; height: auto; margin-bottom: 18px; }
@media (max-width: 600px) { .site-nav__brand img { width: 210px; } }
@media (max-width: 360px) { .site-nav__brand img { width: 180px; } }
@media (min-width: 1240px) and (max-width: 1279px) { .nav-list > li > a, .nav-list > li > button { padding: 0 4px; } }
