/* ==========================================================================
   CanadaParvaz — الگوهای صفحه (ترکیب کامپوننت‌ها)
   بعد از components.css بارگذاری شود. فقط از توکن‌ها استفاده می‌کند.
   زیرمجموعه‌ی هدفمند از patterns.css بریم دبی — فقط الگوهای مرتبط با یک سایت
   لید-جنریشن (بدون فروش بلیط/رزرو/حساب کاربری) پورت شده‌اند.
   ========================================================================== */

/* ---------- دکمه‌ی آیکونی (برای اکشن‌های هدر در صورت نیاز) ---------- */
.icon-btn{ position:relative; width:var(--tap); height:var(--tap); display:grid; place-items:center; border-radius:50%; color:var(--ink); transition:background var(--t-fast), transform var(--t-med) var(--ease-spring); }
.icon-btn:hover{ background:var(--surface-2); }
.icon-btn:active{ transform:scale(.92); }
.icon-btn__badge{ position:absolute; inset-block-start:2px; inset-inline-end:2px; min-width:18px; height:18px; padding-inline:5px; border-radius:var(--r-pill); background:var(--danger); color:var(--on-media); font-size:11px; font-weight:800; line-height:18px; text-align:center; }

/* ---------- منوی کشویی موبایل (روی <dialog>) ---------- */
/* سلکتور :not([open]) عمداً صریح است: چون این یک قانون نویسنده (author) است،
   به‌طور خودکار روی استایل پیش‌فرض مرورگر برای <dialog> بسته اولویت دارد — پس
   باید خودمان هم حالت بسته را با specificity بالاتر تعریف کنیم، وگرنه diálog
   همیشه باز/قابل‌مشاهده می‌ماند حتی بدون attribute «open». */
.drawer:not([open]){ display:none; }
.drawer{ display:flex; flex-direction:column; border:0; padding:0; margin:0; inset-block:0; inset-inline-start:0; inset-inline-end:auto; width:min(88vw, 360px); height:100dvh; max-height:none; background:var(--surface); color:var(--ink); box-shadow:var(--shadow-3); }
.drawer::backdrop{ background:rgba(0,0,0,.4); }
.drawer__head{ display:flex; align-items:center; justify-content:space-between; padding:var(--sp-4) var(--sp-5); border-block-end:1px solid var(--line); }
.drawer__nav{ flex:1; overflow-y:auto; }
.drawer__nav a{ display:flex; align-items:center; justify-content:space-between; gap:var(--sp-3); min-height:52px; padding-inline:var(--sp-5); font-weight:800; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; border-block-end:1px solid var(--line); }
.drawer__foot{ display:flex; flex-direction:column; gap:var(--sp-3); padding:var(--sp-5); border-block-start:1px solid var(--line); }

/* ---------- جدول داده (مقایسه‌ی ایرلاین‌ها و...) ---------- */
.table-wrap{ overflow-x:auto; border:1px solid var(--line); border-radius:var(--r-md); }
.table{ width:100%; border-collapse:collapse; font-size:var(--fs-subhead); min-width:480px; }
.table th,.table td{ padding:var(--sp-3) var(--sp-4); text-align:start; border-block-end:1px solid var(--line); }
.table th{ background:var(--bg-grouped); font-weight:800; white-space:nowrap; }
.table tr:last-child td{ border-block-end:0; }

/* ---------- کارت مقاله و جعبه‌ی نویسنده (بلاگ) ---------- */
.post-card{ position:relative; display:flex; flex-direction:column; gap:var(--sp-3); }
.post-card__media{ aspect-ratio:16/10; border-radius:var(--r-lg); overflow:hidden; background:var(--surface-2); }
.post-card__media img{ width:100%; height:100%; object-fit:cover; }
.post-card__title{ font-size:var(--fs-title3); line-height:1.5; }
.post-card__title a::after{ content:""; position:absolute; inset:0; }     /* کل کارت یک لینک */
.post-card__meta{ display:flex; gap:var(--sp-3); font-size:var(--fs-footnote); color:var(--ink-2); }
@media (min-width:640px){ .post-card--row{ flex-direction:row; align-items:center; } .post-card--row .post-card__media{ flex:0 0 38%; } }
.author-box{ display:flex; gap:var(--sp-4); align-items:center; padding:var(--sp-5); background:var(--bg-grouped); border-radius:var(--r-lg); }
.blog-card__thumb--placeholder{ display:grid; place-items:center; color:var(--ink-3); }
.share{ display:flex; gap:var(--sp-2); align-items:center; flex-wrap:wrap; }

