/* ==========================================================================
   GIREC — Design tokens & shared components
   ========================================================================== */

:root {
  --cream: #E8E4DC;
  --card-bg: #F7F4EE;
  --white: #FFFFFF;
  --ink: #1A160F;
  --body-copy: #6E6455;
  --muted-copy: #55503F;
  --faint-on-dark: #A79E8A;
  --border: #E1D9C8;
  --border-light: #EDE7DA;
  --gold: #A07C2E;
  --gold-on-dark: #C9A15C;
  --label-faint: #A0937D;
  --label-faint-2: #8A7F6A;
  --x-mark: #B4A98F;
  --tile-dark: #0E0D0B;
  --selection-text: #14110B;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--card-bg);
  color: var(--ink);
  font-family: 'Archivo', sans-serif;
}

::selection { background: var(--gold-on-dark); color: var(--selection-text); }

img { max-width: 100%; }

h1, h2, h3, p { margin: 0; }

a { color: inherit; }

/* Layout shell -------------------------------------------------------- */

.page-shell { background: var(--card-bg); color: var(--ink); }

.section { padding: 88px 64px; }
.section-tight { padding: 72px 64px; }

/* Nav ------------------------------------------------------------------ */

.nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 26px 64px;
  border-bottom: 1px solid var(--border);
  flex-wrap: wrap;
  gap: 20px;
}

.nav__logo img { height: 36px; display: block; }

.nav__links { display: flex; align-items: center; gap: 32px; flex-wrap: wrap; }

.nav__link {
  font: 500 14px 'Archivo', sans-serif;
  color: var(--body-copy);
  text-decoration: none;
}

.nav__link--active {
  color: var(--ink);
  border-bottom: 1px solid var(--gold);
  padding-bottom: 3px;
}

/* Buttons ---------------------------------------------------------------- */

.btn {
  font: 600 13px 'Archivo', sans-serif;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  text-decoration: none;
  display: inline-block;
  padding: 18px 32px;
  border: none;
  cursor: pointer;
  transition: background-color .15s ease, color .15s ease, border-color .15s ease;
}

.btn-nav {
  font: 600 12px 'Archivo', sans-serif;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 14px 24px;
  background: var(--ink);
  color: var(--card-bg);
  text-decoration: none;
}
.btn-nav:hover { background: var(--gold); }

.btn-primary { background: var(--ink); color: var(--card-bg); }
.btn-primary:hover { background: var(--gold); }

.btn-gold { background: var(--gold-on-dark); color: var(--selection-text); }
.btn-gold:hover { background: var(--gold); color: var(--card-bg); }

.btn-outline-dark {
  background: transparent;
  color: var(--card-bg);
  border: 1px solid rgba(247,244,238,0.35);
}

.link-cta {
  font: 600 13px 'Archivo', sans-serif;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink);
  text-decoration: none;
  border-bottom: 1px solid var(--gold);
  padding-bottom: 6px;
}

.link-cta--small {
  font: 600 12px 'Archivo', sans-serif;
  letter-spacing: 0.14em;
}

.link-cta--on-dark {
  color: var(--card-bg);
  border-bottom-color: rgba(201,161,92,0.6);
}

/* Kicker ------------------------------------------------------------------ */

.kicker { display: flex; align-items: center; gap: 14px; }
.kicker .rule { width: 40px; height: 1px; background: var(--gold); flex: none; }
.kicker span {
  font: 600 12px 'Archivo', sans-serif;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--gold);
}
.kicker.on-dark .rule { background: var(--gold-on-dark); }
.kicker.on-dark span { color: var(--gold-on-dark); }

/* Headings ------------------------------------------------------------- */

h1, h2, h3, .num {
  font-family: 'Cormorant Garamond', serif;
}

.h1 {
  font: 600 74px/1.04 'Cormorant Garamond', serif;
  letter-spacing: -0.01em;
  text-wrap: balance;
}
.h1--md { font: 600 66px/1.06 'Cormorant Garamond', serif; letter-spacing: -0.01em; text-wrap: balance; }
.h1--sm { font: 600 60px/1.08 'Cormorant Garamond', serif; letter-spacing: -0.01em; text-wrap: balance; }

.h2 { font: 600 52px/1.1 'Cormorant Garamond', serif; text-wrap: balance; }
.h2--md { font: 600 46px/1.12 'Cormorant Garamond', serif; text-wrap: balance; }
.h2--sm { font: 600 40px/1.12 'Cormorant Garamond', serif; }
.h2--xs { font: 600 36px/1.15 'Cormorant Garamond', serif; }

