/* ==========================================================================
   style.css — استایل اصلی سایت هومات
   پالت رنگی برند: Deep Blue (#1E40AF) / Electric Cyan (#06B6D4) / AI Green (#10B981) / Amber (#F59E0B)
   ========================================================================== */

:root {
    --navy: #1E40AF;
    --navy-rgb: 30, 64, 175;
    --navy-soft: #1E3A8A;
    --navy-deep: #0F2557;
    --navy-deep-rgb: 15, 37, 87;
    --cyan: #06B6D4;
    --cyan-rgb: 6, 182, 212;
    /* نسخه تیره‌تر سایان — فقط برای متن روی پس‌زمینه روشن؛ سایان اصلی روی سفید کنتراست
       کافی (WCAG AA، حداقل ۴.۵:۱) ندارد، این نسخه ۵.۳۶:۱ است و همچنان خانواده رنگ برند است */
    --cyan-text: #0E7490;
    --green: #10B981;
    --green-rgb: 16, 185, 129;
    --amber: #F59E0B;
    --amber-rgb: 245, 158, 11;
    --gold: var(--amber);
    --text: #1F2937;
    --text-muted: #5b6675;
    --bg: #ffffff;
    --bg-alt: #f5f8fb;
    --border: #E5E7EB;
    --shadow: 0 10px 30px rgba(var(--navy-rgb), 0.08);
    --shadow-lg: 0 24px 60px rgba(var(--navy-rgb), 0.14);
    --shadow-cyan: 0 16px 40px rgba(var(--cyan-rgb), 0.22);
    --radius: 14px;
    /* متن بدنه: IBM Plex Sans Arabic — فونت شرکتی و جدی با پشتیبانی عالی فارسی.
       عمداً به‌جای Vazirmatn انتخاب شد: وزیرمتن عملاً فونت پیش‌فرض اکثر سایت‌های ایرانی است
       و باعث می‌شود سایت «مثل بقیه» به‌نظر برسد. وزیرمتن به‌عنوان جایگزین دوم می‌ماند تا
       اگر روزی فونت اول لود نشد، متن فارسی همچنان درست نمایش داده شود. */
    --font-fa: 'Pelak', Tahoma, sans-serif;
    --font-en: 'Pelak', system-ui, sans-serif;
    /* فونت نمایشی برای سرتیترها — Estedad، متمایز از Vazirmatn که برای متن بدنه نگه داشته شده؛
       این جفت‌سازی (فونت نمایشی + فونت بدنه) یکی از نشانه‌های سایت «طراحی‌شده» در برابر «قالب عمومی» است */
    --font-display-fa: 'Pelak', Tahoma, sans-serif;
    /* ---------- توکن‌های تم شیشه‌ای (glassmorphism) ----------
       فقط روی پس‌زمینه‌های تصویری/تیره استفاده می‌شوند (هیرو ویدیویی، کارت‌های روی تصویر).
       نکته: شیشه روی پس‌زمینه‌ی سفیدِ تخت هیچ اثری ندارد و فقط متن را کم‌کنتراست می‌کند —
       به همین دلیل عمداً به‌صورت سراسری روی همه کارت‌های سایت اعمال نشده است. */
    --glass-bg: rgba(255, 255, 255, 0.10);
    --glass-bg-strong: rgba(255, 255, 255, 0.16);
    --glass-border: rgba(255, 255, 255, 0.22);
    --glass-blur: blur(18px) saturate(150%);
    /* نسخه‌ی روشنِ شیشه برای سرتیتر بخش‌ها (روی پس‌زمینه‌ی سفید صفحه) */
    --glass-panel: rgba(255, 255, 255, 0.55);
    --glass-border-solid: rgba(15, 37, 87, 0.09);

    /* واش/گرادیان ملایم برند — برای پس‌زمینه بخش‌های alt و کارت‌های برجسته، جای پر رنگ ثابت */
    --wash-navy: linear-gradient(135deg, rgba(var(--navy-rgb), 0.06), rgba(var(--cyan-rgb), 0.05) 55%, rgba(var(--navy-rgb), 0.02));
    --wash-deep: linear-gradient(160deg, var(--navy-deep), var(--navy) 65%, var(--navy-soft));
}

/* ---------- ریست پایه ---------- */
* { box-sizing: border-box; margin: 0; padding: 0; }

/* توجه: scroll-behavior:smooth عمداً اینجا تنظیم نشده — اسکرول نرم توسط Lenis (در main.js) مدیریت می‌شود؛
   ترکیب هم‌زمان این دو باعث کند و سنگین‌شدن حس اسکرول می‌شود. مسیر بازگشتی بدون JS/Lenis همچنان
   با {behavior:'smooth'} صریح در main.js کار می‌کند. */

/* جهت صفحه از روی صفت dir در <html> تعیین می‌شود (نه ثابت rtl) تا نسخه انگلیسی (dir="ltr")
   هم به‌درستی چپ‌به‌راست رندر شود؛ direction روی body ارث می‌برد و نیازی به تکرار در هر
   انتخاب‌گر نیست. فونت هم بر همین اساس بین فارسی/لاتین سوییچ می‌شود. */
html[dir="rtl"] { direction: rtl; }
html[dir="ltr"] {
    direction: ltr;
    /* رقم‌ها در انگلیسی لاتین باشند (Pelak فقط رقم فارسی دارد) — نگاه کنید به fonts.css */
    --font-fa: 'HomatLatinDigits', 'Pelak', Tahoma, sans-serif;
    --font-en: 'HomatLatinDigits', 'Pelak', system-ui, sans-serif;
    --font-display-fa: 'HomatLatinDigits', 'Pelak', Tahoma, sans-serif;
}
html[dir="ltr"] body { font-family: var(--font-en); }

body {
    font-family: var(--font-fa);
    background: var(--bg);
    color: var(--text);
    line-height: 1.9;
    overflow-x: hidden;
}

img { max-width: 100%; display: block; }

a { color: inherit; text-decoration: none; }

ul { list-style: none; }

button { font-family: inherit; cursor: pointer; border: none; background: none; }

.en, .ltr-num {
    font-family: var(--font-en);
    direction: ltr;
    unicode-bidi: isolate;
}

h1, h2, h3, h4 {
    color: var(--navy);
    font-weight: 700;
    line-height: 1.22;
    letter-spacing: -0.01em;
    font-family: var(--font-display-fa);
    text-wrap: balance;
}

html[dir="ltr"] h1, html[dir="ltr"] h2, html[dir="ltr"] h3, html[dir="ltr"] h4 {
    font-family: var(--font-en);
    letter-spacing: -0.015em;
}

.container {
    width: 100%;
    /* قاب عریض‌تر: روی مانیتورهای بزرگ تا ۱۵۶۰ پیکسل باز می‌شود تا فضای دو طرف هدر نرود،
       ولی حاشیه‌ی منطقی از لبه‌ی تصویر همیشه حفظ می‌شود (padding واکنش‌گرا).
       عریض‌تر از این، طول خط متن را از حد خوانایی راحت خارج می‌کند. */
    max-width: 1560px;
    margin: 0 auto;
    padding: 0 clamp(20px, 4vw, 56px);
}

/* بلوک‌های متنی طولانی داخل قاب عریض، عرض خودشان را محدود نگه می‌دارند تا خط‌ها
   بیش از حد کشیده و سخت‌خوان نشوند */
.section-head { max-width: 760px; }

/* ==========================================================================
   ورود موشن‌دار محو-به-شفاف سرتیترهای اصلی — جایگزین ظریف و باکلاس افکت‌های
   قبلی (اسپاتلایت/گرادیان متحرک)، فقط یک‌بار هنگام ورود به دید اجرا می‌شود.
   با data-aos="blur-in" روی عنصر فعال می‌شود؛ AOS کلاس .aos-animate را در
   لحظه مناسب اضافه می‌کند و این ترنزیشن‌ها اجرا می‌شوند.
   ========================================================================== */
[data-aos="blur-in"] {
    opacity: 0;
    filter: blur(14px);
    transform: translateY(18px);
    transition-property: opacity, filter, transform;
    transition-duration: 900ms;
    transition-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
}
[data-aos="blur-in"].aos-animate {
    opacity: 1;
    filter: blur(0);
    transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
    [data-aos="blur-in"] { opacity: 1; filter: none; transform: none; transition: none; }
}

.section {
    padding: 72px 0;
}

.section-alt {
    background: var(--bg-alt);
    background-image: var(--wash-navy);
}

/* ---------- یادداشت کوچک زیر عنوان کاتالوگ دوره‌ها در نسخه انگلیسی ---------- */
.courses-lang-note {
    color: var(--text-muted);
    font-size: 0.85rem;
    margin-top: 6px;
}

/* ==========================================================================
   سرتیتر شیشه‌ای بخش‌ها
   --------------------------------------------------------------------------
   هر سرتیتر یک «پنجره» است که ویدیوی تخت جمشیدِ هیرو از پشتش دیده می‌شود.
   چطور کار می‌کند: لایه‌ی .glass-head-media داخل سرتیتر، تصویر پوستر را با
   background-attachment: fixed نشان می‌دهد؛ چون تصویر نسبت به viewport ثابت
   است، با اسکرول احساس «پنجره‌ای رو به یک صحنه» می‌دهد، نه یک عکس تکراری.
   assets/js/main.js تنها یک عنصر <video> را بین همین لایه‌ها جابه‌جا می‌کند تا
   سرتیتری که در دید است ویدیوی زنده داشته باشد — یک ویدیو، نه چند تا،
   چون هر <video> یک دیکود جدا و پرهزینه است.

   همهٔ سرتیترها یک قاب، یک فاصله و یک اندازهٔ فونت دارند تا از بخشی به بخش
   دیگر «پرش» دیده نشود.
   ========================================================================== */
.section-head {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    text-align: center;
    max-width: 760px;
    margin: 0 auto 52px;
    padding: 34px clamp(20px, 4vw, 44px) 32px;
    border-radius: 22px;
    border: 1px solid var(--glass-border-solid);
    background: var(--glass-panel);
    -webkit-backdrop-filter: blur(10px) saturate(140%);
    backdrop-filter: blur(10px) saturate(140%);
    box-shadow: 0 18px 46px -28px rgba(15, 37, 87, 0.45);
}

/* لایهٔ تصویر/ویدیو پشت شیشه */
.glass-head-media {
    position: absolute;
    inset: 0;
    z-index: -2;
    background-image: url('/assets/video/hero-poster.jpg');
    background-size: cover;
    background-position: center;
    /* ثابت نسبت به viewport = حس پنجره؛ روی موبایل غیرفعال می‌شود (پایین‌تر) */
    background-attachment: fixed;
}
.glass-head-media video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* پردهٔ روشن روی تصویر تا متن سرمه‌ای خوانا بماند (کنتراست WCAG AA) */
.section-head::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(160deg, rgba(255, 255, 255, 0.88), rgba(241, 245, 249, 0.92));
}

/* روی پس‌زمینهٔ روشنِ section-alt، قاب کمی پررنگ‌تر می‌شود تا گم نشود */
.section-alt .section-head { border-color: rgba(15, 37, 87, 0.12); }

.eyebrow {
    display: inline-block;
    color: var(--navy);
    background: rgba(var(--cyan-rgb), 0.12);
    border: 1px solid rgba(var(--cyan-rgb), 0.35);
    font-size: 0.85rem;
    padding: 6px 16px;
    border-radius: 999px;
    margin-bottom: 16px;
}

/* یک اندازه برای همهٔ h2 های بخش‌ها — قبلاً هر بخش اندازهٔ خودش را داشت
   و از بالا تا پایین صفحه ناهماهنگ دیده می‌شد. */
.section-head h2 {
    font-size: clamp(1.9rem, 3.4vw, 2.55rem);
    line-height: 1.35;
    letter-spacing: -0.01em;
    margin-bottom: 12px;
    text-wrap: balance;
}

.section-head p {
    color: var(--text-muted);
    font-size: 1.03rem;
    line-height: 1.9;
    max-width: 60ch;
    margin-inline: auto;
    text-wrap: pretty;
}

@media (max-width: 780px) {
    .section-head { padding: 26px 20px 24px; border-radius: 18px; margin-bottom: 36px; }
    /* iOS با background-attachment: fixed تصویر را کش می‌دهد و پرش می‌کند */
    .glass-head-media { background-attachment: scroll; }
}
@media (prefers-reduced-motion: reduce) {
    .glass-head-media { background-attachment: scroll; }
}

/* ---------- دکمه‌ها ---------- */
.btn {
    position: relative;
    overflow: hidden;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 14px 30px;
    border-radius: 10px;
    font-weight: 700;
    font-size: 0.98rem;
    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, color 0.2s ease;
    white-space: nowrap;
}

/* افکت درخشش عبوری روی دکمه‌ها هنگام هاور */
.btn::before {
    content: '';
    position: absolute;
    top: 0;
    right: -60%;
    width: 40%;
    height: 100%;
    background: linear-gradient(120deg, transparent, rgba(255, 255, 255, 0.5), transparent);
    transform: skewX(20deg);
    transition: right 0.65s ease;
    pointer-events: none;
}

.btn:hover::before { right: 130%; }

.btn-primary {
    background: var(--navy);
    color: #fff;
    box-shadow: 0 8px 20px rgba(var(--navy-rgb), 0.25);
}
.btn-primary:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(var(--navy-rgb), 0.32); }

.btn-cyan {
    background: var(--cyan);
    color: var(--navy);
    box-shadow: 0 8px 20px rgba(var(--cyan-rgb), 0.3);
}
.btn-cyan:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(var(--cyan-rgb), 0.4); }

