/* ─────────────────────────────────────────
   RESET
───────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html {
  scroll-behavior: smooth;
  font-size: 16px;
  overflow-x: clip;
  width: 100%;
}

/* ─────────────────────────────────────────
   DESIGN TOKENS
   High-contrast, warm-neutral system:
   - Surfaces: --surface-root (page), --surface-elevated (panels/footer), --surface-light (cream bands)
   - On dark: body secondary #A29D92 (--text-secondary-on-dark); same hue for chrome (--label-on-dark)
   - On light: primary --surface-elevated ink; secondary/body muted via --text-secondary-on-light
   - --accent-on-light: terracotta for labels, rules, icons on light backgrounds
   - --stroke-subtle: muted rules on dark (legal tabs, callouts)
───────────────────────────────────────── */
:root {
  /* Surfaces */
  --surface-root:     #0E0D0B;
  --surface-elevated: #1A1814;
  --surface-muted:    #2A2720;
  --surface-light:    #F4F0E6;

  /* Rule under main nav on parchment */
  --nav-border: rgba(14,13,11,.08);

  /* Text: always high contrast */
  --text-on-dark:             #F4F0E6; /* ~15:1 on --surface-root */
  --text-secondary-on-dark:   #A29D92; /* body secondary on dark (paragraphs, cards) */
  --label-on-dark:              var(--text-secondary-on-dark); /* small caps, icons, step nums; alias, tune separately if needed */
  --text-tertiary-on-dark:      #8F897E;
  --text-on-light:            var(--surface-elevated);
  --text-secondary-on-light:  #3D3830; /* ~9:1 on --surface-light */
  --text-tertiary-on-light:   #6B6358; /* ~4.6:1 on --surface-light, AA */

  /* Accents */
  --stroke-subtle:   #3D4F3E; /* warm muted strokes on dark UI */
  --accent-on-light: #C4704D; /* terracotta: labels, rules, icons on light */

  /* Type: Inter site-wide; Cormorant for pull quotes */
  --sans:        'Inter', system-ui, sans-serif;
  --serif:       var(--sans);
  --heading:     var(--sans);
  --quote-serif: 'Cormorant Garamond', Georgia, serif;

  /* Motion */
  --ease:   cubic-bezier(.22,.6,.36,1);
  --ease-o: cubic-bezier(.4,0,.2,1);

  /* Main page bands; also CTA split columns. Tighter at 1024 / 860 / 640 / 480px */
  --section-py: 152px;
  --section-px: 56px;
  --cta-split-py: 104px;
}

/* ─────────────────────────────────────────
   BASE
───────────────────────────────────────── */
body {
  background: var(--surface-root);
  color: var(--text-on-dark);
  font-family: var(--sans);
  font-weight: 400;
  line-height: 1.6;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

a { color: inherit; text-decoration: none; }
em { font-style: italic; }
button { border: none; background: none; cursor: pointer; font-family: inherit; }
img { display: block; max-width: 100%; }

/* ─────────────────────────────────────────
   PAGE SYSTEM
───────────────────────────────────────── */
.page { display: none; }
.page.active { display: block; }

/* ─────────────────────────────────────────
   NAVIGATION
───────────────────────────────────────── */
.site-nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 300;
  height: 76px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 16px;
  /* Same surface as .home-pillars-section (Our Three Pillars) */
  background: var(--surface-light);
  border-bottom: 1px solid var(--nav-border);
  transition: background .45s var(--ease), backdrop-filter .45s;
}

.site-nav.solid {
  background: rgba(244,240,230,.96);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(14,13,11,.1);
}

.nav-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  font-size: 17px;
  line-height: 1.2;
}

.nav-logo-img {
  height: calc(2 * 1em * 1.2);
  width: auto;
  flex-shrink: 0;
  object-fit: contain;
  display: block;
}

.nav-wordmark {
  font-family: var(--sans);
  font-size: 1em;
  font-weight: 500;
  letter-spacing: normal;
  text-transform: uppercase;
  color: var(--text-on-light);
  line-height: 1.2;
}

.nav-links {
  display: flex;
  align-items: center;
  gap: 8px;
}

.nav-link {
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--text-secondary-on-light);
  padding: 8px 16px;
  cursor: pointer;
  transition: color .25s;
  border-radius: 2px;
}

.nav-link:hover,
.nav-link.active { color: var(--text-on-light); }

.nav-cta {
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--surface-light);
  background: var(--surface-root);
  border: 1px solid var(--surface-root);
  padding: 10px 24px;
  cursor: pointer;
  margin-left: 8px;
  transition: opacity .25s;
  white-space: nowrap;
}

.nav-cta:hover { opacity: .88; }

.site-nav .nav-links a.nav-link,
.site-nav .nav-links a.nav-cta {
  font-family: var(--sans);
  font-weight: 500;
}

/* Mobile nav toggle */
.nav-burger {
  display: none;
  flex-direction: column;
  gap: 5px;
  padding: 8px;
  cursor: pointer;
}

.nav-burger span {
  display: block;
  width: 22px;
  height: 1.5px;
  background: var(--text-on-light);
  transition: transform .3s, opacity .3s;
}

/* ─────────────────────────────────────────
   HERO (shared): split text | image (image flush to viewport edge)
───────────────────────────────────────── */
.hero {
  position: relative;
  overflow: hidden;
}

.hero.hero-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: stretch;
  min-height: 100svh;
  min-height: max(640px, 100svh);
  padding-top: 76px;
  box-sizing: border-box;
  min-width: 0;
}

.hero.hero-split .hero-text,
.hero.hero-split .hero-media {
  min-width: 0;
}

.hero.hero-split.hero-compact {
  min-height: max(480px, 52vh);
}

.hero.hero-split .hero-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  background: var(--surface-root);
  padding: 80px 56px;
  box-sizing: border-box;
}

.hero.hero-split .hero-text .inner {
  max-width: 1240px;
  margin: 0;
  width: 100%;
}

.hero.hero-split .hero-media {
  position: relative;
  min-height: 280px;
  background: var(--surface-muted);
}

