/* Controlled type scale loaded after the legacy and global styles. */
body { font-size: 16px; line-height: 1.65; }

h1, h2, h3, h4 { margin-top: 0; color: var(--navy); font-family: "Raleway", system-ui, sans-serif; text-wrap: balance; }
h1 { font-size: clamp(2.25rem, 4.8vw, 4.25rem); line-height: 1.06; letter-spacing: -.035em; }
h2 { font-size: clamp(1.65rem, 2.7vw, 2.5rem); line-height: 1.14; letter-spacing: -.022em; }
h3 { font-size: clamp(1.15rem, 1.6vw, 1.4rem); line-height: 1.25; letter-spacing: -.012em; }
h4 { font-size: 1.05rem; line-height: 1.3; }

.global-hero h1 { max-width: 850px; margin-bottom: 1.1rem; font-size: clamp(2.6rem, 5.2vw, 4.6rem); line-height: 1.03; }
.page-hero h1 { max-width: 850px; font-size: clamp(2.25rem, 4.2vw, 3.65rem); line-height: 1.07; }
.lead { font-size: clamp(1.03rem, 1.5vw, 1.18rem); line-height: 1.65; }

/* Only true section headers receive the larger section-title treatment. */
.section-heading h2 { font-size: clamp(1.75rem, 3vw, 2.65rem); line-height: 1.12; }
.content-section > .global-container > h2,
.content-section > .global-container > .split > div > h2:first-child { font-size: clamp(1.7rem, 2.7vw, 2.4rem); }

/* Compact headings inside cards, sidebars, maps, forms and technical tables. */
.solution-card h2,
.solution-card h3,
.card-content h2,
.card-content h3,
.evidence-box h2,
.notice h2,
.location-details h2,
.event-content h2,
aside h2 { font-size: clamp(1.2rem, 1.8vw, 1.55rem); line-height: 1.22; letter-spacing: -.012em; }
.evidence-box h3,
.notice h3,
aside h3 { font-size: 1.15rem; }

p, li, td, th { max-width: 75ch; }
.card-content p, .evidence-box p, .notice p, .location-details p { font-size: .96rem; line-height: 1.6; }
.eyebrow { font-size: .74rem; line-height: 1.35; }
.button, .nav-cta { font-size: .94rem; }
.spec-table { font-size: .95rem; }
.global-footer { font-size: .94rem; }
.global-footer h2 { font-size: 1rem; letter-spacing: 0; }
/* Site-wide controlled-document preview pattern. */
.document-card { padding: 1.2rem; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; }
.document-thumbnail { display: block; margin: 0 0 1.25rem; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: var(--soft); }
.document-thumbnail img { display: block; width: 100%; aspect-ratio: 3 / 4; max-height: 360px; object-fit: contain; transition: transform .2s ease; }
.document-thumbnail:hover img { transform: scale(1.025); }
.document-meta { margin: -.35rem 0 1rem; color: var(--muted); font-size: .86rem; }
.document-card .button { width: 100%; text-align: center; }

@media (max-width: 600px) {
  body { font-size: 15.5px; }
  .global-hero h1 { font-size: clamp(2.25rem, 11vw, 3.1rem); }
  .page-hero h1 { font-size: clamp(2rem, 9vw, 2.75rem); }
  .content-section { padding-top: 3.25rem; padding-bottom: 3.25rem; }
}
