@font-face { font-family: "Montserrat"; src: url("fonts/montserrat.woff2") format("woff2"); font-weight: 100 900; font-style: normal; font-display: swap; }
@font-face { font-family: "DM Sans"; src: url("fonts/dm-sans.woff2") format("woff2"); font-weight: 100 1000; font-style: normal; font-display: swap; }

:root {
  /* Proclaim Lending brand: navy, bronze, ivory (sampled from the approved PL monogram) */
  --navy: #0A2442;
  --navy-deep: #061830;
  --navy-soft: #1D3B5F;
  --ivory: #FAF8F3;
  --stone: #EFEBE3;
  --ink: #0A2442;
  --muted: #56616B;
  --bronze: #A07644;
  --bronze-light: #D3B07E;
  --bronze-hi: #E0C08F;
  --line: #DCD8CF;
  --error: #9E2A1F;

  --font: "DM Sans", "Helvetica Neue", Arial, sans-serif;
  --display: "Montserrat", "Helvetica Neue", Arial, sans-serif;

  --s-1: 0.85rem;
  --s0: 1.0625rem;
  --s1: 1.3rem;
  --s2: 1.55rem;
  --s4: clamp(2rem, 3.4vw, 2.75rem);
  --s5: clamp(2.4rem, 4.8vw, 4.1rem);

  --gap: clamp(1rem, 2.5vw, 2rem);
  --section: clamp(4rem, 9vw, 7.5rem);
  --radius-s: 3px;
  --radius-m: 6px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 6.5rem; -webkit-text-size-adjust: 100%; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }

body {
  margin: 0;
  font-family: var(--font);
  font-size: var(--s0);
  line-height: 1.55;
  color: var(--ink);
  background: var(--ivory);
  font-variant-numeric: lining-nums;
}
img, svg { display: block; max-width: 100%; }
a { color: var(--navy); text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 3px solid var(--bronze); outline-offset: 3px; }

h1, h2, h3, legend, .calc-title, .brand-name, summary, .audience-list dt, .prog-table tbody th { font-family: var(--display); }
h1, h2, h3 { margin: 0; font-weight: 700; line-height: 1.12; letter-spacing: -0.015em; }
h2 { font-size: var(--s4); }
h3 { font-size: var(--s1); font-weight: 700; line-height: 1.2; }
p { margin: 0 0 1em; }

.wrap { width: min(1180px, 100% - 2 * var(--gap)); margin-inline: auto; }
.skip { position: absolute; left: -999px; top: 0; background: var(--bronze); color: var(--ink); padding: .6rem 1rem; z-index: 50; }
.skip:focus { left: 1rem; top: 1rem; }

/* buttons */
.btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 48px; padding: 0.7rem 1.4rem;
  font: inherit; font-weight: 700; font-size: 1rem;
  border-radius: var(--radius-s); border: 2px solid transparent;
  text-decoration: none; cursor: pointer;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}
.btn-brass { background: var(--bronze-light); color: var(--navy); }
.btn-brass:hover { background: var(--bronze-hi); }
.btn-spruce { background: var(--navy); color: #fff; }
.btn-spruce:hover { background: var(--navy-deep); }
.btn-line { border-color: currentColor; color: inherit; background: transparent; }
.btn-line:hover { background: rgba(255,255,255,.08); }
.btn-small { min-height: 40px; padding: .45rem 1rem; }
.btn-block { width: 100%; }
.btn[disabled] { opacity: .6; cursor: progress; }

/* header */
.site-head { position: sticky; top: 0; z-index: 20; background: var(--ivory); color: var(--navy); border-bottom: 1px solid var(--line); transition: box-shadow .2s ease; }
.site-head.scrolled { box-shadow: 0 8px 30px -18px rgba(10,36,66,.35); }
.head-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 92px; }
.brand { display: inline-flex; align-items: center; gap: .55rem; color: inherit; text-decoration: none; }
.brand { gap: .9rem; }
.brand-mark { width: auto; height: 60px; }
.brand-name { display: flex; flex-direction: column; align-items: center; font-weight: 800; font-size: 1.85rem; line-height: 1; letter-spacing: .06em; }
.brand-sub { font-weight: 500; font-size: .74rem; letter-spacing: .6em; margin: .5rem -.6em 0 0; opacity: .92; }
.brand-foot .brand-mark { height: 44px; }
.brand-foot .brand-name { font-size: 1.35rem; }
.brand-foot .brand-sub { font-size: .6rem; }
.site-nav { display: flex; align-items: center; gap: 1.6rem; }
.site-nav a:not(.btn) { color: var(--navy); text-decoration: none; font-size: 1rem; font-weight: 500; }
.site-nav a:not(.btn):hover { text-decoration: underline; }
.nav-toggle { display: none; }