.body-copy { font: 400 18px/1.65 'Archivo', sans-serif; color: var(--body-copy); text-wrap: pretty; }
.body-copy--md { font: 400 17px/1.65 'Archivo', sans-serif; color: var(--body-copy); text-wrap: pretty; }
.body-copy--sm { font: 400 16px/1.7 'Archivo', sans-serif; color: var(--muted-copy); text-wrap: pretty; }
.body-copy--xs { font: 400 15px/1.65 'Archivo', sans-serif; color: var(--body-copy); text-wrap: pretty; }
.caption { font: 400 12px 'Archivo', sans-serif; color: var(--label-faint); letter-spacing: 0.06em; }

/* Hero ------------------------------------------------------------------- */

.hero {
  display: grid;
  grid-template-columns: 7fr 5fr;
  gap: 72px;
  padding: 88px 64px 72px;
  align-items: center;
}
.hero--align-start { align-items: start; }
.hero__copy { display: flex; flex-direction: column; gap: 28px; align-items: flex-start; }
.hero__media { display: flex; flex-direction: column; gap: 12px; }
.hero__ctas { display: flex; align-items: center; gap: 28px; margin-top: 8px; flex-wrap: wrap; }

/* Image slot placeholder --------------------------------------------------- */

.image-slot {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  background: repeating-linear-gradient(135deg, #EDE7DA, #EDE7DA 10px, #E1D9C8 10px, #E1D9C8 20px);
  border: 1px solid var(--border);
  color: var(--label-faint-2);
  font: 500 13px 'Archivo', sans-serif;
  letter-spacing: 0.03em;
  overflow: hidden;
  padding: 0;
}

.image-slot img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* Trust strip / stat row --------------------------------------------------- */

.stat-row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  margin: 0 64px;
}
.stat-row__item { padding: 28px 32px; }
.stat-row__item:first-child { padding-left: 0; border-right: 1px solid var(--border); }
.stat-row__item:last-child { padding-right: 0; border-left: 1px solid var(--border); }
.stat-row__num { font: 600 34px 'Cormorant Garamond', serif; }
.stat-row__label { font: 400 13px 'Archivo', sans-serif; color: var(--body-copy); margin-top: 4px; }

/* Dark panel ---------------------------------------------------------------- */

.panel-dark { background: var(--ink); color: var(--card-bg); }

/* Problem grid --------------------------------------------------------------- */

.problem-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 0; }
.problem-card { border-left: 1px solid rgba(201,161,92,0.35); padding: 8px 28px 8px 24px; }
.problem-card__n { font: 500 28px 'Cormorant Garamond', serif; color: var(--gold-on-dark); }
.problem-card__title { font: 600 17px 'Archivo', sans-serif; margin: 14px 0 10px; }
.problem-card__text { font: 400 14px/1.6 'Archivo', sans-serif; color: var(--faint-on-dark); text-wrap: pretty; }

/* Services list --------------------------------------------------------------- */

.services-split { display: grid; grid-template-columns: 5fr 7fr; gap: 72px; padding: 88px 64px; }
.service-row {
  display: grid;
  grid-template-columns: 64px 1fr auto;
  align-items: baseline;
  gap: 20px;
  padding: 26px 0;
  border-top: 1px solid var(--border);
}
.service-row__n { font: 500 22px 'Cormorant Garamond', serif; color: var(--gold); }
.service-row__title { font: 600 22px 'Cormorant Garamond', serif; }
.service-row__detail { font: 400 14px/1.5 'Archivo', sans-serif; color: var(--body-copy); margin-top: 4px; }
.service-row__arrow { font: 400 18px 'Cormorant Garamond', serif; color: var(--gold); }

/* Audience cards --------------------------------------------------------------- */

.audience-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.audience-card {
  border: 1px solid var(--border);
  padding: 32px 28px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  background: var(--card-bg);
}
.audience-card__tag { font: 600 11px 'Archivo', sans-serif; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold); }
.audience-card__title { font: 600 24px 'Cormorant Garamond', serif; }
.audience-card__text { font: 400 14px/1.6 'Archivo', sans-serif; color: var(--body-copy); text-wrap: pretty; }

/* Why cards --------------------------------------------------------------- */

