/* =========================================
   TYPOGRAPHY — escala e estilos base
   ========================================= */

/* --- Headings --- */
h1, .h1 {
  font-family: var(--font-display);
  font-size: clamp(var(--text-4xl), 7vw, var(--text-7xl));
  font-weight: var(--weight-black);
  line-height: var(--leading-tight);
  letter-spacing: -0.02em;
}

h2, .h2 {
  font-family: var(--font-display);
  font-size: clamp(var(--text-3xl), 4.5vw, var(--text-5xl));
  font-weight: var(--weight-bold);
  line-height: var(--leading-tight);
  letter-spacing: -0.015em;
}

h3, .h3 {
  font-family: var(--font-display);
  font-size: clamp(var(--text-2xl), 3vw, var(--text-3xl));
  font-weight: var(--weight-bold);
  line-height: var(--leading-snug);
}

h4, .h4 {
  font-size: var(--text-xl);
  font-weight: var(--weight-semibold);
  line-height: var(--leading-snug);
}

h5, .h5 {
  font-size: var(--text-lg);
  font-weight: var(--weight-semibold);
}

h6, .h6 {
  font-size: var(--text-base);
  font-weight: var(--weight-semibold);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

/* --- Corpo --- */
.text-lg   { font-size: var(--text-lg); line-height: var(--leading-normal); }
.text-base { font-size: var(--text-base); }
.text-sm   { font-size: var(--text-sm); }
.text-xs   { font-size: var(--text-xs); }

/* --- Utilitários de cor --- */
.text-primary   { color: var(--color-text-primary); }
.text-secondary { color: var(--color-text-secondary); }
.text-muted     { color: var(--color-text-muted); }
.text-brand     { color: var(--color-primary); }
.text-accent    { color: var(--color-accent); }
.text-highlight { color: var(--color-highlight); }

/* --- Utilitários de peso --- */
.font-regular  { font-weight: var(--weight-regular); }
.font-medium   { font-weight: var(--weight-medium); }
.font-semibold { font-weight: var(--weight-semibold); }
.font-bold     { font-weight: var(--weight-bold); }
.font-black    { font-weight: var(--weight-black); }

/* --- Alinhamento --- */
.text-left   { text-align: left; }
.text-center { text-align: center; }
.text-right  { text-align: right; }

/* --- Label de seção (eyebrow text) --- */
.section-label {
  display: inline-block;
  font-size: var(--text-xs);
  font-weight: var(--weight-semibold);
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: var(--color-primary);
  margin-bottom: var(--space-4);
}

.section-label::before {
  content: '—';
  margin-right: var(--space-2);
  opacity: 0.6;
}

/* --- Gradiente de texto --- */
.text-gradient {
  background: var(--gradient-brand);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Em com classe = ênfase visual (sem itálico) */
em[class] { font-style: normal; }

/* Título de destaque maior que h2 padrão */
.title-xl {
  font-size: clamp(var(--text-4xl), 6vw, var(--text-6xl));
}

.text-gradient-warm {
  background: var(--gradient-warm);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
