/* =========================================================================
   ایران‌گاه — لایه پوسته (Shell): توکن‌ها، هدر، سایدبار، فوتر
   نسخه: v2 (2026-09)
   مقصد در پروداکشن: public/css/shell-v2.css
   وابستگی: ندارد. عمداً بدون Bootstrap نوشته شده تا مستقل و سبک باشد.
   ========================================================================= */

/* ---------- 1) فونت ---------------------------------------------------- */
@font-face {
    font-family: 'IRANSansXFaNum';
    src: url('/theme/css/custom/fonts/iransansfanum/woff2/IRANSansWeb(FaNum)_Light.woff2') format('woff2');
    font-weight: 300;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'IRANSansXFaNum';
    src: url('/theme/css/custom/fonts/iransansfanum/woff2/IRANSansWeb(FaNum).woff2') format('woff2');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'IRANSansXFaNum';
    src: url('/theme/css/custom/fonts/iransansfanum/woff2/IRANSansWeb(FaNum)_Medium.woff2') format('woff2');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'IRANSansXFaNum';
    src: url('/theme/css/custom/fonts/iransansfanum/woff2/IRANSansWeb(FaNum)_Bold.woff2') format('woff2');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

/* ---------- 2) توکن‌های طراحی ------------------------------------------ */
:root {
    /* هویت برند — همان آبی فعلی ایران‌گاه */
    --ir-primary: #0044bb;
    --ir-primary-hover: #0035a0;
    --ir-primary-active: #002a80;
    --ir-primary-soft: #eef4ff;
    --ir-primary-soft-2: #dde9ff;
    --ir-primary-border: #c3d9ff;
    --ir-primary-contrast: #ffffff;

    /* خنثی‌ها */
    --ir-ink: #0f172a;
    --ir-body: #475569;
    --ir-muted: #64748b;
    --ir-line: #e2e8f0;
    --ir-line-soft: #eef2f7;
    --ir-surface: #ffffff;
    --ir-bg: #f7f9fc;
    --ir-bg-alt: #f1f5f9;

    /* وضعیت‌ها */
    --ir-success: #0f8a4d;
    --ir-danger: #c62828;

    /* شعاع و سایه */
    --ir-r-xs: 8px;
    --ir-r-sm: 12px;
    --ir-r-md: 16px;
    --ir-r-lg: 22px;
    --ir-r-pill: 999px;
    --ir-shadow-xs: 0 1px 2px rgba(15, 23, 42, .06);
    --ir-shadow-sm: 0 2px 8px rgba(15, 23, 42, .06);
    --ir-shadow-md: 0 6px 20px rgba(15, 23, 42, .08);
    --ir-shadow-lg: 0 16px 40px rgba(15, 23, 42, .14);

    /* ابعاد */
    --ir-container: 1240px;
    --ir-gutter: 16px;
    --ir-header-h: 86px;
    --ir-sidebar-w: 336px;

    /* فوکوس */
    --ir-focus: #1d4ed8;
    --ir-focus-ring: 0 0 0 3px rgba(29, 78, 216, .35);

    /* لایه‌بندی z-index — پیش‌تر همه چیز روی z-index:3 بود و تداخل داشت */
    --ir-z-header: 100;
    --ir-z-backdrop: 200;
    --ir-z-sidebar: 210;
    --ir-z-bottombar: 90;
    --ir-z-toast: 400;
}

/* ---------- 3) ریست پایه ----------------------------------------------- */
*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    -webkit-text-size-adjust: 100%;
    scroll-behavior: smooth;
    /* جای اسکرول‌بار همیشه رزرو می‌شود، پس هنگام باز شدن سایدبار و قفل شدن
       اسکرول، صفحه به چپ و راست نمی‌پرد. جایگزین تنظیم دستی padding در JS
       که در RTL سمت اشتباه را پدینگ می‌داد. */
    scrollbar-gutter: stable;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    *,
    *::before,
    *::after {
        animation-duration: .001ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001ms !important;
    }
}

body.ir-v2 {
    margin: 0;
    font-family: 'IRANSansXFaNum', 'IRANSansfanum', 'IRANSans', 'Vazirmatn', Tahoma, system-ui, sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.9;
    color: var(--ir-body);
    background: var(--ir-bg);
    direction: rtl;
    text-align: right;
    overflow-wrap: break-word;
}

body.ir-v2.is-scroll-locked {
    overflow: hidden;
}

/* در صفحات داخلی، پوستهٔ جدید جدا از محتوای قدیمی نگه داشته می‌شود تا
   resetهای v2 تایپوگرافی و لیست‌های قالب قبلی را تغییر ندهند. */
body.ir-v2-shell.is-scroll-locked {
    overflow: hidden;
}

.ir-v2-chrome {
    font-family: 'IRANSansXFaNum', 'IRANSansfanum', 'IRANSans', 'Vazirmatn', Tahoma, system-ui, sans-serif;
    font-size: 16px;
    font-weight: 400;
    line-height: 1.9;
    color: var(--ir-body);
    direction: rtl;
    text-align: right;
    overflow-wrap: break-word;
}

/* هدر را از جعبهٔ کوتاهِ chrome خارج می‌کند تا position:sticky
   نسبت به اسکرول صفحه کار کند؛ فونت و رنگ از همین کلاس به ارث می‌رسد. */
.ir-v2-chrome--header {
    display: contents;
}

/* ============ قواعد ریست ============
   همه داخل :where() پیچیده شده‌اند تا اختصاصیتشان صفر شود.
   قاعده ریست هرگز نباید از استایل یک کامپوننت قوی‌تر باشد؛ در غیر این‌صورت
   هر کامپوننت مجبور می‌شود برای بازپس‌گیری یک رنگ ساده، یا اختصاصیت را
   بالا ببرد یا !important بزند. نمونه‌های واقعی همین پروژه:
     .ir-v2 h1 (0,1,1)     بر  .ir-hero__title (0,1,0)     غلبه می‌کرد → تیتر مشکی
     .ir-v2 button (0,1,1) بر  .ir-btn--primary (0,1,0)    غلبه می‌کرد → متن دکمه نامرئی
     .ir-v2 a (0,1,1)      بر  .ir-btn--primary (0,1,0)    غلبه می‌کرد → متن دکمه نامرئی
   ==================================== */
