/* Homepage typography contract.
   Loaded after shared scales so every repeated content role resolves identically. */
.home-page {
  --home-type-display: clamp(3rem, 3.85vw, 3.625rem);
  --home-type-section: 2.5rem;
  --home-type-card: 1.375rem;
  --home-type-lead: 1.125rem;
  --home-type-body: 1rem;
  --home-type-small: 0.875rem;
  --home-type-kicker: 0.8125rem;
}

.home-page main :is(h1, h2, h3, .statement) {
  font-family: "e-Ukraine Head", sans-serif;
  letter-spacing: 0;
  text-wrap: balance;
}

.home-page main .hero h1 {
  max-width: 13ch;
  font-size: var(--home-type-display) !important;
  font-weight: 800 !important;
  line-height: 1.04 !important;
}

.home-page main :is(
  .reserve-comparison-intro h2,
  .home-quick-copy h2,
  .manifest .statement,
  #packages .section-head h2,
  .trust-copy h2,
  .install-gallery-head h2,
  .process-copy h2,
  .seo-faq .section-head h2
) {
  font-size: var(--home-type-section) !important;
  font-weight: 800 !important;
  line-height: 1.1 !important;
}

.home-page main :is(
  .reserve-benefit h3,
  .package h3,
  .step h3,
  .answer-card h3,
  .home-quick-actions a > strong,
  .why-card > strong
) {
  font-size: var(--home-type-card) !important;
  font-weight: 700 !important;
  line-height: 1.22 !important;
}

.home-page main :is(
  .hero-text,
  .reserve-comparison-lead,
  .home-quick-copy > p,
  .trust-copy > p,
  .install-gallery-head > p,
  .process-copy > p,
  .seo-faq .section-head > p
) {
  max-width: 64ch;
  color: #66707a !important;
  font-family: "IBM Plex Sans", sans-serif;
  font-size: var(--home-type-lead) !important;
  font-weight: 400 !important;
  line-height: 1.6 !important;
  text-wrap: pretty;
}

/* Exact legacy locks: older homepage rules use IDs and heavier selectors. */
body.home-page main .section-head h2,
body.home-page main .process-copy h2,
body.home-page main .trust-copy h2,
body.home-page main .install-gallery-head h2,
body.home-page main .manifest .statement {
  font-size: var(--home-type-section) !important;
  font-weight: 800 !important;
  line-height: 1.1 !important;
}

body.home-page main #packages .section-head h2,
body.home-page main #process .process-copy h2,
body.home-page main #faq .section-head h2 {
  font-size: var(--home-type-section) !important;
  font-weight: 800 !important;
  line-height: 1.1 !important;
}

body.home-page main #packages .package .package-composition {
  font-family: "IBM Plex Sans", sans-serif;
  font-size: var(--home-type-body) !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
}

body.home-page main #trust .trust-item span {
  font-family: "IBM Plex Sans", sans-serif;
  font-size: var(--home-type-body) !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
}

.home-page main :is(
  .reserve-benefit p,
  .home-quick-actions a > span,
  .why-card p,
  .package .package-composition,
  .trust-item span,
  .step p,
  .answer-card p
) {
  font-family: "IBM Plex Sans", sans-serif;
  font-size: var(--home-type-body) !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
  text-wrap: pretty;
}

.home-page main :is(.eyebrow, .section-kicker) {
  color: #60751a !important;
  font-family: "IBM Plex Sans", sans-serif;
  font-size: var(--home-type-kicker) !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
}

.home-page main .trust-item strong {
  font-size: 1.75rem !important;
  font-weight: 800 !important;
  line-height: 1.12 !important;
}

.home-page main .install-gallery figcaption strong {
  font-size: var(--home-type-body) !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
}

.home-page main .install-gallery figcaption span {
  font-size: var(--home-type-small) !important;
  font-weight: 400 !important;
  line-height: 1.45 !important;
}

.home-page main :is(
  .hero-trust-strip,
  .cta-reassurance,
  .package-scenario,
  .package-spec,
  .package-warranty small
) {
  font-size: var(--home-type-small) !important;
  line-height: 1.45 !important;
}

.home-page main :is(.btn, .package-action, .install-gallery-actions a) {
  font-size: var(--home-type-body) !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
}

/* Hero proof points: short independent markers without a connected rail. */
.home-page main .hero-trust-strip {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 12px 28px !important;
  width: min(100%, 620px) !important;
  max-width: 620px !important;
  margin-top: 24px !important;
  padding: 0 !important;
}

.home-page main .hero-trust-strip::before {
  content: none !important;
}

.home-page main .hero-trust-strip span {
  position: relative !important;
  display: inline-flex !important;
  align-items: center !important;
  min-height: 0 !important;
  padding: 0 0 0 25px !important;
  border: 0 !important;
  background: transparent !important;
  color: #555c61 !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  text-align: left !important;
  box-shadow: none !important;
}

.home-page main .hero-trust-strip span::before {
  content: "" !important;
  position: absolute !important;
  top: 50% !important;
  left: 0 !important;
  width: 16px !important;
  height: 2px !important;
  border: 0 !important;
  border-radius: 999px !important;
  background: #8fae35 !important;
  box-shadow: none !important;
  transform: translateY(-50%) !important;
}

.home-page main .hero-trust-strip span::after {
  content: none !important;
  display: none !important;
}

.home-page main .reserve-comparison-intro {
  grid-template-columns: 1fr !important;
  margin-bottom: clamp(28px, 4vw, 44px) !important;
}

.home-page main .reserve-comparison-intro h2 {
  margin-top: 0 !important;
  max-width: 18ch !important;
}

body.home-page main #trust .trust-list .trust-item strong,
body.home-page main #trust .trust-list .trust-item .trust-brand {
  color: #8fae35 !important;
  font-size: 1.625rem !important;
  font-weight: 800 !important;
  line-height: 1.12 !important;
  text-wrap: balance;
}

body.home-page main #trust .trust-list .trust-item span {
  color: #4f575d !important;
  font-size: var(--home-type-body) !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
}

@media (max-width: 760px) {
  .home-page {
    --home-type-display: clamp(2.25rem, 9.5vw, 2.5rem);
    --home-type-section: 1.875rem;
    --home-type-card: 1.25rem;
    --home-type-lead: 1rem;
    --home-type-body: 1rem;
    --home-type-small: 0.875rem;
    --home-type-kicker: 0.75rem;
  }

  .home-page main .hero h1 {
    max-width: 11ch;
  }

  .home-page main .trust-item strong {
    font-size: 1.5rem !important;
  }

  .home-page main .hero-trust-strip {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 9px !important;
    margin-top: 18px !important;
  }

  .home-page main .hero-trust-strip span {
    font-size: 0.9375rem !important;
    line-height: 1.35 !important;
  }

  .home-page main .hero-trust-strip span::before {
    left: 0 !important;
    width: 16px !important;
    height: 2px !important;
  }

  body.home-page main #trust .trust-list .trust-item strong,
  body.home-page main #trust .trust-list .trust-item .trust-brand {
    font-size: 1.375rem !important;
    line-height: 1.12 !important;
  }
}
