/* ==========================================================================
   CanadaParvaz — پایه (reset، تایپوگرافی، چیدمان)
   بعد از tokens.css بارگذاری شود. هیچ مقدار hard-code نباید داشته باشد.
   ========================================================================== */

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--font); font-size:var(--fs-body); line-height:var(--lh-body);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:clip;                              /* صفحه هرگز به کنار نلغزد (clip تا position:sticky کار کند) */
  overflow-wrap:anywhere;                      /* متن بلند هرگز اسکرول افقی نسازد */
}
img,svg,video,canvas{ display:block; max-width:100%; height:auto; }
a{ color:inherit; text-decoration:none; }
button,input,select,textarea{ font:inherit; color:inherit; }
button{ background:none; border:0; cursor:pointer; padding:0; }
h1,h2,h3,h4,h5,h6{ margin:0; line-height:var(--lh-heading); letter-spacing:var(--ls-heading); font-weight:800; text-wrap:balance; }
p{ margin:0; text-wrap:pretty; }
ul,ol{ margin:0; padding:0; list-style:none; }
hr{ border:0; border-block-start:1px solid var(--line); margin:0; }
::selection{ background:var(--brand-soft-bd); }
:focus-visible{ outline:3px solid var(--focus); outline-offset:2px; border-radius:var(--r-xs); }
[hidden]{ display:none !important; }

.sr-only{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.skip-link{ position:absolute; inset-inline-start:var(--sp-4); top:-80px; z-index:100; background:var(--ink); color:var(--bg); padding:var(--sp-2) var(--sp-4); border-radius:var(--r-pill); }
.skip-link:focus{ top:var(--sp-2); }

/* ---------- آیکون‌ها (canadaparvaz_icon()، currentColor) ----------
   مجموعه آیکون‌های این سایت یکدست نیستند: برخی خط‌دار (fill="none" stroke="currentColor")
   و برخی توپر (fill="currentColor") هستند. هر SVG مقدار fill/stroke خودش را روی
   تگ <svg> دارد؛ اینجا فقط اندازه کنترل می‌شود تا سبک اصلی هر آیکون دست‌نخورده بماند. */
.icon{ width:24px; height:24px; flex-shrink:0; }
.icon--sm{ width:18px; height:18px; flex-shrink:0; }
.icon--lg{ width:32px; height:32px; }
.icon--rotate-90{ transform:rotate(90deg); }
.icon--rotate-180{ transform:rotate(180deg); }
.icon--check{ color:var(--success); }
.icon--reason{ width:28px; height:28px; color:var(--brand-text); }
[dir="rtl"] .icon--dir{ transform:scaleX(-1); }          /* فلش و شورون در RTL آینه شوند */

/* ---------- چیدمان ---------- */
.container{ width:100%; max-width:var(--container); margin-inline:auto; padding-inline:var(--gutter); }
.section{ padding-block:var(--section-gap); }
.section--tight{ padding-block:calc(var(--section-gap) * .6); }
.section--grouped{ background:var(--bg-grouped); }
.stack > * + *{ margin-block-start:var(--sp-4); }
.row{ display:flex; align-items:center; gap:var(--sp-3); }
.row--wrap{ flex-wrap:wrap; }
.row--between{ justify-content:space-between; }

.section-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:var(--sp-4); margin-block-end:var(--sp-6); }
.section-head h2{ font-size:var(--fs-large); }
.section-head p{ color:var(--ink-2); font-size:var(--fs-callout); margin-block-start:var(--sp-1); }
.see-all{ display:inline-flex; align-items:center; gap:var(--sp-1); min-height:var(--tap); color:var(--brand-text); font-size:var(--fs-callout); font-weight:700; white-space:nowrap; }

.grid{ display:grid; gap:var(--sp-4); grid-template-columns:minmax(0,1fr); }
.grid > *,.stack > *,.row > *{ min-width:0; }                 /* جلوگیری از blowout گرید با محتوای عریض (جدول، دکمه) */
@media (min-width:640px){ .grid--2,.grid--3,.grid--4{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (min-width:1024px){ .grid--3{ grid-template-columns:repeat(3,minmax(0,1fr)); } .grid--4{ grid-template-columns:repeat(4,minmax(0,1fr)); } }

/* ---------- تایپوگرافی ---------- */
.t-hero{ font-size:var(--fs-hero); font-weight:900; line-height:1.3; }
.t-display{ font-size:var(--fs-display); font-weight:900; line-height:1.35; }
.t-eyebrow{ font-size:var(--fs-footnote); font-weight:800; color:var(--brand-text); }
.t-lead{ font-size:var(--fs-title3); color:var(--ink-2); line-height:1.8; max-width:42ch; }
.t-muted{ color:var(--ink-2); }
.t-small{ font-size:var(--fs-footnote); }
.prose{ max-width:var(--container-text); margin-inline:auto; }
.prose > * + *{ margin-block-start:1em; }
.prose h2{ font-size:var(--fs-title1); margin-block-start:1.8em; }
.prose h3{ font-size:var(--fs-title2); margin-block-start:1.5em; }
.prose a{ color:var(--brand-text); text-decoration:underline; text-underline-offset:3px; }
.prose img{ border-radius:var(--r-md); }
.prose ul,.prose ol{ padding-inline-start:1.4em; }
.prose ul{ list-style:disc; } .prose ol{ list-style:decimal; }
.prose table{ width:100%; border-collapse:collapse; font-size:var(--fs-subhead); display:block; overflow-x:auto; }
.prose th,.prose td{ padding:var(--sp-3); border-block-end:1px solid var(--line); text-align:start; }
.prose--wide{ max-width:none; }
.post-narrow{ max-width:var(--container-text); margin-inline:auto; }

/* ---------- شیشه (همیشه با fallback) ---------- */
.glass{ background:var(--glass-solid); border:1px solid var(--glass-border); }
@supports ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){
  .glass{ background:var(--glass-bg); -webkit-backdrop-filter:var(--glass-blur); backdrop-filter:var(--glass-blur); }
}
@media (prefers-reduced-transparency: reduce){
  .glass{ background:var(--glass-solid); -webkit-backdrop-filter:none; backdrop-filter:none; }
}
