/* Homepage v2: loads after v2.css. Homepage-only pieces of the founder-led redesign; the
   sitewide tokens, container rule, header tweaks and generic .h-* components this page also
   uses now live in assets/css/v2.css (the single source of truth for those), which every page
   loads, so they aren't repeated here. */

/* Lender carousel (assets/lenders/*, scripts/build-lender-strip.py): kept from the old
   homepage at the owner's request, just slightly shorter here so it doesn't compete with the
   new hero and trust band above it. style.css itself is untouched, so every other page keeps
   the strip at its original size. */
body.home-v2 .lenders { padding: 22px 0 18px; }
body.home-v2 .lenders .lenders-title { margin: 0 0 14px; }
body.home-v2 .lenders-set img { height: calc(var(--h, 32px) * 0.85); }
body.home-v2 .lenders-note { margin: 12px auto 0; }

/* Hero: the dark base gets the same top-left lighter-green glow as .section-dark elsewhere
   on the site (--bg-dark-glow, defined once in v2.css), not a flat --h-ink. */
.h-hero { position: relative; background: var(--bg-dark-glow), var(--h-ink); color: #fff; overflow: hidden; }
.h-hero-grid { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(0,1fr); min-height: min(760px, calc(100svh - 80px)); }
.h-hero-copy { position: relative; z-index: 2; padding: clamp(56px, 7vw, 104px) 0 clamp(56px, 6vw, 88px); display: flex; flex-direction: column; justify-content: center; }
.h-hero h1 { font-size: clamp(2.7rem, 4.6vw + 0.6rem, 5.1rem); line-height: 1.02; margin: 0 0 26px; max-width: 11ch; color: #fff; }
.h-hero h1 em { font-style: normal; color: var(--c-gold); }
.h-hero-sub { font-size: clamp(1.1rem, 0.5vw + 1rem, 1.3rem); line-height: 1.5; color: #D5DBD7; max-width: 30ch; margin: 0 0 36px; }
.h-hero-actions { display: flex; flex-wrap: wrap; gap: 14px; }
.h-hero-checks { display: flex; flex-wrap: wrap; gap: 10px 26px; margin: 36px 0 0; padding: 0; list-style: none; font-size: 0.9rem; color: var(--h-muted-on-dark); }
.h-hero-checks li { display: flex; align-items: center; gap: 8px; }
.h-hero-checks svg { width: 16px; height: 16px; color: var(--c-gold); flex-shrink: 0; }
.h-hero-media { position: absolute; inset: 0; z-index: 1; }
.h-hero-media picture, .h-hero-media img { display: block; width: 100%; height: 100%; }
.h-hero-media img { object-fit: cover; object-position: 80% 25%; }
/* The near-text edge of the photo scrim blends toward the same lighter green (rgba(20,55,38,…))
   instead of pure #0B1F14, so the readable left/bottom side of the photo matches the glow. */
.h-hero-media::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(90deg, rgba(20,55,38,0.92) 0%, rgba(11,31,20,0.6) 32%, rgba(11,31,20,0) 55%), linear-gradient(0deg, rgba(20,55,38,0.6) 0%, rgba(11,31,20,0) 30%); }
.h-callout { position: absolute; z-index: 2; right: max(28px, calc((100% - 1320px) / 2 + 28px)); bottom: 48px; width: 250px; padding: 22px 24px; background: rgba(20,55,38,0.8); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid var(--h-line); border-radius: 12px; box-shadow: 0 20px 40px -16px rgba(0,0,0,0.5); }
.h-callout p { color: #fff; font-family: var(--font-display); font-weight: 600; font-size: 1.3rem; line-height: 1.2; margin: 0 0 16px; letter-spacing: -0.01em; }
.h-callout .who { display: flex; flex-direction: column; gap: 2px; padding-top: 14px; border-top: 1px solid var(--h-line); }
.h-callout .who strong { color: var(--c-gold); font-size: 0.95rem; }
.h-callout .who span { font-size: 0.72rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--h-muted-on-dark); }

/* Trust strip */
.h-trust { background: #fff; border-bottom: 1px solid var(--h-warm-2); }
.h-trust-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); }
.h-trust-item { display: flex; align-items: center; gap: 14px; padding: 28px 24px; }
.h-trust-item + .h-trust-item { border-left: 1px solid var(--h-warm-2); }
.h-trust-item svg { width: 30px; height: 30px; color: var(--c-gold-deep); flex-shrink: 0; }
.h-trust-item strong { display: block; font-family: var(--font-display); font-size: 1.05rem; font-weight: 700; color: var(--c-ink); line-height: 1.2; }
.h-trust-item span { display: block; font-size: 0.85rem; color: var(--c-ink-muted); line-height: 1.35; margin-top: 2px; }

/* Problem cards: layout grid only; the .h-card surface itself is a generic component now
   defined once in v2.css. */
.h-problems-grid { display: grid; grid-template-columns: repeat(6, minmax(0,1fr)); gap: 14px; margin-top: 52px; }
.h-card > svg { width: 30px; height: 30px; color: var(--c-gold-deep); margin-bottom: 22px; }
.h-card .arrow { margin-top: auto; width: 30px; height: 30px; border-radius: 50%; border: 1.5px solid var(--c-border); display: grid; place-items: center; color: var(--c-gold-deep); transition: background-color .2s ease, border-color .2s ease, color .2s ease; }
.h-card .arrow svg { width: 14px; height: 14px; }
.h-card:hover .arrow { background: var(--c-gold); border-color: var(--c-gold); color: var(--h-ink); }

/* Founder: full-bleed split */
.h-founder { background: var(--h-warm); }
.h-founder-split { display: grid; grid-template-columns: minmax(0,0.9fr) minmax(0,1.1fr); min-height: 600px; }
.h-founder-copy { align-self: center; padding: clamp(64px, 8vw, 110px) clamp(32px, 5vw, 80px) clamp(64px, 8vw, 110px) max(28px, calc((100vw - 1320px) / 2 + 28px)); }
.h-founder h2 { font-size: clamp(2rem, 2.6vw + 1rem, 3.1rem); margin-bottom: 22px; max-width: 14ch; }
.h-founder-copy p { font-size: 1.08rem; color: var(--c-ink-muted); max-width: 44ch; }
.h-founder-copy .h-btn { margin-top: 14px; }
.h-founder-media { position: relative; overflow: hidden; }
.h-founder-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 62% 30%; -webkit-mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.15) 12%, rgba(0,0,0,0.6) 26%, #000 42%); mask-image: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.15) 12%, rgba(0,0,0,0.6) 26%, #000 42%); }
.h-founder-panel { position: absolute; z-index: 2; right: max(28px, calc((100vw - 1320px) / 2 + 28px)); bottom: 32px; list-style: none; margin: 0; padding: 22px 26px; display: grid; gap: 14px; background: rgba(20,55,38,0.82); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border: 1px solid var(--h-line); border-radius: 12px; }
.h-founder-panel li { display: flex; align-items: center; gap: 10px; font-size: 0.95rem; color: #fff; }
.h-founder-panel svg { width: 20px; height: 20px; color: var(--c-gold); flex-shrink: 0; }

/* Steps */
.h-steps { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px; margin-top: 52px; counter-reset: step; }
.h-step { position: relative; background: #fff; border: 1px solid var(--h-warm-2); border-radius: 12px; padding: 28px 24px; }
.h-step .n { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--c-gold); color: var(--h-ink); font-family: var(--font-display); font-weight: 800; font-size: 0.95rem; margin-bottom: 22px; }
.h-step h3 { font-size: 1.1rem; margin: 0 0 8px; }
.h-step p { font-size: 0.92rem; color: var(--c-ink-muted); margin: 0; line-height: 1.45; }
.h-step:not(:last-child)::after { content: ""; position: absolute; top: 44px; right: -14px; width: 14px; height: 1.5px; background: var(--c-gold); z-index: 1; }

/* Compare */
.h-compare { background: var(--bg-dark-glow), var(--h-ink); color: #fff; position: relative; overflow: hidden; }
.h-compare-bg { position: absolute; top: 0; right: 0; height: 100%; width: 48%; object-fit: cover; object-position: 40% 50%; opacity: 0.55; -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 60%); mask-image: linear-gradient(90deg, transparent 0%, #000 60%); pointer-events: none; }
.h-compare .container { position: relative; z-index: 1; }
.h-compare-grid { display: grid; grid-template-columns: minmax(0,0.85fr) minmax(0,1.4fr); gap: clamp(40px, 5vw, 80px); align-items: center; }
.h-compare h2 { color: #fff; font-size: clamp(2.1rem, 2.6vw + 1rem, 3.2rem); margin-bottom: 20px; }
.h-compare-copy p { color: var(--h-muted-on-dark); font-size: 1.05rem; max-width: 38ch; }
.h-vs { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.h-vs-card { border-radius: 14px; padding: 30px 28px; border: 1px solid rgba(255,255,255,0.12); background: rgba(20,55,38,0.78); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
.h-vs-card.win { border-color: var(--c-gold); background: linear-gradient(180deg, rgba(40,34,14,0.85), rgba(20,55,38,0.85)); box-shadow: 0 30px 60px -30px rgba(201,162,39,0.35); }
.h-vs-card h3 { font-size: 1.05rem; color: #fff; margin: 0 0 20px; padding-bottom: 16px; border-bottom: 1px solid rgba(255,255,255,0.1); }
.h-vs-card.win h3 { color: var(--c-gold-light); border-bottom-color: var(--h-line); }
.h-vs-card ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.h-vs-card li { display: flex; align-items: center; gap: 12px; font-size: 0.98rem; color: #C9D0CC; }
.h-vs-card.win li { color: #fff; }
.h-vs-card li svg { width: 20px; height: 20px; flex-shrink: 0; }
.h-vs-card li .x { color: #8C9690; }
.h-vs-card li .tick { color: var(--c-gold); }
.h-vs-badge { position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); width: 44px; height: 44px; border-radius: 50%; background: var(--h-ink); border: 1px solid var(--h-line); display: grid; place-items: center; font-family: var(--font-display); font-weight: 700; font-size: 0.8rem; letter-spacing: 0.06em; color: var(--c-gold); z-index: 2; }

/* Case study */
.h-case-media { position: relative; min-height: 280px; }
.h-case-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 30% 50%; }
.h-case-card { display: grid; grid-template-columns: minmax(0,0.95fr) minmax(0,1.1fr) minmax(0,0.85fr); background: #fff; border: 1px solid var(--h-warm-2); border-radius: 16px; overflow: hidden; }
.h-case-copy { padding: clamp(32px, 4vw, 56px); }
.h-case-copy h2 { font-size: clamp(1.8rem, 1.6vw + 1rem, 2.4rem); margin-bottom: 16px; }
.h-case-copy > p { color: var(--c-ink-muted); font-size: 1.02rem; max-width: 44ch; }
.h-results { list-style: none; margin: 24px 0 28px; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }
.h-results li { display: flex; align-items: center; gap: 8px; padding: 8px 14px; border-radius: 999px; background: var(--h-warm); font-size: 0.88rem; font-weight: 600; color: var(--c-ink); }
.h-results svg { width: 16px; height: 16px; color: var(--c-gold-deep); }
.h-case-figures { background: var(--bg-dark-glow), var(--h-dark); color: #fff; padding: clamp(32px, 4vw, 56px); display: grid; align-content: center; gap: 18px; }
.h-fig { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 22px 0; border-bottom: 1px solid rgba(255,255,255,0.1); }
.h-fig:first-child { padding-top: 0; }
.h-fig .lbl { font-size: 0.8rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--h-muted-on-dark); }
.h-fig .val { font-family: var(--font-display); font-weight: 700; font-size: clamp(2rem, 2vw + 1rem, 2.8rem); letter-spacing: -0.02em; line-height: 1; }
.h-fig .val small { font-size: 0.4em; font-weight: 600; color: var(--h-muted-on-dark); letter-spacing: 0; margin-left: 4px; }
.h-fig.before .val { color: #D6DCD8; text-decoration: line-through; text-decoration-color: rgba(214,220,216,0.45); text-decoration-thickness: 2px; }
.h-fig.before .val small { text-decoration: none; display: inline-block; }
.h-fig.after .val { color: var(--c-gold-light); }
.h-fig.freed { border-bottom: 0; padding-bottom: 0; }
.h-case-note { font-size: 0.78rem; color: var(--h-muted-on-dark); margin: 0; line-height: 1.5; }

/* Final CTA: full-bleed image */
.h-cta { position: relative; background: var(--bg-dark-glow), var(--h-ink); color: #fff; overflow: hidden; }
.h-cta-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 70% 60%; }
.h-cta::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(20,55,38,0.92) 0%, rgba(11,31,20,0.7) 40%, rgba(11,31,20,0.1) 70%); }
.h-cta .container { position: relative; z-index: 2; }
.h-cta h2 { color: #fff; font-size: clamp(2.3rem, 3.4vw + 1rem, 4rem); max-width: 14ch; margin: 0 0 18px; }
.h-cta p { color: #D5DBD7; font-size: 1.12rem; max-width: 40ch; margin: 0 0 36px; }
.h-cta-actions { display: flex; flex-wrap: wrap; gap: 18px 28px; align-items: center; }
.h-cta-actions .phone { color: #fff; font-weight: 600; text-decoration: none; display: inline-flex; align-items: center; gap: 8px; }
.h-cta-actions .phone svg { width: 18px; height: 18px; color: var(--c-gold); }
.h-cta-actions .phone:hover { color: var(--c-gold-light); }
.h-cta-note { margin-top: 26px !important; margin-bottom: 0 !important; font-size: 0.88rem !important; color: var(--h-muted-on-dark) !important; }

/* Disclosures + footer */
.h-disclose { background: var(--h-warm-2); padding: 36px 0; }
.h-disclose p { font-size: 0.8rem; line-height: 1.6; color: var(--c-ink-muted); margin: 0 0 8px; max-width: 110ch; }
.h-disclose p:last-child { margin-bottom: 0; }
.h-footer { background: var(--h-ink); color: #D5DBD7; padding: 64px 0 32px; border-top: 3px solid var(--c-gold); }
.h-mfaa-logo { width: 58px; height: auto; margin-top: 22px; }
.h-footer-legal { padding-top: 28px; max-width: 110ch; }
.h-footer-legal p { font-size: 0.85rem; line-height: 1.6; color: #D5DBD7; margin: 0 0 12px; }
.h-footer-legal .links a { text-decoration: underline; color: #fff; font-size: 0.88rem; }
.h-footer-legal .built, .h-footer-legal .built a { font-size: 0.76rem; color: var(--h-muted-on-dark); text-decoration: underline; }
.h-footer-top { display: grid; grid-template-columns: minmax(0,1.4fr) repeat(3, minmax(0,1fr)); gap: 40px; padding-bottom: 40px; border-bottom: 1px solid rgba(255,255,255,0.08); }
.h-footer-brand img { height: 48px; width: auto; margin-bottom: 16px; }
.h-footer-brand .tag { font-family: var(--font-display); font-weight: 600; font-size: 1.1rem; color: #fff; margin: 0 0 6px; }
.h-footer-brand .loc { font-size: 0.88rem; color: var(--h-muted-on-dark); margin: 0; }
.h-footer h4 { font-size: 0.74rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--c-gold); margin: 0 0 16px; font-weight: 700; }
.h-footer ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.h-footer a { color: #D5DBD7; text-decoration: none; font-size: 0.94rem; }
.h-footer a:hover { color: var(--c-gold-light); }
.h-social { display: flex; gap: 10px; margin-top: 18px; }
.h-social a { width: 38px; height: 38px; border-radius: 50%; border: 1px solid rgba(255,255,255,0.18); display: grid; place-items: center; transition: border-color .2s ease, background-color .2s ease; }
.h-social a:hover { border-color: var(--c-gold); background: rgba(201,162,39,0.1); }
.h-social svg { width: 16px; height: 16px; }
.h-footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding-top: 22px; font-size: 0.82rem; color: var(--h-muted-on-dark); }
.h-footer-bottom a { font-size: 0.82rem; }
.h-mfaa { display: inline-flex; align-items: center; gap: 8px; margin-top: 18px; font-size: 0.85rem; color: #fff; }
.h-mfaa .badge-mark { width: 26px; height: 26px; border-radius: 50%; background: var(--c-gold); color: var(--h-ink); display: grid; place-items: center; font-weight: 800; font-size: 0.8rem; }

/* Mobile sticky CTA */
.h-sticky { display: none; }

/* Responsive */
@media (max-width: 1100px) {
  .h-problems-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
  .h-trust-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .h-trust-item:nth-child(3) { border-left: 0; }
  .h-trust-item:nth-child(n+3) { border-top: 1px solid var(--h-warm-2); }
  .h-compare-grid { grid-template-columns: 1fr; }
  .h-steps { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .h-step::after { display: none; }
  .h-footer-top { grid-template-columns: 1fr 1fr; }
  .h-case-card { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
  .h-case-media { grid-column: 1 / -1; aspect-ratio: 16 / 7; min-height: 0; }
}
@media (max-width: 900px) {
  .h-hero-grid { grid-template-columns: 1fr; min-height: 0; }
  .h-hero-copy { padding: 48px 0 40px; }
  .h-hero h1 { max-width: 12ch; }
  .h-hero-media { position: relative; inset: auto; aspect-ratio: 12 / 11; margin: 0 -28px; }
  .h-hero-media img { object-position: 50% 30%; }
  .h-hero-media::before { background: linear-gradient(180deg, var(--h-glow) 0%, rgba(11,31,20,0) 22%); }
  .h-callout { left: 20px; right: 20px; bottom: 20px; width: auto; }
  .h-case-card { grid-template-columns: 1fr; }
  .h-case-media { aspect-ratio: 4 / 3; }
  .h-founder-split { grid-template-columns: 1fr; min-height: 0; }
  .h-founder-copy { padding: 64px 28px; }
  .h-founder-media { aspect-ratio: 4 / 3.4; }
  .h-founder-media img { -webkit-mask-image: none; mask-image: none; }
  .h-founder-panel { right: 20px; left: 20px; bottom: 20px; grid-template-columns: 1fr 1fr; }
  .h-compare-bg { width: 100%; opacity: 0.22; -webkit-mask-image: none; mask-image: none; }
  .h-cta::before { background: linear-gradient(0deg, rgba(20,55,38,0.95) 0%, rgba(11,31,20,0.75) 55%, rgba(11,31,20,0.35) 100%); }
  .h-hero-media { aspect-ratio: 4 / 3; }
  .h-hero-media img { object-position: 76% 20%; }
}
@media (max-width: 760px) {
  .h-hero-media { margin: 0 -20px; }
  .h-hero-actions .h-btn { flex: 1 1 100%; justify-content: center; }
  .h-trust-item { padding: 20px 14px; gap: 10px; }
  .h-trust-item svg { width: 24px; height: 24px; }
  .h-problems-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; margin-top: 36px; }
  .h-card { padding: 20px 16px 16px; }
  .h-card > svg { margin-bottom: 16px; }
  .h-card p { margin-bottom: 16px; }
  .h-steps { grid-template-columns: 1fr; margin-top: 36px; }
  .h-vs { grid-template-columns: 1fr; gap: 14px; }
  .h-vs-badge { position: relative; left: auto; top: auto; transform: none; margin: 0 auto; }
  .h-founder-copy { padding: 56px 20px; }
  .h-founder-panel { grid-template-columns: 1fr; gap: 10px; padding: 18px 20px; }
  .h-footer-top { grid-template-columns: 1fr; gap: 32px; }
  .h-sticky { display: flex; position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 60; transform: translateY(140%); transition: transform .35s var(--h-ease); }
  .h-sticky.show { transform: none; }
  .h-sticky .h-btn { flex: 1; justify-content: center; box-shadow: 0 12px 30px -8px rgba(0,0,0,0.5); }
  .h-footer { padding-bottom: 96px; }
}

/* Six-across card row (desktop): give titles a little more room so two-part titles such as
   "Start-up or Business Acquisition" set on two lines instead of three. */
@media (min-width: 1101px) {
  .h-problems-grid .h-card { padding-left: 18px; padding-right: 18px; }
  .h-problems-grid .h-card h3 { font-size: 1rem; letter-spacing: -0.02em; }
}

/* Google rating line under the hero checklist + the reviews section (cards live in v2.css). */
.h-rating { display: inline-flex; align-items: center; gap: 10px; margin-top: 22px; font-size: 0.9rem; color: var(--h-body-on-dark); text-decoration: none; }
.h-rating strong { color: #fff; }
.h-rating:hover span, .h-rating:focus-visible span { text-decoration: underline; text-underline-offset: 3px; }
.h-rating-stars { display: inline-flex; gap: 2px; color: var(--c-gold); }
.h-rating-stars svg { width: 15px; height: 15px; }
.h-reviews { background: #fff; border-top: 1px solid var(--h-warm-2); border-bottom: 1px solid var(--h-warm-2); }
.h-reviews .gr-card { background: var(--h-warm); }
.h-reviews-head { max-width: 640px; margin-bottom: 40px; }
.h-reviews-head h2 { font-size: clamp(2rem, 2.6vw + 1rem, 3rem); margin: 0; }
.gr-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 24px; }
.gr-grid:has(> :nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0,1fr)); max-width: 880px; }
@media (max-width: 900px) { .gr-grid { grid-template-columns: 1fr; } }
