/**
 * Type scale. Large, confident headlines; restrained body text. Every
 * heading/body size used on the site should come from here, not a one-off
 * font-size in a component file.
 */

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body {
  font-family: var(--font-sans);
  color: var(--color-text);
  font-size: 1rem;
  line-height: 1.6;
  font-feature-settings: 'cv11', 'ss01';
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.02em;
  color: var(--color-text);
  margin: 0;
}

/* Hero-scale headline — used once per page, at most */
.text-display {
  font-size: clamp(2.5rem, 4.5vw, 3.75rem);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.08;
}

h1, .h1 {
  font-size: clamp(2rem, 3.5vw, 2.75rem);
}

h2, .h2 {
  font-size: clamp(1.625rem, 2.75vw, 2.125rem);
}

h3, .h3 {
  font-size: 1.375rem;
}

h4, .h4 {
  font-size: 1.125rem;
}

p {
  margin: 0;
}

.text-lead {
  font-size: 1.1875rem;
  line-height: 1.6;
  color: var(--color-text-secondary);
}

.text-body {
  font-size: 1rem;
  color: var(--color-text-secondary);
  line-height: 1.7;
}

.text-small {
  font-size: 0.875rem;
  color: var(--color-text-secondary);
}

.text-eyebrow {
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--color-accent);
}

a {
  color: inherit;
  text-decoration: none;
}

::selection {
  background: var(--color-accent);
  color: #fff;
}
