    @font-face {
        font-family: 'Vazirmatn';
        src: url('../fonts/Vazirmatn[wght].woff2') format('woff2 supports variations'),
             url('../fonts/Vazirmatn[wght].woff2') format('woff2-variations');
        font-weight: 100 900;
        font-style: normal;
        font-display: swap;
    }

    :root {
        /* ---------- هم‌راستا با core.css نسخه ۰.۲ (گرم و ملایم) ---------- */

        /* هویت برند — فقط لوگو، ستاره، نوار تأکید */
        --brand-logo: #FFC400;

        /* رنگ اقدام (دکمه‌ها) — کمی کهربایی‌تر از لوگو */
        --primary: #FBB40D;
        /* متن #2E2E2E روی آن: ۷.۵۲:۱ ✅ */
        --primary-hover: #E19F04;
        /* هم‌هیو ۴۲° — ۵.۹۲:۱ ✅ */
        --primary-active: #CE9204;
        /* ۵.۰۰:۱ ✅ */
        --primary-deep: #A35800;
        /* متن و آیکون روی سفید — ۵.۳۱:۱ ✅ */
        --primary-tint: #FEF5E0;
        --primary-border: #E0A00A;
        /* لبه ملایم دکمه */
        --on-primary: #2E2E2E;
        /* متن روی دکمه — هرگز سفید */

        /* سطوح و خنثی‌های گرم */
        --bg: #F7F5F2;
        --surface: #FFFFFF;
        --ink-strong: #332F2B;
        --text: #4A4642;
        /* روی سفید ۹.۳۵:۱ ✅ */
        --text-soft: #6E6862;
        /* روی سفید ۵.۵۰:۱ ✅ */
        --neutral: #CFC9C1;
        --line: #E8E4DE;

        /* وضعیت */
        --highlight: #FFC400;
        --success: #167A4A;
        --success-tint: #EAF6EF;
        --alert: #C4321F;
        --alert-tint: #FBEDEA;

        /* شکل */
        --radius: 20px;
        --shadow: 0 8px 26px rgba(58, 48, 38, .08);
    }

    * {
        box-sizing: border-box;
    }

    html {
        max-width: 100%;
        overflow-x: clip;
    }

    body {
        font-family: 'Vazirmatn', sans-serif;
        background: var(--bg);
        color: var(--text);
        line-height: 1.85;
        max-width: 100%;
        overflow-x: clip;
    }

    .mono {
        font-family: 'JetBrains Mono', monospace;
        direction: ltr;
        display: inline-block;
        overflow-wrap: anywhere;
        word-break: break-word;
        max-width: 100%;
    }

    a {
        text-decoration: none;
    }

    .site-header {
        background: var(--surface);
        border-bottom: 3px solid var(--primary);
    }

    .site-header .navbar-brand {
        font-weight: 800;
        font-size: 1.3rem;
        color: var(--text) !important;
    }

    .site-header .navbar-brand span {
        color: var(--primary);
    }

    .site-nav a {
        color: var(--text-soft);
        font-weight: 600;
        font-size: .92rem;
        margin-inline-start: 1.4rem;
    }

    .site-nav a:hover {
        color: var(--primary-deep);
    }

    .btn-primary-soft {
        background: var(--primary);
        border: none;
        color: #fff;
        font-weight: 600;
        border-radius: 14px;
        padding: .65rem 1.2rem;
    }

    .btn-primary-soft:hover {
        background: var(--primary-deep);
        color: #fff;
    }

    .btn-outline-soft {
        border: 1.5px solid var(--neutral);
        color: var(--text);
        font-weight: 600;
        border-radius: 14px;
        padding: .65rem .8rem;
        background: var(--surface);
        font-size: .9rem;
    }

    .btn-outline-soft:hover {
        background: #f5f5f5;
        color: var(--text);
    }

    .hero-card {
        background: var(--surface);
        border-radius: 24px;
        padding: 2rem;
        border: 1px solid var(--line);
        box-shadow: var(--shadow);
        max-width: 100%;
        overflow-wrap: anywhere;
    }

    .hero-card .row>[class*="col-"] {
        min-width: 0;
    }

    .hero-card .row>[class*="col-"]>.d-flex.gap-3>div:last-child {
        min-width: 0;
        flex: 1 1 auto;
    }

    @media (max-width:576px) {
        .hero-card {
            padding: 1.2rem;
        }
    }

    .logo-thumb {
        width: 88px;
        height: 88px;
        border-radius: 18px;
        object-fit: cover;
        background: var(--primary-tint);
    }

    .pill {
        display: inline-flex;
        align-items: center;
        gap: .35rem;
        border-radius: 99px;
        font-weight: 600;
        font-size: .78rem;
        padding: .4rem .85rem;
    }

    .pill-category {
        background: var(--primary-tint);
        color: var(--primary-deep);
    }

    .pill-status {
        background: var(--success-tint);
        color: #2e8a63;
    }

    .pill-expired {
        background: var(--alert-tint);
        color: #c5473c;
    }

    .rating-stars i {
        color: var(--highlight);
        font-size: .95rem;
    }

    .rating-score {
        font-family: 'JetBrains Mono', monospace;
        font-weight: 700;
        font-size: 1.02rem;
    }

    .section-block {
        padding: 1.9rem 0;
    }

    .section-title {
        display: flex;
        align-items: center;
        gap: .6rem;
        margin-bottom: 1rem;
        padding-right: 1.2rem;
    }

    .section-title .dot {
        width: 9px;
        height: 9px;
        border-radius: 50%;
        background: var(--primary);
    }

    .section-title h2 {
        font-size: 1.15rem;
        margin: 0;
    }

    .card-soft {
        background: var(--surface);
        border: 1px solid var(--line);
        border-radius: var(--radius);
        padding: 1.6rem;
        box-shadow: var(--shadow);
    }

    .desc-text {
        color: var(--text-soft);
        white-space: pre-line;
        overflow-wrap: anywhere;
        word-break: break-word;
    }

    /* Gallery lightbox modal — نمایش کامل تصویر بدون برش (مخصوصاً عکس‌های عمودی) */
    #galleryModal .carousel-item img {
        display: block;
        width: auto;
        max-width: 100%;
        max-height: 82vh;
        height: auto;
        object-fit: contain;
        margin: 0 auto;
    }

    /* Employment ad modal */
    #adverModal .modal-dialog {
        max-width: 640px;
    }

    #adverModal .modal-content {
        border: none;
        border-radius: var(--radius);
        box-shadow: var(--shadow);
        overflow: hidden;
    }

    #adverModal .modal-header {
        background: var(--primary-tint);
        border-bottom: 1px solid var(--line);
        padding: 1.2rem 1.6rem;
    }

    #adverModal .modal-title {
        font-weight: 700;
        color: var(--primary-deep);
        display: flex;
        align-items: center;
        gap: .5rem;
    }

    #adverModal .btn-close {
        box-shadow: none;
        margin-left: 0;
        margin-right: auto;
    }

    #adverModal .modal-body {
        padding: 1.7rem;
        max-height: 72vh;
        overflow-y: auto;
    }

    .adver-loading {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: .9rem;
        padding: 2.6rem 0;
        color: var(--text-soft);
    }

    .adver-loading .spinner-border {
        color: var(--primary);
    }

    .spec-grid {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: 0 1.5rem;
    }

    .spec-item {
        display: flex;
        align-items: flex-start;
        gap: .7rem;
        padding: .9rem 0;
        border-bottom: 1px solid var(--line);
        min-width: 0;
    }

    .spec-item i {
        color: var(--primary);
        font-size: 1.05rem;
        margin-top: .2rem;
        flex-shrink: 0;
    }

    .spec-item .k {
        color: var(--text-soft);
        font-size: .78rem;
        display: block;
        margin-bottom: .15rem;
    }

    .spec-item .v {
        font-weight: 600;
        display: block;
        overflow-wrap: anywhere;
        word-break: break-word;
    }

    @media (max-width:576px) {
        .spec-grid {
            grid-template-columns: 1fr;
        }
    }

    .gallery-grid {
        display: grid;
        grid-template-columns: repeat(4, 1fr);
        gap: .8rem;
    }

    /* تصویر کامل بدون برش نمایش داده می‌شود؛ فضای خالی اطراف با بک‌گراند محو همان عکس پر می‌شود */
    .gallery-grid .gallery-thumb {
        display: block;
        position: relative;
        aspect-ratio: 200 / 130;
        border-radius: 16px;
        overflow: hidden;
        cursor: pointer;
        background-color: var(--primary-tint);
        background-size: cover;
        background-position: center;
    }

    .gallery-grid .gallery-thumb::before {
        content: '';
        position: absolute;
        inset: -10px;
        background: inherit;
        filter: blur(16px) brightness(.95);
        z-index: 0;
    }

    .gallery-grid .gallery-thumb img {
        position: relative;
        z-index: 1;
        width: 100%;
        height: 100%;
        object-fit: contain;
        display: block;
    }

    @media (max-width:576px) {
        .gallery-grid {
            grid-template-columns: repeat(2, 1fr);
        }
    }

    #leafletMap {
        aspect-ratio: 16 / 9;
        border-radius: 16px;
        width: 100%;
        z-index: 1;
        min-height: 280px;
    }

    .map-actions {
        display: flex;
        gap: .6rem;
        margin-top: 1rem;
    }

    .social-pill {
        display: inline-flex;
        align-items: center;
        gap: .5rem;
        background: #f7f7f7;
        border: 1px solid var(--line);
        border-radius: 99px;
        padding: .55rem 1.1rem;
        font-weight: 600;
        font-size: .88rem;
        color: var(--text);
    }

    .job-card {
        border: 1px solid var(--line);
        border-radius: 16px;
        padding: 1rem 1.3rem;
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 1rem;
        background: var(--surface);
    }

    .job-card .job-title {
        font-weight: 700;
        overflow-wrap: anywhere;
        word-break: break-word;
    }

    .job-card .job-meta {
        font-size: .8rem;
        color: var(--text-soft);
        overflow-wrap: anywhere;
        word-break: break-word;
    }

    .job-card>div:first-child {
        min-width: 0;
    }

    .empty-state {
        border: 1.5px dashed var(--line);
        border-radius: var(--radius);
        padding: 2.2rem 1.5rem;
        text-align: center;
        color: var(--text-soft);
        background: var(--surface);
    }

    .empty-state i {
        font-size: 2rem;
        color: var(--highlight);
    }

    .related-card {
        border: 1px solid var(--line);
        border-radius: 16px;
        padding: 1rem;
        background: var(--surface);
        height: 100%;
    }

    .related-card .cat {
        font-size: .72rem;
        color: var(--primary-deep);
        font-weight: 600;
    }

    .related-card .name {
        font-weight: 700;
        margin: .3rem 0;
        overflow-wrap: anywhere;
        word-break: break-word;
    }

    .related-card .city {
        font-size: .78rem;
        color: var(--text-soft);
    }

    /* ===== Ticket / stats card, soft variant ===== */
    .ticket-soft {
        position: relative;
        background: var(--primary-tint);
        border-radius: var(--radius);
        padding: 1.4rem 1.4rem 1.6rem;
    }

    .ticket-soft::before,
    .ticket-soft::after {
        content: "";
        position: absolute;
        width: 20px;
        height: 20px;
        background: var(--bg);
        border-radius: 50%;
        top: 50%;
        transform: translateY(-50%);
    }

    .ticket-soft::before {
        right: -10px;
    }

    .ticket-soft::after {
        left: -10px;
    }

    .ticket-perf {
        border-top: 2px dashed #d6d4ef;
        margin: 1rem 0;
    }

    .ticket-label {
        font-size: 0.72rem;
        color: #56507e;
    }

    .ticket-value {
        font-family: "JetBrains Mono", monospace;
        font-weight: 700;
        color: var(--primary-deep);
        font-size: 1.1rem;
    }

    .ticket-id {
        font-family: "JetBrains Mono", monospace;
        font-size: 0.75rem;
        color: #6b6690;
    }

    .contact-box {
        background: var(--surface);
        border: 1px solid var(--line);
        border-radius: var(--radius);
        padding: 1.3rem;
        box-shadow: var(--shadow);
    }

    .contact-row {
        display: flex;
        align-items: flex-start;
        gap: .7rem;
        padding: .6rem 0;
        border-bottom: 1px solid var(--line);
        min-width: 0;
    }

    .contact-row:last-child {
        border-bottom: none;
    }

    .contact-row i {
        color: var(--primary);
        font-size: 1.05rem;
        margin-top: .2rem;
    }

    .contact-row .label {
        font-size: .76rem;
        color: var(--text-soft);
    }

    .contact-row .value {
        font-weight: 600;
        overflow-wrap: anywhere;
        word-break: break-word;
    }

    .expired-box {
        border: 1.5px dashed var(--alert);
        background: var(--alert-tint);
        border-radius: var(--radius);
        padding: 1.2rem;
        text-align: center;
    }

    .leadform-card {
        background: var(--surface);
        border: 1px solid var(--line);
        border-radius: var(--radius);
        padding: 1.2rem;
    }

    .leadform-card .form-control {
        border-radius: 12px;
        border: 1px solid var(--line);
    }

    .star-picker {
        font-size: 1.6rem;
        cursor: pointer;
        color: var(--neutral);
    }

    .star-picker.active,
    .star-picker:hover {
        color: var(--highlight);
    }

    .star-rating-label {
        display: inline-block;
        margin-inline-start: .6rem;
        font-size: .9rem;
        font-weight: 600;
        vertical-align: middle;
        color: var(--text-soft);
    }

    .review-card {
        border: 1px solid var(--line);
        border-radius: 14px;
        padding: 1rem;
        margin-bottom: .8rem;
    }

    #faq .accordion-item {
        border: 1px solid var(--line);
        border-radius: 12px !important;
        overflow: hidden;
        margin-bottom: .6rem;
    }

    #faq .accordion-button {
        font-weight: 600;
        background: var(--surface);
    }

    #faq .accordion-button:not(.collapsed) {
        background: var(--primary-tint);
        color: var(--primary-deep);
        box-shadow: none;
    }

    #faq .accordion-button:focus {
        box-shadow: none;
        border-color: var(--line);
    }

    #faq .accordion-button::after {
        margin-left: 0;
        margin-right: auto;
        padding: .8rem;
    }

    @media (max-width:576px) {
        #faq .accordion-button {
            text-align: right;
        }
    }

    .reveal {
        opacity: 0;
        transform: translateY(18px);
        transition: opacity .38s ease-out, transform .38s ease-out;
    }

    .reveal.is-visible {
        opacity: 1;
        transform: none;
    }

    .site-footer {
        background: var(--surface);
        border-top: 1px solid var(--line);
        padding: 2.4rem 0 1.2rem;
        font-size: .86rem;
        color: var(--text-soft);
    }

    .mobile-bar {
        position: fixed;
        bottom: 0;
        right: 0;
        left: 0;
        background: var(--surface);
        border-top: 1px solid var(--line);
        padding: .6rem .8rem;
        display: flex;
        gap: .6rem;
        z-index: 1030;
        box-shadow: 0 -8px 24px -12px rgba(46, 44, 64, .12);
    }

    .mobile-bar .btn {
        flex: 1;
    }

    @media (min-width:992px) {
        .mobile-bar {
            display: none;
        }
    }

    @media (max-width:991px) {
        body {
            padding-bottom: 70px;
        }
    }

    /* ================================================================
   هماهنگ‌سازی نسخه ۰.۲ — فقط ظاهری
   هدف: جاهایی که رنگ اقدام به‌عنوان «متن» یا «متن سفید» به کار
   رفته بود و کنتراست را رد می‌کرد، اصلاح شود.
   ================================================================ */

    /* ۱) عدد ۱۱۸ در لوگو با زرد اصلی برند
      (WCAG 1.4.3 برای نام و نشان برند استثنا قائل است) */
    .site-header .navbar-brand span {
        color: var(--brand-logo);
    }

    /* ۲) دکمه اصلی: متن تیره به‌جای سفید — کنتراست از ۲.۳:۱ به ۷.۵۲:۱ */
    .btn-primary-soft {
        background: var(--primary);
        color: var(--on-primary);
        border: 1px solid var(--primary-border);
        border-radius: 12px;
    }

    .btn-primary-soft:hover {
        background: var(--primary-hover);
        border-color: var(--primary-hover);
        color: var(--on-primary);
    }

    .btn-primary-soft:active {
        background: var(--primary-active);
        border-color: var(--primary-active);
        color: var(--on-primary);
    }

    /* ۳) آیکون‌هایی که روی سفید با رنگ اقدام بودند → نسخه تیره خوانا */
    .spec-item i,
    .contact-row i,
    .adver-loading .spinner-border {
        color: var(--primary-deep);
    }

    /* ۴) دکمه ثانویه و گردی‌ها هم‌راستا */
    .btn-outline-soft {
        border-radius: 12px;
    }

    /* ۵) نوار زیر هدر با زرد هویتی (نه رنگ دکمه) */
    .site-header {
        border-bottom-color: var(--brand-logo);
    }


    /* ۶) رفع هاور نامرئی دکمه ثانویه
       #f5f5f5 هاردکد با پس‌زمینه جدید #F7F5F2 هم‌رنگ شده بود (کنتراست ۱.۰۰) */
    .btn-outline-soft:hover,
    .btn-outline-soft:focus-visible {
        background: var(--primary-tint);
        border-color: var(--primary);
        color: var(--primary-deep);
    }

    /* ۷) پیل شبکه‌های اجتماعی — همان مشکل هاردکد */
    .social-pill {
        background: var(--surface);
    }

    .social-pill:hover {
        background: var(--primary-tint);
        border-color: var(--primary);
    }