.hero.hero-split .hero-img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 40%;
}

/* Homebuyers hero: zoom crop so the house reads larger in frame */
.page-homebuyers .hero.hero-split .hero-media {
  overflow: hidden;
}
.page-homebuyers .hero.hero-split .hero-img {
  transform: scale(1.14);
  transform-origin: 50% 36%;
}

/* On-image captions (site-wide, same as homepage hero) */
.hero-caption,
.cta-caption,
.path-caption,
.img-caption {
  font-family: var(--sans);
  font-size: 9px;
  font-weight: 600;
  letter-spacing: .1em;
  text-transform: uppercase;
  line-height: 1.35;
  display: inline-block;
  padding: 6px 8px;
  border-radius: 0;
  border: none;
  color: rgba(244, 240, 230, 0.76);
  background: rgba(14, 13, 11, 0.28);
  box-shadow: none;
  pointer-events: none;
}

.hero.hero-split .hero-caption {
  position: absolute;
  bottom: 0;
  right: 0;
  z-index: 2;
}

.hero.hero-split .hero-content {
  position: relative;
  z-index: 1;
  padding: 0;
  /* Comfortable measure for headline + body on wide columns */
  max-width: min(40rem, 100%);
}

.hero-eyebrow {
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .26em;
  text-transform: uppercase;
  color: var(--label-on-dark);
  margin-bottom: 20px;
  opacity: 0;
  animation: riseIn .8s var(--ease) .35s forwards;
}

.hero-headline {
  font-family: var(--heading);
  font-size: clamp(32px, 5vw, 72px);
  font-weight: 400;
  line-height: 1.04;
  color: var(--text-on-dark);          /* full white, max contrast */
  margin-bottom: 32px;
  opacity: 0;
  animation: riseIn 1s var(--ease) .55s forwards;
}

.hero-headline em {
  color: var(--text-on-dark);
  font-style: normal;
  font-weight: 400;
}

.hero-body {
  font-size: 17px;
  font-weight: 400;
  line-height: 1.8;
  color: var(--text-secondary-on-dark);
  max-width: 48ch;
  margin-bottom: 44px;
  opacity: 0;
  animation: riseIn .85s var(--ease) .8s forwards;
}

.hero.hero-split .hero-body {
  max-width: none;
}

/* No hero-actions row — margin-bottom on .hero-body is only for spacing above CTAs */
.hero.hero-split .hero-content > .hero-body:last-child {
  margin-bottom: 0;
}

.hero-actions {
  display: flex;
  gap: 14px;
  opacity: 0;
  animation: riseIn .75s var(--ease) 1s forwards;
}

/* Homebuyers: label row; heading | body same row (tops align) — What You Get, Intelligent Living */
.hb-editorial-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto auto;
  column-gap: 80px;
  row-gap: 0;
  align-items: start;
}

.hb-editorial-split__label {
  grid-column: 1;
  grid-row: 1;
}

.hb-editorial-split__heading {
  grid-column: 1;
  grid-row: 2;
  margin-top: 0;
}

.hb-editorial-split__body {
  grid-column: 2;
  grid-row: 2;
  max-width: none;
}

.hb-editorial-split__body .section-body {
  margin-bottom: 0;
}

.hb-editorial-split__body .section-body + .section-body {
  margin-top: 20px;
}

/* Blockquote on ink / rich bands (e.g. Co-Living on section-rich) */
.section-rich .pull-quote,
.section-dark .pull-quote {
  color: var(--text-on-dark);
  border-left-color: var(--label-on-dark);
}

/* Homebuyers Co-Living: about-vision image column inside section-rich */
.section-rich .two-col-wide.two-col-equal > .reveal:first-child {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.section-rich .img-block.about-vision-img {
  flex: 1 1 auto;
  min-height: 280px;
  height: 100%;
  width: 100%;
}

.section-rich .two-col-wide.two-col-equal .section-heading {
  margin-bottom: 24px;
}

.section-rich .two-col-wide.two-col-equal .section-body + .section-body {
  margin-top: 20px;
}

.section-rich .two-col-wide.two-col-equal .pull-quote {
  margin-top: 40px;
}

/* ─────────────────────────────────────────
   BUTTONS
───────────────────────────────────────── */
.btn-primary {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--text-on-light);         /* same as Two Paths / footer band */
  background: var(--surface-light);
  padding: 15px 36px;
  cursor: pointer;
  transition: opacity .25s;
  white-space: nowrap;
}

.btn-primary:hover { opacity: .88; }

.btn-secondary {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--text-on-dark);          /* white text */
  background: transparent;
  border: 1px solid rgba(244,240,230,.4);
  padding: 15px 36px;
  cursor: pointer;
  transition: border-color .25s, background .25s;
  white-space: nowrap;
}

.btn-secondary:hover {
  border-color: var(--text-on-dark);
  background: rgba(244,240,230,.06);
}

/* Dark-surface versions */
.btn-primary-dark {
  display: inline-flex;
  align-items: center;
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--surface-light);
  background: var(--surface-root);
  padding: 15px 36px;
  cursor: pointer;
  border: 1px solid var(--surface-root);
  transition: opacity .25s;
  white-space: nowrap;
}

.btn-primary-dark:hover { opacity: .8; }

/* ─────────────────────────────────────────
   SHARED SECTION COMPONENTS
───────────────────────────────────────── */
.section-label {
  display: block;
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--label-on-dark);
  margin-bottom: 20px;
}

.section-label-dark { color: var(--label-on-dark); }
/* Light sections: accent label */
.section-label-light { color: var(--accent-on-light); }

.section-heading {
  font-family: var(--heading);
  font-size: clamp(28px, 4vw, 54px);
  font-weight: 400;
  line-height: 1.08;
}

.section-heading em { font-style: normal; }

/* Optional spacing / no inline color in HTML */
.section-heading--flush {
  margin-bottom: 0;
}

.section-heading--mb-sm {
  margin-bottom: 24px;
}

.section-body--spaced-lg {
  margin-bottom: 36px;
}