.btn-outline {
    background: transparent;
    color: var(--navy);
    border: 2px solid var(--navy);
}
.btn-outline:hover { background: var(--navy); color: #fff; }

.btn-block { width: 100%; }
.btn small-icon { margin-inline-start: 4px; }

/* ==========================================================================
   نوبار
   ========================================================================== */
/* نوبار شیشه‌ای — پس‌زمینه نیمه‌شفاف + backdrop-filter، پس هرچه پشتش باشد
   (ویدیوی هیرو در صفحه اصلی، محتوای صفحه هنگام اسکرول) از پشتش دیده می‌شود. */
.navbar {
    position: sticky;
    top: 0;
    z-index: 100;
    background: rgba(255, 255, 255, 0.62);
    -webkit-backdrop-filter: blur(20px) saturate(170%);
    backdrop-filter: blur(20px) saturate(170%);
    border-bottom: 1px solid rgba(15, 37, 87, 0.07);
    transition: background 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
}

.navbar.scrolled {
    background: rgba(255, 255, 255, 0.82);
    border-bottom-color: var(--border);
    box-shadow: 0 6px 24px rgba(var(--navy-rgb), 0.08);
}

/* ---------- صفحه اصلی: نوبار روی ویدیو ----------
   position: fixed یعنی نوبار فضای جریان صفحه را نمی‌گیرد، پس هیرو از خط صفر
   شروع می‌شود و ویدیو دقیقاً پشت منو ادامه پیدا می‌کند. تیرگی ملایم سرمه‌ای
   به‌جای سفید، تا متن سفید منو روی تصویر روشن هم خوانا بماند (WCAG AA). */
.navbar-over-hero {
    position: fixed;
    inset-inline: 0;
    top: 0;
    background: rgba(15, 37, 87, 0.22);
    border-bottom-color: rgba(255, 255, 255, 0.14);
}

.navbar-over-hero .nav-links > a,
.navbar-over-hero .nav-user-greeting { color: rgba(255, 255, 255, 0.92); }
.navbar-over-hero .nav-links > a:hover {
    color: #fff;
    background: rgba(255, 255, 255, 0.14);
}
.navbar-over-hero .nav-links a.active {
    color: #fff;
    background: rgba(255, 255, 255, 0.18);
}
.navbar-over-hero .nav-auth { border-inline-start-color: rgba(255, 255, 255, 0.2); }
.navbar-over-hero .nav-auth .btn-outline {
    color: #fff;
    border-color: rgba(255, 255, 255, 0.5);
}
.navbar-over-hero .nav-auth .btn-outline:hover { background: #fff; color: var(--navy); }
.navbar-over-hero .nav-toggle span { background: #fff; }

/* به‌محض اسکرول، همان نوبار روشن و مات‌تر می‌شود تا روی محتوای سفید خوانا باشد */
.navbar-over-hero.scrolled {
    background: rgba(255, 255, 255, 0.85);
    border-bottom-color: var(--border);
}
.navbar-over-hero.scrolled .nav-links > a,
.navbar-over-hero.scrolled .nav-user-greeting { color: var(--text); }
.navbar-over-hero.scrolled .nav-links > a:hover { color: var(--navy); background: var(--bg-alt); }
.navbar-over-hero.scrolled .nav-links a.active { color: var(--navy); background: rgba(var(--cyan-rgb), 0.14); }
.navbar-over-hero.scrolled .nav-auth .btn-outline { color: var(--navy); border-color: var(--navy); }
.navbar-over-hero.scrolled .nav-toggle span { background: var(--navy); }

/* یک ردیف، بدون شکستن.
   flex-wrap: wrap قبلی باعث می‌شد ۱۰ لینک + ۳ دکمه روی نمایشگرهای میانی به دو-سه
   سطر بشکنند و نوبار به‌هم‌ریخته دیده شود. حالا تا ۱۱۸۰px یک ردیف است و
   زیر آن مستقیم به منوی همبرگری می‌رود. */
.navbar-inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 86px;
    padding: 8px 0;
    flex-wrap: nowrap;
    gap: 20px;
}

.brand {
    display: flex;
    align-items: center;
    gap: 12px;
    font-weight: 700;
    font-size: 1.5rem;
    color: var(--navy);
}

.brand-logo-wrap {
    /* هاله‌ی نوری کوچک و محدود پشت لوگو در نوبار */
    position: relative;
    display: inline-flex;
    align-items: center;
}

.brand-logo-wrap::before {
    content: '';
    position: absolute;
    inset: -9px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(var(--cyan-rgb), 0.28), transparent 72%);
    filter: blur(7px);
    z-index: -1;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.4s ease;
}

/* هاله فقط هنگام هاور و به‌آرامی ظاهر می‌شود — نه نبض دائمی */
.brand:hover .brand-logo-wrap::before { opacity: 1; }

.brand-logo {
    /* لوگوی هومات به‌صورت کامل (بال‌دار) استفاده می‌شود، نه برش دایره‌ای.
       نکته طراحی: لوگو عمداً هیچ انیمیشن دائمی ندارد. لوگویی که مدام بالا-پایین می‌رود و
       می‌چرخد، حرفه‌ای به‌نظر نمی‌رسد و چشم را در کل صفحه آزار می‌دهد. تنها واکنش، یک
       بزرگ‌نمایی بسیار ظریف هنگام هاور است — همان چیزی که برندهای جدی انجام می‌دهند. */
    height: 58px;          /* بزرگ‌تر طبق درخواست — لوگو اولین چیزی است که دیده می‌شود */
    width: auto;
    object-fit: contain;
    transform-origin: center;
    transition: transform 0.45s cubic-bezier(0.22, 1, 0.36, 1), filter 0.45s ease;
}

.brand:hover .brand-logo {
    transform: scale(1.06);
    filter: drop-shadow(0 4px 14px rgba(var(--cyan-rgb), 0.45));
}

@media (prefers-reduced-motion: reduce) {
    .brand-logo { transition: none; }
    .brand:hover .brand-logo { transform: none; }
    .brand-logo-wrap::before { transition: none; }
}

/* کشوی منو: لینک‌ها با margin خودکارِ دوطرفه دقیقاً وسط نوبار می‌نشینند و
   دکمه‌های ورود/ثبت‌نام در انتها می‌مانند. */
.nav-drawer {
    display: flex;
    align-items: center;
    flex: 1;
    min-width: 0;
}

.nav-links {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    justify-content: center;
    gap: 2px;
    margin-inline: auto;
}

.nav-links a {
    position: relative;
    padding: 9px 11px;
    border-radius: 9px;
    font-size: 0.87rem;
    line-height: 1;
    white-space: nowrap;
    color: var(--text);
    transition: color 0.2s ease, background 0.2s ease;
}

/* آیتم فراخوان نوبار (رزرو مشاوره) — به‌جای لینک ساده، دکمه‌ی برجسته
   چون این صفحه مسیر اصلی درآمد سایت است و نباید بین ۹ لینک هم‌وزن گم شود */
.nav-links a.nav-cta {
    background: var(--navy);
    color: #fff;
    font-weight: 700;
    padding: 9px 18px;
    border-radius: 999px;
}
.nav-links a.nav-cta:hover { background: var(--cyan); color: var(--navy-deep); }
.nav-links a.nav-cta::after { display: none; }

.nav-links a::after {
    content: '';
    position: absolute;
    right: 14px;
    left: 14px;
    bottom: 4px;
    height: 2px;
    border-radius: 2px;
    background: var(--cyan);
    transform: scaleX(0);
    transition: transform 0.25s ease;
}

.nav-links a:hover { color: var(--navy); background: var(--bg-alt); }
.nav-links a:hover::after,
.nav-links a.active::after { transform: scaleX(1); }

.nav-links a.active {
    color: var(--navy);
    font-weight: 700;
    background: rgba(var(--cyan-rgb), 0.14);
}

.nav-toggle {
    display: none;
    flex-direction: column;
    gap: 5px;
    padding: 8px;
}
.nav-toggle span {
    width: 24px;
    height: 2px;
    background: var(--navy);
    display: block;
    border-radius: 2px;
}

/* ==========================================================================
   هیرو صفحه اصلی
   ========================================================================== */
.hero {
    padding: 88px 0 64px;
    background:
        radial-gradient(circle at 85% 0%, rgba(var(--cyan-rgb), 0.10), transparent 55%),
        radial-gradient(circle at 0% 100%, rgba(var(--navy-rgb), 0.05), transparent 45%);
}

/* ==========================================================================
   هیرو با ویدیوی پس‌زمینه (تصاویر تخت جمشید) + لایه شیشه‌ای
   ویدیو گرم و روشن است و پالت برند سرد؛ یک پرده‌ی سرمه‌ای روی ویدیو هر دو مشکل را
   حل می‌کند: هم متن سفید خوانا می‌شود (کنتراست WCAG)، هم تصویر به هویت برند گره می‌خورد.
   ========================================================================== */
/* هیرو دقیقاً یک صفحه‌ی کامل را می‌گیرد تا هنگام باز شدن سایت، نوار سفیدِ
   بخش بعدی از پایین دیده نشود و کاربر «یک قاب کامل» ببیند.
   100svh (نه 100vh) عمداً: روی موبایل، نوار آدرس مرورگر از vh کم نمی‌شود و
   با 100vh بخشی از هیرو زیر نوار مرورگر می‌ماند. */
.hero-video {
    position: relative;
    isolation: isolate;
    display: flex;
    align-items: center;
    min-height: 100vh;
    min-height: 100svh;
    padding: 118px 0 72px;   /* بالا: جای نوبار ثابت */
    background: var(--navy-deep);
    overflow: hidden;
}

.hero-video > .container { width: 100%; }

/* نشانگر «پایین‌تر ادامه دارد» — بدون آن، صفحه‌ی تمام‌قد این حس را می‌دهد که
   سایت همین یک صفحه است. */
.hero-scroll-cue {
    position: absolute;
    inset-inline: 0;
    bottom: 22px;
    display: flex;
    justify-content: center;
    color: rgba(255, 255, 255, 0.75);
    pointer-events: none;
}
.hero-scroll-cue svg {
    width: 26px;
    height: 26px;
    animation: heroScrollCue 2.2s ease-in-out infinite;
}
@keyframes heroScrollCue {
    0%, 100% { transform: translateY(0); opacity: 0.55; }
    50%      { transform: translateY(7px); opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
    .hero-scroll-cue svg { animation: none; }
}

.hero-video-bg {
    position: absolute;
    inset: 0;
    z-index: -1;
}

.hero-video-bg video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* پرده‌ی چندلایه: تیرگی کافی برای خوانایی متن، ولی نه آن‌قدر که تصویر تخت جمشید محو شود.
   شدت پرده عمداً پایین نگه داشته شده و خوانایی متن از طریق پنل شیشه‌ای پشت متن تأمین می‌شود،
   نه با تیره‌کردن کل قاب. */
.hero-scrim {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(to bottom, rgba(15, 37, 87, 0.55), rgba(15, 37, 87, 0.30) 45%, rgba(15, 37, 87, 0.68)),
        linear-gradient(115deg, rgba(30, 64, 175, 0.32), rgba(6, 182, 212, 0.10) 60%, transparent);
}

/* روی ویدیو کل تایپوگرافی هیرو روشن می‌شود.
   نکته‌ی specificity: انتخاب‌گر پایه `.hero h1` در همین فایل پایین‌تر تعریف شده و با وزن برابر،
   ترتیب منبع برنده می‌شد و متن سرمه‌ای روی پس‌زمینه سرمه‌ای می‌ماند. با `.hero.hero-video`
   (دو کلاس) وزن بالاتر می‌رود و مستقل از ترتیب، این نسخه برنده است. */
.hero.hero-video .hero-copy {
    background: var(--glass-bg-strong);
    -webkit-backdrop-filter: var(--glass-blur);
    backdrop-filter: var(--glass-blur);
    border: 1px solid var(--glass-border);
    border-radius: 24px;
    padding: 40px 38px;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.32);
}

.hero.hero-video h1,
.hero.hero-video .subtitle,
.hero.hero-video .hero-name-line { color: #fff; }
.hero.hero-video h1 { text-shadow: 0 2px 24px rgba(0, 0, 0, 0.35); }
.hero.hero-video .hero-small-line,
.hero.hero-video .hero-social-label { color: rgba(255, 255, 255, 0.82); }

.hero.hero-video .btn-outline {
    color: #fff;
    border-color: rgba(255, 255, 255, 0.6);
}
.hero.hero-video .btn-outline:hover {
    background: #fff;
    color: var(--navy);
    border-color: #fff;
}

.hero.hero-video .hero-social-link {
    background: rgba(255, 255, 255, 0.14);
    border-color: rgba(255, 255, 255, 0.28);
    color: #fff;
}
.hero.hero-video .hero-social-link:hover { background: var(--cyan); color: var(--navy-deep); }

.hero.hero-video .hero-portrait img {
    border-color: rgba(255, 255, 255, 0.9);
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.42);
}

@media (max-width: 900px) {
    .hero-video { padding: 108px 0 64px; }
    .hero-video .hero-copy { padding: 30px 24px; }
}

/* پوستر همیشه به‌عنوان پس‌زمینه‌ی زیرین قرار دارد تا تا لحظه‌ی آماده‌شدن ویدیو
   (و در حالت کاهش‌انیمیشن) قاب خالی/سیاه دیده نشود. */
.hero-video-bg {
    background-image: url('/assets/video/hero-poster.jpg');
    background-size: cover;
    background-position: center;
}

/* ---------- تنظیمات هیرو روی موبایل ----------
   مشکل واقعی مشاهده‌شده: عکس پرتره حداقل ۳۸۰px بود و روی نمایشگر ۳۹۰px تقریباً کل عرض و
   بالای صفحه را می‌گرفت؛ ارتفاع کل هیرو به ۱۱۱۸px می‌رسید و کاربر باید اسکرول می‌کرد تا
   عنوان را ببیند. اینجا پرتره کوچک و ارتفاع هیرو جمع می‌شود تا عنوان بالای خط تا دیده شود. */
@media (max-width: 720px) {
    .hero.hero-video { padding: 104px 0 60px; } /* ۸۶px نوبار ثابت + فاصله‌ی تنفس */
    /* نکته specificity: قانون پایه‌ی .hero-portrait (با clamp حداقل ۳۸۰px) پایین‌تر در همین
       فایل تعریف شده و با وزن برابر، ترتیب منبع برنده می‌شد و عکس روی موبایل ۳۸۰px می‌ماند
       (یعنی تقریباً کل عرض ۳۹۰px). با .hero.hero-video وزن بالاتر می‌رود و مستقل از ترتیب برنده است. */
    .hero.hero-video .hero-portrait {
        --portrait-size: min(170px, 45vw);
        animation: none; /* شناوری روی موبایل بی‌فایده است و فقط منابع مصرف می‌کند */
    }
    .hero.hero-video .hero-copy { padding: 24px 20px; }
    .hero.hero-video h1 { font-size: clamp(1.85rem, 8vw, 2.4rem); line-height: 1.35; }
    .hero.hero-video .subtitle { font-size: 1rem; margin-bottom: 16px; }
    .hero.hero-video .hero-small-line { margin-bottom: 22px; }
    /* فضای امن پایین هیرو تا دکمه‌های شناور (چت/واتساپ) روی متن نیفتند */
    .hero-social { padding-bottom: 60px; }
}

/* احترام به تنظیم کاهش انیمیشن — ویدیوی متحرک پس‌زمینه کنار گذاشته می‌شود */
@media (prefers-reduced-motion: reduce) {
    .hero-video-bg video { display: none; }
    .hero-video-bg {
        background-image: url('/assets/video/hero-poster.jpg');
        background-size: cover;
        background-position: center;
    }
}

.hero-grid {
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    gap: 48px;
    align-items: center;
}

.hero-eyebrow {
    color: var(--text-muted);
    font-size: 1.05rem;
    margin-bottom: 10px;
}

.hero-tagline {
    display: inline-block;
    color: var(--cyan-text);
    font-weight: 700;
    font-size: 1rem;
    margin-bottom: 14px;
}

.hero h1 {
    /* تایپوگرافی نمایشی طبق مرجع: بزرگ، وزن سبک‌تر از bold، تراکینگ منفی و لیدینگ فشرده.
       ترکیب «بزرگ + وزن متوسط + فشرده» حس تحریریه‌ای/حرفه‌ای می‌دهد، در حالی که
       «بزرگ + بولد + باز» شبیه قالب‌های آماده به نظر می‌رسد. */
    font-size: clamp(2.75rem, 6.2vw, 4.6rem);
    font-weight: 600;
    line-height: 1.18;         /* فارسی با زیرنویس و کشیدگی، لیدینگ خیلی فشرده را بد نشان می‌دهد */
    letter-spacing: -0.03em;
    margin-bottom: 18px;
    color: var(--navy);
    text-wrap: balance;
}

.hero .subtitle {
    font-size: 1.15rem;
    line-height: 2;
    color: var(--navy);
    font-weight: 600;
    margin-bottom: 22px;
    text-wrap: pretty;
}

.hero-name-line {
    font-size: 1.05rem;
    font-weight: 700;
    color: var(--text);
    margin-bottom: 4px;
}

.hero-small-line {
    font-size: 0.95rem;
    color: var(--text-muted);
    margin-bottom: 32px;
}

.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
}

/* ---------- دسترسی سریع تلگرام/یوتیوب، بالای صفحه اصلی ---------- */
.hero-social {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 22px;
}

.hero-social-label {
    font-size: 0.88rem;
    color: var(--text-muted);
}

.hero-social-link {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(var(--navy-rgb), 0.07);
    color: var(--navy);
    transition: background 0.2s ease, color 0.2s ease, transform 0.25s ease;
}

.hero-social-link svg { width: 18px; height: 18px; }

.hero-social-link:hover {
    background: var(--cyan);
    color: #fff;
    transform: translateY(-3px);
}

.hero { position: relative; }

.hero .container { position: relative; z-index: 1; }

.hero-portrait {
    position: relative;
    justify-self: center;
    /* بزرگ‌تر از قبل طبق درخواست؛ همچنان با clamp واکنش‌گرا باقی می‌ماند */
    --portrait-size: clamp(380px, 36vw, 560px);
    width: var(--portrait-size);
    height: var(--portrait-size);
    /* حرکت شناور ملایم وقتی موس روی آن نیست — روی خود قاب، نه عکس، تا با هاور عکس تداخل نکند.
       نکته فنی: هیچ افکت دیگری (مثل پارالاکس اسکرول) نباید روی transform همین عنصر بیفتد،
       وگرنه با این انیمیشن قفل می‌کند (این باگ دقیقاً همین امروز در بخش هاب دیده و رفع شد). */
    animation: heroPortraitFloat 6s ease-in-out infinite;
}

.hero-portrait img {
    position: relative;
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    box-shadow: 0 20px 45px rgba(var(--navy-rgb), 0.18);
    border: 6px solid #fff;
    /* عمداً بدون تأخیر/محو‌شدگی ورود — این مهم‌ترین تصویر بالای صفحه است و باید فوری دیده
       شود؛ تأخیر قبلی (۱ ثانیه) هم روی سرعت واقعی حس‌شده اثر منفی داشت و هم معیار LCP را
       گیج می‌کرد (لایت‌هاوس این تصویر را چون در لحظه سنجش هنوز opacity:0 بود نادیده گرفت) */
    filter: grayscale(1) contrast(1.02);
    transition: filter 0.5s ease, transform 0.5s ease, box-shadow 0.5s ease;
}

.hero-portrait:hover img {
    filter: grayscale(0);
    transform: scale(1.08);
    box-shadow: 0 26px 55px rgba(var(--navy-rgb), 0.28), 0 0 0 10px rgba(var(--cyan-rgb), 0.14);
}

@keyframes heroPortraitFloat {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-10px); }
}

/* ==========================================================================
   کارت‌های خدمات (۵ در صفحه اصلی)
   ========================================================================== */
.cards-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 24px;
}

.service-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 32px 26px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.service-card:hover {
    transform: translateY(-6px);
    box-shadow: var(--shadow);
    border-color: rgba(var(--cyan-rgb), 0.5);
}

.service-card .icon {
    width: 52px;
    height: 52px;
    border-radius: 12px;
    background: rgba(var(--navy-rgb), 0.08);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--navy);
    transition: transform 0.3s ease;
}

.service-card:hover .icon { transform: scale(1.08) rotate(-4deg); }

.service-card .icon svg { width: 26px; height: 26px; }

/* رنگ‌بندی چرخشی آیکون‌ها برای زنده‌تر شدن گرید کارت‌ها */
.cards-grid .service-card:nth-child(5n+1) .icon { background: rgba(var(--navy-rgb), 0.1); color: var(--navy); }
.cards-grid .service-card:nth-child(5n+2) .icon { background: rgba(var(--cyan-rgb), 0.14); color: #0891A8; }
.cards-grid .service-card:nth-child(5n+3) .icon { background: rgba(var(--green-rgb), 0.14); color: #047857; }
.cards-grid .service-card:nth-child(5n+4) .icon { background: rgba(var(--amber-rgb), 0.16); color: #B45309; }
.cards-grid .service-card:nth-child(5n+5) .icon { background: rgba(var(--navy-rgb), 0.1); color: var(--navy); }

.service-card h3 { font-size: 1.15rem; }

.service-card p { color: var(--text-muted); flex-grow: 1; }

.service-card .btn { align-self: flex-start; margin-top: 6px; }

.credential-line {
    text-align: center;
    color: var(--text-muted);
    font-size: 0.95rem;
    padding: 28px 0 0;
    border-top: 1px solid var(--border);
    margin-top: 40px;
}

/* ==========================================================================
   صفحات داخلی (سرصفحه ساده)
   ========================================================================== */
.page-header {
    padding: 72px 0 48px;
    background: var(--navy);
    color: #fff;
    background-image: radial-gradient(circle at 90% 10%, rgba(var(--cyan-rgb), 0.18), transparent 55%);
}

.page-header h1 {
    color: #fff;
    font-size: clamp(2.1rem, 4.4vw, 2.9rem);
    margin-bottom: 16px;
}

.page-header p {
    color: rgba(255, 255, 255, 0.78);
    font-size: 1.1rem;
    max-width: 760px;
}

.page-header p strong { color: var(--cyan); font-weight: 700; }

.header-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 22px;
}

.header-tags span {
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #fff;
    font-size: 0.85rem;
    padding: 7px 16px;
    border-radius: 999px;
}

.header-tags span.highlight {
    background: var(--cyan);
    border-color: var(--cyan);
    color: var(--navy);
    font-weight: 700;
}

/* ---------- گرید "برای چه کسب‌وکارهایی؟" ---------- */
.usecase-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 20px;
}

.usecase-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 26px;
    border-inline-start: 4px solid var(--cyan);
}

.usecase-card h4 {
    font-size: 1.05rem;
    margin-bottom: 8px;
}

.usecase-card p {
    color: var(--text-muted);
    font-size: 0.96rem;
}

/* ---------- گرید راه‌های ارتباطی (صفحه ارتباط با من) ---------- */
.contact-channels-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 20px;
}

.contact-channel-card {
    display: flex;
    align-items: center;
    gap: 16px;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 22px 24px;
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}

.contact-channel-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow);
    border-color: rgba(var(--cyan-rgb), 0.5);
}

.contact-channel-icon {
    width: 50px;
    height: 50px;
    flex-shrink: 0;
    border-radius: 50%;
    background: rgba(var(--navy-rgb), 0.08);
    color: var(--navy);
    display: flex;
    align-items: center;
    justify-content: center;
}

.contact-channel-icon svg { width: 24px; height: 24px; }

.contact-channel-body {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}

.contact-channel-body strong { color: var(--navy); font-size: 1.02rem; }
.contact-channel-body span { color: var(--text-muted); font-size: 0.86rem; }

/* ---------- بلوک توضیح خدمت / خروجی ---------- */
.service-detail {
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: 30px;
    align-items: center;
    background: var(--bg-alt);
    border-radius: var(--radius);
    padding: 38px;
    margin-top: 12px;
}

.service-detail h2 { font-size: 1.3rem; margin-bottom: 12px; }
.service-detail > div > p { color: var(--text-muted); font-size: 1.02rem; line-height: 1.9; }

.service-detail .output-tag {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    background: #fff;
    border: 1px solid var(--border);
    box-shadow: var(--shadow);
    color: var(--navy);
    padding: 22px 24px;
    border-radius: 14px;
    height: 100%;
    justify-content: center;
}

.service-detail .output-tag-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--cyan-text);
    font-weight: 700;
    font-size: 0.82rem;
}

.service-detail .output-tag-value {
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.7;
    color: var(--navy);
}

@media (max-width: 760px) {
    .service-detail { grid-template-columns: 1fr; }
}

/* ==========================================================================
   بخش «داستان خدمت» (تصویر + توضیح انسانی + CTA) — در صفحات خدمات، زیر page-header
   ========================================================================== */
.service-story {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 52px;
    align-items: center;
}

.service-story-reverse .service-story-media { order: 2; }
.service-story-reverse .service-story-body { order: 1; }

.service-story-media {
    position: relative;
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow);
    border: 1px solid var(--border);
}

.service-story-media img {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    display: block;
    filter: grayscale(0.4) contrast(1.03);
    transition: filter 0.6s ease, transform 0.6s ease;
}

.service-story-media:hover img {
    filter: grayscale(0);
    transform: scale(1.05);
}

/* ورود موشن‌دار تصویر هنگام رسیدن به دید (media-pending/media-reveal با main.js مقداردهی می‌شود) */
.service-story-media.media-pending { opacity: 0; transform: scale(1.06); }
.service-story-media.media-reveal {
    opacity: 1;
    transform: scale(1);
    transition: opacity 0.8s ease, transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}

/* افکت درخشش عبوری روی تصویر، یک‌بار هنگام ورود به دید */
.service-story-media::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 2;
    background: linear-gradient(115deg, transparent 30%, rgba(255, 255, 255, 0.55) 48%, transparent 66%);
    transform: translateX(-120%);
    pointer-events: none;
}

.service-story-media.media-reveal::before {
    animation: mediaShineSweep 1s ease-out 0.2s both;
}

@keyframes mediaShineSweep {
    to { transform: translateX(120%); }
}

@media (prefers-reduced-motion: reduce) {
    .service-story-media.media-pending { opacity: 1; transform: none; }
    .service-story-media.media-reveal::before { animation: none; }
}

.service-story-body .eyebrow { margin-bottom: 14px; }
.service-story-body h2 { font-size: clamp(1.6rem, 2.8vw, 2.1rem); margin-bottom: 16px; }
.service-story-body p { color: var(--text-muted); font-size: 1.05rem; line-height: 2; margin-bottom: 28px; }

@media (max-width: 900px) {
    .service-story { grid-template-columns: 1fr; }
    .service-story-reverse .service-story-media,
    .service-story-reverse .service-story-body { order: initial; }
}

/* ==========================================================================
   فرم‌ها
   ========================================================================== */
.form-card {
    background: #fff;
    border: 1px solid var(--border);
    box-shadow: var(--shadow);
    border-radius: var(--radius);
    padding: 40px;
    max-width: 640px;
    margin: 0 auto;
}

.form-card h2,
.form-card .form-card-title { text-align: center; margin-bottom: 8px; }
.form-card .form-card-title { font-size: clamp(1.5rem, 2.6vw, 1.9rem); }
.form-card .form-sub {
    text-align: center;
    color: var(--text-muted);
    margin-bottom: 28px;
}

.form-row { margin-bottom: 20px; }

.form-row-split {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 16px;
}

.form-row-split .form-row { margin-bottom: 20px; }

@media (max-width: 480px) {
    .form-row-split { grid-template-columns: 1fr; }
}

.form-row label {
    display: block;
    font-weight: 600;
    margin-bottom: 8px;
    font-size: 0.95rem;
}

.form-row .required-mark { color: #d33; margin-inline-start: 3px; }

.form-row input,
.form-row select,
.form-row textarea {
    width: 100%;
    padding: 13px 16px;
    border: 1.5px solid var(--border);
    border-radius: 10px;
    font-family: var(--font-fa);
    font-size: 0.98rem;
    background: var(--bg-alt);
    transition: border-color 0.2s ease, background 0.2s ease;
}

.form-row input:focus,
.form-row select:focus,
.form-row textarea:focus {
    outline: none;
    border-color: var(--cyan);
    background: #fff;
    box-shadow: 0 0 0 4px rgba(var(--cyan-rgb), 0.15);
}

.form-row input.field-error,
.form-row select.field-error,
.form-row textarea.field-error {
    border-color: #d33;
    background: #fff5f5;
}

.form-row .error-msg {
    display: none;
    color: #d33;
    font-size: 0.85rem;
    margin-top: 6px;
}

.form-row.has-error .error-msg { display: block; }

.form-row textarea { min-height: 120px; resize: vertical; }

.radio-group, .checkbox-group {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.radio-group label, .checkbox-group label {
    display: flex;
    align-items: center;
    gap: 6px;
    background: var(--bg-alt);
    border: 1.5px solid var(--border);
    padding: 10px 16px;
    border-radius: 10px;
    font-weight: 600;
    font-size: 0.92rem;
    cursor: pointer;
}

.radio-group input, .checkbox-group input { accent-color: var(--navy); }

.form-note {
    text-align: center;
    font-size: 0.85rem;
    color: var(--text-muted);
    margin-top: 16px;
}

.form-alert {
    display: none;
    border-radius: 10px;
    padding: 16px 18px;
    margin-bottom: 22px;
    font-size: 0.95rem;
    text-align: center;
}

.form-alert.success {
    display: block;
    background: rgba(var(--green-rgb), 0.1);
    color: #047857;
    border: 1px solid rgba(var(--green-rgb), 0.35);
}

/* ==========================================================================
   صفحه مدرسه — کارت دوره
   ========================================================================== */
.course-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 28px;
    display: flex;
    flex-direction: column;
    gap: 14px;
    height: 100%;
    transition: box-shadow 0.25s ease, transform 0.25s ease, border-color 0.25s ease;
}

.course-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow);
    border-color: rgba(var(--cyan-rgb), 0.4);
}

