/* ---- icons: self-hosted so it works without internet access ---- */
@font-face {
  font-family: 'Material Symbols Rounded';
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url('/fonts/material-symbols/material-symbols-rounded.woff2') format('woff2');
}
.material-symbols-rounded {
  font-family: 'Material Symbols Rounded';
  font-weight: normal;
  font-style: normal;
  font-size: 24px;
  line-height: 1;
  letter-spacing: normal;
  text-transform: none;
  display: inline-block;
  white-space: nowrap;
  word-wrap: normal;
  direction: ltr;
  -webkit-font-feature-settings: 'liga';
  -webkit-font-smoothing: antialiased;
  font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

/* ---- local fonts: IRANSans ---- */
@font-face{font-family:'IRANSans';src:url('/fonts/iransans/IRANSans_UltraLight.ttf') format('truetype');font-weight:200;font-style:normal;font-display:swap}
@font-face{font-family:'IRANSans';src:url('/fonts/iransans/IRANSans_Light.ttf') format('truetype');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'IRANSans';src:url('/fonts/iransans/IRANSans.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'IRANSans';src:url('/fonts/iransans/IRANSans_Medium.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'IRANSans';src:url('/fonts/iransans/IRANSans_Bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'IRANSans';src:url('/fonts/iransans/IRANSans_Black.ttf') format('truetype');font-weight:900;font-style:normal;font-display:swap}

/* ---- local fonts: IRANSans FaNum (digits render as Persian ۰-۹) ---- */
@font-face{font-family:'IRANSansFaNum';src:url('/fonts/iransans_fanum/iran_sans_fanum.ttf') format('truetype');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'IRANSansFaNum';src:url('/fonts/iransans_fanum/IRANSansMobile_FaNum-UltraLight.ttf') format('truetype');font-weight:200;font-style:normal;font-display:swap}
@font-face{font-family:'IRANSansFaNum';src:url('/fonts/iransans_fanum/IRANSansMobile_FaNum-Light.ttf') format('truetype');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'IRANSansFaNum';src:url('/fonts/iransans_fanum/IRANSansMobile_FaNum-Medium.ttf') format('truetype');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'IRANSansFaNum';src:url('/fonts/iransans_fanum/IRANSansMobile_FaNum-Bold.ttf') format('truetype');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'IRANSansFaNum';src:url('/fonts/iransans_fanum/IRANSansMobile_FaNum-Black.ttf') format('truetype');font-weight:900;font-style:normal;font-display:swap}

/* ---- design tokens ---- */
:root {
  /* Primary — Material Red */
  --red-50:#FFEBEE; --red-100:#FFCDD2;
  --red:#E53935; --red-600:#D32F2F; --red-700:#B71C1C;

  /* Alias: all existing JSX uses var(--green-*) — map to red, zero JSX changes needed */
  --green-50:var(--red-50); --green-100:var(--red-100);
  --green:var(--red); --green-600:var(--red-600); --green-700:var(--red-700);

  /* Accent — Material Amber (high contrast against red) */
  --orange-50:#FFF8E1; --orange:#FFB300; --orange-600:#FF8F00; --orange-700:#E65100;

  /* Info — Material Blue */
  --blue-50:#E3F2FD; --blue:#2196F3; --blue-600:#1E88E5;

  /* Neutrals */
  --white:#FFFFFF; --gray-50:#F6F8FB; --gray-100:#EEF2F7; --gray-200:#E2E8F0; --gray-300:#CBD5E1;
  --ink-900:#16233A; --ink-700:#33425C; --ink-500:#5B6B85; --ink-400:#8595AD;
  --danger:#F04438;
  --bg-page:var(--gray-50); --bg-band:var(--gray-100);
  --surface-card:var(--white); --border-subtle:var(--gray-200); --border-strong:var(--gray-300);
  --text-strong:var(--ink-900); --text-body:var(--ink-700); --text-muted:var(--ink-500); --text-faint:var(--ink-400);
  --on-green:#fff; --on-orange:#fff;

  --font-body:'IRANSans',system-ui,sans-serif;
  --font-display:'IRANSans',system-ui,sans-serif;
  --font-accent:'IRANSans',system-ui,sans-serif;
  --font-number:'IRANSansFaNum','IRANSans',sans-serif;

  --w-light:300; --w-regular:400; --w-medium:500; --w-semibold:600; --w-bold:700; --w-extra:800; --w-black:900;
  --fs-display:clamp(2.1rem,1.4rem + 3.3vw,3.75rem);
  --fs-h1:clamp(1.6rem,1.2rem + 2vw,2.6rem);
  --fs-h2:clamp(1.3rem,1.05rem + 1.2vw,1.85rem);
  --fs-h3:clamp(1.1rem,1rem + 0.5vw,1.35rem);
  --fs-lead:clamp(1rem,0.95rem + 0.4vw,1.2rem);
  --fs-body:1.0625rem; --fs-small:0.9375rem; --fs-caption:0.8125rem;
  --fs-numeric:clamp(2.5rem,1.5rem + 5vw,5.5rem);
  --lh-tight:1.15; --lh-snug:1.35; --lh-normal:1.8;
  --ls-tight:-0.01em;

  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px;
  --sp-6:32px; --sp-7:48px; --sp-8:64px; --sp-9:96px; --sp-10:128px;
  --r-xs:6px; --r-sm:10px; --r-md:16px; --r-lg:24px; --r-xl:32px; --r-pill:999px;
  --container:1200px; --container-sm:760px;
  --section-y:clamp(4rem,2rem + 8vw,8rem);
  --gutter:clamp(1.25rem,0.5rem + 3vw,3rem);

  --shadow-1:0 1px 2px rgba(16,35,58,.06),0 1px 3px rgba(16,35,58,.10);
  --shadow-2:0 4px 12px rgba(16,35,58,.10);
  --shadow-3:0 10px 24px rgba(16,35,58,.12);
  --shadow-4:0 18px 40px rgba(16,35,58,.14);
  --shadow-green:0 8px 18px rgba(229,57,53,.30);
  --shadow-orange:0 8px 18px rgba(255,179,0,.28);
  --ring:0 0 0 3px rgba(229,57,53,.22);
  --ease-out:cubic-bezier(.22,1,.36,1); --ease-soft:cubic-bezier(.4,0,.2,1); --ease-bounce:cubic-bezier(.34,1.56,.64,1);
  --dur-fast:140ms; --dur-base:240ms; --dur-slow:480ms;
}

/* ---- reset + base ---- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg-page);color:var(--text-body);font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-normal);font-weight:var(--w-regular);direction:rtl;text-align:right;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
h1,h2,h3,h4{font-family:var(--font-display);color:var(--text-strong);line-height:var(--lh-tight);letter-spacing:var(--ls-tight);margin:0 0 var(--sp-4);font-weight:var(--w-medium);text-wrap:balance}
p{margin:0 0 var(--sp-4);text-wrap:pretty}
a{color:var(--red-600);text-decoration:none;transition:color var(--dur-fast) var(--ease-soft)}
a:hover{color:var(--red-700)}
img,svg{max-width:100%;display:block}
button,input,textarea,select{font:inherit;color:inherit}
::selection{background:var(--red-100);color:var(--ink-900)}

/* numbers: always IRANSansFaNum so digits auto-render as ۰-۹ */
.num{font-family:var(--font-number)}

.latin{font-family:'IRANSans',system-ui,sans-serif;direction:ltr;unicode-bidi:isolate}

.material-symbols-rounded{
  font-family:'Material Symbols Rounded';
  font-weight:normal;font-style:normal;line-height:1;letter-spacing:normal;
  white-space:nowrap;direction:ltr;
  font-feature-settings:'liga';-webkit-font-feature-settings:'liga';
  text-transform:none;-webkit-font-smoothing:antialiased;
  font-variation-settings:'opsz' 24;
  display:inline-block;vertical-align:middle;
}
