/*
Theme Name: Shamshiri
Author: صادق شمشیری
Description: قالب شخصی فارسی و راست‌به‌چپ برای مشاورهٔ حقوقی شرکت‌های خانوادگی. طراحی در کد، محتوا در وردپرس. فونت ابر خودمیزبان، بدون وابستگی به سرویس بیرونی.
Version: 2.10.1
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: shamshiri
Tags: rtl-language-support, translation-ready, blog, one-column

تغییرات
2.9.1 — نشانی عکس پروفایل و آواتار نسخه‌دار شد (?ver=<زمان تغییر فایل>) با تابع
        تازهٔ shamshiri_asset_url(). پیش از این نام فایل ثابت بود و سرور
        cache-control: public می‌فرستاد، پس پس از تعویض عکس، بازدیدکنندهٔ
        قبلی عکس قدیمی را از کش می‌دید — با اینکه فایل تازه روی سرور بود.

2.9.0 — عکس پروفایل تازه (assets/img/portrait.jpg و avatar.jpg، بدون فرادادهٔ
        دوربین). فیلتر عکس (saturate/brightness) برداشته شد — برای عکس قبلی
        تنظیم شده بود. نام و عکس بخش معرفی به صفحهٔ پروفایل در hengamlaw.com
        پیوند دارند (front-page.php).

2.8.3 — متن معرفی صفحهٔ اصلی در front-page.php بازنویسی شد (فقط متن؛ CSS و
        قالب‌ها دست نخوردند).

2.8.2 — ستون خواندن هم‌عرض قالب هنگام شد: .col/.author/.updown حداکثر ۷۶۰px
        با حاشیهٔ کناری ۴۰px (دسکتاپ) و ۳۲px (موبایل) → عرض متن ۶۸۰px / ۳۲۶px
        (پیش‌تر ۵۷۶px). فاصلهٔ سطر و بند از قبل یکی بود؛ ستونِ باریک‌تر متن را
        متراکم‌تر نشان می‌داد.
        ⚠️ حاشیه با article.col,section.author,nav.updown نوشته شده (وزن ۰,۱,۱)،
        چون قاعدهٔ گاترِ مشترک وزن برابر دارد و دیرتر می‌آید.
        متن معرفی صفحهٔ اصلی در front-page.php به‌روز شد.
        سنجش: چهار صفحه × شش عرض با site/ — اختلاف صفر.

2.8.1 — مقادیر سربرگ و ریتم متن از **منبع** گرفته شد، نه از اندازه‌گیری صفحه:
        hengam-theme-fa/style.css، قواعد .article و .ahead.
          · عنوان مقاله: clamp(32px,5vw,52px) و عرض **۸۴۰px**.
            ⚠️ پیش از این max-width:20ch بود (~۴۰۰px، کمتر از نصف مرجع) و
            عنوان کوچک دیده می‌شد. عرض را با ch ندهید.
          · برچسب موضوع ۱۲px، فاصلهٔ امضا ۱۴px، حلقهٔ برنجی دور آواتار.
          · عنوان فرعی line-height:1.3 و حاشیهٔ ۴۲/۱۲ · فهرست ۲۲px ·
            آیتم line-height:2 و ۸px.
        سنجش: **چهار** صفحه در شش عرض با site/ مقایسه شد؛ اختلاف صفر.

2.8.0 — سربرگ مقاله بازطراحی شد و ریتم متن از hengamlaw.ir گرفته شد
        (خواستهٔ کاربر، ۳۱ شهریور ۱۴۰۴).
          · عنوان مقاله **داخل نوار سبز** آمد. ترتیب: مسیر (خانه › یادداشت‌ها ›
            موضوع) · برچسب موضوع · عنوان · امضای نویسنده با آواتار گرد.
            single.php بازنویسی شد؛ .atitle و .phead .back و .phead .meta رفتند.
          · متن یادداشت: ۱۸px · فاصلهٔ سطر ۲٫۰۵ · فاصلهٔ بند ۲۶px.
            (این دو، افزایش‌های نسخهٔ ۲٫۷٫۱ را عقب می‌برند.)
          · assets/img/avatar.jpg افزوده شد — برش **مربع حول صورت**، نه همان
            portrait. با object-fit روی portrait (۷۲۰×۱۰۸۰) صورت هرگز وسط
            دایره نمی‌افتد، چون در یک‌سوم بالای عکس است.
        سنجش: سبک محاسبه‌شدهٔ همهٔ عناصر در شش عرض با site/ مقایسه شد؛
        اختلاف صفر. (در میانهٔ کار ۴۸ اختلاف بود: نسخهٔ موبایلِ فاصلهٔ سطر در
        سه مبدأ دیگر روی ۲٫۳ جا مانده بود — همان تلهٔ «یک قاعده در چند مبدأ».)

2.7.1 — فاصلهٔ بندهای متن یادداشت از ۲۶px به ۳۸px رفت (۰٫۹۲ تا ۰٫۹۴ ارتفاع
        سطر). با ۲۶px فاصلهٔ بین دو بند از فاصلهٔ سطرهای درونِ بند کمتر بود و
        مرز بند دیده نمی‌شد. عنوان فرعی ۵۶/۲۰، فهرست ۳۴، آیتم ۱۴، قاب کناری ۴۶.

        ضمن بررسی، **هفت ناهمخوانی دیرینه** میان قالب و طرح تأییدشدهٔ site/
        پیدا و رفع شد. همه یک ریشه داشتند: یک انتخابگر در چند مبدأ تکرار شده
        بود و هنگام ادغام، نسخهٔ اشتباه برنده می‌شد.
          · بخش دستیِ وردپرس نسخهٔ کهنهٔ قاب کناری و فهرست را دوباره تعریف
            می‌کرد و چون انتهای فایل بود غلبه داشت → حذف شد؛ blockquote و ol
            و b حالا کنار همتای خودشان در مبدأ تعریف می‌شوند.
          · «padding: X 30px» روی .col/.author/.updown با قاعدهٔ گاتر می‌جنگید
            → به padding-block تبدیل شد تا حاشیهٔ کناری همیشه از گاتر بیاید.
          · دو بریک‌پوینت متناقض (۶۲۰ در برابر ۷۶۷) روی .author .in و .updown
            → مقدارهای تکراری از بلوک ۶۲۰ برداشته شد.
          · قاعدهٔ footer در این فایل border-top اضافه داشت و هم‌ارز نمی‌شد، پس
            بالشتک فضای امن را باطل می‌کرد → خط جدا شد و با کلاس on-article
            فقط روی نوشتهٔ تکی می‌نشیند (footer.php هم به‌روز شد).
          · قواعد مردهٔ .ag در سه مبدأیی که بخش معرفی ندارند → حذف شد.
          · نشانهٔ صفحهٔ فعال در دسکتاپ در src-otagh جا افتاده بود، پس «خانه»
            در صفحهٔ اصلی نشانه نمی‌گرفت ولی سه صفحهٔ دیگر می‌گرفتند → اضافه شد.

        سنجش: سبکِ محاسبه‌شدهٔ **همهٔ** عناصر دو صفحه در شش عرض با site/
        مقایسه شد؛ اختلاف از ۱۷ به **صفر** رسید.

2.7.1 — فاصلهٔ بندهای متن یادداشت از ۲۶px به ۳۸px رفت (۰٫۹۲ تا ۰٫۹۴ ارتفاع
        سطر). با ۲۶px فاصلهٔ بین دو بند از فاصلهٔ سطرهای درونِ بند کمتر بود و
        مرز بند دیده نمی‌شد. عنوان فرعی ۵۶/۲۰، فهرست ۳۴، آیتم ۱۴، قاب کناری ۴۶.

2.7.0 — همگام‌سازی با site/ پس از چهار تغییر طراحی:
        · عنوان یادداشت در صفحهٔ اصلی دو پله بزرگ‌تر
          (clamp 18→22 به clamp 20→24)
        · فاصلهٔ سطر متن یادداشت ۲٫۱ → ۲٫۳ در موبایل و دسکتاپ
        · درخت در تبلت (۷۶۸ تا ۱۰۶۰) هم دیده می‌شود؛ زیر ۷۶۸ همچنان حذف است
        · فاصلهٔ درخت از لبهٔ صفحه بیشتر شد (دسکتاپ ۴۰px، تبلت ۳۴px)
        ⚠️ نمایش درخت در تبلت به max-width تیتر و لید هم نیاز دارد (۱۶ch و
        ۴۴ch)، وگرنه متن تمام عرض را می‌گیرد و درخت زیرش می‌افتد.
        ⚠️ قاعدهٔ «article .body» در هر چهار مبدأ تکرار شده بود؛ اول فقط
        src-article به‌روز شد و در قالب — نه در site/ — نسخهٔ ۲٫۱ فایل دیگری
        برنده می‌شد. فاصلهٔ سطرِ موبایلِ قالب ۲٫۱ ماند تا با مقایسهٔ عددی
        قالب و site/ پیدا شد. هر چهار مبدأ هم‌راستا شدند.

2.6.0 — تداخل متادیتا با Yoast برطرف شد. قالب دیگر **هیچ** متای اجتماعی یا
        Schema تولید نمی‌کند؛ Yoast تنها مرجع است.
        حذف‌شده: shamshiri_open_graph()، shamshiri_schema()، shamshiri_share_meta().
        روی سایت زنده og:title و og:url سه بار، canonical دو بار و description
        دو بار چاپ می‌شد، و دو Schema جداگانهٔ Person و Organization کنار
        @graph خودِ Yoast می‌نشست.
        ⚠️ اگر Yoast غیرفعال شود این متاها برنمی‌گردند؛ توابع در تاریخچهٔ ۲٫۵٫۰ هستند.
        زمینهٔ کاغذ روشن‌تر شد: paper #F7F5EF → #FBFAF7 و tint #F1EEE5 → #F5F3EE.

2.5.0 — تاریخ‌ها شمسی شدند. پیش از این وردپرس تاریخ **میلادی** می‌داد و قالب
        فقط رقم‌هایش را فارسی می‌کرد — یعنی «۳ سپتامبر ۲۰۲۵» به‌جای
        «۱۲ شهریور ۱۴۰۴». دو تابع تازه: shamshiri_to_jalali() و
        shamshiri_jalali_date(). سال کپی‌رایت پاصفحه هم شمسی شد.
        الگوریتم با سیزده تاریخ سنجیده شد، شامل دو سال کبیسه (۱۴۰۲ و ۱۴۰۴)
        و مرز سال نو؛ خروجی با همان تاریخ‌های نسخهٔ تأییدشدهٔ site/ مطابقت دارد.
        ⚠️ ویژگی datetime در تگ <time> و datePublished در Schema عمداً میلادی
        و ISO ماندند — آن‌ها برای موتور جست‌وجو و ماشین‌اند، نه خواننده.

2.4.0 — متای اشتراک‌گذاری (Open Graph / Twitter) اضافه شد: وقتی لینک صفحه به
        واتس‌اپ، تلگرام، لینکدین یا ایکس فرستاده می‌شود، پیش‌نمایش با تصویر
        معرفی (assets/img/share.jpg، ۱۱۲۰×۱۴۰۰)، عنوان، توضیح و نشانی صفحه
        ساخته می‌شود. تابع shamshiri_share_meta() روی قلاب wp_head.
        اگر نوشته‌ای «تصویر شاخص» داشته باشد، همان جای تصویر معرفی می‌نشیند.
        ⚠️ خزنده‌ها صفحه را کش می‌کنند؛ پس از تغییر تصویر باید لینک را در
        ابزار اشکال‌زدایی همان شبکه دوباره خواند تا کش تازه شود.

2.3.0 — منوی موبایل تمام‌صفحه شد. پیش از این پنلی داخل سربرگ باز می‌شد که
        صفحه را هل می‌داد و مرزش با کاغذ پیدا نبود. حالا کل صفحه را می‌پوشاند
        (سطح سبز، قلم ۲۴px فارسی / ۲۱px انگلیسی، هر گزینه ۶۴px)، صفحهٔ پشت با
        body.navopen قفل می‌شود، و گزینه‌ها بازخورد هاور و لمس دارند.
        در functions.php قفل اسکرول به همان تابع set() اضافه شد.
        ⚠️ دکمهٔ بستن با inset-inline-end می‌نشیند نه start: در RTL شروعِ خط
        سمت راست است اما دکمهٔ منو سمت چپ سربرگ، و با start جایش می‌پرد.

2.2.1 — ارتفاع سربرگ «تماس با من» در موبایل با «یادداشت‌ها» یکدست شد (۲۳۶px →
        ۱۸۴px). علت یک ایراد ترتیب در ژنراتور بود، نه طراحی: با چسباندن CSS چهار
        مبدأ پشت سر هم، مدیاکوئریِ موبایلِ فایل اول پیش از قواعد پایهٔ فایل چهارم
        می‌افتاد و چون وزنشان برابر است (۰,۱,۰)، قاعدهٔ دسکتاپِ دیرتر برنده می‌شد.
        حالا همهٔ مدیاکوئری‌ها به انتها منتقل و از پهن به باریک مرتب می‌شوند.
        دو ایراد پنهان دیگر هم با همین اصلاح برطرف شد:
          · چکیده و عنوان فهرست یادداشت‌ها در ۳۲۰px یک پله کوچک رندر می‌شد
          · قلم منوی باز موبایل ۱۴px بود به‌جای ۱۷٫۵px
        اندازه‌گیری: اختلاف قالب با طرح تأییدشدهٔ site/ از ۱۵۱ ویژگی به ۵۲ رسید
        (چهار صفحه × پنج عرض). ۵۲ موردِ باقی‌مانده از پیش وجود داشته‌اند و در
        CLAUDE.md فهرست شده‌اند.

2.2.0 — نقش‌مایهٔ شاخه در نسخهٔ موبایلِ سه صفحهٔ داخلی (یادداشت‌ها، یادداشت تکی،
        تماس) برگشت: پیش از این زیر ۶۴۰px حذف می‌شد و موبایل بی‌نقش بود. حالا
        ۲۳۰px از گوشهٔ پایینِ مقابلِ متن می‌آید. صفحهٔ اصلی عمداً استثناست —
        درخت در موبایل نمایش داده نمی‌شود (چهار طرح آزموده و رد شد).
        ⚠️ اصلاح ژنراتور: قواعد داخل مدیاکوئری‌ها هم با کلاس بدنه محدود می‌شوند.
        بدون این، «.phead .branch» با وزن (۰,۲,۰) از هم‌تای دسکتاپش
        «body.single .phead .branch» با وزن (۰,۳,۰) می‌باخت و چیدمان موبایل در
        قالب بی‌اثر می‌ماند — هرچند در نسخهٔ HTML درست بود.
        از این نسخه شیوه‌نامه با «python3 build.py --theme <نسخه>» ساخته می‌شود.

2.1.1 — تگ تأیید مالکیت Google Search Console در header.php اضافه شد. اگر روزی
        نشانهٔ تازه‌ای گرفتید، همان یک خط در <head> را عوض کنید.

2.1.0 — اندازهٔ همهٔ قلم‌ها در نسخهٔ موبایل یک پیکسل بزرگ‌تر شد (فقط مقادیر داخل
        مدیاکوئری‌های max-width؛ دسکتاپ دست‌نخورده). اشباع رنگ عکس پروفایل به ۶۰٪
        رسید.

2.0.4 — تنظیم عکس پروفایل: اشباع رنگ ۷۰٪ (۳۰٪ کم‌تر از اصل) و کنتراست به حالت
        اصلی برگشت. روشنایی ۱۲۵٪ باقی ماند.

2.0.3 — عکس پروفایل ۲۵٪ روشن‌تر و ۱۰٪ پرکنتراست‌تر شد (فیلتر CSS، نه دستکاری فایل
        تصویر؛ پس با یک عدد قابل برگشت است).

2.0.2 — رفع دو ایرادی که در سایت زنده دیده شد و هر دو یک ریشه داشتند:
        shamshiri_notes_url() و shamshiri_contact_url() وقتی برگهٔ مقصد تعریف
        نشده بود به صفحهٔ اصلی برمی‌گشتند. نتیجه: هر سه گزینهٔ منو به یک نشانی
        می‌رفتند، هر سه aria-current می‌گرفتند و چون از پیش سبز پررنگ بودند،
        هاور هیچ تغییری نشان نمی‌داد. حالا این توابع رشتهٔ تهی برمی‌گردانند و
        گزینهٔ بی‌مقصد اصلاً ساخته نمی‌شود؛ ضمناً تنها یک گزینه aria-current
        می‌گیرد. نشانی تماس با نامک برگه هم جست‌وجو می‌شود.

        هشدار پیکربندی در پیشخوان اضافه شد: قالب به «صفحهٔ ثابت + برگهٔ جدای
        نوشته‌ها» نیاز دارد و اگر تنظیم نشده باشد، مدیر را راهنمایی می‌کند.

2.0.1 — رفع ایراد بحرانی ۲٫۰٫۰: بلوک :root با همهٔ توکن‌های رنگ و قلم از شیوه‌نامه
        افتاده بود، چون متن <title> و <style> مبدأ وارد انتخابگر نخستین قاعده شده
        و آن را نامعتبر کرده بود. نتیجه: سایت با قلم Times و زمینهٔ بی‌رنگ بالا می‌آمد.
        ژنراتور حالا سرِ فایل مبدأ را می‌بُرد. ضمناً نسخهٔ enqueue از سرصفحهٔ همین
        فایل خوانده می‌شود تا کش مرورگر با هر انتشار تازه شود.

2.0.0 — قالب دیگر CSS دستی ندارد: از این نسخه، شیوه‌نامه با اسکریپت build.py از
        همان فایل‌های مبدأ نسخهٔ HTML ساخته می‌شود، پس هرگز از طراحی تأییدشده
        عقب نمی‌ماند. تنها قواعد ویژهٔ وردپرس (کلاس‌های ویرایشگر، پرش به محتوا،
        برگهٔ عمومی و صفحه‌بندی) دستی نگه داشته شده‌اند.

        تغییرات طراحی که با همین بازسازی وارد شدند: سربرگ سبز تمام‌عرض برای هر
        سه صفحهٔ داخلی، عنوان یادداشت روی کاغذ، زمان مطالعه، بخش معرفی بازطراحی‌شده
        با فهرست اعتبارنامه، حذف نوار چسبان موبایل، قلم‌های یک پیکسل بزرگ‌تر، و
        گزینهٔ زبان در منو.

        نکتهٔ نگهداری: شاخهٔ سربرگ در سه صفحه سه چیدمان دارد؛ قواعدش با کلاس بدنهٔ
        وردپرس (body.blog و body.single) محدود شده تا در هم نریزند.

1.2.0 — اندازهٔ همهٔ قلم‌های نسخهٔ دسکتاپ یک پیکسل بزرگ‌تر شد (متن اصلی ۱۶ → ۱۷).
        مقادیر داخل مدیاکوئری‌های موبایل عمداً دست‌نخورده ماندند تا چیدمان
        تأییدشدهٔ گوشی تغییر نکند. شاخه‌های شجره‌نامه از ۶ به ۱۶ رسیدند، بازتر
        به چپ و راست، و برگ‌ها از ۱۸ به ۲۸.

1.1.0 — نقش‌مایهٔ شجره‌نامه در فضای خالی بخش اول صفحهٔ اصلی: یک SVG خطی که هنگام
        بارگذاری می‌روید — تنه و شاخه‌ها کشیده می‌شوند، هجده برگ در پنج رنگِ پالت
        باز می‌شوند، و پس از کامل شدن تنه هجده ریشه در سه لایه ضخامت طی سه ثانیه
        انبوه می‌شوند. فقط بالای ۱۰۶۰ پیکسل دیده می‌شود، برای صفحه‌خوان نامرئی
        است، و با روشن بودن «کاهش حرکت» بی‌حرکت و کامل نمایش داده می‌شود.

        نکتهٔ نگهداری: در انیمیشن کشیدن خط، at-property های stroke-dasharray و
        stroke-dashoffset باید هر دو باشند؛ دومی به‌تنهایی هیچ کاری نمی‌کند و
        انیمیشن بی‌صدا از کار می‌افتد.

1.0.0 — انتشار نخست. برگردان طراحی تأییدشدهٔ HTML به قالب وردپرس: سربرگ با منوی
        کشویی موبایل، صفحهٔ اصلی، فهرست یادداشت‌ها با فولیوی شماره‌دار، یادداشت
        تکی با پروفایل نویسنده، صفحهٔ تماس، پاصفحهٔ سبز. شش وزن ابر خودمیزبان —
        هیچ درخواستی به سرور بیرونی نمی‌رود.

        نکتهٔ نگهداری: در این توضیح هرگز ستاره و اسلش را پشت سر هم ننویسید؛ آن
        دنباله کامنت را زودتر می‌بندد و مرورگر نخستین قاعدهٔ at-font-face را
        می‌بلعد. نتیجه: فونت بی‌صدا به وزن دیگری می‌افتد.
*/

