/* ═══════════════════════════════════════════════════════════
   10K Funding — REDESIGN + MOTION LAYER (draft, Oct 2026)
   Loads after /styles.css. Brand tokens unchanged (green / gold /
   parchment · Libre Franklin + Source Serif 4). No dependencies.
   All motion is disabled under prefers-reduced-motion: reduce.
   ═══════════════════════════════════════════════════════════ */

@font-face {
  font-family: 'Libre Franklin';
  src: url('/fonts/LibreFranklin-Variable.woff2') format('woff2-variations'), url('/fonts/LibreFranklin-Variable.woff2') format('woff2');
  font-weight: 100 900; font-style: normal; font-display: swap;
}
@font-face {
  font-family: 'Source Serif 4';
  src: url('/fonts/SourceSerif4-Italic-Variable.woff2') format('woff2');
  font-weight: 200 900; font-style: italic; font-display: swap;
}

:root {
  --ease-out: cubic-bezier(.16, 1, .3, 1);
  --ease-spring: cubic-bezier(.34, 1.56, .64, 1);
  --green-900: #072a20;
  --green-700: #0f4a39;
  --shadow-1: 0 1px 2px rgba(11,59,46,.06), 0 2px 8px rgba(11,59,46,.05);
  --shadow-2: 0 10px 30px -10px rgba(11,59,46,.28), 0 2px 8px rgba(11,59,46,.06);
  --shadow-3: 0 30px 60px -20px rgba(7,42,32,.55), 0 10px 24px -12px rgba(7,42,32,.35);
}

/* ── Cross-document view transitions (MPA) ─────────────────── */
@media (prefers-reduced-motion: no-preference) {
  @view-transition { navigation: auto; }
  .site-header { view-transition-name: site-header; }
  ::view-transition-old(root) { animation: vt-out .28s var(--ease-out) both; }
  ::view-transition-new(root) { animation: vt-in .5s var(--ease-out) both; }
}
@keyframes vt-out { to { opacity: 0; transform: translateY(-10px); } }
@keyframes vt-in { from { opacity: 0; transform: translateY(18px); } }

/* ── Scroll progress bar ───────────────────────────────────── */
.scroll-progress {
  position: fixed; inset: 0 0 auto 0; height: 3px; z-index: 80;
  background: linear-gradient(90deg, var(--gold), #f1c66d, var(--gold-deep));
  transform-origin: 0 50%; transform: scaleX(var(--sp, 0));
  pointer-events: none;
}
@supports (animation-timeline: scroll()) {
  .scroll-progress { animation: sp-grow linear both; animation-timeline: scroll(root); }
}
@keyframes sp-grow { from { transform: scaleX(0); } to { transform: scaleX(1); } }

/* ── Header: glass + compact on scroll ─────────────────────── */
.site-header { transition: box-shadow .3s, background-color .3s; }
.site-header.is-scrolled { box-shadow: 0 8px 30px -14px rgba(11,59,46,.35); background: rgba(246,243,235,.86); }
.site-header__inner { transition: min-height .3s var(--ease-out); }
.site-header.is-scrolled .site-header__inner { min-height: 58px; }
.site-nav a { position: relative; border-bottom: 0 !important; }
.site-nav a::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; border-radius: 2px;
  background: var(--gold); transform: scaleX(0); transform-origin: 100% 50%;
  transition: transform .35s var(--ease-out);
}
.site-nav a:hover::after, .site-nav a[aria-current="page"]::after { transform: scaleX(1); transform-origin: 0 50%; }
.site-nav a[aria-current="page"]::after { background: var(--green); }
.logo__tile { transition: transform .5s var(--ease-spring); }
.site-header__brand:hover .logo__tile { transform: rotate(-8deg) scale(1.06); }
.menu__panel a { transition: background-color .2s, padding-left .25s var(--ease-out); }
.menu__panel a:hover { padding-left: 24px; }
.menu[open] .menu__panel { animation: pop-in .35s var(--ease-out) both; transform-origin: top right; }
@keyframes pop-in { from { opacity: 0; transform: translateY(-8px) scale(.96); } }

/* ── Buttons: lift, press, shine ───────────────────────────── */
.btn { transition: transform .25s var(--ease-out), box-shadow .25s, background-color .2s, border-color .2s, color .2s; }
.btn--gold { box-shadow: 0 6px 18px -8px rgba(152,100,33,.65), inset 0 1px 0 rgba(255,255,255,.35); }
.btn--gold:hover { transform: translateY(-2px); box-shadow: 0 14px 28px -10px rgba(152,100,33,.7), inset 0 1px 0 rgba(255,255,255,.35); }
.btn:active { transform: translateY(0) scale(.97); transition-duration: .08s; }
.btn--shine { position: relative; overflow: hidden; isolation: isolate; }
.btn--shine::after {
  content: ""; position: absolute; inset: -2px; z-index: -1; pointer-events: none;
  background: linear-gradient(105deg, transparent 35%, rgba(255,255,255,.55) 50%, transparent 65%);
  transform: translateX(-120%);
  animation: shine 4.2s var(--ease-out) 1.6s infinite;
}
@keyframes shine { 0% { transform: translateX(-120%); } 35%, 100% { transform: translateX(120%); } }
.btn__arrow { display: inline-block; transition: transform .3s var(--ease-out); }
.btn:hover .btn__arrow { transform: translateX(4px); }

/* ── Reveal system (IO-driven; content visible without JS) ──── */
.js .rv {
  opacity: 0; transform: translateY(26px);
  transition: opacity .8s var(--ease-out), transform .9s var(--ease-out);
  transition-delay: calc(var(--d, 0) * 70ms);
}
.js .rv.is-in { opacity: 1; transform: none; }
.js .rv-scale { transform: translateY(18px) scale(.96); }
.js .rv-left { transform: translateX(-30px); }
.js .rv-right { transform: translateX(30px); }

