/* Fontes self-hospedadas â€” remove o CSS render-blocking do Google Fonts e o
   round-trip externo (fonts.googleapis.com + fonts.gstatic.com), ganho direto
   de Desempenho no PageSpeed. Os .woff2 ficam em assets/fonts/ (baixar via o
   comando do checklist). font-display:swap = o texto aparece na hora com a
   fonte de fallback e troca sem bloquear a renderizaÃ§Ã£o (nÃ£o some no LCP).
   Se um .woff2 faltar, o stack de fallback (system-ui, sans-serif) assume. */

@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('fonts/space-grotesk-500.woff2') format('woff2');
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url('fonts/space-grotesk-600.woff2') format('woff2');
}
@font-face {
  font-family: 'Space Grotesk';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/space-grotesk-700.woff2') format('woff2');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('fonts/dm-sans-400.woff2') format('woff2');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('fonts/dm-sans-500.woff2') format('woff2');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url('fonts/dm-sans-700.woff2') format('woff2');
}

/* Fontes de reserva com MÉTRICA AJUSTADA (elimina o salto de layout quando a
   webfont troca a fonte local — CLS). Técnica do next/font/Capsize: a fonte
   local (Arial, ou Helvetica/Liberation Sans, metricamente compatíveis com
   Arial) é escalada por size-adjust e recebe ascent/descent/line-gap da
   webfont, então o texto ocupa o mesmo espaço antes e depois da troca.
   Calculado com fonttools (4.65) direto nos woff2 reais vs. C:\Windows\Fonts   arial.ttf (400/500) e arialbd.ttf (700/600): size-adjust = largura média
   ponderada por frequência de letras pt-BR (+espaço) da webfont / da Arial;
   ascent/descent/line-gap = hhea da webfont / size-adjust. Uma face por peso
   (Arial regular p/ 400/500, Arial Bold p/ 600/700). Base = métrica da Arial;
   Roboto (Android) NÃO entra (largura diferente invalidaria o size-adjust):
   sem Arial/Helvetica/Liberation local, cai no próximo da pilha (system-ui).
   Usar: font-family:'DM Sans','DM Sans Fallback',system-ui,... */
@font-face{
  font-family:'DM Sans Fallback';
  font-style:normal;
  font-weight:400;
  src:local('Arial'),local('ArialMT'),local('Helvetica'),local('Liberation Sans');
  size-adjust:104.73%;
  ascent-override:94.72%;
  descent-override:29.60%;
  line-gap-override:0%;
}
@font-face{
  font-family:'DM Sans Fallback';
  font-style:normal;
  font-weight:500;
  src:local('Arial'),local('ArialMT'),local('Helvetica'),local('Liberation Sans');
  size-adjust:106.42%;
  ascent-override:93.21%;
  descent-override:29.13%;
  line-gap-override:0%;
}
@font-face{
  font-family:'DM Sans Fallback';
  font-style:normal;
  font-weight:700;
  src:local('Arial Bold'),local('Arial-BoldMT'),local('Helvetica Bold'),local('Helvetica-Bold'),local('Liberation Sans Bold');
  size-adjust:102.57%;
  ascent-override:96.72%;
  descent-override:30.22%;
  line-gap-override:0%;
}
@font-face{
  font-family:'Space Grotesk Fallback';
  font-style:normal;
  font-weight:500;
  src:local('Arial'),local('ArialMT'),local('Helvetica'),local('Liberation Sans');
  size-adjust:108.95%;
  ascent-override:90.32%;
  descent-override:26.80%;
  line-gap-override:0%;
}
@font-face{
  font-family:'Space Grotesk Fallback';
  font-style:normal;
  font-weight:600;
  src:local('Arial Bold'),local('Arial-BoldMT'),local('Helvetica Bold'),local('Helvetica-Bold'),local('Liberation Sans Bold');
  size-adjust:101.41%;
  ascent-override:97.03%;
  descent-override:28.79%;
  line-gap-override:0%;
}
@font-face{
  font-family:'Space Grotesk Fallback';
  font-style:normal;
  font-weight:700;
  src:local('Arial Bold'),local('Arial-BoldMT'),local('Helvetica Bold'),local('Helvetica-Bold'),local('Liberation Sans Bold');
  size-adjust:101.40%;
  ascent-override:97.04%;
  descent-override:28.80%;
  line-gap-override:0%;
}