.ir-v2 :where(h1, h2, h3, h4, h5, h6) {
    margin: 0 0 .5em;
    color: var(--ir-ink);
    font-weight: 700;
    line-height: 1.55;
    letter-spacing: 0;
}

.ir-v2 :where(p) {
    margin: 0 0 1em;
}

/* :where() اختصاصیت را صفر می‌کند، پس این قاعده پایه است و هر کامپوننتی
   (دکمه، کارت، آیتم منو) می‌تواند رنگ خودش را بدون !important تعیین کند.
   بدون :where() اختصاصیت این قاعده (0,1,1) از .ir-btn--primary یعنی (0,1,0)
   بیشتر می‌شد و متن دکمه‌های آبی، آبی روی آبی و نامرئی می‌ماند. */
.ir-v2 :where(a) {
    color: var(--ir-primary);
    text-decoration: none;
    transition: color .15s ease;
}

.ir-v2 :where(a:hover) {
    color: var(--ir-primary-hover);
    text-decoration: underline;
    text-underline-offset: 3px;
}

.ir-v2 :where(img) {
    max-width: 100%;
    height: auto;
}

.ir-v2 :where(ul, ol) {
    margin: 0;
    padding: 0;
    list-style: none;
}

.ir-v2 :where(button) {
    font: inherit;
    color: inherit;
}

/* حلقه فوکوس یکسان و قابل‌رؤیت در کل سایت — قبلاً روی اکثر عناصر وجود نداشت */
.ir-v2 :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 2px solid var(--ir-focus);
    outline-offset: 2px;
    border-radius: var(--ir-r-xs);
}

/* ---------- 4) کمکی‌ها -------------------------------------------------- */
.ir-container {
    width: 100%;
    max-width: var(--ir-container);
    margin-inline: auto;
    padding-inline: var(--ir-gutter);
}

/* اسپرایت آیکون‌ها: باید در DOM باشد ولی فضایی اشغال نکند */
.ir-sprite {
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden;
}

.ir-visually-hidden {
    position: absolute !important;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
}

/* پرش به محتوا — برای کاربران کیبورد و صفحه‌خوان */
.ir-skip-link {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 500;
    transform: translateY(-200%);
    padding: 10px 18px;
    background: var(--ir-primary);
    color: #fff;
    border-radius: var(--ir-r-xs);
    font-weight: 700;
    box-shadow: var(--ir-shadow-md);
    transition: transform .18s ease;
}

.ir-skip-link:focus {
    transform: translateY(0);
    color: #fff;
    text-decoration: none;
}

/* ---------- 5) دکمه‌ها --------------------------------------------------- */
.ir-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    /* حداقل اندازه هدف لمسی طبق WCAG 2.5.8 */
    padding: 10px 20px;
    border: 1px solid transparent;
    border-radius: var(--ir-r-xs);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.4;
    cursor: pointer;
    text-decoration: none !important;
    transition: background-color .16s ease, border-color .16s ease, color .16s ease, transform .16s ease;
}

.ir-btn:active {
    transform: translateY(1px);
}

/* الگوی .block.block--modifier عمدی است و اختصاصیت را به (0,2,0) می‌رساند.
   دلیل: دکمه باید هر جای صفحه قرار بگیرد رنگ خودش را نگه دارد. با اختصاصیت
   (0,1,0) قواعد زمینه‌ای مثل .ir-footer a یعنی (0,1,1) آن را بازنویسی می‌کردند
   و متن دکمه CTA در فوتر رنگ لینک‌های فوتر را می‌گرفت. */
.ir-btn.ir-btn--primary {
    background: var(--ir-primary);
    border-color: var(--ir-primary);
    color: #fff;
}

.ir-btn.ir-btn--primary:hover {
    background: var(--ir-primary-hover);
    border-color: var(--ir-primary-hover);
    color: #fff;
}

.ir-btn.ir-btn--outline {
    background: transparent;
    border-color: var(--ir-primary);
    color: var(--ir-primary);
}

.ir-btn.ir-btn--outline:hover {
    background: var(--ir-primary-soft);
    color: var(--ir-primary-hover);
}

.ir-btn.ir-btn--ghost {
    background: transparent;
    border-color: var(--ir-line);
    color: var(--ir-ink);
}

.ir-btn.ir-btn--ghost:hover {
    background: var(--ir-bg-alt);
    color: var(--ir-ink);
}

.ir-btn--sm {
    min-height: 38px;
    padding: 7px 14px;
    font-size: 14px;
}

.ir-btn--block {
    width: 100%;
}

.ir-icon {
    width: 1.15em;
    height: 1.15em;
    flex: none;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* ---------- 6) هدر ------------------------------------------------------ */
.ir-header {
    position: sticky;
    top: 0;
    z-index: var(--ir-z-header);
    background: var(--ir-surface);
    border-bottom: 1px solid var(--ir-line);
    transition: box-shadow .2s ease;
}

.ir-header.is-stuck {
    box-shadow: var(--ir-shadow-sm);
}

.ir-header__inner {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: var(--ir-header-h);
}

.ir-header__start,
.ir-header__end {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1 1 0;
}

.ir-header__end {
    justify-content: flex-end;
}

.ir-header__brand {
    display: inline-flex;
    align-items: center;
    flex: none;
}

/* ارتفاع لوگو با نسخه فعلی سایت هم‌تراز شد (آنجا ۷۲px است) */
.ir-header__brand img {
    width: auto;
    height: 68px;
    display: block;
}

.ir-iconbtn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: 1px solid transparent;
    border-radius: var(--ir-r-xs);
    background: transparent;
    color: var(--ir-ink);
    cursor: pointer;
    transition: background-color .15s ease, color .15s ease;
}

.ir-iconbtn:hover {
    background: var(--ir-bg-alt);
    color: var(--ir-primary);
}

.ir-iconbtn .ir-icon {
    width: 22px;
    height: 22px;
}

.ir-header__link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 44px;
    padding: 0 12px;
    border-radius: var(--ir-r-xs);
    color: var(--ir-ink);
    font-size: 15px;
    font-weight: 500;
}

.ir-header__link:hover {
    background: var(--ir-bg-alt);
    color: var(--ir-primary);
    text-decoration: none;
}

