/**
 * Cafe Leo typography — single source of truth for locale font stacks.
 *
 * Tokens (`--cafeleo-font-body`, `--cafeleo-font-display`) are set per `html[lang]`.
 * Feature CSS should prefer these tokens over hard-coded font family names.
 * Constants: `src/config/fonts.ts` · next/font: `src/lib/fonts.ts`
 */

/* --- Locale tokens --- */

html[lang="en"] {
  --cafeleo-font-body: montserrat, montserratarm-light, system-ui, sans-serif;
  --cafeleo-font-display: braind-yerevan, montserrat, sans-serif;
  --cafeleo-font-switch-fa: var(--font-cairo, "Cairo"), Tahoma, "Segoe UI", sans-serif;
  --cafeleo-font-switch-en: var(--font-inter, "Inter"), montserrat, system-ui, sans-serif;
}

html[lang="fa"] {
  --cafeleo-font-body: var(--font-cairo, "Cairo"), Tahoma, "Segoe UI", sans-serif;
  --cafeleo-font-display: var(--font-cairo, "Cairo"), Tahoma, "Segoe UI", sans-serif;
  --cafeleo-font-switch-fa: var(--font-cairo, "Cairo"), Tahoma, "Segoe UI", sans-serif;
  --cafeleo-font-switch-en: var(--font-inter, "Inter"), montserrat, system-ui, sans-serif;
}

/* EN: align root with locale tokens. */
html[lang="en"] body {
  font-family: var(--cafeleo-font-body);
}

/* FA: set body font on every top-level shell (header sits outside `.page_wrapper`). */
html[lang="fa"] :is(body, .page_wrapper, .cafeleo-header, .page_loader, .product_popup, .cart_popup) {
  font-family: var(--cafeleo-font-body) !important;
}

/*
 * FA: strip template Montserrat / braind / montserratarm on all copy.
 * Icon glyphs stay on the template `icon` face via ::before/::after (not matched by `*`).
 * Lang-switcher labels are excluded so `:lang()` rules below can pick destination faces.
 */
html[lang="fa"] :is(body, .page_wrapper, .cafeleo-header, .page_loader, .product_popup, .cart_popup)
  *:not(.lang_switcher, .lang_switcher *) {
  font-family: inherit !important;
}

/* FA display headings use the same Cairo stack as body (no braind-yerevan). */
html[lang="fa"] :is(.section_title, .page_title_block h1, .hero_slogan) {
  font-family: var(--cafeleo-font-display) !important;
}

/* --- Lang switcher: each label in its destination language face --- */

.lang_switcher :is(a, .lang_current):lang(fa) {
  font-family: var(--cafeleo-font-switch-fa) !important;
  direction: rtl;
  unicode-bidi: isolate;
}

.lang_switcher :is(a, .lang_current):lang(en) {
  font-family: var(--cafeleo-font-switch-en) !important;
  direction: ltr;
  unicode-bidi: isolate;
}