.why-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 56px; }
.why-card { border-top: 2px solid var(--ink); padding-top: 24px; }
.why-card__n { font: 500 40px 'Cormorant Garamond', serif; color: var(--gold); }
.why-card__title { font: 600 22px 'Cormorant Garamond', serif; margin: 12px 0 8px; }
.why-card__text { font: 400 14px/1.6 'Archivo', sans-serif; color: var(--body-copy); text-wrap: pretty; }

/* Fit check --------------------------------------------------------------- */

.fit-check { display: grid; grid-template-columns: 5fr 4fr 4fr; gap: 48px; align-items: start; }
.fit-check__outcome { border-left: 2px solid var(--border); padding-left: 16px; }
.fit-check__outcome--best { border-left-color: var(--gold); }
.fit-check__outcome-label {
  font: 600 13px 'Archivo', sans-serif;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--body-copy);
}
.fit-check__outcome--best .fit-check__outcome-label { color: var(--gold); }
.fit-check__outcome-text { font: 400 14px/1.55 'Archivo', sans-serif; color: var(--body-copy); margin-top: 4px; }
.fit-check__outcome--best .fit-check__outcome-text { color: var(--ink); }

.fit-card { border: 1px solid var(--border); padding: 36px 32px; }
.fit-card--dark { background: var(--ink); color: var(--card-bg); border: none; }
.fit-card__label {
  font: 600 13px 'Archivo', sans-serif;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--body-copy);
  margin-bottom: 22px;
  display: block;
}
.fit-card--dark .fit-card__label { color: var(--gold-on-dark); }
.fit-list { display: flex; flex-direction: column; gap: 14px; list-style: none; margin: 0; padding: 0; }
.fit-list li { display: flex; gap: 12px; align-items: baseline; font: 400 15px 'Archivo', sans-serif; color: var(--body-copy); }
.fit-card--dark .fit-list li { color: var(--card-bg); }
.fit-list .mark-x { color: var(--x-mark); }
.fit-list .mark-check { color: var(--gold-on-dark); }

/* Steps --------------------------------------------------------------- */

.steps-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 48px; }
.step { display: flex; gap: 20px; align-items: baseline; }
.step__n { font: 500 56px 'Cormorant Garamond', serif; color: var(--gold); }
.step__title { font: 600 24px 'Cormorant Garamond', serif; }
.step__text { font: 400 14px/1.6 'Archivo', sans-serif; color: var(--body-copy); margin-top: 6px; text-wrap: pretty; }

/* Final CTA --------------------------------------------------------------- */

.final-cta { background: var(--ink); color: var(--card-bg); padding: 96px 64px; text-align: center; }
.final-cta--tight { padding: 72px 64px; }
.final-cta h2 { margin: 24px auto 16px; max-width: 760px; }
.final-cta p { margin: 0 auto 36px; max-width: 520px; color: var(--faint-on-dark); }
.final-cta__buttons { display: flex; justify-content: center; gap: 24px; flex-wrap: wrap; }
.final-cta__closer { margin-top: 44px; font: italic 500 20px 'Cormorant Garamond', serif; color: var(--gold-on-dark); }

/* Footer --------------------------------------------------------------- */

.footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 32px 64px;
  border-top: 1px solid var(--border);
  flex-wrap: wrap;
  gap: 16px;
}
.footer__brand { display: flex; align-items: baseline; gap: 12px; }
.footer__brand-name { font: 700 20px 'Cormorant Garamond', serif; letter-spacing: 0.06em; }
.footer__copyright { font: 400 12px 'Archivo', sans-serif; color: var(--body-copy); }
.footer__links { display: flex; gap: 28px; flex-wrap: wrap; }
.footer__links a { font: 500 13px 'Archivo', sans-serif; color: var(--body-copy); text-decoration: none; }
.footer__links a:hover { color: var(--gold); }
.footer--tight { padding: 28px 64px; }
.footer__closer { font: italic 500 16px 'Cormorant Garamond', serif; color: var(--gold); }

/* Feature strip (3-col with dividers) --------------------------------------------------------------- */

.feature-strip {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  margin: 0 64px;
}
.feature-strip__item { padding: 32px 32px 32px 0; border-right: 1px solid var(--border); margin-right: 32px; }
.feature-strip__item:last-child { border-right: none; margin-right: 0; padding-right: 0; }
.feature-strip__n { font: 500 26px 'Cormorant Garamond', serif; color: var(--gold); }
.feature-strip__title { font: 600 22px 'Cormorant Garamond', serif; margin: 12px 0 8px; }
.feature-strip__text { font: 400 14px/1.6 'Archivo', sans-serif; color: var(--body-copy); text-wrap: pretty; }