@media (max-width: 575.98px) {
    :root {
        --ir-header-h: 68px;
    }

    .ir-header__brand img {
        height: 52px;
    }

    .ir-header__link--login span {
        display: none;
    }

    /* ثبت‌نام رایگان روی موبایل: نسخهٔ فعلی روی گوشی خیلی بزرگ و
       غالب به‌نظر می‌رسید — متن دو خط می‌شد و از ارتفاع هدر بیرون می‌زد.
       اینجا به یک قرص فشرده و تک‌خط تبدیل می‌شود؛ آیکون پلاس روی این
       اندازه چیزی اضافه نمی‌کرد، حذف شد. */
    .ir-header .ir-btn--primary {
        min-height: 34px;
        padding: 6px 12px;
        font-size: 12.5px;
        white-space: nowrap;
    }

    .ir-header .ir-btn--primary .ir-icon {
        display: none;
    }
}

/* ---------- 6-ب) منوی افقی زیر لوگو (فقط دسکتاپ) — اسناد ۱۴۰۵۰۷۰۷ -------- */
/* هر پیوند یک «قرص» با کاشی آیکن رنگی است. رنگ هر بخش از style درون‌خطی می‌آید:
   --c رنگ اصلی و --s زمینهٔ کم‌رنگ همان رنگ. */
.ir-topnav {
    display: none;
}

