/* Shared public-site typography and presentation. */
@font-face {
  font-family: Inter;
  src: url("assets/fonts/InterVariable.woff2") format("woff2");
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
:root { --brand-body: #40545a; --brand-type: Inter, Arial, sans-serif; }
body, button, input, select, textarea { font-family: var(--brand-type); }
body { line-height: 1.7; }
h1, h2, h3 { font-family: var(--brand-type); font-weight: 750; }
h1 { letter-spacing: -.045em; line-height: 1.08; }
h2 { letter-spacing: -.04em; line-height: 1.12; }
h3 { letter-spacing: -.025em; line-height: 1.25; }
.eyebrow { font-weight: 750; letter-spacing: .14em; }
.intro, .split p:not(.eyebrow), .service-cards p,
.service-detail .price-card>p:not(.muted), .thanks-hero>p:last-child,
.contact-hero>p:not(.eyebrow), .center-title>p:not(.eyebrow),
.top-video>p:not(.eyebrow), .steps p, .funding-grid p,
.resource-grid p, .faq details p, .newsletter-heading>p:not(.eyebrow) { color: var(--brand-body); }
.hero.centered { max-width: 1184px; padding-top: 76px; padding-bottom: 48px; }
.hero.centered h1 { font-size: clamp(42px, 5.2vw, 72px); margin-bottom: 28px; }
.hero.centered .intro { max-width: 740px; font-size: 20px; line-height: 1.7; }
.hero.centered .actions { margin-top: 30px; }
.btn { border-radius: 8px; font-weight: 700; line-height: 1.4; padding: 17px 24px; }
.btn:not(.outline) { background: #087f83; color: #fff; }
.btn:not(.outline):hover { background: #08696d; }
.btn:focus-visible, a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid #c5a253; outline-offset: 4px; }
.btn.outline { color: #103b40; border-color: #087f83; }
.closing .btn.outline, .software .btn.outline { color: #fff; border-color: #69d7d1; }
.closing .btn:not(.outline), .software .btn:not(.outline) { background: #22c3c1; color: #082c30; }
.closing .btn:not(.outline):hover, .software .btn:not(.outline):hover { background: #66dcd5; }
.service-cards .best-value-card { border-color: #c5a253; background: linear-gradient(150deg,#fff9e9,#fff 55%); box-shadow: 0 14px 32px #103b4012; }
.service-cards .best-value-badge { background: #c5a253; color: #103b40; }
.service-cards h3 { font-size: 27px; }
.price-card small { font-size: 13px; }
.price-card .muted { color: #53656a; }
.program-overview { padding-block: 96px; }
.program-top { display: grid; grid-template-columns: 1fr 1fr; gap: 68px; align-items: center; }
.program-top>div:first-child { max-width: 530px; }
.program-top>div:first-child>p:not(.eyebrow):not(.lead) { color: var(--brand-body); font-size: 18px; }
.program-top h2 { font-size: clamp(40px,4.6vw,64px); }
.program-top .lead { font-size: 22px; line-height: 1.4; font-weight: 600; }
.program-top .price-card { padding: 32px; box-shadow: 0 12px 32px #103b400a; }
.program-top .grant-offer { margin-block: 24px; }
.program-top .grant-offer h3 { font-size: 24px; }
.program-top .grant-offer p { color: #574b30; }
.program-top .grant-offer small { color: #65552d; }
.program-included { margin-top: 52px; }
.program-inclusions-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 24px; }
.program-inclusion { background: #fff; border: 1px solid #cddedb; border-radius: 12px; padding: 28px; border-top: 3px solid #22c3c1; }
.program-inclusion:last-child { border-top-color: #c5a253; }
.program-inclusion h3 { font-size: 21px; min-height: 2.5em; margin-bottom: 18px; }
.program-inclusion ul { list-style: none; padding: 0; margin: 0; }
.program-inclusion li { position: relative; padding: 0 0 13px 25px; font-size: 15px; line-height: 1.6; color: #344c51; }
.program-inclusion li::before { content: '✓'; color: #087f83; font-weight: 750; position: absolute; left: 0; }
.program-inclusion .premier-finance-note { color: #53656a; font-size: 13px; line-height: 1.65; margin: 6px 0 0; }
@media (max-width:1050px) {
  .program-top { gap: 36px; }
  .program-inclusions-grid { gap: 16px; }
  .program-inclusion { padding: 22px; }
}
@media (max-width:740px) {
  .hero.centered { padding-top: 45px; padding-bottom: 36px; }
  .hero.centered h1 { font-size: clamp(36px,8.5vw,54px); letter-spacing: -.04em; }
  .hero.centered .intro { font-size: 17px; }
  .program-overview { padding-block: 64px; }
  .program-top, .program-inclusions-grid { grid-template-columns: 1fr; gap: 24px; }
  .program-top h2 { font-size: 42px; }
  .program-top .price-card { padding: 26px; }
  .program-included { margin-top: 36px; }
  .program-inclusion { padding: 25px; }
  .program-inclusion h3 { min-height: 0; }
  .btn { padding: 16px 20px; }
}