/* Two-col explainer --------------------------------------------------------------- */

.explainer { display: grid; grid-template-columns: 5fr 7fr; gap: 72px; padding: 80px 64px; }
.explainer__body { display: flex; flex-direction: column; gap: 18px; }
.explainer__body p { font: 400 16px/1.7 'Archivo', sans-serif; color: var(--muted-copy); text-wrap: pretty; }

/* Loan types table --------------------------------------------------------------- */

.table-head {
  display: grid;
  grid-template-columns: 180px 1fr 1fr 1fr;
  gap: 0 32px;
  padding: 0 0 14px;
  border-bottom: 2px solid var(--ink);
  font: 600 11px 'Archivo', sans-serif;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--body-copy);
}
.table-row {
  display: grid;
  grid-template-columns: 180px 1fr 1fr 1fr;
  gap: 0 32px;
  padding: 24px 0;
  border-bottom: 1px solid var(--border);
  align-items: baseline;
}
.table-row__title { font: 600 24px 'Cormorant Garamond', serif; }
.table-row__cell { font: 400 14px/1.6 'Archivo', sans-serif; color: var(--muted-copy); }
.table-row__cell--speed { color: var(--gold); }
.table-note { font: 400 12.5px 'Archivo', sans-serif; color: var(--label-faint); margin-top: 14px; }

/* State search (dark) --------------------------------------------------------------- */

.state-search { background: var(--ink); color: var(--card-bg); padding: 80px 64px; }
.state-search__grid { display: grid; grid-template-columns: 5fr 7fr; gap: 72px; align-items: start; }
.state-search__form { display: flex; flex-direction: column; gap: 20px; }
.state-search__input-wrap { position: relative; }
.state-search__input {
  width: 100%;
  background: var(--card-bg);
  color: var(--ink);
  border: none;
  padding: 22px 24px;
  font: 400 17px 'Archivo', sans-serif;
  outline: none;
}
.state-search__matches {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  background: var(--white);
  border: 1px solid var(--border);
  z-index: 10;
  box-shadow: 0 16px 40px rgba(0,0,0,0.25);
}
.state-search__match {
  padding: 14px 24px;
  font: 400 15px 'Archivo', sans-serif;
  color: var(--ink);
  cursor: pointer;
  border-top: 1px solid var(--border-light);
}
.state-search__match:first-child { border-top: none; }
.state-search__match:hover { background: var(--card-bg); color: var(--gold); }

.state-result { border-left: 2px solid rgba(247,244,238,0.3); padding: 20px 26px; background: rgba(247,244,238,0.04); }
.state-result--covered { border-left-color: var(--gold-on-dark); background: rgba(201,161,92,0.08); }
.state-result__title { font: 600 24px 'Cormorant Garamond', serif; }
.state-result--covered .state-result__title { color: var(--gold-on-dark); }
.state-result__text { font: 400 14.5px/1.65 'Archivo', sans-serif; color: var(--faint-on-dark); margin: 8px 0 18px; max-width: 560px; }

.state-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.state-chip {
  font: 500 13px 'Archivo', sans-serif;
  color: var(--card-bg);
  border: 1px solid rgba(201,161,92,0.4);
  padding: 10px 18px;
  cursor: pointer;
  border-radius: 100px;
  background: transparent;
}
.state-chip:hover, .state-chip--active { background: var(--gold-on-dark); color: var(--selection-text); }

/* State directory grid --------------------------------------------------------------- */

.state-directory {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
}
.state-directory__item { background: var(--card-bg); padding: 24px 26px; }
.state-directory__name { font: 600 20px 'Cormorant Garamond', serif; }
.state-directory__market { font: 400 12.5px 'Archivo', sans-serif; color: var(--label-faint); margin: 4px 0 12px; }
.state-directory__links { display: flex; gap: 16px; flex-wrap: wrap; }
.state-directory__links a {
  font: 500 12.5px 'Archivo', sans-serif;
  color: var(--gold);
  text-decoration: none;
  border-bottom: 1px solid var(--border);
}

/* FAQ --------------------------------------------------------------- */