@media (min-width: 992px) {
    .ir-topnav {
        display: block;
        border-top: 1px solid var(--ir-line-soft);
        background: linear-gradient(180deg, #fbfcfe 0%, #f5f8fd 100%);
    }

    .ir-topnav__list {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 6px;
        padding-block: 8px;
        overflow-x: auto;
        scrollbar-width: none;
    }

    .ir-topnav__list::-webkit-scrollbar {
        display: none;
    }

    .ir-topnav__list li {
        flex: none;
    }

    .ir-topnav__link {
        --c: var(--ir-primary);
        --s: var(--ir-primary-soft);
        position: relative;
        display: inline-flex;
        align-items: center;
        gap: 9px;
        min-height: 42px;
        padding: 5px 14px 5px 10px;
        border: 1px solid transparent;
        border-radius: 999px;
        color: var(--ir-ink);
        font-size: 14.5px;
        font-weight: 600;
        white-space: nowrap;
        transition: background-color .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease, transform .18s ease;
    }

    .ir-topnav__ico {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: 30px;
        height: 30px;
        flex: none;
        border-radius: 10px;
        background: var(--s);
        color: var(--c);
        transition: background-color .18s ease, color .18s ease, transform .25s cubic-bezier(.2, .8, .2, 1);
    }

    .ir-topnav__ico .ir-icon {
        width: 17px;
        height: 17px;
        stroke-width: 1.9;
    }

    .ir-topnav__link:hover,
    .ir-topnav__link:focus-visible {
        border-color: var(--s);
        background: #fff;
        color: var(--c);
        text-decoration: none;
        box-shadow: 0 6px 18px rgba(15, 23, 42, .08);
        transform: translateY(-1px);
    }

    .ir-topnav__link:hover .ir-topnav__ico,
    .ir-topnav__link:focus-visible .ir-topnav__ico {
        background: var(--c);
        color: #fff;
        transform: rotate(-8deg) scale(1.06);
    }

    .ir-topnav__link[aria-current="page"] {
        border-color: var(--c);
        background: var(--s);
        color: var(--c);
        font-weight: 800;
        box-shadow: none;
        transform: none;
    }

    .ir-topnav__link[aria-current="page"] .ir-topnav__ico {
        background: var(--c);
        color: #fff;
    }

    /* «ایران»: نوار سه‌رنگ پرچم زیر پیوند و کاشی آیکن سه‌رنگ */
    .ir-topnav__link--featured .ir-topnav__ico {
        background: linear-gradient(180deg, #1d9a4e 0 33%, #ffffff 33% 66%, #da2a2a 66% 100%);
        color: #0f172a;
        box-shadow: inset 0 0 0 1px rgba(15, 23, 42, .08);
    }

    .ir-topnav__link--featured::after {
        content: "";
        position: absolute;
        inset-inline: 16px;
        bottom: 3px;
        height: 2px;
        border-radius: 2px;
        background: linear-gradient(90deg, #1d9a4e 0 33%, #e2e8f0 33% 66%, #da2a2a 66% 100%);
        opacity: .9;
    }
}

@media (min-width: 992px) and (max-width: 1199.98px) {
    .ir-topnav__list {
        justify-content: flex-start;
        gap: 2px;
    }

    .ir-topnav__link {
        gap: 7px;
        padding: 4px 10px 4px 7px;
        font-size: 13.5px;
    }

    .ir-topnav__ico {
        width: 26px;
        height: 26px;
        border-radius: 8px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ir-topnav__link,
    .ir-topnav__ico {
        transition: none;
        transform: none !important;
    }
}

/* ---------- 7) سایدبار (کشوی راست) -------------------------------------- */
.ir-backdrop {
    position: fixed;
    inset: 0;
    z-index: var(--ir-z-backdrop);
    background: rgba(15, 23, 42, .55);
    backdrop-filter: blur(2px);
    opacity: 0;
    visibility: hidden;
    transition: opacity .22s ease, visibility .22s ease;
}

.ir-backdrop.is-open {
    opacity: 1;
    visibility: visible;
}

/* عمداً از ویژگی‌های فیزیکی (right/left) استفاده شده، نه منطقی.
   دلیل: در RTL مقدار inset-inline-end به لبه «چپ» اشاره می‌کند، ولی
   transform: translateX() همیشه فیزیکی است و با جهت صفحه برعکس نمی‌شود.
   ترکیب این دو، کشو را از سمت اشتباه باز می‌کرد. */
.ir-sidebar {
    position: fixed;
    top: 0;
    bottom: 0;
    right: 0;
    left: auto;
    z-index: var(--ir-z-sidebar);
    display: flex;
    flex-direction: column;
    width: min(var(--ir-sidebar-w), 88vw);
    height: 100dvh;
    /* 100dvh به‌جای 100vh — مشکل نوار آدرس موبایل را حل می‌کند */
    background: var(--ir-surface);
    box-shadow: var(--ir-shadow-lg);
    transform: translateX(100%);
    visibility: hidden;
    transition: transform .28s cubic-bezier(.22, .61, .36, 1), visibility .28s;
}

[dir="ltr"] .ir-sidebar {
    right: auto;
    left: 0;
    transform: translateX(-100%);
}

.ir-sidebar.is-open {
    transform: translateX(0);
    visibility: visible;
}

.ir-sidebar__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex: none;
    padding: 14px 16px;
    border-bottom: 1px solid var(--ir-line);
}

.ir-sidebar__brand img {
    width: auto;
    height: 60px;
    display: block;
}

.ir-sidebar__body {
    flex: 1 1 auto;
    overflow-y: auto;
    overscroll-behavior: contain;
    /* از اسکرول شدن صفحه پشت سایدبار جلوگیری می‌کند */
    -webkit-overflow-scrolling: touch;
    padding: 16px;
}

/* کارت پروفایل / مهمان */
.ir-sidebar__profile {
    padding: 18px 16px;
    border: 1px solid var(--ir-primary-border);
    border-radius: var(--ir-r-md);
    background: linear-gradient(180deg, var(--ir-primary-soft) 0%, #fff 100%);
    text-align: center;
}

.ir-sidebar__avatar {
    width: 64px;
    height: 64px;
    margin: 0 auto 10px;
    border-radius: 50%;
    object-fit: cover;
    background: #fff;
    border: 2px solid var(--ir-primary-border);
    display: block;
}

.ir-sidebar__welcome {
    margin: 0 0 4px;
    font-size: 15px;
    font-weight: 700;
    color: var(--ir-ink);
}

.ir-sidebar__hint {
    margin: 0 0 14px;
    font-size: 13px;
    line-height: 1.7;
    color: var(--ir-muted);
}

.ir-sidebar__auth {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
}

.ir-sidebar__username {
    display: block;
    margin: 0 0 2px;
    font-size: 16px;
    font-weight: 700;
    color: var(--ir-ink);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* دکمه اصلی ثبت کسب‌وکار */
.ir-sidebar__cta {
    margin-top: 14px;
}

/* گروه‌های ناوبری — با details/summary تا بدون جاوااسکریپت هم کار کند */
.ir-nav {
    margin-top: 18px;
}

.ir-nav__group {
    border-top: 1px solid var(--ir-line-soft);
}

.ir-nav__group:first-child {
    border-top: 0;
}

.ir-nav__group>summary {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 8px;
    cursor: pointer;
    list-style: none;
    color: var(--ir-muted);
    font-size: 12.5px;
    font-weight: 700;
    letter-spacing: .02em;
    user-select: none;
}

.ir-nav__group>summary::-webkit-details-marker {
    display: none;
}

.ir-nav__group>summary:hover {
    color: var(--ir-ink);
}

.ir-nav__chevron {
    width: 16px;
    height: 16px;
    margin-inline-start: auto;
    transition: transform .2s ease;
}

.ir-nav__group[open]>summary .ir-nav__chevron {
    transform: rotate(180deg);
}

.ir-nav__list {
    padding-bottom: 8px;
}

.ir-nav__link {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 46px;
    padding: 8px 12px;
    border-radius: var(--ir-r-xs);
    color: var(--ir-ink);
    font-size: 15px;
    font-weight: 500;
    line-height: 1.5;
}

.ir-nav__link:hover {
    background: var(--ir-bg-alt);
    color: var(--ir-primary);
    text-decoration: none;
}

.ir-nav__link .ir-icon {
    width: 20px;
    height: 20px;
    color: var(--ir-muted);
    transition: color .15s ease;
}

.ir-nav__link:hover .ir-icon {
    color: var(--ir-primary);
}

/* صفحه جاری — پیش‌تر هیچ نشانه‌ای برای صفحه فعال وجود نداشت */
.ir-nav__link[aria-current="page"] {
    background: var(--ir-primary-soft);
    color: var(--ir-primary);
    font-weight: 700;
}

.ir-nav__link[aria-current="page"] .ir-icon {
    color: var(--ir-primary);
}

.ir-nav__badge {
    margin-inline-start: auto;
    padding: 1px 9px;
    border-radius: var(--ir-r-pill);
    background: var(--ir-bg-alt);
    color: var(--ir-muted);
    font-size: 11.5px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
}

.ir-sidebar__foot {
    flex: none;
    padding: 14px 16px calc(14px + env(safe-area-inset-bottom));
    border-top: 1px solid var(--ir-line);
    text-align: center;
    background: var(--ir-bg);
}

.ir-social {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-bottom: 10px;
}

.ir-social a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    border: 1px solid var(--ir-line);
    background: var(--ir-surface);
    color: var(--ir-muted);
    transition: color .15s ease, border-color .15s ease, background-color .15s ease;
}

.ir-social a:hover {
    color: var(--ir-primary);
    border-color: var(--ir-primary-border);
    background: var(--ir-primary-soft);
}

.ir-social .ir-icon {
    width: 18px;
    height: 18px;
}

.ir-sidebar__copy {
    margin: 0;
    font-size: 11.5px;
    line-height: 1.8;
    color: var(--ir-muted);
}

/* ---------- 8) فوتر ----------------------------------------------------- */
.ir-footer {
    margin-top: 44px;
    background: #0b1733;
    color: #b8c4d9;
}

.ir-footer a {
    color: #d7e2f5;
}

.ir-footer a:hover {
    color: #fff;
}

.ir-footer__cta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 20px 0;
    border-bottom: 1px solid rgba(255, 255, 255, .1);
}

.ir-footer__cta h2 {
    margin: 0;
    color: #fff;
    font-size: 20px;
}

.ir-footer__cta p {
    margin: 4px 0 0;
    font-size: 14px;
    color: #9fb0cc;
}

.ir-footer__cta .ir-btn.ir-btn--primary {
    background: #2f6bff;
    border-color: #2f6bff;
    color: #fff;
}

.ir-footer__cta .ir-btn.ir-btn--primary:hover {
    background: #1c56e8;
    border-color: #1c56e8;
    color: #fff;
}

/* سند ۱۴۰۵۰۷۰۷، مورد ۴: پنج بلوک در یک ردیف. قبلاً ۴ ستون بود و «ارتباط با ما»
   به ردیف دوم می‌رفت و فوتر را بلند می‌کرد؛ حالا ستون آخر (سمت چپ) است. */
.ir-footer__grid {
    display: grid;
    grid-template-columns: 1.35fr 1fr 1fr 1.1fr 1.25fr;
    gap: 24px;
    padding: 28px 0 18px;
}

.ir-footer h3 {
    margin: 0 0 10px;
    color: #fff;
    font-size: 15px;
    font-weight: 700;
}

.ir-footer p {
    font-size: 14px;
    line-height: 2;
}

.ir-footer__links li+li {
    margin-top: 2px;
}

.ir-footer__links a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 3px 0;
    font-size: 14px;
    text-decoration: none;
}

.ir-footer__links a:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.ir-footer__links .ir-icon {
    width: 14px;
    height: 14px;
    color: #64769b;
}

.ir-footer__addr {
    display: flex;
    gap: 10px;
    font-size: 14px;
    line-height: 1.9;
}

.ir-footer__addr .ir-icon {
    width: 18px;
    height: 18px;
    flex: none;
    margin-top: 6px;
    color: #64769b;
}

.ir-footer__trust {
    margin-top: 10px;
    display: inline-block;
    padding: 6px;
    background: #fff;
    border-radius: var(--ir-r-xs);
    line-height: 0;
}

.ir-footer__bottom {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 0 18px;
    border-top: 1px solid rgba(255, 255, 255, .1);
    font-size: 13px;
}

.ir-footer__bottom p {
    margin: 0;
}

.ir-footer .ir-social a {
    background: rgba(255, 255, 255, .06);
    border-color: rgba(255, 255, 255, .14);
    color: #c3cfe4;
}

.ir-footer .ir-social a:hover {
    background: rgba(255, 255, 255, .14);
    border-color: rgba(255, 255, 255, .3);
    color: #fff;
}

.ir-footer .ir-social {
    margin-bottom: 0;
}

@media (max-width: 1199.98px) {
    .ir-footer__grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .ir-footer__grid > :first-child {
        grid-column: span 3;
    }

    .ir-footer__grid > :last-child {
        grid-column: span 2;
    }
}

@media (max-width: 767.98px) {
    /* موبایل: دو ستون کنار هم به جای یک ستون بلند؛ «درباره» و «ارتباط» تمام‌عرض */
    .ir-footer__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 20px 16px;
    }

    .ir-footer__grid > :first-child,
    .ir-footer__grid > :last-child {
        grid-column: 1 / -1;
    }
}

@media (max-width: 575.98px) {

    .ir-footer__cta {
        flex-direction: column;
        align-items: stretch;
        text-align: center;
    }

    .ir-footer__cta .ir-btn {
        width: 100%;
    }
}

/* ---------- 9) نوار پایین موبایل --------------------------------------- */
.ir-bottombar {
    position: fixed;
    inset-inline: 0;
    bottom: 0;
    z-index: var(--ir-z-bottombar);
    display: none;
    background: var(--ir-surface);
    border-top: 1px solid var(--ir-line);
    box-shadow: 0 -2px 12px rgba(15, 23, 42, .07);
    padding-bottom: env(safe-area-inset-bottom);
}

.ir-bottombar__list {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: 1fr;
}

.ir-bottombar__link {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    width: 100%;
    min-height: 58px;
    /* ریست، چون یکی از آیتم‌ها <button> است و بقیه <a> */
    padding: 0;
    border: 0;
    background: none;
    cursor: pointer;
    color: var(--ir-muted);
    font-size: 11.5px;
    font-weight: 500;
}

.ir-bottombar__link:hover,
.ir-bottombar__link[aria-current="page"] {
    color: var(--ir-primary);
    text-decoration: none;
}

.ir-bottombar__link .ir-icon {
    width: 21px;
    height: 21px;
}

@media (max-width: 767.98px) {
    .ir-bottombar {
        display: block;
    }

    body.ir-v2,
    body.ir-v2-shell {
        padding-bottom: 58px;
    }
}

/* ---------- 10) کامپوننت‌های صفحهٔ داخلی -------------------------------
   بردکرامب، هدر صفحه، نوار فیلتر و صفحه‌بندی — همهٔ صفحات فهرستی سایت
   (بانک‌ها، دانشگاه‌ها، شهرها، وب‌سایت‌ها و ...) از این‌ها استفاده می‌کنند،
   پس در shell (سراسری) هستند نه در home.css.
   ------------------------------------------------------------------- */
.ir-breadcrumb {
    margin: 18px 0;
    font-size: 13px;
}

.ir-breadcrumb__list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    color: var(--ir-muted);
}

