body { font-family: var(--font-body); font-size: 16px; line-height: 1.7; color: var(--ink); }
h1, h2, h3, h4, h5, h6 { font-family: var(--font-display); color: var(--navy); line-height: 1.08; letter-spacing: -.025em; }
h1 { font-size: clamp(2.55rem, 5vw, 5.2rem); }
h2 { font-size: clamp(2rem, 3.5vw, 3.75rem); }
h3 { font-size: clamp(1.25rem, 2vw, 1.7rem); }
p { margin-bottom: 1.15rem; }
.lead { font-size: clamp(1.08rem, 1.6vw, 1.3rem); color: var(--ink-soft); line-height: 1.65; }
.eyebrow { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 18px; color: var(--gold-dark); font-family: var(--font-display); font-weight: 750; font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; }
.eyebrow::before { content: ""; width: 34px; height: 2px; background: currentColor; }
.text-muted { color: var(--ink-soft); }
.text-center { text-align: center; }
.kicker { font-family: var(--font-display); font-size: .78rem; font-weight: 750; letter-spacing: .13em; text-transform: uppercase; }
.lead--on-dark { color: rgba(255,255,255,.72); }
.section-card-title { font-size: clamp(1.8rem, 3vw, 2.8rem); }
.project-title { font-size: clamp(1.5rem, 2.4vw, 2.15rem); }
.news-title { font-size: 1.35rem; }
.sidebar-title { font-size: 1.25rem; }
.contact-heading { font-size: clamp(1.8rem, 3vw, 2.8rem); }