/* Layout utilities (no inline grid/flex/margin hacks in HTML) */
.hero.hero-compact .hero-headline {
  font-size: clamp(32px, 4.5vw, 64px);
}


.pillar-card__actions {
  margin-top: 24px;
}

.btn-secondary--compact {
  font-size: 11px;
  padding: 10px 22px;
}

.path-grid--tight {
  margin-top: 52px;
}

.cta-banner--tight {
  margin-top: 2px;
}

.pillars-grid--cols-3 {
  grid-template-columns: repeat(3, 1fr);
}

.pillars-grid--cols-4 {
  grid-template-columns: repeat(4, 1fr);
}

.cta-actions-row {
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
}

.img-block--height-380 {
  height: 380px;
}

.img-block--height-200 {
  height: 200px;
}

.pillar-card--span-2 {
  grid-column: span 2;
}

.pillar-card__split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: center;
}

.contact-form-submit {
  align-self: flex-start;
}

.doc-mt {
  margin-top: 24px;
}

.cta-heading em,
.path-title em { font-style: normal; }

.section-body {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.85;
  max-width: 54ch;
}

/* In section grids, body copy uses the same column width as the heading */
.two-col .section-body,
.two-col-wide .section-body,
.two-col-narrow .section-body {
  max-width: none;
}

/* ─────────────────────────────────────────
   DIVIDER LINE
───────────────────────────────────────── */
.divider {
  width: 48px;
  height: 1px;
  background: var(--text-on-light);
  margin: 28px 0;
}

.section-light .divider,
.home-pillars-section .divider,
.about-vision .divider,
.contact-section .divider {
  background: var(--accent-on-light);
}

.section-dark .divider,
.section-rich .divider {
  background: var(--label-on-dark);
}

/* ─────────────────────────────────────────
   DARK SECTION (ink bg)
───────────────────────────────────────── */
.section-dark {
  background: var(--surface-elevated);
  color: var(--text-on-dark);
  padding: var(--section-py) var(--section-px);
}

.section-dark .section-heading { color: var(--text-on-dark); }
.section-dark .section-body    { color: var(--text-secondary-on-dark); }

/* ─────────────────────────────────────────
   RICH DARK SECTION (slightly lighter ink)
───────────────────────────────────────── */
.section-rich {
  background: var(--surface-elevated);
  color: var(--text-on-dark);
  padding: var(--section-py) var(--section-px);
}

.section-rich .section-heading { color: var(--text-on-dark); }
.section-rich .section-body    { color: var(--text-secondary-on-dark); }

/* ─────────────────────────────────────────
   LIGHT SECTION (parchment bg)
───────────────────────────────────────── */
.section-light {
  background: var(--surface-light);
  color: var(--text-on-light);
  padding: var(--section-py) var(--section-px);
}

.section-light .section-heading { color: var(--text-on-light); }
.section-light .section-body    { color: var(--text-secondary-on-light); }

/* Pillar cards on light (Vision band) */
.section-light .pillar-card {
  background: rgba(14,13,11,.04);
}
.section-light .pillar-card::before {
  background: linear-gradient(90deg, var(--accent-on-light), transparent);
}
.section-light .pillar-card .pillar-title { color: var(--text-on-light); }
.section-light .pillar-card .pillar-body { color: var(--text-secondary-on-light); }

/* Numbered steps on light (Vision band) */
.section-light .step {
  border-top-color: var(--nav-border);
}
.section-light .step-num { color: var(--accent-on-light); }
.section-light .step-title { color: var(--text-on-light); }
.section-light .step-body { color: var(--text-secondary-on-light); }

.section-light .btn-secondary {
  color: var(--text-on-light);
  border-color: rgba(14,13,11,.3);
}

.section-light .btn-secondary:hover {
  border-color: var(--text-on-light);
  background: rgba(14,13,11,.06);
}

/* ─────────────────────────────────────────
   INNER / CONTAINER
───────────────────────────────────────── */
.inner {
  max-width: 1240px;
  margin: 0 auto;
  width: 100%;
  min-width: 0;
}

/* ─────────────────────────────────────────
   PILLARS / CARDS (shared)
───────────────────────────────────────── */
.pillars-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2px;
  margin-top: 64px;
  min-width: 0;
}

.pillars-grid-2x2 {
  grid-template-columns: repeat(2, 1fr);
}

.pillar-card {
  padding: 48px 40px;
  background: rgba(244,240,230,.04);
  position: relative;
}

.pillar-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 1px;
  background: linear-gradient(90deg, var(--label-on-dark), transparent);
  opacity: 0;
}

.pillar-card-light {
  background: rgba(14,13,11,.04);
}

.pillar-card-light::before {
  background: linear-gradient(90deg, var(--accent-on-light), transparent);
}

.pillar-icon {
  width: 40px;
  height: 40px;
  color: var(--label-on-dark);
  margin-bottom: 28px;
}

/* Light backgrounds: accent icons */
.home-pillars-section .pillar-icon,
.section-light .pillar-card .pillar-icon,
.pillar-card-light .pillar-icon {
  color: var(--accent-on-light);
}

.pillar-title {
  font-family: var(--heading);
  font-size: 22px;
  font-weight: 400;
  line-height: 1.2;
  margin-bottom: 14px;
}

/* On dark bg */
.pillar-card .pillar-title  { color: var(--text-on-dark); }
.pillar-card .pillar-body   { font-size: 14px; line-height: 1.82; color: var(--text-secondary-on-dark); }

/* On light bg */
.pillar-card-light .pillar-title { color: var(--text-on-light); }
.pillar-card-light .pillar-body  { font-size: 14px; line-height: 1.82; color: var(--text-secondary-on-light); }

/* ─────────────────────────────────────────
   NUMBERED STEPS
───────────────────────────────────────── */
.steps-list { display: flex; flex-direction: column; }

.step {
  display: flex;
  gap: 32px;
  padding: 36px 0;
  border-top: 1px solid rgba(244,240,230,.08);
}

.step:first-child { border-top: none; }

.step-num {
  font-family: var(--heading);
  font-size: clamp(20px, 2.4vw, 28px);
  color: var(--label-on-dark);
  flex-shrink: 0;
  width: 52px;
  min-width: 52px;
  padding-top: 4px;
  line-height: 1.1;
}

