/* Self-hosted fonts -- Source Serif 4 */
@font-face {
  font-family: 'Source Serif 4';
  src: url('/fonts/SourceSerif4-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Source Serif 4';
  src: url('/fonts/SourceSerif4-Italic.woff2') format('woff2');
  font-weight: 400;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Source Serif 4';
  src: url('/fonts/SourceSerif4-SemiBold.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Source Serif 4';
  src: url('/fonts/SourceSerif4-SemiBoldItalic.woff2') format('woff2');
  font-weight: 600;
  font-style: italic;
  font-display: swap;
}

@font-face {
  font-family: 'Source Serif 4';
  src: url('/fonts/SourceSerif4-Bold.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* Self-hosted fonts -- Barlow Semi Condensed */
@font-face {
  font-family: 'Barlow Semi Condensed';
  src: url('/fonts/BarlowSemiCondensed-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Barlow Semi Condensed';
  src: url('/fonts/BarlowSemiCondensed-Medium.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Barlow Semi Condensed';
  src: url('/fonts/BarlowSemiCondensed-SemiBold.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: 'Barlow Semi Condensed';
  src: url('/fonts/BarlowSemiCondensed-Bold.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: swap;
}

/* Base heading styles */
h1, h2, h3 {
  font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.15;
  color: var(--color-text-primary);
}

h4, h5, h6 {
  font-family: var(--font-body);
  font-weight: 500;
  line-height: 1.3;
  color: var(--color-text-primary);
}

h1 { font-size: clamp(var(--text-4xl), 5vw, var(--text-6xl)); letter-spacing: -0.02em; }
h2 { font-size: clamp(var(--text-3xl), 4vw, var(--text-5xl)); letter-spacing: -0.015em; }
h3 { font-size: clamp(var(--text-2xl), 3vw, var(--text-4xl)); }
h4 { font-size: var(--text-xl); }
h5 { font-size: var(--text-lg); }
h6 { font-size: var(--text-base); }

p {
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: 1.7;
  color: var(--color-text-secondary);
}

p + p {
  margin-top: var(--space-4);
}

/* Utility classes */
.text-display {
  font-family: var(--font-display);
  font-weight: 700;
  line-height: 1.1;
}

.text-heading {
  font-family: var(--font-display);
  font-weight: 600;
  line-height: 1.2;
}

.text-body {
  font-family: var(--font-body);
  font-weight: 400;
  line-height: 1.7;
}

.text-caption {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  color: var(--color-text-muted);
}

.text-overline {
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--color-gold-text);
}

.text-overline--light {
  color: var(--color-gold-on-dark);
}

.text-editorial {
  font-style: italic;
}

.text-body-lg {
  font-size: 1.0625rem;
  line-height: 1.7;
}

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