.course-card h3 { font-size: 1.08rem; }
.course-card p { color: var(--text-muted); flex-grow: 1; font-size: 0.95rem; }

/* ==========================================================================
   صفحه سیناپس
   ========================================================================== */
.synapse-section .section-head .eyebrow {
    background: rgba(var(--amber-rgb), 0.14);
    border-color: rgba(var(--amber-rgb), 0.4);
    color: #92400E;
}

.article-list {
    display: grid;
    gap: 20px;
}

.article-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 26px 28px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.article-card:hover { box-shadow: var(--shadow); transform: translateY(-3px); }

.article-card .article-date {
    color: var(--text-muted);
    font-size: 0.85rem;
}

.article-card h3 { font-size: 1.15rem; }
.article-card p { color: var(--text-muted); }

/* راهنمای کوچک زیر فیلدهای فرم (توضیح فرمت فایل، قواعد زمان جلسه و ...) */
.form-hint {
    font-size: 0.84rem;
    color: var(--text-muted);
    line-height: 1.8;
    margin-top: 8px;
}

/* فیلد آپلود فایل — ظاهر پیش‌فرض مرورگر با بقیه فرم هماهنگ نیست */
input[type="file"] {
    width: 100%;
    border: 1.5px dashed var(--border);
    border-radius: 10px;
    padding: 14px 16px;
    background: var(--bg-alt);
    font-family: inherit;
    font-size: 0.9rem;
    cursor: pointer;
}
input[type="file"]:hover { border-color: var(--cyan); }

/* ==========================================================================
   کارت‌های آماری — الگوی statistics-card-7:
   یک قاب با حاشیه‌ی مشترک، کارت‌ها به هم چسبیده و با خط جداکننده، نه کارت‌های شناور جدا.
   ========================================================================== */
.statcard-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 16px;
    overflow: hidden;
    max-width: 1100px;
    margin-inline: auto;
}

.statcard {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    gap: 26px;
    padding: 28px 26px;
    border-inline-end: 1px solid var(--border);
}
.statcard:last-child { border-inline-end: none; }

.statcard-head { display: flex; flex-direction: column; gap: 3px; }
.statcard-title { font-size: 1.05rem; font-weight: 700; color: var(--text); }
.statcard-subtitle { font-size: 0.85rem; color: var(--text-muted); }

.statcard-body { display: flex; flex-direction: column; gap: 8px; }
.statcard-value-row { display: flex; align-items: center; gap: 10px; }

.statcard-value {
    font-family: var(--font-display-fa);
    font-size: 2.2rem;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1;
}

.statcard-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.78rem;
    font-weight: 700;
    padding: 4px 10px;
    border-radius: 999px;
}
.statcard-badge svg { width: 12px; height: 12px; }

.statcard-subtext { font-size: 0.84rem; color: var(--text-muted); line-height: 1.8; }

/* رنگ‌بندی هر کارت — مقدار و نشان هم‌رنگ، طبق الگوی مرجع */
.statcard-navy  .statcard-value { color: var(--navy); }
.statcard-navy  .statcard-badge { background: rgba(var(--navy-rgb), 0.10); color: var(--navy); }
.statcard-cyan  .statcard-value { color: var(--cyan-text); }
.statcard-cyan  .statcard-badge { background: rgba(var(--cyan-rgb), 0.14); color: var(--cyan-text); }
.statcard-green .statcard-value { color: #047857; }
.statcard-green .statcard-badge { background: rgba(var(--green-rgb), 0.14); color: #047857; }

@media (max-width: 780px) {
    .statcard { border-inline-end: none; border-bottom: 1px solid var(--border); }
    .statcard:last-child { border-bottom: none; }
}

/* ==========================================================================
   نوار روندهٔ سوابق — الهام از نوار «تجربه‌های من» در سایت مرجع
   ========================================================================== */
.marquee-band {
    position: relative;
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 22px clamp(20px, 4vw, 56px);
    background: var(--bg-alt);
    border-block: 1px solid var(--border);
    overflow: hidden;
}

.marquee-label {
    flex-shrink: 0;
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--text-muted);
    padding-inline-end: 20px;
    border-inline-end: 1px solid var(--border);
}

.marquee-viewport {
    position: relative;
    flex: 1;
    display: flex;
    overflow: hidden;
    /* محو‌شدن نرم در دو لبه تا آیتم‌ها ناگهانی قطع نشوند */
    -webkit-mask-image: linear-gradient(to left, transparent, #000 6%, #000 94%, transparent);
    mask-image: linear-gradient(to left, transparent, #000 6%, #000 94%, transparent);
}

.marquee-track {
    display: flex;
    align-items: center;
    gap: 40px;
    flex-shrink: 0;
    padding-inline-start: 40px;
}

/* حرکت فقط وقتی main.js نسخه‌ی دوم را ساخته (.is-animated)؛ بدون آن فهرست ثابت و قابل‌اسکرول است */
.marquee-band:not(.is-animated) .marquee-viewport { overflow-x: auto; }
.marquee-band.is-animated .marquee-track {
    /* جهت حرکت در RTL برعکس است؛ با translateX مثبت، آیتم‌ها به سمت راست می‌روند */
    animation: marqueeScroll 32s linear infinite;
}

.marquee-band:hover .marquee-track { animation-play-state: paused; }

@keyframes marqueeScroll {
    from { transform: translateX(0); }
    to   { transform: translateX(100%); }
}

html[dir="ltr"] .marquee-track {
    animation-name: marqueeScrollLtr;
}
@keyframes marqueeScrollLtr {
    from { transform: translateX(0); }
    to   { transform: translateX(-100%); }
}

.marquee-item {
    display: flex;
    align-items: center;
    gap: 12px;
    white-space: nowrap;
}

.marquee-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--cyan);
    flex-shrink: 0;
}

.marquee-text { display: flex; flex-direction: column; line-height: 1.5; }
.marquee-text strong { font-size: 0.95rem; color: var(--navy); font-weight: 700; }
.marquee-text span { font-size: 0.8rem; color: var(--text-muted); }

@media (max-width: 720px) {
    .marquee-band { flex-direction: column; align-items: stretch; gap: 12px; padding: 18px 0; }
    .marquee-label {
        padding: 0 20px;
        border-inline-end: none;
    }
}

/* حرکت دائمی برای کاربری که کاهش‌انیمیشن خواسته متوقف می‌شود و فهرست ثابت می‌ماند */
@media (prefers-reduced-motion: reduce) {
    .marquee-track { animation: none; }
    .marquee-viewport { overflow-x: auto; }
}

/* ==========================================================================
   بلوک «دقیقاً چه چیزی تحویل می‌گیرید» در صفحات خدمات
   ========================================================================== */
.deliverables-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 24px;
}

.deliverable-card {
    position: relative;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 18px;
    padding: 32px 28px;
    transition: box-shadow 0.25s ease, transform 0.25s ease, border-color 0.25s ease;
}
.deliverable-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow);
    border-color: rgba(var(--cyan-rgb), 0.4);
}

.deliverable-num {
    display: inline-block;
    font-family: var(--font-en);
    direction: ltr;
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--cyan-text);
    background: rgba(var(--cyan-rgb), 0.12);
    padding: 5px 12px;
    border-radius: 999px;
    margin-bottom: 16px;
}

.deliverable-card h3 { font-size: 1.2rem; margin-bottom: 10px; }
.deliverable-desc { color: var(--text-muted); font-size: 0.94rem; margin-bottom: 20px; }

.deliverable-items { display: flex; flex-direction: column; gap: 11px; }
.deliverable-items li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 0.93rem;
    line-height: 1.85;
}
.deliverable-items svg { width: 16px; height: 16px; color: var(--green); flex-shrink: 0; margin-top: 7px; }

.pricing-note {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    max-width: 760px;
    margin: 32px auto 0;
    padding: 16px 20px;
    background: #fff;
    border: 1px dashed var(--border);
    border-radius: 12px;
    color: var(--text-muted);
    font-size: 0.92rem;
    line-height: 1.9;
}
.pricing-note svg { width: 18px; height: 18px; color: var(--navy); flex-shrink: 0; margin-top: 6px; }

/* ==========================================================================
   صفحه رزرو مشاوره — کارت‌های قیمت، بلوک پرداخت کارت‌به‌کارت
   ========================================================================== */
.pricing-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 26px;
    max-width: 900px;
    margin: 0 auto;
    align-items: start;
}

.pricing-card {
    position: relative;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 20px;
    padding: 34px 30px;
    display: flex;
    flex-direction: column;
    height: 100%;
    transition: box-shadow 0.3s ease, transform 0.3s ease, border-color 0.3s ease;
}
.pricing-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); }

/* بسته‌ی پیشنهادی — با رنگ و ارتفاع بیشتر متمایز می‌شود، نه فقط با یک برچسب */
.pricing-card.is-highlight {
    border: 2px solid var(--navy);
    box-shadow: var(--shadow);
}

.pricing-badge {
    position: absolute;
    top: -13px;
    inset-inline-start: 30px;
    background: var(--navy);
    color: #fff;
    font-size: 0.78rem;
    font-weight: 700;
    padding: 6px 16px;
    border-radius: 999px;
}

.pricing-card h3 { font-size: 1.35rem; margin-bottom: 6px; }
.pricing-tagline { color: var(--text-muted); font-size: 0.94rem; margin-bottom: 20px; }

.pricing-amount {
    display: flex;
    align-items: baseline;
    gap: 8px;
    padding-bottom: 20px;
    margin-bottom: 20px;
    border-bottom: 1px solid var(--border);
}
.pricing-num {
    font-family: var(--font-display-fa);
    font-size: 2.4rem;
    font-weight: 700;
    color: var(--navy);
    line-height: 1;
}
.pricing-currency { color: var(--text-muted); font-size: 1rem; }

.pricing-bestfor {
    font-size: 0.92rem;
    color: var(--text);
    background: var(--bg-alt);
    border-radius: 10px;
    padding: 12px 16px;
    margin-bottom: 20px;
}

.pricing-features { display: flex; flex-direction: column; gap: 12px; margin-bottom: 26px; flex-grow: 1; }
.pricing-features li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 0.94rem;
    line-height: 1.8;
}
.pricing-features svg { width: 17px; height: 17px; color: var(--green); flex-shrink: 0; margin-top: 6px; }

.pricing-cta { margin-top: auto; }

/* ---------- بلوک پرداخت ---------- */
.payment-layout {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 26px;
    max-width: 900px;
    margin: 0 auto;
    align-items: start;
}

.payment-card {
    background: var(--wash-deep);
    color: #fff;
    border-radius: 20px;
    padding: 32px;
    box-shadow: var(--shadow-lg);
}

.payment-card-label { font-size: 0.85rem; opacity: 0.72; display: block; margin-bottom: 10px; }

.payment-card-number {
    font-size: clamp(1.35rem, 4vw, 1.8rem);
    font-weight: 700;
    letter-spacing: 0.08em;
    margin-bottom: 24px;
    word-spacing: 0.2em;
}

.payment-card-meta {
    display: flex;
    gap: 28px;
    flex-wrap: wrap;
    padding-top: 18px;
    margin-bottom: 24px;
    border-top: 1px solid rgba(255, 255, 255, 0.16);
}
.payment-card-meta span { display: block; font-size: 0.8rem; opacity: 0.7; margin-bottom: 4px; }
.payment-card-meta strong { font-size: 1rem; font-weight: 700; }

.copy-card-btn.is-copied { background: var(--green); color: #fff; border-color: var(--green); }

/* یادآوری شماره کارت داخل فرم ثبت درخواست */
.form-card-reminder {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    flex-wrap: wrap;
    background: var(--bg-alt);
    border: 1px dashed rgba(var(--navy-rgb), 0.25);
    border-radius: 14px;
    padding: 18px 20px;
    margin-bottom: 22px;
}
.form-card-reminder-label { display: block; font-size: 0.78rem; color: var(--text-muted); margin-bottom: 4px; }
.form-card-reminder-number {
    display: block;
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--navy);
    letter-spacing: 0.06em;
}
.form-card-reminder-owner { display: block; font-size: 0.82rem; color: var(--text-muted); margin-top: 4px; }
.form-card-reminder .btn { padding: 9px 18px; font-size: 0.84rem; flex-shrink: 0; }

.payment-steps {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 20px;
    padding: 32px;
}
.payment-steps h3 { font-size: 1.15rem; margin-bottom: 18px; }
.payment-steps ol { padding-inline-start: 20px; list-style: decimal; }
.payment-steps li { margin-bottom: 14px; line-height: 2; color: var(--text-muted); }
.payment-steps li::marker { color: var(--navy); font-weight: 700; }

/* ---------- صفحه پروژه‌ها ---------- */
.projects-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 22px;
}

.project-card {
    display: block;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 26px;
    transition: box-shadow 0.25s ease, transform 0.25s ease, border-color 0.25s ease;
}
.project-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow);
    border-color: rgba(var(--cyan-rgb), 0.4);
}

.project-card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 10px;
}

.project-card h3 { font-size: 1.05rem; word-break: break-word; }

.project-stars {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 0.82rem;
    color: #B45309;
    flex-shrink: 0;
}
.project-stars svg { width: 14px; height: 14px; }

.project-card p {
    color: var(--text-muted);
    font-size: 0.92rem;
    margin-bottom: 14px;
    min-height: 42px;
}

.project-lang {
    display: inline-block;
    font-size: 0.78rem;
    font-weight: 700;
    color: var(--navy);
    background: rgba(var(--navy-rgb), 0.08);
    padding: 4px 12px;
    border-radius: 999px;
}

.rss-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 14px;
    font-size: 0.85rem;
    font-weight: 700;
    color: #EA580C;
    background: rgba(234, 88, 12, 0.1);
    padding: 6px 14px;
    border-radius: 999px;
}
.rss-link svg { width: 15px; height: 15px; }
.rss-link:hover { background: rgba(234, 88, 12, 0.18); }

/* ---------- بدنه مقاله — ساختار معنایی واقعی (H2/H3/لیست)، نه فقط دیوار متن ---------- */
.article-body { font-size: 1.08rem; line-height: 2.1; }
.article-body p { margin-bottom: 20px; }
.article-body h2 { font-size: 1.5rem; margin: 40px 0 16px; }
.article-body h3 { font-size: 1.2rem; margin: 30px 0 12px; }
.article-body ul { margin: 0 0 20px; padding-inline-start: 24px; list-style: disc; }
.article-body li { margin-bottom: 8px; }

/* ---------- تصویر کاور و نمودار آماری مقالات اتومیشن ---------- */
.article-cover-image {
    width: 100%;
    border-radius: var(--radius);
    margin-bottom: 32px;
    box-shadow: var(--shadow);
}

.article-chart {
    margin: 36px 0;
    text-align: center;
}

.article-chart img {
    width: 100%;
    border: 1px solid var(--border);
    border-radius: var(--radius);
}

.article-chart figcaption {
    margin-top: 10px;
    font-size: 0.85rem;
    color: var(--text-muted);
}

.empty-state {
    text-align: center;
    padding: 48px 20px;
    color: var(--text-muted);
    border: 1.5px dashed var(--border);
    border-radius: var(--radius);
}

.synapse-soon {
    background: var(--navy);
    color: #fff;
    border-radius: var(--radius);
    padding: 44px;
    position: relative;
    overflow: hidden;
}

.synapse-soon::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 90% 0%, rgba(var(--amber-rgb), 0.25), transparent 55%);
}

.synapse-soon-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: var(--gold);
    color: var(--navy);
    font-weight: 700;
    font-size: 0.82rem;
    padding: 6px 14px;
    border-radius: 999px;
    margin-bottom: 18px;
    position: relative;
}

.synapse-soon h3 {
    color: #fff;
    font-size: 1.5rem;
    margin-bottom: 14px;
    position: relative;
}

.synapse-soon p {
    color: rgba(255, 255, 255, 0.8);
    max-width: 680px;
    margin-bottom: 28px;
    position: relative;
}

.synapse-soon-compact {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 56px 30px;
}

.synapse-soon-compact p { margin-inline: auto; }
.synapse-soon-compact .btn { position: relative; }

/* ---------- فرم لیست انتظار کنسول سیگنال (مکمل CTA ورود، نه جایگزین آن) ---------- */
.synapse-waitlist {
    position: relative;
    margin-top: 32px;
    padding-top: 28px;
    border-top: 1px solid rgba(255, 255, 255, 0.18);
    width: 100%;
    max-width: 520px;
}

.synapse-waitlist h4 {
    color: #fff;
    font-size: 1.05rem;
    margin-bottom: 6px;
}

.synapse-waitlist p {
    color: rgba(255, 255, 255, 0.75);
    font-size: 0.9rem;
    margin-bottom: 16px;
}

.waitlist-form {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
}

.waitlist-form input {
    flex: 1 1 200px;
    padding: 11px 14px;
    border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, 0.25);
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
    font-family: inherit;
    font-size: 0.9rem;
}

.waitlist-form input::placeholder { color: rgba(255, 255, 255, 0.55); }
.waitlist-form input:focus { outline: 2px solid var(--cyan); outline-offset: 1px; }

/* ==========================================================================
   صفحه درباره
   ========================================================================== */
.about-hero {
    display: grid;
    grid-template-columns: 0.85fr 1.15fr;
    gap: 52px;
    align-items: center;
    max-width: 1100px;
    margin: 0 auto 8px;
}

/* ستون متن کنار عکس — نقل‌قول + برچسب‌های تخصص */
.about-expertise { margin-top: 28px; }
.about-expertise-label {
    display: block;
    font-size: 0.82rem;
    color: var(--text-muted);
    margin-bottom: 12px;
}

.about-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
}
.about-tags li {
    font-size: 0.86rem;
    font-weight: 600;
    color: var(--navy);
    background: rgba(var(--navy-rgb), 0.07);
    border: 1px solid rgba(var(--navy-rgb), 0.14);
    padding: 7px 15px;
    border-radius: 999px;
    transition: background 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}
.about-tags li:hover {
    background: rgba(var(--cyan-rgb), 0.12);
    border-color: rgba(var(--cyan-rgb), 0.45);
    transform: translateY(-2px);
}

.about-portrait-circle {
    justify-self: center;
    width: clamp(220px, 24vw, 300px);
}

.about-portrait-circle img {
    width: 100%;
    /* height:auto لازم است چون تگ img صفت‌های width/height دارد (برای جلوگیری از پرش چیدمان).
       بدون این، ارتفاعِ اعلام‌شده در HTML با aspect-ratio می‌جنگد و دایره بیضی/کشیده می‌شود. */
    height: auto;
    aspect-ratio: 1;
    border-radius: 50%;
    object-fit: cover;
    box-shadow: var(--shadow);
    border: 6px solid #fff;
    filter: grayscale(1);
    transition: filter 0.5s ease, transform 0.5s ease;
}

.about-portrait-circle:hover img {
    filter: grayscale(0);
    transform: scale(1.03);
}

.about-quote {
    font-size: clamp(1.15rem, 2.4vw, 1.5rem);
    font-weight: 600;
    color: var(--navy);
    line-height: 1.9;
    padding-inline-start: 22px;
    border-inline-start: 4px solid var(--cyan);
}

.about-badges {
    display: grid;
    /* حداکثر ۳ ستون — با قاب عریض، auto-fit شش‌تایی می‌شد و هر نشان آن‌قدر باریک که
       متنش سه‌خطی و ناخوانا می‌شد. سه ستون، هم جادار است هم منظم. */
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    max-width: 1100px;
    margin-inline: auto;
    gap: 22px;
    margin-bottom: 56px;
}

.about-bio-text {
    max-width: 720px;
    margin: 0 auto;
}

.about-bio-text p {
    margin-bottom: 22px;
    font-size: 1.05rem;
    line-height: 2;
    color: var(--text);
}

.placeholder-box {
    border: 1.5px dashed var(--border);
    border-radius: var(--radius);
    padding: 40px;
    text-align: center;
    color: var(--text-muted);
    margin-top: 20px;
    max-width: 720px;
    margin-inline: auto;
}

.about-closing {
    background: var(--bg-alt);
    border-radius: var(--radius);
    padding: 40px;
    text-align: center;
    margin-top: 20px;
    max-width: 720px;
    margin-inline: auto;
}

.about-closing p {
    font-size: 1.05rem;
    line-height: 2;
    color: var(--text);
    margin-bottom: 22px;
}

/* ==========================================================================
   درباره من به‌اختصار (صفحه اصلی) — با افکت اورورا و درخشش دنبال‌کننده موس
   ========================================================================== */
.about-brief {
    padding: 90px 0;
    background: var(--bg-alt);
}

.about-brief-inner {
    position: relative;
    z-index: 1;
    max-width: 720px;
    margin: 0 auto;
    text-align: center;
}

.about-brief-quote {
    font-size: clamp(1.2rem, 2.6vw, 1.6rem);
    font-weight: 700;
    color: var(--navy);
    line-height: 1.9;
    margin: 16px 0 18px;
}

.about-brief-text {
    color: var(--text-muted);
    font-size: 1.02rem;
    line-height: 2;
    margin-bottom: 28px;
}

