/* Apply semantic type roles after layout styles, without changing page copy. */
html { scroll-padding-top: var(--header-offset, 112px); }
.home-page { font-family: var(--font-family); font-weight: var(--weight-text); }
.home-page .skip-link { z-index: 100; }
.home-page .home-hero h1 { font-size: var(--type-display); line-height: var(--leading-display); letter-spacing: var(--tracking-display); font-weight: var(--weight-heading); }
.home-page .home-section-title h2 { font-size: var(--type-section); line-height: var(--leading-section); font-weight: var(--weight-heading); }
.home-page .home-steps h3,
.home-page .home-responsibility-grid h3,
.home-page .home-reports h3 { font-size: var(--type-card); line-height: var(--leading-card); font-weight: var(--weight-heading); }
.home-page .home-copy p,
.home-page .home-process p,
.home-page .home-responsibility-grid li,
.home-page .home-reports p,
.home-page .home-reports li { font-size: var(--type-body); line-height: var(--leading-body); }
.home-page .home-hero-bottom > p { font-size: var(--type-body); line-height: var(--leading-lead); }
.home-page p.home-lead { font-size: var(--type-lead); line-height: var(--leading-lead); }
.home-page .home-primary { font-size: var(--type-body); font-weight: var(--weight-heading); line-height: 1.4; }
.home-page .home-hero-nav a,
.home-page .home-cases-link { font-size: var(--type-ui); line-height: var(--leading-ui); }
.home-page .eyebrow,
.home-page .home-topline .hero-note,
.home-page .home-start > span,
.home-page .home-frequency { font-size: var(--type-caption); line-height: var(--leading-caption); }
.home-page .eyebrow,
.home-page .home-frequency { letter-spacing: 1.2px; }

/* Contact area: clear hierarchy without very large headings or tiny labels. */
.home-page .contact h2 { font-size: var(--type-contact); line-height: var(--leading-contact); letter-spacing: -.03em; font-weight: var(--weight-heading); }
.home-page .contact .eyebrow { font-size: var(--type-caption); line-height: var(--leading-caption); }
.home-page .contact .project-form .form-intro { font-size: var(--type-lead); line-height: var(--leading-ui); }
.home-page .contact .contact-label,
.home-page .contact .messenger-links a,
.home-page .contact .contact-channel legend,
.home-page .contact .channel-option span,
.home-page .contact .form-field > label,
.home-page .contact .optional-site summary,
.home-page .contact .project-form .form-status { font-size: var(--type-ui); line-height: var(--leading-ui); }
.home-page .contact .direct-contacts a,
.home-page .contact .form-field input { font-size: var(--type-body); line-height: var(--leading-ui); }
.home-page .contact .project-form .form-submit { font-size: var(--type-body); font-weight: var(--weight-heading); line-height: 1.4; }
.home-page .contact .field-optional,
.home-page .contact .form-consent,
.home-page .contact .contact-location,
.home-page .contact .project-form .form-preview-note { font-size: var(--type-caption); line-height: var(--leading-caption); }

/* Footer: one readable size for company details, one for the action. */
.home-page .footer-main { flex-wrap: wrap; }
.home-page .footer-main > p,
.home-page .footer-bottom,
.home-page .footer-legal { font-size: var(--type-caption); line-height: var(--leading-caption); }
.home-page .footer .back-top { flex-shrink: 0; font-size: var(--type-ui); line-height: var(--leading-ui); }
.home-page .footer-bottom { flex-wrap: wrap; row-gap: 12px; }

@media(max-width:380px) {
  .home-page .footer-main { gap: 20px 16px; }
  .home-page .footer .back-top { margin-left: 0; }
}