/* ═════ HERO ═════ */
.xhero {
  position: relative; overflow: hidden; isolation: isolate;
  background: var(--green); color: var(--white);
  border-top: 4px solid var(--gold);
  padding: clamp(48px, 7vw, 96px) 0 clamp(64px, 8vw, 112px);
}
.xhero__bg { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.xhero__bg::before { /* brand hatch */
  content: ""; position: absolute; inset: 0; background: var(--hatch);
}
.xhero__orb { position: absolute; border-radius: 50%; }
.xhero__orb--a { width: 62vmax; height: 62vmax; left: -18vmax; top: -30vmax;
  background: radial-gradient(circle, rgba(46,107,84,.75) 0%, rgba(46,107,84,0) 62%);
  animation: orb-a 18s ease-in-out infinite alternate; }
.xhero__orb--b { width: 46vmax; height: 46vmax; right: -14vmax; bottom: -26vmax;
  background: radial-gradient(circle, rgba(217,164,65,.30) 0%, rgba(217,164,65,0) 60%);
  animation: orb-b 22s ease-in-out infinite alternate; }
.xhero__orb--c { width: 30vmax; height: 30vmax; left: 40%; top: 10%;
  background: radial-gradient(circle, rgba(241,198,109,.14) 0%, rgba(241,198,109,0) 60%);
  animation: orb-c 14s ease-in-out infinite alternate; }
@keyframes orb-a { to { transform: translate(8vmax, 6vmax) scale(1.12); } }
@keyframes orb-b { to { transform: translate(-10vmax, -6vmax) scale(1.18); } }
@keyframes orb-c { to { transform: translate(-12vmax, 8vmax) scale(.85); } }
.xhero__grid {
  position: absolute; inset: 0; opacity: .5;
  background-image:
    linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
  background-size: 56px 56px;
  mask-image: radial-gradient(ellipse 70% 60% at 50% 40%, #000 20%, transparent 75%);
  animation: grid-pan 30s linear infinite;
}
@keyframes grid-pan { to { background-position: 56px 56px, 56px 56px; } }
.xhero__ghost {
  position: absolute; right: -4vw; bottom: -6vw;
  font-size: clamp(220px, 34vw, 520px); font-weight: 800; letter-spacing: -.06em; line-height: .8;
  color: transparent; -webkit-text-stroke: 1px rgba(217,164,65,.16);
  user-select: none;
}
@supports (animation-timeline: scroll()) {
  @media (prefers-reduced-motion: no-preference) {
    .xhero__ghost { animation: ghost-drift linear both; animation-timeline: scroll(root); animation-range: 0 100vh; }
    .xhero__visual { animation: visual-drift linear both; animation-timeline: scroll(root); animation-range: 0 90vh; }
  }
}
@keyframes ghost-drift { to { transform: translate(-6vw, -14vh); opacity: .3; } }
@keyframes visual-drift { to { transform: translateY(-60px); } }

.xhero__inner { display: grid; gap: clamp(40px, 6vw, 72px); align-items: center; }
@media (min-width: 980px) { .xhero__inner { grid-template-columns: 1.12fr .88fr; } }

.xhero__eyebrow { display: inline-flex; align-items: center; gap: 10px; animation: rise .9s var(--ease-out) .05s both; }
.xhero__spark { width: 26px; height: 1px; background: var(--gold); position: relative; }
.xhero__spark::after { content: ""; position: absolute; right: -3px; top: -3px; width: 7px; height: 7px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 0 rgba(217,164,65,.6); animation: pulse 2.4s ease-out infinite; }
@keyframes pulse { 0% { box-shadow: 0 0 0 0 rgba(217,164,65,.55); } 100% { box-shadow: 0 0 0 12px rgba(217,164,65,0); } }

.xhero__title {
  margin: 16px 0 0; color: var(--white); font-weight: 800;
  font-size: clamp(38px, 6.4vw, 72px); line-height: 1.02; letter-spacing: -.035em;
  text-wrap: balance;
}
.xhero__title .w { display: inline-block; animation: word-up 1s var(--ease-out) both; animation-delay: calc(.15s + var(--i) * 75ms); }
@keyframes word-up { from { opacity: 0; transform: translateY(.55em) rotate(2deg); filter: blur(6px); } }
.xhero__money { position: relative; color: var(--gold); }
.xhero__money::after {
  content: ""; position: absolute; left: 2%; right: 2%; bottom: .02em; height: .09em; border-radius: 99px;
  background: linear-gradient(90deg, var(--gold), #f1c66d);
  transform: scaleX(0); transform-origin: 0 50%;
  animation: underline 1s var(--ease-out) 1s forwards;
}
@keyframes underline { to { transform: scaleX(1); } }
.xhero__sub { margin: 22px 0 0; max-width: 34em; font-size: clamp(16.5px, 1.6vw, 19px); line-height: 1.6; color: rgba(255,255,255,.8); animation: rise 1s var(--ease-out) .7s both; }
.xhero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px 26px; margin-top: 30px; animation: rise 1s var(--ease-out) .85s both; }
.xhero__secondary { color: rgba(255,255,255,.9); font-weight: 600; font-size: 15.5px; text-decoration: none; position: relative; padding: 6px 0; }
.xhero__secondary::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: rgba(217,164,65,.6); transform-origin: 0 50%; transition: transform .4s var(--ease-out), background-color .3s; }
.xhero__secondary:hover { color: var(--gold); }
.xhero__secondary:hover::after { background: var(--gold); transform: scaleX(1.15); }
.xhero__chips { margin-top: 26px; animation: rise 1s var(--ease-out) 1s both; }
.xhero__chips .trust-chip { display: inline-flex; align-items: center; gap: 8px; backdrop-filter: blur(6px); transition: background-color .25s, transform .3s var(--ease-out); }
.xhero__chips .trust-chip:hover { background: rgba(255,255,255,.18); transform: translateY(-2px); }
@keyframes rise { from { opacity: 0; transform: translateY(18px); } }

.chip-check { width: 16px; height: 16px; border-radius: 50%; flex: none; background: var(--gold); position: relative; display: inline-block; }
.chip-check::after { content: ""; position: absolute; left: 5px; top: 3px; width: 4px; height: 7px; border: solid var(--green); border-width: 0 2px 2px 0; transform: rotate(45deg); }

/* hero visual: animated "file" card */
.xhero__visual { position: relative; min-height: 380px; display: grid; place-items: center; animation: rise 1.1s var(--ease-out) .5s both; perspective: 1200px; }
.xfile {
  position: relative; width: min(100%, 420px); padding: 24px;
  background: linear-gradient(160deg, rgba(255,255,255,.16), rgba(255,255,255,.06));
  border: 1px solid rgba(255,255,255,.22); border-radius: 22px;
  box-shadow: var(--shadow-3), inset 0 1px 0 rgba(255,255,255,.2);
  backdrop-filter: blur(14px) saturate(1.2);
  transform: rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));
  transition: transform .6s var(--ease-out);
  animation: float 7s ease-in-out infinite;
}
@keyframes float { 50% { translate: 0 -12px; } }
.xfile::before { /* animated border sheen */
  content: ""; position: absolute; inset: -1px; border-radius: inherit; padding: 1px; pointer-events: none;
  background: conic-gradient(from var(--ang, 0deg), transparent 0 70%, rgba(241,198,109,.9) 80%, transparent 90%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude;
  animation: spin-ang 6s linear infinite;
}
@property --ang { syntax: '<angle>'; inherits: false; initial-value: 0deg; }
@keyframes spin-ang { to { --ang: 360deg; } }
.xfile__head { display: flex; align-items: center; gap: 10px; }
.xfile__tile { width: 30px; height: 30px; font-size: 11px; background: var(--white); color: var(--green); }
.xfile__label { font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.8); }
.xfile__live { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; color: var(--gold); }
.xfile__live i { width: 7px; height: 7px; border-radius: 50%; background: var(--gold); animation: pulse 1.8s ease-out infinite; }
.xfile__steps { list-style: none; margin: 22px 0 0; padding: 0; display: grid; gap: 12px; }
.xfile__steps li {
  display: flex; align-items: center; gap: 14px; padding: 12px 14px; border-radius: 14px;
  background: rgba(7,42,32,.35); border: 1px solid rgba(255,255,255,.08);
  animation: step-cycle-0 8s var(--ease-out) 1.2s infinite;
}
.xfile__steps b { display: block; font-size: 15.5px; font-weight: 700; color: var(--white); line-height: 1.3; }
.xfile__steps small { display: block; font-size: 12.5px; color: rgba(255,255,255,.65); }
.xfile__dot { width: 26px; height: 26px; border-radius: 50%; flex: none; position: relative; border: 2px solid rgba(255,255,255,.3); animation: dot-cycle-0 8s var(--ease-out) 1.2s infinite; }
.xfile__dot::after { content: ""; position: absolute; left: 8px; top: 4px; width: 5px; height: 10px; border: solid var(--green); border-width: 0 2.5px 2.5px 0; transform: rotate(45deg) scale(0); animation: tick-cycle-0 8s var(--ease-spring) 1.2s infinite; }
.xfile__steps li:nth-child(2) { animation-name: step-cycle-1; } .xfile__steps li:nth-child(2) .xfile__dot { animation-name: dot-cycle-1; } .xfile__steps li:nth-child(2) .xfile__dot::after { animation-name: tick-cycle-1; }
.xfile__steps li:nth-child(3) { animation-name: step-cycle-2; } .xfile__steps li:nth-child(3) .xfile__dot { animation-name: dot-cycle-2; } .xfile__steps li:nth-child(3) .xfile__dot::after { animation-name: tick-cycle-2; }
@keyframes step-cycle-0 { 0%, 4% { background: rgba(7,42,32,.35); border-color: rgba(255,255,255,.08); transform: none; } 10%, 86% { background: rgba(217,164,65,.16); border-color: rgba(217,164,65,.45); transform: translateX(4px); } 94%, 100% { background: rgba(7,42,32,.35); border-color: rgba(255,255,255,.08); transform: none; } }
@keyframes dot-cycle-0 { 0%, 4% { background: transparent; border-color: rgba(255,255,255,.3); } 10%, 86% { background: var(--gold); border-color: var(--gold); } 94%, 100% { background: transparent; border-color: rgba(255,255,255,.3); } }
@keyframes tick-cycle-0 { 0%, 4% { transform: rotate(45deg) scale(0); } 10%, 86% { transform: rotate(45deg) scale(1); } 92%, 100% { transform: rotate(45deg) scale(0); } }
@keyframes step-cycle-1 { 0%, 26% { background: rgba(7,42,32,.35); border-color: rgba(255,255,255,.08); transform: none; } 32%, 86% { background: rgba(217,164,65,.16); border-color: rgba(217,164,65,.45); transform: translateX(4px); } 94%, 100% { background: rgba(7,42,32,.35); border-color: rgba(255,255,255,.08); transform: none; } }
@keyframes dot-cycle-1 { 0%, 26% { background: transparent; border-color: rgba(255,255,255,.3); } 32%, 86% { background: var(--gold); border-color: var(--gold); } 94%, 100% { background: transparent; border-color: rgba(255,255,255,.3); } }
@keyframes tick-cycle-1 { 0%, 26% { transform: rotate(45deg) scale(0); } 32%, 86% { transform: rotate(45deg) scale(1); } 92%, 100% { transform: rotate(45deg) scale(0); } }
@keyframes step-cycle-2 { 0%, 48% { background: rgba(7,42,32,.35); border-color: rgba(255,255,255,.08); transform: none; } 54%, 86% { background: rgba(217,164,65,.16); border-color: rgba(217,164,65,.45); transform: translateX(4px); } 94%, 100% { background: rgba(7,42,32,.35); border-color: rgba(255,255,255,.08); transform: none; } }
@keyframes dot-cycle-2 { 0%, 48% { background: transparent; border-color: rgba(255,255,255,.3); } 54%, 86% { background: var(--gold); border-color: var(--gold); } 94%, 100% { background: transparent; border-color: rgba(255,255,255,.3); } }
@keyframes tick-cycle-2 { 0%, 48% { transform: rotate(45deg) scale(0); } 54%, 86% { transform: rotate(45deg) scale(1); } 92%, 100% { transform: rotate(45deg) scale(0); } }
.xfile__bar { margin-top: 18px; height: 6px; border-radius: 99px; background: rgba(255,255,255,.12); overflow: hidden; }
.xfile__bar span { display: block; height: 100%; width: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--gold), #f1c66d); transform-origin: 0 50%; animation: bar-cycle 8s var(--ease-out) 1.2s infinite; transform: scaleX(.05); }
@keyframes bar-cycle { 0%, 4% { transform: scaleX(.05); } 10%, 26% { transform: scaleX(.36); } 32%, 48% { transform: scaleX(.68); } 54%, 86% { transform: scaleX(1); } 96%, 100% { transform: scaleX(.05); } }
.xfile__foot { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 18px; }
.xfile__foot div { padding: 12px 14px; border-radius: 14px; background: rgba(255,255,255,.07); }
.xfile__foot strong { display: block; font-size: 26px; font-weight: 800; letter-spacing: -.02em; color: var(--gold); line-height: 1.1; }
.xfile__foot small { font-size: 12.5px; color: rgba(255,255,255,.7); }