/* ==========================================================================
   بخش اعتمادسازی (نشان‌های اعتبار — استفاده‌شده در صفحه درباره)
   ========================================================================== */
.trust-item {
    display: flex;
    align-items: center;
    gap: 14px;
    text-align: start;
}

.trust-icon {
    width: 50px;
    height: 50px;
    flex-shrink: 0;
    border-radius: 50%;
    background: rgba(var(--navy-rgb), 0.08);
    color: var(--navy);
    display: flex;
    align-items: center;
    justify-content: center;
}

.trust-icon svg { width: 24px; height: 24px; }

.trust-item h4 { font-size: 0.96rem; margin-bottom: 3px; }
.trust-item p { color: var(--text-muted); font-size: 0.85rem; }

/* ==========================================================================
   بخش «همراه با مشتریان در مسیر هوشمندسازی»
   ========================================================================== */
/* چیدمان «مسیر» متصل — به‌جای سه کارت یکسان هم‌ردیف (کلیشه رایج قالب‌های آماده)،
   مراحل با یک خط راهنمای افقی به هم وصل می‌شوند و شماره هر گام یک نشان دایره‌ای
   بزرگ است، نه یک برچسب کوچک؛ ردیف میانی هم کمی جابه‌جا شده تا تقارن کامل شکسته شود. */
/* ==========================================================================
   کارت‌های سه‌گانه‌ی «مسیر هومات»
   --------------------------------------------------------------------------
   قبلاً کارت‌ها بدون قاب و با آفستِ عمودیِ کارت دوم چیده شده بودند؛ نتیجه
   ناهم‌ترازی و به‌هم‌ریختگی بود. حالا هر سه در یک راستا، هم‌عرض و هم‌ارتفاع‌اند
   (grid-auto-rows: 1fr + کارت flex ستونی) و کل کارت یک لینک کلیک‌پذیر است.
   ========================================================================== */
.segment-grid {
    position: relative;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    grid-auto-rows: 1fr;      /* هر سه کارت دقیقاً هم‌ارتفاع */
    align-items: stretch;
    gap: 24px;
}

/* خط اتصال میان شماره‌ها — نشان می‌دهد سه گام به هم پیوسته‌اند */
.segment-grid::before {
    content: '';
    position: absolute;
    top: 62px;
    inset-inline-start: 12%;
    inset-inline-end: 12%;
    height: 2px;
    background: linear-gradient(90deg, var(--navy), var(--cyan) 50%, var(--green));
    opacity: 0.18;
    z-index: 0;
}

.segment-card {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    height: 100%;
    padding: 30px 26px 26px;
    text-align: start;
    color: inherit;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 18px;
    box-shadow: 0 12px 30px -22px rgba(15, 37, 87, 0.4);
    overflow: hidden;
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1),
                box-shadow 0.35s ease,
                border-color 0.35s ease;
}

/* هاور: بالا آمدن کارت + درخشش رنگیِ همان گام از گوشه */
.segment-card::before {
    content: '';
    position: absolute;
    inset-inline-end: -40%;
    top: -60%;
    width: 90%;
    height: 160%;
    background: radial-gradient(circle at center, color-mix(in srgb, var(--seg-color, var(--cyan)) 26%, transparent), transparent 68%);
    opacity: 0;
    transition: opacity 0.4s ease;
    pointer-events: none;
}

.segment-card:hover,
.segment-card:focus-visible {
    transform: translateY(-6px);
    border-color: color-mix(in srgb, var(--seg-color, var(--cyan)) 45%, var(--border));
    box-shadow: 0 26px 50px -26px color-mix(in srgb, var(--seg-color, var(--cyan)) 55%, transparent);
}
.segment-card:hover::before,
.segment-card:focus-visible::before { opacity: 1; }

.segment-card .seg-num {
    font-family: var(--font-display-fa);
    direction: ltr;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 60px;
    height: 60px;
    font-size: 1.35rem;
    font-weight: 700;
    /* پیش‌فرض متن تیره (روی رنگ‌های روشن‌تر مثل سایان/سبز/کهربایی کنتراست WCAG کافی دارد؛
       فقط روی زمینه سرمه‌ای که پایین override می‌شود، سفید لازم است) */
    color: var(--text);
    background: var(--seg-color, var(--cyan));
    border-radius: 50%;
    margin-bottom: 20px;
    box-shadow: 0 10px 24px color-mix(in srgb, var(--seg-color, var(--cyan)) 45%, transparent);
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}
.segment-card:hover .seg-num { transform: scale(1.06) rotate(-4deg); }

.segment-card h3 { font-size: 1.22rem; line-height: 1.6; margin-bottom: 10px; }
/* margin-top:auto روی <p> نه، بلکه لینک را به کف کارت می‌چسباند تا در هر سه کارت
   با هر طول متنی، دکمه‌ها دقیقاً در یک خط بیفتند. */
.segment-card p { color: var(--text-muted); font-size: 0.95rem; line-height: 1.9; margin-bottom: 20px; }

.segment-card .segment-link {
    margin-top: auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--navy);
    font-weight: 700;
    font-size: 0.9rem;
    transition: gap 0.3s ease;
}
.segment-card:hover .segment-link { gap: 12px; text-decoration: underline; }

.segment-card:nth-child(4n+1) { --seg-color: var(--navy); }
.segment-card:nth-child(4n+1) .seg-num { color: #fff; }
.segment-card:nth-child(4n+2) { --seg-color: var(--cyan); }
.segment-card:nth-child(4n+3) { --seg-color: var(--green); }
.segment-card:nth-child(4n+4) { --seg-color: var(--amber); }

@media (max-width: 720px) {
    .segment-grid::before { display: none; }
    .segment-card { padding: 24px 20px; }
}

/* محل فعالیت در صفحه تماس */
.contact-location {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    max-width: 760px;
    margin: 36px auto 0;
    padding: 24px 26px;
    background: var(--bg-alt);
    border: 1px solid var(--border);
    border-radius: 16px;
}
.contact-location-icon {
    width: 46px;
    height: 46px;
    border-radius: 12px;
    background: rgba(var(--navy-rgb), 0.09);
    color: var(--navy);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.contact-location-icon svg { width: 22px; height: 22px; }
.contact-location strong { display: block; font-size: 1.05rem; color: var(--navy); margin-bottom: 6px; }
.contact-location p { color: var(--text-muted); font-size: 0.94rem; line-height: 1.95; }

/* ==========================================================================
   بخش بازتاب لینکدین
   ========================================================================== */
.linkedin-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 22px;
}

.linkedin-embed-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    overflow: hidden;
    box-shadow: var(--shadow);
}

.linkedin-embed-card {
    position: relative;
}

.linkedin-embed-card iframe {
    display: block;
    border: none;
}

/* iframe لینکدین کلیک را می‌بلعد؛ این لایه‌ی شفاف روی آن، کل کارت را
   به لینکِ باز کردن پست در لینکدین تبدیل می‌کند. */
.linkedin-open {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding: 18px;
    background: linear-gradient(to top, rgba(15, 37, 87, 0.78), rgba(15, 37, 87, 0.12) 42%, transparent 70%);
    opacity: 0;
    transition: opacity 0.3s ease;
}
.linkedin-open span {
    background: #fff;
    color: var(--navy);
    font-weight: 700;
    font-size: 0.9rem;
    padding: 10px 20px;
    border-radius: 999px;
    box-shadow: 0 10px 26px -12px rgba(0, 0, 0, 0.5);
    transform: translateY(8px);
    transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}
.linkedin-embed-card:hover .linkedin-open,
.linkedin-open:focus-visible { opacity: 1; }
.linkedin-embed-card:hover .linkedin-open span,
.linkedin-open:focus-visible span { transform: translateY(0); }

/* روی لمسی هاور وجود ندارد — لایه همیشه (کم‌رنگ) دیده می‌شود */
@media (hover: none) {
    .linkedin-open { opacity: 1; background: linear-gradient(to top, rgba(15, 37, 87, 0.72), transparent 55%); }
    .linkedin-open span { transform: none; }
}

/* ==========================================================================
   بخش کانال یوتیوب
   ========================================================================== */
.youtube-card {
    display: flex;
    align-items: center;
    gap: 44px;
    flex-wrap: wrap;
    background: linear-gradient(120deg, var(--navy), var(--navy-soft));
    color: #fff;
    border-radius: var(--radius);
    padding: 48px;
    position: relative;
    overflow: hidden;
}

.youtube-card::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at 85% 20%, rgba(var(--cyan-rgb), 0.22), transparent 55%);
}

/* دکمه پخش بزرگ با حلقه‌ی پالس متحرک */
.youtube-play {
    position: relative;
    flex-shrink: 0;
    width: 108px;
    height: 108px;
    border-radius: 50%;
    background: #fff;
    color: var(--navy);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.3s ease;
}

.youtube-play:hover { transform: scale(1.06); }
.youtube-play svg { width: 38px; height: 38px; margin-inline-start: 4px; }

.youtube-play-ring {
    position: absolute;
    inset: -14px;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, 0.5);
    animation: youtubePulse 2.4s ease-out infinite;
}

@keyframes youtubePulse {
    0%   { transform: scale(0.9); opacity: 1; }
    100% { transform: scale(1.35); opacity: 0; }
}

.youtube-body { flex: 1; min-width: 260px; position: relative; }
.youtube-body h3 { color: #fff; font-size: 1.35rem; margin-bottom: 6px; }
.youtube-body > p { color: rgba(255, 255, 255, 0.78); margin-bottom: 22px; }

.youtube-topics {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 16px;
    margin-bottom: 26px;
}

.youtube-topic {
    display: flex;
    align-items: center;
    gap: 10px;
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 10px;
    padding: 12px 14px;
    font-size: 0.88rem;
    color: rgba(255, 255, 255, 0.9);
}

.youtube-topic svg { width: 18px; height: 18px; color: var(--cyan); flex-shrink: 0; }
.youtube-card .btn { position: relative; }

/* ==========================================================================
   نوبار — بخش ورود/ثبت‌نام / کاربر واردشده
   ========================================================================== */
.nav-auth {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-inline-start: 4px;
    padding-inline-start: 10px;
    border-inline-start: 1px solid var(--border);
}

.nav-auth .btn { padding: 8px 14px; font-size: 0.85rem; }

/* ---------- سوییچ زبان (فا/EN) ---------- */
.btn-lang {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    padding: 7px 12px !important;
    border-radius: 999px;
    border: 1.5px solid var(--navy);
    color: var(--navy);
    font-weight: 700;
    font-size: 0.82rem !important;
    transition: background 0.2s ease, color 0.2s ease, transform 0.2s ease;
}

/* روی ویدیوی تیره‌ی هیرو، کادر و متن سفید می‌شوند.
   قبلاً همیشه سرمه‌ای بود و روی تصویر تیره تقریباً محو می‌شد.
   به‌محض اسکرول که نوبار روشن می‌شود، دوباره سرمه‌ای می‌گردد —
   وگرنه سفیدِ روی سفید نامرئی می‌شد. */
.navbar-over-hero .btn-lang {
    border-color: #fff;
    color: #fff;
}
.navbar-over-hero .btn-lang:hover {
    background: #fff;
    color: var(--navy);
}
.navbar-over-hero.scrolled .btn-lang {
    border-color: var(--navy);
    color: var(--navy);
}
.navbar-over-hero.scrolled .btn-lang:hover {
    background: var(--navy);
    color: #fff;
}

.btn-lang:hover {
    background: var(--navy);
    color: #fff;
    transform: translateY(-1px);
}

.nav-user-greeting {
    font-size: 0.9rem;
    color: var(--text);
    font-weight: 600;
}

@media (max-width: 760px) {
    .nav-auth {
        border-inline-start: none;
        padding-inline-start: 0;
        margin: 14px 0 0;
        padding-top: 14px;
        border-top: 1px solid var(--border);
        flex-wrap: wrap;
    }
}

/* ==========================================================================
   صفحات احراز هویت (ورود/ثبت‌نام/حساب من)
   ========================================================================== */
.auth-section {
    padding: 64px 0 88px;
    background: var(--bg-alt);
    background-image: radial-gradient(circle at 50% 0%, rgba(var(--cyan-rgb), 0.08), transparent 55%);
}

/* نشان دایره‌ای آیکون بالای فرم‌های ورود/ثبت‌نام — الهام‌گرفته از حس فرم‌های تأیید مدرن */
.auth-icon-badge {
    width: 64px;
    height: 64px;
    margin: 0 auto 20px;
    border-radius: 18px;
    background: rgba(var(--navy-rgb), 0.08);
    border: 1.5px solid rgba(var(--cyan-rgb), 0.35);
    color: var(--navy);
    display: flex;
    align-items: center;
    justify-content: center;
}
.auth-icon-badge svg { width: 30px; height: 30px; }

.form-card .form-links {
    text-align: center;
    margin-top: 18px;
    font-size: 0.92rem;
    color: var(--text-muted);
}

.form-card .form-links a { color: var(--cyan-text); font-weight: 600; }

.dashboard-card {
    max-width: 640px;
    margin: 0 auto;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    padding: 44px;
    text-align: center;
}

.dashboard-card .avatar-badge {
    width: 76px;
    height: 76px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--navy), var(--cyan));
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.7rem;
    font-weight: 700;
    font-family: var(--font-display-fa);
    box-shadow: 0 10px 26px rgba(var(--navy-rgb), 0.28);
    margin: 0 auto 20px;
}

.dashboard-info {
    text-align: start;
    background: var(--bg-alt);
    border-radius: 12px;
    padding: 20px 24px;
    margin-top: 24px;
}

.dashboard-info div { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--border); font-size: 0.94rem; }
.dashboard-info div:last-child { border-bottom: none; }
.dashboard-info-label { display: inline-flex; align-items: center; gap: 8px; color: var(--text-muted); }
.dashboard-info-label svg { width: 17px; height: 17px; color: var(--cyan); flex-shrink: 0; }

/* ==========================================================================
   پنل مدیریت
   ========================================================================== */
.admin-body {
    background: var(--bg-alt);
    background-image: radial-gradient(circle at 100% 0%, rgba(var(--cyan-rgb), 0.05), transparent 45%);
    min-height: 100vh;
}

.admin-wrap { padding: 40px 0 70px; }

/* نوار بالای پنل — عنوان صفحه جاری + بازگشت به سایت اصلی */
.admin-topbar-new {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 12px;
    padding: 18px 24px;
    background: #fff;
    border-bottom: 1px solid var(--border);
}

.admin-topbar-new h1 {
    font-size: 1.15rem;
    margin: 0;
}

.admin-topbar-new .admin-topbar-actions {
    display: flex;
    align-items: center;
    gap: 14px;
}

.admin-topbar-new .admin-site-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.85rem;
    color: var(--text-muted);
    padding: 8px 14px;
    border-radius: 8px;
    border: 1px solid var(--border);
    transition: color 0.2s ease, border-color 0.2s ease;
}
.admin-topbar-new .admin-site-link:hover { color: var(--navy); border-color: var(--cyan); }
.admin-topbar-new .admin-site-link svg { width: 16px; height: 16px; }

.stat-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 18px;
    margin-bottom: 40px;
}

.stat-card {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 22px 24px;
    display: flex;
    align-items: center;
    gap: 16px;
    transition: box-shadow 0.25s ease, transform 0.25s ease;
}

.stat-card:hover { box-shadow: var(--shadow); transform: translateY(-2px); }

.stat-card-icon {
    width: 48px;
    height: 48px;
    flex-shrink: 0;
    border-radius: 13px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(var(--navy-rgb), 0.1);
    color: var(--navy);
}
.stat-card-icon svg { width: 24px; height: 24px; }