.faq-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px 64px; }
.faq-item { border-top: 1px solid var(--border); padding-top: 20px; }
.faq-item__q { font: 600 21px 'Cormorant Garamond', serif; margin-bottom: 10px; }
.faq-item__a { font: 400 14.5px/1.65 'Archivo', sans-serif; color: var(--muted-copy); text-wrap: pretty; }

/* PML offers cards (transactional funding) --------------------------------------------------------------- */

.offers-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.offer-card {
  border: 1px solid var(--border);
  background: var(--white);
  padding: 32px;
  display: grid;
  grid-template-columns: 56px 1fr auto;
  gap: 20px;
  align-items: baseline;
  text-decoration: none;
  color: inherit;
}
.offer-card__n { font: 500 26px 'Cormorant Garamond', serif; color: var(--gold); }
.offer-card__title { font: 600 24px 'Cormorant Garamond', serif; }
.offer-card__text { font: 400 14px/1.6 'Archivo', sans-serif; color: var(--body-copy); margin-top: 6px; }
.offer-card__path { font: 400 12px 'Archivo', sans-serif; color: var(--label-faint); margin-top: 10px; }
.offer-card__arrow { font: 400 20px 'Cormorant Garamond', serif; color: var(--gold); }

.stat-card { border: 1px solid var(--border); background: var(--white); }
.stat-card__row { padding: 26px 30px; border-bottom: 1px solid var(--border); }
.stat-card__row:last-child { border-bottom: none; }
.stat-card__num { font: 600 38px 'Cormorant Garamond', serif; }
.stat-card__label { font: 400 13px 'Archivo', sans-serif; color: var(--body-copy); margin-top: 2px; }

.benefits-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0; }
.benefit-card { border-left: 1px solid rgba(201,161,92,0.35); padding: 8px 28px 28px 24px; }
.benefit-card__n { font: 500 26px 'Cormorant Garamond', serif; color: var(--gold-on-dark); }
.benefit-card__title { font: 600 17px 'Archivo', sans-serif; margin: 12px 0 8px; }
.benefit-card__text { font: 400 14px/1.6 'Archivo', sans-serif; color: var(--faint-on-dark); text-wrap: pretty; }

.state-links-wrap { display: flex; flex-wrap: wrap; gap: 10px 24px; }
.state-links-wrap a {
  font: 400 14px 'Archivo', sans-serif;
  color: var(--muted-copy);
  text-decoration: none;
  border-bottom: 1px solid var(--border);
  padding-bottom: 2px;
}
.state-links-wrap a:hover { color: var(--gold); border-bottom-color: var(--gold); }

/* PML Terms directory --------------------------------------------------------------- */

.disclaimer-panel { border: 1px solid var(--border); background: var(--white); padding: 32px; }
.disclaimer-panel__label {
  font: 600 11px 'Archivo', sans-serif;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 14px;
  display: block;
}
.disclaimer-panel__text { font: 400 14px/1.7 'Archivo', sans-serif; color: var(--muted-copy); text-wrap: pretty; }

.pml-filter-bar {
  border-top: 1px solid var(--border);
  padding: 48px 64px 28px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  flex-wrap: wrap;
}
.pml-filter-bar__left { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.pml-filter-bar__label {
  font: 600 12px 'Archivo', sans-serif;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--body-copy);
}
.pml-filter-bar select {
  background: var(--white);
  border: 1px solid var(--border);
  padding: 14px 18px;
  font: 400 16px 'Archivo', sans-serif;
  color: var(--ink);
  min-width: 260px;
  outline: none;
  border-radius: 0;
}
.pml-filter-bar__count { font: 400 14px 'Archivo', sans-serif; color: var(--label-faint); }