@media (max-width: 860px) {
  .nav-toggle { display: inline-flex; background: none; color: var(--navy); border: 1.5px solid var(--navy); border-radius: var(--radius-s); font: inherit; font-weight: 600; padding: .4rem .8rem; cursor: pointer; }
  .site-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; flex-direction: column; align-items: stretch; gap: 0; background: var(--ivory); padding: .5rem var(--gap) 1.25rem; border-top: 1px solid var(--line); box-shadow: 0 20px 30px -20px rgba(10,36,66,.3); }
  .site-nav.open { display: flex; }
  .site-nav a:not(.btn) { padding: .8rem 0; border-bottom: 1px solid var(--line); }
  .site-nav .btn { margin-top: 1rem; }
}

/* hero */
.hero { background: var(--ivory); color: var(--ink); padding: clamp(2.5rem, 6vw, 5rem) 0 clamp(3.5rem, 7vw, 6rem); position: relative; border-bottom: 1px solid var(--line); }
.hero-grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: clamp(2rem, 5vw, 5rem); align-items: center; position: relative; z-index: 1; }
.hero h1 { font-size: var(--s5); font-weight: 700; line-height: 1.08; letter-spacing: -0.025em; max-width: 15ch; text-wrap: balance; }
.lede { line-height: 1.5; margin-top: 1.5rem; max-width: 32em; color: var(--muted); font-size: 1.2rem; }
.hero-actions { display: flex; flex-wrap: wrap; gap: .8rem; margin-top: 2rem; }
.hero-note { margin-top: 1.25rem; font-size: var(--s-1); color: var(--muted); }
.hero .btn-line { color: var(--navy); }
.hero .btn-line:hover { background: rgba(10,36,66,.06); }

/* calculator */
.calc {
  background: var(--navy); color: var(--ivory);
  border-radius: var(--radius-m);
  padding: clamp(1.25rem, 3vw, 2rem);
  box-shadow: 0 34px 60px -34px rgba(10, 36, 66, .55);
  border-top: 6px solid var(--bronze-light);
}
.calc .field label { color: var(--ivory); }
.calc .money::before { color: var(--muted); }
.calc input:focus { outline-color: var(--bronze-light); border-color: var(--bronze-light); }
.calc-title { font-size: var(--s2); margin-bottom: .4rem; }
.calc-eg { margin: 0 0 1rem; font-size: .88rem; line-height: 1.45; color: rgba(250,248,243,.72); }
.calc-tabs { display: grid; grid-template-columns: repeat(2, 1fr); background: rgba(255,255,255,.08); border-radius: var(--radius-s); padding: 4px; gap: 4px; margin-bottom: 1.25rem; }
.calc-tabs label { position: relative; }
.calc-tabs input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.calc-tabs span { display: block; text-align: center; padding: .55rem .2rem; font-size: .86rem; white-space: nowrap; font-weight: 600; border-radius: 3px; color: rgba(250,248,243,.7); transition: background-color .15s, color .15s; }
.calc-tabs input:checked + span { background: var(--bronze-light); color: var(--navy); }
.calc-tabs input:focus-visible + span { outline: 3px solid var(--bronze-light); outline-offset: 1px; }
.calc-tabs label:hover input:not(:checked) + span { color: var(--ivory); }

.calc-fields { display: grid; grid-template-columns: 1fr 1fr; gap: .9rem 1rem; }
.calc-fields .field:last-child:nth-child(odd) { grid-column: 1 / -1; }
.field[hidden] { display: none; }
.field label, .f label { display: block; font-size: .9rem; font-weight: 600; margin-bottom: .3rem; color: var(--ink); }
.money { position: relative; }
.money::before { content: "$"; position: absolute; left: .8rem; top: 50%; transform: translateY(-50%); color: var(--muted); font-weight: 600; pointer-events: none; }
.money input { padding-left: 1.6rem; }
input, select, textarea {
  width: 100%; font: inherit; font-size: 1rem; color: var(--ink);
  background: #fff; border: 1.5px solid var(--line); border-radius: var(--radius-s);
  padding: .65rem .8rem; min-height: 46px;
  font-variant-numeric: tabular-nums;
}
input:focus, select:focus, textarea:focus { border-color: var(--navy); outline: 2px solid var(--navy); outline-offset: 0; }
textarea { resize: vertical; min-height: 110px; }

