/* ============================================================================
   Strawberry for Beauty — Cairo, site-wide
   ----------------------------------------------------------------------------
   ONE family for the whole site. This file replaces five separate
   fonts.googleapis.com requests that between them pulled El Messiri, Almarai,
   Space Grotesk, Space Mono, Alexandria, Tajawal and IBM Plex Sans Arabic.

   Self-hosted, because no third-party font request may sit on the LCP path —
   the same rule assets/home-hero/fonts/fonts.css was written to satisfy.

   Cairo ships as a VARIABLE font: one file per subset carries the entire
   300–900 range, so all five weights the site uses cost three requests, not
   fifteen. Subsets are split arabic / latin / latin-ext and gated with
   unicode-range, so an Arabic page never downloads the Latin cuts.

   Total: ~81 KB for the site's entire typography.
   ========================================================================== */

@font-face {
	font-family: "Cairo";
	font-style: normal;
	font-weight: 300 900;
	font-display: swap;
	src: url("fonts/cairo-arabic.woff2") format("woff2");
	unicode-range: U+0600-06FF, U+0750-077F, U+0870-088E, U+0890-0891,
		U+0897-08E1, U+08E3-08FF, U+200C-200E, U+2010-2011, U+204F, U+2E41,
		U+FB50-FDFF, U+FE70-FE74, U+FE76-FEFC, U+102E0-102FB, U+10E60-10E7E,
		U+10EC2-10EC4, U+10EFC-10EFF, U+1EE00-1EE03, U+1EE05-1EE1F,
		U+1EE21-1EE22, U+1EE24, U+1EE27, U+1EE29-1EE32, U+1EE34-1EE37, U+1EE39,
		U+1EE3B, U+1EE42, U+1EE47, U+1EE49, U+1EE4B, U+1EE4D-1EE4F,
		U+1EE51-1EE52, U+1EE54, U+1EE57, U+1EE59, U+1EE5B, U+1EE5D, U+1EE5F,
		U+1EE61-1EE62, U+1EE64, U+1EE67-1EE6A, U+1EE6C-1EE72, U+1EE74-1EE77,
		U+1EE79-1EE7C, U+1EE7E, U+1EE80-1EE89, U+1EE8B-1EE9B, U+1EEA1-1EEA3,
		U+1EEA5-1EEA9, U+1EEAB-1EEBB, U+1EEF0-1EEF1;
}

@font-face {
	font-family: "Cairo";
	font-style: normal;
	font-weight: 300 900;
	font-display: swap;
	src: url("fonts/cairo-latin-ext.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;
}

@font-face {
	font-family: "Cairo";
	font-style: normal;
	font-weight: 300 900;
	font-display: swap;
	src: url("fonts/cairo-latin.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;
}

/* ----------------------------------------------------------------------------
   Tokens.

   Every page stylesheet reads its type off one of these. They used to name
   three different families each (display / body / numeral); all of them now
   resolve to the same stack. The names are kept because ~200 rules across the
   3D pages, the hall, the catalogue and the shop reference them, and renaming
   those buys nothing.
   -------------------------------------------------------------------------- */
:root {
	--sfb-cairo: "Cairo", "Segoe UI", Tahoma, sans-serif;

	/* global chrome (assets/global/sfb-global.css) */
	--sfb-f-head:    var(--sfb-cairo);
	--sfb-f-body:    var(--sfb-cairo);
	--sfb-f-num:     var(--sfb-cairo);
	--sfb-f-display: var(--sfb-cairo);

	/* hall · catalogue · review band */
	--f-display:     var(--sfb-cairo);
	--f-body:        var(--sfb-cairo);
	--f-tick:        var(--sfb-cairo);

	/* hero-3d · ipl-3d */
	--font-display:  var(--sfb-cairo);
	--font-body:     var(--sfb-cairo);
	--font-num:      var(--sfb-cairo);
}

/* ----------------------------------------------------------------------------
   The one deliberate global rule.

   Everything the child theme owns is handled by rewriting its own scoped rules,
   so this exists only for markup the child theme does NOT author: the parent
   Twenty Twenty-Five block templates, the WooCommerce block checkout/cart, and
   post content coming out of the editor. A site-wide font is the one thing that
   cannot be page-scoped.

   Deliberately NOT `*`, and deliberately NOT `!important`:
   icon fonts (dashicons, the WooCommerce glyph font, select2) set font-family
   on their own ::before / ::after, which this never touches — so glyphs stay
   glyphs instead of turning into tofu boxes.
   -------------------------------------------------------------------------- */
body,
button, input, optgroup, select, textarea,
h1, h2, h3, h4, h5, h6,
p, blockquote, figcaption, cite,
ul, ol, li, dl, dt, dd,
a, span, strong, em, b, i, small, label,
table, caption, th, td {
	font-family: var(--sfb-cairo);
}

/* Editor/parent-theme type presets hard-code their own stack via these
   properties; the block editor emits them inline on the element. */
.wp-site-blocks,
.wp-block-post-content,
.entry-content,
.woocommerce,
.wc-block-components-form,
.wc-block-checkout {
	font-family: var(--sfb-cairo);
}

/* Cairo's Arabic joins break under letter-spacing. Space Mono and Space Grotesk
   carried the letter-spaced numerals before this change and were Latin-gated
   for exactly that reason; now that everything is Cairo, the tracking has to be
   neutralised anywhere it would land on Arabic text. Latin-only utility labels
   keep theirs via their own more specific rules. */
[lang="ar"] h1, [lang="ar"] h2, [lang="ar"] h3,
[dir="rtl"] h1, [dir="rtl"] h2, [dir="rtl"] h3 {
	letter-spacing: normal;
}