.term-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; }
.term-card { border: 1px solid var(--border); background: var(--white); display: grid; grid-template-columns: 224px 1fr; }
.term-card__tile {
  background: var(--tile-dark);
  display: flex;
  align-items: center;
  justify-content: center;
  border-right: 1px solid var(--border-light);
  overflow: hidden;
}
.term-card__tile img { width: 100%; aspect-ratio: 1 / 1; object-fit: contain; display: block; }
.term-card__placeholder { text-align: center; padding: 24px; }
.term-card__placeholder-wordmark { font: 700 24px 'Cormorant Garamond', serif; color: var(--gold-on-dark); letter-spacing: 0.08em; }
.term-card__placeholder-label { font: 600 10px 'Archivo', sans-serif; letter-spacing: 0.2em; color: var(--faint-on-dark); text-transform: uppercase; margin-top: 6px; }
.term-card__body { display: flex; flex-direction: column; }
.term-card__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 22px 28px;
  border-bottom: 1px solid var(--border-light);
}
.term-card__title { font: 600 25px 'Cormorant Garamond', serif; }
.term-card__states { font: 600 11px 'Archivo', sans-serif; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold); text-align: right; }
.term-card__stats { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 20px; padding: 20px 28px; border-bottom: 1px solid var(--border-light); }
.term-card__stat-label { font: 600 10.5px 'Archivo', sans-serif; letter-spacing: 0.16em; text-transform: uppercase; color: var(--label-faint); }
.term-card__stat-value { font: 500 15px/1.4 'Archivo', sans-serif; color: var(--ink); margin-top: 6px; }
.term-card__notes { padding: 18px 28px 8px; font: 400 14px/1.65 'Archivo', sans-serif; color: var(--muted-copy); text-wrap: pretty; flex: 1; }
.term-card__cta { padding: 14px 28px 22px; }
.term-card__cta a {
  font: 600 12px 'Archivo', sans-serif;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gold);
  text-decoration: none;
  border-bottom: 1px solid var(--border);
  padding-bottom: 4px;
}
.term-card__cta a:hover { border-bottom-color: var(--gold); }

.term-empty { border: 1px solid var(--border); background: var(--white); padding: 48px; text-align: center; }
.term-empty__title { font: 600 30px 'Cormorant Garamond', serif; margin-bottom: 12px; }
.term-empty__text { margin: 0 auto 24px; max-width: 560px; font: 400 15px/1.65 'Archivo', sans-serif; color: var(--body-copy); text-wrap: pretty; }

/* When can it help grid (transactional lending) --------------------------------------------------------------- */

.help-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; background: var(--border); border: 1px solid var(--border); }
.help-card { background: var(--white); padding: 26px 24px; display: flex; flex-direction: column; gap: 10px; }
.help-card__n { font: 500 22px 'Cormorant Garamond', serif; color: var(--gold); }
.help-card__text { font: 500 16px/1.4 'Archivo', sans-serif; color: var(--ink); }
.help-card--cta { background: var(--ink); justify-content: space-between; }
.help-card--cta p { font: 500 15px/1.5 'Archivo', sans-serif; color: var(--card-bg); }
.help-card--cta a { font: 600 12px 'Archivo', sans-serif; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gold-on-dark); text-decoration: none; }

/* Checklist --------------------------------------------------------------- */

.checklist { display: grid; grid-template-columns: 1fr 1fr; gap: 0 40px; border-top: 2px solid var(--ink); list-style: none; margin: 0; padding: 0; }
.checklist li { display: flex; gap: 14px; align-items: baseline; padding: 16px 0; border-bottom: 1px solid var(--border); font: 400 15.5px 'Archivo', sans-serif; }
.checklist .mark-check { color: var(--gold); }

.aside-disclaimer { border-left: 2px solid var(--border); padding: 4px 0 4px 20px; }
.aside-disclaimer__label { font: 600 11px 'Archivo', sans-serif; letter-spacing: 0.2em; text-transform: uppercase; color: var(--label-faint); margin-bottom: 8px; display: block; }
.aside-disclaimer__text { font: 400 13.5px/1.65 'Archivo', sans-serif; color: var(--body-copy); text-wrap: pretty; }

/* Breadcrumb --------------------------------------------------------------- */

.breadcrumb { display: flex; gap: 10px; font: 400 13px 'Archivo', sans-serif; color: var(--label-faint); margin-bottom: 32px; flex-wrap: wrap; }
.breadcrumb a { color: var(--gold); text-decoration: none; }
.breadcrumb span.current { color: var(--muted-copy); }

.also-in-card { border: 1px solid var(--border); background: var(--white); padding: 32px; }
.also-in-card__label { font: 600 11px 'Archivo', sans-serif; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gold); margin-bottom: 18px; display: block; }
.also-in-card__link {
  font: 500 16px 'Archivo', sans-serif;
  color: var(--ink);
  text-decoration: none;
  padding: 12px 0;
  border-top: 1px solid var(--border-light);
  display: flex;
  justify-content: space-between;
}
.also-in-card__link:first-of-type { border-top: none; }
.also-in-card__link:hover { color: var(--gold); }
.also-in-card__link span:last-child { color: var(--gold); }