.step-title {
  font-family: var(--heading);
  font-size: 20px;
  font-weight: 400;
  color: var(--text-on-dark);
  margin-bottom: 8px;
}

.step-body {
  font-size: 14px;
  line-height: 1.85;
  color: var(--text-secondary-on-dark);
}

/* Light surface steps */
.step-light { border-top-color: rgba(196, 112, 77, 0.22); }
.step-light:first-child { border-top: none; }
.step-light .step-num  { color: var(--accent-on-light); }
.step-light .step-title { color: var(--text-on-light); }
.step-light .step-body  { color: var(--text-secondary-on-light); }

/* ─────────────────────────────────────────
   TWO-COLUMN LAYOUTS
───────────────────────────────────────── */
.two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 80px;
  align-items: start;
  min-width: 0;
}

.two-col-wide {
  display: grid;
  grid-template-columns: 5fr 7fr;
  gap: 96px;
  align-items: start;
  min-width: 0;
}

.two-col-narrow {
  display: grid;
  grid-template-columns: 1fr 1.4fr;
  gap: 80px;
  align-items: center;
  min-width: 0;
}

/* Equal columns (e.g. About: Our Vision, homebuyers image + text) */
.two-col-wide.two-col-equal {
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
}
.two-col-narrow.two-col-equal {
  grid-template-columns: 1fr 1fr;
}

/* ─────────────────────────────────────────
   FULL-BLEED IMAGE BLOCK
───────────────────────────────────────── */
.img-block {
  position: relative;
  overflow: hidden;
}

.img-block img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}


.img-caption {
  position: absolute;
  bottom: 0;
  right: 0;
  z-index: 2;
}

/* ─────────────────────────────────────────
   BLOCKQUOTE
───────────────────────────────────────── */
.pull-quote {
  font-family: var(--quote-serif);
  font-size: clamp(22px, 2.8vw, 36px);
  font-weight: 300;
  font-style: italic;
  line-height: 1.45;
  color: var(--text-on-light);
  padding-left: 36px;
  border-left: 2px solid var(--accent-on-light);
}

/* ─────────────────────────────────────────
   TWO-PATH CARDS (home)
───────────────────────────────────────── */
.path-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2px;
  margin-top: 64px;
  min-width: 0;
}

.path-card {
  display: flex;
  flex-direction: column;
  min-height: 0;
  overflow: hidden;
  cursor: pointer;
  background: rgba(244,240,230,.04);
  border: none;
  transition: background .3s;
}

.path-card:hover {
  background: rgba(244,240,230,.07);
}

.path-card-media {
  position: relative;
  aspect-ratio: 16 / 10;
  background: transparent;
  overflow: hidden;
  flex-shrink: 0;
}

.path-card-media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .7s var(--ease);
}

.path-card:hover .path-card-media img { transform: scale(1.04); }

.path-caption {
  position: absolute;
  bottom: 0;
  right: 0;
  z-index: 2;
}

.path-content {
  position: relative;
  z-index: 1;
  padding: 32px 40px 40px;
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: 100%;
  box-sizing: border-box;
}

.path-tag {
  display: inline-block;
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--label-on-dark);
  margin-bottom: 16px;
}

.path-title {
  font-family: var(--heading);
  font-size: clamp(22px, 2.4vw, 32px);
  font-weight: 400;
  color: var(--text-on-dark);
  margin-bottom: 14px;
  line-height: 1.2;
  width: 100%;
  max-width: none;
}

.path-body {
  font-size: 14px;
  line-height: 1.8;
  color: var(--text-secondary-on-dark);
  margin-bottom: 28px;
  max-width: none;
}

.path-content > .btn-primary {
  align-self: flex-start;
}

/* ─────────────────────────────────────────
   CTA BANNER: split text | image (image flush to viewport edge)
───────────────────────────────────────── */
.cta-banner {
  position: relative;
  overflow: hidden;
}

.cta-banner.cta-split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: stretch;
  min-height: 440px;
  min-width: 0;
}

.cta-banner.cta-split .cta-banner-text,
.cta-banner.cta-split .cta-banner-media {
  min-width: 0;
}

.cta-banner.cta-split .cta-banner-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  /* Pillars band (default); Vision variant: .cta-split--vision */
  background: var(--surface-elevated);
  /* Match main sections (.inner inside .home-pillars-section etc.), not hero column padding */
  padding: var(--cta-split-py) 56px;
  padding-left: max(56px, calc((100vw - 1240px) / 2));
  box-sizing: border-box;
}

/* CTA text column: Vision (parchment), same as Our Vision / light sections */
.cta-banner.cta-split--vision .cta-banner-text {
  background: var(--surface-light);
}
.cta-banner.cta-split--vision .cta-heading {
  color: var(--text-on-light);
}
.cta-banner.cta-split--vision .cta-body {
  color: var(--text-secondary-on-light);
}
.cta-banner.cta-split--vision .cta-content .section-label {
  color: var(--accent-on-light);
}

/* Outline button on parchment (default .btn-secondary is for dark bands — white text) */
.cta-banner.cta-split--vision .btn-secondary {
  color: var(--text-on-light);
  border-color: rgba(14, 13, 11, 0.3);
}

.cta-banner.cta-split--vision .btn-secondary:hover {
  border-color: var(--text-on-light);
  background: rgba(14, 13, 11, 0.06);
}

.cta-banner.cta-split .cta-banner-text .inner {
  max-width: 1240px;
  margin: 0;
  width: 100%;
}

.cta-banner.cta-split .cta-banner-media {
  position: relative;
  min-height: 100%;
  min-height: 360px;
  background: var(--surface-muted);
}

.cta-banner.cta-split .cta-banner-media img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.cta-caption {
  position: absolute;
  bottom: 0;
  right: 0;
  z-index: 2;
}

.cta-content {
  position: relative;
  z-index: 2;
  padding: 0;
  max-width: none;
}

.cta-content .section-label { color: var(--label-on-dark); }

