/* Shared type scale. Central overrides intentionally replace legacy per-section sizes. */
:root {
  --type-hero: 4rem;
  --type-section: 3rem;
  --type-subtitle: 1.5rem;
  --type-body: 1.125rem;
  --type-control: 1rem;
  --type-label: .875rem;
}
body, input, select, textarea, button { font-family: "Helvetica Now Display", Arial, sans-serif; }
body { font-size: var(--type-body); }
h1 { font-size: var(--type-hero) !important; line-height: 1.08 !important; font-weight: 300 !important; letter-spacing: -.04em !important; }
h2 { font-size: var(--type-section) !important; line-height: 1.14 !important; font-weight: 300 !important; letter-spacing: -.038em !important; }
h3 { font-size: var(--type-subtitle) !important; line-height: 1.25 !important; font-weight: 400 !important; letter-spacing: -.025em !important; }
p, main li, main dt,
.inline-services span, .management-list span,
.investment-copy strong, .transparency-copy strong,
.contact-field input, .contact-field select, .contact-field textarea,
.contact-channel-text small, .contact-channel-text strong {
  font-size: var(--type-body) !important;
  line-height: 1.6 !important;
}
p { font-weight: 400; }
.button, .text-link, .house-inline-link, .vision-link,
.offer-copy > span, .house-path-copy > span,
.contact-submit, .contact-field label {
  font-size: var(--type-control) !important;
  line-height: 1.4;
}
.nav-left a, .nav-right a, .footer nav a, .footer-bottom,
.hero-eyebrow, .contact-eyebrow, .contact-form-eyebrow,
.slide-count, .slide-count span {
  font-size: var(--type-label) !important;
  line-height: 1.4 !important;
}
.mobile-menu a { font-size: var(--type-body) !important; line-height: 1.5; }
.hero-eyebrow { letter-spacing: .1em; }
.home-process-steps > div > span { font-size: var(--type-subtitle) !important; line-height: 1.25; }
:where(h1, h2, h3, p, a, span, li, strong, button, small, dt) { text-wrap: balance; }

/* Let the unified scale wrap inside every column without clipping. */
.hero h1, .contact-page h1, main h2, main h3 { overflow-wrap: break-word; white-space: normal; }
.home-hero-copy { min-width: 0; }
.home-hero h1 { max-width: 780px; }
.home-hero .hero-description { max-width: 585px; }
.home-hero-inner { gap: 30px; }
.hero-controls { flex-shrink: 0; }
.contact-page .contact-layout { gap: 6%; }
.contact-form-card { padding: clamp(28px, 3.2vw, 46px); }
.contact-fields { grid-template-columns: minmax(0, 1fr); }
.contact-field-wide { grid-column: auto; }
.about-principles .point-list > div { min-height: 320px; }
.difference-features > div, .point-list > div, .house-management-group > div { min-width: 0; }
.contact-strip-inner h2, .home-final-content > div { min-width: 0; }
.home-final { height: auto; min-height: 420px; }
.home-final-content { padding-block: 64px; }
.footer-grid { grid-template-columns: 260px minmax(0, 1fr) 280px; }
.footer-right p { line-height: 1.5 !important; }
@media (max-width: 1100px) {
  :root { --type-hero: 3.375rem; --type-section: 2.5rem; }
  .footer-grid { grid-template-columns: 215px minmax(0, 1fr); }
  .footer-right { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  :root { --type-hero: 2.5rem; --type-section: 2.125rem; --type-subtitle: 1.375rem; }
  .hero, .home-hero, .sub-hero, .houses-hero { height: auto; max-height: none; min-height: max(700px, 94svh); }
  .home-hero-inner { padding-top: 125px; gap: 0; }
  .sub-hero .hero-content { padding-top: 130px; }
  .hero-eyebrow { margin-bottom: 18px !important; }
  .about-principles .point-list > div { min-height: 230px; }
  .footer-grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .footer-brand, .footer-right { grid-column: auto; }
  .home-final-content { padding-block: 52px; }
}

/* Compact type for the three house benefits below the hero. */
.houses-benefits h3 { font-size: 1.25rem !important; }
.houses-benefits p { font-size: 1rem !important; }

/* Larger navigation labels inside the pale-green menu buttons. */
.site-header .nav-left a, .site-header .nav-right a { font-size: 1rem !important; }