/* ═════════════ فونت ابر — خودمیزبان ═════════════ */
@font-face{font-family:"Abar Low";font-style:normal;font-weight:300;font-display:swap;
  src:url("assets/fonts/AbarLow-Light.woff2") format("woff2")}
@font-face{font-family:"Abar Low";font-style:normal;font-weight:400;font-display:swap;
  src:url("assets/fonts/AbarLow-Regular.woff2") format("woff2")}
@font-face{font-family:"Abar Low";font-style:normal;font-weight:500;font-display:swap;
  src:url("assets/fonts/AbarLow-Medium.woff2") format("woff2")}
@font-face{font-family:"Abar High";font-style:normal;font-weight:300;font-display:swap;
  src:url("assets/fonts/AbarHigh-Light.woff2") format("woff2")}
@font-face{font-family:"Abar High";font-style:normal;font-weight:400;font-display:swap;
  src:url("assets/fonts/AbarHigh-Regular.woff2") format("woff2")}
@font-face{font-family:"Abar High";font-style:normal;font-weight:500;font-display:swap;
  src:url("assets/fonts/AbarHigh-Medium.woff2") format("woff2")}










/* ═════════════ از مبدأ ساخته می‌شود — دستی ویرایش نکنید
   منبع: src-otagh · src-notespage · src-article · src-contact
   بازتولید: python3 build.py --theme                          */