.calc-out { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: .25rem 1rem; margin: 1.4rem 0 1.2rem; padding-top: 1.2rem; border-top: 1px solid rgba(255,255,255,.16); }
.out-label { display: block; font-size: .88rem; color: rgba(250,248,243,.7); }
.out-num { display: block; font-family: var(--display); font-size: clamp(2.3rem, 4.4vw, 3rem); font-weight: 700; line-height: 1; letter-spacing: -.02em; font-variant-numeric: tabular-nums; color: var(--bronze-hi); }
.out-side { text-align: right; }
.out-num-sm { display: block; font-family: var(--display); font-size: 1.3rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.out-rule { grid-column: 1 / -1; margin: .6rem 0 0; font-size: .88rem; color: rgba(250,248,243,.7); }
.out-warn { grid-column: 1 / -1; margin: .35rem 0 0; font-size: .88rem; color: #F3B9AE; font-weight: 600; }
.calc-fine { margin: .75rem 0 0; font-size: .8rem; color: rgba(250,248,243,.6); text-align: center; }
.cover { grid-column: 1 / -1; height: 10px; border-radius: 5px; background: rgba(250,248,243,.22); overflow: hidden; margin-top: .9rem; }
.cover-loan { display: block; height: 100%; background: var(--bronze-light); border-radius: 5px; transition: width .25s ease; }
.cover-key { grid-column: 1 / -1; display: flex; gap: 1.1rem; margin: .45rem 0 0; font-size: .8rem; color: rgba(250,248,243,.7); }
.cover-key .k { display: inline-block; width: 10px; height: 10px; border-radius: 2px; margin-right: .35rem; vertical-align: -1px; }
.k-loan { background: var(--bronze-light); } .k-cash { background: rgba(250,248,243,.22); }
.cover-pct { margin-left: auto; color: var(--ivory); }
.dscr { grid-column: 1 / -1; margin-top: 1rem; padding-top: .9rem; border-top: 1px dashed rgba(255,255,255,.18); }
.dscr > div { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; }
.dscr .out-num-sm { color: var(--bronze-hi); font-size: 1.5rem; }
.dscr p { margin: .4rem 0 0; font-size: .85rem; color: rgba(250,248,243,.7); }
.dscr.good .out-num-sm { color: #9ED8A8; } .dscr.low .out-num-sm { color: #F3B9AE; }

/* section shells */
.section-head { max-width: 46rem; margin-bottom: clamp(1.75rem, 4vw, 2.75rem); }
.section-head p { margin-top: .9rem; color: var(--muted); }

/* programs */
.programs { padding: var(--section) 0; }
.table-scroll { overflow-x: auto; border-top: 3px solid var(--ink); }
.prog-table { width: 100%; border-collapse: collapse; min-width: 760px; }
.prog-table th, .prog-table td { text-align: left; vertical-align: top; padding: 1.1rem 1rem 1.1rem 0; border-bottom: 1px solid var(--line); }
.prog-table thead th { font-size: .85rem; font-weight: 600; color: var(--muted); padding-top: .8rem; padding-bottom: .8rem; }
.prog-table tbody th { font-size: 1.15rem; font-weight: 700; line-height: 1.2; width: 15%; padding-right: 1.25rem; }
.prog-table td { font-size: .98rem; }
.prog-table td:nth-child(3), .prog-table td:nth-child(6) { white-space: nowrap; font-weight: 600; }
.table-note { margin-top: 1.1rem; font-size: .92rem; color: var(--muted); max-width: 60rem; }

/* flip-to-rental path */
.path { margin-top: clamp(2.5rem, 5vw, 4rem); padding: clamp(1.5rem, 3vw, 2.5rem); background: var(--stone); border-radius: var(--radius-m); display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: var(--gap) 3rem; align-items: start; }
.path-head h3 { font-size: 1.5rem; margin-bottom: .6rem; }
.path-head p { color: var(--muted); margin: 0; }
.path-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; counter-reset: p; }
.path-steps li { counter-increment: p; position: relative; padding-top: 2.4rem; font-size: .95rem; color: var(--muted); }
.path-steps li::before { content: counter(p); position: absolute; top: 0; left: 0; width: 1.75rem; height: 1.75rem; border-radius: 50%; background: var(--bronze-light); color: var(--navy); font-weight: 700; display: grid; place-items: center; font-size: .9rem; }
.path-steps li::after { content: ""; position: absolute; top: .85rem; left: 2.1rem; right: 0; height: 2px; background: var(--line); }
.path-steps li:last-child::after { display: none; }
.path-steps span { display: block; font-family: var(--display); font-weight: 700; color: var(--ink); margin-bottom: .3rem; font-size: 1.02rem; }

/* how we're paid */
.paid { margin-top: clamp(2rem, 4vw, 3rem); padding: clamp(1.25rem, 3vw, 2rem); border-left: 4px solid var(--bronze-light); background: var(--stone); border-radius: 0 var(--radius-m) var(--radius-m) 0; max-width: 56rem; }
.paid h3 { font-size: 1.3rem; margin-bottom: .5rem; }
.paid p { margin: 0; color: var(--muted); }

/* what you'll need */
.needs { margin-top: clamp(2.5rem, 5vw, 4rem); border-top: 2px solid var(--navy); padding-top: 1.75rem; }
.needs h3 { font-size: 1.5rem; margin-bottom: 1.25rem; }
.needs-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
.needs h4 { font-family: var(--display); font-size: 1rem; margin: 0 0 .6rem; color: var(--bronze); }
.needs ul { margin: 0; padding-left: 1.1rem; color: var(--muted); font-size: .95rem; }
.needs li { margin-bottom: .4rem; }

.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.deal-details { border: 1px solid var(--line); border-radius: var(--radius-s); margin-bottom: 1.5rem; }
.deal-details > summary { padding: .9rem 2.5rem .9rem 1rem; font-size: 1rem; }
.deal-details > summary span { display: block; font-family: var(--font); font-weight: 400; font-size: .88rem; color: var(--muted); margin-top: .15rem; }
.deal-details fieldset { padding: .25rem 1rem 0; margin-bottom: .5rem; }
.deal-details[open] > summary { border-bottom: 1px solid var(--line); }

/* audience */
.audience { background: var(--stone); padding: var(--section) 0; }
.audience-grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 2fr); gap: var(--gap); }
.audience-list { margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 2.25rem 3rem; }
.audience-list div { border-left: 3px solid var(--bronze); padding-left: 1.1rem; }
.audience-list dt { font-size: 1.22rem; font-weight: 700; line-height: 1.25; margin-bottom: .55rem; text-wrap: balance; }
.prog-table tr.focus th { color: var(--navy); }
.prog-table tr.focus th::after { content: "Our focus"; display: block; margin-top: .35rem; font-size: .78rem; font-weight: 600; color: var(--bronze); letter-spacing: .01em; }
.audience-list dd { margin: 0; color: var(--muted); max-width: 32em; }

