/* ==========================================================================
   fonts.css — self-hosted fonts (no requests to Google)
   Files in /assets/fonts/, Latin characters only (English + Portuguese).
   Licence: SIL Open Font License 1.1 (OFL-*.txt in the same folder).

   Bricolage Grotesque — custom file made from the official variable font:
     optical size fixed at 14 and width at 100 (as in Figma), weights 500–700.
   Noto Sans — Regular 400 and SemiBold 600.
   ========================================================================== */

@font-face {
  font-family: "Bricolage Grotesque";
  src: url("/assets/fonts/bricolage-grotesque-latin-opsz14-500-700.woff2") format("woff2");
  font-weight: 500 700;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Noto Sans";
  src: url("/assets/fonts/noto-sans-latin-400-normal.woff2") format("woff2");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

@font-face {
  font-family: "Noto Sans";
  src: url("/assets/fonts/noto-sans-latin-600-normal.woff2") format("woff2");
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}

/* ---- Fallbacks tuned to each font's size and line height --------------------
   While the fonts load (or if they fail), text shows in Arial adjusted to take
   the same space, so lines don't rewrap and the page doesn't jump when the real
   font arrives. Values measured from the font files. */
@font-face {
  font-family: "Bricolage Grotesque Fallback";
  src: local("Arial"), local("Helvetica Neue"), local("Liberation Sans");
  size-adjust: 108.44%;
  ascent-override: 85.76%;
  descent-override: 24.9%;
  line-gap-override: 0%;
}

@font-face {
  font-family: "Noto Sans Fallback";
  src: local("Arial"), local("Helvetica Neue"), local("Liberation Sans");
  size-adjust: 107.15%;
  ascent-override: 99.77%;
  descent-override: 27.35%;
  line-gap-override: 0%;
}
