/* ==========================================================================
   قفل فونت — بدون اجازهٔ نیما تغییر ندهید
   FONT LOCK — DO NOT CHANGE WITHOUT NIMA'S EXPLICIT PERMISSION.
   فونت رسمی سایت و پنل: Vazirmatn، فقط از روی همین سرور (بدون فونت خارجی)،
   بدون letter-spacing روی متن فارسی. هیچ ایجنتی (Claude Code / Cursor / ...)
   حق تغییر font-family، فایل‌های فونت، @font-face، وزن پایهٔ فونت یا
   --font-main را ندارد؛ اگر کاری به فونت مربوط شد، اول از نیما اجازه بگیرید.
   جزئیات: بخش «قانون قفل فونت» در CLAUDE.md / AGENTS.md / .cursorrules.
   ========================================================================== */

/* --font-main: تنها تعریف مشترک فونت برای سایت و پنل ادمین (هر دو همین فایل را
   لود می‌کنند). همهٔ CSSها باید font-family را از همین متغیر بخوانند. */
:root {
  --font-main: 'Vazirmatn', 'Vazirmatn Fallback', sans-serif;
}

/* Vazirmatn self-hosted (v33.0.3) — بدون وابستگی به Google Fonts / jsDelivr.
   font-display:block (نه swap): با پریلود در <head> هر صفحه (ببین index.html
   و بقیه)، فونت تقریباً همیشه قبل از پایان دوره‌ی کوتاه block می‌رسد، پس
   متن یا نامرئی (خیلی کوتاه) می‌ماند یا مستقیم با Vazirmatn نقاشی می‌شود —
   به‌جای این‌که اول با فونت fallback (پرش دیداری/FOUT) و بعد Vazirmatn
   دوباره رندر شود، که باگ گزارش‌شده همین بود. */
@font-face {
  font-family: 'Vazirmatn';
  src: url('../fonts/vazirmatn/Vazirmatn-Regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: block;
}

@font-face {
  font-family: 'Vazirmatn';
  src: url('../fonts/vazirmatn/Vazirmatn-Medium.woff2') format('woff2');
  font-weight: 500;
  font-style: normal;
  font-display: block;
}

@font-face {
  font-family: 'Vazirmatn';
  src: url('../fonts/vazirmatn/Vazirmatn-SemiBold.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: block;
}

@font-face {
  font-family: 'Vazirmatn';
  src: url('../fonts/vazirmatn/Vazirmatn-Bold.woff2') format('woff2');
  font-weight: 700;
  font-style: normal;
  font-display: block;
}

@font-face {
  font-family: 'Vazirmatn';
  src: url('../fonts/vazirmatn/Vazirmatn-Black.woff2') format('woff2');
  font-weight: 900;
  font-style: normal;
  font-display: block;
}

/* فونت جایگزینِ موقت (قبل از رسیدن/در دورهٔ نامرئیِ Vazirmatn) با متریک
   هم‌خوان — هیچ فایلی دانلود نمی‌کند (فقط local()، فونت‌های از‌قبل‌نصب‌شده).
   هدفش فقط جلوگیری از پرش اندازه/عرض متن لحظهٔ جایگزینی است، نه زیبایی.
   مقادیر از روی متریک واقعی Vazirmatn-Regular.woff2 (با fontkit خوانده شد:
   unitsPerEm=2048, ascent=2100, descent=-1100, lineGap=0, xAvgCharWidth=1159)
   در برابر متریک مرجع Arial (unitsPerEm=2048, ascent=1854, descent=-434,
   lineGap=67, xAvgCharWidth=904 — Liberation Sans/Arimo هم با همین متریک
   طراحی شدند) با همان فرمول ابزار Fontaine/next/font محاسبه شد:
   size-adjust = (webXAvgWidth/webUPM) / (fallbackXAvgWidth/fallbackUPM)
   ascent/descent/lineGap-override = webMetric / (webUPM × size-adjust) */
@font-face {
  font-family: 'Vazirmatn Fallback';
  src: local('Arial'), local('Liberation Sans'), local('Arimo'), local('Helvetica');
  size-adjust: 128.21%;
  ascent-override: 79.98%;
  descent-override: 41.89%;
  line-gap-override: 0%;
}