/* ═════ src-otagh.html ═════ */
:root{
  --green:#14291F;         /* سبز برند — سطح‌ها و جوهر تیترها */
  --green-ink:#4E6B54;
  --brass:#C2A062;         /* برچسب‌ها روی سبز */
  --brass-deep:#6B4F14;    /* برچسب‌ها روی کاغذ */
  --paper:#FBFAF7;         /* زمینهٔ کل صفحه */
  --ink:#1A1C19;
  --mut:#5E6159;
  --rule:#DEDBD1;
  --tint:#F5F3EE;          /* زمینهٔ قاب‌های روشن */
  --on-ink:#EAEDE6;        /* متن روی سبز */
  --on-mut:#93A394;
  --on-rule:#2A4234;
  --body:"Abar Low","Vazirmatn",system-ui,sans-serif;
  --display:"Abar High","Abar Low","Vazirmatn",system-ui,sans-serif;
}
*{box-sizing:border-box}
body{
  direction:rtl;margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--body);font-weight:400;font-size:17px;line-height:1.9;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:var(--display);font-weight:500;line-height:1.7;text-wrap:balance;margin:0;color:var(--green)}
a{color:inherit}
.wrap{max-width:1000px;margin:0 auto;padding:0 30px}
.cap{font-size:14px;font-weight:500;letter-spacing:0;color:var(--brass-deep);font-family:var(--body)}
header{border-bottom:1px solid var(--rule)}
.hd{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:26px 0}
.wordmark{display:flex;align-items:center;gap:14px;text-decoration:none}
.wordmark .nm{font-family:var(--display);font-size:23px;font-weight:500;color:var(--green);white-space:nowrap}
.wordmark .sep{width:1px;height:26px;background:var(--rule)}
.wordmark .rl{font-size:12.5px;color:var(--mut);line-height:1.7}
.hd nav{display:flex;gap:30px;font-size:15px;color:var(--mut)}
.hd nav a{text-decoration:none;display:inline-block;padding:11px 0 7px;
  border-bottom:1px solid transparent;transition:color .2s,border-color .2s}
.hd nav a[aria-current]{color:var(--green);border-bottom-color:var(--green)}
.hd nav .lang{color:var(--brass-deep);position:relative;padding-inline-start:18px}
.hd nav .lang::before{content:"";position:absolute;inset-inline-start:0;top:50%;
  transform:translateY(-50%);width:1px;height:14px;background:var(--rule)}
.hero{padding:100px 0 108px;text-align:start}
.hero h1{font-size:clamp(31px,4.6vw,53px);line-height:1.6;max-width:19ch;margin:22px 0 0}
.hero p.sub{font-size:18px;color:var(--mut);max-width:50ch;margin:28px 0 0;line-height:2.05}
.hero .acts{display:flex;gap:26px;align-items:center;margin-top:40px;flex-wrap:wrap}
.btn{
  display:inline-block;text-decoration:none;font-family:var(--body);
  font-size:15.5px;padding:13px 32px;border:1px solid var(--green);
  background:var(--green);color:var(--paper);cursor:pointer;
  transition:background .2s,border-color .2s;
}
.lnk{font-size:15.5px;color:var(--mut);text-decoration:none;border-bottom:1px solid var(--rule);
  display:inline-block;padding:11px 0 6px;transition:color .2s,border-color .2s}
.hero .wrap{position:relative}
.tree{position:absolute;inset-inline-end:40px;top:50%;transform:translateY(-50%);
  width:240px;pointer-events:none;z-index:0}