/* process */
.process { padding: var(--section) 0; }
.steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); counter-reset: step; position: relative; }
.steps li { counter-increment: step; position: relative; padding: 4.25rem 1.5rem 0 0; }
.steps li::before {
  content: counter(step); position: absolute; top: 0; left: 0;
  width: 2.75rem; height: 2.75rem; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--navy); color: #fff; font-weight: 800; font-size: 1.1rem;
}
.steps li::after { content: ""; position: absolute; top: 1.375rem; left: 3.25rem; right: .5rem; height: 2px; background: var(--line); }
.steps li:last-child::after { display: none; }
.steps h3 { margin-bottom: .55rem; }
.steps p { color: var(--muted); font-size: .98rem; }

/* about */
.about { background: var(--navy-deep); color: #fff; padding: var(--section) 0; }
.about-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.about h2 { font-size: var(--s4); line-height: 1.15; color: var(--ivory); max-width: 14ch; }
.about-mark { width: clamp(120px, 16vw, 180px); height: auto; margin-bottom: 2rem; }
.about-ref { margin-top: 1.25rem; color: var(--bronze-light); font-size: .95rem; }
.about-copy h3 { color: var(--bronze-light); font-size: 1.1rem; margin: 2rem 0 .6rem; }
.about-copy { font-size: 1.12rem; line-height: 1.65; color: rgba(255,255,255,.88); max-width: 36em; }
.about-copy p:last-child { margin-bottom: 0; }

/* submit */
.submit { padding: var(--section) 0; background: var(--ivory); }
.submit-grid { display: grid; grid-template-columns: minmax(0, .75fr) minmax(0, 1.5fr); gap: clamp(2rem, 5vw, 5rem); align-items: start; }
.submit-intro { position: sticky; top: 6.5rem; }
.submit-intro h2 { margin-bottom: 1rem; }
.submit-intro p { color: var(--muted); max-width: 26em; }
.submit-alt a { font-weight: 700; }
.deal-form { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-m); padding: clamp(1.25rem, 3.5vw, 2.5rem); }
fieldset { border: 0; padding: 0; margin: 0 0 1.75rem; }
legend { font-size: 1.3rem; font-weight: 700; padding: 0; margin-bottom: 1rem; }
.f { margin-bottom: 1rem; }
.row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1rem; }
.row-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 1rem; }
.opt { font-weight: 400; color: var(--muted); }
.hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.consent { display: flex; gap: .7rem; align-items: flex-start; font-size: .9rem; color: var(--muted); margin: .25rem 0 1.5rem; cursor: pointer; }
.consent input { width: 20px; height: 20px; min-height: 0; margin-top: .15rem; flex: none; accent-color: var(--navy); }
.f.invalid input, .f.invalid select, .consent.invalid input { border-color: var(--error); outline-color: var(--error); }
.f .err { display: block; color: var(--error); font-size: .85rem; margin-top: .3rem; font-weight: 600; }
.consent.invalid span { color: var(--error); }
.form-status { margin: 1rem 0 0; font-weight: 600; }
.form-status.ok { color: var(--navy); background: var(--stone); padding: 1rem 1.1rem; border-radius: var(--radius-s); font-weight: 500; }
.form-status.bad { color: var(--error); }
.form-status:empty { display: none; }

/* faq */
.faq { background: var(--stone); padding: var(--section) 0; }
.faq-grid { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 2fr); gap: var(--gap); }
.faq-list { border-top: 2px solid var(--ink); }
details { border-bottom: 1px solid var(--line); }
summary { list-style: none; cursor: pointer; padding: 1.15rem 2.5rem 1.15rem 0; font-size: 1.08rem; font-weight: 600; position: relative; }
summary::-webkit-details-marker { display: none; }
summary::after { content: ""; position: absolute; right: .4rem; top: 50%; width: 12px; height: 12px; border-right: 2px solid var(--navy); border-bottom: 2px solid var(--navy); transform: translateY(-70%) rotate(45deg); transition: transform .2s ease; }
details[open] summary::after { transform: translateY(-30%) rotate(-135deg); }
details p { margin: 0 0 1.25rem; color: var(--muted); max-width: 44em; }

