/* Homepage typography and spacing. Card geometry and carousel rules live in styles.css. */
.home-page-main {
  --home-h1: clamp(42px, 4.5vw, 65px);
  --home-h2: clamp(31px, 3.3vw, 45px);
  --home-h3: clamp(23px, 2vw, 26px);
  --home-section-space: clamp(48px, 5vw, 72px);
  --home-heading-gap: clamp(32px, 3.4vw, 48px);
  --home-ink: #202124;
  --home-muted: #5f6368;
}

.home-page .hero { padding-block: clamp(56px, 6vw, 88px); }
.home-page .hero-copy { margin-left: 0; }
.home-page .hero-title {
  font-size: var(--home-h1);
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: -.04em;
  color: var(--home-ink);
  max-width: 16ch;
  text-wrap: balance;
}
.home-page .hero-badge {
  margin-bottom: 16px;
  font-size: 14px;
  font-weight: 500;
  line-height: 1.5;
  letter-spacing: .025em;
  color: var(--home-muted);
  text-wrap: balance;
}
.home-page .hero-sub {
  max-width: 44ch;
  margin: 24px 0 0;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.65;
  letter-spacing: 0;
  color: var(--home-muted);
  text-wrap: pretty;
}
.home-page .hero-cta { margin-top: 32px; }

.home-page .home-page-main > section:not(.hero),
.home-page #services.services { padding-block: var(--home-section-space); }
.home-page :is(.home-intro-head, .services-head, .section-head, .trust-head) {
  max-width: 780px;
  margin-inline: auto;
  text-align: center;
}
.home-page :is(.services-head, .section-head, .trust-head) {
  gap: 16px;
  margin-bottom: var(--home-heading-gap);
}
.home-page :is(.home-intro-head, .services-head, .section-head, .trust-head, .blog-faq) h2,
.home-page #steps .section-head h2,
.home-page .contact-cta-title {
  font-size: var(--home-h2);
  font-weight: 600;
  line-height: 1.18;
  letter-spacing: -.035em;
  color: var(--home-ink);
  text-wrap: balance;
}
.home-page :is(.home-intro-head, .services-head, .section-head, .trust-head) h2 {
  max-width: 26ch;
  margin: 0 auto;
}
.home-page :is(.eyebrow, .trust-eyebrow, .blog-eyebrow, .service-eyebrow) {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: .015em;
  text-transform: none;
  color: var(--home-muted);
}
.home-page :is(.section-head .eyebrow, .trust-head .trust-eyebrow) { margin: 0; }
.home-page .blog-faq .blog-eyebrow { margin: 0 0 16px; }
.home-page .home-intro-head > p {
  max-width: 62ch;
  margin: 24px auto 0;
  font-size: 18px;
  font-weight: 400;
  line-height: 1.65;
  letter-spacing: 0;
  color: var(--home-muted);
  text-wrap: pretty;
}
.home-page .home-intro-panel { margin-top: var(--home-heading-gap); }