.xfloat {
  position: absolute; display: inline-flex; align-items: center; gap: 8px;
  padding: 10px 14px; border-radius: 999px; font-size: 13px; font-weight: 700; color: var(--ink);
  background: var(--parchment); box-shadow: var(--shadow-3); white-space: nowrap;
}
.xfloat--a { left: -16%; top: 34%; animation: bob 6s ease-in-out infinite, rise 1s var(--ease-out) 1.2s both; }
.xfloat--b { right: -2%; top: 48%; animation: bob 7s ease-in-out -2s infinite, rise 1s var(--ease-out) 1.4s both; }
.xfloat--c { left: 6%; bottom: 2%; background: var(--gold); animation: bob 8s ease-in-out -4s infinite, rise 1s var(--ease-out) 1.6s both; }
.xfloat .chip-check { background: var(--green); }
.xfloat .chip-check::after { border-color: var(--gold); }
@keyframes bob { 50% { translate: 0 -10px; } }

.xhero__scroll { position: absolute; left: 50%; bottom: 22px; width: 24px; height: 38px; margin-left: -12px; border: 2px solid rgba(255,255,255,.35); border-radius: 14px; }
.xhero__scroll span { position: absolute; left: 50%; top: 7px; width: 4px; height: 8px; margin-left: -2px; border-radius: 2px; background: var(--gold); animation: scroll-cue 1.8s ease-in-out infinite; }
@keyframes scroll-cue { 0% { opacity: 0; transform: translateY(0); } 30% { opacity: 1; } 100% { opacity: 0; transform: translateY(14px); } }