.cta-heading {
  font-family: var(--heading);
  font-size: clamp(28px, 3.8vw, 50px);
  font-weight: 400;
  line-height: 1.1;
  color: var(--text-on-dark);
  margin-bottom: 20px;
  text-wrap: balance;
}

.cta-body {
  font-size: 16px;
  font-weight: 400;
  line-height: 1.8;
  color: var(--text-secondary-on-dark);
  margin-bottom: 36px;
  max-width: 46ch;
}

/* ─────────────────────────────────────────
   CONTACT FORM
───────────────────────────────────────── */
.form-wrapper {
  display: flex;
  flex-direction: column;
  gap: 28px;
}

.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.form-group { display: flex; flex-direction: column; gap: 10px; }

.form-label {
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--accent-on-light);
}

.form-input, .form-select {
  background: transparent;
  border: none;
  border-bottom: 1px solid rgba(14,13,11,.18);
  padding: 12px 0;
  font-family: var(--sans);
  font-size: 15px;
  font-weight: 500;
  color: var(--text-on-light);
  outline: none;
  width: 100%;
  appearance: none;
  transition: border-color .25s;
}

.form-input::placeholder { color: rgba(14,13,11,.3); }
.form-input:focus,
.form-select:focus { border-bottom-color: var(--surface-root); }
textarea.form-input { resize: none; height: 96px; }

/* ─────────────────────────────────────────
   FOOTER
───────────────────────────────────────── */
.site-footer {
  background: var(--surface-elevated);
  border-top: 1px solid rgba(244,240,230,.06);
  padding: 72px 56px 40px;
}

.footer-top {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  column-gap: 48px;
  row-gap: 48px;
  padding-bottom: 48px;
}

.footer-brand-mark {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  font-size: 15px;
  line-height: 1.2;
}

.footer-logo-img {
  height: calc(2 * 1em * 1.2);
  width: auto;
  flex-shrink: 0;
  object-fit: contain;
  display: block;
}

.footer-brand-name {
  font-family: var(--sans);
  font-size: 1em;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--text-on-dark);
  line-height: 1.2;
}

.footer-brand-desc {
  font-size: 13px;
  font-weight: 400;
  line-height: 1.8;
  color: var(--text-secondary-on-dark);
  max-width: 30ch;
}

.footer-col-heading {
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--label-on-dark);
  margin-bottom: 20px;
}

.footer-links {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.footer-link {
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 400;
  color: var(--text-secondary-on-dark);
  cursor: pointer;
  transition: color .25s;
}

.footer-link:hover { color: var(--text-on-dark); }

.footer-mid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 48px;
  row-gap: 48px;
  align-items: start;
  padding-top: 48px;
  margin-bottom: 40px;
  border-top: 1px solid rgba(244, 240, 230, 0.06);
}

.footer-disclaimer-block .footer-col-heading,
.footer-ack-block .footer-col-heading {
  margin-bottom: 12px;
}

.footer-disclaimer-text,
.footer-ack-text {
  font-size: 11px;
  font-weight: 400;
  line-height: 1.65;
  color: var(--text-tertiary-on-dark);
  margin: 0;
  max-width: none;
}

.footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 32px;
  border-top: 1px solid rgba(244,240,230,.06);
}

.footer-copy {
  font-size: 12px;
  color: var(--text-tertiary-on-dark);
}

.footer-copy a { color: inherit; border-bottom: 1px solid transparent; transition: border-color .25s; }
.footer-copy a:hover { border-bottom-color: var(--text-tertiary-on-dark); }

.footer-social { display: flex; gap: 20px; }
.footer-social a { color: var(--text-tertiary-on-dark); transition: color .25s; }
.footer-social a:hover { color: var(--text-on-dark); }

/* ─────────────────────────────────────────
   SCROLL REVEAL
───────────────────────────────────────── */
.reveal {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity .85s var(--ease), transform .85s var(--ease);
}
.reveal.visible { opacity: 1; transform: none; }
.rd1 { transition-delay: .12s; }
.rd2 { transition-delay: .24s; }
.rd3 { transition-delay: .36s; }

/* ─────────────────────────────────────────
   KEYFRAMES
───────────────────────────────────────── */
@keyframes riseIn {
  from { opacity: 0; transform: translateY(18px); }
  to   { opacity: 1; transform: none; }
}
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

/* ─────────────────────────────────────────
   ── PAGE: HOME ──
───────────────────────────────────────── */

/* Home pillars section: Vision band (parchment), alternates with Two Paths (Pillars) */
.home-pillars-section {
  padding: var(--section-py) var(--section-px);
  background: var(--surface-light);
  color: var(--text-on-light);
}

.home-pillars-section .section-heading {
  color: var(--text-on-light);
}

.home-pillars-section .section-body {
  color: var(--text-secondary-on-light);
}

.home-pillars-section .section-label {
  color: var(--accent-on-light);
}

.home-pillars-section .pillar-card {
  background: rgba(14,13,11,.04);
}

.home-pillars-section .pillar-card::before {
  background: linear-gradient(90deg, var(--accent-on-light), transparent);
}

.home-pillars-section .pillar-card .pillar-title {
  color: var(--text-on-light);
}

.home-pillars-section .pillar-card .pillar-body {
  color: var(--text-secondary-on-light);
}

.home-pillars-section .btn-secondary {
  color: var(--text-on-light);
  border-color: rgba(14,13,11,.3);
}

.home-pillars-section .btn-secondary:hover {
  border-color: var(--text-on-light);
  background: rgba(14,13,11,.06);
}

/* Row 1: eyebrow (left). Row 2: main heading (left) + intro copy (right), like editorial split */
.home-pillars-header {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 56px;
  row-gap: 20px;
  margin-bottom: 0;
  align-items: start;
}

.home-pillars-header__label {
  grid-column: 1;
  grid-row: 1;
}

.home-pillars-header__heading {
  grid-column: 1;
  grid-row: 2;
  margin: 0;
}

.home-pillars-header__body {
  grid-column: 2;
  grid-row: 2;
  margin: 0;
  max-width: none;
  justify-self: start;
}

