/* ElevateIQ self-hosted fonts.
 *
 * Replaces three render-blocking third-party stylesheets (Google Fonts,
 * Bootstrap Icons) plus the DNS + TLS handshakes to fonts.googleapis.com,
 * fonts.gstatic.com and cdn.jsdelivr.net that had to complete before the
 * first paint. Everything here is same-origin, so it rides the existing
 * CloudFront connection.
 *
 * The three body faces are Google's LATIN-ONLY variable fonts: one file per
 * family covering every weight the site uses, instead of the 17 files and 73
 * @font-face blocks the Google CSS returns for all scripts. The site is
 * English-only; if a page ever needs Cyrillic, Greek or Vietnamese glyphs,
 * pull those subsets rather than reverting to the hosted stylesheet.
 *
 * font-display: swap matches what the Google CSS requested: text paints
 * immediately in the fallback face and re-renders when the webfont lands,
 * rather than sitting invisible.
 */

@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url('/fonts/inter.woff2') format('woff2');
}

@font-face {
  font-family: 'Plus Jakarta Sans';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url('/fonts/plus-jakarta-sans.woff2') format('woff2');
}

@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400 600;
  font-display: swap;
  src: url('/fonts/jetbrains-mono.woff2') format('woff2');
}

/* Bootstrap Icons, subset to the 45 glyphs this site actually uses.
 *
 * The upstream font is 130KB and the upstream stylesheet 86KB, covering
 * roughly 2000 icons. Both are replaced by a 5KB subset and the rules below.
 * ADDING AN ICON: add the class here AND regenerate the subset, or it renders
 * as a blank box. The generator is documented in docs/marketing/fonts.md.
 */

@font-face {
  font-family: 'bootstrap-icons';
  font-style: normal;
  font-weight: normal;
  font-display: block;
  src: url('/fonts/bootstrap-icons-subset.woff2') format('woff2');
}

[class^='bi-']::before,
[class*=' bi-']::before {
  display: inline-block;
  font-family: 'bootstrap-icons' !important;
  font-style: normal;
  font-weight: normal !important;
  font-variant: normal;
  text-transform: none;
  line-height: 1;
  vertical-align: -0.125em;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

.bi-apple::before { content: "\f65b"; }
.bi-arrow-right::before { content: "\f138"; }
.bi-building::before { content: "\f1dd"; }
.bi-check-circle::before { content: "\f26b"; }
.bi-check-circle-fill::before { content: "\f26a"; }
.bi-clipboard-data::before { content: "\f28c"; }
.bi-clock-history::before { content: "\f292"; }
.bi-cloud-arrow-up::before { content: "\f297"; }
.bi-collection::before { content: "\f2cc"; }
.bi-columns-gap::before { content: "\f2cd"; }
.bi-compass::before { content: "\f2d1"; }
.bi-cpu::before { content: "\f2d6"; }
.bi-credit-card::before { content: "\f2dc"; }
.bi-device-hdd::before { content: "\f6f9"; }
.bi-envelope::before { content: "\f32f"; }
.bi-gear-wide-connected::before { content: "\f3e3"; }
.bi-hourglass-split::before { content: "\f41f"; }
.bi-house-door::before { content: "\f423"; }
.bi-journal-check::before { content: "\f43e"; }
.bi-key::before { content: "\f44f"; }
.bi-life-preserver::before { content: "\f467"; }
.bi-list-check::before { content: "\f473"; }
.bi-magic::before { content: "\f675"; }
.bi-moon::before { content: "\f497"; }
.bi-pencil-square::before { content: "\f4ca"; }
.bi-person-gear::before { content: "\f8a7"; }
.bi-person-up::before { content: "\f8aa"; }
.bi-printer::before { content: "\f501"; }
.bi-robot::before { content: "\f6b1"; }
.bi-send::before { content: "\f6c0"; }
.bi-shield::before { content: "\f53f"; }
.bi-shield-check::before { content: "\f52f"; }
.bi-shield-exclamation::before { content: "\f530"; }
.bi-shield-fill-check::before { content: "\f531"; }
.bi-shield-shaded::before { content: "\f53b"; }
.bi-sliders::before { content: "\f56b"; }
.bi-speedometer2::before { content: "\f580"; }
.bi-stars::before { content: "\f589"; }
.bi-sun::before { content: "\f5a2"; }
.bi-toggles::before { content: "\f5d9"; }
.bi-unlock-fill::before { content: "\f5ff"; }
.bi-usb-drive::before { content: "\f6f2"; }
.bi-usb-symbol::before { content: "\f6dd"; }
.bi-wifi::before { content: "\f61c"; }
.bi-window-stack::before { content: "\f6d2"; }