@media (max-width: 979px) {
  .xhero__visual { min-height: 0; padding: 18px 0 8px; }
  .xfloat--a { left: 0; top: -6px; }
  .xfloat--b { right: 0; top: auto; bottom: 30%; }
  .xfloat--c { display: none; }
  .xhero__scroll { display: none; }
}
@media (max-width: 640px) {
  .xhero { padding: 36px 0 48px; }
  .xhero__title { font-size: clamp(36px, 10.4vw, 46px); }
  .xhero__actions { flex-direction: column; align-items: stretch; gap: 14px; }
  .xhero__actions .btn { width: 100%; text-align: center; justify-content: center; }
  .xhero__secondary { align-self: center; }
  .xhero__chips { gap: 8px; }
  .xfile { padding: 18px; border-radius: 18px; }
  .xfile__steps li { padding: 10px 12px; }
  .xfloat { font-size: 12px; padding: 8px 12px; }
  .xfloat--b { display: none; }
}

/* ═════ STATS BAND ═════ */
.xstats { background: var(--ink); color: var(--parchment); padding: 0 0 clamp(36px, 5vw, 56px); position: relative; }
.xstats__bar {
  display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 10px 26px;
  padding: 18px 0; border-bottom: 1px solid rgba(255,255,255,.1);
  font-size: 12.5px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase;
}
.xstats__q { display: inline-flex; align-items: center; gap: 8px; }
.xstats__q .chip-check { background: var(--gold); }
.xstats__q .chip-check::after { border-color: var(--ink); }
.xstats__punch { color: var(--gold); position: relative; padding-left: 26px; }
.xstats__punch::before { content: ""; position: absolute; left: 0; top: 50%; width: 16px; height: 1px; background: rgba(217,164,65,.6); }
.xstats__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; margin: clamp(28px, 4vw, 44px) 0 0; background: rgba(255,255,255,.08); border-radius: 18px; overflow: hidden; }
@media (min-width: 860px) { .xstats__grid { grid-template-columns: repeat(4, 1fr); } }
.xstat { margin: 0; background: var(--ink); padding: clamp(18px, 3vw, 30px) clamp(16px, 2.6vw, 28px); display: flex; flex-direction: column-reverse; gap: 6px; transition: background-color .3s; }
.xstat:hover { background: #1b2a24; }
.xstat dt { font-size: 12.5px; font-weight: 600; color: rgba(246,243,235,.65); letter-spacing: .02em; }
.xstat dd { margin: 0; font-size: clamp(38px, 5.6vw, 60px); font-weight: 800; letter-spacing: -.04em; line-height: 1; color: var(--gold); font-variant-numeric: tabular-nums; }
.xstat dd small { font-size: .38em; font-weight: 700; letter-spacing: 0; margin-left: 4px; color: rgba(246,243,235,.75); }

/* ═════ MARQUEE ═════ */
.xmarquee { overflow: hidden; background: var(--gold); color: var(--ink); padding: 14px 0; border-block: 1px solid var(--gold-deep);
  mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.xmarquee__track { display: flex; width: max-content; gap: 0; animation: marquee 38s linear infinite; }
.xmarquee span { display: inline-flex; align-items: center; font-size: 15px; font-weight: 800; letter-spacing: -.01em; white-space: nowrap; padding: 0 22px; }
.xmarquee span::after { content: "✦"; margin-left: 44px; font-size: 11px; color: var(--green); opacity: .7; }
.xmarquee:hover .xmarquee__track { animation-play-state: paused; }
@keyframes marquee { to { transform: translateX(-50%); } }

/* ═════ SECTIONS ═════ */
.xsec { padding-top: clamp(64px, 9vw, 120px); }
.xsec__head { display: grid; gap: 10px; margin-bottom: clamp(26px, 4vw, 44px); max-width: 760px; }
.xsec__eyebrow { margin: 0; display: inline-flex; align-items: center; gap: 12px; font-size: 12.5px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--gold-ink); }
.xsec__eyebrow span { display: inline-grid; place-items: center; min-width: 34px; height: 26px; padding: 0 8px; border-radius: 99px; background: rgba(217,164,65,.16); color: var(--gold-ink); letter-spacing: .06em; }
.xsec__title { margin: 0; font-size: clamp(30px, 4.6vw, 52px); font-weight: 800; letter-spacing: -.03em; line-height: 1.06; color: var(--green); text-wrap: balance; }
.xsec__head--light .xsec__title { color: var(--white); }
.xsec__head--light .xsec__eyebrow, .xsec__head--light .xsec__eyebrow span { color: var(--gold); }
.xsec__head--light .xsec__eyebrow span { background: rgba(217,164,65,.14); }
.xlink { justify-self: start; display: inline-flex; gap: 8px; align-items: center; font-weight: 700; font-size: 15px; color: var(--green); text-decoration: none; padding: 6px 0; }
.xlink span { transition: transform .3s var(--ease-out); }
.xlink:hover span { transform: translateX(5px); }
@media (min-width: 980px) {
  .xsec--split { display: grid; grid-template-columns: .8fr 1.2fr; gap: 56px; align-items: start; }
  .xsec--split .xsec__head { position: sticky; top: 100px; }
}

/* steps */
.xsteps { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; position: relative; counter-reset: s; }
@media (min-width: 860px) { .xsteps { grid-template-columns: repeat(3, 1fr); gap: 22px; } }
.xsteps::before { /* connecting line that draws in */
  content: ""; position: absolute; left: 34px; top: 40px; bottom: 40px; width: 2px;
  background: linear-gradient(var(--gold), rgba(217,164,65,.15));
  transform: scaleY(0); transform-origin: top; transition: transform 1.6s var(--ease-out) .2s;
}
@media (min-width: 860px) { .xsteps::before { left: 40px; right: 40px; top: 58px; bottom: auto; width: auto; height: 2px; background: linear-gradient(90deg, var(--gold), rgba(217,164,65,.15)); transform: scaleX(0); transform-origin: left; } }
.xsteps:has(.is-in)::before, html:not(.js) .xsteps::before { transform: none; }
.xstep {
  position: relative; background: var(--white); border: 1px solid var(--rule); border-radius: 20px;
  padding: 24px 22px 26px 84px; box-shadow: var(--shadow-1);
  transition: transform .4s var(--ease-out), box-shadow .4s, border-color .3s, opacity .8s var(--ease-out);
}
@media (min-width: 860px) { .xstep { padding: 96px 26px 28px; } }
.xstep:hover { transform: translateY(-6px); box-shadow: var(--shadow-2); border-color: rgba(217,164,65,.55); }
.xstep__num {
  position: absolute; left: 18px; top: 22px; width: 50px; height: 50px; border-radius: 16px;
  display: grid; place-items: center; font-size: 17px; font-weight: 800; color: var(--gold);
  background: var(--green); box-shadow: 0 0 0 6px rgba(217,164,65,.14);
  transition: transform .5s var(--ease-spring);
}
@media (min-width: 860px) { .xstep__num { left: 26px; top: 26px; width: 64px; height: 64px; font-size: 20px; border-radius: 20px; } }
.xstep:hover .xstep__num { transform: rotate(-8deg) scale(1.08); }
.xstep__time { display: inline-block; font-size: 11.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--gold-ink); background: rgba(217,164,65,.14); padding: 4px 10px; border-radius: 99px; }
.xstep h3 { margin: 12px 0 0; font-size: 21px; font-weight: 800; letter-spacing: -.015em; color: var(--ink); }
.xstep p { margin: 8px 0 0; font-size: 15.5px; line-height: 1.6; color: var(--ink-78); }