.ir-breadcrumb__list li {
    display: flex;
    align-items: center;
    gap: 6px;
}

.ir-breadcrumb__list a {
    color: var(--ir-muted);
}

.ir-breadcrumb__list a:hover {
    color: var(--ir-primary);
    text-decoration: none;
}

.ir-breadcrumb__list li[aria-current="page"] {
    color: var(--ir-ink);
    font-weight: 600;
}

.ir-breadcrumb__sep {
    color: var(--ir-line);
}

.ir-page-head {
    padding-block: 6px 24px;
}

.ir-page-head__title {
    margin: 0 0 8px;
    font-size: clamp(21px, 3vw, 28px);
}

.ir-page-head__lead {
    margin: 0;
    max-width: 72ch;
    font-size: 15px;
    line-height: 2;
    color: var(--ir-muted);
}

.ir-page-head__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
    font-size: 13px;
    color: var(--ir-muted);
}

.ir-page-head__meta strong {
    color: var(--ir-ink);
    font-variant-numeric: tabular-nums;
}

/* نوار فیلتر/جستجوی بالای فهرست */
.ir-filter-bar {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    padding: 14px;
    margin-bottom: 22px;
    background: var(--ir-surface);
    border: 1px solid var(--ir-line);
    border-radius: var(--ir-r-md);
}

.ir-filter-bar__search {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 1 1 220px;
    min-height: 44px;
    padding-inline: 12px;
    border: 1px solid var(--ir-line);
    border-radius: var(--ir-r-sm);
    background: var(--ir-bg);
}

.ir-filter-bar__search .ir-icon {
    width: 18px;
    height: 18px;
    color: var(--ir-muted);
    flex: none;
}

