/* typography.css — família, peso, line-height e letter-spacing. Tamanhos vêm de tokens.css; nenhum @media aqui. */

/* line-height sobrescreve o reset de style.css, que carrega depois mas não redeclara font-size. */
body {
  font-family: var(--dm-font-primary);
  font-size: var(--dm-text-md);
  font-weight: 400;
  line-height: 1.2;
  letter-spacing: 0.005em;
}

/* Displays — 9 níveis, variantes Medium (500) e Bold (700). h1–h6 mapeiam em display 4–9. */

.display-1-medium, .display-1-bold {
  font-size: var(--dm-display-1);
  line-height: 0.9;
  letter-spacing: -0.03em;
}

.display-2-medium, .display-2-bold {
  font-size: var(--dm-display-2);
  line-height: 0.95;
  letter-spacing: -0.02em;
}

.display-3-medium, .display-3-bold {
  font-size: var(--dm-display-3);
  line-height: 1;
  letter-spacing: -0.02em;
}

.display-4-medium, .display-4-bold, h1 {
  font-size: var(--dm-display-4);
  line-height: 1.05;
  letter-spacing: -0.015em;
}

.display-5-medium, .display-5-bold, h2 {
  font-size: var(--dm-display-5);
  line-height: 1.05;
  letter-spacing: -0.01em;
}

.display-6-medium, .display-6-bold, h3 {
  font-size: var(--dm-display-6);
  line-height: 1.1;
  letter-spacing: -0.005em;
}

.display-7-medium, .display-7-bold, h4 {
  font-size: var(--dm-display-7);
  line-height: 1.1;
  letter-spacing: 0;
}

.display-8-medium, .display-8-bold, h5 {
  font-size: var(--dm-display-8);
  line-height: 1.15;
  letter-spacing: 0.005em;
}

.display-9-medium, .display-9-bold, h6 {
  font-size: var(--dm-display-9);
  line-height: 1.15;
  letter-spacing: 0.005em;
}

h1, h2, h3, h4, h5, h6,
.display-1-medium, .display-2-medium, .display-3-medium,
.display-4-medium, .display-5-medium, .display-6-medium,
.display-7-medium, .display-8-medium, .display-9-medium {
  font-weight: 500;
}

.display-1-bold, .display-2-bold, .display-3-bold,
.display-4-bold, .display-5-bold, .display-6-bold,
.display-7-bold, .display-8-bold, .display-9-bold {
  font-weight: 700;
}

/* Texto — 5 níveis, variantes Regular (400), Medium (500), SemiBold (600) */

.text-xl, .text-xl-medium, .text-xl-semibold {
  font-size: var(--dm-text-xl);
  line-height: 1.15;
  letter-spacing: 0.005em;
}

.text-lg, .text-lg-medium, .text-lg-semibold {
  font-size: var(--dm-text-lg);
  line-height: 1.15;
  letter-spacing: 0.005em;
}

.text-md, .text-md-medium, .text-md-semibold {
  font-size: var(--dm-text-md);
  line-height: 1.2;
  letter-spacing: 0.005em;
}

.text-sm, .text-sm-medium, .text-sm-semibold {
  font-size: var(--dm-text-sm);
  line-height: 1.2;
  letter-spacing: 0.005em;
}

.text-xs, .text-xs-medium, .text-xs-semibold {
  font-size: var(--dm-text-xs);
  line-height: 1.25;
  letter-spacing: 0.005em;
}

.text-xl, .text-lg, .text-md, .text-sm, .text-xs { font-weight: 400; }
.text-xl-medium, .text-lg-medium, .text-md-medium, .text-sm-medium, .text-xs-medium { font-weight: 500; }
.text-xl-semibold, .text-lg-semibold, .text-md-semibold, .text-sm-semibold, .text-xs-semibold { font-weight: 600; }

/* Mono — Red Hat Mono, sempre Medium (500), letter-spacing zero. Datas, CRM, números, rótulos técnicos. */

.text-mono-xl {
  font-family: var(--dm-font-mono);
  font-size: var(--dm-text-xl);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: 0;
}

.text-mono-lg {
  font-family: var(--dm-font-mono);
  font-size: var(--dm-text-lg);
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: 0;
}

.text-mono-md {
  font-family: var(--dm-font-mono);
  font-size: var(--dm-text-md);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0;
}

.text-mono-sm {
  font-family: var(--dm-font-mono);
  font-size: var(--dm-text-sm);
  font-weight: 500;
  line-height: 1.2;
  letter-spacing: 0;
}

.text-mono-xs {
  font-family: var(--dm-font-mono);
  font-size: var(--dm-text-xs);
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: 0;
}

/* Elementos inline */

strong, b { font-weight: 700; }
em, i     { font-style: italic; }

code, kbd, pre, samp {
  font-family: var(--dm-font-mono);
  font-weight: 500;
}

/* Limite de caracteres por linha: aplicar no componente de layout, nunca aqui. */
