/* Shared type scale for every public page. Size rules intentionally override
   legacy section and article styles so each heading level stays consistent. */
:root {
  --type-h1: 56px;
  --type-h2: 36px;
  --type-h3: 22px;
  --type-h4: 18px;
  --type-h5: 16px;
  --type-h6: 14px;
  --type-body: 15px;
  --type-caption: 12px;
  --type-label: 11px;
}

body { font-family: var(--font-body); font-size: var(--type-body); line-height: 1.75; }
h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-heading) !important;
  font-weight: 700 !important;
  overflow-wrap: break-word;
  text-wrap: balance;
}
h1 { font-size: var(--type-h1) !important; line-height: 1.12 !important; letter-spacing: -.045em !important; }
h2 { font-size: var(--type-h2) !important; line-height: 1.22 !important; letter-spacing: -.035em !important; }
h3 { font-size: var(--type-h3) !important; line-height: 1.35 !important; letter-spacing: -.025em !important; }
h4 { font-size: var(--type-h4) !important; line-height: 1.4 !important; letter-spacing: -.015em !important; }
h5 { font-size: var(--type-h5) !important; line-height: 1.45 !important; letter-spacing: 0 !important; }
h6 { font-size: var(--type-h6) !important; line-height: 1.5 !important; letter-spacing: 0 !important; }

/* Heading links and accordion triggers follow their parent heading. */
:is(h1, h2, h3, h4, h5, h6) > :is(a, button) {
  font-family: inherit !important;
  font-size: inherit !important;
  font-weight: inherit !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
}

main p:not(.eyebrow):not(.small):not(.hero-note):not(.panel-kicker):not(.breadcrumb),
main li, main li > :is(p, a),
.confirmation-card p:not(.eyebrow) {
  font-size: var(--type-body) !important;
  line-height: 1.75 !important;
}
.eyebrow, .panel-kicker {
  font-size: var(--type-label) !important;
  font-weight: 700 !important;
  line-height: 1.6 !important;
  letter-spacing: .12em !important;
}
.small, .hero-note, main figcaption,
.glance-card dt, .glance-card dd > span {
  font-size: var(--type-caption) !important;
  line-height: 1.6 !important;
}
.site-header .main-nav a { font-size: 16px !important; }

/* Let longer labels wrap naturally as the shared text size grows. */
.amenity-card { height: auto; }
.amenity-card p { margin-bottom: 0; }
.project-highlights h2 { margin-bottom: 16px; }
.faq-showcase .faq-item h3 > button { align-items: center; }

@media (min-width: 1024px) and (max-width: 1279px) {
  .site-header .main-nav a { font-size: 14px !important; }
}
@media (max-width: 1023px) {
  :root { --type-h1: 44px; --type-h2: 32px; }
}
@media (max-width: 767px) {
  :root {
    --type-h1: 36px;
    --type-h2: 28px;
    --type-h3: 20px;
    --type-body: 14px;
    --type-label: 10px;
  }
  .amenities-panel .eyebrow { letter-spacing: .08em !important; }
}
