/* public/css/fm/type.css
 *
 * Sistema de TIPO oficial (DS #2). Colapsa as ~47 classes tipográficas vivas do
 * skin (+ flexões por breakpoint + duplicatas + 3 fontes fantasma) em 8 estilos
 * nomeados, fiéis aos papéis reais. Responsivo via clamp (substitui as flexões).
 * 2 famílias: Oswald (display/h1/h2) + Nunito Sans (h3/corpo/meta). Consome tokens.
 *
 * Mapa do skin → oficial:
 *   heading-large/medium/small (8/6/5rem)      → .fm-display
 *   heading-h1 (4rem Oswald 500)               → .fm-h1
 *   heading-h2 (3rem Oswald 500)               → .fm-h2
 *   heading-h3 (2rem Nunito 700)               → .fm-h3
 *   text-size-large (1.5rem)                    → .fm-body-lg
 *   text-size-regular (1rem)                    → .fm-body
 *   text-size-medium/small                      → .fm-body-sm
 *   text-meta (uppercase tracking)              → .fm-meta
 */

.fm-display {
  font-family: var(--fm-font-display);
  font-size: clamp(2.5rem, 6vw, 5rem);
  font-weight: 600;
  line-height: 1.1;
  text-transform: uppercase;
  margin: 0;
}
.fm-h1 {
  font-family: var(--fm-font-display);
  font-size: clamp(2rem, 4.5vw, 4rem);
  font-weight: 500;
  line-height: 1.2;
  margin: 0;
}
.fm-h2 {
  font-family: var(--fm-font-display);
  font-size: clamp(1.75rem, 3.5vw, 3rem);
  font-weight: 500;
  line-height: 1.2;
  margin: 0;
}
.fm-h3 {
  font-family: var(--fm-font-body);
  font-size: clamp(1.375rem, 2.5vw, 2rem);
  font-weight: 700;
  line-height: 1.25;
  margin: 0;
}

.fm-body-lg {
  font-family: var(--fm-font-body);
  font-size: clamp(1.125rem, 1.6vw, 1.5rem);
  font-weight: 400;
  line-height: 1.5;
  margin: 0;
}
.fm-body {
  font-family: var(--fm-font-body);
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  margin: 0;
}
.fm-body-sm {
  font-family: var(--fm-font-body);
  font-size: 0.875rem;
  font-weight: 400;
  line-height: 1.5;
  margin: 0;
}

/* meta / eyebrow / rótulo de seção */
.fm-meta {
  font-family: var(--fm-font-body);
  font-size: 0.8125rem;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  margin: 0;
}