/* ---------- تور/مسیر: فهرست ویژگی با آیکون تیک ---------- */
.checklist{ display:grid; gap:var(--sp-2) var(--sp-5); grid-template-columns:minmax(0,1fr); font-size:var(--fs-subhead); }
@media (min-width:640px){ .checklist{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
.checklist li{ display:flex; align-items:flex-start; gap:var(--sp-2); }
.checklist .icon--sm{ color:var(--success); margin-block-start:.3em; }

/* ---------- ابزارهای واکنش‌گرا ---------- */
@media (min-width:1024px){ .only-mobile{ display:none !important; } }

/* ---------- بنر قرمز ایرلاین‌ها و بخش نهایی CTA (هر دو از .hero استفاده می‌کنند) ---------- */
.airline-visual__inner,.cta__inner{ display:flex; flex-direction:column; align-items:center; gap:var(--sp-3); text-align:center; max-width:var(--container-text); margin-inline:auto; }
.airline-visual__inner .icon{ width:48px; height:48px; }
.cta__inner .t-lead{ margin-inline:auto; }

/* ---------- بهترین زمان خرید بلیط: فهرست نکات (ستون تکی، جملات کامل) ---------- */
.best-time__inner{ max-width:var(--container-text); margin-inline:auto; text-align:center; }
.icon-list{ text-align:start; display:flex; flex-direction:column; gap:var(--sp-3); margin-block:var(--sp-5); }
.icon-list li{ display:flex; align-items:flex-start; gap:var(--sp-2); }
.icon-list .icon{ flex-shrink:0; margin-block-start:.2em; }

/* ---------- آیتم‌های صفحه‌ی تماس با ما ---------- */
.contact-block__item{ align-items:center; text-align:center; }

/* ---------- فهرست مطالب (پست‌های بلاگ) ---------- */
.toc{ background:var(--bg-grouped); border-radius:var(--r-md); padding:var(--sp-4) var(--sp-5); margin-block:var(--sp-5); }
.toc__title{ font-size:var(--fs-subhead); font-weight:800; margin-block-end:var(--sp-2); }
.toc__list{ display:flex; flex-direction:column; gap:var(--sp-1); list-style:decimal; padding-inline-start:1.2em; }
.toc__list a{ color:var(--brand-text); }

/* ---------- هدر و کارت‌های متا در صفحه‌ی تکی مسیر/ایرلاین/شهر (CPT single) ---------- */
.single-cpt__header{ margin-block-end:var(--sp-5); }
.single-cpt__thumb{ margin-block:var(--sp-5); }
.single-cpt__thumb img{ width:100%; height:auto; border-radius:var(--r-lg); }
.route-meta-card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--r-md); padding:var(--sp-3) var(--sp-4); display:flex; flex-direction:column; gap:2px; }
.route-meta-card__label{ font-size:var(--fs-caption); color:var(--ink-2); }
.route-meta-card__value{ font-weight:800; }

/* ---------- متن سلب مسئولیت زیر جدول مقایسه ---------- */
.disclaimer-text{ margin-block-start:var(--sp-3); }

/* ---------- لینک «مشاهده همه» زیر شبکه‌ی کارت‌ها ---------- */
.section-footer-cta{ text-align:center; margin-block-start:var(--sp-7); }

/* ---------- فرم استعلام قیمت (صفحه اصلی) ---------- */
.lead-form__header{ text-align:center; max-width:620px; margin-inline:auto; margin-block-end:var(--sp-6); }
.lead-form{ max-width:820px; margin-inline:auto; padding:var(--sp-6); }
.lead-form__grid{ margin-block-end:var(--sp-5); }
.lead-form__field--full{ grid-column:1 / -1; }
.lead-form__disclaimer{ text-align:center; margin-block-start:var(--sp-3); }
.lead-form__message{ max-width:820px; margin:var(--sp-5) auto 0; text-align:center; justify-content:center; }

/* ---------- چیدمان دوستونه‌ی hero صفحه اصلی (متن + نقشه) ---------- */
.hero__inner{ display:grid; gap:var(--sp-6); align-items:center; }
@media (min-width:900px){ .hero__inner{ grid-template-columns:1fr 1fr; } }
.hero__visual{ background:var(--surface); border-radius:var(--r-xl); padding:var(--sp-4); }
.hero__note{ display:inline-block; margin-block-start:var(--sp-4); padding:var(--sp-2) var(--sp-4); border-radius:var(--r-pill); background:rgba(255,255,255,.14); font-size:var(--fs-footnote); color:color-mix(in srgb, var(--brand-ink) 88%, transparent); }
.hero__actions{ margin-block:var(--sp-4); }

/* ---------- نقشه‌ی کانادا (SVG اختصاصی؛ معادلی در دیزاین سیستم بریم دبی ندارد) ---------- */
.canada-map{ text-align:center; }
.canada-map__heading{ font-size:var(--fs-large); font-weight:900; }
.canada-map__desc{ max-width:560px; margin:0 auto var(--sp-5); color:var(--ink-2); }
.canada-map__svg{ max-width:640px; margin:0 auto; }
.canada-map__land{ fill:var(--bg-grouped); stroke:var(--line); stroke-width:1; stroke-linejoin:round; }
.canada-map__dot{ fill:var(--brand); }
.canada-map__pulse{ fill:none; stroke:var(--brand); stroke-width:1; opacity:.5; }
.canada-map__label{ font-size:9px; font-family:var(--font); fill:var(--ink); text-anchor:middle; font-weight:600; paint-order:stroke; stroke:#fff; stroke-width:3px; }
.canada-map--compact .canada-map__svg{ max-width:460px; }
.canada-map__list{ display:flex; flex-wrap:wrap; justify-content:center; gap:var(--sp-3); margin-block-start:var(--sp-5); }
.canada-map__list a,.canada-map__list span{ display:inline-block; padding:var(--sp-2) var(--sp-4); border-radius:var(--r-pill); background:var(--bg-grouped); font-size:var(--fs-caption); transition:background var(--t-fast) var(--ease-standard), color var(--t-fast) var(--ease-standard); }
.canada-map__list a:hover{ background:var(--brand-soft); color:var(--brand-text); }