.tree svg{display:block;width:100%;height:auto}
.tree .st{fill:none;stroke:var(--green-ink);stroke-width:1.6;stroke-linecap:round;opacity:.5}
.tree .br2{stroke-width:1.1;opacity:.36}
.tree .rt{fill:none;stroke:var(--green-ink);stroke-linecap:round}
.tree .r1{stroke-width:1.4;opacity:.32}
.tree .r2{stroke-width:1.05;opacity:.24}
.tree .r3{stroke-width:.8;opacity:.17}
.tree .lf{fill:var(--c,var(--green-ink));opacity:var(--o,.34)}
.hero .cap,.hero h1,.hero p.sub,.hero .acts{position:relative;z-index:1}
@keyframes grow{to{stroke-dashoffset:0}}
@keyframes bud{to{opacity:var(--o,.34);transform:scale(1)}}
.about{background:var(--green);padding:104px 0}
.about h2{font-size:clamp(27px,3.4vw,34px);color:var(--on-ink);line-height:1.6;margin:0 0 12px}
.ag{display:grid;grid-template-columns:200px minmax(0,1fr);
  grid-template-areas:"portrait identity" "portrait bio";gap:28px 48px;align-items:start}
.profile-identity{grid-area:identity;min-width:0}
.profile-credentials{list-style:none;padding:0;margin:0;color:var(--on-mut);font-size:15px;line-height:2}
.profile-credentials li{position:relative;padding-inline-start:18px}
.profile-credentials li::before{content:"";position:absolute;inset-inline-start:1px;
  top:.88em;width:5px;height:5px;background:var(--brass);opacity:.45;transform:rotate(45deg)}
.profile-credentials a{color:inherit;text-decoration:none}
.profile-bio{grid-area:bio;min-width:0}
.profile-bio p{color:#BECABE;font-size:17px;line-height:2.15;margin:0 0 20px;max-width:64ch}
.profile-bio p:last-child{margin-bottom:0}
.pic{aspect-ratio:3/4;overflow:hidden;margin:0}
.pic img{width:100%;height:100%;object-fit:cover;object-position:50% 8%;display:block;
  position:relative;z-index:1}
.ag > .pic{grid-area:portrait;position:relative;overflow:visible;margin-inline-start:9px;margin-block-start:9px}
.ag > .pic::before{content:"";position:absolute;z-index:0;
  inset-inline-start:-9px;inset-block-start:-9px;width:100%;height:100%;
  border:1px solid var(--brass)}
.sec{padding:74px 0;border-top:1px solid var(--rule)}
.sec:first-of-type{border-top:0}
.sec-head{margin-bottom:34px}
.sec-head h2{font-size:clamp(23px,2.9vw,30px);margin-top:14px}
.spec .panels{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;
  margin-top:40px;align-items:stretch}
.spec .sitem{display:flex;flex-direction:column;
  background:var(--tint);padding:32px 26px 34px;margin:0;border:0}
.spec .sitem .n{font-family:var(--display);font-size:14px;font-weight:500;line-height:1;
  color:var(--brass-deep);margin:0 0 20px}
.spec .sitem h3{font-size:19.5px;font-weight:500;line-height:1.6;color:var(--green);
  margin:0 0 14px;min-height:59px}
.spec .sitem p{margin:0;font-size:16px;line-height:2;color:var(--mut)}
.note{
  display:grid;grid-template-columns:105px 1fr 1.15fr;gap:24px;align-items:baseline;
  padding:26px 0;border-top:1px solid var(--rule);text-decoration:none;
}
.note:first-of-type{border-top:0}
.note time{font-size:13.5px;color:var(--mut)}
.note h3{font-size:clamp(20px,2.2vw,24px);font-weight:400;transition:color .2s}
.note p{margin:0;font-size:14.5px;color:var(--mut);line-height:1.95}
.more{display:inline-block;margin-top:26px;font-size:15px;color:var(--brass-deep);text-decoration:none;
  border-bottom:1px solid var(--rule);padding:11px 0 6px}
.closing{
  border-top:1px solid var(--rule);padding:64px 0 84px;
  display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap;
}
.closing h2{font-size:clamp(21px,2.5vw,27px);max-width:28ch;line-height:1.75}
.closing p{color:var(--mut);font-size:16px;line-height:2;margin:10px 0 0;max-width:46ch}
footer{background:var(--green);color:var(--on-mut);padding:58px 0 34px;font-size:14.5px}
.fgrid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1.4fr;gap:44px;align-items:start}
.fgrid h2,.fgrid .fh{font-family:var(--body);font-size:14px;letter-spacing:0;color:var(--brass);
  font-weight:500;margin:0 0 14px}
.fgrid .fname{font-family:var(--display);font-size:21px;font-weight:500;color:var(--on-ink);line-height:1.5}
.fgrid .frole{margin-top:6px;line-height:1.8}
.fgrid a{text-decoration:none}
.fgrid ul{list-style:none;margin:0;padding:0;line-height:2.1}
.fgrid .num{font-size:15.5px;color:var(--on-ink);direction:ltr;display:inline-block;
  text-decoration:none;padding:7px 0}