.home-pillars-intro {
  max-width: 44ch;
}

/* ─────────────────────────────────────────
   ── PAGE: ABOUT ──
───────────────────────────────────────── */
.about-vision {
  padding: var(--section-py) var(--section-px);
  background: var(--surface-light);
}

.about-vision .two-col-wide.two-col-equal > .reveal:first-child {
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.about-vision .img-block.about-vision-img {
  flex: 1 1 auto;
  min-height: 280px;
  height: 100%;
  width: 100%;
}

/* Image out of flow so intrinsic height does not stretch the column; fills clipped box */
.about-vision .img-block.about-vision-img img,
.section-rich .img-block.about-vision-img img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.about-vision .section-heading {
  color: var(--text-on-light);
  margin-bottom: 24px;
}
.about-vision .section-body {
  color: var(--text-secondary-on-light);
}
.about-vision .section-body + .section-body {
  margin-top: 20px;
}
.about-vision .pull-quote {
  margin-top: 40px;
}

.homebuyers-insight-callout {
  margin-top: 28px;
  max-width: 72ch;
  padding-left: 18px;
  border-left: 2px solid var(--accent-on-light);
  color: var(--text-secondary-on-light);
  font-size: 15px;
  line-height: 1.75;
}

/* ─────────────────────────────────────────
   ── PAGE: CONTACT ──
───────────────────────────────────────── */
.contact-section {
  background: var(--surface-light);
  padding: var(--section-py) var(--section-px);
  color: var(--text-on-light);
}

.contact-section .section-heading {
  color: var(--text-on-light);
  font-size: clamp(28px, 3.5vw, 44px);
  margin-bottom: 20px;
}

.contact-section .section-lead {
  color: var(--text-secondary-on-light);
}

.contact-details {
  display: flex;
  flex-direction: column;
  gap: 32px;
  margin-top: 48px;
}

.cd-label {
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--accent-on-light);
  margin-bottom: 6px;
}

.cd-val {
  font-family: var(--sans);
  font-size: 17px;
  line-height: 1.6;
  color: var(--text-on-light);
}

.cd-val a {
  border-bottom: 1px solid rgba(14,13,11,.2);
  transition: border-color .25s;
}

.cd-val a:hover { border-bottom-color: var(--surface-root); }

/* ─────────────────────────────────────────
   ── INTERNAL PAGES: split hero (Investors pattern) ──
───────────────────────────────────────── */
.page-internal .hero.hero-compact .hero-headline {
  font-size: clamp(28px, 3.5vw, 52px);
}

/* ─────────────────────────────────────────
   PAGE: LEGAL (Privacy + Terms)
───────────────────────────────────────── */
body.page-legal {
  padding-top: 76px;
  background: var(--surface-root);
  color: var(--text-on-dark);
  /* Taupe accent for chrome (tabs, callout rule, links) */
  --legal-accent: var(--label-on-dark);
}

.legal-banner {
  background: var(--surface-elevated);
  padding: 56px 56px 44px;
  border-bottom: 1px solid rgba(244,240,230,.06);
}

.legal-banner-inner {
  max-width: 1240px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 40px;
  flex-wrap: wrap;
}

.legal-eyebrow {
  display: block;
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .3em;
  text-transform: uppercase;
  color: var(--label-on-dark);
  margin-bottom: 16px;
}

.legal-title {
  font-family: var(--sans);
  font-size: clamp(32px, 4vw, 52px);
  font-weight: 400;
  font-style: normal;
  line-height: 1.08;
  color: var(--text-on-dark);
}

.legal-meta-label {
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--text-tertiary-on-dark);
  margin-bottom: 6px;
}

.legal-meta-date {
  font-family: var(--sans);
  font-size: 15px;
  font-weight: 500;
  color: var(--text-secondary-on-dark);
}

.legal-tabs-bar {
  background: var(--surface-elevated);
  border-bottom: 1px solid rgba(244,240,230,.06);
}

.legal-tabs {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 56px;
  display: flex;
  flex-wrap: wrap;
  gap: 0;
}

.legal-tab {
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .18em;
  text-transform: uppercase;
  padding: 18px 22px 16px;
  margin: 0;
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  color: var(--label-on-dark);
  cursor: pointer;
  transition: color .2s, border-color .2s;
}

.legal-tab:hover {
  color: var(--text-on-dark);
}

.legal-tab.active {
  color: var(--text-on-dark);
  border-bottom-color: var(--legal-accent);
}

.legal-updated-strip {
  background: var(--surface-elevated);
}

.legal-updated-inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 56px 28px;
  display: flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 16px;
  flex-wrap: wrap;
}

.legal-updated-inner .legal-meta-label {
  margin-bottom: 0;
}

.legal-rule {
  height: 1px;
  background: rgba(244,240,230,.06);
}

.legal-body {
  display: grid;
  grid-template-columns: minmax(0, 240px) minmax(0, 1fr);
  gap: 56px;
  max-width: 1240px;
  margin: 0 auto;
  padding: 56px 56px 120px;
  align-items: start;
}

.toc {
  position: sticky;
  top: 100px;
}

.toc-heading {
  font-family: var(--sans);
  font-size: 10px;
  font-weight: 500;
  letter-spacing: .22em;
  text-transform: uppercase;
  color: var(--label-on-dark);
  margin-bottom: 16px;
}

.toc-list { list-style: none; }

.toc-item {
  margin-bottom: 10px;
}

.toc-item a {
  font-size: 13px;
  font-weight: 500;
  line-height: 1.45;
  color: var(--label-on-dark);
  cursor: pointer;
  transition: color .2s;
  border-bottom: 1px solid transparent;
}

.toc-item a:hover,
.toc-item a.active {
  color: var(--text-on-dark);
}

.doc-content {
  min-width: 0;
}

.doc-callout {
  background: rgba(244,240,230,.04);
  border-left: 2px solid var(--legal-accent);
  padding: 20px 24px;
  margin-bottom: 40px;
  font-size: 15px;
  line-height: 1.75;
  color: var(--text-secondary-on-dark);
}

.doc-callout strong {
  color: var(--text-on-dark);
}