/* pills */
.xpills { grid-template-columns: repeat(auto-fill, minmax(min(100%, 190px), 1fr)); gap: 10px; }
.xpills .pill {
  position: relative; overflow: hidden; isolation: isolate;
  min-height: 52px; border-radius: 14px; box-shadow: var(--shadow-1);
  transition: transform .35s var(--ease-out), border-color .25s, color .25s, box-shadow .35s, opacity .7s var(--ease-out);
}
.xpills .pill::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--green); transform: translateY(101%); transition: transform .4s var(--ease-out); }
.xpills .pill:hover { color: var(--white); border-color: var(--green); transform: translateY(-3px); box-shadow: var(--shadow-2); }
.xpills .pill:hover::before { transform: none; }
.xpills .pill:hover span { color: var(--gold); transform: translateX(4px); }
.xpills .pill span { transition: transform .3s var(--ease-out), color .25s; }
.js .xpills .pill.rv { transition-delay: calc(var(--d, 0) * 35ms); }
.xpills--states { grid-template-columns: repeat(auto-fill, minmax(min(100%, 160px), 1fr)); }
.xbig { display: inline-block; color: var(--gold); font-variant-numeric: tabular-nums; }

/* product cards (global .card upgraded) */
.card {
  border-radius: 20px; overflow: hidden; isolation: isolate; box-shadow: var(--shadow-1);
  transition: transform .45s var(--ease-out), box-shadow .45s, border-color .3s, opacity .8s var(--ease-out);
}
.card::before { /* pointer spotlight */
  content: ""; position: absolute; inset: 0; z-index: -1; opacity: 0; transition: opacity .35s;
  background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 0%), rgba(217,164,65,.16), transparent 45%);
}
.card::after { /* top accent bar */
  content: ""; position: absolute; left: 0; top: 0; height: 3px; width: 100%;
  background: linear-gradient(90deg, var(--gold), var(--moss)); transform: scaleX(0); transform-origin: 0 50%;
  transition: transform .5s var(--ease-out);
}
.card:hover { transform: translateY(-6px); box-shadow: var(--shadow-2); border-color: rgba(11,59,46,.25); }
.card:hover::before { opacity: 1; }
.card:hover::after { transform: scaleX(1); }
.card:active { transform: translateY(-2px) scale(.99); }
.card__go { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; right: 18px; bottom: 16px; background: rgba(217,164,65,.14); transition: transform .4s var(--ease-out), background-color .3s, color .3s; }
.card:hover .card__go { transform: translateX(3px) rotate(-45deg); background: var(--green); color: var(--gold); }
.xcards .card { padding: 26px 24px 64px; }
@media (min-width: 640px) { .xcards { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1000px) { .xcards { grid-template-columns: repeat(3, 1fr); } .site-footer__cols { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 639px) { .xcards .card { padding: 22px 20px 58px; } .xpills { grid-template-columns: repeat(2, minmax(0, 1fr)); } .xpills .pill { font-size: 14.5px; padding-inline: 14px; } }
.xcards .card__title { font-size: 21px; font-weight: 800; }

/* tools band */
.xtools { margin-top: clamp(64px, 9vw, 120px); padding: clamp(56px, 8vw, 104px) 0; background: var(--green-900); position: relative; overflow: hidden; isolation: isolate; }
.xtools::before { content: ""; position: absolute; inset: 0; z-index: -1; background: var(--hatch), radial-gradient(ellipse 60% 80% at 100% 0%, rgba(46,107,84,.6), transparent 60%); }
.xtools__grid { display: grid; gap: 18px; }
@media (min-width: 860px) { .xtools__grid { grid-template-columns: 1fr 1fr; gap: 22px; } }
.xtool {
  position: relative; display: grid; gap: 8px; padding: 26px; border-radius: 22px; text-decoration: none; color: var(--white);
  background: linear-gradient(160deg, rgba(255,255,255,.09), rgba(255,255,255,.03)); border: 1px solid rgba(255,255,255,.12);
  transition: transform .45s var(--ease-out), border-color .3s, background-color .3s, opacity .8s var(--ease-out);
}
.xtool:hover { transform: translateY(-6px); border-color: rgba(217,164,65,.5); }
.xtool .card__kicker { color: var(--gold); }
.xtool h3 { margin: 0; font-size: 22px; font-weight: 800; letter-spacing: -.015em; color: var(--white); }
.xtool p { margin: 0; font-size: 15.5px; line-height: 1.6; color: rgba(255,255,255,.75); }
.xtool__go { margin-top: 8px; font-weight: 700; font-size: 15px; color: var(--gold); }
.xtool__go span { display: inline-block; transition: transform .3s var(--ease-out); }
.xtool:hover .xtool__go span { transform: translateX(5px); }
.xtool__viz { height: 96px; margin-bottom: 10px; border-radius: 14px; background: rgba(7,42,32,.6); display: grid; place-items: center; overflow: hidden; }
.xbars { display: flex; align-items: flex-end; gap: 8px; height: 60px; }
.xbars i { width: 14px; border-radius: 4px 4px 2px 2px; background: linear-gradient(var(--gold), rgba(217,164,65,.35)); height: 30%; animation: bars 2.8s ease-in-out infinite; }
.xbars i:nth-child(2) { animation-delay: -.4s; } .xbars i:nth-child(3) { animation-delay: -.8s; } .xbars i:nth-child(4) { animation-delay: -1.2s; }
.xbars i:nth-child(5) { animation-delay: -1.6s; } .xbars i:nth-child(6) { animation-delay: -2s; } .xbars i:nth-child(7) { animation-delay: -2.4s; }
@keyframes bars { 50% { height: 100%; } }
.xgauge { width: 120px; height: 60px; border-radius: 120px 120px 0 0; position: relative; overflow: hidden;
  background: conic-gradient(from 270deg at 50% 100%, var(--moss) 0 60deg, var(--gold) 60deg 120deg, #c0583a 120deg 180deg, transparent 180deg); }
.xgauge::before { content: ""; position: absolute; left: 14px; right: 14px; top: 14px; bottom: -46px; border-radius: 50%; background: rgba(7,42,32,1); }
.xgauge i { position: absolute; left: 50%; bottom: 0; width: 3px; height: 50px; margin-left: -1.5px; background: var(--white); border-radius: 3px; transform-origin: 50% 100%; animation: needle 4s var(--ease-out) infinite; }
@keyframes needle { 0%, 100% { transform: rotate(-70deg); } 50% { transform: rotate(55deg); } }

/* FAQ upgrade */
.xfaq .faq__list { background: transparent; border: 0; border-radius: 0; overflow: visible; display: grid; gap: 10px; max-width: 880px; }
.xfaq .faq__item { background: var(--white); border: 1px solid var(--rule); border-radius: 16px; transition: border-color .3s, box-shadow .3s, opacity .7s var(--ease-out), transform .8s var(--ease-out); }
.xfaq .faq__item:last-child { border-bottom: 1px solid var(--rule); }
.xfaq .faq__item:hover { border-color: rgba(11,59,46,.25); }
.xfaq .faq__item[open] { border-color: rgba(217,164,65,.6); box-shadow: var(--shadow-2); }
.faq__mark::before, .faq__mark::after { transition: transform .4s var(--ease-spring) !important; }
.faq__item summary { cursor: pointer; }
@supports (interpolate-size: allow-keywords) {
  :root { interpolate-size: allow-keywords; }
  .faq__item::details-content { height: 0; overflow: clip; transition: height .45s var(--ease-out), content-visibility .45s allow-discrete; }
  .faq__item[open]::details-content { height: auto; }
}
.faq__item[open] .faq__body { animation: rise .5s var(--ease-out) both; }

/* final CTA */
.xcta { position: relative; overflow: hidden; isolation: isolate; margin-top: clamp(64px, 9vw, 120px); padding: clamp(72px, 10vw, 128px) 0; background: var(--green); background-image: var(--hatch); text-align: center; color: var(--white); }
.xcta__rings { position: absolute; inset: 0; z-index: -1; display: grid; place-items: center; }
.xcta__rings i { position: absolute; width: 360px; height: 360px; border-radius: 50%; border: 1px solid rgba(217,164,65,.35); animation: ring 6s var(--ease-out) infinite; }
.xcta__rings i:nth-child(2) { animation-delay: 2s; } .xcta__rings i:nth-child(3) { animation-delay: 4s; }
@keyframes ring { from { transform: scale(.4); opacity: 1; } to { transform: scale(3.2); opacity: 0; } }
.xcta__inner { max-width: 760px; }
.xcta h2 { margin: 14px 0 0; font-size: clamp(32px, 5.2vw, 60px); font-weight: 800; letter-spacing: -.035em; line-height: 1.04; color: var(--white); text-wrap: balance; }
.xcta__sub { margin: 14px auto 0; font-size: 18px; color: rgba(255,255,255,.78); }
.xcta .btn--lg { margin-top: 30px; }
.xcta__note { margin: 16px 0 0; font-size: 13px; color: rgba(255,255,255,.6); }
@media (max-width: 640px) { .xcta .btn--lg { width: 100%; justify-content: center; text-align: center; } }

/* footer polish */
.site-footer__cols a { transition: color .2s, padding-left .25s var(--ease-out); }
.site-footer__cols a:hover { color: var(--green); padding-left: 4px; }

/* mobile sticky CTA: slides in after hero */
.js .is-home .mobile-cta { transform: translateY(110%); opacity: 0; visibility: hidden; transition: transform .45s var(--ease-out), opacity .3s, visibility 0s .45s; }
.js .is-home .mobile-cta.is-visible { transform: none; opacity: 1; visibility: visible; transition: transform .45s var(--ease-out), opacity .3s, visibility 0s; }

/* ═════ INNER PAGES (auto-enhanced by motion.js) ═════ */
.doc__head h1 { animation: rise .9s var(--ease-out) .05s both; }
.doc__head .eyebrow-serif { animation: rise .9s var(--ease-out) both; }
.doc__head .capsule { animation: rise .9s var(--ease-out) .2s both; }
.crumbs { animation: rise .7s var(--ease-out) both; }
.hero:not(.xhero) .hero__inner > * { animation: rise .9s var(--ease-out) both; }
.hero:not(.xhero) .hero__inner > *:nth-child(2) { animation-delay: .1s; }
.hero:not(.xhero) .hero__inner > *:nth-child(3) { animation-delay: .2s; }
.hero:not(.xhero) .hero__inner > *:nth-child(4) { animation-delay: .3s; }
.step { transition: transform .4s var(--ease-out), box-shadow .4s, border-color .3s, opacity .8s var(--ease-out); }
.step:hover { transform: translateY(-5px); box-shadow: var(--shadow-2); border-color: rgba(217,164,65,.5); }
.pill { transition: transform .3s var(--ease-out), border-color .25s, box-shadow .3s, opacity .7s var(--ease-out); }
.pill:hover { box-shadow: var(--shadow-2); }

/* ═════ APPLY FLOW (visual only — no markup/JS changes) ═════ */
.apply__progress li { transition: color .4s, border-top-color .4s; position: relative; }
.apply__progress li span { transition: background-color .4s, color .4s, transform .5s var(--ease-spring), box-shadow .4s; }
.apply__progress li[aria-current="step"] span { transform: scale(1.14); box-shadow: 0 0 0 5px rgba(217,164,65,.28); animation: pulse 2.2s ease-out infinite; }
.apply__step:not([hidden]) { animation: step-in .55s var(--ease-out) both; }
@keyframes step-in { from { opacity: 0; transform: translateX(24px); } }
.apply__step { border-radius: 20px; box-shadow: var(--shadow-1); }
.field__wrap { transition: border-color .2s, box-shadow .25s, background-color .2s; }
.field__wrap:focus-within { box-shadow: 0 0 0 4px rgba(217,164,65,.22); }
.fieldwrap.is-error .field__wrap { animation: shake .4s ease both; }
@keyframes shake { 20%, 60% { transform: translateX(-5px); } 40%, 80% { transform: translateX(5px); } }
.filedrop { transition: border-color .2s, background-color .2s, transform .3s var(--ease-out); }
.filedrop:hover, .filedrop.is-drag { transform: translateY(-2px); }
.filelist li { animation: rise .4s var(--ease-out) both; }
.result:not([hidden]), .estimate:not([hidden]) { animation: rise .6s var(--ease-out) both; }
.apply-hero-glow { position: relative; }


button.btn { font-family: inherit; cursor: pointer; }
button.btn:not(.btn--ghost) { border: 0; }

/* Apply page layout: form left, "Before you start" as a sticky brand card right (CSS only) */
body:has(#apply-root) main { background:
  radial-gradient(ellipse 60% 340px at 85% 0%, rgba(217,164,65,.14), transparent 70%),
  radial-gradient(ellipse 50% 300px at 0% 0%, rgba(46,107,84,.12), transparent 70%); }
.doc:has(#apply-root) .doc__head h1 { font-size: clamp(32px, 4.6vw, 52px); letter-spacing: -.03em; color: var(--green); }
.doc:has(#apply-root) > .section {
  margin-top: 32px; padding: 26px 26px 22px; border-radius: 20px; color: rgba(255,255,255,.85);
  background: var(--green); background-image: var(--hatch), radial-gradient(ellipse 80% 60% at 100% 0%, rgba(46,107,84,.7), transparent 70%);
  box-shadow: var(--shadow-3);
}
.doc:has(#apply-root) > .section .sechead { border: 0; padding: 0; margin: 0 0 6px; }
.doc:has(#apply-root) > .section .sechead__title { color: var(--white); }
.doc:has(#apply-root) > .section .sechead__num { color: var(--gold); }
.doc:has(#apply-root) > .section p { color: rgba(255,255,255,.8); font-size: 15px; }
.doc:has(#apply-root) > .section ul { list-style: none; padding: 0; margin: 12px 0 16px; display: grid; gap: 10px; }
.doc:has(#apply-root) > .section li { position: relative; padding-left: 30px; font-size: 15px; line-height: 1.5; color: var(--white); }
.doc:has(#apply-root) > .section li::before { content: ""; position: absolute; left: 0; top: 2px; width: 18px; height: 18px; border-radius: 50%; background: var(--gold); }
.doc:has(#apply-root) > .section li::after { content: ""; position: absolute; left: 6px; top: 5px; width: 4px; height: 8px; border: solid var(--green); border-width: 0 2px 2px 0; transform: rotate(45deg); }
@media (min-width: 1100px) {
  .doc--narrow:has(#apply-root) { max-width: none; display: grid; grid-template-columns: minmax(0, 760px) minmax(300px, 1fr); column-gap: 48px; align-items: start; }
  .doc--narrow:has(#apply-root) > .doc__head, .doc--narrow:has(#apply-root) > .apply { grid-column: 1; }
  .doc--narrow:has(#apply-root) > .section { grid-column: 2; grid-row: 1 / span 2; position: sticky; top: 96px; margin-top: 28px; animation: rise 1s var(--ease-out) .3s both; }
}

/* ═════ REDUCED MOTION — everything off ═════ */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-delay: 0s !important; }
  .js .rv { opacity: 1 !important; transform: none !important; transition: none !important; }
  .xhero__orb, .xhero__grid, .xfile, .xfile::before, .xfloat, .xmarquee__track, .xbars i, .xgauge i, .xcta__rings i,
  .btn--shine::after, .xhero__title .w, .xfile__steps li, .xfile__dot, .xfile__dot::after, .xfile__bar span, .xhero__scroll span { animation: none !important; }
  .xhero__money::after { transform: scaleX(1); animation: none; }
  .xfile__steps li:first-child .xfile__dot { background: var(--gold); border-color: var(--gold); }
  .xmarquee__track { transform: none; }
  .js .is-home .mobile-cta { transform: none; opacity: 1; visibility: visible; }
  .xsteps::before { transform: none; }
}

/* ═════════════════════════════════════════════════════════════════════
   POLISH PASS (Oct 2026): spacing, balanced grids, alignment, tap targets
   Visual/layout only: copy and behaviour unchanged.
   ═════════════════════════════════════════════════════════════════════ */

/* 1. One section rhythm: home .xsec sections use the same token as inner pages */
.xsec { padding-top: var(--sec); }
.doc + .cta { margin-top: 0; }               /* stop .doc bottom pad + .cta top margin from stacking (~180px gap) */
.section:has(> .pills):not(:has(> .pills > *)) { display: none; }   /* empty "Businesses that use it" block (SBA page) */

/* 2. Typography: no one-word widows in headings; nicer paragraph rag */
h1, h2, h3, .card__title, .faq__item summary h3 { text-wrap: balance; }
p, li, dd, .card__body { text-wrap: pretty; }
.sechead__num { font-variant-numeric: tabular-nums; min-width: 2ch; }
thead th { vertical-align: bottom; }

/* 3. Cards: arrow never sits on top of text */
.card:has(.card__go) { padding-bottom: 64px; }

/* 4. Balanced card grids (.cards). 12-track grid so every row fills the container.
      n=4: 4 across | n=2: halves | n%3==2: last two take halves | n%3==1 (n>=7): first row of four, then threes */
@media (min-width: 1000px) {
  .wrap .cards:not(.xcards), .doc:not(.doc--article) .cards:not(.xcards) { grid-template-columns: repeat(12, minmax(0, 1fr)); }
  .wrap .cards:not(.xcards) > *, .doc:not(.doc--article) .cards:not(.xcards) > * { grid-column: span 4; }
  .cards:not(.xcards) > :nth-child(3n+1):nth-last-child(2),
  .cards:not(.xcards) > :nth-child(3n+1):nth-last-child(2) ~ * { grid-column: span 6; }
  .cards:not(.xcards):has(> :nth-child(3n+1):last-child) > :nth-child(-n+4) { grid-column: span 3; }
  .cards:not(.xcards) > :only-child { grid-column: span 6; }
  .doc--article .cards:not(.xcards) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .doc--article .cards:not(.xcards) > * { grid-column: auto; }
}
@media (min-width: 640px) and (max-width: 999.98px) {
  .cards:not(.xcards) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cards > :nth-child(odd):last-child { grid-column: 1 / -1; }
}
@media (max-width: 639.98px) { .cards:not(.xcards) { grid-template-columns: minmax(0, 1fr); } }
@media (min-width: 640px) and (max-width: 999.98px) { .xcards > :nth-child(odd):last-child { grid-column: 1 / -1; } }

/* 5. Balanced pill grids: column count follows item count so rows are always full */
.pills:not(.pills--plain):not(.xpills) { grid-template-columns: repeat(var(--pc, 3), minmax(0, 1fr)); }
.pills:not(.pills--plain):not(.xpills):has(> :nth-child(4):last-child),
.pills:not(.pills--plain):not(.xpills):has(> :nth-child(8):last-child) { --pc: 4; }
.pills:not(.pills--plain):not(.xpills):has(> :nth-child(5):last-child),
.pills:not(.pills--plain):not(.xpills):has(> :nth-child(10):last-child) { --pc: 5; }
.pills:not(.pills--plain):not(.xpills):has(> :only-child) { --pc: 4; }
.pills--plain { grid-template-columns: repeat(6, minmax(0, 1fr)); }
@media (max-width: 999.98px) {
  .pills:not(.pills--plain):not(.xpills) { --pc: 2 !important; }
  .pills:not(.pills--plain):not(.xpills):has(> :only-child) { --pc: 2 !important; }
  .pills:not(.pills--plain):not(.xpills) > :nth-child(odd):last-child:not(:only-child) { grid-column: 1 / -1; }
  .pills--plain { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 639.98px) {
  .pills--plain { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pills:not(.pills--plain):not(.xpills) .pill { font-size: 14.5px; padding-inline: 14px; }
}
/* home split sections: industries 10 -> 2 cols (5 even rows); states 18 -> 3 cols */
@media (min-width: 640px) {
  .xpills:not(.xpills--states) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .xpills--states { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

/* 6. Footer: wider link columns (no 2-line links on desktop), aligned legal row */
.site-footer__top { grid-template-columns: minmax(240px, .8fr) minmax(0, 2fr); }
@media (max-width: 820px) { .site-footer__top { grid-template-columns: minmax(0, 1fr); } }
.site-footer__cols { column-gap: 20px; }
.site-footer__cols a { display: inline-block; line-height: 1.4; }

/* 7. Touch targets: 44px minimum on touch-size screens, without changing the look */
@media (max-width: 1023.98px) {
  .site-header__brand { display: inline-flex; align-items: center; min-height: 44px; }
  .site-header .btn--sm { min-height: 44px; display: inline-flex; align-items: center; }
  .xlink, .xhero__secondary { min-height: 44px; display: inline-flex; align-items: center; }
  .xhero__secondary::after { bottom: 6px; }
  .site-footer__cols li { margin-top: 0; }
  .site-footer__cols h3 { margin-bottom: 4px; }
  .site-footer__cols a { display: flex; align-items: center; min-height: 44px; line-height: 1.3; }
  .site-footer__top > div > a[aria-label] { display: inline-flex; align-items: center; min-height: 44px; }
  .site-footer__contact a { display: inline-flex; align-items: center; min-height: 44px; }
  .site-footer__legal { gap: 0 20px; }
  .site-footer__legal a { display: inline-flex; align-items: center; min-height: 44px; }
  .crumbs a { display: inline-block; padding-block: 12px; margin-block: -12px; }
  .faq__item summary { min-height: 44px; }
}
@media (max-width: 640px) {
  .site-footer__copy { margin-left: 0; flex-basis: 100%; padding-top: 6px; }
}

/* Apply: Back and Continue share one height; consent links get a 44px touch area */
.apply__nav .btn { min-height: 54px; display: inline-flex; align-items: center; justify-content: center; }
@media (max-width: 1023.98px) {
  .apply label a, .apply .consent a, [id^="consent-"] a, .apply small a, .apply .fineprint a { display: inline-block; padding-block: 12px; margin-block: -12px; }
}
/* Apply step 6: sticky Back/Submit bar was see-through at the top (consent text showed behind "Back") and took two rows on phones */
.apply__nav--sticky { background: var(--white); flex-wrap: nowrap; padding: 12px 4px; border-top: 1px solid var(--rule); }
@media (max-width: 520px) {
  .apply__nav--sticky .btn--ghost { flex: 0 0 auto; padding-inline: 16px; }
  .apply__nav--sticky .btn--lg { width: auto; flex: 1 1 auto; }
}
.apply__step { min-width: 0; }
@media (max-width: 520px) {
  .apply__nav--sticky { margin-inline: 0; padding-inline: 0; gap: 10px; }
  .apply__nav--sticky .btn--lg { min-width: 0; padding-inline: 14px; font-size: 16px; }
}
/* Tablet hero: the card was centred under left-aligned copy. Align it to the same left edge and put the floating chips in the free space on the right */
@media (min-width: 641px) and (max-width: 979px) {
  .xhero__visual { place-items: center start; }
  .xfloat--a { left: 448px; right: auto; top: 22%; }
  .xfloat--b { display: inline-flex; left: 448px; right: auto; top: auto; bottom: 26%; }
}
/* Article "On this page" lists: 44px rows on touch screens */
@media (max-width: 1023.98px) {
  .toc li { margin-top: 0; }
  .toc li::before { top: 22px; }
  .toc a { display: flex; align-items: center; min-height: 44px; line-height: 1.35; padding-block: 4px; }
}