.fgrid .lbl{display:block;font-size:13.5px;font-weight:400;letter-spacing:0;
  color:#A9B8AA;margin-bottom:1px}
.fgrid li+li{margin-top:10px}
.fbot{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-top:40px;
  padding-top:22px;border-top:1px solid var(--on-rule);font-size:13px}
.rv{opacity:0;transform:translateY(14px);transition:opacity .6s ease, transform .6s ease}
.rv.in{opacity:1;transform:none}
:focus-visible{outline:1px solid var(--green);outline-offset:4px}
html{-webkit-text-size-adjust:100%}
:root{ --gutter:32px; --sec:72px; }
.wrap,.col,.author,.updown,.narrow{padding-inline:var(--gutter)}
.navtog{display:none}
@keyframes navdrop{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}
footer{padding-bottom:calc(40px + env(safe-area-inset-bottom))}
a,button{-webkit-tap-highlight-color:rgba(20,41,31,.08)}
a:focus-visible,button:focus-visible{outline:2px solid var(--brass);outline-offset:3px;border-radius:2px}
.pic a{display:block;width:100%;height:100%}
.about h2 a{color:inherit;text-decoration:none;border-bottom:1px solid transparent;
  transition:color .2s,border-color .2s}
.about h2 a:active{color:var(--brass)}

/* ═════ src-notespage.html ═════ */
:root{
  --green:#14291F;
  --brass:#C2A062;
  --brass-deep:#6B4F14;
  --paper:#FBFAF7;
  --ink:#1A1C19;
  --mut:#5E6159;
  --rule:#DEDBD1;
  --on-ink:#EAEDE6;
  --on-mut:#93A394;
  --on-rule:#2A4234;
  --body:"Abar Low","Vazirmatn",system-ui,sans-serif;
  --display:"Abar High","Abar Low","Vazirmatn",system-ui,sans-serif;
}
.list{list-style:none;margin:0;padding:0}
.r{
  display:grid;grid-template-columns:104px 1fr 160px;gap:38px;align-items:start;
  padding:40px 0;border-top:1px solid var(--rule);text-decoration:none;
}
.fol{
  font-family:var(--display);font-size:47px;line-height:.95;font-weight:500;
  color:rgba(107,79,20,.32);transition:color .2s;
}
@supports (-webkit-text-stroke:1px #000){
  .fol{color:transparent;-webkit-text-stroke:1px rgba(107,79,20,.5);
    transition:-webkit-text-stroke-color .2s}
  @media(hover:hover) and (pointer:fine){.r:hover .fol{-webkit-text-stroke-color:rgba(107,79,20,.95)}}
}
.r h2{font-size:22px;font-weight:500;margin:0;line-height:1.55;transition:color .2s}
.r p{margin:13px 0 0;font-size:14.5px;color:var(--mut);line-height:1.95;max-width:50ch}
.r .side{text-align:start}
.r .side time{display:block;font-size:13.5px;color:var(--mut)}
.r .side .rt{display:block;font-size:13px;color:var(--mut);opacity:.7;margin-top:2px}
.r .side .topic{display:block;font-size:13.5px;font-weight:500;color:var(--brass-deep);margin-top:3px}
.tail{padding:0 0 96px}
body.blog:not(.home) .more{display:inline-block;font-size:15px;color:var(--brass-deep);text-decoration:none;
  border-bottom:1px solid var(--rule);padding-bottom:3px;transition:border-color .2s}
.fgrid .lbl{display:block;font-size:13.5px;font-weight:400;letter-spacing:0;color:#A9B8AA;margin-bottom:1px}
body.blog:not(.home) .phead{background:var(--green);padding:78px 0 66px;position:relative;overflow:hidden}
.phead::after{
  content:"";position:absolute;inset-inline-start:-120px;top:-120px;width:420px;height:420px;
  border:1px solid rgba(107,79,20,.13);border-radius:50%;
}
.phead .wrap{position:relative;z-index:2}
.phead .cap{color:var(--brass)}
.phead h1{font-size:clamp(28px,3.8vw,43px);color:var(--on-ink);max-width:24ch;margin:0;line-height:1.65}
body.blog:not(.home) .phead .branch{position:absolute;inset-inline-end:-30px;top:-60px;
  width:520px;z-index:1;pointer-events:none}
.phead .branch svg{display:block;width:100%;height:auto}
body.blog:not(.home) .phead .branch .stem{fill:var(--on-ink);opacity:.085}
body.blog:not(.home) .phead .branch .lff{fill:var(--on-ink);opacity:.095}
body.blog:not(.home) .phead .branch{inset-inline-end:-132px;inset-inline-start:auto;top:auto;bottom:-86px;
  width:500px;transform:scaleY(-1) rotate(5deg);transform-origin:50% 50%}
body.blog:not(.home) .phead .branch .stem{opacity:.13}
body.blog:not(.home) .phead .branch .lff{opacity:.15}
.phead h1{min-height:3.3em}
.list{margin-top:52px}

/* ═════ src-article.html ═════ */
:root{
  --green:#14291F;
  --brass:#C2A062;
  --brass-deep:#6B4F14;
  --paper:#FBFAF7;
  --ink:#1A1C19;
  --mut:#5E6159;
  --rule:#DEDBD1;
  --on-ink:#EAEDE6;
  --on-mut:#93A394;
  --on-rule:#2A4234;
  --tint:#F5F3EE;
  --body:"Abar Low","Vazirmatn",system-ui,sans-serif;
  --display:"Abar High","Abar Low","Vazirmatn",system-ui,sans-serif;
}
.col{max-width:760px;margin:0 auto}
article{max-width:none;padding:0}
article .body{padding:34px 0 0;font-size:18px;line-height:2.05}
article .body p{margin:0 0 26px}
article .body p:last-child{margin-bottom:0}
article .body strong,article .body b{font-weight:500;color:var(--green)}
article .body h2{font-size:23px;line-height:1.3;margin:42px 0 12px}
article .body .aside,article .body blockquote{
  margin:36px 0;padding:4px 24px;border-inline-start:1px solid var(--brass-deep);
  font-size:16px;line-height:2;color:var(--mut);
}
article .body .aside b{display:block;font-family:var(--body);font-size:13.5px;font-weight:500;
  color:var(--brass-deep);margin-bottom:7px}
article .body ul,article .body ol{margin:0 0 22px;padding-inline-start:22px}
article .body li{line-height:2;margin-bottom:8px}
article .body li::marker{color:var(--brass-deep)}
.author{max-width:760px;margin:0 auto;padding-block:60px 0}
.author .in{
  display:grid;grid-template-columns:110px 1fr;gap:30px;align-items:start;
  background:var(--tint);padding:34px 32px 36px;
}
.author .pic{aspect-ratio:3/4;margin:0;position:relative;overflow:visible;
  margin-inline-start:7px;margin-block-start:7px}
.author .pic img{width:100%;height:100%;object-fit:cover;object-position:50% 8%;display:block;
  position:relative;z-index:1}
.author .pic::before{content:"";position:absolute;z-index:0;
  inset-inline-start:-7px;inset-block-start:-7px;width:100%;height:100%;
  border:1px solid var(--brass)}
.author h3{font-size:20px;margin:9px 0 8px}
.author p{margin:0 0 20px;font-size:16px;color:var(--mut);line-height:2}
.author .go{
  display:inline-block;text-decoration:none;font-family:var(--body);font-size:15.5px;
  padding:13px 30px;border:1px solid var(--green);background:var(--green);color:var(--paper);
  transition:background .2s,border-color .2s;
}
.updown{max-width:760px;margin:0 auto;padding-block:72px 96px}
.updown .head{font-size:14px;font-weight:500;color:var(--brass-deep);
  display:block;padding-bottom:20px;border-bottom:1px solid var(--rule)}
.updown .pair{display:grid;grid-template-columns:1fr 1fr;gap:40px;padding-top:26px}
.updown a{text-decoration:none;display:block;min-height:44px}
.updown .lb{font-size:13.5px;color:var(--mut);display:block;margin-bottom:8px}
.updown h4{font-size:18px;font-weight:500;line-height:1.6;transition:color .2s}
.updown .nx{text-align:start}
footer.on-article{border-top:1px solid var(--on-rule)}
body.single .phead{background:var(--green);padding:78px 0 66px;position:relative;overflow:hidden}
body.single .phead .branch{position:absolute;inset-inline-end:-30px;top:-60px;
  width:520px;z-index:1;pointer-events:none}
body.single .phead .branch .stem{fill:var(--on-ink);opacity:.085}
body.single .phead .branch .lff{fill:var(--on-ink);opacity:.095}
body.single .phead .branch{inset-inline-end:-90px;top:-150px;bottom:auto;
  width:430px;transform:rotate(-16deg);transform-origin:50% 50%}
body.single .phead .branch .stem{opacity:.1}
body.single .phead .branch .lff{opacity:.12}
body.single .phead{padding:52px 0 46px}
.phead .crumbs{display:flex;flex-wrap:wrap;gap:7px;align-items:center;
  font-size:13px;margin-bottom:18px}
.phead .crumbs a{color:rgba(234,237,230,.6);text-decoration:none;transition:color .2s}
.phead .crumbs span[aria-hidden]{color:rgba(234,237,230,.35)}
.phead .crumbs .here{color:rgba(234,237,230,.6)}
.phead .crumbs a:active{color:var(--on-ink)}
.phead .cap{display:block;color:var(--brass);font-size:12px;font-weight:500;margin-bottom:0}
.phead .ahtitle{font-size:clamp(32px,5vw,52px);line-height:1.25;margin:12px 0 22px;
  color:#fff;max-width:840px}
.phead .ahtitle{min-height:0}
.phead .byline{display:flex;flex-wrap:wrap;gap:14px;align-items:center;
  margin-top:0;font-size:14px;color:rgba(234,237,230,.7)}
.phead .byline .who{width:44px;height:44px;margin:0;flex:0 0 44px;
  border-radius:50%;overflow:hidden;background:var(--on-rule);
  border:1px solid rgba(194,160,98,.4)}
.phead .byline .who img{width:100%;height:100%;object-fit:cover;display:block}
.phead .byline .nm{color:var(--on-ink);font-weight:500}
.phead .byline .dot{color:rgba(234,237,230,.3)}
.phead .byline time,.phead .byline .rt{color:rgba(234,237,230,.7)}
.phead .byline .citeb{font:inherit;font-size:14px;color:var(--brass);background:none;
  border:1px solid rgba(194,160,98,.55);padding:0 14px;min-height:36px;cursor:pointer;
  display:inline-flex;align-items:center;position:relative}
.phead .byline .citeb::after{content:"";position:absolute;inset:-4px 0}
dialog.cdlg{border:0;padding:28px 28px 26px;max-width:560px;width:calc(100% - 32px);
  background:var(--paper);color:var(--ink);box-shadow:0 30px 80px -30px rgba(20,41,31,.5)}
dialog.cdlg::backdrop{background:rgba(20,41,31,.45)}
.cdlg h2{font-family:var(--body);font-size:16px;font-weight:500;color:var(--green);margin:0 0 4px;line-height:1.7}
.cdlg .meta{font-size:13.5px;color:var(--mut);margin:0 0 8px;line-height:1.9}
.cdlg .x{position:absolute;inset-inline-end:10px;top:10px;width:44px;height:44px;border:0;
  background:none;font-size:22px;line-height:1;color:var(--mut);cursor:pointer}
.ctabs{display:flex;gap:4px;margin:0 0 12px;flex-wrap:wrap}
.ctabs button{font:inherit;font-size:14px;color:var(--mut);background:none;border:0;
  border-bottom:1.5px solid transparent;padding:10px 10px 8px;min-height:44px;cursor:pointer}
.ctabs button[aria-selected="true"]{color:var(--green);border-bottom-color:var(--brass-deep);font-weight:500}
.ctext{background:var(--paper);border:1px solid var(--rule);padding:16px 18px;font-size:15.5px;
  line-height:2;color:var(--ink);margin:0;white-space:pre-wrap;word-break:break-word}
.ctext.lat{direction:ltr;text-align:left;font-size:15px;line-height:1.8}
.ctext.ltr{direction:ltr;text-align:left;font-family:ui-monospace,Menlo,Consolas,monospace;
  font-size:13px;line-height:1.7}
.crow{display:flex;align-items:center;gap:10px 18px;flex-wrap:wrap;margin-top:12px}
.cbtn{font:inherit;font-size:14.5px;font-weight:500;color:var(--paper);background:var(--green);
  border:1px solid var(--green);padding:0 20px;min-height:44px;cursor:pointer}
.cbtn.ok{background:var(--brass-deep);border-color:var(--brass-deep)}
.clink{font:inherit;font-size:14px;color:var(--brass-deep);text-decoration:none;background:none;
  border:0;border-bottom:1px solid var(--rule);padding:10px 0 4px;cursor:pointer}
.cshort{font-size:14px;color:var(--mut);margin:14px 0 0}
.cshort bdi{direction:ltr;color:var(--ink)}
.cshort .clink{margin-inline-start:6px}
.tail-cite{max-width:680px;margin:40px auto 0;font-size:14px}
.tail-cite button{font:inherit;color:var(--brass-deep);background:none;border:0;
  border-bottom:1px solid var(--rule);padding:10px 0 3px;cursor:pointer}
.selcite{position:absolute;z-index:50;font:inherit;font-size:13.5px;background:var(--green);
  color:var(--paper);border:0;padding:0 14px;min-height:40px;cursor:pointer;
  box-shadow:0 8px 20px -8px rgba(0,0,0,.4)}
.selcite.ok{background:var(--brass-deep)}
.selcite[hidden]{display:none}
article .body > p{position:relative}
.pn{position:absolute;inset-inline-start:-46px;top:.35em;min-width:32px;padding:4px 0;
  font-size:12.5px;line-height:1.6;text-align:center;color:var(--rule);text-decoration:none}
.pn.ok{color:var(--brass-deep)}
.phead .byline .brk{display:none}

/* ═════ src-contact.html ═════ */
:root{
  --green:#14291F;
  --green-ink:#4E6B54;
  --brass:#C2A062;         /* برچسب‌ها روی سبز */
  --brass-deep:#6B4F14;    /* برچسب‌ها روی کاغذ */
  --paper:#FBFAF7;
  --ink:#1A1C19;
  --mut:#5E6159;
  --rule:#DEDBD1;
  --tint:#F5F3EE;          /* زمینهٔ کارت روشن */
  --on-ink:#EAEDE6;
  --on-mut:#93A394;
  --on-rule:#2A4234;
  --ring:rgba(147,163,148,.22);   /* دایرهٔ خطی تزئینی روی سبز */
  --body:"Abar Low","Vazirmatn",system-ui,sans-serif;
  --display:"Abar High","Abar Low","Vazirmatn",system-ui,sans-serif;
}
h1,h2,h3{font-family:var(--display);font-weight:500;line-height:1.7;text-wrap:balance;margin:0;color:var(--green)}
.phead{background:var(--green);padding:78px 0 66px;position:relative;overflow:hidden}
.contact{padding:76px 0 92px}
.cgrid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.reach h2{font-size:clamp(21px,2.6vw,28px);margin-bottom:24px}
.reach .step{background:none;border:0;padding:0;margin:0 0 30px}
.reach .step:last-of-type{margin-bottom:0}
.reach .step h3{position:relative;font-family:var(--body);font-size:14px;font-weight:500;
  letter-spacing:0;color:var(--brass-deep);margin:0 0 10px;padding-inline-start:18px}
.reach .step h3::before{content:"";position:absolute;inset-inline-start:0;top:.52em;
  width:7px;height:7px;background:var(--brass);transform:rotate(45deg)}
.reach .step p{margin:0;font-size:16px;color:var(--mut);line-height:2;
  max-width:none;padding-inline-start:18px}
.phead .branch{position:absolute;inset-inline-end:-30px;top:-60px;
  width:520px;z-index:1;pointer-events:none}
.phead .branch .stem{fill:var(--on-ink);opacity:.085}
.phead .branch .lff{fill:var(--on-ink);opacity:.095}
.officecard{
  background:var(--tint);border:1px solid var(--rule);
  padding:42px 40px 44px;position:relative;overflow:hidden;
}
.officecard::after{
  content:"";position:absolute;inset-inline-start:-70px;top:-70px;width:220px;height:220px;
  border:1px solid var(--ring);border-radius:50%;
}
.officecard > *{position:relative;z-index:2}
.officecard h3{font-size:clamp(19px,2.2vw,23px);color:var(--green);margin-bottom:22px}
.oblock{padding:14px 0;border-top:1px solid var(--rule)}
.oblock:first-of-type{border-top:0;padding-top:0}
.oblock .lab{font-size:14px;font-weight:500;letter-spacing:0;color:var(--brass-deep);margin-bottom:5px}
.oblock .val{font-size:16px;color:var(--ink);line-height:2}
.oblock .val a{color:var(--green);text-decoration:none;transition:color .2s;
  display:inline-block;padding:8px 0;min-height:44px}
.oblock .val .en{direction:ltr;display:inline-block}

/* ═════ مدیاکوئری‌ها — به انتها منتقل شده‌اند (توضیح در theme_css) ═════ */
@media(hover:hover) and (pointer:fine){.hd nav a:hover{color:var(--green);border-bottom-color:var(--green)}}
@media(hover:hover) and (pointer:fine){.btn:hover{background:#1E3B2D;border-color:#1E3B2D}}
@media(hover:hover) and (pointer:fine){.lnk:hover{color:var(--green);border-bottom-color:var(--green)}}
@media(prefers-reduced-motion:no-preference){
  .tree .st,.tree .rt{stroke-dasharray:100;stroke-dashoffset:100;
    animation:grow var(--dur,1.4s) ease-out var(--d,0s) forwards}
  .tree .lf{opacity:0;transform:scale(.15);transform-box:fill-box;transform-origin:0% 82%;
    animation:bud .55s cubic-bezier(.2,.85,.3,1.25) var(--d,0s) forwards}
}
@media(hover:hover) and (pointer:fine){.profile-credentials a:hover{color:var(--brass)}}
@media(hover:hover) and (pointer:fine){.note:hover h3{color:var(--green-ink)}}
@media(hover:hover) and (pointer:fine){.more:hover{color:var(--green);border-bottom-color:var(--green)}}
@media(hover:hover) and (pointer:fine){.fgrid a:hover{color:var(--on-ink)}}
@media (prefers-reduced-motion:reduce){
  .rv{opacity:1;transform:none;transition:none}
  *{transition:none!important}
}
@media(hover:none){
  .btn:active,.author .go:active{background:#1E3B2D;border-color:#1E3B2D}
  .hd nav a:active,.lnk:active,.more:active,.back a:active,
  .oblock .val a:active,.fgrid a:active{opacity:.6}
  .r:active h2,.note:active h3,.updown a:active h4{color:var(--brass-deep)}
}
@media(hover:hover) and (pointer:fine){
  .about h2 a:hover{color:var(--brass);border-bottom-color:rgba(194,160,98,.5)}
}
@media(hover:hover) and (pointer:fine){
.hd nav a:hover{color:var(--green);border-bottom-color:var(--green)}
}
@media(hover:hover) and (pointer:fine){
.r:hover .fol{color:rgba(107,79,20,.7)}
}
@media(hover:hover) and (pointer:fine){
.r:hover h2{color:var(--brass-deep)}
}
@media(hover:hover) and (pointer:fine){
.more:hover{border-bottom-color:var(--brass-deep)}
}
@media(hover:hover) and (pointer:fine){
.fgrid a:hover{color:var(--on-ink)}
}
@media (prefers-reduced-motion:reduce){
*{transition:none!important}
}
@media(hover:hover) and (pointer:fine){
.author .go:hover{background:#1E3B2D;border-color:#1E3B2D}
}
@media(hover:hover) and (pointer:fine){
.updown a:hover h4{color:var(--brass-deep)}
}
@media(hover:hover) and (pointer:fine){
.phead .crumbs a:hover{color:var(--on-ink)}
}
@media(hover:hover) and (pointer:fine){
.phead .byline .citeb:hover{background:rgba(194,160,98,.12)}
}
@media(hover:hover) and (pointer:fine){
.pn:hover{color:var(--brass-deep)}
}
@media(hover:hover) and (pointer:fine){.oblock .val a:hover{color:var(--brass-deep)}}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
@media(hover:none){
  .btn:active,.author .go:active{background:#1E3B2D;border-color:#1E3B2D}
  .hd nav a:active,.lnk:active,.more:active,.back a:active,
  .oblock .val a:active,.fgrid a:active{opacity:.6}
  .oblock .val a:active{color:var(--brass-deep)}
}
@media(min-width:768px){
article.col,section.author,nav.updown{padding-inline:40px}
}
@media(min-width:1061px){
  .hero h1{max-width:min(19ch,600px)}
  .hero p.sub{max-width:min(50ch,560px)}
}
@media(min-width:768px) and (max-width:1060px){
  .tree{display:block;inset-inline-end:34px;top:50%;transform:translateY(-50%);
    width:clamp(150px,19vw,205px)}
  /* ۱۶ch اندازه‌گیری شد: در ۷۶۸، ۸۳۴ و ۱۰۲۴ تیتر سه سطر می‌شود — همان تعداد
     سطر دسکتاپ — و دست‌کم ۲۷۳px تا درخت فاصله می‌ماند. با ۱۳ch پنج سطر می‌شد. */
  .hero h1{max-width:16ch}
  .hero p.sub{max-width:44ch}
}
@media(min-width:768px) and (max-width:1023px){
  .sec{padding:64px 0}
  .hero{padding:72px 0 80px}
  .ag{column-gap:40px;grid-template-columns:175px minmax(0,1fr)}
  .r{grid-template-columns:88px 1fr 140px;gap:28px}
}
@media(min-width:768px) and (max-width:1023px){
.sec{padding:64px 0}
.hero{padding:72px 0 80px}
.r{grid-template-columns:88px 1fr 140px;gap:28px}
}
@media(max-width:900px){
body.blog:not(.home) .phead .branch{width:380px;top:-44px;inset-inline-end:-24px}
}
@media(max-width:900px){
body.blog:not(.home) .phead .branch{width:380px;top:auto;inset-inline-end:-108px;bottom:-66px}
}
@media(max-width:900px){
body.single .phead .branch{width:380px;top:-44px;inset-inline-end:-24px}
}
@media(max-width:900px){
body.single .phead .branch{width:330px;inset-inline-end:-70px;top:-120px}
}
@media(max-width:900px){.phead .branch{width:380px;top:-44px;inset-inline-end:-24px}}
@media(max-width:860px){.fgrid{grid-template-columns:1fr 1fr;gap:26px}}
@media(max-width:860px){
.fgrid{grid-template-columns:1fr 1fr;gap:26px}
}
@media(max-width:860px){
.pn{display:none}
}
@media(max-width:820px){
  .spec .panels{grid-template-columns:1fr;gap:14px;margin-top:30px}
  .spec .sitem{padding:26px 22px 28px}
  .spec .sitem h3{min-height:0;margin-bottom:12px}
}
@media(max-width:820px){.note{grid-template-columns:1fr;gap:6px}.note time{order:-1}}
@media(max-width:820px){.cgrid{grid-template-columns:1fr;gap:44px}}
@media(max-width:800px){.hd nav .lang{padding-inline-start:0}
  .hd nav .lang::before{display:none}}
@media(max-width:800px){
  .hd{flex-wrap:wrap;align-items:center;gap:9px;padding-block:14px}
  /* در همهٔ اندازه‌های موبایل: تخصص زیر نام.
     flex-basis صفر تا نام هرگز باعث شکستن سطر و افتادن دکمه به سطر بعد نشود. */
  .wordmark{width:auto;flex:1 1 0;min-width:0;
    flex-direction:column;align-items:flex-start;gap:3px}
  .wordmark .sep{display:none}
  .wordmark .nm{font-size:21px}
  .wordmark .rl{min-width:0;font-size:13px;line-height:1.75}

  /* دکمهٔ منو: مربع سبز، ۴۴×۴۴ */
  .navtog{display:flex;flex:0 0 44px;width:44px;height:44px;padding:0;margin:0;
    background:var(--green);border:0;cursor:pointer;
    flex-direction:column;align-items:center;justify-content:center;gap:4.5px;
    transition:background .2s ease}
  .navtog i{display:block;width:20px;height:2px;border-radius:1px;background:var(--paper);
    transition:transform .25s ease,opacity .2s ease}
  .navtog[aria-expanded="true"]{background:var(--brass-deep)}
  .navtog[aria-expanded="true"] i:nth-child(1){transform:translateY(6.5px) rotate(-45deg)}
  .navtog[aria-expanded="true"] i:nth-child(2){opacity:0}
  .navtog[aria-expanded="true"] i:nth-child(3){transform:translateY(-6.5px) rotate(45deg)}

  /* پنل کشویی */
  .hd nav{display:none;order:3;width:100%;flex-direction:column;gap:0;margin-top:14px;
    border-top:1px solid var(--rule);font-size:17.5px}
  .hd nav.open{display:flex;animation:navdrop .25s ease}
  .hd nav a{width:100%;text-align:start;padding:18px 0;min-height:54px;
    border-bottom:0;position:relative}
  .hd nav a+a{border-top:1px solid var(--rule)}
  .hd nav a[aria-current]{color:var(--green);font-weight:500}
  .hd nav a[aria-current]::after{content:"";position:absolute;inset-inline-end:0;
    top:50%;transform:translateY(-50%);width:20px;height:2px;background:var(--brass)}
}
@media(max-width:800px){
  .hd nav{position:fixed;inset:0;z-index:90;background:var(--green);
    width:auto;margin:0;padding:96px var(--gutter) 40px;border-top:0;
    flex-direction:column;justify-content:flex-start;gap:0;
    font-size:24px;overflow-y:auto;overscroll-behavior:contain}
  .hd nav.open{display:flex;animation:ovin .22s ease}
  @keyframes ovin{from{opacity:0}to{opacity:1}}
  .hd nav a{color:var(--on-ink);width:100%;padding:22px 0;min-height:64px;
    border-top:0;transition:color .18s}
  .hd nav a+a{border-top:1px solid var(--on-rule)}
  .hd nav a[aria-current]{color:#fff;font-weight:500}
  .hd nav a[aria-current]::after{content:"";position:absolute;inset-inline-end:0;
    top:50%;transform:translateY(-50%);width:26px;height:2px;background:var(--brass)}
  .hd nav .lang{color:var(--brass);font-size:19px;margin-top:8px}
  .hd nav a:active{color:var(--brass)}
  .navtog[aria-expanded="true"]{position:fixed;z-index:91;top:14px;
    inset-inline-end:var(--gutter);background:transparent}
  .navtog[aria-expanded="true"] i{background:var(--on-ink)}
  body.navopen{overflow:hidden}
}
@media(max-width:800px) and (hover:hover) and (pointer:fine){
  .hd nav a:hover{color:var(--brass)}
}
@media(max-width:800px){
.hd nav .lang{padding-inline-start:0}
.hd nav .lang::before{display:none}
}
@media(max-width:767px){
  .tree{display:none}
}
@media(max-width:767px){ :root{ --gutter:24px; --sec:48px; } }
@media(max-width:767px){
  .sec{padding:var(--sec) 0}
  .hero{padding:48px 0 56px}
  .about{padding:var(--sec) 0}
  .contact{padding:48px 0 64px}
  .phead{padding:48px 0 44px}
  .capbar{padding:32px 0 36px}
  .closing{padding:40px 0 56px;margin-top:16px}
  .ahead{padding:32px 0 0}
  .back{padding-block:24px 0}
  .author{padding-top:40px}
  .updown{padding-top:48px;padding-bottom:64px}
  .tail{padding:32px 0 64px}
  footer{padding:32px 0 32px}
  .fbot{margin-top:18px}
}
@media(max-width:767px){
  body{font-size:17px}
  .hero p.sub{font-size:18px;line-height:2.05}
  article .body{font-size:18px;line-height:2.05}
  .ahead h1{font-size:clamp(29px,7.4vw,35px);line-height:1.35}
  .r p,.note p{font-size:15.5px;line-height:1.95}
  .reach .step p{font-size:17px;line-height:2}
  .oblock .val{font-size:17px}
}
@media(max-width:767px){
  .officecard{padding:24px 20px 28px}
  .cgrid{gap:40px}
  .ag{row-gap:28px}
  .author .in{padding:24px 20px 28px;gap:20px}
  .r{padding:32px 0}
  .note{padding:24px 0}
}
@media(max-width:767px){
  footer{padding-bottom:calc(32px + env(safe-area-inset-bottom))}
}
@media(max-width:767px){
  .fgrid{grid-template-columns:1fr;gap:0}
  .fgrid > div:first-child{display:none}
  .fgrid > div{padding:14px 0;border-top:1px solid var(--on-rule)}
  .fgrid > div:nth-child(2){border-top:0;padding-top:0}
  .fgrid .fh{margin-bottom:6px}
  .fgrid li{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
  .fgrid li+li{margin-top:0}
  .fgrid .lbl{display:inline;margin:0}
  .fgrid .num{padding:9px 0}
  .fgrid ul{line-height:1.9}
  .fbot{padding-top:16px;flex-direction:column;gap:2px}
}
@media(max-width:767px){
.sec{padding:var(--sec) 0}
.hero{padding:48px 0 56px}
.about{padding:var(--sec) 0}
.contact{padding:48px 0 64px}
.closing{padding:40px 0 56px;margin-top:16px}
.ahead{padding:32px 0 0}
.back{padding-block:24px 0}
.author{padding-top:40px}
.updown{padding-top:48px;padding-bottom:64px}
.tail{padding:32px 0 64px}
footer{padding:32px 0 32px}
.fbot{margin-top:18px}
}
@media(max-width:767px){
body{font-size:17px}
.hero p.sub{font-size:18px;line-height:2.05}
article .body{font-size:18px;line-height:2.05}
.ahead h1{font-size:clamp(29px,7.4vw,35px);line-height:1.35}
.note p{font-size:15.5px;line-height:1.95}
/* فهرست یادداشت‌ها در موبایل یک پله بزرگ‌تر */
.r h2{font-size:23px}
.r p{font-size:16.5px;line-height:1.95}
.reach .step p{font-size:17px;line-height:2}
.oblock .val{font-size:17px}
}
@media(max-width:767px){
.officecard{padding:24px 20px 28px}
.cgrid{gap:40px}
.author .in{padding:24px 20px 28px;gap:20px}
.r{padding:32px 0}
.note{padding:24px 0}
}
@media(max-width:767px){
body.blog:not(.home) .phead{padding:48px 0 44px}
}
@media(max-width:767px){
article.col,section.author,nav.updown{padding-inline:32px}
}
@media(max-width:767px){
.sec{padding:var(--sec) 0}
.hero{padding:48px 0 56px}
.about{padding:var(--sec) 0}
.contact{padding:48px 0 64px}
body.single .phead{padding:48px 0 44px}
.capbar{padding:32px 0 36px}
.closing{padding:40px 0 56px;margin-top:16px}
.author{padding-top:40px}
.updown{padding-top:48px;padding-bottom:64px}
.tail{padding:32px 0 64px}
footer{padding:32px 0 32px}
.fbot{margin-top:18px}
}
@media(max-width:767px){
body.single .phead{padding:34px 0 32px}
}
@media(max-width:767px){
  body{font-size:17px}
  .hero p.sub{font-size:18px;line-height:2.05}
  article .body{font-size:18px;line-height:2.05}
  .ahead h1{font-size:clamp(29px,7.4vw,35px);line-height:1.35}
  .reach .step p{font-size:17px}
  .oblock .val{font-size:17px}
}
@media(max-width:767px){
  .officecard{padding:24px 20px 28px}
  .cgrid{gap:40px}
  .author .in{padding:24px 20px 28px;gap:20px}
  .r{padding:32px 0}
}
@media(max-width:760px){.hd nav{gap:20px;font-size:14px}}
@media(max-width:760px){
.hd nav{gap:20px;font-size:14px}
}
@media(max-width:760px){
.r{grid-template-columns:58px 1fr;gap:20px;padding:32px 0}
.fol{font-size:33px}
.r .side{grid-column:2;margin-top:8px}
.r .side time,.r .side .topic{display:inline}
.r .side .topic{margin-inline-start:10px}
}
@media(max-width:640px){
/* شاخه در موبایل هم می‌ماند: کوچک‌تر، آرام‌تر، از گوشهٔ پایینِ مقابلِ متن */
body.blog:not(.home) .phead .branch{display:block;width:230px;
    inset-inline-end:-58px;inset-inline-start:auto;top:auto;bottom:-44px}
body.blog:not(.home) .phead .branch .stem{opacity:.085}
body.blog:not(.home) .phead .branch .lff{opacity:.1}
.phead .wrap{position:relative;z-index:2}
}
@media(max-width:640px){
/* شاخه در موبایل هم می‌ماند: کوچک‌تر، آرام‌تر، از گوشهٔ پایینِ مقابلِ متن */
body.single .phead .branch{display:block;width:230px;
    inset-inline-end:-58px;inset-inline-start:auto;top:auto;bottom:-44px}
body.single .phead .branch .stem{opacity:.085}
body.single .phead .branch .lff{opacity:.1}
.phead .wrap{position:relative;z-index:2}
}
@media(max-width:640px){
  /* شاخه در موبایل هم می‌ماند: کوچک‌تر، آرام‌تر، از گوشهٔ پایینِ مقابلِ متن */
  .phead .branch{display:block;width:230px;
    inset-inline-end:-58px;inset-inline-start:auto;top:auto;bottom:-44px}
  .phead .branch .stem{opacity:.085}
  .phead .branch .lff{opacity:.1}
  .phead .wrap{position:relative;z-index:2}
}
@media(max-width:620px){
.author .in{grid-template-columns:1fr}
.author .pic{max-width:104px}
}
@media(max-width:620px){
.updown .pair{grid-template-columns:1fr;gap:28px}
.updown .nx{text-align:inherit}
}
@media(max-width:600px){
  .ag{grid-template-columns:126px minmax(0,1fr);
    grid-template-areas:"portrait identity" "bio bio";column-gap:24px}
  .profile-identity{align-self:center}
  .about h2{font-size:27px;margin-bottom:10px}
  .profile-credentials{font-size:15px}
  .profile-bio p{font-size:17px}
}
@media(max-width:600px){
dialog.cdlg{margin:auto auto 0;width:100%;max-width:100%;padding:24px 18px 22px}
}
@media(max-width:600px){
.phead .byline .d2{display:none}
.phead .byline .brk{display:block;flex-basis:100%;height:0;margin-top:-6px}
}
@media(max-width:520px){.fgrid{grid-template-columns:1fr}}
@media(max-width:520px){
.fgrid{grid-template-columns:1fr}
}
@media(max-width:429px){ :root{ --gutter:20px; } }
@media(max-width:390px){
  .ag{grid-template-columns:minmax(0,1fr);grid-template-areas:"portrait" "identity" "bio"}
  .ag > .pic{width:130px}
}
@media(max-width:359px){ :root{ --gutter:16px; } }
@media(max-width:359px){
.phead h1{min-height:4.95em}
}
@media(max-width:359px){.phead h1{min-height:4.95em}}

/* ═════════════ ویژهٔ وردپرس — دستی نگه‌داری می‌شود ═════════════ */
.fgrid h2,.fgrid h3,.fgrid h4,.fgrid h5,.fgrid .fh{font-family:var(--body);font-size:14px;letter-spacing:0;color:var(--brass);
  font-weight:500;margin:0 0 14px}
/* همتای «.fgrid .fh{margin-bottom:6px}» پاصفحهٔ موبایل در منابع؛ بدون این، قاعدهٔ بالا (که بعد از CSS تولیدشده می‌آید) برنده می‌شد و پاصفحه در قالب ۲۴px بلندتر بود. */
@media(max-width:767px){.fgrid h2,.fgrid h3,.fgrid h4,.fgrid h5,.fgrid .fh{margin-bottom:6px}}
.tail .more{margin-top:0;padding:11px 0 3px;border-bottom:1px solid var(--rule)}
.pager{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
  padding-top:34px;border-top:1px solid var(--rule)}
.pager a{font-size:15px;color:var(--brass-deep);text-decoration:none;
  display:inline-block;padding:11px 0;min-height:44px}
/* ⚠️ blockquote، ol و b (خروجی ویرایشگر وردپرس) دیگر اینجا تعریف نمی‌شوند.
   کنار همتای خودشان در src-article.html آمده‌اند تا مقدار یک منبع داشته باشد.
   کپی‌های کهنهٔ اینجا چون انتهای فایل بودند بر CSS تولیدشده غلبه می‌کردند و
   قاب کناری و فهرست در قالب با site/ فرق داشتند. */
article .body h3{font-size:20px;margin:34px 0 14px}
article .body img{max-width:100%;height:auto;display:block;margin:30px 0}
article .body figcaption{font-size:14px;color:var(--mut);margin-top:-18px;margin-bottom:26px}
.pagebody{max-width:640px;margin:0 auto;padding:46px 30px 90px;font-size:18px;line-height:2.2}
.pagebody p{margin:0 0 24px}
.pagebody h2{font-size:23px;margin:42px 0 16px}
.pagebody h3{font-size:20px;margin:34px 0 14px}
.pagebody img{max-width:100%;height:auto}
.pagebody ul,.pagebody ol{margin:0 0 24px;padding-inline-start:22px}
.pagebody li::marker{color:var(--brass-deep)}
.skip{position:absolute;inset-inline-start:-9999px;top:0;z-index:100;
  background:var(--green);color:var(--paper);padding:12px 20px;text-decoration:none}
.skip:focus{inset-inline-start:0}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;
  clip:rect(1px,1px,1px,1px);white-space:nowrap}
.fgrid .hours{color:var(--on-ink)}
.fgrid .faddr{margin:0;line-height:2.1}
.alignright{float:right;margin:0 0 20px 24px}
.alignleft{float:left;margin:0 24px 20px 0}
.aligncenter{display:block;margin-inline:auto}
.alignwide,.alignfull{max-width:100%}
.wp-caption{max-width:100%}
.wp-caption-text,.wp-element-caption{font-size:14px;color:var(--mut);line-height:1.9;margin-top:8px}
.wp-block-image img{max-width:100%;height:auto}
.wp-block-quote{margin:36px 0;padding:4px 24px;border-inline-start:1px solid var(--brass-deep);
  font-size:17px;line-height:2.1;color:var(--mut)}
