/* =====================================================================
   خطوط سكن — مستضافة محليًا (بدل Google Fonts CDN)
   Cairo (متغيّر 200-1000) + El Messiri (متغيّر 400-700) — subset عربي + لاتيني.
   مكسب الأداء: لا DNS/TLS لدومينين خارجيين + لا render-blocking CSS خارجي،
   والملفات بتتكاش immutable من .htaccess زي باقي الأصول.
   ملاحظة: أوزان El Messiri فوق 700 بتتولّد صناعيًا (زي ما كانت مع جوجل بالظبط).
   ===================================================================== */

/* Cairo — عربي */
@font-face {
  font-family: 'Cairo';
  font-style: normal;
  font-weight: 200 1000;
  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;
}
/* Cairo — لاتيني (أرقام إنجليزية/رسائل مختلطة) */
@font-face {
  font-family: 'Cairo';
  font-style: normal;
  font-weight: 200 1000;
  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;
}

/* El Messiri — عربي (خط العناوين) */
@font-face {
  font-family: 'El Messiri';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/elmessiri-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;
}
/* El Messiri — لاتيني */
@font-face {
  font-family: 'El Messiri';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url('../fonts/elmessiri-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;
}

/* =====================================================================
   خطوط احتياطية بمقاييس مطابقة — بتقفل قفزة التخطيط وقت تبديل الخط.
   ---------------------------------------------------------------------
   المشكلة: `font-display:swap` معناه إن الصفحة بتترسم بخط النظام الأول،
   وبعدين تتبدّل لـCairo/El Messiri. والصناديق مش متساوية:
       Cairo       = 1.87em (ascent 130% + descent 57%)
       El Messiri  = 1.56em (ascent 102% + descent 54%)
       Segoe UI    = 1.33em   ·   Tahoma = 1.21em   ·   Arial = 1.12em
   يعني كل سطر نص بيكبر وقت التبديل، والهيدر بيطول، والصفحة كلها بتتزحلق.
   على الإنتاج (الخط بيوصل بعد ~1 ثانية) ده كان بيدّي CLS = 0.35 على
   الرئيسية في ٤٠٪ من مرات التحميل. محليًا الخط بيتحمّل فورًا فالمشكلة
   ما كانتش بتبان خالص.

   الحل: خط احتياطي من ملفات النظام نفسها، بس بمقاييس **متطابقة** مع
   الخط الحقيقي عن طريق ascent-override/descent-override. الصندوق بيبقى
   نفس المقاس قبل وبعد التبديل → صفر إزاحة، والمستخدم بياخد الخط الحقيقي
   عادي (مش زي font-display:optional اللي بيضحّي بالخط).

   الأرقام مقيسة فعليًا من `TextMetrics.fontBoundingBox*` مش تقديرية.
   ⚠️ لو غيّرت أي خط من الاتنين، أعِد القياس وحدّث الأرقام دي معاه.
   ===================================================================== */
@font-face {
  font-family: 'Cairo Fallback';
  src: local('Segoe UI'), local('Tahoma'), local('Arial'), local('Helvetica');
  ascent-override: 130%;
  descent-override: 57%;
  line-gap-override: 0%;
}
@font-face {
  font-family: 'El Messiri Fallback';
  src: local('Segoe UI'), local('Tahoma'), local('Arial'), local('Helvetica');
  ascent-override: 102%;
  descent-override: 54%;
  line-gap-override: 0%;
}