/* Adjust the copy within the existing surfaces, without changing their dimensions. */
.home-page .feature-title {
  font-size: var(--home-h3);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -.025em;
  white-space: normal;
  text-wrap: balance;
}
.home-page .feature-lead {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.6;
}
.home-page .feature-text {
  font-size: 16px;
  line-height: 1.65;
  color: var(--home-muted);
  text-wrap: pretty;
}
.home-page .home-intro-row .feature-title { margin-bottom: 12px !important; }
.home-page .home-intro-row .feature-lead { margin-bottom: 16px !important; }
.home-page #services .service-card h3,
.home-page #solutions .solution-card .wide-solution-title {
  font-size: 24px;
  font-weight: 600;
  line-height: 1.22;
  letter-spacing: -.025em;
  text-wrap: balance;
}
.home-page .steps-accordion { gap: 0; }
.home-page .step-item { padding-block: 22px; }
.home-page .step-heading { display: grid; grid-template-columns: 20px minmax(0, 1fr); gap: 12px; }
.home-page .step-item summary {
  font-size: 22px;
  font-weight: 600;
  line-height: 1.35;
  letter-spacing: -.02em;
}
.home-page .step-body {
  font-size: 16px;
  line-height: 1.7;
  color: var(--home-muted);
}
.home-page .step-item[open] .step-body { padding-top: 20px; }
.home-page .step-item.is-collapsing .step-body { padding-top: 0; }
.home-page .step-body > p { padding-inline: 32px 24px; text-wrap: pretty; }
.home-page .trust-metric-label {
  font-size: 14px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: .025em;
  text-transform: none;
}
.home-page .trust-metric-value {
  font-size: var(--home-h3);
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -.025em;
}
.home-page .trust-metric-desc { font-size: 16px; line-height: 1.6; }
.home-page .blog-faq h2 { max-width: 22ch; }
.home-page .blog-faq summary { font-size: 19px; font-weight: 600; line-height: 1.4; letter-spacing: -.015em; }
.home-page .blog-faq details p { font-size: 16px; line-height: 1.65; padding-top: 16px; }
.home-page .contact-cta-card {
  display: block;
  min-height: 0;
  padding: clamp(40px, 6vw, 80px);
}
.home-page .contact-cta-copy { padding: 0; gap: 0; align-items: center; text-align: center; }
.home-page .contact-cta-copy .eyebrow { margin: 0 0 16px; max-width: none; font-size: 16px; font-weight: 500; line-height: 1.4; letter-spacing: .015em; color: var(--home-muted); }
.home-page .contact-cta-title { max-width: 24ch; margin: 0; }
.home-page .contact-cta-copy .contact-cta-lead { max-width: 56ch; margin: 24px 0 0; font-size: 18px; font-weight: 400; line-height: 1.65; letter-spacing: 0; color: var(--home-muted); text-wrap: pretty; }
.home-page .contact-cta-copy .contact-cta-note { margin-top: 8px; font-size: 16px; line-height: 1.6; letter-spacing: 0; }
.home-page .home-contact-actions { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 16px 12px; margin-top: 32px; }
.home-page .home-contact-actions .contact-cta-btn { margin-top: 0; flex-shrink: 0; }
.home-page .home-contact-link { display: inline-flex; justify-content: center; align-items: center; gap: 14px; width: 169px; min-height: 47px; padding: 10px 20px; border: 1px solid var(--accent); border-radius: 999px; color: var(--home-ink); font-size: 15px; line-height: 1.4; font-weight: 500; }
.home-page .home-contact-link:hover { background: var(--accent-soft); }
.home-page .home-contact-link:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }

@media (max-width: 1024px) {
  .home-page #services .service-card h3,
  .home-page #solutions .solution-card .wide-solution-title { font-size: 22px; }
}
@media (max-width: 768px) {
  .home-page-main { --home-h1: clamp(35px, 8.5vw, 45px); --home-h2: clamp(30px, 6vw, 34px); --home-h3: 24px; }
  .home-page .hero { padding-block: 40px 48px; }
  .home-page .hero-title { margin: 0 auto; max-width: 16ch; text-align: center; }
  .home-page .hero-badge { max-width: 34ch; margin: 0 auto 16px; font-size: 12px; }
  .home-page .hero-sub { max-width: 36ch; margin: 20px auto 0; font-size: 17px; line-height: 1.6; }
  .home-page .hero-cta { order: 6; margin: 28px auto 0; }
  .home-page .hero-visual { order: 5; margin-top: 32px; }
  .home-page .home-intro-head > p { max-width: 40ch; margin-top: 20px; font-size: 17px; line-height: 1.6; }
  .home-page :is(.home-intro-head, .services-head, .section-head, .trust-head) h2 { max-width: 22ch; }
  .home-page .feature-title { text-align: center; }
  .home-page .feature-lead { text-align: center; }
  .home-page .feature-text { text-align: left; }
  .home-page #services .service-card h3,
  .home-page #solutions .solution-card .wide-solution-title { font-size: 21px; }
  .home-page .step-item summary { font-size: 19px; }
  .home-page .step-item { padding-block: 20px; }
  .home-page .step-body > p { padding-right: 0; }
  .home-page .blog-faq__inner { gap: 32px; }
  .home-page .blog-faq__inner > div:first-child { text-align: center; }
  .home-page .blog-faq h2 { margin-inline: auto; }
  .home-page .blog-faq summary { font-size: 18px; }
  .home-page .contact-cta-card { padding: 40px 24px; }
  .home-page .contact-cta-copy .contact-cta-lead { margin-top: 20px; font-size: 17px; line-height: 1.6; }
}
