/* Homepage type roles. Keep the established, self-hosted font pair. */
body.home {
  --type-body: 1.0625rem;
  --type-reading: 1rem;
  --type-meta: .875rem;
  --type-label: .9375rem;
  --type-lead: clamp(1.125rem, 1rem + .3vw, 1.25rem);
  --type-title: clamp(2rem, 1.2rem + 5.4vw, 5rem);
  --type-section: clamp(2rem, 1.4rem + 2vw, 3.25rem);
  --type-card: clamp(1.5rem, 1.25rem + .5vw, 1.75rem);
  font-size: var(--type-body);
  line-height: 1.65;
}

.home h1 {
  max-width: 14ch;
  font-size: var(--type-title);
  font-weight: 800;
  line-height: 1.12;
}

.home h2,
.home .materials-copy h2 {
  font-size: var(--type-section);
  font-weight: 700;
  line-height: 1.18;
}

.home h3 {
  font-size: var(--type-card);
  font-weight: 700;
  line-height: 1.25;
}

.home .site-inline-cta h3 {
  font-size: clamp(1.625rem, 1.25rem + 1vw, 2.25rem);
  line-height: 1.25;
}

.home .hero-lead,
.home .about-copy,
.home .materials-copy p {
  max-width: 68ch;
  font-size: var(--type-lead);
  line-height: 1.65;
}

.home .section-head p,
.home .process-step p,
.home .site-inline-cta p {
  font-size: var(--type-body);
  line-height: 1.65;
}

.home .hero-lead,
.home .about-note p,
.home .materials-copy p,
.home .site-inline-cta:not(.site-inline-cta-quiet) p,
.home .home-review-text {
  font-weight: 450;
  line-height: 1.7;
  letter-spacing: .005em;
}

.home .button,
.home .home-review-toggle,
.home .home-reviews-more {
  font-family: inherit;
  font-size: var(--type-reading);
  font-weight: 700;
  line-height: 1.4;
}

.home .button {
  padding-block: .75rem;
}

.home .fact span,
.home .materials-points span,
.home .field label,
.home .footer-links,
.home .photo-meta span:not(.photo-count) {
  font-size: var(--type-label);
  line-height: 1.5;
}

.home .field label,
.home .materials-points span,
.home .photo-meta,
.home .footer-links {
  font-weight: 700;
}

.home .brand-text small {
  font-size: var(--type-meta);
  line-height: 1.4;
}

.home .fact strong,
.home .photo-count,
.home .contact-line strong {
  font-size: clamp(1.5rem, 1.125rem + 1.4vw, 2.375rem);
  font-weight: 700;
  line-height: 1.2;
  font-variant-numeric: lining-nums tabular-nums;
}

.home .contact-line strong {
  font-size: clamp(1.25rem, 1rem + .75vw, 1.75rem);
  line-height: 1.4;
  overflow-wrap: anywhere;
}

.home .price-table th,
.home .price-table td span,
.home .contact-line span,
.home .form-consent,
.home .home-review-header time {
  font-size: var(--type-meta);
  line-height: 1.5;
}

.home .price-table th,
.home .price-table td strong,
.home .price-table td:last-child,
.home .form-consent a {
  font-weight: 700;
}

.home .price-table td strong {
  font-size: 1.125rem;
  line-height: 1.4;
}

.home .price-table td span {
  font-weight: 600;
}

/* Let enlarged type determine card density; retain the mobile stack. */
.home .advantage-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
}

.home .process-grid {
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr));
}

.home h1,
.home h2,
.home h3,
.home .advantage p,
.home .process-step p,
.home .price-table td {
  overflow-wrap: anywhere;
}

.home .price-table td { hyphens: auto; }

.home .price-table td:last-child {
  font-size: clamp(1rem, .875rem + .3vw, 1.25rem);
  line-height: 1.4;
  font-variant-numeric: lining-nums tabular-nums;
}

.home .form-consent {
  font-weight: 500;
}

.home #reviews .home-review-header h3 {
  font-family: Manrope, system-ui, sans-serif;
  font-size: var(--type-body);
  font-weight: 700;
  line-height: 1.4;
}

.home .home-review-text {
  font-size: var(--type-reading);
}

.home .home-review-toggle {
  font-size: var(--type-label);
}

.home .cookie-consent__button,
.home .footer-cookie-button {
  font-family: inherit;
  font-size: var(--type-label);
  font-weight: 700;
  line-height: 1.4;
}

@media (max-width: 860px) {
  .home h1 { max-width: none; }
  .home .advantage-grid,
  .home .process-grid { grid-template-columns: 1fr; }
}