.stat-grid .stat-card:nth-child(4n+2) .stat-card-icon { background: rgba(var(--cyan-rgb), 0.14); color: #0891A8; }
.stat-grid .stat-card:nth-child(4n+3) .stat-card-icon { background: rgba(var(--green-rgb), 0.14); color: #047857; }
.stat-grid .stat-card:nth-child(4n+4) .stat-card-icon { background: rgba(var(--amber-rgb), 0.16); color: #B45309; }

.stat-card .stat-num {
    font-size: 1.9rem;
    font-weight: 700;
    color: var(--navy);
    font-family: var(--font-en);
    direction: ltr;
    line-height: 1.2;
}

.stat-card .stat-label { color: var(--text-muted); font-size: 0.88rem; margin-top: 2px; }

.admin-panel {
    background: #fff;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    padding: 28px;
    margin-bottom: 32px;
}

.admin-panel-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 14px;
    margin-bottom: 20px;
}

.admin-panel-head h2 { font-size: 1.2rem; }

.table-scroll { overflow-x: auto; }

.admin-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.92rem;
    min-width: 560px;
}

.admin-table th, .admin-table td {
    padding: 12px 14px;
    text-align: start;
    border-bottom: 1px solid var(--border);
}

.admin-table th {
    background: var(--bg-alt);
    color: var(--navy);
    font-weight: 700;
    white-space: nowrap;
}

.admin-table tr:hover td { background: rgba(var(--cyan-rgb), 0.05); }

.admin-empty { text-align: center; padding: 30px; color: var(--text-muted); }

/* ==========================================================================
   لایه‌ی مشترک ادمین با سایدبار (سمت راست، چون RTL)
   ========================================================================== */
.admin-layout {
    display: flex;
    flex-direction: row-reverse;
    align-items: stretch;
    min-height: 100vh;
}

.admin-sidebar {
    width: 232px;
    flex-shrink: 0;
    background: var(--navy-deep);
    color: #fff;
    padding: 22px 0;
}

.admin-sidebar-brand {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 20px 20px;
    font-weight: 700;
    font-size: 0.95rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}

.admin-sidebar-brand img { width: 32px; height: 32px; object-fit: contain; }

.admin-sidebar-nav {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 10px 12px 0;
}

.admin-sidebar-nav a {
    display: flex;
    align-items: center;
    gap: 12px;
    color: rgba(255, 255, 255, 0.72);
    padding: 11px 14px;
    border-radius: 10px;
    font-size: 0.92rem;
    transition: background 0.2s ease, color 0.2s ease;
}

.admin-sidebar-nav a svg { width: 19px; height: 19px; flex-shrink: 0; opacity: 0.85; }

.admin-sidebar-nav a:hover { background: rgba(255, 255, 255, 0.07); color: #fff; }

.admin-sidebar-nav a.active {
    background: var(--cyan);
    color: var(--navy-deep);
    font-weight: 700;
}
.admin-sidebar-nav a.active svg { opacity: 1; }

.admin-sidebar-logout {
    display: flex;
    align-items: center;
    gap: 12px;
    color: rgba(255, 255, 255, 0.72);
    padding: 11px 14px;
    margin: 14px 12px 0;
    border-radius: 10px;
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    padding-top: 20px;
    transition: background 0.2s ease, color 0.2s ease;
}
.admin-sidebar-logout svg { width: 19px; height: 19px; flex-shrink: 0; }
.admin-sidebar-logout:hover { background: rgba(211, 51, 51, 0.15); color: #fca5a5; }

.admin-main {
    flex: 1;
    min-width: 0;
    background: var(--bg-alt);
}

.admin-main .container { padding: 36px 24px 70px; }

@media (max-width: 900px) {
    .admin-layout { flex-direction: column; min-height: 0; }
    .admin-sidebar { width: 100%; padding: 0; }
    .admin-sidebar-brand { padding: 14px 16px; border-bottom: none; }
    .admin-sidebar-nav {
        flex-direction: row;
        overflow-x: auto;
        padding: 0 10px 10px;
    }
    .admin-sidebar-nav a {
        white-space: nowrap;
        padding: 10px 14px;
    }
    .admin-sidebar-logout { margin-top: 0; border-top: none; }
}

/* ---------- کارت‌های وضعیت/عملیات مشترک صفحات جدید ادمین (قالب‌ها، مشترکین، کمپین‌ها) ---------- */
.admin-badge {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 999px;
    font-size: 0.78rem;
    font-weight: 700;
}
.admin-badge.is-active { background: rgba(var(--green-rgb), 0.14); color: #047857; }
.admin-badge.is-inactive { background: rgba(211, 51, 51, 0.1); color: #c22; }

.admin-login-wrap {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(160deg, var(--navy-deep), var(--navy) 65%, var(--navy-soft));
    padding: 20px;
}

.admin-login-wrap .auth-icon-badge {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(var(--cyan-rgb), 0.5);
    color: var(--cyan);
}

/* ==========================================================================
   فوتر
   ========================================================================== */
.site-footer {
    background: var(--navy);
    color: rgba(255, 255, 255, 0.75);
    padding: 56px 0 28px;
    margin-top: 40px;
}

/* ---------- نوار تماس فوری — مشاوره و استعلام قیمت سریع، بالای فوتر ---------- */
.footer-phone-bar {
    display: flex;
    align-items: center;
    gap: 16px;
    background: linear-gradient(90deg, var(--cyan), #0891A8);
    color: var(--navy);
    border-radius: var(--radius);
    padding: 18px 26px;
    margin-bottom: 24px;
    transition: transform 0.25s ease, box-shadow 0.25s ease;
    box-shadow: 0 10px 26px rgba(var(--cyan-rgb), 0.28);
}

.footer-phone-bar:hover {
    transform: translateY(-2px);
    box-shadow: 0 16px 36px rgba(var(--cyan-rgb), 0.4);
}

.footer-phone-icon {
    flex-shrink: 0;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.35);
    display: flex;
    align-items: center;
    justify-content: center;
    animation: footerPhoneRing 2.4s ease-in-out infinite;
}

.footer-phone-icon svg { width: 22px; height: 22px; }

@keyframes footerPhoneRing {
    0%, 100% { transform: rotate(0deg); }
    5%       { transform: rotate(-14deg); }
    10%      { transform: rotate(10deg); }
    15%      { transform: rotate(-8deg); }
    20%      { transform: rotate(0deg); }
}

@media (prefers-reduced-motion: reduce) {
    .footer-phone-icon { animation: none; }
}

.footer-phone-text {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1 1 auto;
}

.footer-phone-text strong { font-size: 1rem; }
.footer-phone-text .en { font-size: 1.15rem; font-weight: 700; }

.footer-phone-cta {
    flex-shrink: 0;
    background: var(--navy);
    color: #fff;
    padding: 10px 20px;
    border-radius: 999px;
    font-weight: 700;
    font-size: 0.88rem;
    white-space: nowrap;
}

@media (max-width: 480px) {
    .footer-phone-bar { flex-wrap: wrap; padding: 16px 18px; }
    .footer-phone-cta { margin-inline-start: 60px; }
}

/* ---------- عضویت در خبرنامه ---------- */
.footer-newsletter {
    background: rgba(255, 255, 255, 0.06);
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: var(--radius);
    padding: 30px 32px;
    margin-bottom: 40px;
}

.footer-newsletter .footer-heading {
    color: #fff;
    font-size: 1.1rem;
    font-weight: 700;
    margin-bottom: 6px;
}

.footer-newsletter p {
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.92rem;
    margin-bottom: 18px;
    max-width: 520px;
}

.newsletter-form {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.newsletter-input {
    flex: 1 1 180px;
    padding: 12px 16px;
    border-radius: 10px;
    border: 1.5px solid rgba(255, 255, 255, 0.2);
    background: rgba(255, 255, 255, 0.08);
    color: #fff;
    font-family: var(--font-fa);
    font-size: 0.92rem;
    transition: border-color 0.2s ease, background 0.2s ease;
}

.newsletter-input::placeholder { color: rgba(255, 255, 255, 0.5); }

.newsletter-input:focus {
    outline: none;
    border-color: var(--cyan);
    background: rgba(255, 255, 255, 0.14);
}

.newsletter-form .btn { flex-shrink: 0; }

@media (max-width: 480px) {
    .newsletter-form { flex-direction: column; }
    .newsletter-form .btn { width: 100%; }
}

/* ==========================================================================
   فوتر مینیمالِ مرکزچین — جایگزین گرید سه‌ستونی قبلی
   همه‌چیز روی یک محور عمودی می‌نشیند: لوگو، یک جمله، یک ردیف لینک،
   یک ردیف آیکون، و خط کپی‌رایت.
   ========================================================================== */
.footer-minimal {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 22px;
}

.footer-mark img {
    height: 40px;
    width: auto;
    object-fit: contain;
    opacity: 0.95;
    transition: opacity 0.2s ease;
}
.footer-mark:hover img { opacity: 1; }

.footer-tagline {
    max-width: 56ch;
    font-size: 0.95rem;
    line-height: 2;
    color: rgba(255, 255, 255, 0.7);
    margin: 0;
}

/* یک ردیف لینک، وسط‌چین، با شکست طبیعی روی نمایشگر کوچک */
.footer-links {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 10px 26px;
}

.footer-links a {
    position: relative;
    font-size: 0.92rem;
    color: rgba(255, 255, 255, 0.78);
    transition: color 0.2s ease;
}
.footer-links a::after {
    content: '';
    position: absolute;
    inset-inline: 0;
    bottom: -5px;
    height: 1px;
    background: var(--cyan);
    transform: scaleX(0);
    transform-origin: center;
    transition: transform 0.25s ease;
}
.footer-links a:hover { color: #fff; }
.footer-links a:hover::after { transform: scaleX(1); }

.footer-social {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 10px;
}

/* آیکون‌های فوتر همان استایل .social-icons را می‌گیرند */
.footer-social a {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.08);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s ease, transform 0.2s ease;
}
.footer-social a:hover { background: var(--cyan); transform: translateY(-3px); }
.footer-social svg { width: 18px; height: 18px; color: #fff; }

.footer-minimal .footer-bottom { width: 100%; margin-top: 6px; }

@media (max-width: 640px) {
    .footer-links { gap: 10px 18px; }
    .footer-links a { font-size: 0.88rem; }
}

.social-icons {
    display: flex;
    gap: 10px;
    margin-top: 16px;
}

.social-icons a {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.08);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background 0.2s ease, transform 0.2s ease;
}

.social-icons a:hover { background: var(--cyan); transform: translateY(-3px); }
.social-icons svg { width: 18px; height: 18px; color: #fff; }

/* نسخه‌ی روشن آیکون‌های اجتماعی — برای استفاده روی پس‌زمینه‌های روشن (مثل بخش پایانی صفحه درباره) */
.about-closing-social {
    justify-content: center;
    margin-top: 24px;
}
.about-closing-social a { background: rgba(var(--navy-rgb), 0.08); }
.about-closing-social a:hover { background: var(--cyan); }
.about-closing-social svg { color: var(--navy); }
.about-closing-social a:hover svg { color: #fff; }

/* نوار پایانی فوتر — چیدمان مرکزی و سبک، طبق مرجع طراحی */
.footer-bottom {
    border-top: 1px solid rgba(255, 255, 255, 0.12);
    padding-top: 24px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    text-align: center;
    font-size: 0.88rem;
    color: rgba(255, 255, 255, 0.75);
}

.footer-location {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 0.85rem;
    color: rgba(255, 255, 255, 0.62);
}
.footer-location svg { width: 15px; height: 15px; color: var(--cyan); flex-shrink: 0; }

/* ==========================================================================
   دکمه شناور واتساپ
   ========================================================================== */



/* ---------- دکمه بازگشت به بالا ---------- */
.back-to-top {
    position: fixed;
    right: 22px;
    bottom: 22px;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--navy);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 10px 24px rgba(var(--navy-rgb), 0.35);
    z-index: 200;
    opacity: 0;
    transform: translateY(12px);
    pointer-events: none;
    transition: opacity 0.25s ease, transform 0.25s ease, background 0.2s ease;
}

.back-to-top.visible {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

.back-to-top:hover { background: var(--cyan); color: var(--navy); }
.back-to-top svg { width: 20px; height: 20px; }

/* ==========================================================================
   ویجت شناور چت‌بات — دکمه پایین-چپ، بالاتر از دکمه واتساپ (هم‌ستون، بدون تداخل)
   ========================================================================== */

.chat-widget-panel {
    position: fixed;
    /* ریل تازه ارتفاع کمتری دارد (۲ دکمه‌ی ۵۲ + پدینگ = ۱۱۸)، پس پنل
       پایین‌تر می‌آید؛ left ثابت هم به inset-inline تبدیل شد تا در نسخه
       انگلیسی (LTR) همان‌جا بماند و روی محتوا نیفتد. */
    inset-inline-start: 20px;
    bottom: 132px;
    width: min(360px, calc(100vw - 44px));
    height: min(480px, calc(100vh - 200px));
    background: #fff;
    border-radius: 18px;
    box-shadow: var(--shadow-lg);
    border: 1px solid var(--border);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    z-index: 210;
    opacity: 0;
    transform: translateY(16px);
    pointer-events: none;
    transition: opacity 0.22s ease, transform 0.22s ease;
}
.chat-widget-panel.open {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

.chat-widget-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 16px;
    background: var(--navy);
    color: #fff;
    font-weight: 700;
}
.chat-widget-close {
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 4px;
}
.chat-widget-close svg { width: 18px; height: 18px; }

.chat-widget-messages {
    flex: 1;
    overflow-y: auto;
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 10px;
    background: var(--bg-alt);
}

.chat-bubble {
    max-width: 85%;
    padding: 10px 14px;
    border-radius: 14px;
    font-size: 0.92rem;
    line-height: 1.8;
    white-space: pre-wrap;
}
.chat-bubble-user {
    align-self: flex-end;
    background: var(--navy);
    color: #fff;
    border-bottom-left-radius: 4px;
}
html[dir="rtl"] .chat-bubble-user { border-bottom-left-radius: 14px; border-bottom-right-radius: 4px; }

.chat-bubble-bot {
    align-self: flex-start;
    background: #fff;
    border: 1px solid var(--border);
    color: var(--text);
    border-bottom-right-radius: 4px;
}
html[dir="rtl"] .chat-bubble-bot { border-bottom-right-radius: 14px; border-bottom-left-radius: 4px; }
.chat-bubble-pending { color: var(--text-muted); font-style: italic; }

.chat-widget-lead {
    border-top: 1px solid var(--border);
    background: var(--bg-alt);
}
.chat-widget-lead-toggle {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    font-size: 0.82rem;
    color: var(--navy);
    font-weight: 700;
}
.chat-widget-lead-toggle svg { width: 15px; height: 15px; }
.chat-widget-lead-form {
    display: none;
    gap: 8px;
    padding: 0 16px 12px;
}
.chat-widget-lead.open .chat-widget-lead-form { display: flex; }
.chat-widget-lead-email {
    flex: 1;
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 8px 12px;
    font-size: 0.85rem;
    font-family: inherit;
}
.chat-widget-lead-submit { padding: 8px 16px; font-size: 0.82rem; }
.chat-widget-lead-done { padding: 10px 16px; font-size: 0.85rem; color: #047857; text-align: center; }

.chat-widget-form {
    display: flex;
    gap: 8px;
    padding: 12px;
    border-top: 1px solid var(--border);
    background: #fff;
}
.chat-widget-input {
    flex: 1;
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 10px 14px;
    font-family: inherit;
    font-size: 0.92rem;
}
.chat-widget-input:focus { outline: none; border-color: var(--cyan); }
.chat-widget-send {
    width: 42px;
    height: 42px;
    border-radius: 10px;
    background: var(--cyan);
    color: var(--navy);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.chat-widget-send svg { width: 18px; height: 18px; }
.chat-widget-send:disabled, .chat-widget-input:disabled { opacity: 0.6; }

@media (max-width: 480px) {
    /* پنل چت روی موبایل بالای ریل اقدام سریع می‌نشیند */
    .chat-widget-panel { inset-inline-start: 14px; bottom: 74px; }
}

/* ---------- حالت فوکوس قابل‌دسترس برای ناوبری با صفحه‌کلید ---------- */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 2px solid var(--cyan);
    outline-offset: 2px;
}

/* ---------- لینک پرش به محتوای اصلی — برای کاربران صفحه‌کلید، تا مجبور نباشند از کل نوبار عبور کنند ---------- */
.skip-link {
    position: absolute;
    top: -60px;
    right: 16px;
    z-index: 1000;
    background: var(--navy);
    color: #fff;
    padding: 12px 20px;
    border-radius: 0 0 10px 10px;
    font-weight: 700;
    transition: top 0.2s ease;
}

.skip-link:focus {
    top: 0;
}

/* ---------- فاصله از بالا برای لنگرها/فوکوس، تا نوبار چسبان محتوا را نپوشاند ---------- */
section[id],
main[id] {
    scroll-margin-top: 96px;
}

/* ==========================================================================
   ریسپانسیو
   ========================================================================== */
@media (max-width: 900px) {
    .hero-grid { grid-template-columns: 1fr; gap: 28px; }
    .hero-portrait { order: -1; }
    .about-hero { grid-template-columns: 1fr; text-align: center; }
    .about-quote { border-inline-start: none; border-top: 4px solid var(--cyan); padding-inline-start: 0; padding-top: 18px; }
}

@media (max-width: 1180px) {
    /* کل کشو (لینک‌ها + حساب کاربری) پنل کشویی می‌شود، نه فقط لینک‌ها */
    .nav-drawer {
        position: fixed;
        inset: 86px 0 auto 0;
        flex-direction: column;
        align-items: stretch;
        background: rgba(255, 255, 255, 0.97);
        -webkit-backdrop-filter: blur(20px);
        backdrop-filter: blur(20px);
        padding: 12px 20px 20px;
        box-shadow: 0 12px 24px rgba(var(--navy-rgb), 0.1);
        max-height: calc(100vh - 86px);
        overflow-y: auto;
        transform: translateY(-8px);
        opacity: 0;
        pointer-events: none;
        transition: opacity 0.2s ease, transform 0.2s ease;
    }
    .nav-drawer.open {
        opacity: 1;
        transform: translateY(0);
        pointer-events: auto;
    }
    .nav-links {
        flex-direction: column;
        align-items: stretch;
        margin-inline: 0;
    }
    .nav-links > a { padding: 14px; border-bottom: 1px solid var(--border); }
    .nav-toggle { display: flex; }

    /* منوی بازشده پس‌زمینه‌ی روشن دارد؛ رنگ سفیدِ حالت «روی ویدیو» اینجا باید برگردد
       وگرنه متن سفید روی زمینه‌ی سفید نامرئی می‌شود. */
    .navbar-over-hero .nav-links > a,
    .navbar-over-hero .nav-user-greeting { color: var(--text); }
    .navbar-over-hero .nav-links > a:hover { color: var(--navy); background: var(--bg-alt); }
    .navbar-over-hero .nav-links a.active { color: var(--navy); background: rgba(var(--cyan-rgb), 0.14); }
    .navbar-over-hero .nav-auth {
        border-inline-start: none;
        border-top: 1px solid var(--border);
        padding: 14px 0 0;
        margin: 6px 0 0;
        flex-wrap: wrap;
        justify-content: center;
    }
    .navbar-over-hero .nav-auth .btn-outline { color: var(--navy); border-color: var(--navy); }
    /* منوی کشویی موبایل زمینه‌ی روشن دارد — دکمه‌ی زبان سفید آنجا نامرئی می‌شود */
    .navbar-over-hero .btn-lang { border-color: var(--navy); color: var(--navy); }
}

@media (max-width: 760px) {
    .form-card { padding: 28px 20px; }
}

@media (max-width: 480px) {
    .section { padding: 52px 0; }
    .hero { padding: 64px 0 44px; }
}

/* ==========================================================================
   پنل ادمین — صفحه ویرایش متن‌های سایت (admin/content.php)
   ========================================================================== */
.content-editor-tabs {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-bottom: 26px;
}
.content-editor-langs,
.content-editor-pages { display: flex; flex-wrap: wrap; gap: 8px; }

.content-editor-langs a,
.content-editor-pages a {
    padding: 7px 14px;
    border-radius: 999px;
    border: 1px solid var(--border);
    background: #fff;
    font-size: 0.86rem;
    color: var(--text-muted);
    transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}
.content-editor-langs a:hover,
.content-editor-pages a:hover { border-color: var(--navy); color: var(--navy); }
.content-editor-langs a.active,
.content-editor-pages a.active { background: var(--navy); border-color: var(--navy); color: #fff; }

.content-editor-form {
    display: grid;
    gap: 18px;
    background: #fff;
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 24px;
}

.content-field { display: flex; flex-direction: column; gap: 7px; }
.content-field label { display: flex; align-items: center; gap: 8px; font-size: 0.82rem; }
.content-field code {
    font-family: var(--font-en);
    direction: ltr;
    color: var(--text-muted);
    background: var(--bg-alt);
    padding: 2px 8px;
    border-radius: 6px;
}
.content-field.is-edited code { background: rgba(var(--cyan-rgb), 0.16); color: var(--navy); }

.edited-badge {
    font-size: 0.72rem;
    font-weight: 700;
    color: #047857;
    background: rgba(var(--green-rgb), 0.14);
    padding: 2px 9px;
    border-radius: 999px;
}

.content-field input,
.content-field textarea {
    width: 100%;
    font-family: inherit;
    font-size: 0.95rem;
    line-height: 1.9;
    padding: 11px 14px;
    border: 1px solid var(--border);
    border-radius: 10px;
    background: #fff;
    resize: vertical;
}
.content-field input:focus,
.content-field textarea:focus {
    outline: none;
    border-color: var(--cyan);
    box-shadow: 0 0 0 3px rgba(var(--cyan-rgb), 0.18);
}

.content-default {
    font-size: 0.78rem;
    color: var(--text-muted);
    line-height: 1.8;
    padding-inline-start: 4px;
}

.content-editor-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    padding-top: 8px;
    border-top: 1px solid var(--border);
}

.admin-notice {
    background: rgba(var(--green-rgb), 0.12);
    border: 1px solid rgba(var(--green-rgb), 0.35);
    color: #065f46;
    padding: 12px 18px;
    border-radius: 12px;
    margin-bottom: 20px;
    font-size: 0.92rem;
}

/* ==========================================================================
   دیتاکیت — بخش معرفی ابزار رایگان جمع‌آوری داده
   --------------------------------------------------------------------------
   تصمیم‌های طراحی (برگرفته از اسکیل‌های design-taste-frontend و ui-ux-pro-max):
   • چیدمان بنتوی نامتقارن، نه سه کارت هم‌اندازه — سه کارت مساوی صریحاً
     به‌عنوان الگوی «ساخته‌ی هوش مصنوعی» علامت خورده است.
   • عمق به‌جای خط: سایه‌های نرم و لایه‌ای + هایلایت داخلی، نه حاشیه‌ی
     ۱ پیکسلی خاکستری («Soft UI Evolution»).
   • قاب تودرتو (پوسته + هسته) با شعاع هم‌مرکز، تا کارت پیش‌نمایش مثل یک
     قطعه‌ی فیزیکی دیده شود، نه یک div تخت.
   • لهجه‌ی سبز، نه سایان برند — تا «رایگان» در یک نگاه از خدمات پولی جدا شود.
   • حرکت ۳۰۰–۴۵۰ms با easing فنری و احترام کامل به prefers-reduced-motion.
   ========================================================================== */
.kit-section {
    --kit: #0f766e;
    --kit-soft: #ccfbf1;
    --kit-ink: #134e4a;
    position: relative;
    overflow: hidden;
    padding: clamp(64px, 9vw, 112px) 0;
    background:
        radial-gradient(120% 90% at 100% 0%, rgba(15, 118, 110, 0.09), transparent 58%),
        radial-gradient(100% 80% at 0% 100%, rgba(6, 182, 212, 0.07), transparent 60%),
        var(--bg);
}

/* بنتو: ستون متن پهن‌تر از ستون پیش‌نمایش — تقارن کامل عمداً شکسته شده */
.kit-bento {
    display: grid;
    grid-template-columns: 1.05fr 0.95fr;
    gap: clamp(28px, 4vw, 56px);
    align-items: center;
}

/* ---------- ستون معرفی ---------- */
.kit-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: var(--kit-ink);
    background: var(--kit-soft);
    padding: 6px 14px;
    border-radius: 999px;
    margin-bottom: 18px;
}
.kit-eyebrow::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--kit);
}

.kit-intro h2 {
    font-size: clamp(1.9rem, 3.4vw, 2.6rem);
    line-height: 1.4;
    letter-spacing: -0.015em;
    margin-bottom: 16px;
    text-wrap: balance;
}

.kit-lead {
    color: var(--text-muted);
    font-size: 1.03rem;
    line-height: 2.05;
    max-width: 54ch;
    margin-bottom: 30px;
    text-wrap: pretty;
}

/* ---------- سه گام ---------- */
.kit-steps {
    list-style: none;
    display: grid;
    gap: 16px;
    margin: 0 0 32px;
    padding: 0;
}

.kit-steps li {
    display: flex;
    align-items: flex-start;
    gap: 14px;
}

.kit-step-num {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    margin-top: 2px;
    border-radius: 50%;
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--kit-ink);
    background: var(--kit-soft);
    box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.7);
}

.kit-step-body { display: flex; flex-direction: column; gap: 3px; }
.kit-step-body strong { font-size: 1rem; font-weight: 700; color: var(--text); }
.kit-step-body span { font-size: 0.92rem; line-height: 1.95; color: var(--text-muted); }

/* ---------- دکمه‌ها ---------- */
.kit-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 14px;
}

.btn-kit {
    background: var(--kit);
    color: #fff;
    padding-inline-end: 8px;   /* جا برای حباب آیکون */
    box-shadow: 0 12px 28px -14px rgba(15, 118, 110, 0.85);
}
.btn-kit:hover { background: var(--kit-ink); color: #fff; }

/* آیکون در حباب خودش، نه لخت کنار متن */
.btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.18);
    transition: transform 0.3s cubic-bezier(0.34, 1.3, 0.64, 1), background 0.3s ease;
}
.btn-icon svg { width: 15px; height: 15px; }
.btn-kit:hover .btn-icon { transform: translateX(-3px); background: rgba(255, 255, 255, 0.28); }
.btn-kit:active { transform: scale(0.985); }

.kit-note { font-size: 0.85rem; color: var(--text-muted); }

/* ---------- کارت پیش‌نمایش: قاب تودرتو ---------- */
.kit-preview-shell {
    /* پوسته‌ی بیرونی — «سینی» */
    padding: 10px;
    border-radius: 30px;
    background: rgba(15, 118, 110, 0.07);
    box-shadow: inset 0 0 0 1px rgba(15, 118, 110, 0.1);
}

.kit-preview-core {
    /* هسته — شعاع هم‌مرکز: ۳۰ منهای ۱۰ پدینگ پوسته */
    padding: 22px;
    border-radius: 20px;
    background: #fff;
    box-shadow:
        inset 0 1px 1px rgba(255, 255, 255, 0.9),
        0 1px 2px rgba(15, 37, 87, 0.05),
        0 18px 44px -22px rgba(15, 37, 87, 0.35);
}

.kit-preview-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 18px;
}
.kit-preview-dots { display: inline-flex; gap: 5px; }
.kit-preview-dots i { width: 8px; height: 8px; border-radius: 50%; background: rgba(15, 37, 87, 0.12); }

.kit-preview-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--kit-ink);
    background: var(--kit-soft);
    padding: 4px 11px;
    border-radius: 999px;
}
.kit-preview-badge::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--kit);
    animation: kitPulse 2.4s ease-in-out infinite;
}
@keyframes kitPulse {
    0%, 100% { opacity: 1;    transform: scale(1); }
    50%      { opacity: 0.45; transform: scale(0.8); }
}

