/* Typography Hierarchy */
.text-xs { font-size: var(--text-xs); }
.text-sm { font-size: var(--text-sm); }
.text-base { font-size: var(--text-base); }
.text-lg { font-size: var(--text-lg); }
.text-xl { font-size: var(--text-xl); }
.text-2xl { font-size: var(--text-2xl); }
.text-3xl { font-size: var(--text-3xl); }
.text-4xl { font-size: var(--text-4xl); }
.text-display { font-size: var(--text-display); }

/* Font Families */
.font-headings { font-family: var(--font-headings); }
.font-body { font-family: var(--font-body); }
.font-display { font-family: var(--font-display); }

/* Typography Formatting */
h1, h2, h3, h4, h5, h6 {
  text-wrap: balance; /* Balance short headers */
  letter-spacing: -0.02em;
  margin-bottom: var(--space-xs);
}

p, blockquote, li {
  text-wrap: pretty; /* Prevent orphans */
  color: var(--text-secondary);
}

.text-orange {
  color: var(--accent-orange);
}

.text-steel {
  color: var(--steel-gray);
}

.text-muted {
  color: var(--text-muted);
}

.text-center {
  text-align: center;
}

.text-uppercase {
  text-transform: uppercase;
}

.letter-spacing-wide {
  letter-spacing: 0.15em;
}

.letter-spacing-widest {
  letter-spacing: 0.3em;
}

/* Font Size Adjust for stable fallbacks */
.font-adjust {
  font-size-adjust: from-font;
}

/* Display styles */
.display-title {
  font-family: var(--font-display);
  font-size: var(--text-display);
  line-height: 0.9;
  text-transform: uppercase;
  color: var(--text-primary);
}

.section-title {
  font-family: var(--font-headings);
  font-size: var(--text-3xl);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: -0.01em;
  position: relative;
  display: inline-block;
  margin-bottom: var(--space-md);
}

.section-title::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: -8px;
  width: 60px;
  height: 3px;
  background-color: var(--accent-orange);
}

.section-title.center::after {
  left: 50%;
  transform: translateX(-50%);
}

.section-subtitle {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 600;
  text-transform: uppercase;
  color: var(--accent-orange);
  letter-spacing: 0.15em;
  margin-bottom: var(--space-sm);
  display: block;
}

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