html {
  font-family: var(--font-sans);
  font-size: 16px;
  font-weight: 400;
  line-height: 1.5;
  color: var(--navy);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

body {
  font-family: var(--font-sans);
}

.serif {
  font-family: var(--font-serif);
  font-weight: 500;
  letter-spacing: -0.01em;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-serif);
  font-weight: 500;
  color: var(--navy);
  margin: 0;
  line-height: 1.1;
}

h1, .h1 {
  font-size: clamp(40px, 6.4vw, 72px);
  line-height: 1.05;
  letter-spacing: -0.02em;
}

h2, .h2 {
  font-size: clamp(36px, 5.2vw, 60px);
  line-height: 1.08;
  letter-spacing: -0.02em;
}

h3, .h3 {
  font-size: clamp(28px, 4vw, 48px);
  line-height: 1.12;
  letter-spacing: -0.01em;
}

h4, .h4 {
  font-size: clamp(22px, 2.4vw, 32px);
  line-height: 1.2;
  letter-spacing: -0.01em;
}

h5, .h5 {
  font-size: clamp(20px, 1.8vw, 24px);
  line-height: 1.3;
}

h6, .h6 {
  font-size: 20px;
  line-height: 1.4;
}

p {
  margin: 0;
  font-size: 16px;
  line-height: 1.55;
}

.body-m {
  font-size: 18px;
  line-height: 1.55;
}

.body-r {
  font-size: 16px;
  line-height: 1.5;
}

.caption {
  font-size: 14px;
  line-height: 1.45;
}

.eyebrow {
  font-family: var(--font-sans);
  font-size: 12px;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.18em;
  color: var(--olive);
}

em, i, .italic {
  font-style: italic;
}

.text-muted { color: var(--navy-65); }
.text-soft  { color: var(--navy-40); }
.text-cream { color: var(--cream); }
.text-gold  { color: var(--gold); }
.text-olive { color: var(--olive); }