/* Policy page --------------------------------------------------------------- */

.policy-hero { padding: 72px 64px 40px; border-bottom: 1px solid var(--border); }
.policy-hero h1 { margin: 24px 0 12px; font: 600 54px/1.08 'Cormorant Garamond', serif; text-wrap: balance; }
.policy-hero__meta { font: 400 14px 'Archivo', sans-serif; color: var(--body-copy); }

.policy-layout { display: grid; grid-template-columns: 340px 1fr; gap: 72px; padding: 48px 64px 88px; align-items: start; }
.policy-toc { display: flex; flex-direction: column; gap: 2px; position: sticky; top: 24px; }
.policy-toc__label { font: 600 11px 'Archivo', sans-serif; letter-spacing: 0.2em; text-transform: uppercase; color: var(--body-copy); padding-bottom: 14px; }
.policy-toc a {
  font: 400 13.5px/1.4 'Archivo', sans-serif;
  color: var(--body-copy);
  text-decoration: none;
  padding: 7px 0;
  border-top: 1px solid var(--border-light);
  display: flex;
  gap: 12px;
}
.policy-toc a:hover { color: var(--gold); }
.policy-toc a span:first-child { color: var(--x-mark); font-size: 11px; letter-spacing: 0.1em; }

.policy-section { padding: 40px 0; border-top: 1px solid var(--border); display: flex; flex-direction: column; gap: 14px; }
.policy-section__kicker { font: 600 11px 'Archivo', sans-serif; letter-spacing: 0.24em; text-transform: uppercase; color: var(--gold); }
.policy-section h2 { font: 600 30px/1.15 'Cormorant Garamond', serif; }
.policy-section h3 { margin-top: 10px; font: 600 15px 'Archivo', sans-serif; letter-spacing: 0.04em; color: var(--ink); }
.policy-section p { font: 400 15px/1.7 'Archivo', sans-serif; color: var(--muted-copy); max-width: 760px; text-wrap: pretty; }
.policy-section ul { display: flex; flex-direction: column; gap: 8px; padding-left: 20px; margin: 0; }
.policy-section ul li { font: 400 15px/1.55 'Archivo', sans-serif; color: var(--muted-copy); }

/* Utility --------------------------------------------------------------- */

.bg-white { background: var(--white); }
.border-top { border-top: 1px solid var(--border); }
.border-bottom { border-bottom: 1px solid var(--border); }
.text-center { text-align: center; }

/* Responsive --------------------------------------------------------------- */

@media (max-width: 1080px) {
  .hero, .services-split, .explainer, .state-search__grid, .fit-check,
  .policy-layout { grid-template-columns: 1fr; }
  .why-grid, .audience-grid, .problem-grid, .help-grid, .term-grid,
  .offers-grid, .faq-grid, .steps-grid, .stat-row, .feature-strip,
  .checklist, .benefits-grid, .state-directory { grid-template-columns: repeat(2, 1fr); }
  .table-head, .table-row { grid-template-columns: 1fr; gap: 6px; }
  .table-head { display: none; }
  .term-card { grid-template-columns: 1fr; }
  .term-card__tile { aspect-ratio: 3 / 1; }
  .policy-toc { position: static; }
}

@media (max-width: 720px) {
  .section, .section-tight, .hero, .services-split, .explainer,
  .state-search, .final-cta, .policy-layout, .policy-hero { padding-left: 24px; padding-right: 24px; }
  .nav, .footer, .stat-row, .feature-strip, .pml-filter-bar { padding-left: 24px; padding-right: 24px; }
  .stat-row, .feature-strip { margin: 0; }
  .why-grid, .audience-grid, .problem-grid, .help-grid, .term-grid,
  .offers-grid, .faq-grid, .steps-grid, .stat-row, .feature-strip,
  .checklist, .benefits-grid, .state-directory { grid-template-columns: 1fr; }
  .h1, .h1--md, .h1--sm { font-size: 42px; }
  .h2, .h2--md, .h2--sm, .h2--xs { font-size: 30px; }
  .fit-check { gap: 24px; }

  .stat-row__item, .feature-strip__item {
    border-right: none !important;
    border-left: none !important;
    padding: 24px 0 !important;
    border-bottom: 1px solid var(--border);
  }
  .stat-row__item:last-child, .feature-strip__item:last-child { border-bottom: none; }
}
