/* ==========================================================================
   Self-hosted fonts + icons (no external CDN — CSP-clean, no render-blocking
   third-party requests). Loaded before style.css in the document head.
   ========================================================================== */

/* --------------------------------------------------------------------------
   Plus Jakarta Sans — self-hosted variable font (weights 400–700).
   Two subsets only: latin + latin-ext (cyrillic/vietnamese dropped as unused).
   font-display: swap → text paints immediately with the fallback, no FOIT.
   -------------------------------------------------------------------------- */
@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("../fonts/plus-jakarta-sans/plus-jakarta-sans-latin.7660bd9909fb.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
    U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193,
    U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Plus Jakarta Sans";
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url("../fonts/plus-jakarta-sans/plus-jakarta-sans-latin-ext.341687eeeb6a.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
    U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020,
    U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* --------------------------------------------------------------------------
   Bootstrap Icons — subset to the 25 glyphs actually used on the site.
   Full font is ~130 KB / 2000+ glyphs; this subset is ~2 KB.
   To add an icon later: add its codepoint to the pyftsubset --unicodes list
   (see planning notes) and a rule below.
   -------------------------------------------------------------------------- */
@font-face {
  font-family: "bootstrap-icons";
  font-display: block;
  src: url("../fonts/bootstrap-icons/bootstrap-icons-subset.3d0f9623acf2.woff2") format("woff2");
}

.bi::before,
[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-arrow-down::before { content: "\f128"; }
.bi-arrow-left::before { content: "\f12f"; }
.bi-arrow-right::before { content: "\f138"; }
.bi-arrow-up::before { content: "\f148"; }
.bi-award::before { content: "\f154"; }
.bi-calendar3::before { content: "\f214"; }
.bi-cart3::before { content: "\f244"; }
.bi-check-circle-fill::before { content: "\f26a"; }
.bi-chevron-down::before { content: "\f282"; }
.bi-chevron-left::before { content: "\f284"; }
.bi-chevron-right::before { content: "\f285"; }
.bi-clock::before { content: "\f293"; }
.bi-credit-card::before { content: "\f2dc"; }
.bi-dash::before { content: "\f2ea"; }
.bi-filter::before { content: "\f3ca"; }
.bi-instagram::before { content: "\f437"; }
.bi-linkedin::before { content: "\f472"; }
.bi-list::before { content: "\f479"; }
.bi-plus::before { content: "\f4fe"; }
.bi-star::before { content: "\f588"; }
.bi-star-fill::before { content: "\f586"; }
.bi-stars::before { content: "\f589"; }
.bi-truck::before { content: "\f5ea"; }
.bi-twitter-x::before { content: "\f8db"; }
.bi-whatsapp::before { content: "\f618"; }

/* bi-sparkles does not exist in Bootstrap Icons 1.11.x (was rendering blank).
   Aliased to bi-stars so the science-page badge shows the intended glyph. */
.bi-sparkles::before { content: "\f589"; }