.doc-section {
  margin-bottom: 48px;
  scroll-margin-top: 100px;
}

.doc-section-num {
  display: block;
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .2em;
  color: var(--label-on-dark);
  margin-bottom: 10px;
}

.doc-section-heading {
  font-family: var(--sans);
  font-size: clamp(22px, 2.2vw, 28px);
  font-weight: 400;
  font-style: normal;
  color: var(--text-on-dark);
  margin-bottom: 20px;
  line-height: 1.15;
}

.doc-subhead {
  font-family: var(--sans);
  font-size: 17px;
  font-weight: 500;
  font-style: normal;
  color: var(--text-on-dark);
  margin: 28px 0 12px;
}

.doc-p {
  font-size: 15px;
  line-height: 1.85;
  color: var(--text-secondary-on-dark);
  margin-bottom: 16px;
}

.doc-p strong {
  color: var(--text-on-dark);
}

.doc-section .doc-p em {
  font-style: italic;
  font-family: var(--serif);
}

.doc-list {
  margin: 12px 0 20px 22px;
  padding-left: 0;
  color: var(--text-secondary-on-dark);
  font-size: 15px;
  line-height: 1.75;
}

.doc-list li {
  margin-bottom: 8px;
}

.doc-list li strong {
  color: var(--text-on-dark);
}

.doc-contact-link {
  color: var(--label-on-dark);
  border-bottom: 1px solid rgba(162, 157, 146, 0.35);
  transition: color .2s, border-color .2s;
}

.doc-contact-link:hover {
  color: var(--text-on-dark);
  border-bottom-color: var(--label-on-dark);
}

.doc-inline-link {
  color: var(--label-on-dark);
  border-bottom: 1px solid rgba(162, 157, 146, 0.35);
  transition: color .2s, border-color .2s;
}

.doc-inline-link:hover {
  color: var(--text-on-dark);
  border-bottom-color: var(--label-on-dark);
}

/* ─────────────────────────────────────────
   RESPONSIVE
───────────────────────────────────────── */
/* Equal 50/50 image|text rows: `.two-col-wide.two-col-equal` beats `.two-col-wide` specificity, so it stayed two columns until now */
@media (max-width: 1200px) {
  .two-col-wide.two-col-equal,
  .two-col-narrow.two-col-equal {
    grid-template-columns: 1fr;
    gap: 40px;
  }

  .about-vision .two-col-wide.two-col-equal > .reveal:first-child {
    display: block;
  }
  .about-vision .img-block.about-vision-img {
    min-height: min(260px, 55vw);
    height: auto;
    aspect-ratio: 16 / 10;
    max-height: 48vh;
    flex: none;
  }

  .section-rich .two-col-wide.two-col-equal > .reveal:first-child {
    display: block;
  }
  .section-rich .img-block.about-vision-img {
    flex: none;
    min-height: min(260px, 55vw);
    height: auto;
    aspect-ratio: 16 / 10;
    max-height: 48vh;
  }
}

@media (max-width: 1024px) {
  :root {
    --section-py: 104px;
    --section-px: 36px;
    --cta-split-py: 72px;
  }

  .two-col-wide { grid-template-columns: 1fr; gap: 52px; }

  .two-col,
  .two-col-narrow {
    grid-template-columns: 1fr;
    gap: 52px;
  }

  .footer-top {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 40px;
    row-gap: 40px;
  }

  .site-footer {
    padding: 64px var(--section-px) 40px;
  }

  /* Split heroes & CTAs: single column from tablet down */
  .hero.hero-split {
    grid-template-columns: 1fr;
    min-height: auto;
  }
  .hero.hero-split .hero-media {
    min-height: 44vh;
    order: 2;
  }
  .hero.hero-split .hero-text {
    order: 1;
    padding: 72px var(--section-px);
  }
  /* Internal pages: top-align copy in stacked band (no dead space under last line) */
  .page-internal .hero.hero-split .hero-text {
    justify-content: flex-start;
  }

  .hb-editorial-split {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    column-gap: 0;
    row-gap: 24px;
  }
  .hb-editorial-split__heading,
  .hb-editorial-split__body {
    grid-column: 1;
  }
  .hb-editorial-split__label { grid-row: 1; }
  .hb-editorial-split__heading { grid-row: 2; }
  .hb-editorial-split__body {
    grid-row: 3;
    max-width: none;
  }
  /* Label + row-gap both applied — drop label margin so eyebrow→heading isn’t doubled */
  .hb-editorial-split .hb-editorial-split__label {
    margin-bottom: 0;
  }

  .cta-banner.cta-split {
    grid-template-columns: 1fr;
    min-height: auto;
  }
  .cta-banner.cta-split .cta-banner-text {
    order: 1;
    padding: var(--cta-split-py) var(--section-px);
  }
  .cta-banner.cta-split .cta-banner-media {
    order: 2;
    min-height: min(400px, 44vh);
  }

  .hero-actions {
    flex-wrap: wrap;
    gap: 12px;
  }

  .home-pillars-header {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    row-gap: 24px;
    column-gap: 0;
  }
  .home-pillars-header__label,
  .home-pillars-header__heading,
  .home-pillars-header__body {
    grid-column: 1;
    grid-row: auto;
  }
  .home-pillars-header__label {
    margin-bottom: 0;
  }
  .home-pillars-header__body {
    justify-self: stretch;
    max-width: none;
  }

  .pillars-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .pillars-grid--cols-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .pillars-grid--cols-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .pillars-grid-2x2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .pillar-card__split {
    grid-template-columns: 1fr;
    gap: 28px;
  }

  .path-grid {
    grid-template-columns: 1fr;
  }

  .legal-banner {
    padding: 48px var(--section-px) 36px;
  }
  .legal-tabs {
    padding: 0 var(--section-px);
  }
  .legal-updated-inner {
    padding: 0 var(--section-px) 24px;
  }
  .legal-body {
    grid-template-columns: 1fr;
    gap: 40px;
    padding: 48px var(--section-px) 100px;
  }
  .toc {
    position: relative;
    top: auto;
  }
}