.ir-filter-bar__search input {
    flex: 1 1 auto;
    min-width: 0;
    border: 0;
    background: transparent;
    font: inherit;
    font-size: 15px;
    color: var(--ir-ink);
}

.ir-filter-bar__select {
    flex: 1 1 160px;
    min-height: 44px;
    padding-inline: 12px;
    border: 1px solid var(--ir-line);
    border-radius: var(--ir-r-sm);
    background: var(--ir-surface);
    color: var(--ir-ink);
    font: inherit;
    font-size: 14px;
}

@media (max-width: 575.98px) {
    .ir-filter-bar {
        flex-direction: column;
        align-items: stretch;
    }
}

/* صفحه‌بندی — لینک‌های واقعی و قابل‌ایندکس، نه فقط «بارگذاری بیشتر».
   الزام AGENTS.md پروژه: هر صفحه باید به آدرس خودش کانونیکال شود، نه
   به صفحهٔ یک. */
.ir-pagination {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 6px;
    margin-top: 32px;
}

.ir-pagination__link,
.ir-pagination__ellipsis {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    min-height: 40px;
    padding-inline: 8px;
    border: 1px solid var(--ir-line);
    border-radius: var(--ir-r-xs);
    color: var(--ir-ink);
    font-size: 14px;
    font-variant-numeric: tabular-nums;
}

.ir-pagination__ellipsis {
    border-color: transparent;
    color: var(--ir-muted);
}

.ir-pagination__link:hover {
    border-color: var(--ir-primary-border);
    background: var(--ir-primary-soft);
    color: var(--ir-primary);
    text-decoration: none;
}

.ir-pagination__link[aria-current="page"] {
    background: var(--ir-primary);
    border-color: var(--ir-primary);
    color: #fff;
    font-weight: 700;
}

.ir-pagination__link[aria-disabled="true"] {
    opacity: .4;
    pointer-events: none;
}

.ir-pagination__link .ir-icon {
    width: 16px;
    height: 16px;
}

/* بلوک نتیجهٔ خالی روی صفحات فهرست (جستجوی بی‌نتیجه، فیلتر بدون تطبیق) */
.ir-list-empty {
    padding: 48px 20px;
    text-align: center;
    color: var(--ir-muted);
}

.ir-list-empty__icon {
    width: 40px;
    height: 40px;
    margin-bottom: 12px;
    color: var(--ir-line);
}

.ir-list-empty p {
    margin: 0;
    font-size: 14.5px;
}

/* ---------- 11) فرم‌ها و کارت‌های پروفایل ------------------------------
   کامپوننت عمومی فرم — در پروفایل، ورود/ثبت‌نام و صفحات ویرایش کسب‌وکار
   قابل استفاده مجدد است.
   ------------------------------------------------------------------- */
.ir-profile-layout {
    display: grid;
    gap: 20px;
    max-width: 640px;
}

.ir-profile-card {
    padding: 22px;
    background: var(--ir-surface);
    border: 1px solid var(--ir-line);
    border-radius: var(--ir-r-md);
}

.ir-profile-card__title {
    margin: 0 0 18px;
    font-size: 16px;
}

.ir-form {
    display: grid;
    gap: 16px;
}

.ir-form__row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
}

@media (max-width: 575.98px) {
    .ir-form__row {
        grid-template-columns: 1fr;
    }
}

.ir-form__field {
    display: grid;
    gap: 6px;
}

.ir-form__field label {
    font-size: 13.5px;
    font-weight: 600;
    color: var(--ir-ink);
}

.ir-form__field input,
.ir-form__field select {
    min-height: 44px;
    padding-inline: 12px;
    border: 1px solid var(--ir-line);
    border-radius: var(--ir-r-sm);
    background: var(--ir-surface);
    color: var(--ir-ink);
    font: inherit;
    font-size: 15px;
}

.ir-form__field input:focus-visible,
.ir-form__field select:focus-visible {
    outline: none;
    border-color: var(--ir-primary);
    box-shadow: var(--ir-focus-ring);
}

.ir-form__field input:disabled {
    background: var(--ir-bg-alt);
    color: var(--ir-muted);
}

.ir-form__locked {
    position: relative;
}

.ir-form__locked input {
    width: 100%;
    padding-inline-end: 40px;
}

.ir-form__locked .ir-icon {
    position: absolute;
    inset-inline-end: 12px;
    top: 50%;
    translate: 0 -50%;
    width: 16px;
    height: 16px;
    color: var(--ir-muted);
}

.ir-form__hint {
    margin: 0;
    font-size: 12.5px;
    color: var(--ir-muted);
}