.kit-preview-title { font-weight: 700; font-size: 1.05rem; margin-bottom: 16px; }

.kit-preview-fields { display: grid; gap: 10px; }

.kit-mock-field {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 12px 14px;
    border-radius: 11px;
    background: var(--bg-alt);
    box-shadow: inset 0 0 0 1px rgba(15, 37, 87, 0.05);
}
.kit-mock-field em { font-style: normal; font-size: 0.88rem; color: var(--text-muted); }
/* خط‌های خاکستریِ جای «مقدار واردشده» — پیش‌نمایش است، نه فرم واقعی */
.kit-mock-field > i {
    flex: 0 0 auto;
    width: 62px;
    height: 8px;
    border-radius: 999px;
    background: rgba(15, 37, 87, 0.1);
}
.kit-mock-select > i {
    width: auto;
    height: auto;
    background: none;
    color: var(--text-muted);
    display: inline-flex;
}
.kit-mock-select > i svg { width: 15px; height: 15px; }

.kit-mock-submit {
    display: block;
    margin-top: 4px;
    padding: 12px;
    border-radius: 11px;
    text-align: center;
    font-weight: 700;
    font-size: 0.9rem;
    color: #fff;
    background: var(--kit);
    box-shadow: 0 10px 22px -14px rgba(15, 118, 110, 0.9);
}

/* ---------- فهرست مزایا ---------- */
.kit-points {
    list-style: none;
    display: grid;
    gap: 11px;
    margin: 24px 0 0;
    padding: 0;
}
.kit-points li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 0.92rem;
    line-height: 1.9;
    color: var(--text-muted);
}
.kit-points svg {
    flex: 0 0 auto;
    width: 17px;
    height: 17px;
    margin-top: 5px;
    color: var(--kit);
}

.kit-counter {
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid rgba(15, 37, 87, 0.08);
    font-size: 0.9rem;
    color: var(--text-muted);
}
.kit-counter strong {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--kit-ink);
    margin-inline-end: 6px;
}

/* ---------- واکنش‌گرایی ---------- */
@media (max-width: 1024px) {
    .kit-bento { grid-template-columns: 1fr; gap: 36px; }
    .kit-lead { max-width: none; }
}
@media (max-width: 480px) {
    .kit-preview-shell { padding: 7px; border-radius: 24px; }
    .kit-preview-core { padding: 18px; border-radius: 17px; }
    .kit-actions .btn { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
    .kit-preview-badge::before { animation: none; }
    .btn-icon { transition: none; }
}

/* ==========================================================================
   دیتاکیت — صفحات پنل کاربر و فرم عمومی
   همان زبان بصری بخش معرفی: قاب تودرتو، عمق به‌جای خط، لهجه‌ی سبز.
   ========================================================================== */
.kit-narrow { max-width: 820px; }

.kit-panel-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 28px;
}
.kit-panel-head h1 {
    font-size: clamp(1.7rem, 3vw, 2.3rem);
    line-height: 1.4;
    margin-bottom: 8px;
}