@media (max-width: 860px) {
  .site-nav { padding: 0 16px; }
  .nav-links { display: none; }
  .nav-links.open { display: flex; flex-direction: column; position: fixed; top: 76px; left: 0; right: 0; background: rgba(244,240,230,.98); padding: 24px; gap: 0; border-bottom: 1px solid rgba(14,13,11,.1); }
  .nav-links.open .nav-link { padding: 16px 0; border-bottom: 1px solid rgba(14,13,11,.08); display: block; color: var(--text-secondary-on-light); }
  .nav-links.open .nav-link:hover,
  .nav-links.open .nav-link.active { color: var(--text-on-light); }
  .nav-burger { display: flex; }

  .hero.hero-split .hero-text {
    padding: 56px var(--section-px);
  }
  .hero.hero-split .hero-media {
    min-height: 48vh;
  }

  /* Slightly looser heading line-heights on narrow viewports */
  .hero-headline {
    line-height: 1.1;
  }
  .section-heading {
    line-height: 1.14;
  }
  .cta-heading {
    line-height: 1.18;
  }
  .path-title {
    line-height: 1.28;
  }
  .pillar-title {
    line-height: 1.28;
  }
  .step-title {
    line-height: 1.35;
  }
  .legal-title {
    line-height: 1.14;
  }
  .doc-section-heading {
    line-height: 1.22;
  }

  .hero-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .btn-primary,
  .btn-secondary,
  .btn-primary-dark {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    justify-content: center;
  }

  .cta-actions-row {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }

  .nav-links.open .nav-cta {
    width: 100%;
    justify-content: center;
    margin-left: 0;
  }

  .path-content > .btn-primary {
    align-self: stretch;
    width: 100%;
  }

  .section-dark, .section-rich, .section-light { padding: var(--section-py) var(--section-px); }
  .home-pillars-section, .about-vision, .contact-section { padding: var(--section-py) var(--section-px); }

  .cta-banner.cta-split .cta-banner-media {
    min-height: min(320px, 40vh);
  }

  .pillars-grid,
  .pillars-grid--cols-3,
  .pillars-grid--cols-4 {
    grid-template-columns: 1fr;
  }
  .pillar-card--span-2 { grid-column: span 1; }

  .form-row { grid-template-columns: 1fr; }
  .cta-caption { right: 0; bottom: 0; }

  .footer-top { grid-template-columns: 1fr; gap: 36px; }
  .footer-mid {
    grid-template-columns: 1fr;
    column-gap: 0;
    row-gap: 40px;
    padding-top: 40px;
  }
  .footer-disclaimer-text,
  .footer-ack-text {
    text-align: left;
    max-width: none;
    width: 100%;
  }
  .footer-bottom {
    flex-direction: column;
    align-items: flex-start;
    gap: 20px;
    text-align: left;
  }
  .footer-copy {
    max-width: none;
    width: 100%;
  }
  .footer-social {
    justify-content: flex-start;
  }
  .footer-brand-desc {
    max-width: none;
  }
  .site-footer { padding: 56px var(--section-px) 32px; }

  .legal-banner { padding: 40px var(--section-px) 32px; }
  .legal-tabs { padding: 0 var(--section-px); }
  .legal-updated-inner { padding: 0 var(--section-px) 24px; }
  .legal-body {
    padding: 40px var(--section-px) 80px;
  }

  /* Overrides 1024px :root — phone / small tablet */
  :root {
    --section-py: 88px;
    --section-px: 24px;
    --cta-split-py: 52px;
  }
}

@media (max-width: 640px) {
  :root {
    --section-py: 76px;
    --section-px: 20px;
    --cta-split-py: 44px;
  }

  .hero.hero-split .hero-text {
    padding: 48px var(--section-px);
  }

  .cta-heading {
    margin-bottom: 16px;
    font-size: clamp(24px, 7vw, 40px);
  }
  .cta-body {
    margin-bottom: 26px;
    font-size: 15px;
  }
  .cta-content .section-label {
    margin-bottom: 14px;
  }
  .cta-banner.cta-split .cta-banner-media {
    min-height: min(320px, 38vh);
  }
}

@media (max-width: 480px) {
  :root {
    --section-py: 64px;
    --section-px: 18px;
    --cta-split-py: 36px;
  }

  .nav-brand {
    font-size: 15px;
    gap: 8px;
  }

  .btn-primary,
  .btn-secondary,
  .btn-primary-dark {
    padding: 14px 22px;
    font-size: 11px;
    letter-spacing: .14em;
  }

  .path-content {
    padding: 28px 24px 32px;
  }

  .pillar-card {
    padding: 36px 24px;
  }

  .pull-quote {
    padding-left: 24px;
    font-size: clamp(20px, 6vw, 28px);
  }

  .step {
    flex-direction: column;
    gap: 12px;
    padding: 28px 0;
  }
  .step-num {
    width: auto;
    min-width: 0;
    padding-top: 0;
  }

  .legal-tab {
    padding: 14px 12px 12px;
    font-size: 10px;
    letter-spacing: .12em;
  }

  .footer-copy {
    overflow-wrap: anywhere;
    line-height: 1.5;
  }

  .cd-val {
    font-size: 16px;
    overflow-wrap: anywhere;
  }

  .hero.hero-split .hero-text {
    padding: 40px var(--section-px);
  }

  .cta-heading {
    margin-bottom: 12px;
  }
  .cta-body {
    margin-bottom: 20px;
    line-height: 1.75;
  }
  .cta-content .section-label {
    margin-bottom: 12px;
  }
  .cta-banner.cta-split .cta-banner-media {
    min-height: min(260px, 34vh);
  }
}

/* Multi-page: real links share button / card styles */
a.nav-brand {
  text-decoration: none;
  color: inherit;
}
a.nav-link,
a.nav-cta,
a.footer-link {
  text-decoration: none;
}
a.btn-primary,
a.btn-secondary,
a.btn-primary-dark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  font-family: var(--sans);
  font-weight: 500;
}
a.path-card {
  text-decoration: none;
  color: inherit;
}
.nav-cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