/* footer */
.site-foot { background: var(--ink); color: rgba(255,255,255,.78); padding: 3.5rem 0 2.5rem; font-size: .95rem; }
.site-foot a { color: #fff; }
.foot-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem 3rem; }
.brand-foot { color: #fff; margin-bottom: 1rem; }
.foot-tag { color: var(--bronze-light); margin: 0 0 .75rem; }
.foot-nav { display: flex; flex-direction: column; gap: .6rem; align-items: flex-start; }
.disclosure { grid-column: 1 / -1; font-size: .82rem; line-height: 1.6; color: rgba(255,255,255,.6); max-width: 75em; border-top: 1px solid rgba(255,255,255,.14); padding-top: 1.5rem; margin: 0; }
.copy { grid-column: 1 / -1; font-size: .82rem; color: rgba(255,255,255,.5); margin: 0; }

/* privacy page */
.doc { padding: var(--section) 0; }
.doc .wrap { max-width: 44rem; }
.doc h1 { font-size: var(--s4); margin-bottom: 1.5rem; }
.doc h2 { font-size: var(--s2); margin: 2rem 0 .75rem; }

/* responsive */
@media (max-width: 1000px) {
  .path { grid-template-columns: 1fr; }
  .needs-cols { grid-template-columns: 1fr; }
  .hero-grid { grid-template-columns: 1fr; }
  .hero h1 { max-width: 13ch; }
  .steps { grid-template-columns: 1fr 1fr; row-gap: 2.5rem; }
  .steps li:nth-child(2)::after { display: none; }
  .submit-grid, .about-grid, .audience-grid, .faq-grid { grid-template-columns: 1fr; }
  .submit-intro { position: static; }
}
@media (max-width: 640px) {
  .path-steps { grid-template-columns: 1fr; }
  .path-steps li::after { display: none; }
  .calc-fields, .row-2, .row-3 { grid-template-columns: 1fr; }
  .audience-list { grid-template-columns: 1fr; }
  .steps { grid-template-columns: 1fr; }
  .steps li { padding: 0 0 0 4rem; min-height: 2.75rem; }
  .steps li::after { display: none; }
  .calc-out { grid-template-columns: 1fr; }
  .out-side { text-align: left; }
  .foot-grid { grid-template-columns: 1fr; }
  .head-row { min-height: 72px; }
  .brand-mark { height: 46px; }
  .brand-name { font-size: 1.45rem; }
  .brand-sub { font-size: .6rem; }
}

/* ===== v5 hero: the open door ===== */
.hero { padding: 0; border-bottom: 0; overflow: hidden; background: var(--ivory); }
.hero-grid { position: relative; z-index: 1; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); align-items: center; gap: clamp(2rem, 4vw, 4rem); padding: clamp(3rem, 7vw, 6rem) 0 clamp(3rem, 7vw, 6rem); }
/* navy field on the right, cut on the diagonal of the door */
.hero::before { content: ""; position: absolute; top: 0; bottom: 0; right: 0; width: 48%; background: var(--navy); clip-path: polygon(14% 0, 100% 0, 100% 100%, 0 100%); }
/* the bronze door slab, leaning like the monogram */
.hero::after { content: ""; position: absolute; top: -4%; bottom: -4%; right: 41%; width: 4.2%; background: linear-gradient(180deg, var(--bronze-light), var(--bronze)); transform: skewX(-9deg); transform-origin: bottom; opacity: .95; }
.hero-copy { padding-right: clamp(0rem, 2vw, 2rem); }
.hero h1 { font-size: clamp(2.5rem, 5.2vw, 4.5rem); line-height: 1.04; letter-spacing: -0.03em; max-width: 12ch; }
.hero h1 .soft { display: block; font-weight: 500; color: var(--bronze); letter-spacing: -.02em; }
.lede { font-size: 1.15rem; max-width: 30em; }
.hero .btn-brass { background: var(--navy); color: var(--ivory); }
.hero .btn-brass:hover { background: var(--navy-deep); }
.hero .btn-line { color: var(--navy); border-color: var(--navy); }

