/* ============================================================================
   ik-fonts.css — THE single self-hosted @font-face layer for the whole IK product.
   Load once per page, BEFORE ik-tokens.css. Replaces the scattered Google Fonts
   CDN <link>s. All faces use font-display:swap. Semantic --font-* tokens live in
   ik-tokens.css (never redeclare font families per-page).

   Retained families (founder decision 2026-07-13):
     Lato            → body + all UI headings (weights 300/400/700/900)
     Bebas Neue      → controlled display only (marketing headlines / promo numbers)
     Playfair Display→ logo / wordmark / approved brand signatures ONLY
     Hind Siliguri   → primary Bengali  ⚠️ NOT YET SELF-HOSTED (see note at bottom)
     Noto Sans Bengali→ Bengali fallback glyph source (subset, unicode-range scoped)
   Retired: Nunito, DM Sans, Baloo 2, Inter (→ Lato). Georgia/Times passages → --font-exam (Arial).
   ========================================================================== */

/* ── Lato — body + UI headings (700/900 = headings) ──────────────────────── */
@font-face{
  font-family:'Lato'; font-style:normal; font-weight:300; font-display:swap;
  src:url('/fonts/lato-300.woff2') format('woff2');
}
@font-face{
  font-family:'Lato'; font-style:normal; font-weight:400; font-display:swap;
  src:url('/fonts/lato-400.woff2') format('woff2');
}
@font-face{
  font-family:'Lato'; font-style:normal; font-weight:700; font-display:swap;
  src:url('/fonts/lato-700.woff2') format('woff2');
}
@font-face{
  font-family:'Lato'; font-style:normal; font-weight:900; font-display:swap;
  src:url('/fonts/lato-900.woff2') format('woff2');
}

/* ── Bebas Neue — controlled display (single weight) ─────────────────────── */
@font-face{
  font-family:'Bebas Neue'; font-style:normal; font-weight:400; font-display:swap;
  src:url('/fonts/bebas-neue-400.woff2') format('woff2');
}

/* ── Playfair Display — logo / wordmark / brand signatures only ───────────── */
@font-face{
  font-family:'Playfair Display'; font-style:normal; font-weight:400 700; font-display:swap;
  src:url('/fonts/playfair-display.woff2') format('woff2');
}

/* ── Noto Sans Bengali — Bengali fallback glyph source (subset) ───────────── */
/* Bengali SUBSET woff2 (no space/Latin glyphs). unicode-range scopes it to Bengali
   codepoints so spaces (U+0020) + Latin fall back to Lato — otherwise Bengali words
   render jammed with no spacing. Loaded site-wide so any Lato text containing Bengali
   renders correct Bengali glyphs automatically. */
@font-face{
  font-family:'Noto Sans Bengali'; font-style:normal; font-weight:400 700; font-display:swap;
  src:url('/fonts/noto-sans-bengali.woff2') format('woff2');
  unicode-range:U+0951-0952, U+0964-0965, U+0980-09FE, U+1CD0, U+1CD2, U+1CD5-1CD6, U+1CD8, U+1CE1, U+1CEA, U+1CED, U+1CF2, U+1CF5-1CF7, U+200C-200D, U+20B9, U+25CC, U+A8F1;
}

/* ── Hind Siliguri — PRIMARY Bengali (self-hosted 2026-07-13, Bengali subset) ──── */
/* Bengali-subset woff2 fetched from Google Fonts (v14). unicode-range scopes to Bengali
   codepoints; Latin in a --font-bengali element falls back to Lato (consistent Latin). */
@font-face{
  font-family:'Hind Siliguri'; font-style:normal; font-weight:400; font-display:swap;
  src:url('/fonts/hind-siliguri-400.woff2') format('woff2');
  unicode-range:U+0951-0952, U+0964-0965, U+0980-09FE, U+1CD0, U+1CD2, U+1CD5-1CD6, U+1CD8, U+1CE1, U+1CEA, U+1CED, U+1CF2, U+1CF5-1CF7, U+200C-200D, U+20B9, U+25CC, U+A8F1;
}
@font-face{
  font-family:'Hind Siliguri'; font-style:normal; font-weight:500; font-display:swap;
  src:url('/fonts/hind-siliguri-500.woff2') format('woff2');
  unicode-range:U+0951-0952, U+0964-0965, U+0980-09FE, U+1CD0, U+1CD2, U+1CD5-1CD6, U+1CD8, U+1CE1, U+1CEA, U+1CED, U+1CF2, U+1CF5-1CF7, U+200C-200D, U+20B9, U+25CC, U+A8F1;
}
@font-face{
  font-family:'Hind Siliguri'; font-style:normal; font-weight:600; font-display:swap;
  src:url('/fonts/hind-siliguri-600.woff2') format('woff2');
  unicode-range:U+0951-0952, U+0964-0965, U+0980-09FE, U+1CD0, U+1CD2, U+1CD5-1CD6, U+1CD8, U+1CE1, U+1CEA, U+1CED, U+1CF2, U+1CF5-1CF7, U+200C-200D, U+20B9, U+25CC, U+A8F1;
}
@font-face{
  font-family:'Hind Siliguri'; font-style:normal; font-weight:700; font-display:swap;
  src:url('/fonts/hind-siliguri-700.woff2') format('woff2');
  unicode-range:U+0951-0952, U+0964-0965, U+0980-09FE, U+1CD0, U+1CD2, U+1CD5-1CD6, U+1CD8, U+1CE1, U+1CEA, U+1CED, U+1CF2, U+1CF5-1CF7, U+200C-200D, U+20B9, U+25CC, U+A8F1;
}

/* ============================================================================
   Canonical IK logo lockup (2026-07-13). Founder decision: ONE logo unit repo-wide
   — logo mark + Playfair "IELTS Kishoreganj" wordmark. Maroon on light; add
   .ik-logo--dark for white-on-dark chrome. Use .ik-logo__img alone where a bare
   mark (no wordmark) belongs. Lives here because ik-fonts.css is the one stylesheet
   every page loads. Matches the marketing topbar (#ik-site-topbar .tb-logo).
   ========================================================================== */
.ik-logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none;line-height:1;}
.ik-logo__img{height:36px;width:auto;display:block;flex-shrink:0;}
.ik-logo__wm{display:flex;flex-direction:column;line-height:1.1;}
.ik-logo__ielts{font-family:var(--font-logo);font-size:13px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:#8A2432;white-space:nowrap;}
.ik-logo__name{font-family:var(--font-logo);font-size:11px;font-weight:400;letter-spacing:1px;color:#0a0a0a;white-space:nowrap;}
/* Dark-surface variant */
.ik-logo--dark .ik-logo__img{filter:brightness(0) invert(1);}
.ik-logo--dark .ik-logo__ielts{color:#fff;}
.ik-logo--dark .ik-logo__name{color:rgba(255,255,255,0.82);}
/* Size variants */
.ik-logo--sm .ik-logo__img{height:28px;}
.ik-logo--sm .ik-logo__ielts{font-size:11px;letter-spacing:1.5px;}
.ik-logo--sm .ik-logo__name{font-size:9px;}
.ik-logo--lg .ik-logo__img{height:52px;}
.ik-logo--lg .ik-logo__ielts{font-size:18px;}
.ik-logo--lg .ik-logo__name{font-size:14px;}
.ik-logo__img--on-dark{filter:brightness(0) invert(1);}
