/* GTI typography. Change the families only here; never in a page or theme.
 * Roboto is served locally. See ../fonts/roboto/LICENSE.txt.
 * This layer controls families only: each component retains its sizes/weights.
 */
@font-face {
  font-family: 'GTI Roboto';
  src: url('../fonts/roboto/RobotoVariable.ttf') format('truetype');
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
@font-face {
  font-family: 'GTI Roboto';
  src: url('../fonts/roboto/RobotoVariable-Italic.ttf') format('truetype');
  font-style: italic;
  font-weight: 100 900;
  font-display: swap;
}
:root {
  --gti-font-ui: 'GTI Roboto', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --gti-font-code: ui-monospace, 'Cascadia Code', Consolas, monospace;
}
/* Legacy themes and inline styles must not choose a different text family.
 * Do not override icon fonts or their pseudo-elements: those encode symbols.
 * data-gti-font="icon" is the escape hatch for any future symbol font.
 */
html,
body,
body :where(*):not(:where(.fa, .fas, .far, .fal, .fab, .fad, .fat, .fass,
  .fa-solid, .fa-regular, .fa-light, .fa-thin, .fa-brands, .fa-duotone,
  .glyphicon, [class^="mdi-"], [class*=" mdi-"],
  .material-icons, .material-icons-outlined, .material-symbols-outlined,
  [data-gti-font="icon"], [data-gti-font="icon"] *)) {
  font-family: var(--gti-font-ui) !important;
}
/* Code remains aligned; its family is also managed centrally. */
body :is(pre, code, kbd, samp),
body :is(pre, code, kbd, samp) * {
  font-family: var(--gti-font-code) !important;
}