/* ---------- 6-پ) بازشوهای منوی بالا: «کسب‌وکارها» و «مکان‌ها» — سند ۱۴۰۵۰۸۰۱ ---------- */
@media (min-width: 992px) {
    .ir-topnav__list {
        overflow: visible; /* پنل بازشو نباید بریده شود */
    }

    .ir-topnav__group,
    .ir-navmenu {
        position: relative;
    }

    .ir-navmenu > summary {
        list-style: none;
        cursor: pointer;
    }

    .ir-navmenu > summary::-webkit-details-marker {
        display: none;
    }

    .ir-navmenu__caret {
        width: 14px;
        height: 14px;
        flex: none;
        transition: transform .2s ease;
    }

    .ir-navmenu[open] .ir-navmenu__caret {
        transform: rotate(180deg);
    }

    .ir-navmenu[open] > summary {
        border-color: var(--s);
        background: #fff;
        color: var(--c);
        box-shadow: 0 6px 18px rgba(15, 23, 42, .08);
    }

    .ir-navmenu__toggle[aria-current="true"] {
        border-color: var(--c);
        background: var(--s);
        color: var(--c);
        font-weight: 800;
    }

    .ir-navmenu__panel {
        position: absolute;
        z-index: 60;
        top: calc(100% + 8px);
        inset-inline-start: 0;
        width: min(640px, 92vw);
        padding: 14px;
        border: 1px solid var(--ir-line-soft);
        border-radius: 18px;
        background: #fff;
        box-shadow: 0 24px 60px rgba(15, 23, 42, .16);
    }

    .ir-navmenu__hub {
        display: flex;
        align-items: center;
        justify-content: space-between;
        margin-bottom: 8px;
        padding: 9px 14px;
        border-radius: 12px;
        background: var(--ir-primary-soft);
        color: var(--ir-primary);
        font-size: 13.5px;
        font-weight: 800;
    }

    .ir-navmenu__hub:hover {
        text-decoration: none;
        filter: brightness(.97);
    }

    .ir-navmenu__hub .ir-icon {
        width: 15px;
        height: 15px;
    }

    .ir-navmenu__grid {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 4px 10px;
        margin: 0;
        padding: 0;
        list-style: none;
    }

    .ir-navmenu__item {
        display: flex;
        align-items: center;
        gap: 10px;
        padding: 8px 10px;
        border-radius: 12px;
        color: var(--ir-ink);
        transition: background-color .15s ease;
    }

    .ir-navmenu__item:hover,
    .ir-navmenu__item:focus-visible {
        background: var(--s);
        text-decoration: none;
    }

    .ir-navmenu__item:hover .ir-topnav__ico,
    .ir-navmenu__item:focus-visible .ir-topnav__ico {
        background: var(--c);
        color: #fff;
    }

    .ir-navmenu__item[aria-current="page"] {
        background: var(--s);
        box-shadow: inset 0 0 0 1px var(--c);
    }

    .ir-navmenu__text {
        display: flex;
        flex-direction: column;
        min-width: 0;
        line-height: 1.5;
    }

    .ir-navmenu__label {
        font-size: 14px;
        font-weight: 700;
    }

    .ir-navmenu__count {
        color: var(--ir-muted, #64748b);
        font-size: 12px;
    }
}

/* ---------- دسترسی سریع صفحهٔ اصلی: دو بلوک و کاشی آیکن رنگی ---------- */
.ir-quickgroup {
    margin-top: 26px;
}

.ir-quickgroup__head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.ir-quickgroup__title {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 800;
}

.ir-quickgroup__all {
    font-size: 13px;
    font-weight: 700;
    color: var(--ir-primary);
}

.ir-quick__grid.ir-quick__grid--fit {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

@media (min-width: 768px) {
    .ir-quick__grid.ir-quick__grid--fit {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (min-width: 1100px) {
    .ir-quick__grid.ir-quick__grid--fit {
        grid-template-columns: repeat(7, minmax(0, 1fr));
        gap: 12px;
    }
}

.ir-quick__tile {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 18px;
    background: var(--s, var(--ir-primary-soft));
    color: var(--c, var(--ir-primary));
    transition: background-color .16s ease, color .16s ease, transform .2s ease;
}

.ir-quick__tile .ir-icon {
    width: 27px;
    height: 27px;
    stroke-width: 1.8;
}

.ir-quick__card:hover .ir-quick__tile {
    background: var(--c, var(--ir-primary));
    color: #fff;
    transform: translateY(-2px);
}

/* ---------- صفحه‌های /business و /places ---------- */
.ir-hubgrid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    gap: 14px;
}

.ir-hubcard {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    padding: 20px 18px;
    border: 1px solid var(--ir-line, #e2e8f0);
    border-radius: 18px;
    background: #fff;
    color: var(--ir-ink);
    transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.ir-hubcard:hover,
.ir-hubcard:focus-visible {
    border-color: var(--c);
    box-shadow: 0 12px 30px rgba(15, 23, 42, .08);
    transform: translateY(-2px);
    text-decoration: none;
}

.ir-hubcard__tile {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    margin-bottom: 4px;
    border-radius: 16px;
    background: var(--s);
    color: var(--c);
}

.ir-hubcard__tile .ir-icon {
    width: 26px;
    height: 26px;
    stroke-width: 1.8;
}

.ir-hubcard__label {
    margin: 0;
    font-size: 1.05rem;
    font-weight: 800;
}

.ir-hubcard__meta {
    color: var(--c);
    font-size: 13px;
    font-weight: 700;
}

.ir-hubcard__blurb {
    color: #64748b;
    font-size: 13px;
    line-height: 1.8;
}

/* ---------- فوتر: ستون‌های «کسب‌وکارها» و «مکان‌ها» ---------- */
@media (min-width: 1200px) {
    .ir-footer__grid {
        grid-template-columns: 1.35fr 1fr 1fr .8fr 1fr 1.25fr;
    }
}

.ir-footer__hubs {
    padding: 14px 0 6px;
    border-top: 1px solid rgba(255, 255, 255, .12);
}

.ir-footer__links--inline {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 18px;
}

/* ۱۷ مهر ۱۴۰۵ (M2): فیلدهای زیر ۱۶ پیکسل در آیفون با لمس صفحه را زوم می‌کنند */
@media (max-width: 767px) {
    input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="submit"]):not([type="button"]):not([type="hidden"]),
    select,
    textarea {
        font-size: 16px !important;
    }
}

/* ۱۷ مهر ۱۴۰۵ (A1/A3): صفحه‌های ورود و ثبت‌نام نوار پایین سایت را ندارند (دکمهٔ اصلی را می‌پوشاند)؛ متن قوانین زیر دکمه */
body.ir-auth-page .ir-bottombar { display: none !important; }
body.ir-auth-page.ir-v2-shell { padding-bottom: 0; }
.auth-terms { margin: 10px 0 0; font-size: 12.5px; line-height: 1.9; color: #64748b; text-align: center; }
.auth-terms a { color: inherit; text-decoration: underline; }

/* ۱۷ مهر ۱۴۰۵ (P2): راه‌های سریع ارتباط در بالای صفحهٔ «تماس با ما» */
.contact-quick { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 10px; margin: 0 0 18px; }
.contact-quick__btn { display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 1px solid #dbe3ee; border-radius: 14px; background: #fff; color: #0f172a; text-decoration: none; min-height: 64px; }
.contact-quick__btn.is-primary { background: #0044bb; border-color: #0044bb; color: #fff; }
.contact-quick__btn .svg-icon { flex: none; width: 24px; height: 24px; }
.contact-quick__btn span { display: grid; gap: 2px; min-width: 0; }
.contact-quick__btn strong { font-size: 15px; }
.contact-quick__btn small { font-size: 12.5px; opacity: .8; overflow-wrap: anywhere; }
.contact-hero-media img { height: auto; object-fit: contain; max-width: 100%; }
.contact-field select { width: 100%; min-height: 46px; padding: 0 12px; border: 1px solid #cbd5e1; border-radius: 10px; background: #fff; }

/* ۱۷ مهر ۱۴۰۵ (P2): در گوشی تصویر بنر تماس کنار می‌رود تا دکمه‌های تماس و فرم در صفحه‌نمایش اول بیایند */
@media (max-width: 640px) {
    .contact-hero-media { display: none; }
    .contact-quick { margin-top: 4px; }
}

@media (max-width: 640px) {
    .contact-quick { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
    .contact-quick__btn { flex-direction: column; align-items: flex-start; gap: 6px; padding: 12px; min-height: 0; }
    .contact-quick__btn .svg-icon { width: 22px; height: 22px; }
    .contact-quick__btn strong { font-size: 14px; }
    .contact-quick__btn small { font-size: 12px; }
}

/* ۱۷ مهر ۱۴۰۵ (D2/D3): نوار تماس و مسیریابی و دعوت صاحب صفحه در صفحه‌های فهرست‌دار */
.dir-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 14px 0 10px; }
.dir-actions__btn { display: inline-flex; align-items: center; gap: 10px; padding: 10px 18px; min-height: 48px; border: 1px solid #cbd5e1; border-radius: 12px; background: #fff; color: #0f172a; text-decoration: none; font-weight: 700; }
.dir-actions__btn.is-primary { background: #0044bb; border-color: #0044bb; color: #fff; }
.dir-actions__btn span { display: grid; gap: 1px; line-height: 1.5; }
.dir-actions__btn small { font-weight: 400; font-size: 12.5px; opacity: .85; }
.dir-actions__btn .svg-icon { width: 20px; height: 20px; flex: none; }
.dir-actions__empty { margin: 0; color: #64748b; font-size: 14px; }
.dir-claim { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin: 6px 0 8px; padding: 12px 14px; border: 1px dashed #93b4f0; border-radius: 12px; background: #f1f6ff; }
.dir-claim div { display: grid; gap: 2px; min-width: 0; flex: 1 1 260px; font-size: 14px; line-height: 1.8; }
.dir-claim span { color: #475569; }
.dir-claim__btn { padding: 9px 16px; border-radius: 10px; background: #0044bb; color: #fff; font-weight: 700; text-decoration: none; white-space: nowrap; }
.dir-claim a.dir-claim__btn, .dir-claim a.dir-claim__btn:link, .dir-claim a.dir-claim__btn:visited, .dir-claim a.dir-claim__btn:hover, .dir-claim a.dir-claim__btn:active, .dir-claim a.dir-claim__btn:focus { color: #fff; background: #0044bb; }
.dir-claim a.dir-claim__btn:hover, .dir-claim a.dir-claim__btn:focus { background: #003399; }
.dir-report { margin: 0 0 14px; font-size: 13px; }
.dir-report a { color: #64748b; }
@media (max-width: 640px) {
    .dir-actions { position: sticky; bottom: calc(66px + env(safe-area-inset-bottom, 0px)); z-index: 30; background: rgba(255,255,255,.96); padding: 8px; margin-inline: -8px; border-top: 1px solid #e2e8f0; border-radius: 14px 14px 0 0; }
    .dir-actions__btn { flex: 1 1 0; justify-content: center; padding: 8px 10px; }
}

/* ۱۷ مهر ۱۴۰۵ (D6): فرم نظر تا کاربر نخواهد باز نمی‌شود */
.ir-comment-fold__btn { display: inline-flex; align-items: center; min-height: 46px; padding: 0 20px; border-radius: 12px; background: #0044bb; color: #fff; font-weight: 700; cursor: pointer; list-style: none; }
.ir-comment-fold__btn::-webkit-details-marker { display: none; }
.ir-comment-fold[open] > .ir-comment-fold__btn { margin-bottom: 14px; background: #e7eefb; color: #0044bb; }

/* ۱۷ مهر ۱۴۰۵ (S4): نمونه‌های جست‌وجو در صفحهٔ خالی */
.search-chips { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.search-chips a { padding: 8px 14px; border: 1px solid #cbd5e1; border-radius: 999px; background: #fff; color: #0f172a; text-decoration: none; font-size: 14px; }

/* ۱۷ مهر ۱۴۰۵ (H2، G1): دسترسی سریع فشرده در گوشی، و فوتر تاشو */
@media (max-width: 575.98px) {
    .ir-quick .ir-quick__grid.ir-quick__grid--fit { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
    .ir-quick .ir-quick__card { padding: 10px 2px 8px; gap: 6px; }
    .ir-quick .ir-quick__tile { width: 46px; height: 46px; border-radius: 14px; }
    .ir-quick .ir-quick__tile .ir-icon { width: 22px; height: 22px; }
    .ir-quick .ir-quick__label { font-size: 12.5px; line-height: 1.5; }
    .ir-quick .ir-quick__meta { display: none; }
    .ir-quick .ir-quickgroup { margin-top: 18px; }
    .ir-quick .ir-section__lead { display: none; }
}
.ir-footer__fold > summary { list-style: none; cursor: default; }
.ir-footer__fold > summary::-webkit-details-marker { display: none; }
.ir-footer__fold > summary h3 { margin: 0; }
@media (max-width: 767.98px) {
    .ir-footer__fold { border-bottom: 1px solid rgba(255, 255, 255, .12); }
    .ir-footer__fold > summary { cursor: pointer; display: flex; align-items: center; justify-content: space-between; min-height: 48px; }
    .ir-footer__fold > summary::after { content: "+"; font-size: 20px; opacity: .7; }
    .ir-footer__fold[open] > summary::after { content: "−"; }
    .ir-footer__fold > ul { padding-bottom: 12px; }
}

/* ۱۷ مهر ۱۴۰۵ (G2): کارت خوش‌آمد منوی کشویی یک ردیف باریک است تا بخش‌ها دیده شوند */
.ir-sidebar__auth--row { display: flex; gap: 8px; }
.ir-sidebar__auth--row .ir-btn { flex: 1; }
.ir-sidebar__profile { padding-block: 10px; }
.ir-sidebar__profile .ir-sidebar__cta { margin-top: 8px; }