.kit-back { margin-bottom: 16px; }
.kit-back a { font-size: 0.9rem; color: var(--text-muted); }
.kit-back a:hover { color: var(--kit, #0f766e); }

.kit-subhead {
    font-size: 1.2rem;
    margin: 40px 0 18px;
}

/* ---------- پیام‌ها ---------- */
.kit-alert {
    padding: 12px 18px;
    border-radius: 12px;
    font-size: 0.92rem;
    line-height: 1.9;
    margin-bottom: 14px;
}
.kit-alert-ok {
    background: #ccfbf1;
    color: #134e4a;
    box-shadow: inset 0 0 0 1px rgba(15, 118, 110, 0.2);
}
.kit-alert-error {
    background: #fef2f2;
    color: #991b1b;
    box-shadow: inset 0 0 0 1px rgba(220, 38, 38, 0.2);
}

/* ---------- فهرست فرم‌ها ---------- */
.kit-list { display: grid; gap: 16px; }

.kit-card {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 22px 24px;
    border-radius: 18px;
    background: #fff;
    box-shadow:
        inset 0 1px 1px rgba(255, 255, 255, 0.9),
        0 1px 2px rgba(15, 37, 87, 0.05),
        0 14px 34px -24px rgba(15, 37, 87, 0.4);
    transition: transform 0.3s cubic-bezier(0.34, 1.3, 0.64, 1), box-shadow 0.3s ease;
}
.kit-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 20px 44px -24px rgba(15, 118, 110, 0.5);
}

.kit-card-main { flex: 1 1 320px; min-width: 0; }
.kit-card h2 { font-size: 1.15rem; margin-bottom: 7px; }

.kit-card-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 9px;
    font-size: 0.85rem;
    color: var(--text-muted);
    margin-bottom: 14px;
}
.kit-dot { width: 4px; height: 4px; border-radius: 50%; background: rgba(15, 37, 87, 0.2); }
.kit-open   { color: #0f766e; font-weight: 700; }
.kit-closed { color: #9a3412; font-weight: 700; }

.kit-card-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
}
.kit-card-actions .btn { padding: 10px 18px; font-size: 0.88rem; }

.kit-delete {
    background: none;
    border: none;
    padding: 10px 12px;
    font-family: inherit;
    font-size: 0.86rem;
    color: #b91c1c;
    border-radius: 9px;
    cursor: pointer;
    transition: background 0.2s ease;
}
.kit-delete:hover { background: #fef2f2; }

/* ---------- ردیف کپی لینک ---------- */
.kit-link-row {
    display: flex;
    align-items: stretch;
    gap: 8px;
    max-width: 520px;
}
.kit-link {
    flex: 1;
    min-width: 0;
    direction: ltr;
    text-align: left;
    font-size: 0.82rem;
    padding: 10px 12px;
    border: none;
    border-radius: 10px;
    background: var(--bg-alt);
    color: var(--text-muted);
    box-shadow: inset 0 0 0 1px rgba(15, 37, 87, 0.06);
}
.kit-copy {
    flex: 0 0 auto;
    padding: 10px 18px;
    border: none;
    border-radius: 10px;
    font-family: inherit;
    font-size: 0.85rem;
    font-weight: 700;
    color: #fff;
    background: var(--kit, #0f766e);
    cursor: pointer;
    transition: background 0.25s ease, transform 0.25s cubic-bezier(0.34, 1.3, 0.64, 1);
}
.kit-copy:hover { background: #134e4a; }
.kit-copy:active { transform: scale(0.96); }
.kit-copy.is-copied { background: #047857; }

.kit-share { margin-bottom: 28px; }
.kit-share-label { font-size: 0.88rem; color: var(--text-muted); margin-bottom: 9px; }

/* ---------- حالت خالی ---------- */
.kit-empty {
    padding: 30px 26px;
    border-radius: 18px;
    background: #fff;
    box-shadow: inset 0 0 0 1px rgba(15, 37, 87, 0.06);
    color: var(--text-muted);
    line-height: 1.95;
}
.kit-empty p { margin-bottom: 14px; }
.kit-empty p:last-child { margin-bottom: 0; }

/* ---------- قالب‌های آماده ---------- */
.kit-templates {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 16px;
}

.kit-template {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding: 24px 22px;
    border-radius: 18px;
    background: #fff;
    box-shadow:
        inset 0 1px 1px rgba(255, 255, 255, 0.9),
        0 12px 30px -24px rgba(15, 37, 87, 0.45);
    transition: transform 0.3s cubic-bezier(0.34, 1.3, 0.64, 1), box-shadow 0.3s ease;
}
.kit-template:hover {
    transform: translateY(-3px);
    box-shadow: 0 22px 44px -26px rgba(15, 118, 110, 0.6);
}
.kit-template h3 { font-size: 1.05rem; }
.kit-template p { font-size: 0.9rem; line-height: 1.9; color: var(--text-muted); }
.kit-template-fields { font-size: 0.8rem !important; color: var(--kit, #0f766e) !important; font-weight: 700; }
.kit-template .btn { margin-top: auto; padding: 10px 18px; font-size: 0.88rem; }
.kit-template-blank { background: var(--bg-alt); box-shadow: inset 0 0 0 1px rgba(15, 37, 87, 0.07); }

/* ---------- ویرایشگر فیلدها ---------- */
.kit-editor { display: grid; gap: 20px; }

.kit-field-row { display: flex; flex-direction: column; gap: 7px; }
.kit-field-row label { font-size: 0.88rem; font-weight: 600; }

.kit-field-row input,
.kit-field-row textarea,
.kit-field-row select,
.kit-field-card input,
.kit-field-card textarea,
.kit-field-card select {
    width: 100%;
    font-family: inherit;
    font-size: 0.95rem;
    line-height: 1.8;
    padding: 12px 14px;
    border: none;
    border-radius: 11px;
    background: #fff;
    box-shadow: inset 0 0 0 1px rgba(15, 37, 87, 0.1);
    transition: box-shadow 0.2s ease;
}
.kit-field-row input:focus,
.kit-field-row textarea:focus,
.kit-field-row select:focus,
.kit-field-card input:focus,
.kit-field-card textarea:focus,
.kit-field-card select:focus {
    outline: none;
    box-shadow: inset 0 0 0 1.5px var(--kit, #0f766e), 0 0 0 3px rgba(15, 118, 110, 0.15);
}

.kit-fields { display: grid; gap: 14px; }

.kit-field-card {
    display: grid;
    gap: 12px;
    padding: 18px;
    border-radius: 16px;
    background: var(--bg-alt);
    box-shadow: inset 0 0 0 1px rgba(15, 37, 87, 0.07);
}
.kit-field-grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr;
    gap: 12px;
}
.kit-field-card label { display: block; font-size: 0.82rem; color: var(--text-muted); margin-bottom: 5px; }

.kit-field-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.kit-switch {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    font-size: 0.9rem;
    cursor: pointer;
}
.kit-switch input { width: 18px; height: 18px; accent-color: #0f766e; cursor: pointer; }
.kit-switch-sm { font-size: 0.84rem; color: var(--text-muted); }
.kit-switch-sm span { margin: 0; }

.kit-editor-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    padding-top: 8px;
}

/* ---------- فرم عمومی ---------- */
.kit-form-shell {
    padding: 10px;
    border-radius: 30px;
    background: rgba(15, 118, 110, 0.07);
    box-shadow: inset 0 0 0 1px rgba(15, 118, 110, 0.1);
}
.kit-form-core {
    padding: clamp(26px, 4vw, 40px);
    border-radius: 20px;
    background: #fff;
    box-shadow:
        inset 0 1px 1px rgba(255, 255, 255, 0.9),
        0 18px 44px -26px rgba(15, 37, 87, 0.35);
}
.kit-form-core h1 { font-size: clamp(1.5rem, 3vw, 2rem); line-height: 1.45; margin-bottom: 10px; }

.kit-public-form { display: grid; gap: 18px; margin-top: 24px; }
.kit-req { color: #b91c1c; margin-inline-start: 3px; }
.kit-submit { width: 100%; justify-content: center; margin-top: 6px; }
.kit-submit[disabled] { opacity: 0.55; cursor: not-allowed; }

/* تله‌ی ربات — از دید کاربر و صفحه‌خوان خارج، ولی برای اسکریپت‌ها قابل پرکردن */
.kit-honeypot {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
}

.kit-thanks { text-align: center; }
.kit-thanks-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 62px;
    height: 62px;
    margin-bottom: 18px;
    border-radius: 50%;
    color: #fff;
    background: #0f766e;
    box-shadow: 0 14px 30px -14px rgba(15, 118, 110, 0.9);
}
.kit-thanks-mark svg { width: 28px; height: 28px; }

.kit-powered {
    text-align: center;
    margin-top: 22px;
    font-size: 0.84rem;
    color: var(--text-muted);
}
.kit-powered a { color: #0f766e; font-weight: 700; }

/* ---------- جدول پاسخ‌ها ---------- */
.kit-table-wrap {
    overflow-x: auto;               /* اسکرول افقی داخل قاب، نه در بدنه‌ی صفحه */
    border-radius: 16px;
    background: #fff;
    box-shadow: inset 0 0 0 1px rgba(15, 37, 87, 0.07);
}
.kit-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.9rem;
    white-space: nowrap;
}
.kit-table th,
.kit-table td {
    padding: 13px 16px;
    text-align: start;
    border-bottom: 1px solid rgba(15, 37, 87, 0.06);
}
.kit-table thead th {
    position: sticky;
    top: 0;
    background: var(--bg-alt);
    font-weight: 700;
    font-size: 0.85rem;
}
.kit-table tbody tr:last-child td { border-bottom: none; }
.kit-table tbody tr:hover { background: rgba(15, 118, 110, 0.04); }
.kit-cell-date { direction: ltr; text-align: left; color: var(--text-muted); font-size: 0.82rem; }

@media (max-width: 640px) {
    .kit-field-grid { grid-template-columns: 1fr; }
    .kit-card-actions { width: 100%; }
    .kit-card-actions .btn { flex: 1; justify-content: center; }
    .kit-link-row { flex-wrap: wrap; }
    .kit-copy { width: 100%; }
}

/* ==========================================================================
   ریل اقدام سریع — واتساپ + چت‌بات، یک قاب مشترک
   --------------------------------------------------------------------------
   مشکل قبلی: دو دکمه‌ی شناور جدا با اندازه‌ی آیکون متفاوت (۲۸ و ۲۶ پیکسل)،
   دو سایه‌ی متفاوت، و یک حلقه‌ی نبض دائمی روی واتساپ که چشم را آزار می‌داد
   (اسکیل: انیمیشن حلقوی بی‌پایان = نشانه‌ی طراحی ارزان).
   حالا: یک ریل شیشه‌ای، دکمه‌های دقیقاً هم‌اندازه، آیکون‌های هم‌اندازه،
   برچسب فقط هنگام هاور، و حرکت فقط در پاسخ به کنش کاربر.
   ========================================================================== */
.action-rail {
    position: fixed;
    inset-inline-start: 20px;
    bottom: 20px;
    z-index: 210;
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 6px;
    border-radius: 26px;
    background: rgba(255, 255, 255, 0.62);
    -webkit-backdrop-filter: blur(16px) saturate(160%);
    backdrop-filter: blur(16px) saturate(160%);
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.65),
        0 10px 30px -12px rgba(15, 37, 87, 0.4);
}

/* هر دو دکمه دقیقاً یک اندازه — شعاع هم‌مرکز با ریل (۲۶ منهای ۶ پدینگ) */
.rail-btn {
    position: relative;
    width: 52px;
    height: 52px;
    flex: 0 0 auto;
    border: none;
    border-radius: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    cursor: pointer;
    transition: transform 0.3s cubic-bezier(0.34, 1.3, 0.64, 1),
                filter 0.25s ease;
}
/* آیکون‌ها هم دقیقاً هم‌اندازه — همین بود که دو دکمه را نامتوازن نشان می‌داد */
.rail-btn svg { width: 24px; height: 24px; }

.rail-btn:hover { transform: translateY(-2px); filter: brightness(1.07); }
.rail-btn:active { transform: scale(0.95); }
.rail-btn:focus-visible { outline: 2px solid var(--cyan); outline-offset: 3px; }

.rail-whatsapp {
    background: #25D366;
    box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.35), 0 6px 14px -6px rgba(37, 211, 102, 0.8);
}
.rail-chat {
    background: var(--navy);
    box-shadow: inset 0 1px 1px rgba(255, 255, 255, 0.2), 0 6px 14px -6px rgba(15, 37, 87, 0.8);
}

/* برچسب فقط هنگام هاور/فوکوس — بدون آن، آیکون تنها مبهم است */
.rail-tip {
    position: absolute;
    inset-inline-start: calc(100% + 10px);
    top: 50%;
    transform: translateY(-50%) translateX(6px);
    white-space: nowrap;
    font-size: 0.78rem;
    font-weight: 700;
    color: #fff;
    background: rgba(15, 37, 87, 0.92);
    padding: 6px 12px;
    border-radius: 8px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.22s ease, transform 0.22s ease;
}
html[dir="rtl"] .rail-tip { transform: translateY(-50%) translateX(-6px); }

.rail-btn:hover .rail-tip,
.rail-btn:focus-visible .rail-tip {
    opacity: 1;
    transform: translateY(-50%) translateX(0);
}

/* دکمه‌ی بازگشت به بالا، هم‌اندازه‌ی دکمه‌های ریل — قبلاً ۴۸ در برابر ۵۶ بود */
.back-to-top {
    width: 52px;
    height: 52px;
    border-radius: 20px;
    bottom: 26px;
    inset-inline-end: 26px;
}
.back-to-top svg { width: 22px; height: 22px; }

/* روی لمسی برچسب معنا ندارد و فضا هم تنگ‌تر است */
@media (max-width: 640px) {
    .action-rail { inset-inline-start: 14px; bottom: 14px; gap: 5px; padding: 5px; border-radius: 23px; }
    .rail-btn { width: 46px; height: 46px; border-radius: 18px; }
    .rail-btn svg { width: 21px; height: 21px; }
    .rail-tip { display: none; }
    .back-to-top { width: 46px; height: 46px; border-radius: 18px; bottom: 18px; inset-inline-end: 18px; }
    .back-to-top svg { width: 20px; height: 20px; }
}

@media (prefers-reduced-motion: reduce) {
    .rail-btn, .rail-tip { transition: none; }
}

/* ==========================================================================
   «درهای ورودی» — بنتوی نامتقارن به‌جای پنج کارت هم‌اندازه
   --------------------------------------------------------------------------
   چرا عوض شد: پنج کارت مرکزچینِ یکسان با پنج دکمه‌ی تکراری، بارزترین الگوی
   صفحاتِ ساخته‌شده با هوش مصنوعی است. مهم‌تر اینکه سه کارت اول همان سه گام
   «مسیر هومات» بالای صفحه بودند و اینجا دوباره هم‌رتبه با دو مقصد مستقل
   (مدرسه و سیناپس) تکرار می‌شدند — یعنی چیدمان، سلسله‌مراتب واقعی محتوا را
   نقض می‌کرد. حالا گام‌ها ردیف‌های فشرده در یک قاب‌اند و دو مقصد مستقل،
   کارت‌های بزرگ‌تر. کل هر ردیف/کارت لینک است.
   ========================================================================== */
.doors-bento {
    display: grid;
    grid-template-columns: 1.15fr 0.85fr;
    gap: 22px;
    align-items: start;
}

/* ---------- ستون راست: سه گام مسیر ---------- */
.doors-path {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 20px;
    border-radius: 22px;
    background: #fff;
    box-shadow:
        inset 0 1px 1px rgba(255, 255, 255, 0.9),
        0 14px 36px -26px rgba(15, 37, 87, 0.45);
}

.doors-group-label {
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.09em;
    color: var(--text-muted);
    padding: 4px 10px 10px;
}

.door-row {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 15px 14px;
    border-radius: 15px;
    color: inherit;
    transition: background 0.25s ease, transform 0.3s cubic-bezier(0.34, 1.3, 0.64, 1);
}
.door-row:hover {
    background: var(--bg-alt);
    transform: translateX(-3px);
}
html[dir="ltr"] .door-row:hover { transform: translateX(3px); }

.door-row-icon {
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    border-radius: 13px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(var(--navy-rgb), 0.08);
    color: var(--navy);
    transition: background 0.25s ease, color 0.25s ease;
}
.door-row-icon svg { width: 21px; height: 21px; }

.door-row-body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.door-row-body strong { font-size: 1rem; font-weight: 700; }
.door-row-body > span { font-size: 0.85rem; color: var(--text-muted); line-height: 1.7; }

.door-row-arrow {
    flex: 0 0 auto;
    margin-inline-start: auto;
    color: var(--text-muted);
    opacity: 0;
    transform: translateX(6px);
    transition: opacity 0.25s ease, transform 0.25s ease;
}
html[dir="ltr"] .door-row-arrow { transform: translateX(-6px) scaleX(-1); }
.door-row-arrow svg { width: 18px; height: 18px; display: block; }
.door-row:hover .door-row-arrow { opacity: 1; transform: translateX(0); }
html[dir="ltr"] .door-row:hover .door-row-arrow { transform: translateX(0) scaleX(-1); }

/* هر گام رنگ خودش را دارد — همان رنگ‌بندی سه گام بالای صفحه */
.door-row:nth-of-type(1) .door-row-icon { background: rgba(var(--navy-rgb), 0.09);  color: var(--navy); }
.door-row:nth-of-type(2) .door-row-icon { background: rgba(var(--cyan-rgb), 0.14);  color: #0891A8; }
.door-row:nth-of-type(3) .door-row-icon { background: rgba(var(--green-rgb), 0.14); color: #047857; }

/* ---------- ستون چپ: دو مقصد مستقل ---------- */
.doors-features { display: grid; gap: 16px; }

.door-feature {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding: 26px 24px;
    border-radius: 22px;
    color: inherit;
    overflow: hidden;
    background: #fff;
    box-shadow:
        inset 0 1px 1px rgba(255, 255, 255, 0.9),
        0 14px 36px -26px rgba(15, 37, 87, 0.45);
    transition: transform 0.35s cubic-bezier(0.34, 1.3, 0.64, 1), box-shadow 0.35s ease;
}

/* درخشش رنگی از گوشه هنگام هاور — به‌جای تغییر رنگ حاشیه */
.door-feature::before {
    content: "";
    position: absolute;
    inset-inline-end: -30%;
    top: -70%;
    width: 80%;
    height: 170%;
    background: radial-gradient(circle at center, var(--door-glow, rgba(6, 182, 212, 0.22)), transparent 68%);
    opacity: 0;
    transition: opacity 0.4s ease;
    pointer-events: none;
}
.door-feature:hover { transform: translateY(-4px); box-shadow: 0 26px 52px -28px rgba(15, 37, 87, 0.5); }
.door-feature:hover::before { opacity: 1; }

.door-feature-icon {
    width: 50px;
    height: 50px;
    border-radius: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 4px;
    background: rgba(var(--amber-rgb), 0.16);
    color: #B45309;
}
.door-feature-icon svg { width: 24px; height: 24px; }

.door-feature h3 { font-size: 1.15rem; }
.door-feature p { font-size: 0.9rem; line-height: 1.85; color: var(--text-muted); }

.door-feature-cta {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    margin-top: 6px;
    font-size: 0.88rem;
    font-weight: 700;
    color: var(--navy);
    transition: gap 0.3s ease;
}
.door-feature-cta svg { width: 15px; height: 15px; }
html[dir="ltr"] .door-feature-cta svg { transform: scaleX(-1); }
.door-feature:hover .door-feature-cta { gap: 13px; }

/* مدرسه کهربایی، سیناپس بنفش-آبی — دو مقصد، دو هویت */
.door-feature:nth-child(2) { --door-glow: rgba(99, 102, 241, 0.2); }
.door-feature:nth-child(2) .door-feature-icon { background: rgba(99, 102, 241, 0.14); color: #4338CA; }

@media (max-width: 900px) {
    .doors-bento { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
    .doors-path { padding: 14px; }
    .door-row { padding: 13px 10px; gap: 11px; }
    .door-row-icon { width: 40px; height: 40px; border-radius: 12px; }
    .door-feature { padding: 22px 20px; }
}
@media (prefers-reduced-motion: reduce) {
    .door-row, .door-feature, .door-row-arrow, .door-feature-cta { transition: none; }
}

/* ==========================================================================
   کارت‌های دوره‌ی مدرسه هومات — با قیمت، برچسب «خصوصی» و تخفیف جشنواره
   --------------------------------------------------------------------------
   ترتیب اطلاعات عمداً این است: برچسب خصوصی ← عنوان ← توضیح ← تعداد جلسه ←
   قیمت ← دکمه. یعنی کاربر اول می‌فهمد «چه چیزی» می‌خرد و بعد «چند».
   قیمت خط‌خورده *بالای* قیمت جشنواره است نه کنارش: در چیدمان راست‌به‌چپ،
   دو عدد کنار هم به‌سادگی جابه‌جا خوانده می‌شوند.
   ========================================================================== */
.courses-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
    gap: 20px;
}

.course-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 9px;
    padding: 26px 24px;
    border-radius: 20px;
    background: #fff;
    box-shadow:
        inset 0 1px 1px rgba(255, 255, 255, 0.9),
        0 1px 2px rgba(15, 37, 87, 0.05),
        0 16px 38px -26px rgba(15, 37, 87, 0.45);
    transition: transform 0.35s cubic-bezier(0.34, 1.3, 0.64, 1), box-shadow 0.35s ease;
}
.course-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 28px 54px -28px rgba(15, 37, 87, 0.5);
}

.course-top {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
}

.course-private {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--navy);
    background: rgba(var(--cyan-rgb), 0.14);
    padding: 5px 12px;
    border-radius: 999px;
}
.course-private::before {
    content: "";
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--cyan-text, #0891A8);
}

.course-off {
    font-size: 0.72rem;
    font-weight: 700;
    color: #9a3412;
    background: rgba(var(--amber-rgb), 0.2);
    padding: 5px 11px;
    border-radius: 999px;
}

.course-card h3 { font-size: 1.1rem; line-height: 1.6; }
.course-desc {
    font-size: 0.9rem;
    line-height: 1.9;
    color: var(--text-muted);
    flex-grow: 1;
}

.course-sessions {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.84rem;
    color: var(--text-muted);
}
.course-sessions svg { width: 15px; height: 15px; color: var(--navy); }

/* ---------- بلوک قیمت ---------- */
.course-price {
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 2px;
    margin-top: 8px;
    padding-top: 14px;
    border-top: 1px solid rgba(15, 37, 87, 0.08);
}

.course-price-old {
    font-size: 0.9rem;
    color: var(--text-muted);
    text-decoration: line-through;
    text-decoration-color: rgba(185, 28, 28, 0.6);
    text-decoration-thickness: 1.5px;
}

.course-price-new {
    display: flex;
    align-items: baseline;
    gap: 5px;
    font-weight: 700;
    color: var(--navy);
    font-size: 0.95rem;
}
.course-price-new .en { font-size: 1.55rem; letter-spacing: -0.01em; }

.course-price-note {
    font-size: 0.76rem;
    line-height: 1.75;
    color: #047857;
    margin-top: 3px;
}

.course-order-btn {
    width: 100%;
    justify-content: center;
    margin-top: 14px;
    padding: 12px 20px;
    font-size: 0.9rem;
}

/* ==========================================================================
   جعبه‌ی پرداخت کارت‌به‌کارت (فرم ثبت سفارش دوره)
   ========================================================================== */
.pay-box {
    margin: 8px 0 20px;
    padding: 22px;
    border-radius: 18px;
    background: var(--bg-alt);
    box-shadow: inset 0 0 0 1px rgba(15, 37, 87, 0.07);
}
.pay-title { font-weight: 700; font-size: 1rem; margin-bottom: 8px; }
.pay-desc { font-size: 0.88rem; line-height: 1.95; color: var(--text-muted); margin-bottom: 16px; }

.pay-card {
    display: grid;
    gap: 10px;
    padding: 18px;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 10px 26px -20px rgba(15, 37, 87, 0.5);
    margin-bottom: 18px;
}
.pay-card-row {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
}
.pay-card-label { font-size: 0.8rem; color: var(--text-muted); }
.pay-card-number {
    direction: ltr;
    font-size: 1.2rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    color: var(--navy);
}
.pay-card-owner { font-size: 0.88rem; font-weight: 600; }

.pay-copy {
    justify-self: start;
    padding: 9px 18px;
    border: none;
    border-radius: 10px;
    font-family: inherit;
    font-size: 0.84rem;
    font-weight: 700;
    color: #fff;
    background: var(--navy);
    cursor: pointer;
    transition: background 0.25s ease, transform 0.25s cubic-bezier(0.34, 1.3, 0.64, 1);
}
.pay-copy:hover { background: var(--cyan); color: var(--navy); }
.pay-copy:active { transform: scale(0.96); }
.pay-copy.is-copied { background: #047857; color: #fff; }

.form-hint {
    display: block;
    margin-top: 6px;
    font-size: 0.78rem;
    line-height: 1.8;
    color: var(--text-muted);
}

/* ==========================================================================
   کپچای Cloudflare Turnstile — فاصله‌ی یکسان در همه‌ی فرم‌ها
   ========================================================================== */
.turnstile-box { margin: 6px 0 16px; }

@media (max-width: 480px) {
    .course-card { padding: 22px 20px; }
    .pay-box { padding: 18px 16px; }
    .pay-card-number { font-size: 1.05rem; letter-spacing: 0.05em; }
}
@media (prefers-reduced-motion: reduce) {
    .course-card, .pay-copy { transition: none; }
}

/* ---------- پنل مدیریت: صفحه نرخ‌ها ---------- */
.pricing-head {
    font-size: 1.05rem;
    margin: 26px 0 14px;
    padding-bottom: 10px;
    border-bottom: 1px solid var(--border);
}
.pricing-head:first-of-type { margin-top: 0; }

.pricing-table td { vertical-align: middle; }
.pricing-table input {
    width: 100%;
    min-width: 120px;
    font-family: inherit;
    font-size: 0.9rem;
    padding: 9px 11px;
    border: none;
    border-radius: 9px;
    background: var(--bg-alt);
    box-shadow: inset 0 0 0 1px rgba(15, 37, 87, 0.1);
    direction: ltr;
    text-align: left;
}
.pricing-table input:focus {
    outline: none;
    box-shadow: inset 0 0 0 1.5px var(--cyan), 0 0 0 3px rgba(var(--cyan-rgb), 0.18);
}
.pricing-title { white-space: normal; min-width: 190px; font-weight: 600; }
.pricing-pct { font-weight: 700; color: #047857; }

.pricing-grid-2,
.pricing-grid-3 {
    display: grid;
    gap: 16px;
    margin-bottom: 8px;
}
.pricing-grid-2 { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.pricing-grid-3 { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }

.pricing-hint {
    font-size: 0.82rem;
    line-height: 1.9;
    color: var(--text-muted);
    margin-bottom: 4px;
}

/* ==========================================================================
   مگامنوی «خدمات تخصصی هومات»
   --------------------------------------------------------------------------
   نوبار قبلاً ۱۰ لینک هم‌وزن داشت؛ سه خدمت تخصصی در یک دکمه جمع شدند و
   منو به شش آیتم رسید. پنل روی دسکتاپ یک قاب تودرتو است (کارت‌ها + ستون تیره‌ی
   «از کجا شروع کنم؟» که در تحلیل رایگان باز می‌شود)، و داخل کشوی موبایل به
   آکاردئون تبدیل می‌شود.
   نکته‌ی specificity: کارت‌ها <a> درون .nav-links هستند و قواعد عمومی
   .nav-links a (nowrap، خط زیر، پس‌زمینه‌ی هاور) رویشان می‌افتد؛ برای همین همه‌جا
   با .nav-links .mega-card (دو کلاس) نوشته شده‌اند.
   ========================================================================== */
.nav-mega { position: static; }

.nav-mega-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 9px 11px;
    border: none;
    border-radius: 9px;
    background: none;
    font-family: inherit;
    font-size: 0.87rem;
    line-height: 1;
    white-space: nowrap;
    color: var(--text);
    cursor: pointer;
    transition: color 0.2s ease, background 0.2s ease;
}
.nav-mega-toggle:hover,
.nav-mega.is-open .nav-mega-toggle { color: var(--navy); background: var(--bg-alt); }
.nav-mega-toggle.active { color: var(--navy); font-weight: 700; background: rgba(var(--cyan-rgb), 0.14); }

.nav-mega-chevron {
    width: 14px;
    height: 14px;
    flex: 0 0 auto;
    transition: transform 0.3s cubic-bezier(0.22, 1, 0.36, 1);
}
.nav-mega.is-open .nav-mega-chevron { transform: rotate(180deg); }

/* پنل نسبت به خود نوبار (sticky/fixed) موقعیت می‌گیرد و وسط آن می‌نشیند */
.mega-panel {
    position: absolute;
    top: calc(100% - 4px);
    inset-inline: 0;
    margin-inline: auto;
    width: min(960px, calc(100vw - 32px));
    padding-top: 8px;          /* پل نامرئی تا ماوس در عبور از دکمه به پنل «بیرون» نرود */
    z-index: 120;
    visibility: hidden;
    opacity: 0;
    transform: translateY(-6px);
    transition: opacity 0.2s ease, transform 0.3s cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 0.3s;
}
.nav-mega.is-open .mega-panel {
    visibility: visible;
    opacity: 1;
    transform: none;
    transition: opacity 0.2s ease, transform 0.3s cubic-bezier(0.22, 1, 0.36, 1), visibility 0s;
}

.mega-inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 248px;
    gap: 8px;
    padding: 8px;
    border-radius: 22px;
    background: rgba(255, 255, 255, 0.98);
    -webkit-backdrop-filter: blur(20px) saturate(160%);
    backdrop-filter: blur(20px) saturate(160%);
    box-shadow:
        inset 0 0 0 1px rgba(15, 37, 87, 0.07),
        0 32px 70px -32px rgba(15, 37, 87, 0.5);
}

.mega-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px;
}

.nav-links .mega-card {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 16px;
    border-radius: 16px;
    white-space: normal;
    line-height: 1.6;
    font-size: inherit;
    color: var(--text);
    background: transparent;
    transition: background 0.2s ease;
}
.nav-links .mega-card::after { display: none; }
.nav-links .mega-card:hover,
.nav-links .mega-card:focus-visible { background: var(--bg-alt); color: var(--text); }
.nav-links .mega-card.is-current { background: rgba(var(--cyan-rgb), 0.08); }

.mega-card-icon {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: rgba(var(--navy-rgb), 0.09);
    color: var(--navy);
    transition: transform 0.3s cubic-bezier(0.34, 1.3, 0.64, 1);
}
.mega-card-icon svg { width: 21px; height: 21px; }
.nav-links .mega-card:hover .mega-card-icon { transform: scale(1.07); }
.mega-card-ai-content .mega-card-icon { background: rgba(var(--cyan-rgb), 0.14);  color: #0891A8; }
.mega-card-automation .mega-card-icon { background: rgba(var(--green-rgb), 0.14); color: #047857; }
.mega-card-solutions  .mega-card-icon { background: rgba(var(--amber-rgb), 0.18); color: #B45309; }

.mega-card-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.mega-card-title {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--text);
}
/* شماره‌ی گام مسیر — فقط برای سه خدمت اول؛ نشان می‌دهد این‌ها به هم پیوسته‌اند */
.mega-card-step {
    font-size: 0.68rem;
    font-weight: 700;
    color: var(--text-muted);
    background: var(--bg-alt);
    padding: 3px 8px;
    border-radius: 999px;
    line-height: 1.2;
}
.nav-links .mega-card:hover .mega-card-step { background: #fff; }
.mega-card-sub  { font-size: 0.76rem; font-weight: 600; color: var(--cyan-text); }
.mega-card-desc { font-size: 0.82rem; line-height: 1.8; color: var(--text-muted); margin-top: 2px; }

/* ستون کناری: پاسخ به کسی که نمی‌داند کدام خدمت را بخواهد — در تحلیل رایگان باز می‌شود */
.mega-aside {
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 8px;
    padding: 20px;
    border-radius: 16px;
    background: var(--wash-deep);
    color: #fff;
}
.mega-aside-title { margin: 0; font-size: 0.95rem; font-weight: 700; color: #fff; line-height: 1.7; }
.mega-aside-text  { margin: 0; font-size: 0.82rem; line-height: 1.9; color: rgba(255, 255, 255, 0.8); }
.nav-links .mega-aside-link {
    margin-top: 8px;
    padding: 11px 14px;
    border-radius: 999px;
    background: #fff;
    color: var(--navy);
    font-weight: 700;
    font-size: 0.82rem;
    text-align: center;
    white-space: normal;
    line-height: 1.5;
    transition: background 0.2s ease, color 0.2s ease;
}
.nav-links .mega-aside-link::after { display: none; }
.nav-links .mega-aside-link:hover,
.nav-links .mega-aside-link:focus-visible { background: var(--cyan); color: var(--navy-deep); }

/* نوبار روی ویدیوی هیرو: دکمه سفید؛ بعد از اسکرول دوباره تیره */
.navbar-over-hero .nav-mega-toggle { color: rgba(255, 255, 255, 0.92); }
.navbar-over-hero .nav-mega-toggle:hover,
.navbar-over-hero .nav-mega.is-open .nav-mega-toggle { color: #fff; background: rgba(255, 255, 255, 0.14); }
.navbar-over-hero.scrolled .nav-mega-toggle { color: var(--text); }
.navbar-over-hero.scrolled .nav-mega-toggle:hover,
.navbar-over-hero.scrolled .nav-mega.is-open .nav-mega-toggle { color: var(--navy); background: var(--bg-alt); }

/* ---------- داخل کشوی موبایل: آکاردئون ---------- */
@media (max-width: 1180px) {
    .nav-mega { border-bottom: 1px solid var(--border); }

    .nav-mega-toggle,
    .navbar-over-hero .nav-mega-toggle {
        width: 100%;
        justify-content: space-between;
        padding: 14px;
        border-radius: 0;
        font-size: 0.95rem;
        color: var(--text);
    }
    .nav-mega-toggle:hover,
    .nav-mega.is-open .nav-mega-toggle,
    .navbar-over-hero .nav-mega-toggle:hover,
    .navbar-over-hero .nav-mega.is-open .nav-mega-toggle { background: transparent; color: var(--navy); }

    /* 0fr → 1fr: ارتفاع واقعی محتوا انیمیت می‌شود، بدون max-height جادویی.
       visibility با تأخیر خاموش می‌شود تا کارت‌های بسته با Tab قابل‌فوکوس نمانند. */
    .mega-panel {
        position: static;
        width: auto;
        margin: 0;
        padding-top: 0;
        display: grid;
        grid-template-rows: 0fr;
        opacity: 1;
        transform: none;
        visibility: hidden;
        transition: grid-template-rows 0.32s cubic-bezier(0.22, 1, 0.36, 1), visibility 0s linear 0.32s;
    }
    .nav-mega.is-open .mega-panel {
        grid-template-rows: 1fr;
        visibility: visible;
        transition: grid-template-rows 0.32s cubic-bezier(0.22, 1, 0.36, 1), visibility 0s;
    }
    .mega-inner {
        min-height: 0;
        overflow: hidden;
        grid-template-columns: 1fr;
        padding: 0;
        border-radius: 0;
        background: none;
        box-shadow: none;
        -webkit-backdrop-filter: none;
        backdrop-filter: none;
    }
    .mega-grid { grid-template-columns: 1fr; gap: 2px; }
    .nav-links .mega-card { padding: 11px 14px; gap: 12px; }
    .mega-card-icon { width: 36px; height: 36px; border-radius: 10px; }
    .mega-card-icon svg { width: 18px; height: 18px; }
    .mega-card-desc { display: none; }
    .mega-aside { margin: 6px 0 12px; padding: 14px; border-radius: 14px; }
    .mega-aside-text { display: none; }
}

@media (prefers-reduced-motion: reduce) {
    .mega-panel, .nav-mega-chevron, .mega-card-icon { transition: none; }
}

/* ==========================================================================
   صفحه‌ی «درباره و ارتباط» — بخش ارتباط (ادغام contact.php در about.php)
   راه‌های تماس و فرم پیام کنار هم می‌نشینند، نه زیر هم: کسی که دنبال واتساپ است
   فرم را هم در همان نگاه می‌بیند، و برعکس.
   ========================================================================== */
.page-header-jump {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 18px;
    padding: 9px 18px;
    border-radius: 999px;
    border: 1px solid currentColor;
    color: inherit;
    font-size: 0.88rem;
    font-weight: 600;
    opacity: 0.85;
    transition: opacity 0.2s ease, transform 0.25s cubic-bezier(0.34, 1.3, 0.64, 1);
}
.page-header-jump:hover { opacity: 1; transform: translateY(2px); }

.about-contact-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
    gap: clamp(24px, 4vw, 44px);
    align-items: start;
}

.about-contact-grid .contact-channels-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.about-contact-grid .contact-location { margin: 16px 0 0; max-width: none; }
.about-contact-grid .form-card { margin: 0; max-width: none; }

.about-contact-form-title {
    text-align: center;
    font-size: 1.35rem;
    margin-bottom: 6px;
}

@media (max-width: 900px) {
    .about-contact-grid { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
    .about-contact-grid .contact-channels-grid { grid-template-columns: 1fr; }
}

/* ==========================================================================
   محصولات و راهکارهای آماده (solutions.php)
   --------------------------------------------------------------------------
   کاتالوگ به‌صورت گروه‌های دسته‌ای چیده شده، نه یک دیوار تخت از ۱۵ کارت یکسان:
   هر دسته عنوان و رنگ خودش را دارد، پس چشم اول دسته را پیدا می‌کند و بعد محصول را.
   روی کارت، «مسئله» پیش از ویژگی‌ها می‌آید — خریدار با دردش خودش را پیدا می‌کند،
   نه با فهرست امکانات.
   ========================================================================== */
.sol-header-eyebrow {
    display: inline-block;
    margin-bottom: 14px;
    padding: 6px 14px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
    border: 1px solid rgba(255, 255, 255, 0.24);
    font-size: 0.8rem;
    font-weight: 600;
    color: #fff;
}

.sol-catalog { --sol-accent: var(--navy); --sol-soft: rgba(var(--navy-rgb), 0.08); }

/* ---------- نوار دسته‌ها ---------- */
.sol-filter {
    position: sticky;
    top: 96px;
    z-index: 20;
    display: flex;
    gap: 8px;
    margin: 0 auto 40px;
    padding: 8px;
    width: fit-content;
    max-width: 100%;
    overflow-x: auto;
    scrollbar-width: none;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.9);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
    box-shadow: inset 0 0 0 1px rgba(15, 37, 87, 0.08), 0 14px 34px -24px rgba(15, 37, 87, 0.5);
}
.sol-filter::-webkit-scrollbar { display: none; }

.sol-chip {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 16px;
    border-radius: 999px;
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--text-muted);
    white-space: nowrap;
    transition: background 0.2s ease, color 0.2s ease;
}
.sol-chip:hover { color: var(--navy); background: var(--bg-alt); }
.sol-chip.is-active { color: #fff; background: var(--navy); }

.sol-chip-count {
    min-width: 22px;
    padding: 2px 7px;
    border-radius: 999px;
    font-size: 0.72rem;
    text-align: center;
    background: rgba(15, 37, 87, 0.07);
}
.sol-chip.is-active .sol-chip-count { background: rgba(255, 255, 255, 0.22); }

/* ---------- گروه دسته ---------- */
.sol-group + .sol-group { margin-top: 56px; }
.sol-group[hidden] { display: none; }

.sol-group-ml      { --sol-accent: #6D28D9; --sol-soft: rgba(109, 40, 217, 0.09); }
.sol-group-bots    { --sol-accent: #0E7490; --sol-soft: rgba(var(--cyan-rgb), 0.12); }
.sol-group-erp     { --sol-accent: var(--navy); --sol-soft: rgba(var(--navy-rgb), 0.08); }
.sol-group-finance { --sol-accent: #B45309; --sol-soft: rgba(var(--amber-rgb), 0.14); }
.sol-group-agents  { --sol-accent: #047857; --sol-soft: rgba(var(--green-rgb), 0.12); }

.sol-group-head {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 20px;
    padding-bottom: 14px;
    border-bottom: 1px solid var(--border);
}
.sol-group-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    border-radius: 14px;
    background: var(--sol-soft);
    color: var(--sol-accent);
    flex: 0 0 auto;
}
.sol-group-icon svg { width: 23px; height: 23px; }
.sol-group-head h2 { font-size: clamp(1.25rem, 2.4vw, 1.6rem); margin: 0; }
.sol-group-count { margin-inline-start: auto; font-size: 0.85rem; color: var(--text-muted); }

.sol-disclaimer {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 0 0 20px;
    padding: 12px 16px;
    border-radius: 12px;
    background: rgba(var(--amber-rgb), 0.1);
    color: #7C4A03;
    font-size: 0.86rem;
    line-height: 1.9;
}
.sol-disclaimer svg { width: 18px; height: 18px; flex: 0 0 auto; margin-top: 4px; }

/* ---------- کارت محصول ---------- */
.sol-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 18px;
}

.sol-card {
    position: relative;
    display: flex;
    flex-direction: column;
    padding: 24px 22px 20px;
    border-radius: 18px;
    background: #fff;
    box-shadow:
        inset 0 0 0 1px rgba(15, 37, 87, 0.07),
        0 16px 36px -28px rgba(15, 37, 87, 0.45);
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.35s ease;
}
/* نوار رنگی دسته در لبه‌ی شروع کارت — در RTL سمت راست */
.sol-card::before {
    content: '';
    position: absolute;
    inset-block: 22px;
    inset-inline-start: 0;
    width: 3px;
    border-radius: 3px;
    background: var(--sol-accent);
    opacity: 0.55;
    transition: opacity 0.3s ease, inset-block 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}
.sol-card:hover {
    transform: translateY(-4px);
    box-shadow:
        inset 0 0 0 1px color-mix(in srgb, var(--sol-accent) 22%, transparent),
        0 26px 50px -30px color-mix(in srgb, var(--sol-accent) 60%, transparent);
}
.sol-card:hover::before { opacity: 1; inset-block: 14px; }
.sol-card:target { box-shadow: inset 0 0 0 2px var(--sol-accent), 0 26px 50px -30px rgba(15, 37, 87, 0.5); }

.sol-card h3 { font-size: 1.08rem; line-height: 1.6; margin-bottom: 12px; }

.sol-problem {
    margin: 0 0 16px;
    padding: 12px 14px;
    border-radius: 12px;
    background: var(--sol-soft);
    font-size: 0.9rem;
    line-height: 1.9;
    color: var(--text);
}
.sol-problem-label {
    display: block;
    margin-bottom: 2px;
    font-size: 0.72rem;
    font-weight: 700;
    color: var(--sol-accent);
}

.sol-features {
    list-style: none;
    display: grid;
    gap: 8px;
    margin: 0 0 16px;
    padding: 0;
}
.sol-features li {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    font-size: 0.88rem;
    line-height: 1.85;
    color: var(--text-muted);
}
.sol-features svg { width: 15px; height: 15px; flex: 0 0 auto; margin-top: 6px; color: var(--sol-accent); }

.sol-fit {
    margin: auto 0 16px;
    padding-top: 12px;
    border-top: 1px dashed var(--border);
    font-size: 0.82rem;
    line-height: 1.85;
    color: var(--text-muted);
}
.sol-fit strong { color: var(--text); font-weight: 700; }

.sol-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
}
.sol-order-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    border-radius: 999px;
    background: var(--sol-accent);
    color: #fff;
    font-size: 0.86rem;
    font-weight: 700;
    transition: gap 0.3s ease, filter 0.2s ease;
}
.sol-order-link svg { width: 15px; height: 15px; }
.sol-order-link:hover { gap: 12px; filter: brightness(1.08); color: #fff; }
.sol-more-link {
    font-size: 0.84rem;
    font-weight: 600;
    color: var(--text-muted);
    text-decoration: underline;
    text-underline-offset: 4px;
    text-decoration-color: rgba(15, 37, 87, 0.2);
}
.sol-more-link:hover { color: var(--navy); text-decoration-color: currentColor; }

/* ---------- روند کار ---------- */
.sol-how-steps {
    list-style: none;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
    margin: 0 0 24px;
    padding: 0;
    counter-reset: none;
}
.sol-how-step {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 22px;
    border-radius: 16px;
    background: #fff;
    box-shadow: inset 0 0 0 1px rgba(15, 37, 87, 0.07);
}
.sol-how-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    margin-bottom: 6px;
    border-radius: 50%;
    background: var(--navy);
    color: #fff;
    font-weight: 700;
    font-size: 0.9rem;
}
.sol-how-step strong { font-size: 1rem; }
.sol-how-step span:last-child { font-size: 0.9rem; line-height: 1.9; color: var(--text-muted); }

.sol-form { max-width: 700px; }

@media (max-width: 900px) {
    .sol-how-steps { grid-template-columns: 1fr; }
    .sol-filter { top: 94px; border-radius: 16px; width: auto; }
}
@media (max-width: 480px) {
    .sol-grid { grid-template-columns: 1fr; }
    .sol-group-count { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .sol-card, .sol-card::before, .sol-order-link { transition: none; }
}

/* ==========================================================================
   صفحه اصلی — بازچینی بر اساس بازطراحی معماری اطلاعات
   --------------------------------------------------------------------------
   • بلوک دوم «بقیه بخش‌ها» حذف شد؛ مدرسه و سیناپس به ردیف «جدا از این سه گام»
     زیر همان مسیر رفتند (یک بلوک، نه دو بلوک پشت‌سرهم با محتوای یکسان).
   • معرفی محصولات آماده جای آن نشست.
   • فرم تماس تکراری صفحه اصلی حذف شد؛ جایش یک نوار پایانی با یک دعوت اصلی.
   ========================================================================== */

/* لینک متنی برای دعوت‌های ثانویه — تا دکمه‌ی پرشده فقط برای دعوت اصلی بماند */
.cta-text-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-weight: 700;
    font-size: 0.95rem;
    color: var(--navy);
    text-decoration: underline;
    text-underline-offset: 5px;
    text-decoration-color: rgba(var(--navy-rgb), 0.25);
    transition: text-decoration-color 0.2s ease, color 0.2s ease;
}
.cta-text-link:hover { color: var(--navy); text-decoration-color: currentColor; }
.cta-text-link-light { color: rgba(255, 255, 255, 0.92); text-decoration-color: rgba(255, 255, 255, 0.4); }
.cta-text-link-light:hover { color: #fff; }

/* ---------- ردیف دعوت میانی زیر سه گام ---------- */
.path-cta-row {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 14px 22px;
    margin: 34px auto 0;
    text-align: center;
}
.path-cta-row p { margin: 0; color: var(--text-muted); font-size: 0.98rem; }

/* ---------- مدرسه و سیناپس: ردیف «جدا از این سه گام» ---------- */
.path-doors { margin-top: 44px; padding-top: 30px; border-top: 1px dashed rgba(15, 37, 87, 0.14); }
.path-doors-label {
    margin: 0 0 16px;
    text-align: center;
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--text-muted);
}
.path-doors-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}
.path-door {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 18px 20px;
    border-radius: 16px;
    background: #fff;
    color: inherit;
    box-shadow: inset 0 0 0 1px rgba(15, 37, 87, 0.07), 0 12px 30px -26px rgba(15, 37, 87, 0.45);
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.35s ease;
}
.path-door:hover {
    transform: translateY(-3px);
    box-shadow: inset 0 0 0 1px rgba(var(--navy-rgb), 0.16), 0 22px 44px -28px rgba(15, 37, 87, 0.5);
}
.path-door-icon {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 14px;
    background: rgba(99, 102, 241, 0.12);
    color: #4338CA;
}
.path-door-synapse .path-door-icon { background: rgba(var(--amber-rgb), 0.16); color: #B45309; }
.path-door-icon svg { width: 23px; height: 23px; }
.path-door-body { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1; }
.path-door-body strong { font-size: 1.02rem; }
.path-door-body span { font-size: 0.86rem; line-height: 1.8; color: var(--text-muted); }
.path-door-cta {
    flex: 0 0 auto;
    font-size: 0.84rem;
    font-weight: 700;
    color: var(--navy);
    white-space: nowrap;
    transition: transform 0.3s ease;
}
.path-door:hover .path-door-cta { transform: translateX(-4px); }
html[dir="ltr"] .path-door:hover .path-door-cta { transform: translateX(4px); }

/* ---------- معرفی محصولات آماده ---------- */
.home-sol {
    display: grid;
    grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr);
    gap: clamp(28px, 5vw, 64px);
    align-items: center;
}
.home-sol-intro h2 {
    font-size: clamp(1.8rem, 3.2vw, 2.45rem);
    line-height: 1.4;
    margin: 0 0 14px;
    text-wrap: balance;
}
.home-sol-intro > p { color: var(--text-muted); font-size: 1.02rem; line-height: 2; margin: 0 0 22px; }

.home-sol-cats {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 26px;
    padding: 0;
}
.home-sol-cat {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 14px;
    border-radius: 999px;
    background: var(--bg-alt);
    color: var(--text);
    font-size: 0.86rem;
    font-weight: 600;
    box-shadow: inset 0 0 0 1px rgba(15, 37, 87, 0.06);
    transition: background 0.2s ease, color 0.2s ease;
}
.home-sol-cat:hover { background: var(--navy); color: #fff; }
.home-sol-cat-count {
    padding: 1px 7px;
    border-radius: 999px;
    background: #fff;
    color: var(--text-muted);
    font-size: 0.72rem;
}
.home-sol-cat:hover .home-sol-cat-count { background: rgba(255, 255, 255, 0.2); color: #fff; }

.home-sol-list { display: grid; gap: 12px; }
.home-sol-item {
    --hs-accent: var(--navy);
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 4px 16px;
    padding: 20px 22px;
    padding-inline-start: 24px;
    border-radius: 18px;
    background: #fff;
    color: inherit;
    box-shadow: inset 0 0 0 1px rgba(15, 37, 87, 0.07), 0 16px 36px -30px rgba(15, 37, 87, 0.5);
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.35s ease;
}
.home-sol-item::before {
    content: "";
    position: absolute;
    inset-block: 18px;
    inset-inline-start: 0;
    width: 3px;
    border-radius: 3px;
    background: var(--hs-accent);
}
.home-sol-item-ml      { --hs-accent: #6D28D9; }
.home-sol-item-bots    { --hs-accent: #0E7490; }
.home-sol-item-finance { --hs-accent: #B45309; }
.home-sol-item-agents  { --hs-accent: #047857; }
.home-sol-item:hover {
    transform: translateX(-4px);
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--hs-accent) 25%, transparent), 0 22px 44px -30px rgba(15, 37, 87, 0.55);
}
html[dir="ltr"] .home-sol-item:hover { transform: translateX(4px); }
.home-sol-item-cat { grid-column: 1; font-size: 0.74rem; font-weight: 700; color: var(--hs-accent); }
.home-sol-item strong { grid-column: 1; font-size: 1.02rem; line-height: 1.6; }
.home-sol-item-problem { grid-column: 1; font-size: 0.88rem; line-height: 1.85; color: var(--text-muted); }
.home-sol-item-arrow {
    grid-column: 2;
    grid-row: 1 / span 3;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: var(--bg-alt);
    color: var(--hs-accent);
    transition: background 0.25s ease, color 0.25s ease;
}
.home-sol-item-arrow svg { width: 17px; height: 17px; }
.home-sol-item:hover .home-sol-item-arrow { background: var(--hs-accent); color: #fff; }

/* ---------- نوار پایانی: یک دعوت اصلی ---------- */
.home-closing { padding: 0 0 clamp(64px, 8vw, 96px); }
.home-closing-card {
    position: relative;
    overflow: hidden;
    padding: clamp(36px, 6vw, 64px) clamp(24px, 5vw, 56px);
    border-radius: 28px;
    background: var(--wash-deep);
    color: #fff;
    text-align: center;
}
.home-closing-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(60% 80% at 85% 0%, rgba(var(--cyan-rgb), 0.22), transparent 70%);
    pointer-events: none;
}
.home-closing-card > * { position: relative; z-index: 1; }
.home-closing-eyebrow {
    display: inline-block;
    margin-bottom: 14px;
    padding: 6px 14px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
    font-size: 0.8rem;
    font-weight: 600;
}
.home-closing-card h2 {
    color: #fff;
    font-size: clamp(1.8rem, 3.6vw, 2.6rem);
    line-height: 1.4;
    margin: 0 auto 14px;
    max-width: 22ch;
    text-wrap: balance;
}
.home-closing-card p {
    margin: 0 auto 28px;
    max-width: 56ch;
    color: rgba(255, 255, 255, 0.82);
    font-size: 1.03rem;
    line-height: 2;
}
.home-closing-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 14px 26px;
}

/* ---------- لینک انتهای بلوک‌های «دقیقاً چه چیزی تحویل می‌گیرید» ---------- */
.deliverable-link {
    display: inline-flex;
    margin-top: 16px;
    font-size: 0.86rem;
    font-weight: 700;
    line-height: 1.8;
    color: var(--cyan-text);
    text-decoration: underline;
    text-underline-offset: 4px;
    text-decoration-color: rgba(var(--cyan-rgb), 0.35);
}
.deliverable-link:hover { text-decoration-color: currentColor; }

@media (max-width: 960px) {
    .home-sol { grid-template-columns: 1fr; }
}
@media (max-width: 720px) {
    .path-doors-grid { grid-template-columns: 1fr; }
    .path-door-cta { display: none; }
}
@media (prefers-reduced-motion: reduce) {
    .path-door, .home-sol-item, .path-door-cta { transition: none; }
}

/* ==========================================================================
   وبلاگ (فیلتر + صفحه‌بندی)، تحلیل‌های سیناپس، خلاصه‌ی فارسی پروژه‌ها، مهلت جشنواره
   ========================================================================== */
.blog-filter { top: 96px; margin-bottom: 32px; }

.article-meta { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; }
.article-card .article-meta .article-date { margin: 0; }
.article-tag {
    display: inline-flex;
    padding: 3px 10px;
    border-radius: 999px;
    font-size: 0.72rem;
    font-weight: 700;
    background: rgba(var(--navy-rgb), 0.08);
    color: var(--navy);
}
.article-tag-ai-content { background: rgba(var(--cyan-rgb), 0.12);  color: #0E7490; }
.article-tag-automation { background: rgba(var(--green-rgb), 0.12); color: #047857; }
.article-tag-finance    { background: rgba(var(--amber-rgb), 0.16); color: #92400E; }
.article-tag-school     { background: rgba(99, 102, 241, 0.12);     color: #4338CA; }

.pager {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 40px;
}
.pager a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 14px;
    border-radius: 12px;
    font-weight: 600;
    font-size: 0.9rem;
    color: var(--text);
    background: #fff;
    box-shadow: inset 0 0 0 1px rgba(15, 37, 87, 0.08);
    transition: background 0.2s ease, color 0.2s ease;
}
.pager a:hover { background: var(--bg-alt); color: var(--navy); }
.pager a.is-current { background: var(--navy); color: #fff; box-shadow: none; }

.project-summary { color: var(--text); line-height: 1.95; margin-bottom: 8px; }
.project-desc-en {
    text-align: left;
    font-size: 0.8rem !important;
    line-height: 1.7;
    color: var(--text-muted) !important;
    opacity: 0.85;
}

.course-price-deadline { color: #B45309; font-weight: 700; }

/* ==========================================================================
   «کجای کار هستید؟» — الگوی مشترک فرم سه صفحه‌ی خدمت
   نمایش فیلدهای هر مرحله با :has() — بدون جاوااسکریپت. مرورگر قدیمی که :has را
   نمی‌شناسد هر دو گروه فیلد را می‌بیند و فرم همچنان کار می‌کند.
   ========================================================================== */
.stage-switch { border: 0; padding: 0; margin: 0 0 22px; min-width: 0; }
.stage-switch legend { padding: 0; margin-bottom: 10px; font-weight: 600; font-size: 0.92rem; }
.stage-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.stage-option {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 14px;
    border-radius: 12px;
    background: var(--bg-alt);
    box-shadow: inset 0 0 0 1.5px var(--border);
    cursor: pointer;
    transition: box-shadow 0.2s ease, background 0.2s ease;
}
.stage-option input { margin-top: 5px; accent-color: var(--navy); flex: 0 0 auto; }
.stage-option strong { display: block; font-size: 0.93rem; }
.stage-option small { display: block; margin-top: 2px; font-size: 0.8rem; line-height: 1.7; color: var(--text-muted); }
.stage-option:hover { box-shadow: inset 0 0 0 1.5px rgba(var(--navy-rgb), 0.35); }
.stage-option:has(input:checked) { background: rgba(var(--cyan-rgb), 0.08); box-shadow: inset 0 0 0 2px var(--navy); }
.stage-option:has(input:focus-visible) { outline: 2px solid var(--cyan); outline-offset: 2px; }

[data-stage-form]:has(input[name="stage"][value="project"]:checked) [data-stage-panel="consult"],
[data-stage-form]:has(input[name="stage"][value="consult"]:checked) [data-stage-panel="project"],
[data-stage-form]:has(input[name="stage"][value="project"]:checked) [data-stage-label="consult"],
[data-stage-form]:has(input[name="stage"][value="consult"]:checked) [data-stage-label="project"] { display: none; }

.anchor-alias { display: block; position: relative; top: -110px; visibility: hidden; }

@media (max-width: 520px) {
    .stage-options { grid-template-columns: 1fr; }
}

/* دکمه‌ی «رزرو مشاوره» در نوبارِ روی هیرو: قاعده‌ی .navbar-over-hero(.scrolled) .nav-links > a
   رنگ همه‌ی لینک‌ها را تیره/سفید می‌کرد و متن این دکمه‌ی سرمه‌ای را هم تیره می‌کرد —
   روی صفحه اصلی بعد از اسکرول تقریباً نامرئی بود. */
.navbar-over-hero .nav-links > a.nav-cta,
.navbar-over-hero.scrolled .nav-links > a.nav-cta { color: #fff; background: var(--navy); }
.navbar-over-hero .nav-links > a.nav-cta:hover,
.navbar-over-hero.scrolled .nav-links > a.nav-cta:hover { color: var(--navy-deep); background: var(--cyan); }

/* ---------- پنل نرخ‌ها: وضعیت و دکمه‌های جشنواره ---------- */
.festival-status { margin: 4px 0 10px; }
.festival-badge { display: inline-flex; padding: 5px 12px; border-radius: 999px; font-size: 0.82rem; font-weight: 700; }
.festival-badge.is-active { background: rgba(var(--green-rgb), 0.14); color: #047857; }
.festival-badge.is-ended  { background: rgba(var(--amber-rgb), 0.16); color: #92400E; }
.festival-badge.is-open   { background: var(--bg-alt); color: var(--text-muted); }
.festival-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 8px; }
.festival-actions .btn { padding: 9px 16px; font-size: 0.86rem; }

/* ==========================================================================
   اصلاحات ۲۵ شهریور — خط توضیح زیر دکمه‌ی مشاوره، پرداخت خارج از ایران،
   یادآوری کوتاه پرداخت در فرم، و خوش‌آمد/سؤال‌های پیشنهادی چت‌بات
   ========================================================================== */
.hero-cta-note {
    margin-top: 10px;
    font-size: 0.82rem;
    color: var(--text-muted);
}
.hero.hero-video .hero-cta-note { color: rgba(255, 255, 255, 0.78); }

.payment-intl {
    margin-top: 22px;
    padding: 16px 18px;
    border-radius: 14px;
    background: var(--bg-alt);
    border: 1px solid var(--border);
}
.payment-intl strong { display: block; color: var(--navy); margin-bottom: 6px; }
.payment-intl p { color: var(--text-muted); font-size: 0.9rem; line-height: 1.8; margin-bottom: 12px; }
.payment-intl .btn { padding: 9px 18px; font-size: 0.86rem; }

.form-card-reminder-owner { font-size: 0.88rem; color: var(--text); margin-top: 0; }
.form-card-reminder-link {
    display: inline-block;
    margin-top: 6px;
    font-size: 0.82rem;
    font-weight: 700;
    color: var(--cyan-text);
}

.chat-bubble-bot a { color: var(--cyan-text); font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.chat-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-self: stretch;
}
.chat-chip {
    font: inherit;
    font-size: 0.8rem;
    padding: 7px 12px;
    border-radius: 999px;
    border: 1px solid rgba(var(--cyan-rgb), 0.45);
    background: rgba(var(--cyan-rgb), 0.06);
    color: var(--cyan-text);
    cursor: pointer;
    text-align: start;
}
.chat-chip:hover,
.chat-chip:focus-visible { background: rgba(var(--cyan-rgb), 0.14); outline: none; }