/* estimator: light card floating over the navy field */
.calc { background: var(--ivory); color: var(--ink); border-top: 0; border-radius: var(--radius-s); box-shadow: 0 50px 80px -40px rgba(6,24,48,.6), 0 0 0 1px rgba(10,36,66,.08); padding: clamp(1.4rem, 3vw, 2.25rem); position: relative; }
.calc::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 6px; background: var(--bronze); border-radius: var(--radius-s) 0 0 var(--radius-s); }
.calc .field label { color: var(--ink); }
.calc-eg { color: var(--muted); }
.calc-tabs { background: var(--stone); }
.calc-tabs span { color: var(--muted); }
.calc-tabs input:checked + span { background: var(--navy); color: var(--ivory); }
.calc-tabs label:hover input:not(:checked) + span { color: var(--ink); }
.calc input:focus { outline-color: var(--navy); border-color: var(--navy); }
.calc-out { border-top-color: var(--line); }
.out-label, .out-rule, .cover-key, .dscr p, .calc-fine { color: var(--muted); }
.out-num { color: var(--navy); }
.out-num-sm { color: var(--ink); }
.cover { background: var(--stone); }
.cover-loan { background: var(--navy); }
.k-loan { background: var(--navy); } .k-cash { background: var(--stone); border: 1px solid var(--line); }
.cover-pct { color: var(--ink); }
.dscr { border-top-color: var(--line); }
.dscr .out-num-sm { color: var(--navy); }
.dscr.good .out-num-sm { color: #2F7D4A; } .dscr.low .out-num-sm { color: var(--error); }
.out-warn { color: var(--error); }
.calc .btn-brass { background: var(--bronze); color: #fff; }
.calc .btn-brass:hover { background: #8F6838; }

/* facts strip under the hero */
.facts { background: var(--navy-deep); color: var(--ivory); }
.facts-row { display: grid; grid-template-columns: repeat(3, 1fr); }
.facts-row div { padding: 1.4rem 1.5rem 1.4rem 0; font-size: .98rem; line-height: 1.4; }
.facts-row div + div { padding-left: 1.5rem; border-left: 1px solid rgba(250,248,243,.18); }
.facts-row strong { display: block; font-family: var(--display); font-size: 1.15rem; font-weight: 700; color: var(--bronze-hi); margin-bottom: .2rem; }

@media (max-width: 1000px) {
  .hero::before { width: 100%; top: auto; height: 62%; clip-path: polygon(0 10%, 100% 0, 100% 100%, 0 100%); }
  .hero::after { right: auto; left: 8%; top: 42%; bottom: -4%; width: 5%; }
  .hero-grid { padding-top: 2.5rem; }
  .facts-row { grid-template-columns: 1fr; }
  .facts-row div + div { padding-left: 0; border-left: 0; border-top: 1px solid rgba(250,248,243,.18); }
  .facts-row div { padding: 1rem 0; }
}

/* ===== masthead ===== */
.site-head { border-bottom: 3px solid var(--bronze-light); transition: box-shadow .2s ease; }
.head-row { min-height: 118px; transition: min-height .25s ease; }
.site-head.scrolled .head-row { min-height: 84px; }
.brand { gap: 1.1rem; }
.brand-mark { height: 78px; transition: height .25s ease; }
.site-head.scrolled .brand-mark { height: 56px; }
.brand-name { font-size: 2.35rem; letter-spacing: .07em; transition: font-size .25s ease; }
.site-head.scrolled .brand-name { font-size: 1.7rem; }
.brand-sub { font-size: .9rem; letter-spacing: .62em; margin: .55rem -.62em 0 0; }
.site-head.scrolled .brand-sub { font-size: .68rem; }
.site-nav { gap: 1.9rem; }
.site-nav a:not(.btn) { font-size: 1.05rem; }
.site-nav .btn-small { min-height: 46px; padding: .55rem 1.25rem; font-size: 1.02rem; }
.brand-foot .brand-mark { height: 48px; }
.brand-foot .brand-name { font-size: 1.45rem; }
.brand-foot .brand-sub { font-size: .62rem; }
html { scroll-padding-top: 7rem; }
@media (max-width: 860px) {
  .head-row { min-height: 84px; }
  .site-head.scrolled .head-row { min-height: 72px; }
  .brand-mark, .site-head.scrolled .brand-mark { height: 54px; }
  .brand-name, .site-head.scrolled .brand-name { font-size: 1.6rem; }
  .brand-sub, .site-head.scrolled .brand-sub { font-size: .64rem; }
}
@media (max-width: 1000px) {
  .hero-grid { grid-template-columns: 1fr; }
  .hero h1 { max-width: 14ch; }
  .hero::before { width: 100%; top: auto; height: 58%; clip-path: polygon(0 7%, 100% 0, 100% 100%, 0 100%); }
  .hero::after { right: auto; left: 6%; top: 46%; bottom: -4%; width: 5%; }
}

/* ===== above-the-fold tightening ===== */
.hero-grid { align-items: start; padding: clamp(1.75rem, 3.5vw, 3rem) 0 clamp(2.5rem, 5vw, 4rem); }
.hero-copy { padding-top: clamp(.5rem, 2.5vw, 2.5rem); }
.hero h1 { font-size: clamp(2.3rem, 4.5vw, 3.9rem); line-height: 1.03; }
.lede { margin-top: 1.1rem; font-size: 1.08rem; }
.hero-actions { margin-top: 1.5rem; }
.calc { padding: clamp(1.1rem, 2.2vw, 1.6rem) clamp(1.2rem, 2.4vw, 1.8rem); }
.calc-title { font-size: 1.4rem; margin-bottom: .3rem; }
.calc-eg { font-size: .84rem; margin-bottom: .8rem; }
.calc-tabs { margin-bottom: .9rem; }
.calc-fields { gap: .7rem .9rem; }
.calc input { min-height: 42px; padding: .5rem .75rem; }
.calc .field label { font-size: .86rem; margin-bottom: .25rem; }
.calc-out { margin: 1rem 0 .9rem; padding-top: .9rem; }
.out-num { font-size: clamp(2rem, 3.6vw, 2.6rem); }
.cover { margin-top: .6rem; }
.calc .btn-block { min-height: 46px; }
.calc-fine { margin-top: .55rem; font-size: .76rem; }
@media (min-height: 1000px) { .hero-grid { align-items: center; } }

.calc .money input { padding-left: 1.7rem; }


/* ===== review fixes ===== */
/* 3) tablet/phone hero geometry */
@media (max-width: 1000px) {
  .hero::before { height: 60%; clip-path: polygon(0 3%, 100% 0, 100% 100%, 0 100%); }
  .hero::after { top: 40%; bottom: -6%; left: 4%; width: 4%; opacity: .9; }
}
/* 4) one primary button */
.site-nav .btn-brass { background: var(--navy); color: var(--ivory); }
.site-nav .btn-brass:hover { background: var(--navy-deep); }
/* 7) line length */
.section-head p, .about-copy p, .paid p, .steps p, .path-head p, .submit-intro p, details p { max-width: 62ch; }
.facts-row div { max-width: 40ch; }
/* 8) headline bronze a touch darker */
.hero h1 .soft { color: #8F6838; }
@media (max-width: 1000px) { .hero::after { top: 58%; } }


/* ===== v6: Kiavi pass — terms card (A), program cards (B), where-are-you (C) ===== */
.ticks{list-style:none;margin:1.4rem 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.45rem 1.25rem;max-width:34em;font-size:.95rem;color:var(--ink)}
.ticks li{position:relative;padding-left:1.5rem}
.ticks li::before{content:"";position:absolute;left:0;top:.42em;width:.85rem;height:.85rem;border-radius:50%;background:var(--bronze-light);box-shadow:inset 0 0 0 .22rem var(--ivory),inset 0 0 0 .5rem var(--bronze)}
.deal{max-width:460px;margin-left:auto;width:100%}
.deal .calc{display:none}
.deal.editing .calc{display:block}
.deal.editing .terms{display:none}
.terms{background:var(--ivory);color:var(--ink);border-radius:var(--radius-s);box-shadow:0 50px 80px -40px rgba(6,24,48,.6),0 0 0 1px rgba(10,36,66,.08);padding:clamp(1.3rem,2.4vw,1.9rem) clamp(1.3rem,2.6vw,2rem);position:relative}
.terms::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--bronze);border-radius:var(--radius-s) 0 0 var(--radius-s)}
.terms-kicker{margin:0 0 .3rem;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bronze);font-weight:700}
.terms-title{font-size:1.45rem;margin-bottom:1rem}
.terms-in{list-style:none;margin:0;padding:0 0 1rem;display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;border-bottom:1px solid var(--line)}
.terms-in span{display:block;font-size:.76rem;color:var(--muted)}
.terms-in strong{font-family:var(--display);font-size:1.02rem}
.terms-big{padding:1rem 0 .7rem}
.terms-big span{display:block;font-size:.82rem;color:var(--muted)}
.terms-big span small{font-size:.76rem;color:var(--bronze);font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.terms-big strong{font-family:var(--display);font-size:clamp(2.4rem,4vw,3.1rem);color:var(--navy);letter-spacing:-.03em;line-height:1}
.terms-grid{display:grid;grid-template-columns:1fr 1fr;gap:.7rem 1rem;padding:.6rem 0 1.1rem;border-top:1px dashed var(--line)}
.terms-grid span{display:block;font-size:.76rem;color:var(--muted)}
.terms-grid strong{font-family:var(--display);font-size:1.15rem;color:var(--ink)}
.terms-grid em{font-style:normal;font-size:.76rem;color:var(--muted)}
.terms-warn{margin:0 0 .8rem;font-size:.86rem;color:var(--error)}
.terms .btn-brass{background:var(--bronze);color:#fff;min-height:48px}
.terms .btn-brass:hover{background:#8F6838}
.terms-link,.deal-back{display:block;width:100%;background:none;border:0;padding:.7rem 0 0;font:inherit;font-size:.9rem;color:var(--navy);text-decoration:underline;text-underline-offset:.18em;cursor:pointer;text-align:center}
.terms .calc-fine{margin-top:.8rem}
.calc-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:.3rem}
.calc-head .calc-title{margin:0}
.deal-back{width:auto;padding:0;white-space:nowrap}
@media (max-width:1000px){.deal{margin-left:0;max-width:none}.ticks{grid-template-columns:1fr}}

.cards{display:grid;grid-template-columns:1.25fr 1.25fr 1fr 1fr;gap:1rem;align-items:stretch}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-m);padding:1.5rem 1.4rem 1.4rem;display:flex;flex-direction:column;gap:.5rem}
.card.focus{background:var(--navy);color:var(--ivory);border-color:var(--navy);box-shadow:0 30px 50px -30px rgba(6,24,48,.6)}
.card-kicker{margin:0;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--bronze-hi)}
.card h3{font-size:1.45rem;margin:.1rem 0 .4rem}
.card-stat{margin:0;font-size:.95rem;color:var(--muted)}
.card-stat small{display:block;font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--bronze);font-weight:700;margin-bottom:.1rem}
.card.focus .card-stat small{color:var(--bronze-hi)}
.card.focus .card-stat,.card.focus .card-stat2{color:rgba(250,248,243,.78)}
.card-stat strong{display:block;font-family:var(--display);font-size:3rem;line-height:1;letter-spacing:-.03em;color:var(--navy)}
.card.focus .card-stat strong{color:var(--bronze-light)}
.card-stat2{margin:0;font-size:.95rem;color:var(--muted)}
.card-stat2 strong{font-family:var(--display)}
.card ul{margin:.6rem 0 1rem;padding:0;list-style:none;font-size:.92rem;color:var(--muted);flex:1}
.card.focus ul{color:rgba(250,248,243,.85)}
.card ul li{padding:.35rem 0 .35rem 1.1rem;position:relative;border-top:1px solid rgba(0,0,0,.06)}
.card.focus ul li{border-top-color:rgba(255,255,255,.14)}
.card ul li::before{content:"";position:absolute;left:0;top:.95em;width:.45rem;height:.45rem;background:var(--bronze);border-radius:1px;transform:rotate(45deg)}
.card.focus .btn-spruce{background:var(--bronze-light);color:var(--navy)}
.card.focus .btn-spruce:hover{background:var(--bronze-hi)}
.guidelines{margin-top:1.25rem}
.guidelines summary{cursor:pointer;font-weight:600;color:var(--navy);padding:.6rem 0}
.guidelines .table-scroll{margin-top:.5rem}
@media (max-width:1000px){.cards{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.cards{grid-template-columns:1fr}}

.where{background:var(--stone);padding:var(--section) 0}
.where-title{text-align:center;margin-bottom:clamp(1.5rem,3vw,2.5rem)}
.where-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
.where-card{padding:clamp(1.6rem,3vw,2.5rem);border-radius:var(--radius-m);background:var(--ivory);display:flex;flex-direction:column;box-shadow:0 0 0 1px rgba(10,36,66,.06)}
.where-card.alt{background:var(--navy);color:var(--ivory);box-shadow:none}
.where-kicker{margin:0 0 .6rem;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--bronze)}
.where-card.alt .where-kicker{color:var(--bronze-hi)}
.where-card h3{font-size:1.6rem;line-height:1.15;margin-bottom:.9rem;max-width:18ch}
.where-card blockquote{margin:0 0 1rem;padding-left:1rem;border-left:3px solid var(--bronze);font-family:var(--display);font-weight:600;font-size:.98rem;line-height:1.45;color:var(--ink)}
.where-card.alt blockquote{color:var(--ivory)}
.where-card p{color:var(--muted);max-width:48ch}
.where-card.alt p{color:rgba(250,248,243,.8)}
.where-card ul{list-style:none;margin:0 0 1.5rem;padding:0;flex:1;font-size:.95rem}
.where-card ul li{padding:.4rem 0 .4rem 1.3rem;position:relative}
.where-card ul li::before{content:"";position:absolute;left:0;top:.9em;width:.5rem;height:.5rem;background:var(--bronze);transform:rotate(45deg)}
.where-card .btn{align-self:flex-start}
.where-card.alt .btn-brass{background:var(--bronze-light);color:var(--navy)}
@media (max-width:800px){.where-grid{grid-template-columns:1fr}}
.terms-grid em{display:block}
@media (max-width:1000px){
  .ticks{display:flex;flex-wrap:wrap;gap:.5rem;max-width:none}
  .ticks li{background:var(--ivory);border:1px solid var(--line);border-radius:999px;padding:.32rem .8rem .32rem 1.9rem;font-size:.88rem}
  .ticks li::before{left:.6rem;top:.55em}
}

/* ===== v6.1: one action colour. Buttons are action bronze; nothing else uses it. ===== */
:root { --action: #9E611C; --action-hi: #86511A; }
.btn-brass, .btn-spruce, .hero .btn-brass, .site-nav .btn-brass, .calc .btn-brass, .terms .btn-brass,
.card.focus .btn-spruce, .where-card.alt .btn-brass, .submit .btn-spruce { background: var(--action); color: #fff; }
.btn-brass:hover, .btn-spruce:hover, .hero .btn-brass:hover, .site-nav .btn-brass:hover, .calc .btn-brass:hover, .terms .btn-brass:hover,
.card.focus .btn-spruce:hover, .where-card.alt .btn-brass:hover, .submit .btn-spruce:hover { background: var(--action-hi); }
.card.focus .btn-spruce, .where-card.alt .btn-brass { box-shadow: 0 0 0 1px rgba(255,255,255,.12); }
/* decorative bronze steps back so the buttons own the warm note */
.hero::after { opacity: .6; }
.ticks li::before { background: var(--navy); box-shadow: inset 0 0 0 .22rem var(--ivory), inset 0 0 0 .5rem var(--navy); }
.hero .btn-line { border-color: var(--line); }
