/* ==========================================================================
   نهال — لایهٔ پایهٔ ظاهر
   جهتِ ۱a «ستونِ ادیتوریال»: آرام، متقارن، فضای سفیدِ سخاوتمند.
   منبعِ همهٔ مقادیر: theme.json (توکن‌ها) — این‌جا فقط به عناصرِ سایت وصل می‌شوند.
   ========================================================================== */

/* --------------------------------------------------------------------------
   ۱) پُلِ توکن‌ها → متغیرهای خودِ Blocksy
   Blocksy ظاهرش را با متغیرهای ‎--theme-*‎ می‌سازد. این‌جا آن‌ها را به توکن‌های
   نهال وصل می‌کنیم تا هر بخشی از قالب که هنوز دستی استایل نداده‌ایم هم
   خودبه‌خود رنگ و فونتِ درست بگیرد.
   -------------------------------------------------------------------------- */
:root {
	--theme-font-family: var(--wp--preset--font-family--vazirmatn);
	--theme-font-weight: 400;
	--theme-font-size: var(--wp--preset--font-size--medium);
	--theme-line-height: var(--wp--custom--line-height--body);
	--theme-text-color: var(--wp--preset--color--ink);
	--theme-headings-color: var(--wp--preset--color--ink);
	--theme-link-initial-color: var(--wp--preset--color--terracotta);
	--theme-link-hover-color: var(--wp--preset--color--ink);
	--theme-border-color: var(--wp--preset--color--hairline);
	--theme-content-spacing: var(--wp--preset--spacing--50);

	/* پدینگِ دکمه‌ها — این یکی را Blocksy اصلاً چاپ نمی‌کند.
	   قاعدهٔ خودش (‎.woocommerce button.button‎ و خویشانش) می‌گوید
	   ‎padding: var(--theme-button-padding)‎، ولی گزینهٔ buttonPadding در
	   theme_mods خالی ذخیره شده، پس blocksy_output_spacing() هیچ خطی برایش
	   نمی‌نویسد. یک ‎var()‎ِ تعریف‌نشده کلِ اعلان را در زمانِ محاسبه باطل می‌کند،
	   یعنی پدینگ صفر می‌شود و متنِ هر دکمهٔ استانداردِ ووکامرس دقیقاً به لبه
	   می‌چسبد. بقیهٔ متغیرهایِ ‎--theme-button-*‎ (از جمله min-height: 40px) چاپ
	   می‌شوند؛ فقط همین یکی جا افتاده بود.

	   عمداً فقط افقی را باز می‌کنیم: ارتفاع را همان min-heightِ ۴۰px بگرداند تا
	   قدِ دکمه‌هایِ سراسرِ سایت با این تغییر جابه‌جا نشود. تا امروز دو وصلهٔ محلی
	   (خبرنامهٔ فوتر، دکمهٔ ثبتِ دیدگاه) همین یک علتِ سراسری را نقطه‌ای پوشانده
	   بودند؛ آن دو سرِ جایشان می‌مانند چون مقدارِ خودشان را از کامپ گرفته‌اند. */
	--theme-button-padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--50);

	/* میان‌بُرهای خوانا برای استفاده در بقیهٔ فایل‌ها */
	--nahal-hairline: 1px solid var(--wp--preset--color--hairline);
	--nahal-transition: var(--wp--custom--transition);
}

/* --------------------------------------------------------------------------
   ۲) پایهٔ متن
   فارسی به ارتفاعِ خطِ بازتر از لاتین نیاز دارد (۱٫۹) وگرنه متن خفه می‌شود.
   -------------------------------------------------------------------------- */
body {
	font-family: var(--wp--preset--font-family--vazirmatn);
	font-size: var(--wp--preset--font-size--medium);
	line-height: var(--wp--custom--line-height--body);
	color: var(--wp--preset--color--ink);
	background-color: var(--wp--preset--color--ground);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* فرم‌ها فونت را از مرورگر ارث می‌برند، نه از سایت — دستی برشان می‌گردانیم. */
input,
select,
textarea,
button,
optgroup {
	font-family: inherit;
	line-height: 1.7;
}

h1,
h2,
h3,
h4,
h5,
h6,
.entry-title,
.woocommerce-loop-product__title,
.product_title {
	font-family: var(--wp--preset--font-family--estedad);
	font-weight: 700;
	line-height: var(--wp--custom--line-height--heading);
	letter-spacing: var(--wp--custom--tracking--tight);
	color: var(--wp--preset--color--ink);
}

/* مقیاسِ اندازهٔ سرتیترها را این‌جا دوباره اعلام می‌کنیم، وگرنه از بین می‌رود.
   وردپرس اندازه‌هایِ theme.json را با سلکتورِ عنصریِ ساده (h1…h6) و در <head>
   چاپ می‌کند؛ Blocksy در main.min.css دقیقاً همان سلکتورها را با
   ‎font-size: var(--theme-font-size)‎ دارد و چون دیرتر بار می‌شود، در تساویِ
   اختصاصی (0,0,1) برنده می‌شود. نتیجه‌اش این بود که هر سرتیتری که کلاسِ
   اندازه‌دار نداشت به ۱۵px می‌افتاد — کوچک‌تر از متنِ بدنه (۱۶px) و کوچک‌تر از
   برچسبِ چشمیِ بالایِ خودش، یعنی سلسله‌مراتب وارونه می‌شد. main.css بعد از
   Blocksy بار می‌شود، پس همین چند خط مقیاس را برمی‌گرداند. */
h1 {
	font-size: var(--wp--preset--font-size--huge);
}

h2 {
	font-size: var(--wp--preset--font-size--xx-large);
}

h3 {
	font-size: var(--wp--preset--font-size--x-large);
}

h4 {
	font-size: var(--wp--preset--font-size--large);
}

h5 {
	font-size: var(--wp--preset--font-size--medium);
}

h6 {
	font-size: var(--wp--preset--font-size--small);
}

h1,
.entry-title {
	font-weight: 800;
	line-height: var(--wp--custom--line-height--tight);
}

/* --------------------------------------------------------------------------
   ۲-ب) متنِ فارسیِ داخلِ صفحهٔ انگلیسی (جایگزینِ D3، ‎lang="fa"‎)
   بخشِ ۲۰ (پایینِ فایل) روی ریشهٔ /en/ ارتفاعِ خطِ لاتین می‌گذارد؛ فارسیِ داخلش
   باید ارتفاعِ خطِ خودش را پس بگیرد. این‌جا، زود در فایل، نوشته شده تا قاعده‌هایِ
   کلاس‌دارِ بعدی (مثلاً ‎.nahal-legal__content p‎ با ۲٫۳) در تساویِ وزن ببرند.
   دو قاعده، چون دو مشکلِ جدا هست:
   ۱) توکن‌ها: ‎custom property‎ با هیچ قاعدهٔ دیگری نمی‌جنگد، پس هر ‎var()‎ِ
      پایین‌دست (تیتر ۱٫۴۵، ‎--theme-line-height‎) درست حل می‌شود. وزن صفر.
   ۲) خودِ ‎line-height‎: Blocksy برایِ ‎p, li, td…‎ می‌نویسد ‎line-height: inherit‎ و
      عددِ بی‌واحدِ ریشه (۱٫۶۵) را به بندِ فارسی می‌رساند؛ باید صریح بنشیند.
      تیترها بیرون‌اند: قاعدهٔ خودشان از توکنِ تیتر می‌خواند. */
:where(html[dir="ltr"] :lang(fa)) {
	--wp--custom--line-height--body: 1.9;
	--wp--custom--line-height--loose: 2.1;
	--wp--custom--line-height--heading: 1.45;
	--wp--custom--line-height--tight: 1.25;
	--wp--custom--tracking--label: 0.22em;
	--theme-line-height: 1.9;
}

:where(html[dir="ltr"]) :is(p, li, td, th, dd, dt, div, span, label, figcaption, address, blockquote):lang(fa) {
	line-height: 1.9;
}

/* --------------------------------------------------------------------------
   ۳) پیوندها و انتخابِ متن
   -------------------------------------------------------------------------- */
a {
	color: var(--wp--preset--color--terracotta);
	text-decoration: none;
	transition: color var(--wp--custom--transition);
}

a:hover,
a:focus-visible {
	color: var(--wp--preset--color--ink);
}

::selection {
	background-color: var(--wp--preset--color--terracotta);
	color: var(--wp--preset--color--white);
}

/* حلقهٔ فوکوس باید همیشه دیده شود — الزامِ دسترس‌پذیری. */
:focus-visible {
	outline: 2px solid var(--wp--preset--color--terracotta);
	outline-offset: 2px;
}

hr,
.wp-block-separator {
	border: 0;
	border-top: var(--nahal-hairline);
	opacity: 1;
}

/* --------------------------------------------------------------------------
   ۴) اجزای تکرارشونده
   -------------------------------------------------------------------------- */

/* «عنوانِ ریزِ فاصله‌دار» — همان برچسب‌های بالای تیترها در فایلِ طراحی
   (نمونه: «مجله»، «راهنما»، «کالکشن پاییز»). */
/* خوانایی: قبلاً ۱۲px با وزنِ ۴۰۰ و فاصله‌حرفیِ ‎0.3em‎ بود و سه مشکل داشت.
   مهم‌ترینش فاصله‌حرفی است: خطِ فارسی متصل است، و ‎letter-spacing‎ همان اتصالِ
   حروف را باز می‌کند — چیزی که در لاتین «شیک» است، این‌جا کلمه را تکه‌تکه
   می‌کند. پس تراکینگ به ‎wide‎ (‎0.12em‎) کم شد، اندازه یک پله بالا رفت و وزن
   به ۵۰۰ رسید تا در ۱۳px هم تنه داشته باشد. برچسب هنوز «ریز و فاصله‌دار» است،
   فقط دیگر باید حدس زده نشود. */
.nahal-eyebrow {
	display: block;
	font-family: var(--wp--preset--font-family--vazirmatn);
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
	letter-spacing: 0.06em;
	color: var(--wp--preset--color--terracotta);
	margin-bottom: var(--wp--preset--spacing--30);
}

/* روی زمینهٔ تیره، برچسب با تراکوتای روشن خوانده می‌شود.
   ‎.nahal-on-dark‎ هم به‌صورتِ ظرف نوشته شده بود و هم باید روی خودِ برچسب
   کار کند: همه‌جا در قالب کنارِ هم می‌آیند (‎class="nahal-eyebrow nahal-on-dark"‎)،
   پس شکلِ نواده‌ایِ تنها هیچ‌وقت مچ نمی‌شد و برچسب تراکوتایِ تیره می‌ماند
   — ۲٫۲۹:۱ روی اسپرسو. با شکلِ هم‌عنصری ۴٫۹۸:۱ می‌شود. */
.has-shell-background-color .nahal-eyebrow,
.has-espresso-background-color .nahal-eyebrow,
.nahal-on-dark .nahal-eyebrow,
.nahal-eyebrow.nahal-on-dark {
	color: var(--wp--preset--color--terracotta-light);
}

/* دکمه‌ها: قرصی، تراکوتا، بدونِ سایه. */
.wp-block-button__link,
.ct-button,
.ct-button-ghost,
button.button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button {
	font-family: var(--wp--preset--font-family--vazirmatn);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	line-height: 1.6;
	letter-spacing: 0;
	border-radius: var(--wp--custom--radius--pill);
	box-shadow: none;
	transition: background-color var(--wp--custom--transition), color var(--wp--custom--transition);
}

/* سافاریِ iOS هر ورودی‌ای را که فونتش کوچک‌تر از ۱۶px باشد هنگامِ فوکوس زوم
   می‌کند، و چون بعدش خودش عقب نمی‌کشد کاربر وسطِ فرم با صفحه‌ای می‌ماند که
   دیگر در قاب نیست. اندازه‌گیریِ ۳۷۵px این‌ها را زیرِ ۱۶ نشان داد: فیلدِ
   خبرنامه ۱۴، کدِ تخفیفِ سبد ۱۴، مرتب‌سازیِ فروشگاه ۱۴، تعدادِ محصول ۱۳٫۶.
   فقط در عرضِ موبایل بزرگ می‌شوند تا ظاهرِ دسکتاپ دست‌نخورده بماند.
   ‎:not()‎ها هم برایِ بردنِ اولویت لازم‌اند، نه تزئین: انتخابگرِ فیلدِ خبرنامه
   ‎(0,2,0)‎ است و ‎input‎ِ تنها ‎(0,0,1)‎ می‌باخت. */
@media (max-width: 699px) {
	input:not([type="checkbox"]):not([type="radio"]):not([type="range"]),
	select:not([multiple]),
	textarea:not([readonly]) {
		font-size: 16px;
	}
}

/* --------------------------------------------------------------------------
   ۵) راست‌به‌چپ
   وردپرس خودش dir="rtl" می‌گذارد؛ این‌ها فقط جاهایی است که عدد یا لاتین
   داخلِ متنِ فارسی می‌آید و باید جهتش درست بماند.
   -------------------------------------------------------------------------- */
.nahal-ltr {
	direction: ltr;
	unicode-bidi: isolate;
	text-align: left;
}

/* قیمت و اعداد در متنِ فارسی نباید بشکنند. */
.woocommerce-Price-amount,
.nahal-num {
	unicode-bidi: isolate;
	white-space: nowrap;
}

/* --------------------------------------------------------------------------
   ۶) هدر — نوارِ اعلان، آیکون‌ها، منویِ اصلی، مگامنو
   -------------------------------------------------------------------------- */

.nahal-announcement-bar {
	background-color: var(--wp--preset--color--terracotta);
	color: var(--wp--preset--color--white);
	text-align: center;
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
}

.nahal-announcement-bar p {
	margin: 0;
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: var(--wp--custom--tracking--label);
}

/* وردمارکِ هدر («کالکشن نهال») — مشکیِ خالص طبقِ درخواست، نه توکنِ مشکیِ گرم. */
.site-title,
.site-title a {
	color: #000000;
}

.site-title a:hover {
	color: #000000;
}

/* ارتفاعِ پیش‌فرضِ ردیف‌هایِ هدرسازِ Blocksy (۱۲۰px لوگو + ۸۰px منو) خیلی بازتر
   از دیزاینِ مرجع بود؛ این‌جا فشرده‌تر و هم‌راستا با آن می‌شود. */
.ct-header [data-device="desktop"] [data-row="middle"] > div {
	min-height: 84px !important;
}

.ct-header [data-device="desktop"] [data-row="bottom"] > div {
	min-height: 56px !important;
}

.ct-header [data-device="mobile"] [data-row="middle"] > div {
	min-height: 60px !important;
}

/* آیکون‌های سبد/حساب/جستجو یک‌دست: مشکیِ گرم، هاور تراکوتا. */
.ct-header-account,
.ct-header-cart .ct-cart-item,
.ct-header-search {
	color: var(--wp--preset--color--ink);
	transition: color var(--wp--custom--transition);
}

.ct-header-account:hover,
.ct-header-cart .ct-cart-item:hover,
.ct-header-search:hover {
	color: var(--wp--preset--color--terracotta);
}

.ct-header-account .ct-icon-container svg {
	fill: currentColor;
}

/* هدفِ لمسیِ آیکون‌های هدر — هر سه دقیقاً به اندازهٔ خودِ آیکون بودند (۱۵×۱۵،
   سبد ۲۳×۱۵) با پدینگِ صفر؛ یعنی زیرِ کفِ ۲۴px استانداردِ WCAG 2.2.

   ریشه‌اش یک متغیرِ تعریف‌نشده است، نه یک قاعدهٔ غلط: Blocksy برایِ هر
   ‎[class*="ct-toggle"]‎ می‌نویسد ‎width: var(--toggle-button-size)‎ — **بدونِ
   مقدارِ پشتیبان**. این متغیر قرار است از سفارشی‌سازِ Blocksy بیاید و
   theme_mods اینجا خالی است (همان نکتهٔ بالایِ فایل)، پس اعلانْ
   «invalid at computed-value time» می‌شود و ‎width‎ به ‎auto‎ برمی‌گردد —
   دکمه تا خودِ SVGِ ۱۵ پیکسلی جمع می‌شود.

   پس به‌جایِ جنگیدن با آن قاعده، همان متغیری را که خودش می‌خواند تعریف
   می‌کنیم. مهم است چون پدینگش ‎!important‎ دارد
   (‎padding: var(--toggle-button-padding, 0px) !important‎) و راهِ پدینگ بسته
   است؛ این راه بدونِ ‎!important‎ و بدونِ جنگِ specificity کار می‌کند.

   ‎min-*‎ برایِ حساب و سبد لازم است چون آن‌ها ‎ct-toggle‎ نیستند و آن متغیر را
   نمی‌خوانند. ردیفِ میانیِ هدر ۸۴px است، پس ۴۰px ارتفاع را عوض نمی‌کند.

   ‎.ct-header-trigger‎ (همبرگرِ موبایل) هم همین مشکل را داشت و در بازبینیِ
   دسکتاپ دیده نشده بود: در ۳۷۵px اندازه‌اش ۱۸×۱۸ بود — یعنی مهم‌ترین دکمهٔ
   صفحه در موبایل، کوچک‌تر از همهٔ آیکون‌های دسکتاپ. ردیفِ موبایلِ هدر ۶۰px
   است، پس ۴۰px آن‌جا هم جا می‌شود (اندازه‌گیری‌شده، بدونِ سرریزِ افقی). */
.ct-header .ct-header-search,
.ct-header .ct-header-account,
.ct-header .ct-header-wishlist,
.ct-header .ct-header-trigger,
.ct-header .ct-header-cart .ct-cart-item {
	--toggle-button-size: 40px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	min-height: 40px;
}

/* قلبِ هدر باید تهی باشد، نه پُر.

   صفتِ ‎fill="none"‎ رویِ خودِ SVG کافی نیست: قاعدهٔ ‎.ct-icon { fill: … }‎ِ
   Blocksy یک اعلانِ CSS است و بر صفتِ ارائه‌ای مقدم می‌شود، پس قلب توپُر
   درمی‌آمد — یعنی شکلِ «ذخیره‌شده»، رویِ آیکونی که اصلاً حالت ندارد. */
.ct-header-wishlist .ct-icon {
	fill: none;
	/* همان متغیری که آیکون‌هایِ جست‌وجو/حساب/سبد می‌خوانند — بی این، قلب رنگِ
	   لینک (تراکوتا) را می‌گرفت و کنارِ همسایه‌هایِ مشکی‌اش وصله می‌شد. */
	stroke: var(--theme-icon-color, var(--theme-text-color));
}

/* شمارندهٔ کنارِ قلبِ هدر.

   ‎assets/js/wishlist.js‎ بعد از هر افزودن/حذف هم متن و هم ‎data-count‎ را
   می‌نویسد؛ شرط رویِ ‎data-count‎ است چون متن رقمِ فارسی است و CSS نمی‌تواند
   «۰» را با شرطِ عددی بگیرد.

   موقعیتش ‎relative‎ است نه ‎absolute‎: آیکونِ هدر ۴۰px است و نشانِ شناور رویِ
   لبه، در ردیفِ ۶۰ پیکسلیِ موبایل بیرون می‌زد. */
.ct-header-wishlist__count {
	margin-inline-start: 2px;
	font-size: var(--wp--preset--font-size--x-small);
	line-height: 1;
	color: var(--wp--preset--color--terracotta);
	font-variant-numeric: tabular-nums;
}

.ct-header-wishlist__count[data-count="0"] {
	display: none;
}

/* مبلغِ کنارِ سبد — برایِ همه، فقط وقتی سبد خالی نیست.

   قبلاً مهمان هرگز مبلغ نمی‌دید و کاربرِ واردشده با سبدِ خالی «۰ تومان» می‌دید
   (J2-19). شمارندهٔ Blocksy با هر افزودن ‎data-count‎ را به‌روز می‌کند، پس همین
   قاعده بعد از افزودن هم درست می‌ماند. */
.ct-header-cart .ct-cart-item:has(.ct-dynamic-count-cart[data-count="0"]) .ct-label {
	display: none;
}

/* موبایل: مبلغِ سبد برگشت (تصمیمِ کارفرما، ردیفِ ۲۵) و جایش را آیکونِ «حساب»
   داد — همان پیوند در منویِ کشویی هست.

   ردیفِ ۳۹۰ پیکسلی جا برایِ هر دو نداشت: مبلغِ هفت‌رقمی ۷۷px می‌گیرد و با پنج
   کنترل، قلب و حساب زیرِ لوگو می‌افتادند (لوگو ۱۳۲–۲۵۸، حساب ۱۳۹–۱۷۹). */
@media (max-width: 999px) {
	header [data-device="mobile"] .ct-header-account {
		display: none;
	}

	/* حتی بی آیکونِ حساب، «۲٬۳۰۰٬۰۰۰ تومان» کنارِ سبد قلب را زیرِ لوگو می‌برد:
	   ستونِ کناریِ ردیف ۱۰۲px است و قلب + سبد ۹۰ تا را گرفته‌اند. پس در موبایل
	   عدد زیرِ آیکونِ سبد می‌نشیند، ریز و بی «تومان» — همان عددی که در خودِ سبد
	   کامل نوشته شده.
	   ۱۲px نه ۱۰: ۱۰ زیرِ کفِ ۱۱ پوینتیِ متن در گوشی بود. مبلغِ هفت‌رقمی در
	   وزیرمتن ۳۸px ← ۴۵px پهن می‌شود؛ در ۳۹۰px باید دوباره دیده شود که قلب
	   زیرِ لوگو نیفتد. */
	header [data-device="mobile"] .ct-header-cart .ct-cart-item {
		flex-direction: column;
		gap: 2px;
	}

	header [data-device="mobile"] .ct-header-cart .ct-label {
		order: 2;
		font-size: 12px;
		line-height: 1;
		white-space: nowrap;
	}

	header [data-device="mobile"] .ct-header-cart .ct-label .woocommerce-Price-currencySymbol {
		display: none;
	}
}

/* منویِ اصلی (۷ آیتم، تخت — مگامنو جدا و پایین‌تر رندر می‌شود). */
.header-menu-1 .menu {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: var(--wp--preset--spacing--60);
	list-style: none;
	margin: 0;
	padding: var(--wp--preset--spacing--30) 0;
}

.header-menu-1 .menu > li > a {
	font-family: var(--wp--preset--font-family--vazirmatn);
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--ink);
}

.header-menu-1 .menu > li > a:hover,
.header-menu-1 .menu > li.is-open > a {
	color: var(--wp--preset--color--terracotta);
}

/* «فروشگاه» تنها آیتمی است که پنل باز می‌کند و تا امروز هیچ نشانه‌ای نداشت —
   عینِ «مجله» و «دربارهٔ نهال» به‌نظر می‌رسید، پس کسی نمی‌دانست کلیک چه می‌کند.
   یک شِوران که با باز شدنِ پنل می‌چرخد.

   با ‎border‎ کشیده شده نه SVG، چون اندازه‌اش باید به ‎font-size‎ِ همین لینک
   گره بخورد (واحدِ ‎em‎)؛ یک SVG با اندازهٔ ثابت، کنارِ متنِ سیالِ فارسی
   بزرگ‌وکوچک می‌زد.

   ⚠️ لنگرگاه ‎.nahal-mega-trigger‎ است، نه ‎:has()‎ یا ترتیبِ آیتم‌ها: همان
   کلاسی که جاوااسکریپت هم با آن پنل را پیدا می‌کند (assets/js/mega-menu.js)،
   پس اگر آیتمِ منو جابه‌جا شود هر دو با هم درست می‌مانند.

   در RTL، ‎::after‎ سمتِ چپِ متن می‌نشیند — همان‌جایی که کاربرِ فارسی‌زبان
   نشانگرِ بازشونده را انتظار دارد. */
.header-menu-1 .menu > li.nahal-mega-trigger > a {
	display: inline-flex;
	align-items: center;
	gap: 0.45em;
}

.header-menu-1 .menu > li.nahal-mega-trigger > a::after {
	content: "";

	/* ‎0.42em‎ رویِ لینکِ ۱۵ پیکسلی می‌شد ۶٫۳px، و ضخامتِ ‎1.5px‎ رویِ نمایشگرِ
	   ‎dpr: 1‎ به ۱ پیکسل گرد می‌شد (اندازه‌گیری‌شده). یک خطِ یک‌پیکسلیِ ۶ پیکسلی
	   کنارِ متنِ ۱۵px با وزنِ ۷۰۰ عملاً دیده نمی‌شد — نشانه‌ای که هست ولی خوانده
	   نمی‌شود، بدتر از نبودنش است.

	   ضخامت عمداً ‎px‎ ماند و ‎em‎ نشد: مقدارِ ‎em‎ دوباره به عددِ اعشاری می‌رسد و
	   همان گردشدن تکرار می‌شود. خودِ جعبه ‎em‎ می‌ماند تا با ‎font-size‎ بزرگ‌وکوچک
	   شود. */
	width: 0.5em;
	height: 0.5em;
	border-inline-end: 2px solid currentColor;
	border-block-end: 2px solid currentColor;

	/* مربعِ چرخیده = شِوران. ‎-45deg‎ نوکش را به پایین می‌آورد. */
	transform: rotate(-45deg);

	/* نوکِ شِوران پایین‌تر از مرکزِ نوری‌اش می‌افتد؛ این نیم‌پیکسل صافش می‌کند. */
	margin-block-start: -0.18em;
	transition: transform 0.18s ease;
}

.header-menu-1 .menu > li.nahal-mega-trigger.is-open > a::after {
	transform: rotate(135deg);
	margin-block-start: 0.1em;
}

/* کسی که «حرکت کمتر» را در سیستمش روشن کرده، چرخشِ ناگهانی نبیند. */
@media (prefers-reduced-motion: reduce) {
	.header-menu-1 .menu > li.nahal-mega-trigger > a::after {
		transition: none;
	}
}

/* سه پنلِ مگامنو — دقیقاً زیرِ هدر می‌نشینند چون بلافاصله بعدِ آن در DOM هستند
   (position: relative روی wrapper، بدونِ نیاز به محاسبهٔ جاوااسکریپتی).

   ⚠️ ‎width‎ این‌جا اجباری است، نه سلیقه‌ای. ‎#main-container‎ِ Blocksy یک
   ‎flex‎ِ ستونی است و این wrapper یکی از آیتم‌هایش. در فلکس‌باکس، ‎margin‎ِ
   ‎auto‎ رویِ محورِ عرضی، ‎stretch‎ را **لغو** می‌کند؛ آن‌وقت آیتم به عرضِ
   محتوایش برمی‌گردد، و تنها فرزندِ این wrapper ‎position: absolute‎ است، یعنی
   خارج از جریان. نتیجه: عرضِ ۰. پنل یک تیغهٔ ۲ پیکسلی می‌شد و لینک‌هایش از آن
   بیرون می‌زدند و رویِ هیرو چاپ می‌شدند — که دقیقاً شبیهِ «پنل پس‌زمینه ندارد»
   دیده می‌شد، در حالی که ‎background-color‎ سرِ جایش بود.

   عرض از خودِ متغیرِ ظرفِ Blocksy می‌آید، نه یک عددِ ثابت: ظرفِ هدر ‎90vw‎ است،
   پس ‎1200px‎ِ قبلی فقط تصادفاً نزدیک بود و رویِ نمایشگرِ پهن از هدر جدا می‌افتاد.
   حالا در هر عرضی دقیقاً زیرِ محتوایِ هدر می‌نشیند. */
.nahal-mega-menus {
	position: relative;
	width: var(--theme-container-width, min(100%, 90vw));
	margin-inline: auto;
}

/* پنل به اندازهٔ محتوایش، نه به اندازهٔ کلِ ظرف (D28).

   ‎inset-inline: 0‎ پنل را ۱۷۲۸px پهن می‌کرد در حالی که سه ستونِ داخلش
   ۱۶۰+۱۶۰+۱۶۰ بودند — یعنی دوسومِ پنل خالیِ خالی. ‎width: max-content‎ آن را
   به عرضِ واقعیِ سه ستون می‌رساند و ‎max-width‎ نگه می‌دارد که در نمایشگرِ
   باریک از ظرف بیرون نزند.

   ⚠️ ‎inset-inline-end: auto‎ لازم است، نه اضافه: با ‎inset-inline: 0‎ هر دو سر
   قفل می‌شوند و ‎width‎ نادیده گرفته می‌شود. پنل از لبهٔ **شروع**ِ ظرف باز
   می‌شود (در RTL یعنی راست)، زیرِ همان منویی که بازش کرده.

   پس‌زمینه از ‎ground‎ به ‎white‎ رفت: ‎ground‎ دقیقاً رنگِ خودِ صفحه بود
   (هر دو ‎#F4F0E8‎ — اندازه‌گیری‌شده)، پس پنل لبه‌ای جز یک خطِ مو نداشت و
   شناور به‌نظر نمی‌رسید. سفید یک پلهٔ روشن‌تر است و با سایهٔ نرم پنل را
   «رویِ» صفحه می‌نشاند، نه «داخلِ» آن. */
.nahal-mega-panel {
	position: absolute;
	top: 0;
	inset-inline-start: 0;
	inset-inline-end: auto;
	width: max-content;
	max-width: 100%;
	z-index: 40;
}

/* پردهٔ کم‌رنگ رویِ صفحه وقتی پنل باز است — کارش تمرکز است، نه تزئین: پنل حالا
   باریک است و بدونِ پرده در صفحهٔ شلوغ گم می‌شود.

   ‎fixed‎ داخلِ پنل کار می‌کند چون خودِ پنل ‎z-index: 40‎ دارد و زمینهٔ
   انباشتِ خودش را می‌سازد؛ ‎z-index: -1‎ پرده را پشتِ محتوایِ پنل می‌برد ولی
   هنوز رویِ صفحه. بستنش هم رایگان است: کلیک رویِ پرده از نظرِ
   ‎mega-menu.js‎ «کلیکِ بیرون» است و همان‌جا پنل را می‌بندد. */
.nahal-mega-panel::before {
	content: "";
	position: fixed;
	inset: 0;
	background-color: rgba(31, 27, 23, 0.28);
	z-index: -1;

	/* ⚠️ بدونِ این خط، پرده کلِ صفحه را قفل می‌کند — و این را اندازه‌گیری
	   نشانمان داد، نه حدس.

	   شبه‌عنصر رویدادِ اشاره‌گر را از طرفِ **عنصرِ خودش** می‌گیرد. پس پرده‌ای
	   که تمامِ ویوپورت را می‌پوشاند، تمامِ ویوپورت را به سطحِ کلیکِ پنل تبدیل
	   می‌کند: ‎elementFromPoint(480, 1000)‎ — نقطه‌ای بیرونِ جعبهٔ پنل
	   (‎1118–1817 × 179–614‎) — به‌جایِ محتوایِ صفحه، ‎DIV.nahal-mega-panel‎
	   برمی‌گرداند. دو پی‌آمد داشت: هیچ لینکی در صفحه دیگر کلیک نمی‌شد، و
	   ‎mega-menu.js‎ هر کلیکی را «داخلِ پنل» می‌دید، پس پنل با کلیکِ بیرون هم
	   بسته نمی‌شد. */
	pointer-events: none;
}

.nahal-mega-panel[hidden] {
	display: none;
}

/* پس‌زمینه، قاب و سایه رویِ ‎__inner‎ است، نه خودِ پنل (J2-04).

   پنل زمینهٔ انباشتِ خودش را دارد و پرده ‎z-index: -1‎ است: در چنین زمینه‌ای
   فرزندِ منفی **رویِ** پس‌زمینهٔ ریشه و **زیرِ** محتوایِ عادی کشیده می‌شود. پس
   پردهٔ تیره رویِ سفیدیِ خودِ پنل می‌افتاد و پنل خاکستری و «غیرفعال» دیده می‌شد،
   فقط متن رویِ پرده بود. ‎__inner‎ محتوایِ عادی است و بعد از پرده کشیده می‌شود. */
.nahal-mega-panel__inner {
	background-color: var(--wp--preset--color--white);
	border: var(--nahal-hairline);
	border-top: none;
	box-shadow: 0 18px 40px -24px rgba(31, 27, 23, 0.45);
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--70);
	padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--70);
}

.nahal-mega-panel__col {
	min-width: 160px;
}

.nahal-mega-panel__heading {
	font-family: var(--wp--preset--font-family--vazirmatn);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	/* مثلِ .nahal-eyebrow از ‎label‎ (‎0.22em‎) به ‎wide‎ کم شد — فاصله‌حرفیِ زیاد
	   اتصالِ حروفِ فارسی را باز می‌کند. */
	letter-spacing: var(--wp--custom--tracking--wide);
	color: var(--wp--preset--color--terracotta);
	margin: 0 0 var(--wp--preset--spacing--40);
}

/* گروهِ دوم («دسته‌بندی‌ها») با یک خطِ مو از گروهِ نماها جدا می‌شود، وگرنه دو
   فهرستِ پشتِ‌هم یک فهرستِ بلند به‌نظر می‌رسند. */
.nahal-mega-panel__col + .nahal-mega-panel__col:has(.nahal-mega-panel__heading) {
	border-inline-start: 1px solid var(--wp--preset--color--hairline);
	padding-inline-start: var(--wp--preset--spacing--60);
}

.nahal-mega-panel__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--30);
}

.nahal-mega-panel__list a {
	color: var(--wp--preset--color--ink);
	font-size: var(--wp--preset--font-size--medium);
}

.nahal-mega-panel__list a:hover {
	color: var(--wp--preset--color--terracotta);
}

/* برچسبِ گروه در منویِ موبایل («دسته‌بندی‌ها») — آیتمِ منو هست ولی لینک نیست،
   پس نباید مثلِ بقیه به‌نظر برسد: رنگِ تراکوتا، ریزتر، و بدونِ نشانگرِ کلیک. */
.nahal-menu-group-label > a {
	color: var(--wp--preset--color--terracotta);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 600;
	letter-spacing: var(--wp--custom--tracking--wide);
	cursor: default;
	pointer-events: none;
}

/* در پنلِ تیرهٔ موبایل: تراکوتایِ روشن (تراکوتایِ تیره رویِ قهوه‌ایِ پنل کم‌رنگ
   بود) و فاصله بالایِ هر تیتر، تا سه گروه از هم جدا خوانده شوند (J1-16). */
#offcanvas .nahal-menu-group-label > a {
	color: var(--wp--preset--color--terracotta-light);
}

#offcanvas .sub-menu .nahal-menu-group-label:not(:first-child) {
	margin-block-start: var(--wp--preset--spacing--40);
}

/* «حسابِ من» / «ورود / ثبت‌نام» تهِ منو (inc/header.php، J1-26): با خطی
   جدا از فهرستِ فروشگاه، چون جنسش فرق دارد. */
#offcanvas .nahal-menu-account {
	margin-block-start: var(--wp--preset--spacing--40);
	padding-block-start: var(--wp--preset--spacing--40);
	border-block-start: 1px solid rgba(255, 255, 255, 0.15);
}

/* موبایل: مگامنویِ دسکتاپ اصلاً دیده نشود؛ آف‌کنویسِ بومیِ Blocksy کارِ منویِ
   موبایل را با زیرمنویِ آکاردئونی انجام می‌دهد. */
@media (max-width: 999px) {
	.nahal-mega-menus {
		display: none;
	}
}

/* فلشِ باز/بستهٔ «فروشگاه» در منویِ موبایل.

   دو ایراد داشت و هر دو نامرئی بودند تا وقتی در مرورگرِ واقعی باز شد:

   ۱) رنگ. پنلِ آف‌کنویس تیره است و سفارشی‌ساز فقط
      ‎--theme-link-initial-color‎ را سفید می‌کند. آن متغیر رویِ ‎<a>‎ می‌نشیند،
      ولی این دکمه **خواهرِ** ‎<a>‎ است نه داخلش (Blocksy هر دو را در
      ‎.ct-sub-menu-parent‎ می‌پیچد)، پس ‎.ct-icon‎ به پشتیبانش
      ‎--theme-text-color‎ می‌افتد: ‎#1F1B17‎، یعنی تقریباً مشکی روی تیره.
      فلش آن‌جا بود و کلیک هم می‌شد — فقط دیده نمی‌شد.

   ۲) اندازه. همان اشکالِ ‎--toggle-button-size‎ِ آیکون‌های هدر (بالا،
      خطِ ۲۹۹): متغیر تعریف نشده و ‎width‎ به ‎auto‎ برمی‌گردد، پس هدفِ لمسی
      ۱۵×۱۵ می‌شد — زیرِ کفِ WCAG 2.2. همان راه‌حل، چون پدینگش ‎!important‎ دارد.

   در CSSِ قالب، نه در سفارشی‌ساز: تنظیماتِ سفارشی‌ساز در دیتابیس‌اند و با
   بستهٔ فقط‌فایل به سایتِ واقعی نمی‌رسند. */
#offcanvas .ct-toggle-dropdown-mobile {
	--toggle-button-size: 44px;
	--theme-icon-color: var(--theme-link-initial-color, #ffffff);
}

/* فلش موقعِ باز بودن بچرخد. Blocksy کلاسِ ‎dropdown-active‎ را رویِ ‎<li>‎
   می‌گذارد و قاعده‌اش ‎transform: var(--toggle-icon-transform)‎ است — باز هم
   متغیری که مقدارش قرار بود از سفارشی‌ساز بیاید و این‌جا نیامده، پس فلش در هر
   دو حالت یک‌شکل بود. تنها نشانهٔ باز/بسته ‎aria-expanded‎ می‌ماند که فقط
   صفحه‌خوان می‌بیند، نه چشم. */
#offcanvas .dropdown-active > .ct-sub-menu-parent > .ct-toggle-dropdown-mobile svg {
	--toggle-icon-transform: rotate(180deg);
}

/* رنگِ هاور و فوکوسِ لینک‌ها رویِ پنلِ تیره.

   همان شکلِ ایرادِ فلشِ بالا: سفارشی‌ساز فقط رنگِ *اولیه* را سفید می‌کند، ولی
   رنگِ هاور از ‎:root‎ِ همین فایل می‌آید — ‎--theme-link-hover-color: ink‎ — و
   ‎a:focus-visible‎ هم ‎ink‎ است. پس هر آیتمی که موشواره رویش بود یا با Tab
   فوکوس می‌گرفت، روی پنلِ ‎#121519‎ ناپدید می‌شد. با لمس هم دیده می‌شد: نشانگر
   بعد از زدنِ همبرگر همان‌جا می‌ماند و اولین آیتمِ پنل زیرش باز می‌شد.

   تراکوتایِ روشن (۶٫۹:۱ روی همین پنل)، همان رنگی که «تخفیف خورده» این‌جا دارد. */
#offcanvas {
	--theme-link-hover-color: var(--wp--preset--color--terracotta-light);
}

#offcanvas a:focus-visible {
	color: var(--wp--preset--color--terracotta-light);
}

/* --------------------------------------------------------------------------
   ۷) فوتر
   -------------------------------------------------------------------------- */

#footer.ct-footer {
	background-color: var(--wp--preset--color--espresso);
	color: var(--wp--preset--color--muted-on-dark);
	margin-top: var(--wp--preset--spacing--60) !important;
}

/* این فاصله برایِ صفحاتی است که با محتوایِ درون‌قابی تمام می‌شوند (فروشگاه،
   مجله، فرمِ تماس، آکاردئونِ سؤالات) و بی‌آن به فوتر می‌چسبند. ولی وقتی
   آخرین بخش خودش یک بندِ تمام‌عرضِ اسپرسو باشد، همین فاصله یک نوارِ کرمِ
   ۳۶ پیکسلی بینِ دو سطحِ هم‌رنگ می‌اندازد. آن‌جا — و فقط آن‌جا — برش می‌داریم. */
#main-container:has( .nahal-about-belief:last-child ) #footer.ct-footer {
	margin-top: 0 !important;
}

/* پیش‌فرضِ Blocksy برایِ ۴ ستون، هر ۴تا هم‌عرض است؛ طبقِ دیزاینِ مرجع، ستونِ
   برند (اولین، سمتِ راست در راست‌به‌چپ) باید پهن‌تر از سه ستونِ لینک باشد.
   پدینگِ عمودی هم پیش‌فرضش جمع‌وجور بود (۴۰px)؛ طبقِ فاصله‌هایِ عکسِ مرجع
   بازتر شده. */
#footer.ct-footer [data-row="middle"] > .ct-container {
	padding-top: var(--wp--preset--spacing--80) !important;
	padding-bottom: var(--wp--preset--spacing--80) !important;
}

/* چرا این یکی داخلِ min-width نشسته و بالا نمانده:
   Blocksy شبکهٔ فوتر را با متغیرِ ‎--grid-template-columns‎ می‌راند، نه با خودِ
   خصوصیت — و زیرِ ۱۰۰۰px آن را ‎initial‎ می‌کند تا ستون‌ها روی هم بنشینند.
   قانونِ قبلی خودِ خصوصیت را با ‎!important‎ می‌نوشت، پس در *همهٔ* عرض‌ها برنده
   می‌شد و آن ‎initial‎ هیچ‌وقت به کرسی نمی‌نشست. نتیجه در ۳۷۵px اندازه‌گیری شد:
   چهار ستون به ۶۵ و ۴۱ و ۴۱ و ۴۱ پیکسل له می‌شدند، «فروشگاه» در ۳۹px عرض به
   ۵۲px ارتفاع می‌شکست، و فیلدِ خبرنامه ۲۳px پهنا داشت. حالا این بازنویسی فقط
   همان‌جایی زندگی می‌کند که عکسِ مرجع برایش وجود دارد — دسکتاپ. */
@media (min-width: 1000px) {
	#footer.ct-footer [data-row="middle"] > .ct-container {
		grid-template-columns: 1.6fr 1fr 1fr 1fr !important;
	}
}

/* تبلت (‎۷۰۰–۹۹۹px‎): بی این بند، Blocksy هر چهار ستون را روی هم می‌چیند و فوتر
   در ۷۶۸px می‌شود ۱۰۶۰px بلندی — درست، ولی چهار بندِ کم‌جان پشتِ هم.
   کامپِ تبلت نداریم، پس به‌جایِ طراحیِ نو، ریتمِ دسکتاپ ادامه داده شد: برند یک
   ردیفِ کامل می‌گیرد (همان‌طور که در دسکتاپ ستونِ پهن‌ترش را دارد) و سه ستونِ
   لینک زیرش می‌آیند.
   چرا این و نه ۲×۲: در ۷۶۸px حالتِ ۲×۲ ستون‌هایِ ۳۲۱پیکسلی می‌داد برایِ متنی که
   بلندترینش («پرسش‌های متداول») ۱۱۰px است — بیش از نصف خالی — و بلوکِ برند را
   کنارِ یک فهرستِ لینک می‌نشاند. این‌طور ستون‌ها ۱۷۷ تا ۲۶۶px می‌شوند، نزدیکِ
   ۲۱۸pxِ دسکتاپ در ۱۲۸۰. ارتفاعِ هر دو تقریباً یکی بود (۶۵۶ در برابر ۶۶۸).
   در ۷۰۰px — باریک‌ترین نقطهٔ این بند — هیچ لینکی نمی‌شکند (همه ۲۳px بلندی). */
@media (min-width: 700px) and (max-width: 999px) {
	#footer.ct-footer [data-row="middle"] > .ct-container {
		grid-template-columns: repeat(3, 1fr);
	}

	#footer.ct-footer [data-row="middle"] > .ct-container > [data-column="widget-area-1"] {
		grid-column: 1 / -1;
	}
}

#footer.ct-footer [data-row="bottom"] > .ct-container {
	padding-top: var(--wp--preset--spacing--40) !important;
	padding-bottom: var(--wp--preset--spacing--40) !important;
}

#footer.ct-footer a {
	color: var(--wp--preset--color--white);
}

#footer.ct-footer a:hover {
	color: var(--wp--preset--color--terracotta-light);
}

#footer.ct-footer h3 {
	color: var(--wp--preset--color--white);
	font-size: var(--wp--preset--font-size--medium);
	margin: 0 0 var(--wp--preset--spacing--40);
}

.nahal-footer-brand__word {
	font-family: var(--wp--preset--font-family--estedad);
	font-weight: 800;
	font-size: var(--wp--preset--font-size--x-large);
	color: var(--wp--preset--color--white);
	margin: 0;
}

.nahal-footer-brand__tagline {
	margin: var(--wp--preset--spacing--20) 0 var(--wp--preset--spacing--50);
	color: var(--wp--preset--color--muted-on-dark);
}

.nahal-footer-newsletter {
	display: flex;
	gap: var(--wp--preset--spacing--20);
	max-width: 320px;
}

/* ‎:is([type="email"])‎ در انتخابگرِ خودمان تزئینی نیست — برایِ بردنِ جنگِ
   اولویت با Blocksy لازم است.
   Blocksy این دو قانون را دارد:
     input:is([type=email], …)              → color: var(--theme-form-text-initial-color)   (0,1,1)
     input:is([type=email], …)::placeholder → color: inherit; opacity: .7                   (0,1,2)
   انتخابگرِ سادهٔ ‎.nahal-footer-newsletter__field‎ فقط (0,1,0) است و می‌بازد، پس
   فیلد رنگِ فرمِ پیش‌فرضِ Blocksy (تیره) را می‌گرفت و پلیس‌هولدر هم با inherit
   همان تیره را ارث می‌برد — رویِ فوترِ تیره یعنی نامرئی. بدتر این‌که *متنِ
   تایپ‌شده* هم همان‌قدر تیره بود، نه فقط پلیس‌هولدر.
   با افزودنِ صفت، انتخابگرِ ما (0,2,0) و (0,2,1) می‌شود و جلو می‌افتد.
   opacity هم صریح ۱ شد، وگرنه ‎.7‎ِ Blocksy رنگِ روشن را دوباره کم‌جان می‌کرد.
   فیلد حالا ‎type="text"‎ است (inc/newsletter.php — موبایل هم می‌پذیرد)؛
   همان قانونِ Blocksy ‎[type=text]‎ را هم دارد، پس هر دو در ‎:is()‎ آمده‌اند. */
.nahal-footer-newsletter__field,
.nahal-footer-newsletter__field:is( [type="email"], [type="text"] ) {
	flex: 1;
	min-width: 0;
	background: transparent;
	border: var(--nahal-hairline);
	border-radius: var(--wp--custom--radius--soft);
	color: var(--wp--preset--color--white);
	padding: var(--wp--preset--spacing--30);
	font-size: var(--wp--preset--font-size--small);
}

.nahal-footer-newsletter__field:is( [type="email"], [type="text"] )::placeholder {
	color: var(--wp--preset--color--muted-on-dark);
	opacity: 1;
}

.nahal-footer-newsletter__button {
	background-color: var(--wp--preset--color--terracotta);
	color: var(--wp--preset--color--white);
	border: none;
	border-radius: var(--wp--custom--radius--pill);
	/* عمداً جمع‌وجورتر از دکمه‌های سراسری — کنارِ فیلدِ ایمیل جا می‌شود. */
	padding: 0 var(--wp--preset--spacing--50);
	font-size: var(--wp--preset--font-size--small);
	white-space: nowrap;
	cursor: pointer;
}

/* تلهٔ ربات — بیرونِ صفحه، نه ‎display:none‎ که بعضی ربات‌ها می‌شناسند. */
.nahal-footer-newsletter__trap {
	position: absolute;
	inset-inline-start: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.nahal-footer-newsletter__message {
	margin: var(--wp--preset--spacing--20) 0 0;
	max-width: 320px;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--white);
}

.nahal-footer-newsletter__message.is-error {
	color: var(--wp--preset--color--terracotta-light);
}

.nahal-footer-links {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--30);
}

/* جایگاهِ رزروشدهٔ نمادِ اعتماد — تا کدهایِ واقعی از PM برسد (فازِ ۱۱). */
.nahal-footer-badges {
	display: flex;
	gap: var(--wp--preset--spacing--30);
	flex-wrap: wrap;
}

.nahal-footer-badges__slot {
	border: 1px dashed var(--wp--preset--color--muted-soft);
	border-radius: var(--wp--custom--radius--soft);
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--muted-on-dark);
}

#footer .ct-footer-copyright {
	border-top: 1px solid rgba(255, 255, 255, 0.12);
	color: var(--wp--preset--color--muted-on-dark);
	font-size: var(--wp--preset--font-size--x-small);
	padding-top: var(--wp--preset--spacing--40) !important;
}

/* --------------------------------------------------------------------------
   ۸) کارتِ محصول — پایه (هویتِ بصریِ سراسری؛ گرید/فیلتر/سوآپِ عکس در فازِ ۶)
   -------------------------------------------------------------------------- */

/* چیدمانِ کارت، طبقِ درخواستِ کارفرما: عکس، نام، بعد سه ردیفِ ثابت —
   «قیمت ↔ رنگ‌ها»، «دسته ↔ ستاره‌ها»، و «مشاهده» تمام‌عرض.

   ردیف و ستونِ هر عضو صریح نوشته شده و به auto-placement تکیه نمی‌کند: ترتیبِ
   خودِ DOM (قیمت، ستاره، دسته) با ترتیبِ خواسته‌شده یکی نیست، و الگوریتمِ
   خودکار ستاره را کنارِ قیمت می‌نشاند. ستونِ ۱ در RTL سمتِ راست است. */
ul.products li.product {
	display: grid;
	grid-template-columns: 1fr auto;
	align-items: center;
	column-gap: var(--wp--preset--spacing--30);
	row-gap: var(--wp--preset--spacing--20);
}

ul.products li.product .nahal-card-media {
	grid-area: 1 / 1 / 2 / 3;
	margin-bottom: var(--wp--preset--spacing--30);
}

ul.products li.product .woocommerce-loop-product__title {
	grid-area: 2 / 1 / 3 / 3;
}

ul.products li.product .price {
	grid-area: 3 / 1 / 4 / 2;
	justify-self: start;
}

ul.products li.product .nahal-card-colors {
	grid-area: 3 / 2 / 4 / 3;
	justify-self: end;
}

ul.products li.product .entry-meta {
	grid-area: 4 / 1 / 5 / 2;
	justify-self: start;
	margin: 0;
	padding: 0;
	list-style: none;
}

ul.products li.product .ct-woo-card-rating {
	grid-area: 4 / 2 / 5 / 3;
	justify-self: end;
}

ul.products li.product .ct-woo-card-actions {
	grid-area: 5 / 1 / 6 / 3;
	margin-top: var(--wp--preset--spacing--20);
}

/* نامِ محصول — کارفرما «خیلی بزرگ‌تر» خواست. ‎medium‎ (۱۶px) با متنِ بدنه
   یکی بود و کارت هیچ نقطهٔ ورودی نداشت؛ ‎x-large‎ (۲۴px سیّال) یک پله زیرِ
   ‎h2‎ِ بخش‌هاست، پس کارت در صفحه بلندتر از تیترِ خودِ صفحه نمی‌شود. */
.woocommerce-loop-product__title {
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 600;
	line-height: 1.35;
}

/* ‎.product_title‎ پیش‌تر با عنوانِ کارت یک‌جا بود، ولی ووکامرس این کلاس را فقط
   رویِ h1ِ صفحهٔ تکِ محصول می‌گذارد — رویِ کارت هیچ‌وقت. نتیجه‌اش این بود که
   نامِ محصول ۱۶px/۶۰۰ می‌شد در حالی که قیمتِ زیرش ۲۰px/۷۰۰ است، یعنی عنوان از
   قیمت کوچک‌تر می‌نمود. کامپی برایِ این اندازه نداریم، پس نزدیک‌ترین پلهٔ
   مقیاس انتخاب شد: بالاتر از قیمت، پایین‌تر از عنوانِ صفحه‌ها (۴۴px). */
.product_title {
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 700;
}

ul.products li.product .price {
	color: var(--wp--preset--color--ink);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 700;
	line-height: 1.2;
}

/* دسته‌بندیِ زیرِ قیمت — یک پله بالاتر از x-small، ولی هم‌چنان زیرِ قیمت،
   چون اطلاعاتِ ثانویه است. */
ul.products li.product .entry-meta,
ul.products li.product .entry-meta a {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

ul.products li.product .entry-meta a:hover {
	color: var(--wp--preset--color--terracotta);
}

/* دایره‌هایِ رنگ — رو‌به‌رویِ قیمت. خطِ دورِ همیشگی لازم است، وگرنه «سفید»
   (#FFFFFF) و «شیری» رویِ کارتِ سفید ناپدید می‌شوند. */
.nahal-card-colors {
	display: flex;
	align-items: center;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.nahal-card-colors__dot {
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background-color: var(--nahal-dot, transparent);
	box-shadow: inset 0 0 0 1px rgba(31, 27, 23, 0.22);
}

.nahal-card-colors__more {
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--muted-mid);
	line-height: 1;
}

/* قیمتِ قبلی همیشه یک خطِ جدا، کوچک‌تر. وقتی دو قیمت در کارتِ باریک می‌شکستند،
   با ‎line-height: 1.2‎ خطِ خوردهٔ قیمتِ قبلی رویِ نیمهٔ پایینیِ قیمتِ تازه کشیده
   می‌شد (بازبینیِ سفرها، J1-12). */
ul.products li.product .price del {
	display: block;
	color: var(--wp--preset--color--muted-mid);
	text-decoration: line-through;
	font-size: 0.85em;
	font-weight: 500;
	line-height: 1.6;
}

ul.products li.product .price ins {
	color: var(--wp--preset--color--terracotta);
	text-decoration: none;
}

/* --------------------------------------------------------------------------
   ۹) صفحهٔ اصلی — هیرو، ردیف‌های محصول، بنرِ مجله، بندِ ورود/علاقه‌مندی
   -------------------------------------------------------------------------- */

.nahal-hero {
	position: relative;
	min-height: 640px;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	background-color: var(--wp--preset--color--espresso);
}

.nahal-hero__media {
	position: absolute;
	inset: 0;
}

/* پردهٔ تیره زیرِ تیتر. پیش‌تر ‎.75/55%‎ بود و «۳٫۹۲:۱» ثبت شده بود — ولی آن عدد
   *میانه* بود، نه بدترین حالت: در همان تیتر، تاریک‌ترین ۵٪ به ۲٫۳:۱ و کف به
   ۱٫۹۸:۱ می‌رسید، یعنی بخش‌هایی از تیتر از حدِ ۳:۱ (AA، متنِ درشت) می‌افتاد.
   با ‎.9/70%‎ کفِ کنتراست رویِ هر پنج عکسِ آزموده‌شده بالایِ ۳ می‌ماند — هم
   عکسِ فعلیِ صفحهٔ اصلی، هم هیرویِ کالکشن. مهم است چون تصویرِ هیرویِ هر
   کالکشنِ آینده را کارفرما آپلود می‌کند و از پیش دیده نمی‌شود. */
/* ‎70%‎ → ‎120%‎ (D26). آن ۷۰٪ برایِ تیترِ ۶۴پیکسلی تنظیم شده بود و برایِ همان
   کافی بود، ولی برچسبِ بالایِ تیتر بیرونِ بردش می‌افتاد: پرده در نوارِ برچسب
   فقط ۰٫۳۷ بود. با ‎120%‎ همان نوار به ۰٫۶ می‌رسد و سقفِ عکس تنها ۰٫۱۵ تیره
   می‌شود — یعنی بالایِ قاب هنوز روشن است.

   اندازه‌گیریِ کفِ کنتراست در نوارِ برچسب (بدترین ۲٪، رویِ عکسِ فعلی):
   ‎70%‎ → ۲٫۹۳:۱ · ‎100%‎ → ۴٫۴۳:۱ · **‎120%‎ → ۵٫۲۷:۱** · ‎140%‎ → ۶٫۰۰:۱.
   ‎120%‎ کم‌ترین مقداری است که از ۴٫۵ (کفِ AA برایِ متنِ معمولی) رد می‌شود. */
.nahal-hero__media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(31, 27, 23, 0.9), rgba(31, 27, 23, 0) 120%);
}

.nahal-hero__video,
.nahal-hero__poster {
	width: 100%;
	height: 100%;
	object-fit: cover;
	/* بالاترِ مرکز کراپ می‌شود، چون متنِ سفیدِ هیرو پایین می‌نشیند: این‌طوری
	   بخشِ روشنِ عکس بالا می‌ماند و تیره‌ترش زیرِ تیتر. رویِ عکسِ نمونهٔ فعلی،
	   کنتراستِ تیترِ سفید را از ۳٫۳۵:۱ به ۳٫۹۲:۱ می‌برد (اندازه‌گیری‌شده). */
	object-position: center 20%;
}

.nahal-hero__placeholder {
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--wp--preset--color--muted-on-dark);
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: var(--wp--custom--tracking--label);
}

.nahal-hero__content {
	position: relative;
	z-index: 2;
	width: 100%;
	max-width: 1200px;
	margin-inline: auto;
	padding: var(--wp--preset--spacing--80) var(--wp--preset--spacing--70);
	text-align: center;
	color: var(--wp--preset--color--white);
}

/* برچسبِ هیرو سفید است، نه تراکوتایِ روشن (D26).

   ⚠️ این یک تصمیمِ رنگی است و باید دیده شود. برچسب با ‎.nahal-on-dark‎ می‌آید،
   یعنی تراکوتایِ روشن (‎#D68F5E‎) — که رویِ زمینهٔ تیرهٔ توپر درست است، ولی
   این‌جا زمینه یک **عکس** است. اندازه‌گیری رویِ عکسِ فعلی: کفِ کنتراستِ برچسب
   ‎۱٫۱۱:۱‎ بود، یعنی عملاً نامرئی. و شدنی هم نیست: با پردهٔ ‎120%‎ به ۲٫۰۰ و
   حتی با پردهٔ یکنواختِ ۰٫۶ فقط به ۱٫۹۸ می‌رسد — تراکوتا در ۱۶px رویِ عکسِ
   روشن به ۴٫۵:۱ نمی‌رسد، مگر با پرده‌ای چنان تیره که عکس دیگر دیده نشود.

   پس رنگ عوض شد نه پرده‌ای اضافه: سفید در همان نوار ۵٫۲۷:۱ می‌دهد و با تیتر و
   دکمهٔ همان بلوک هم‌خانواده می‌شود. تراکوتا هرجا زمینهٔ توپر دارد (مجله،
   کالکشن، صفحهٔ محصول) دست‌نخورده مانده. */
.nahal-hero__content .nahal-eyebrow.nahal-on-dark {
	color: var(--wp--preset--color--white);
}

.nahal-hero__heading {
	color: var(--wp--preset--color--white);
	font-size: var(--wp--preset--font-size--display);
	margin: var(--wp--preset--spacing--30) 0 var(--wp--preset--spacing--50);
}

/* دکمهٔ هیرو — لینکِ متنیِ مینیمال با خط‌زیرِ محوشونده، نه دکمهٔ قرصیِ توپر.

   ⚠️ ‎display‎ این‌جا اجباری است، نه سلیقه‌ای — و ‎inline-block‎ِ قبلی خطِ زیر را
   می‌شکست:

   Blocksy رویِ ‎.ct-button‎ می‌گذارد ‎min-height: var(--theme-button-min-height)‎
   که به ۴۰px حل می‌شود، و رویِ ‎display: inline-flex‎ + ‎align-items: center‎
   حساب می‌کند تا متن وسطِ آن ۴۰px بنشیند. این قاعده ‎display‎ را به
   ‎inline-block‎ عوض می‌کرد ولی ‎min-height‎ را دست‌نخورده می‌گذاشت؛ یعنی
   مرکزچینیِ فلکس از بین می‌رفت و متن می‌چسبید به بالایِ جعبهٔ ۴۰ پیکسلی.
   خط‌زیر اما با ‎background-position: bottom‎ کشیده می‌شود، یعنی رویِ کفِ
   ‎padding-box‎ — کفِ همان ۴۰px. نتیجه: فاصلهٔ متن تا خطش **۱۵px** می‌شد،
   نه ‎--spacing--20‎ (۷٫۰۴px) که این‌جا نوشته شده. خط چنان از کلمه جدا می‌افتاد
   که به‌جایِ «لینکِ خط‌زیردار» شبیهِ یک خط‌کشِ بی‌ربط دیده می‌شد — و همین شد
   گزارشِ «دکمهٔ هیرو هیچ استایلی ندارد».

   ‎align-items: flex-end‎ متن را به کفِ ‎content-box‎ می‌چسباند، پس فاصله‌اش تا
   خط دقیقاً همان ‎padding-bottom‎ می‌شود. ‎min-height‎ را برنداشتیم چون هدفِ
   کلیکِ ۴۰ پیکسلی را نگه می‌دارد (همان دلیلی که آیکون‌های هدر را ۴۰px کرد).

   یادداشت برایِ بازبینی: «بی‌استایل بودنِ» این دکمه مسئلهٔ specificity نبود.
   ‎.nahal-hero__content .ct-button‎ با ‎(0,2,0)‎ رویِ ‎.ct-button‎ِ ‎(0,1,0)‎
   می‌بَرَد و کاملاً اعمال می‌شود؛ پس‌زمینهٔ شفاف و ‎padding: 0 0 7.04px‎ خواستهٔ
   خودِ همین قاعده است، نه افتادن از قلمِ استایلِ دکمه. */
.nahal-hero__content .ct-button {
	display: inline-flex;
	align-items: flex-end;
	justify-content: center;
	background: none;
	border: none;
	border-radius: 0;
	box-shadow: none;
	color: var(--wp--preset--color--white);
	font-size: var(--wp--preset--font-size--medium);
	padding: 0 0 var(--wp--preset--spacing--20);
	background-image: linear-gradient( to right, transparent 0%, currentColor 50%, transparent 100% );
	background-repeat: no-repeat;
	background-position: bottom center;
	background-size: 100% 1px;
}

.nahal-hero__content .ct-button:hover {
	color: var(--wp--preset--color--terracotta-light);
}

/* شعارِ کوتاهِ برندی، بینِ هیرو و اولین ردیفِ محصول. */
.nahal-slogan {
	max-width: 760px;
	margin-inline: auto;
	padding: var(--wp--preset--spacing--80) var(--wp--preset--spacing--70);
	text-align: center;
}

.nahal-slogan p {
	margin: 0;
	font-family: var(--wp--preset--font-family--estedad);
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 700;
	line-height: 1.5;
	color: var(--wp--preset--color--ink);
}

/* ردیفِ محصول — «رولِ افقی»، طبقِ سندِ منبع، در همهٔ اندازه‌ها. */
.nahal-roll {
	max-width: 1200px;
	margin-inline: auto;
	padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--70) var(--wp--preset--spacing--50);
}

.nahal-roll__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--40);
	margin-bottom: var(--wp--preset--spacing--50);
}

.nahal-roll__head h2 {
	margin: 0;
}

.nahal-roll__more {
	font-size: var(--wp--preset--font-size--small);
	white-space: nowrap;
}

.nahal-roll__scroller {
	position: relative;
}

.nahal-roll .products {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x proximity;
	gap: var(--wp--preset--spacing--50);
	list-style: none;
	margin: 0;
	padding: 0 0 var(--wp--preset--spacing--30);
	/* اسکرول‌بارِ پیش‌فرضِ مرورگر پنهان — به‌جایش دو دکمهٔ فلش داریم. */
	scrollbar-width: none;
	-ms-overflow-style: none;
}

.nahal-roll .products::-webkit-scrollbar {
	display: none;
}

.nahal-roll .products li.product {
	position: relative;
	flex: 0 0 240px;
	scroll-snap-align: start;
}

/* دکمه‌هایِ فلشِ گردِ چپ/راست — پایه‌ای مشترک برایِ رول‌هایِ افقی و ویترینِ
   تک‌محصولی؛ فقط جای‌گیری‌شان فرق دارد (روی عکس در رول، کنارِ عکس در ویترین).
   به‌جایِ کادرِ توپر با خطِ دورِ صاف، پس‌زمینه یک هالهٔ محوشونده است — حسِ
   مینیمال، بدونِ لبهٔ سخت. */
.nahal-roll__arrow,
.nahal-featured__arrow {
	z-index: 6;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: none;
	background-image: radial-gradient( circle, var(--wp--preset--color--white) 50%, rgba(244, 240, 232, 0) 100% );
	color: var(--wp--preset--color--ink);
	font-size: 18px;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	box-shadow: none;
	flex: 0 0 auto;
}

.nahal-roll__arrow:hover,
.nahal-featured__arrow:hover {
	color: var(--wp--preset--color--terracotta);
}

.nahal-roll__arrow {
	position: absolute;
	top: 120px;
	transform: translateY(-50%);
}

/* roll-arrows.js در ابتدا/انتهایِ ردیف ‎hidden‎ می‌گذارد، ولی ‎display: flex‎ِ
   بالا قاعدهٔ ‎[hidden]‎ِ مرورگر را می‌پوشاند — پس فلشِ «قبلی» در شروعِ ردیف و
   هر دو فلش وقتی همه‌چیز جا می‌شد، همچنان رویِ کارتِ اول دیده می‌شدند. */
.nahal-roll__arrow[hidden] {
	display: none;
}

/* ‎prev‎ در سمتِ شروع و ‎next‎ در سمتِ پایان: در راست‌به‌چپ همان راست/چپِ قبلی،
   در انگلیسی برعکس. ‎right/left‎ِ فیزیکی در /en/ فلشِ «بعدی» را سمتِ چپ می‌گذاشت. */
.nahal-roll__arrow--prev {
	inset-inline-start: -8px;
}

.nahal-roll__arrow--next {
	inset-inline-end: -8px;
}

@media (max-width: 699px) {
	.nahal-roll__arrow,
	.nahal-featured__arrow {
		width: 34px;
		height: 34px;
		font-size: 15px;
	}
}

/* همان رول در صفحهٔ محصول: «این را با این بپوش» (آپسل) و «محصولاتِ مرتبط».
   پوسته‌اش ‎section‎ِ بلاکسی است نه ‎.nahal-roll‎، پس قاعده‌ها این‌جا رویِ
   ‎.nahal-product-roll‎ (inc/product-page.php) تکرار شده‌اند. سلکتور
   ‎ul.products[data-products]‎ دارد چون بلاکسی گریدش را درون‌خطی *بعد* از این
   فایل چاپ می‌کند و سلکتورِ هم‌وزن می‌بازد — همان تلهٔ گریدِ موبایلِ دورِ دوم. */
.nahal-product-roll > ul.products[data-products] {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x proximity;
	gap: var(--wp--preset--spacing--50);
	list-style: none;
	margin: 0;
	padding: 0 0 var(--wp--preset--spacing--30);
	scrollbar-width: none;
	-ms-overflow-style: none;
}

.nahal-product-roll > ul.products[data-products]::-webkit-scrollbar {
	display: none;
}

.nahal-product-roll > ul.products[data-products] > li.product {
	position: relative;
	flex: 0 0 240px;
	scroll-snap-align: start;
}

/* هم‌عرضِ کارتِ دوستونهٔ فروشگاه در موبایل (۱۶۰px، دورِ دوم) — همان کارتِ
   کوچک‌شده با همان نقطهٔ شکستِ بلاکسی، تا لبهٔ کارتِ بعدی پیدا باشد و معلوم
   باشد که ردیف ادامه دارد. */
@media (max-width: 689.98px) {
	.nahal-product-roll > ul.products[data-products] > li.product {
		flex-basis: 160px;
	}
}

.nahal-roll__empty {
	color: var(--wp--preset--color--muted-mid);
	font-size: var(--wp--preset--font-size--small);
	padding: var(--wp--preset--spacing--60) 0;
	text-align: center;
	margin: 0;
}

/* ردیفِ دوستونه: ویترینِ محصول کنارِ داستانِ فصل.
   دو بخش که قبلاً پشتِ‌سرِ هم و تمام‌عرض بودند حالا یک بندِ واحدند. ستون‌ها
   ‎1fr 1fr‎اند و از بالا هم‌تراز می‌شوند (نه وسط‌چین) تا برچسبِ «کالکشن پاییز»
   و برچسبِ «داستان این فصل» روی یک خط بنشینند. */
/* عمداً هم‌ساختارِ .nahal-home-fabric-bandِ پایینِ خودش: گریدِ تمام‌عرضِ
   ‎1fr 1fr‎ بدونِ gap و بدونِ max-width، دو نیمه که هرکدام زمینهٔ خودش را دارد و
   محتوایش وسط است. تفاوتِ رنگِ زمینه است که مرز را می‌سازد، نه فاصله — پس هیچ
   gapی در کار نیست، وگرنه یک نوارِ کرمِ بی‌ربط بینشان می‌افتد. */
.nahal-showcase-story {
	display: grid;
	grid-template-columns: 1fr 1fr;
	min-height: 480px;
}

/* ⚠️ ‎align-items‎ عمداً ‎stretch‎ است، نه ‎center‎.
   با ‎center‎ هر دو ستون به عرضِ محتوایشان جمع می‌شوند — و ویترین این را تحمل
   نمی‌کند: تنها فرزندِ ‎.nahal-featured__media‎ عکس‌هایی‌اند که ‎position:absolute‎
   دارند، پس عرضِ ذاتیِ آن قاب صفر است. نتیجه: ‎.nahal-featured__track‎ که
   ‎width:100%‎ است روی صفر حساب می‌شد و **عکسِ محصول با ابعادِ ۰×۰ رندر می‌شد**
   (خودِ فایل سالم بود، فقط جعبه‌اش صفر بود).
   وسط‌چینیِ افقی کارِ ‎text-align‎ و ‎margin-inline: auto‎ است، نه ‎align-items‎؛
   flex این‌جا فقط برایِ وسط‌چینیِ عمودی (‎justify-content‎) هست. */
.nahal-showcase-story > .nahal-featured,
.nahal-showcase-story > .nahal-story {
	max-width: none;
	margin-inline: 0;
	display: flex;
	flex-direction: column;
	align-items: stretch;
	justify-content: center;
	text-align: center;
	padding: var(--wp--preset--spacing--80) var(--wp--preset--spacing--70);
}

.nahal-showcase-story > .nahal-featured {
	background-color: var(--wp--preset--color--ground);
}

/* نیمهٔ داستان تیره است، مثلِ نیمهٔ متنیِ بندِ پارچه. */
.nahal-showcase-story > .nahal-story {
	background-color: var(--wp--preset--color--espresso);
	color: var(--wp--preset--color--white);
}

.nahal-showcase-story > .nahal-story h2,
.nahal-showcase-story > .nahal-story p {
	color: var(--wp--preset--color--white);
}

/* رویِ زمینهٔ تیره، برچسب باید تراکوتایِ روشن باشد — همان قاعده‌ای که
   ‎.nahal-on-dark‎ برایِ هیرو و بندِ پارچه اعمال می‌کند. این‌جا کلاسِ مارک‌آپی
   نداریم چون بندِ داستان مستقل هم رندر می‌شود، پس از روی ظرف هدف می‌گیریم. */
.nahal-showcase-story > .nahal-story .nahal-eyebrow {
	color: var(--wp--preset--color--terracotta-light);
}

/* حالا که ستون کشیده است، وسط‌چینیِ این دو با margin auto انجام می‌شود. */
.nahal-showcase-story > .nahal-story .nahal-story__text {
	max-width: 420px;
	margin-inline: auto;
}

.nahal-showcase-story .nahal-story__media {
	width: 100%;
	max-width: 420px;
	height: 240px;
	margin-inline: auto;
	margin-block-end: var(--wp--preset--spacing--50);
}

/* قابِ خاکستریِ «عکس هنوز ست نشده» در این چیدمان فقط یک جعبهٔ خالی وسطِ یک
   پنلِ تیره است، پس اصلاً نمی‌آید. عکسِ واقعی سرِ جایش می‌ماند. */
.nahal-showcase-story .nahal-story__media:has( .nahal-story__placeholder ) {
	display: none;
}

@media (max-width: 899px) {
	/* تنگ‌تر از این، دو ستون یعنی دو ستونِ باریک — پس دوباره روی هم. */
	.nahal-showcase-story {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 599px) {
	/* پدینگِ ۴۸pxِ دو طرف در عرضِ ۳۷۵ گران است: با دو دکمهٔ فلش و فاصله‌هایشان،
	   عکسِ محصول به ۱۷۷px می‌رسید. با پدینگِ کوچک‌تر همان عکس ~۲۵۰px می‌شود. */
	.nahal-showcase-story > .nahal-featured,
	.nahal-showcase-story > .nahal-story {
		padding-inline: var(--wp--preset--spacing--40);
	}
}

/* ویترینِ «یک محصول در لحظه» — جایگزینِ ردیفِ افقی برایِ اولین گروهِ محصول،
   طبقِ دیزاینِ مرجع: یک محصولِ کامل با دو دکمهٔ گردِ کناری برایِ ورق‌زدن. */
.nahal-featured {
	max-width: 900px;
	margin-inline: auto;
	padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--70) var(--wp--preset--spacing--50);
	text-align: center;
}

.nahal-featured__visual {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: var(--wp--preset--spacing--40);
}

.nahal-featured__track {
	position: relative;
	width: 100%;
	max-width: 460px;
}

.nahal-featured__media {
	display: none;
	position: relative;
	aspect-ratio: 3 / 4;
	overflow: hidden;
	background-color: var(--wp--preset--color--ground);
}

.nahal-featured__media.is-active {
	display: block;
}

.nahal-featured__media img {
	position: absolute;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
	display: block;
	margin: 0;
}

/* عکسِ دومِ گالری — با هاورِ موس روی ویترین، مثلِ کارت‌هایِ محصول، کراس‌فید می‌شود. */
.nahal-featured__media-hover {
	opacity: 0;
	transition: opacity 0.3s ease;
}

.nahal-featured__media:hover .nahal-featured__media-hover {
	opacity: 1;
}

.nahal-featured__info {
	max-width: 560px;
	margin: var(--wp--preset--spacing--50) auto 0;
}

.nahal-featured__slide-info {
	display: none;
}

.nahal-featured__slide-info.is-active {
	display: block;
}

/* عنوانِ کارتِ محصول در رول.

   ⚠️ کامنتِ قبلی می‌گفت «هم‌اندازهٔ عنوانِ کارت در گریدِ فروشگاه» — دیگر درست
   نیست و اصلاح شد: عنوانِ کارتِ فروشگاه بعداً به ‎x-large‎ (۲۴px) رفت و این‌جا
   ‎medium‎ (۱۶px) ماند. اندازه عمداً همین می‌ماند، چون کارتِ رول باریک‌تر از
   خانهٔ گرید است و ۲۴px در آن می‌شکند؛ ولی ادعای «هم‌اندازه» حذف شد تا کسی
   رویش حساب نکند. */
.nahal-featured__title {
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
	margin: 0 0 var(--wp--preset--spacing--20);
}

.nahal-featured__title a {
	color: var(--wp--preset--color--ink);
}

/* قیمت — هم‌رنگ و هم‌وزنِ قیمتِ کارتِ فروشگاه (D29).

   ⚠️ موردِ D29 در بازبینی «رنگِ عنوانِ محصول ناهمگون است» نوشته شده بود، ولی
   اندازه‌گیری خلافش را نشان داد: هر دو عنوان ‎rgb(31,27,23)‎ (مشکیِ گرم)اند و
   از اول یکی بودند. ناهمگونیِ واقعی یک ردیف پایین‌تر بود — **قیمت**: این‌جا
   تراکوتا با وزنِ ۴۰۰، و در گریدِ فروشگاه مشکیِ گرم با وزنِ ۷۰۰. یعنی یک عدد
   با یک معنا، در دو صفحه دو شکل.

   جهتِ یکسان‌سازی به‌سمتِ کارتِ فروشگاه است چون آن کارتِ متعارفِ کاتالوگ است و
   قاعده‌اش کامپ‌محور نوشته شده. اندازه ‎medium‎ می‌ماند (کارتِ رول باریک‌تر
   است)، فقط رنگ و وزن هم‌تراز شد. */
.nahal-featured__price {
	color: var(--wp--preset--color--ink);
	font-weight: 700;
	margin-bottom: var(--wp--preset--spacing--30);
}

.nahal-featured__specs {
	color: var(--wp--preset--color--muted);
	line-height: 1.7;
	margin: 0;
}

@media (max-width: 699px) {
	.nahal-featured__visual {
		gap: var(--wp--preset--spacing--30);
	}
}

/* بندِ داستانِ فصل — زیرِ ویترینِ تک‌محصولی، طبقِ دیزاینِ مرجع.
   عرضِ بخش ۹۰۰px شد (هم‌اندازهٔ nahal-featured و nahal-blog-teaserِ بالا و
   پایینش) تا قابِ عکس همان نسبتِ کامپ را بگیرد؛ خودِ متن با nahal-story__text
   سرِ همان ۶۴۰pxِ قبلی می‌ماند، پس ستونِ خواندن تغییری نکرده. */
.nahal-story {
	max-width: 900px;
	margin-inline: auto;
	padding: 0 var(--wp--preset--spacing--70) var(--wp--preset--spacing--70);
	text-align: center;
}

.nahal-story__media {
	position: relative;
	overflow: hidden;
	height: 520px;
	margin-block-end: var(--wp--preset--spacing--70);
}

.nahal-story__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* قابِ خالیِ عمدی وقتی ادمین هنوز عکس نگذاشته — همان درمانِ بندِ پارچه، تا
   نبودِ عکس «ناتمام» به نظر نرسد. */
.nahal-story__placeholder {
	width: 100%;
	height: 100%;
	background-color: var(--wp--preset--color--hairline);
}

.nahal-story__text {
	max-width: 640px;
	margin-inline: auto;
}

.nahal-story h2 {
	margin: var(--wp--preset--spacing--20) 0 var(--wp--preset--spacing--30);
}

.nahal-story p {
	color: var(--wp--preset--color--muted);
	line-height: 1.7;
	margin: 0;
}

@media (max-width: 899px) {
	.nahal-story__media {
		height: 360px;
	}
}

@media (max-width: 599px) {
	.nahal-story__media {
		height: 280px;
		margin-block-end: var(--wp--preset--spacing--60);
	}
}

/* بندِ دوستونهٔ «پارچه» رویِ صفحهٔ اصلی — جایگزینِ ردیفِ افقیِ «شارژ شد».
   عمداً کلاسِ جدا از nahal-fabric-band (که بندِ پارچهٔ صفحهٔ تک‌محصول است)،
   چون آن یکی متنِ مخصوصِ همان محصول را نشان می‌دهد، نه یک پیامِ کلیِ برندی. */
.nahal-home-fabric-band {
	display: grid;
	grid-template-columns: 1fr 1fr;
	min-height: 480px;
}

.nahal-home-fabric-band__media {
	position: relative;
	overflow: hidden;
}

.nahal-home-fabric-band__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.nahal-home-fabric-band__placeholder {
	width: 100%;
	height: 100%;
	background-color: var(--wp--preset--color--ground);
}

.nahal-home-fabric-band__content {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	background-color: var(--wp--preset--color--espresso);
	color: var(--wp--preset--color--white);
	padding: var(--wp--preset--spacing--80) var(--wp--preset--spacing--70);
}

.nahal-home-fabric-band__content h2 {
	color: var(--wp--preset--color--white);
	margin: var(--wp--preset--spacing--20) 0 var(--wp--preset--spacing--40);
}

.nahal-home-fabric-band__content p {
	color: var(--wp--preset--color--white);
	max-width: 420px;
	line-height: 1.7;
	margin: 0;
}

@media (max-width: 899px) {
	.nahal-home-fabric-band {
		grid-template-columns: 1fr;
	}

	.nahal-home-fabric-band__media {
		min-height: 320px;
	}
}

/* گریدِ «دسته‌بندی‌ها» — جایگزینِ ردیفِ افقیِ «تخفیف‌خورده». طبقِ دیزاینِ
   مرجع فقط ۳تا هم‌زمان دیده می‌شود؛ بقیه با همون اسکرولر/فلش‌هایِ رول‌هایِ
   افقی (nahal-roll__scroller) قابلِ دیدن‌اند. */
.nahal-category-grid {
	max-width: 1200px;
	margin-inline: auto;
	padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--70) var(--wp--preset--spacing--50);
}

.nahal-category-grid__track {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x proximity;
	gap: var(--wp--preset--spacing--50);
	padding: 0 0 var(--wp--preset--spacing--30);
	scrollbar-width: none;
	-ms-overflow-style: none;
}

.nahal-category-grid__track::-webkit-scrollbar {
	display: none;
}

.nahal-category-grid__tile {
	display: block;
	flex: 0 0 340px;
	scroll-snap-align: start;
	color: inherit;
}

.nahal-category-grid__media {
	display: block;
	aspect-ratio: 3 / 4;
	overflow: hidden;
	background-color: var(--wp--preset--color--ground);
}

.nahal-category-grid__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform var(--wp--custom--transition);
}

.nahal-category-grid__tile:hover .nahal-category-grid__media img {
	transform: scale(1.03);
}

.nahal-category-grid__label {
	display: block;
	margin-top: var(--wp--preset--spacing--30);
	text-align: center;
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--estedad);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
}

/* ارتفاعِ کاشیِ دسته‌بندی خیلی بیشتر از کارتِ محصوله؛ فلش‌ها باید پایین‌تر
   بیایند تا وسطِ عکس بنشینند، نه وسطِ کارتِ کوچکِ محصول. */
.nahal-category-grid .nahal-roll__arrow {
	top: 227px;
}

@media (max-width: 599px) {
	.nahal-category-grid__tile {
		flex-basis: 260px;
	}

	.nahal-category-grid .nahal-roll__arrow {
		top: 173px;
	}
}

/* تیزرِ مجله — جایگزینِ بنرِ مجله، طبقِ دیزاینِ مرجع: تیترِ وسط‌چین + فهرستِ
   شمارهٔ‌دار با خطِ جداکننده بینِ ردیف‌ها. */
.nahal-blog-teaser {
	max-width: 900px;
	margin-inline: auto;
	padding: var(--wp--preset--spacing--80) var(--wp--preset--spacing--70) var(--wp--preset--spacing--60);
	text-align: center;
}

.nahal-blog-teaser h2 {
	margin: var(--wp--preset--spacing--20) 0 var(--wp--preset--spacing--70);
}

.nahal-blog-teaser__list {
	list-style: none;
	margin: 0;
	padding: 0;
	text-align: start;
}

.nahal-blog-teaser__item {
	display: flex;
	align-items: baseline;
	gap: var(--wp--preset--spacing--40);
	padding: var(--wp--preset--spacing--40) 0;
	border-top: var(--nahal-hairline);
}

.nahal-blog-teaser__item:last-child {
	border-bottom: var(--nahal-hairline);
}

.nahal-blog-teaser__index {
	flex: 0 0 auto;
	order: 2;
	font-family: var(--wp--preset--font-family--vazirmatn);
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted-mid);
}

.nahal-blog-teaser__title {
	order: 1;
	flex: 1 1 auto;
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--estedad);
	font-size: var(--wp--preset--font-size--large);
	font-weight: 600;
}

.nahal-blog-teaser__title:hover {
	color: var(--wp--preset--color--terracotta);
}

/* بندِ ورود/علاقه‌مندی */
.nahal-login-wishlist {
	display: flex;
	justify-content: center;
	gap: var(--wp--preset--spacing--70);
	padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40);
	border-top: var(--nahal-hairline);
}

.nahal-login-wishlist a {
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: var(--wp--custom--tracking--label);
}

/* شبکهٔ علاقه‌مندی‌ها در صفحهٔ حساب.

   حالا فقط یک ظرف است، نه گرید: داخلش ‎ul.products‎ِ استانداردِ ووکامرس رندر
   می‌شود و چیدمان مالِ خودِ آن است. تا وقتی این‌جا ‎display: grid‎ بود، آن
   ‎<ul>‎ یک خانهٔ گرید می‌شد و در یک‌سومِ عرض له می‌شد.

   قاعده‌هایِ ‎.nahal-wishlist-item*‎ با مارک‌آپِ دست‌ساز حذف شدند (inc/account.php). */
.nahal-wishlist-grid {
	margin-block-start: var(--wp--preset--spacing--50);
}

/* تعدادِ ستونِ پنل صریح تعیین می‌شود.

   ‎--shop-columns‎ِ Blocksy برایِ عرضِ کاملِ فروشگاه حساب شده و در دسکتاپ ۴ است؛
   ناحیهٔ محتوایِ حساب کاربری خیلی باریک‌تر است، پس همان ۴ این‌جا کارتِ ۵۱
   پیکسلی می‌داد و عنوان‌ها رویِ هم می‌افتادند (اندازه‌گیری‌شده در ۱۴۴۰px).
   دو ستون هم با عرضِ پنل می‌خواند و هم با ریتمِ کارت‌هایِ فروشگاه. */
.nahal-wishlist-grid ul.products {
	--shop-columns: repeat(2, minmax(0, 1fr));
}

/* حالتِ خالیِ مشترکِ پنل‌هایِ حساب کاربری — «علاقه‌مندی‌ها» و «سفارش‌ها» هر دو.
   قبلاً فقط علاقه‌مندی‌ها این شکل را داشت و سفارش‌ها یک نوارِ اعلانِ ووکامرس بود؛
   دلیلش و جایِ نشانه‌گذاری در woocommerce/myaccount/orders.php آمده. */
.nahal-account-empty {
	text-align: center;
	padding: var(--wp--preset--spacing--80) var(--wp--preset--spacing--40);
	color: var(--wp--preset--color--muted);
}

.nahal-account-empty p {
	margin: 0 0 var(--wp--preset--spacing--30);
}

/* خطِ اول لنگرِ چشم است — کمی درشت‌تر و به رنگِ متنِ اصلی، تا بلوک یک «حرف»
   داشته باشد و نه دو خطِ هم‌وزنِ خاکستری. */
.nahal-account-empty__lead {
	font-family: var(--wp--preset--font-family--estedad);
	font-size: var(--wp--preset--font-size--large);
	color: var(--wp--preset--color--ink);
	margin-block-end: var(--wp--preset--spacing--20);
}

.nahal-account-empty .ct-button {
	margin-block-start: var(--wp--preset--spacing--40);
}

/* زیرِ ۴۸۰px پنل جا برایِ دو کارت ندارد — عنوان و قیمت می‌شکنند. (در ۷۹۹px
   همان دو ستون می‌ماند؛ قاعدهٔ قبلی این‌جا ‎grid-template-columns‎ را رویِ
   ظرف ست می‌کرد که دیگر گرید نیست.) */
@media (max-width: 479px) {
	.nahal-wishlist-grid ul.products {
		--shop-columns: repeat(1, minmax(0, 1fr));
	}
}

@media (max-width: 699px) {
	.nahal-hero {
		min-height: 520px;
	}

	/* این کوچک‌کردنِ دستی وقتی نوشته شد که h2ها به ۱۵px افتاده بودند، پس هیرو
	   باز هم از همه بزرگ‌تر می‌ماند. حالا که مقیاس درست شده، xx-large دقیقاً
	   هم‌اندازهٔ h2هایِ صفحه می‌شد و تیترِ هیرو دیگر برجسته نبود. خودِ display
	   سیّال است (‎۳۴px‎ در کفِ موبایل)، پس نیازی به override نیست. */

	.nahal-roll .products li.product {
		flex-basis: 200px;
	}

	.nahal-login-wishlist {
		gap: var(--wp--preset--spacing--50);
	}
}

/* --------------------------------------------------------------------------
   ۱۱) فروشگاه / دسته‌بندی — ردیفِ فیلتر، عکسِ هاور رویِ کارت
   -------------------------------------------------------------------------- */

/* برچسبِ «فروشگاه» بالایِ تیترِ کتگوری + شعارِ زیرش — فقط صفحاتِ دسته‌بندی. */
.nahal-shop-hero__eyebrow {
	max-width: 780px;
	margin: 0 auto;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--70) 0;
	text-align: center;
	line-height: 1;
}

.nahal-shop-hero__eyebrow .nahal-eyebrow {
	margin-bottom: 0;
	line-height: 1;
}

/* جعبهٔ Blocksy برایِ تیترِ آرشیوِ دسته‌بندی، پیش‌فرض حداقل‌ارتفاعِ ۲۵۰px و
   پدینگِ ۵۰px داره که با برچسبِ «فروشگاه»یِ بالایِ خودمان خیلی فاصله می‌داد؛
   این‌جا جمع‌وجورترش می‌کنیم تا فاصله‌اش شبیهِ دیزاینِ مرجع بشه. */
[data-prefix="woo_categories"] .hero-section[data-type="type-2"] {
	--container-padding: 0px;
	--min-height: 0px;
}

/* برچسبِ «فروشگاه» ۱۰px زیرِ سربرگ بود و تیتر ۵۰px زیرِ برچسب — برچسب به سربرگ
   چسبیده و از تیترِ خودش جدا دیده می‌شد (J2-17، دسته‌ها و ‎/style/‎ یکسان).
   فاصلهٔ بالا به برچسب می‌رود و فاصلهٔ بینِ برچسب و تیتر کم می‌شود. */
[data-prefix="woo_categories"] .nahal-shop-hero__eyebrow {
	padding-block-start: var(--wp--preset--spacing--70);
}

[data-prefix="woo_categories"] .hero-section[data-type="type-2"] .entry-header {
	padding-block-start: var(--wp--preset--spacing--30);
	padding-block-end: var(--wp--preset--spacing--40);
}

/* «فروشگاه» و سه نمایش برچسب ندارند؛ همان فاصلهٔ بالا را خودِ تیتر می‌گیرد
   (J2-26: تیتر ۱۰px زیرِ سربرگ بود). */
[data-prefix="woo_categories"] :not(.nahal-shop-hero__eyebrow) + .hero-section[data-type="type-2"] .entry-header,
[data-prefix="woo_categories"] .hero-section[data-type="type-2"]:first-child .entry-header {
	padding-block-start: var(--wp--preset--spacing--70);
}

.nahal-shop-hero__tagline {
	max-width: 620px;
	margin: 0 auto;
	padding: 0 var(--wp--preset--spacing--70) var(--wp--preset--spacing--60);
	text-align: center;
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--medium);
}

.nahal-shop-filters-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--40);
	padding: var(--wp--preset--spacing--40) 0;
	border-top: var(--nahal-hairline);
	border-bottom: var(--nahal-hairline);
}

.nahal-filter-form {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--wp--preset--spacing--30);
}

.nahal-filter-pills {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20);
}

.nahal-filter-pill-wrap {
	position: relative;
}

.nahal-filter-pill {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	border: var(--nahal-hairline);
	border-radius: var(--wp--custom--radius--pill);
	background-color: transparent;
	padding: 13px 19px;
	font-family: var(--wp--preset--font-family--vazirmatn);
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--ink);
	cursor: pointer;
}

.nahal-filter-pill-wrap.is-open .nahal-filter-pill {
	border-color: var(--wp--preset--color--terracotta);
	color: var(--wp--preset--color--terracotta);
}

.nahal-filter-pill__caret {
	font-size: 10px;
}

.nahal-filter-panel {
	position: absolute;
	z-index: 20;
	top: calc(100% + 8px);
	inset-inline-start: 0;
	min-width: 200px;
	max-height: 280px;
	overflow-y: auto;
	background-color: var(--wp--preset--color--white);
	border: var(--nahal-hairline);
	border-radius: var(--wp--custom--radius--soft);
	box-shadow: 0 12px 28px rgba(31, 27, 23, 0.12);
	padding: var(--wp--preset--spacing--30);
}

.nahal-filter-panel__option {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--20);
	padding: 8px 4px;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--ink);
	cursor: pointer;
	white-space: nowrap;
}

/* اسلایدرِ محدودهٔ قیمت — جایگزینِ دو فیلدِ عددیِ «حداقل/حداکثر».

   دو ‎<input type="range">‎ رویِ هم: خودِ نوارها شفاف‌اند و ریل/پُرشدگیِ دیده‌شده
   دو ‎<span>‎ِ زیرشان است. برایِ اینکه هر دو دستگیره قابلِ‌گرفتن بمانند،
   ‎pointer-events‎ رویِ کلِ input خاموش و فقط رویِ دستگیره روشن می‌شود.

   درون جهت ltr است: مرورگرها ‎<input type=range>‎ را زیرِ ‎direction: rtl‎
   یک‌جور برنمی‌گردانند، و اسلایدری که ریلش با دستگیره‌اش هم‌جهت نباشد از
   اسلایدرِ «برعکس» هم بدتر است. برایِ صفحهٔ راست‌به‌چپ کلِ اسلایدر با
   ‎scaleX(-1)‎ آینه می‌شود — ارزان از راست، گران به چپ (J2-27) — که در همهٔ
   مرورگرها یک‌جور است و حسابِ JS را دست نمی‌زند. عددهایِ خوانا بالایش فارسی
   و RTL می‌مانند. */
.nahal-filter-panel--price {
	min-width: 280px;
}

.nahal-price-range__readout {
	margin: 0 0 var(--wp--preset--spacing--30);
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--ink);
	white-space: nowrap;
}

.nahal-price-range__readout span {
	font-weight: 700;
}

/* ‎--nahal-thumb‎ در دو جا لازم است: نصفش حاشیهٔ ریل است (چون مرکزِ دستگیره در
   کمینه/بیشینه به‌اندازهٔ نصفِ خودش از لبه فاصله دارد)، و JS پُرشدگی را رویِ
   ‎calc(100% - var(--nahal-thumb))‎ حساب می‌کند تا با دستگیره هم‌تراز بماند. */
.nahal-price-range__slider {
	position: relative;
	direction: ltr;
	height: 24px;
	--nahal-thumb: 18px;
}

[dir="rtl"] .nahal-price-range__slider {
	transform: scaleX(-1);
}

.nahal-price-range__rail,
.nahal-price-range__fill {
	position: absolute;
	top: 10px;
	height: 4px;
	border-radius: 2px;
}

.nahal-price-range__rail {
	left: calc(var(--nahal-thumb) / 2);
	right: calc(var(--nahal-thumb) / 2);
	background-color: var(--wp--preset--color--hairline);
}

.nahal-price-range__fill {
	background-color: var(--wp--preset--color--terracotta);
}

.nahal-price-range__input {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 24px;
	margin: 0;
	padding: 0;
	background: none;
	border: none;
	appearance: none;
	pointer-events: none;
}

.nahal-price-range__input:focus {
	outline: none;
}

.nahal-price-range__input::-webkit-slider-thumb {
	appearance: none;
	pointer-events: auto;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background-color: var(--wp--preset--color--white);
	border: 2px solid var(--wp--preset--color--terracotta);
	box-shadow: 0 1px 4px rgba(31, 27, 23, 0.25);
	cursor: pointer;
}

.nahal-price-range__input::-moz-range-thumb {
	pointer-events: auto;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background-color: var(--wp--preset--color--white);
	border: 2px solid var(--wp--preset--color--terracotta);
	box-shadow: 0 1px 4px rgba(31, 27, 23, 0.25);
	cursor: pointer;
}

.nahal-price-range__input:focus-visible::-webkit-slider-thumb {
	box-shadow: 0 0 0 3px var(--wp--preset--color--terracotta-light);
}

.nahal-price-range__input:focus-visible::-moz-range-thumb {
	box-shadow: 0 0 0 3px var(--wp--preset--color--terracotta-light);
}

.nahal-filter-apply {
	background-color: var(--wp--preset--color--terracotta);
	color: var(--wp--preset--color--white);
	border: none;
	border-radius: var(--wp--custom--radius--pill);
	padding: 13px 28px;
	font-family: var(--wp--preset--font-family--vazirmatn);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	cursor: pointer;
}

.nahal-filter-apply:hover {
	background-color: var(--wp--preset--color--ink);
}

.nahal-shop-result-count {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted-mid);
	white-space: nowrap;
}

/* «فیلترهایِ فعال» — چیپ‌هایِ حذف‌شدنی، زیرِ نوارِ فیلتر. */
.nahal-active-filters {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--wp--preset--spacing--20);
	padding: var(--wp--preset--spacing--30) 0;
}

.nahal-active-filters__label {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted-mid);
}

.nahal-active-filters__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20);
}

.nahal-active-filters__list .chosen a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background-color: var(--wp--preset--color--hairline);
	border-radius: var(--wp--custom--radius--pill);
	padding: 8px 16px;
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--ink);
}

.nahal-active-filters__list .chosen a::after {
	content: "×";
	font-size: 14px;
	line-height: 1;
}

.nahal-active-filters__list .chosen a:hover {
	background-color: var(--wp--preset--color--terracotta-light);
	color: var(--wp--preset--color--white);
}

/* «پاک کردنِ همه» کارِ متفاوتی می‌کند با چیپ‌ها (همه را می‌برد، نه یکی را)، پس
   نباید با همان ۸px گپِ بینِ چیپ‌ها به آن‌ها بچسبد و مثلِ چیپِ بعدی خوانده شود. */
.nahal-active-filters__clear {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--terracotta);
	text-decoration: underline;
	text-underline-offset: 4px;
	margin-inline-start: var(--wp--preset--spacing--50);
}

/* دلیلِ خاصِ بی‌نتیجه بودن، بالایِ جملهٔ عمومیِ ووکامرس (inc/shop.php). */
.nahal-no-results__reason {
	margin: 0 0 var(--wp--preset--spacing--20);
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted-mid);
}

/* راه‌هایِ بیرون از جست‌وجویِ بی‌نتیجه — زیرِ نوارِ فیلتر (inc/shop.php). */
.nahal-no-results {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--wp--preset--spacing--50);
	padding: var(--wp--preset--spacing--50) 0 var(--wp--preset--spacing--70);
}

.nahal-no-results__button {
	display: inline-block;
	background-color: var(--wp--preset--color--terracotta);
	color: var(--wp--preset--color--white);
	border-radius: var(--wp--custom--radius--pill);
	padding: 13px 28px;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	text-decoration: none;
}

.nahal-no-results__button:hover {
	background-color: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--white);
}

.nahal-no-results__popular {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--wp--preset--spacing--20);
}

.nahal-no-results__label {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted-mid);
	margin-inline-end: var(--wp--preset--spacing--20);
}

.nahal-no-results__pill {
	display: inline-block;
	border: var(--nahal-hairline);
	border-radius: var(--wp--custom--radius--pill);
	padding: 8px 16px;
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--ink);
	text-decoration: none;
}

.nahal-no-results__pill:hover {
	border-color: var(--wp--preset--color--terracotta);
	color: var(--wp--preset--color--terracotta);
}

/* دکمهٔ «نمایش بیشتر» — جایگزینِ شماره‌صفحه‌هایِ پیش‌فرضِ ووکامرس. */
.nahal-load-more {
	text-align: center;
	padding: var(--wp--preset--spacing--60) 0 var(--wp--preset--spacing--70);
}

.nahal-load-more__button {
	display: inline-block;
	border: var(--nahal-hairline);
	border-radius: var(--wp--custom--radius--soft);
	padding: 16px 40px;
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--vazirmatn);
	font-size: var(--wp--preset--font-size--small);
}

.nahal-load-more__button:hover {
	border-color: var(--wp--preset--color--ink);
	background-color: var(--wp--preset--color--white);
}

/* حالتِ در حالِ بارگذاری — دکمه سرِ جایش می‌ماند تا فهرست زیرِ دستِ کاربر
   نپرد؛ فقط کم‌رنگ و غیرِفعال می‌شود. */
.nahal-load-more.is-loading .nahal-load-more__button {
	opacity: 0.55;
	pointer-events: none;
}

/* خطِ «n محصولِ دیگر اضافه شد» — برایِ صفحه‌خوان لازم است (aria-live)، ولی
   دیداری حذفش می‌کنیم: کاربرِ بینا خودِ محصولاتِ تازه را می‌بیند و یک جملهٔ
   اضافه زیرِ دکمه فقط شلوغی است. */
.nahal-load-more__status {
	position: absolute;
	width: 1px;
	height: 1px;
	margin: -1px;
	padding: 0;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
	border: 0;
}

/* Blocksy، جدا از هوکِ استانداردِ ووکامرس، خودش یک <figure><a class=
   "ct-media-container">…</a></figure> برایِ تصویرِ کارت می‌سازد (سیستمِ
   woo_card_layout) — همان چیزی که باعثِ «دوتا عکس» می‌شد: figureِ Blocksy +
   divِ nahal-card-media، هر دو با هم. راهِ تمیزِ حذفِ آن closure از بیرون
   ممکن نیست (closure ناشناس است)، پس همان figure را پنهان می‌کنیم و فقط
   نگه‌دارندهٔ خودمان می‌ماند. */
ul.products li.product > figure {
	display: none;
}

/* عکسِ کارتِ محصول — position: absolute داخلِ نگه‌دارنده‌ای که با aspect-ratio
   ارتفاعش را خودش حفظ می‌کند، پس به مارک‌آپِ داخلیِ Blocksy وابسته نیست. */
.nahal-card-media {
	position: relative;
	overflow: hidden;
	aspect-ratio: 3 / 4;
}

.nahal-card-media img {
	position: absolute !important;
	inset: 0;
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
	margin: 0;
}

/* بزرگ‌نمایی زیرِ نشانگر — جایگزینِ کراس‌فیدِ قدیمیِ «عکسِ دومِ پارچه».
   فقط دسکتاپ: روی لمس رویدادِ hover یا اصلاً نمی‌آید یا چسبنده می‌ماند، و
   ‎pointer: fine‎ دقیقاً همان چیزی است که transform-origin به آن نیاز دارد.
   خودِ مختصات را assets/js/card-zoom.js در ‎--nahal-zoom-x/y‎ می‌گذارد؛
   بدونِ جاوااسکریپت، مقدارِ پیش‌فرضِ ۵۰٪ یعنی بزرگ‌نماییِ از مرکز. */
@media (hover: hover) and (pointer: fine) {
	.nahal-card-media img {
		transform-origin: var(--nahal-zoom-x, 50%) var(--nahal-zoom-y, 50%);
		transition: transform 0.35s ease;
		will-change: transform;
	}

	.nahal-card-media:hover img {
		transform: scale(1.45);
		transition-duration: 0.18s;
	}
}

/* --------------------------------------------------------------------------
   ۱۰) صفحهٔ محصول — سایز، مُدال، آکاردئون، بندها، دیدگاه‌ها
   -------------------------------------------------------------------------- */

/* نانِ‌خرده‌ها — Blocksy ‎--theme-font-size: 12px‎ می‌نشاند و ۱۲px برایِ فارسی
   ریز است.
   ⚠️ ویژگی (specificity) این‌جا عمدی است: آن مقدار در ‎<style
   id="ct-main-styles-inline-css">‎ چاپ می‌شود که **بعد از** main.css در head
   می‌آید، پس یک ‎.ct-breadcrumbs‎ِ ساده در رقابتِ ترتیب می‌بازد. با یک سلکتورِ
   دوتایی، ترتیب دیگر مهم نیست. همان تلهٔ آشنایِ theme.json در برابرِ Blocksy. */
.single-product .hero-section .ct-breadcrumbs {
	--theme-font-size: var(--wp--preset--font-size--small);

	/* فاصلهٔ بالا از این‌جا برداشته شد: هدرِ صفحهٔ محصول هم ‎type-1‎ است، پس
	   قاعدهٔ سراسریِ ‎.hero-section[data-type="type-1"]‎ (بخشِ حساب کاربری)
	   همان ۴۸px را می‌دهد. با هر دو، صفحهٔ محصول ۹۶px می‌گرفت. */
}

.nahal-size-reveal {
	background-color: var(--wp--preset--color--hairline);
	border-radius: var(--wp--custom--radius--soft);
	padding: var(--wp--preset--spacing--40);
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--ink);
	margin: var(--wp--preset--spacing--30) 0;
}

.nahal-size-guide-trigger {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--terracotta);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.nahal-wishlist-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	margin-inline-start: var(--wp--preset--spacing--30);
	background: transparent;
	border: var(--nahal-hairline);
	border-radius: var(--wp--custom--radius--pill);
	color: var(--wp--preset--color--muted);
	cursor: pointer;
	transition: color .15s ease, border-color .15s ease;
}

.nahal-wishlist-btn__icon {
	width: 24px;
	height: 24px;
	display: block;
}

.nahal-wishlist-btn:hover,
.nahal-wishlist-btn:focus-visible {
	color: var(--wp--preset--color--terracotta);
}

/* حالتِ ذخیره‌شده — قلبِ پر. حالا فقط ‎fill‎ است، نه عوض‌کردنِ نویسه. */
.nahal-wishlist-btn.is-active {
	color: var(--wp--preset--color--terracotta);
	border-color: var(--wp--preset--color--terracotta);
}

.nahal-wishlist-btn.is-active .nahal-wishlist-btn__icon {
	fill: currentColor;
}

/* مُدال — راهنمای سایز */
.nahal-modal {
	position: fixed;
	inset: 0;
	z-index: 100;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: var(--wp--preset--spacing--40);
}

.nahal-modal[hidden] {
	display: none;
}

.nahal-modal__overlay {
	position: absolute;
	inset: 0;
	background-color: rgba(31, 27, 23, 0.6);
}

.nahal-modal__panel {
	position: relative;
	z-index: 1;
	max-width: 480px;
	width: 100%;
	max-height: 85vh;
	overflow-y: auto;
	background-color: var(--wp--preset--color--ground);
	border-radius: var(--wp--custom--radius--soft);
	padding: var(--wp--preset--spacing--60);
}

.nahal-modal__close {
	position: absolute;
	top: var(--wp--preset--spacing--40);
	inset-inline-start: var(--wp--preset--spacing--40);
	background: transparent;
	border: none;
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	color: var(--wp--preset--color--muted);
	/* هدفِ لمسی ۴۰×۴۰ — «×»ِ خالی ۱۱×۲۲ بود (J1-13)؛ ظاهر همان می‌ماند. */
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	min-height: 40px;
	margin: -9px;
}

.nahal-modal__note {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--x-small);
	margin-top: 0;
}

.nahal-size-table {
	width: 100%;
	border-collapse: collapse;
	margin: var(--wp--preset--spacing--40) 0;
}

.nahal-size-table th,
.nahal-size-table td {
	border: var(--nahal-hairline);
	padding: var(--wp--preset--spacing--30);
	text-align: center;
	font-size: var(--wp--preset--font-size--small);
}

.nahal-size-table th {
	background-color: var(--wp--preset--color--hairline);
	font-weight: 600;
}

.nahal-modal__footnote {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--x-small);
	margin-bottom: 0;
}

/* آکاردئون */
.nahal-accordion {
	border-top: var(--nahal-hairline);
	margin-top: var(--wp--preset--spacing--50);
}

.nahal-accordion__item {
	border-bottom: var(--nahal-hairline);
}

.nahal-accordion__trigger {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	background: transparent;
	border: none;
	padding: var(--wp--preset--spacing--40) 0;
	font-family: var(--wp--preset--font-family--vazirmatn);
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
	color: var(--wp--preset--color--ink);
	cursor: pointer;
}

.nahal-accordion__icon {
	position: relative;
	width: 12px;
	height: 12px;
	flex-shrink: 0;
}

.nahal-accordion__icon::before,
.nahal-accordion__icon::after {
	content: "";
	position: absolute;
	background-color: var(--wp--preset--color--ink);
}

.nahal-accordion__icon::before {
	inset-inline-start: 0;
	top: 5px;
	width: 12px;
	height: 2px;
}

.nahal-accordion__icon::after {
	top: 0;
	inset-inline-start: 5px;
	width: 2px;
	height: 12px;
	transition: transform 0.2s ease;
}

.nahal-accordion__item.is-open .nahal-accordion__icon::after {
	transform: scaleY(0);
}

.nahal-accordion__panel {
	display: none;
	padding-bottom: var(--wp--preset--spacing--40);
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
}

.nahal-accordion__item.is-open .nahal-accordion__panel {
	display: block;
}

/* بندِ «چرا این تکه» */
.nahal-why-piece {
	max-width: 720px;
	margin: var(--wp--preset--spacing--90) auto;
	padding: 0 var(--wp--preset--spacing--40);
	text-align: center;
}

.nahal-why-piece p {
	font-family: var(--wp--preset--font-family--estedad);
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 700;
	line-height: var(--wp--custom--line-height--heading);
	margin-top: var(--wp--preset--spacing--30);
}

/* بندِ پارچه — تصویر + متنِ اسپرسو، دوستونه */
.nahal-fabric-band {
	display: grid;
	grid-template-columns: 1fr 1fr;
	min-height: 420px;
}

.nahal-fabric-band__media {
	position: relative;
}

.nahal-fabric-band__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.nahal-fabric-band__placeholder {
	width: 100%;
	height: 100%;
	min-height: 420px;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: var(--wp--preset--color--shell);
	color: var(--wp--preset--color--muted-soft);
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: var(--wp--custom--tracking--label);
}

.nahal-fabric-band__content {
	background-color: var(--wp--preset--color--espresso);
	color: var(--wp--preset--color--white);
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: var(--wp--preset--spacing--80);
}

.nahal-fabric-band__content h2 {
	color: var(--wp--preset--color--white);
	margin: var(--wp--preset--spacing--20) 0 var(--wp--preset--spacing--40);
}

/* دیدگاه‌ها — تمام‌عرض، هم‌عرضِ بندِ پارچه‌ای که بالایش است. قبلاً ستونی ۷۲۰px
   وسطِ صفحه بود و بلافاصله بعد از یک بندِ لبه‌به‌لبه، باریک و بی‌ربط می‌نشست.

   فقط عرض عوض می‌شود، نه چیدمانِ درون: Blocksy خودش
   ‎[data-content=normal] .woocommerce-Reviews‎ را دوستونه می‌کند (فهرستِ
   دیدگاه‌ها | فرمِ نوشتن، با فرمِ ‎position: sticky‎) و فیلدهایِ «نام/ایمیل» را
   بالایِ ۶۹۰px کنارِ هم می‌گذارد. آن چیدمان تا امروز هم بود، فقط داخلِ ۷۲۰px
   له می‌شد. پس این‌جا چیزی از نو تعریف نمی‌کنیم — با ‎#review_form‎ِ Blocksy
   (ویژگیِ شناسه‌ای) هم نمی‌شد برد. */
.nahal-product-reviews {
	max-width: none;
	margin: var(--wp--preset--spacing--90) 0;
	padding: 0 var(--wp--preset--spacing--70);
}

@media (max-width: 699px) {
	.nahal-product-reviews {
		padding: 0 var(--wp--preset--spacing--40);
	}
}

/* خبرم کن */
.nahal-notify-me {
	margin: var(--wp--preset--spacing--40) 0;
}

.nahal-notify-me p {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
}

.nahal-notify-me form {
	display: flex;
	gap: var(--wp--preset--spacing--20);
	max-width: 360px;
}

.nahal-notify-me input {
	flex: 1;
	min-width: 0;
	border: var(--nahal-hairline);
	border-radius: var(--wp--custom--radius--soft);
	padding: var(--wp--preset--spacing--30);
}

/* پاسخِ بعد از ثبت. حالتِ خطا فقط با رنگِ متن از حالتِ موفق جدا می‌شود — نه
   جعبهٔ قرمز، چون این‌جا خطایِ سیستمی نیست، فقط ورودیِ اشتباه است. */
.nahal-notify-me__message {
	color: var(--wp--preset--color--ink);
	font-weight: 500;
}

.nahal-notify-me__message.is-error {
	color: var(--wp--preset--color--terracotta);
}

@media (max-width: 799px) {
	.nahal-fabric-band {
		grid-template-columns: 1fr;
	}

	.nahal-fabric-band__media {
		min-height: 280px;
	}

	.nahal-why-piece p {
		font-size: var(--wp--preset--font-size--x-large);
	}
}

.nahal-badge,
ul.products li.product .onsale {
	position: absolute;
	inset-inline-start: 0;
	inset-block-start: var(--wp--preset--spacing--30);
	background-color: var(--wp--preset--color--terracotta);
	color: var(--wp--preset--color--white);
	font-size: var(--wp--preset--font-size--x-small);
	line-height: 1;
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--30);
	border-radius: var(--wp--custom--radius--pill);
	min-width: 0;
	min-height: 0;
	/* لبهٔ مقابل ‎auto‎ — منطقی، نه ‎right: auto; left: auto‎. آن دو بعد از ‎inset-inline-start‎
	   همان لبه را هم خنثی می‌کردند: در RTL برچسب به‌جایِ «فاصلهٔ ۱۶px» از لبه می‌چسبید به لبه
	   (جایِ ایستایش) — همان چیزی که امروز در صفحهٔ فارسی دیده می‌شود، پس ‎0‎ نوشته شد تا
	   فارسی پیکسل‌به‌پیکسل همان بماند — و در LTR برچسب جایش را می‌گرفت و بخشِ ‎/en/‎ باید
	   رویش یک قاعدهٔ فیزیکی می‌گذاشت (m38). */
	inset-inline-end: auto;
	margin: 0;
	z-index: 5;
}

/* قلبِ علاقه‌مندی رویِ کارت.

   گوشهٔ مقابلِ برچسبِ تخفیف می‌نشیند (برچسب ‎inset-inline-start‎ است، این
   ‎inset-inline-end‎) تا در محصولِ تخفیف‌دار رویِ هم نیفتند.

   شکلِ پایه از ‎.nahal-wishlist-btn‎ می‌آید؛ این‌جا فقط چیزی که مالِ ردیفِ صفحهٔ
   محصول بود خنثی می‌شود: ‎margin-inline-start‎ (آن‌جا کنارِ دکمهٔ «افزودن به
   سبد» است) و اندازهٔ ۴۸px که رویِ کارتِ باریک زیادی بزرگ است. ۴۰px هنوز
   بالایِ کفِ لمسیِ همان قاعدهٔ آیکون‌های هدر است.

   پس‌زمینهٔ نیمه‌مات لازم است چون قلب رویِ عکس می‌نشیند و عکسِ روشن یا شلوغ
   خطِ دورِ مویی را می‌خورد. */
ul.products li.product .nahal-card-media .nahal-wishlist-btn {
	position: absolute;
	inset-inline-end: var(--wp--preset--spacing--30);
	inset-block-start: var(--wp--preset--spacing--30);
	z-index: 5;
	width: 40px;
	height: 40px;
	margin-inline-start: 0;
	background-color: rgb(255 255 255 / 0.9);
	border-color: transparent;
	color: var(--wp--preset--color--ink);
}

ul.products li.product .nahal-card-media .nahal-wishlist-btn__icon {
	width: 20px;
	height: 20px;
}

/* دکمهٔ «مشاهده» — پیش‌تر لینکِ متنیِ زیرخط‌دارِ گوشهٔ کارت بود؛ کارفرما آن را
   به دکمهٔ مستقلِ ردیفِ آخر تبدیل کرد. کم‌رنگ (خطِ دور، نه پُر) می‌ماند تا با
   دکمهٔ «فیلتر» و «افزودن به سبد» اشتباه نشود. */
ul.products li.product .ct-woo-card-actions {
	display: block;
}

ul.products li.product .button {
	display: block;
	width: 100%;
	box-sizing: border-box;
	background-color: transparent;
	border: var(--nahal-hairline);
	border-radius: var(--wp--custom--radius--pill);
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--vazirmatn);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	text-align: center;
	text-decoration: none;
	padding: 13px var(--wp--preset--spacing--40);
	white-space: normal;
	overflow-wrap: break-word;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease;
}

/* والدِ کارت از شروعِ خط چین است (در فارسی راست) تا متنِ نام/قیمت/دسته سمتِ
   راست بنشیند. ‎right‎ِ فیزیکی در /en/ هم راست‌چین می‌ماند. */
ul.products li.product {
	text-align: start;
}

ul.products li.product .button:hover {
	background-color: var(--wp--preset--color--ink);
	border-color: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--white);
}

/* --------------------------------------------------------------------------
   ۱۱) صفحاتِ تحریری — درباره + کالکشن/دراپ («داستان قبل از گرید»)
   -------------------------------------------------------------------------- */

.nahal-editorial-hero {
	position: relative;
	min-height: 480px;
	background-color: var(--wp--preset--color--espresso);
	overflow: hidden;
}

.nahal-editorial-hero img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* جایِ عکسِ نبوده. تا امروز پس‌زمینه نداشت، یعنی یک جعبهٔ نامرئی بود: در فهرستِ
   کالکشن‌ها سه کارت از چهار کارت بی‌عکس‌اند و ستونِ تصویرشان خالی درمی‌آمد،
   طوری که انگار متن در هوا شناور است. حالا یک قابِ عمدی است، نه یک حفره. */
.nahal-editorial-hero__placeholder {
	width: 100%;
	height: 480px;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: var(--wp--preset--color--hairline);
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: var(--wp--custom--tracking--label);
}

.nahal-editorial-body {
	max-width: 640px;
	margin-inline: auto;
	padding: var(--wp--preset--spacing--80) var(--wp--preset--spacing--50);
	text-align: center;
}

.nahal-editorial-body .nahal-eyebrow {
	display: block;
	margin-bottom: var(--wp--preset--spacing--40);
}

.nahal-editorial-body p {
	margin-bottom: var(--wp--preset--spacing--50);
}

/* کالکشن/دراپ — روایت، لوک‌بوک، بعد گرید. */
.nahal-collection-intro {
	max-width: 640px;
	margin-inline: auto;
	padding: var(--wp--preset--spacing--80) var(--wp--preset--spacing--50);
	text-align: center;
}

.nahal-collection-intro .nahal-eyebrow {
	display: block;
	margin-bottom: var(--wp--preset--spacing--40);
}

/* عکسِ لوک‌بوکِ بزرگ — کامپ: padding 0 72px 24px، ارتفاعِ ۶۴۰px. */
.nahal-collection-lookbook {
	width: 100%;
	height: 640px;
	overflow: hidden;
	padding-inline: var(--wp--preset--spacing--80);
	box-sizing: border-box;
}

.nahal-collection-lookbook img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* زیرنویسِ لوک — کامپ: padding 20px 72px 80px، ۱۴px، muted-soft، وسط‌چین. */
.nahal-collection-lookbook__caption {
	text-align: center;
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--80) var(--wp--preset--spacing--90);
	margin: 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted-mid);
}

/* گریدِ دوتایی — کامپ: 1fr 1fr، gap 24px، padding 0 72px 80px، ارتفاع ۵۶۰px.
   با یک عکس هم درست می‌ماند: قابِ تکی تمام‌عرضِ همان ستون می‌شود. */
.nahal-collection-twoup {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--wp--preset--spacing--50);
	padding: 0 var(--wp--preset--spacing--80) var(--wp--preset--spacing--90);
}

.nahal-collection-twoup:has(> :only-child) {
	grid-template-columns: 1fr;
}

.nahal-collection-twoup__item {
	margin: 0;
	height: 560px;
	overflow: hidden;
	background-color: var(--wp--preset--color--hairline);
}

.nahal-collection-twoup__item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* نقلِ‌قولِ اسپرسو — کامپ: تمام‌عرض، padding 100px 200px، ۳۶px Estedad. */
.nahal-collection-quote {
	background-color: var(--wp--preset--color--espresso);
	color: var(--wp--preset--color--white);
	text-align: center;
	padding: var(--wp--preset--spacing--100) var(--wp--preset--spacing--90);
	margin: 0;
	border: 0;
}

/* جملهٔ کالکشن حرفِ اصلیِ صفحه است، نه زیرنویس — پس بزرگ‌ترین پلهٔ مقیاس را
   می‌گیرد (display)، هم‌اندازهٔ تیترِ هیرو. با ۶۴px قابِ ۸۲۰ پیکسلی تنگ می‌شد و
   جمله بی‌دلیل می‌شکست، برایِ همین تا ۱۰۰۰ باز شد. ارتفاعِ خط هم از ۱٫۶ به
   ۱٫۴ آمد؛ در اندازهٔ درشت، فاصلهٔ خطِ زیاد جمله را از هم می‌پاشد. */
.nahal-collection-quote p {
	font-family: var(--wp--preset--font-family--estedad);
	font-weight: 700;
	font-size: var(--wp--preset--font-size--display);
	line-height: 1.4;
	margin: 0;
	max-width: 1000px;
	margin-inline: auto;
}

.nahal-collection-grid-heading {
	text-align: center;
	max-width: 1200px;
	margin: var(--wp--preset--spacing--80) auto var(--wp--preset--spacing--60);
}

/* گریدِ محصولاتِ کالکشن — کامپ: سه‌ستونه، gap 32px/28px، padding 90px 40px.
   عمداً nahal-roll__scroller نیست: آن گرامرِ «برشی از یک فهرستِ بلند» است،
   این‌جا کلِ کالکشن باید یک‌جا دیده شود. */
.nahal-collection-products {
	max-width: 1200px;
	margin-inline: auto;
	padding: 0 var(--wp--preset--spacing--60) var(--wp--preset--spacing--90);
}

.nahal-collection-products ul.products {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--wp--preset--spacing--60) var(--wp--preset--spacing--50);
	margin: 0;
	padding: 0;
	list-style: none;
}

.nahal-collection-products ul.products li.product {
	width: auto;
	margin: 0;
	float: none;
}

@media (max-width: 899px) {
	.nahal-collection-lookbook {
		height: 420px;
	}

	.nahal-collection-twoup {
		grid-template-columns: 1fr;
	}

	.nahal-collection-twoup__item {
		height: 380px;
	}

	.nahal-collection-products ul.products {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 599px) {
	.nahal-collection-lookbook,
	.nahal-collection-twoup {
		padding-inline: var(--wp--preset--spacing--40);
	}

	.nahal-collection-quote {
		padding: var(--wp--preset--spacing--80) var(--wp--preset--spacing--50);
	}

	.nahal-collection-products ul.products {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 699px) {
	.nahal-editorial-hero,
	.nahal-editorial-hero__placeholder {
		min-height: 320px;
		height: 320px;
	}

	.nahal-editorial-body,
	.nahal-collection-intro {
		padding-inline: var(--wp--preset--spacing--40);
	}
}

/* فهرستِ کالکشن‌ها — ‎/collections/‎
   ─────────────────────────────────
   دقت: مفرد و جمع دو چیزِ متفاوت‌اند و فقط یک حرف فرق دارند —
   ‎.nahal-collection-*‎  (مفرد) استایلِ خودِ یک کالکشن است، بالاتر در همین بخش.
   ‎.nahal-collections-*‎ (جمع)  استایلِ فهرستِ همهٔ کالکشن‌هاست، همین پایین.
   عمداً همان اندازه‌ها و ریتمِ فهرستِ مجله را دارد (بخشِ ۱۲)، چون کارشان یکی
   است: گریدی از ورودی‌هایِ تصویرمحور. */

.nahal-collections-intro {
	max-width: 780px;
	margin-inline: auto;
	padding: var(--wp--preset--spacing--80) var(--wp--preset--spacing--50) var(--wp--preset--spacing--60);
	text-align: center;
	border-bottom: var(--nahal-hairline);
}

.nahal-collections-intro h1 {
	font-size: clamp(30px, 4.2vw, 52px);
	letter-spacing: -0.02em;
	margin: var(--wp--preset--spacing--40) 0 var(--wp--preset--spacing--30);
}

.nahal-collections-intro p {
	font-size: var(--wp--preset--font-size--medium);
	color: var(--wp--preset--color--muted);
	margin: 0;
}

.nahal-collections-grid {
	max-width: 1200px;
	margin: 0 auto;
	padding: var(--wp--preset--spacing--80) var(--wp--preset--spacing--70);
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--wp--preset--spacing--70);
}

.nahal-collections-card__media {
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	margin-bottom: var(--wp--preset--spacing--40);
}

.nahal-collections-card__media img,
.nahal-collections-card__media .nahal-editorial-hero__placeholder {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.nahal-collections-card h2 {
	font-size: var(--wp--preset--font-size--large);
	margin: var(--wp--preset--spacing--20) 0 0;
}

.nahal-collections-card__count {
	color: var(--wp--preset--color--muted-mid);
	font-size: var(--wp--preset--font-size--x-small);
	margin: var(--wp--preset--spacing--20) 0 0;
}

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

@media (max-width: 599px) {
	.nahal-collections-grid {
		grid-template-columns: 1fr;
	}
}

/* --------------------------------------------------------------------------
   ۱۲) مجله — فهرست و تک‌پست
   -------------------------------------------------------------------------- */

.nahal-magazine-intro {
	max-width: 780px;
	margin-inline: auto;
	padding: var(--wp--preset--spacing--80) var(--wp--preset--spacing--50) var(--wp--preset--spacing--60);
	text-align: center;
	border-bottom: var(--nahal-hairline);
}

/* مجلهٔ «به‌زودی» (inc/magazine-soon.php) — همان ریتمِ سربرگِ مجله، بی خطِ زیر. */
.nahal-magazine-soon {
	max-width: 640px;
	margin-inline: auto;
	padding: var(--wp--preset--spacing--90) var(--wp--preset--spacing--50);
	text-align: center;
}

.nahal-magazine-soon h1 {
	font-size: clamp(34px, 5vw, 56px);
	letter-spacing: -0.02em;
	margin: var(--wp--preset--spacing--40) 0 var(--wp--preset--spacing--40);
}

.nahal-magazine-soon p {
	font-size: var(--wp--preset--font-size--medium);
	color: var(--wp--preset--color--muted);
	line-height: 2;
	margin: 0 0 var(--wp--preset--spacing--20);
}

.nahal-magazine-soon__button {
	display: inline-block;
	margin-block-start: var(--wp--preset--spacing--50);
	padding: 12px 28px;
	border-radius: var(--wp--custom--radius--pill);
	background-color: var(--wp--preset--color--terracotta);
	color: var(--wp--preset--color--white);
	text-decoration: none;
}

.nahal-magazine-soon__button:hover,
.nahal-magazine-soon__button:focus-visible {
	background-color: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--white);
}

/* فهرستِ مجله — کامپ ۵۲px. */
.nahal-magazine-intro h1 {
	font-size: clamp(30px, 4.2vw, 52px);
	letter-spacing: -0.02em;
	margin: var(--wp--preset--spacing--40) 0 var(--wp--preset--spacing--30);
}

.nahal-magazine-intro p {
	font-size: var(--wp--preset--font-size--medium);
	color: var(--wp--preset--color--muted);
	margin: 0;
}

.nahal-magazine-meta {
	color: var(--wp--preset--color--muted-mid);
	font-size: var(--wp--preset--font-size--x-small);
	margin: var(--wp--preset--spacing--20) 0 0;
}

/* پستِ ویژه — عکسِ تمام‌عرض بالا، محتوا زیرش (طبقِ دیزاینِ مرجع؛ قبلاً
   دوستونه بود، عکس کنارِ متن). */
.nahal-magazine-featured {
	max-width: 1200px;
	margin: 0 auto var(--wp--preset--spacing--80);
	padding-inline: var(--wp--preset--spacing--70);
}

.nahal-magazine-featured__media {
	display: block;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	margin-bottom: var(--wp--preset--spacing--50);
}

/* ⚠️ ‎.nahal-editorial-hero__placeholder‎ این‌جا حتماً باید مقیّد به ظرفِ خودش
   بماند. قبلاً بدونِ قید در همین گروه بود و چون هم‌اختصاصی (۰،۱،۰) و دیرتر از
   تعریفِ اصلی‌اش می‌آمد، ‎height: 100%‎ رویِ ‎height: 480px‎ می‌نشست — و ۱۰۰٪ِ
   یک والدِ ‎height:auto‎ یعنی صفر. پس قابِ جانشین هرجا که مستقل بود (هدرِ تکِ
   کالکشن و تکِ مجله) کاملاً جمع می‌شد. داخلِ کارت‌ها ‎aspect-ratio‎ِ ظرف
   نجاتش می‌داد، برایِ همین فقط در آن دو صفحه دیده نمی‌شد. */
.nahal-magazine-featured__media img,
.nahal-magazine-featured__media .nahal-editorial-hero__placeholder {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.nahal-magazine-featured__content h2 {
	margin: var(--wp--preset--spacing--30) 0 var(--wp--preset--spacing--30);
}

.nahal-magazine-grid {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 var(--wp--preset--spacing--70) var(--wp--preset--spacing--80);
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--wp--preset--spacing--70);
}

.nahal-magazine-card__media {
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	margin-bottom: var(--wp--preset--spacing--40);
}

.nahal-magazine-card__media img,
.nahal-magazine-card__media .nahal-editorial-hero__placeholder {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.nahal-magazine-card h3 {
	font-size: var(--wp--preset--font-size--large);
	margin: var(--wp--preset--spacing--20) 0 0;
}

/* تک‌پست — عکسِ شاخص محصور است، full-bleed نیست (خواندنی‌تر). */
/* سربرگِ مقاله — کامپ: padding 80px 200px 48px و تیترِ ۴۸px.
   عرضِ قبلی ۶۴۰px بود و تیتر را بی‌دلیل می‌شکست؛ در کامپ ستونِ تیتر پهن‌تر از
   ستونِ خواندن است. */
.nahal-magazine-single__head {
	max-width: 820px;
	margin: 0 auto;
	padding: var(--wp--preset--spacing--90) var(--wp--preset--spacing--50) var(--wp--preset--spacing--70);
	text-align: center;
}

/* تیترِ صفحه — clamp تا در موبایل نشکند. توکنِ ۴۸px در مقیاسِ theme.json
   نیست؛ مثلِ تیترِ صفحهٔ درباره این‌جا هم clamp با مقدارِ کامپ گذاشته شد. */
.nahal-magazine-single__head h1 {
	font-size: clamp(28px, 4vw, 48px);
	line-height: 1.2;
	letter-spacing: -0.02em;
	margin-block: 0 var(--wp--preset--spacing--50);
}

.nahal-magazine-single__media {
	max-width: 900px;
	margin: 0 auto var(--wp--preset--spacing--70);
	padding-inline: var(--wp--preset--spacing--50);
}

/* هیرویِ تمام‌عرض طبقِ کامپ: ارتفاعِ ۶۰۰px با حاشیهٔ ۷۲px از دو طرف.
   حذفِ همین یک کلاس، عکس را به حالتِ محصورِ قبلی برمی‌گرداند. */
.nahal-magazine-single__media--bleed {
	max-width: none;
	height: 600px;
	padding-inline: 0;
	margin-inline: var(--wp--preset--spacing--80);
	overflow: hidden;
}

.nahal-magazine-single__media img {
	width: 100%;
	height: auto;
	display: block;
}

.nahal-magazine-single__media--bleed img {
	height: 100%;
	object-fit: cover;
}

/* ستونِ خواندن — کامپ ۶۸۰px برایِ متن.
   خودِ ظرف پهن‌تر است و فقط عناصرِ متنی به ۶۸۰px محدود می‌شوند؛ این‌طوری عکسِ
   داخلِ مقاله می‌تواند مثلِ کامپ از ستونِ متن پهن‌تر باشد، بدونِ ترفندِ
   حاشیهٔ منفی یا transform که در RTL دردسر می‌سازد. */
.nahal-magazine-single__content {
	max-width: 1100px;
	margin: 0 auto;
	padding: var(--wp--preset--spacing--80) var(--wp--preset--spacing--80);
}

.nahal-magazine-single__content > :not(figure) {
	max-width: 680px;
	margin-inline: auto;
}

/* عکسِ داخلِ مقاله — پهن‌تر از ستونِ متن، با فاصلهٔ نفس‌گیر بالا و پایین. */
.nahal-magazine-single__content figure {
	margin-block: var(--wp--preset--spacing--80);
	margin-inline: 0;
}

.nahal-magazine-single__content figure img {
	width: 100%;
	height: auto;
	display: block;
}

.nahal-magazine-single__content p {
	margin-bottom: var(--wp--preset--spacing--50);
}

.nahal-magazine-related {
	border-top: var(--nahal-hairline);
	padding-top: var(--wp--preset--spacing--70);
}

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

@media (max-width: 599px) {
	.nahal-magazine-grid {
		grid-template-columns: 1fr;
	}
}

/* --------------------------------------------------------------------------
   ۱۱) سبد، تسویه‌حساب، حساب کاربری
   -------------------------------------------------------------------------- */

/* هدرِ ساده‌شدهٔ تسویه‌حساب: نوارِ اعلان/منو/مگامنو پنهان، فقط لوگو + نشانِ امن. */
.nahal-checkout-header .nahal-announcement-bar,
.nahal-checkout-header .header-menu-1,
.nahal-checkout-header .nahal-mega-menus {
	display: none;
}

/* ردیفِ «کشور» — چون فقط به ایران می‌فروشیم، ووکامرس خودش آن را به یک inputِ
   مخفی + نامِ کشور تبدیل می‌کند. خودِ فیلد باید بماند (JSِ آدرسِ ووکامرس برایِ
   بازسازیِ منویِ شهر به آن نیاز دارد — توضیح در inc/checkout.php)، ولی ردیفش
   برایِ مشتری حرفی برایِ گفتن ندارد.
   ‎.woocommerce-edit-address‎ بعداً اضافه شد: دفترچهٔ نشانیِ حساب کاربری همان
   فرم را نشان می‌دهد ولی این ردیف آن‌جا دیده می‌شد، پس دو صفحه دو شکل داشتند. */
.woocommerce-checkout #billing_country_field,
.woocommerce-checkout #shipping_country_field,
.woocommerce-edit-address #billing_country_field,
.woocommerce-edit-address #shipping_country_field {
	/* important لازم است: جاوااسکریپتِ آدرسِ ووکامرس رویِ همین ردیف
	   style="display: block" ی درون‌خطی می‌گذارد و بدونِ آن، قاعده می‌بازد. */
	display: none !important;
}

.nahal-secure-badge {
	background-color: var(--wp--preset--color--shell);
	color: var(--wp--preset--color--white);
	text-align: center;
	padding: var(--wp--preset--spacing--20);
	font-size: var(--wp--preset--font-size--x-small);
	letter-spacing: var(--wp--custom--tracking--label);
}

/* سبد و تسویه‌حساب — جدول/کارتِ سفارش. */
.woocommerce-cart table.cart img,
.woocommerce-checkout table.cart img {
	border-radius: var(--wp--custom--radius--soft);
}

.woocommerce-checkout-review-order-table,
.cart_totals table,
.shop_table {
	border-collapse: collapse;
}

.shop_table th,
.shop_table td {
	border-bottom: var(--nahal-hairline);
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--20);
}

.order-total .amount,
.cart-subtotal .amount {
	font-weight: 600;
}

/* روشِ ارسال به‌شکلِ کارت‌هایِ قابلِ‌انتخاب، طبقِ کانواس. */
ul.woocommerce-shipping-methods {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--30);
}

ul.woocommerce-shipping-methods li {
	border: var(--nahal-hairline);
	border-radius: var(--wp--custom--radius--soft);
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
}

ul.woocommerce-shipping-methods li:has(input:checked) {
	border-color: var(--wp--preset--color--terracotta);
}

/* اطمینان از استانِ فارسی؛ فیلدهایِ فرم عمومی. */
.woocommerce-checkout .form-row label {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
}

.woocommerce-checkout #place_order {
	width: 100%;
}

/* تشکر (thank-you) — سبک‌تر از بقیهٔ صفحات. */
.woocommerce-order-received .woocommerce-thankyou-order-received {
	font-family: var(--wp--preset--font-family--estedad);
	font-size: var(--wp--preset--font-size--x-large);
	color: var(--wp--preset--color--terracotta);
	text-align: center;
	display: block;
	margin: var(--wp--preset--spacing--70) 0;
}

/* ‎/en/‎: ‎Estedad‎ حرفِ لاتین ندارد و جملهٔ «Thank you! …» با قلمِ جایگزینِ مرورگر (Tahoma/Arial)
   درمی‌آمد، جدا از بقیهٔ صفحه (m77). همان قلمِ بدنه؛ فارسی همان می‌ماند. */
html[dir="ltr"] .woocommerce-order-received .woocommerce-thankyou-order-received {
	font-family: inherit;
	font-weight: 600;
}

/* سفارشِ پرداخت‌نشده: جملهٔ هشدار به اندازهٔ متن، نه تیترِ تشکر، و دکمه در
   خطِ خودش (J1-35). */
.woocommerce-order-received .woocommerce-thankyou-order-received:has(.nahal-thankyou-unpaid) {
	font-family: var(--wp--preset--font-family--vazirmatn);
	font-size: var(--wp--preset--font-size--medium);
	color: var(--wp--preset--color--ink);
	line-height: 2;
}

.woocommerce-thankyou-order-received .nahal-thankyou-unpaid + .button {
	display: table;
	margin: var(--wp--preset--spacing--40) auto 0;
}

/* جعبهٔ تیترِ صفحه (‎hero-section‎ نوعِ ۱) از بلاکسی هیچ پدینگِ بالایی ندارد —
   فقط ‎text-align‎ و ‎margin-bottom‎. پس ‎h1‎ دقیقاً به لبهٔ پایینِ هدر می‌چسبد،
   و «چسبیدن» این‌جا واقعاً یعنی همپوشانی:

   اندازه‌گیریِ ‎/contact/‎ — لبهٔ پایینِ هدر ۱۷۸٫۷۵، بالایِ جعبهٔ ‎h1‎ ۱۷۸٫۸ (صفر
   فاصله)، ولی مرکّبِ خودِ حروف از ۱۷۰٫۸ شروع می‌شود. یعنی ‎h1‎ با ۴۴px و
   ‎line-height: 1.25‎ جعبه‌ای ۵۵px دارد در حالی که استعدادِ اکسترابولدِ فارسی
   ۷۰px جا می‌خواهد؛ ۸px از بالا بیرونِ جعبه می‌زند. ردیفِ پایینِ هدر پس‌زمینهٔ
   سفیدِ مات و ‎z-index: 1‎ دارد، پس همان ۸px را می‌پوشاند — سرِ «آ» و «ک» بریده
   دیده می‌شود. ‎elementFromPoint‎ رویِ آن نوار ‎UL.menu‎ برمی‌گرداند، نه ‎H1‎.

   ⚠️ پیش‌تر همین را برایِ ‎.woocommerce-account‎ جداگانه وصله کرده بودیم و در
   توضیحش نوشته بودیم «هدر چسبان است» — که درست نبود؛ هدر ‎position: relative‎
   است، فقط بلند. یک قاعده برایِ همهٔ صفحه‌هایِ این نوع، به‌جایِ وصلهٔ صفحه‌به‌صفحه.
   ۴۸px خیلی بیشتر از ۸px لازم است و همان ریتمی است که صفحهٔ محصول دارد. */
.hero-section[data-type="type-1"] {
	padding-block-start: var(--wp--preset--spacing--70);
}

/* تیترِ صفحه‌هایِ ساده وسط‌چین می‌شود (D25).

   بازبینی: «در سبد، تسویه‌حساب، حساب و تماس تیتر با اندازهٔ درشت به لبهٔ راست
   چسبیده، در حالی که محتوایِ زیرش وسط‌چین است — مجله و درباره و کالکشن‌ها
   برچسب+تیتر+شعارِ وسط‌چین دارند و به‌مراتب بهتر می‌نشینند.» همان الگو این‌جا
   هم اعمال شد.

   ⚠️ ‎:not(:has(.ct-breadcrumbs))‎ حیاتی است، نه محافظه‌کاری. صفحهٔ **محصول**
   هم هیرویِ ‎type-1‎ دارد ولی محتوایش فرق می‌کند: بردکرامب دارد، و بردکرامبِ
   وسط‌چین هم بی‌معنا است هم مسیرِ خواندنِ RTL را می‌شکند. یک قاعدهٔ سراسریِ
   ‎type-1‎ آن صفحه را هم می‌گرفت — همان تلهٔ گامِ ۳۵ که پدینگِ صفحهٔ محصول را
   دوبرابر کرد. پس شرط رویِ **محتوایِ** هیرو نوشته شده، نه رویِ نامِ صفحه:
   «هیرویی که فقط یک تیتر دارد».

   امروز این سه صفحه را می‌گیرد: تسویه‌حساب، حساب کاربری، تماس. سبد دیگر
   هیرویِ بلاکسی ندارد (در گامِ ۳۸/B6 خاموش شد و سربرگِ خودش را دارد).

   ℹ️ «برچسب + شعار»ِ آن الگویِ دیگر این‌جا ساخته **نشد** — متنش باید نوشته
   شود و نوشتنِ متن کارِ صاحبِ سایت است، نه قالب. */
.hero-section[data-type="type-1"]:not(:has(.ct-breadcrumbs)) {
	text-align: center;
}

.hero-section[data-type="type-1"]:not(:has(.ct-breadcrumbs)) .page-title {
	max-width: 20ch;
	margin-inline: auto;
}

/* ---- تب‌هایِ «ورود» / «ساختنِ حساب» ----
   قالب هر دو فرم را باز می‌فرستد و اسکریپت آن‌ها را به تب تبدیل می‌کند (دلیلش
   در woocommerce/myaccount/form-login.php). پس همهٔ قاعده‌هایِ زیر که چیدمان را
   تک‌ستونه می‌کنند به ‎[role="tablist"]‎ مقیّد شده‌اند — آن ویژگی را فقط
   جاوااسکریپت می‌گذارد. بدونِ اسکریپت، صفحه همان دوستونهٔ قبلی می‌ماند و هیچ
   فرمی پنهان نمی‌شود. */
.nahal-login-tabs {
	display: flex;
	max-width: 420px;
	margin: 0 auto var(--wp--preset--spacing--60);
	border-block-end: var(--nahal-hairline);
}

.nahal-login-tabs__tab {
	flex: 1;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	font-family: var(--wp--preset--font-family--estedad);
	font-weight: 600;
	text-align: center;
	color: var(--wp--preset--color--muted);
	border-block-end: 2px solid transparent;

	/* یک پیکسل پایین‌تر می‌نشیند تا خطِ تبِ فعال روی خطِ زیرِ نوار بیفتد و
	   به‌جایِ دو خطِ موازی، یک خط دیده شود. */
	margin-block-end: -1px;
	cursor: pointer;
	transition: color var(--nahal-transition), border-color var(--nahal-transition);
}

.nahal-login-tabs__tab.is-active {
	color: var(--wp--preset--color--terracotta);
	border-block-end-color: var(--wp--preset--color--terracotta);
}

/* رویِ هاور، تب هم خطِ تراکوتایِ حالتِ فعال را داشت و هم خط‌زیرِ متن — دو
   نشانهٔ موازی برایِ یک وضعیت، که تب را شبیهِ لینکِ متنی می‌کرد.

   ریشه Blocksy نیست، خودِ theme.json است: از ‎styles.elements.link[":hover"]‎
   این استایلِ سراسری در ‎<head>‎ چاپ می‌شود —
   ‎:root :where(a:where(:not(.wp-element-button)):hover) { text-decoration: underline }‎.
   ‎:where()‎ صفر وزن دارد، پس وزنِ کلِ آن قاعده ‎(0,1,0)‎ است؛ ولی
   ‎a { text-decoration: none }‎ی ما ‎(0,0,1)‎ است و می‌بازد، و
   ‎a:hover‎ی ما ‎(0,1,1)‎ فقط ‎color‎ را عوض می‌کند و ‎text-decoration‎ ندارد.

   پس با ‎(0,2,0)‎ جوابش را می‌دهیم، نه با ‎!important‎. خودِ کلاسِ تنها ‎(0,1,0)‎
   بود و با آن قاعده مساوی می‌شد — یعنی برنده به ترتیبِ بارگذاری بستگی داشت.
   برایِ متنِ عادیِ سایت آن خط‌زیر درست است و دست‌نخورده می‌ماند. */
.nahal-login-tabs__tab:hover,
.nahal-login-tabs__tab:focus-visible {
	text-decoration: none;
}

.nahal-login-tabs[role="tablist"] ~ #customer_login {
	display: block;
	max-width: 420px;
	margin-inline: auto;
}

/* Blocksy دو ستونِ این جعبه را با یک خطِ نقطه‌چین و ۴۰px پدینگ از هم جدا می‌کند
   (‎.ct-woo-unauthorized .col2-set > *:first-child‎ و ‎:last-child‎). آن سلکتورها
   به جایگاهِ عنصر در DOM نگاه می‌کنند نه به دیده‌شدنش، و پنلِ غیرفعال فقط hidden
   می‌شود و از DOM بیرون نمی‌رود. یعنی بدونِ این قاعده، پنلِ تنها هم پدینگِ
   نامتقارن می‌گرفت هم یک خطِ نقطه‌چینِ جداکننده در کناری که دیگر چیزی آن‌طرفش
   نیست. */
.nahal-login-tabs[role="tablist"] ~ #customer_login > * {
	padding: 0;
	border: 0;
}

/* تیترِ داخلِ پنل با برچسبِ تبِ بالایش یکی است؛ وقتی تب‌ها ساخته شدند، نگه‌داشتنش
   یعنی همان کلمه دو بار پشتِ سرِ هم. نامِ دسترس‌پذیرِ پنل از aria-labelledby به
   خودِ تب وصل است، پس چیزی از دست نمی‌رود. */
.nahal-login-tabs[role="tablist"] ~ #customer_login h2 {
	display: none;
}

/* ورود با موبایل (OTP) */
/* تسویه‌حسابِ مهمان: همان فرمِ ورود، با یک خطِ توضیح بالایش
   (‎inc/checkout.php‎). هم‌عرض و هم‌محورِ خودِ فرم، تا خط و فرم یک ستون باشند. */
.nahal-checkout-sign-in__lead {
	max-width: 420px;
	margin: 0 auto var(--wp--preset--spacing--50);
	text-align: center;
	color: var(--wp--preset--color--muted);
}

.nahal-otp-login {
	max-width: 380px;
	margin-inline: auto;
	text-align: center;
}

.nahal-otp-login__hint {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
	margin-bottom: var(--wp--preset--spacing--40);
}

.nahal-otp-login__step input[type="tel"] {
	width: 100%;
	text-align: center;
	font-size: var(--wp--preset--font-size--large);
	padding: var(--wp--preset--spacing--30);
	margin-bottom: var(--wp--preset--spacing--40);
}

.nahal-otp-login__step .button {
	width: 100%;
}

.nahal-otp-login__digits {
	display: flex;
	justify-content: center;
	gap: var(--wp--preset--spacing--30);
	margin-bottom: var(--wp--preset--spacing--40);
}

.nahal-otp-login__digit {
	width: 48px;
	height: 56px;
	text-align: center;
	font-size: var(--wp--preset--font-size--x-large);
	border: var(--nahal-hairline);
	border-radius: var(--wp--custom--radius--soft);
}

.nahal-otp-login__note {
	color: var(--wp--preset--color--muted-mid);
	font-size: var(--wp--preset--font-size--x-small);
	margin-top: var(--wp--preset--spacing--40);
}

/* پیامِ وضعیت — هم موفق و هم خطا از همین یک جا می‌آید، چون aria-live یکی است
   و دو ناحیهٔ زنده یعنی صفحه‌خوان گاهی هر دو را می‌خواند. */
.nahal-otp-login__message {
	text-align: center;
	font-size: var(--wp--preset--font-size--small);
	margin-block-start: var(--wp--preset--spacing--40);
	color: var(--wp--preset--color--muted);
}

.nahal-otp-login__message.is-error {
	color: var(--wp--preset--color--danger, #b3261e);
}

.nahal-otp-login__resend {
	text-align: center;
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--muted-mid);
	margin-block-start: var(--wp--preset--spacing--40);
}

/* شمارهٔ کاربر داخلِ جملهٔ فارسی می‌نشیند ولی خودش لاتین/عددی است؛ بدونِ
   جداکردنِ جهت، پرانتز و فاصله‌ها جابه‌جا رندر می‌شوند. */
.nahal-otp-login [data-otp-number] {
	direction: ltr;
	unicode-bidi: isolate;
	font-variant-numeric: tabular-nums;
}

.nahal-link-button {
	background: none;
	border: none;
	color: var(--wp--preset--color--muted);
	text-decoration: underline;
	cursor: pointer;
	font-size: var(--wp--preset--font-size--x-small);
}

/* داشبوردِ حساب کاربری */
.nahal-account-stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--wp--preset--spacing--40);
	margin-bottom: var(--wp--preset--spacing--70);
}

@media (max-width: 599px) {
	.nahal-account-stats {
		grid-template-columns: 1fr;
	}
}

.nahal-account-stats__card {
	border: var(--nahal-hairline);
	border-radius: var(--wp--custom--radius--soft);
	padding: var(--wp--preset--spacing--40);
	min-width: 100px;
	text-align: center;
}

.nahal-account-stats__number {
	display: block;
	font-family: var(--wp--preset--font-family--estedad);
	font-size: var(--wp--preset--font-size--xx-large);
	font-weight: 800;
	color: var(--wp--preset--color--terracotta);
}

.nahal-account-stats__label {
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--muted);
}

.nahal-account-section-heading {
	font-size: var(--wp--preset--font-size--large);
	margin-bottom: var(--wp--preset--spacing--30);
}

.nahal-account-recent-orders {
	list-style: none;
	margin: 0 0 var(--wp--preset--spacing--60);
	padding: 0;
}

.nahal-account-recent-orders li {
	border-bottom: var(--nahal-hairline);
	padding: var(--wp--preset--spacing--30) 0;
}

/* چیدمانِ دوستونهٔ حساب کاربری — کامپ: 260px 1fr.
   ووکامرس خوش‌آمد و منو را کنارِ هم و به‌عنوانِ خواهرِ محتوا می‌گذارد (هوکِ
   woocommerce_before_account_navigation بیرونِ <nav> شلیک می‌شود)، پس جای هر
   سه با grid-row/grid-column صریح تعیین می‌شود تا خوش‌آمد و منو هر دو در
   ستونِ کناری بنشینند و محتوا هر دو ردیف را بگیرد.
   ‎:has()‎ لازم است تا این قاعده به صفحهٔ ورود (که منو ندارد) سرایت نکند. */
.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) {
	display: grid;
	grid-template-columns: 260px 1fr;
	grid-template-rows: auto 1fr;
	align-items: start;
}

.nahal-account-greeting {
	grid-column: 1;
	grid-row: 1;
	padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--50) 0;
}

.nahal-account-greeting__hello {
	display: block;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted-mid);
	margin-block-end: var(--wp--preset--spacing--20);
}

.nahal-account-greeting__name {
	font-family: var(--wp--preset--font-family--estedad);
	font-weight: 700;
	font-size: var(--wp--preset--font-size--large);
}

/* منویِ حساب کاربری (بومیِ ووکامرس) */
.woocommerce-account .woocommerce-MyAccount-navigation {
	grid-column: 1;
	grid-row: 2;
	border-inline-end: var(--nahal-hairline);
	padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--50) var(--wp--preset--spacing--70);
	min-height: 100%;
}

.woocommerce-account .woocommerce-MyAccount-content {
	grid-column: 2;
	grid-row: 1 / span 2;
	padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--70);
	min-width: 0;
}

.woocommerce-MyAccount-navigation ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--20);
}

.woocommerce-MyAccount-navigation-link a {
	display: block;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	color: var(--wp--preset--color--muted);
	border-radius: var(--wp--custom--radius--soft);
}

.woocommerce-MyAccount-navigation-link.is-active a {
	color: var(--wp--preset--color--terracotta);
	background-color: var(--wp--preset--color--ground);
	font-weight: 600;
}

/* «خروج» در کامپ ترّاکوتاست — یک کنشِ متفاوت، نه یک تبِ دیگر. */
.woocommerce-MyAccount-navigation-link--customer-logout a {
	color: var(--wp--preset--color--terracotta);
}

@media (max-width: 899px) {
	/* زیرِ این عرض سایدبار بالایِ محتوا می‌رود و منو افقی می‌شود. */
	.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) {
		grid-template-columns: 1fr;
		grid-template-rows: auto auto 1fr;
	}

	.nahal-account-greeting,
	.woocommerce-account .woocommerce-MyAccount-navigation,
	.woocommerce-account .woocommerce-MyAccount-content {
		grid-column: 1;
	}

	.nahal-account-greeting {
		grid-row: 1;
		padding-inline: var(--wp--preset--spacing--40);
	}

	.woocommerce-account .woocommerce-MyAccount-navigation {
		grid-row: 2;
		border-inline-end: 0;
		border-block-end: var(--nahal-hairline);
		padding: var(--wp--preset--spacing--40);
	}

	.woocommerce-account .woocommerce-MyAccount-content {
		grid-row: 3;
		padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
	}

	/* دو ستونِ هم‌عرض، نه قرص‌هایِ ناهم‌اندازه که ۲-۲-۱-۱-۱ می‌شکستند (J1-19). */
	.woocommerce-account .woocommerce-MyAccount-navigation ul {
		display: grid;
		grid-template-columns: 1fr 1fr;
	}

	/* «جزئیاتِ حساب» در خانهٔ ۱۵۰ پیکسلی دو خط می‌شد در حالی که جا داشت
	   (J1-30)؛ در گوشی‌هایِ باریک‌تر پدینگ کم می‌شود تا باز هم یک خط بماند. */
	.woocommerce-account .woocommerce-MyAccount-navigation ul a {
		white-space: nowrap;
		padding-inline: 12px;
	}
}

/* آیکونِ «علاقه‌مندی‌ها» — ووکامرس فقط برایِ تب‌هایِ خودش آیکون دارد و تبِ
   ناشناس سندِ پیش‌فرض می‌گرفت، همان آیکونِ «روش‌های پرداخت» (J2-16). همان قلبِ
   دکمه‌هایِ علاقه‌مندی، به‌شکلِ ماسک تا رنگِ متن را بگیرد. */
.woocommerce-MyAccount-navigation .woocommerce-MyAccount-navigation-link--wishlist a::before {
	content: "";
	display: inline-block;
	width: 18px;
	height: 18px;
	vertical-align: -3px;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round' d='M12 20.5s-7.5-4.6-7.5-10.1A4.4 4.4 0 0 1 12 7.6a4.4 4.4 0 0 1 7.5 2.8c0 5.5-7.5 10.1-7.5 10.1z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%23000' stroke-width='2' stroke-linejoin='round' d='M12 20.5s-7.5-4.6-7.5-10.1A4.4 4.4 0 0 1 12 7.6a4.4 4.4 0 0 1 7.5 2.8c0 5.5-7.5 10.1-7.5 10.1z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* فهرستِ سفارش‌ها در موبایل: هر سفارش یک کارت، با شماره‌اش (J1-10).
   جدولِ واکنش‌گرایِ ووکامرس زیرِ ۷۶۸px هر خانه را یک سطرِ «برچسب: مقدار» می‌کند
   و ستونِ شماره را پنهان؛ سفارش‌ها پشتِ‌سرِ هم می‌آمدند بی‌آن‌که معلوم باشد
   کدام کدام است، و برچسب به مقدار چسبیده بود. */
@media (max-width: 768px) {
	.woocommerce-orders-table tbody tr {
		display: block;
		border: var(--nahal-hairline);
		border-radius: var(--wp--custom--radius--soft);
		margin-block-end: var(--wp--preset--spacing--40);
		padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
		background: var(--wp--preset--color--white);
	}

	.woocommerce-orders-table tbody tr > * {
		border: 0;
		padding-block: var(--wp--preset--spacing--20);
	}

	.woocommerce-orders-table .woocommerce-orders-table__cell-order-number {
		display: block;
		font-weight: 700;
		text-align: start;
	}

	.woocommerce-orders-table tbody tr > *::before {
		margin-inline-end: 0.4em;
	}

	.woocommerce-orders-table .woocommerce-orders-table__cell-order-actions {
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		gap: var(--wp--preset--spacing--20);
	}

	/* برچسبِ «عملیات:» ردیفِ خودش را می‌گیرد تا سه دکمهٔ «مشاهده · پرداخت ·
	   لغو» با هم در یک ردیف بمانند؛ وگرنه «لغو» تنها به ردیفِ دوم می‌افتاد (J1-10). */
	.woocommerce-orders-table .woocommerce-orders-table__cell-order-actions::before {
		flex-basis: 100%;
	}
}

/* «مشاهدهٔ سفارش»: دکمه‌هایِ «پرداخت» و «لغو» چسبیده به هم بودند (J1-10). */
.order-actions-button + .order-actions-button {
	margin-inline-start: var(--wp--preset--spacing--20);
}

/* --------------------------------------------------------------------------
   ۱۲) فرمِ تماس، FAQ
   -------------------------------------------------------------------------- */

/* ظرف همان ستونی را می‌گیرد که پاراگراف‌هایِ بالایش دارند (چیدمانِ «محدود»ِ
   وردپرس، چون خودش ‎max-width‎ ندارد)، و خودِ فرم ۴۸۰px از شروعِ خط (راست در
   RTL). قبلاً ظرف ۴۸۰px و وسط‌چین بود: متن چسبیده به راست، فرم وسطِ صفحه (J2-18). */
.nahal-contact-form form,
.nahal-contact-form > p {
	max-width: 480px;
}

/* کلِ برگهٔ تماس یک ستونِ ۷۲۰ پیکسلیِ وسط‌چین زیرِ تیترِ وسط‌چین — هم‌پهنایِ
   ستونِ متنِ برگه‌هایِ راهنما. بی این، پاراگراف‌ها و فرم از لبهٔ راستِ ۱۴۴۰px
   شروع می‌شدند و نیمهٔ چپِ صفحه خالی می‌ماند (J2-18، دورِ دوم). */
.entry-content:has(> .nahal-contact-form) {
	max-width: 720px;
	margin-inline: auto;
}

.nahal-contact-form .form-row {
	margin-bottom: var(--wp--preset--spacing--40);
}

.nahal-contact-form label {
	display: block;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
	margin-bottom: var(--wp--preset--spacing--20);
}

.nahal-contact-form input,
.nahal-contact-form textarea {
	width: 100%;
}

/* دکمهٔ «ارسالِ پیام» پدینگِ دستیِ ‎29px 37px‎ داشت (D27). آن عدد از کامپ آمده
   بود، در زمانی که دکمه‌هایِ سایت هنوز پدینگِ سراسری نداشتند. بعد از این‌که
   پدینگِ دکمه در ‎theme.json‎ نشست، این وصله تنها دکمه‌ای را ساخت که از بقیه
   بزرگ‌تر است — یک بیضیِ ۲۹/۳۷ کنارِ دکمه‌هایِ ۲۴/۳۲. قاعده حذف شد تا همان
   پدینگِ سراسری برسد؛ چیزی جایگزینش نشد. */

.nahal-contact-form__success {
	color: var(--wp--preset--color--terracotta);
	font-weight: 600;
}

.nahal-contact-form__error {
	color: #a02020;
}

.nahal-faq .nahal-accordion__trigger {
	font-size: var(--wp--preset--font-size--medium);
}

/* --------------------------------------------------------------------------
   ۱۲) دربارهٔ نهال — پنج بخشِ کامپِ ۱a
   ساختار در الگویِ بلوکیِ nahal/about است، نه در قالب؛ این‌جا فقط ظاهرش.
   -------------------------------------------------------------------------- */

.nahal-about > * {
	margin-block: 0;
}

/* ۱) هیرویِ متنیِ وسط‌چین — کامپ: padding 96/200/72، تیتر ۵۶px. */
.nahal-about-hero {
	text-align: center;
	padding: var(--wp--preset--spacing--90) var(--wp--preset--spacing--70) var(--wp--preset--spacing--80);
	max-width: 1180px;
	margin-inline: auto;
}

.nahal-about-hero__heading {
	font-family: var(--wp--preset--font-family--estedad);
	font-weight: 800;
	font-size: clamp(32px, 4.4vw, 56px);
	letter-spacing: -0.02em;
	line-height: 1.15;
	margin-block: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
}

.nahal-about-hero__lead {
	font-size: var(--wp--preset--font-size--large);
	line-height: 2.1;
	color: var(--wp--preset--color--muted);
	max-width: 560px;
	margin-inline: auto;
}

/* ۲) عکسِ تمام‌عرض — کامپ: ۶۲۰px دسکتاپ، ۴۲۰px موبایل.
   وقتی مدیرِ محتوا هنوز عکسی نگذاشته، همان قابِ hairlineِ بقیهٔ سایت
   نشان داده می‌شود تا بخش «ناتمام» به‌نظر نرسد، نه یک نوارِ خالیِ سفید. */
.nahal-about-media {
	position: relative;
	height: 620px;
	overflow: hidden;
	background-color: var(--wp--preset--color--hairline);
}

.nahal-about-media figure {
	position: absolute;
	inset: 0;
	margin: 0;
}

.nahal-about-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* ۳) متنِ داستان — این‌جا متنِ واقعیِ کارفرماست. */
.nahal-about-story {
	padding: var(--wp--preset--spacing--90) var(--wp--preset--spacing--70);
	text-align: center;
	max-width: 1180px;
	margin-inline: auto;
}

.nahal-about-story p {
	font-size: var(--wp--preset--font-size--large);
	line-height: 2.3;
	color: var(--wp--preset--color--ink);
	max-width: 780px;
	margin-inline: auto;
}

.nahal-about-story p + p {
	margin-block-start: var(--wp--preset--spacing--50);
}

/* ۴) سه ارزش — گریدِ ۳تایی با خطِ مویی بینشان. خطِ جداکننده با
   border-inline-start گذاشته شده و نه left/right، تا در RTL هم درست بیفتد؛
   سلولِ اول خط ندارد (در RTL یعنی راست‌ترین). */
.nahal-about-values {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 0;
	border-block-start: var(--nahal-hairline);
}

.nahal-about-values__cell {
	padding: var(--wp--preset--spacing--80) var(--wp--preset--spacing--70);
	text-align: center;
	border-inline-start: var(--nahal-hairline);
}

.nahal-about-values__cell:first-child {
	border-inline-start: 0;
}

.nahal-about-values__title {
	font-family: var(--wp--preset--font-family--estedad);
	font-weight: 700;
	font-size: var(--wp--preset--font-size--x-large);
	margin-block: 0 var(--wp--preset--spacing--30);
}

.nahal-about-values__cell p {
	font-size: var(--wp--preset--font-size--medium);
	line-height: 2;
	color: var(--wp--preset--color--muted);
	margin: 0;
}

/* ۵) بندِ باور — عکس در یک ستون، پنلِ اسپرسو در ستونِ دیگر.
   همان گرامرِ nahal-home-fabric-band است، فقط با ترتیبِ کامپِ درباره. */
.nahal-about-belief {
	display: grid;
	grid-template-columns: 1fr 1fr;
	border-block-start: var(--nahal-hairline);
}

/* عکس با position:absolute قاب را پر می‌کند و نه با height:100%.
   دلیلش: بلوکِ عکسِ گوتنبرگ یک <figure> با استایلِ خودش است و
   height:auto‌ی هستهٔ وردپرس می‌تواند بر 100%ِ ما غلبه کند؛ آن‌وقت ارتفاعِ
   ستونِ عکس را نسبتِ ذاتیِ تصویر تعیین می‌کرد و دو ستون هم‌قد درنمی‌آمدند.
   با inset:0 ارتفاعِ ستون فقط از ردیفِ گرید می‌آید، پس عکس و پنلِ اسپرسو
   همیشه دقیقاً هم‌اندازه‌اند و پایینشان در یک راستاست. */
.nahal-about-belief__media {
	position: relative;
	min-height: 460px;
	overflow: hidden;
	background-color: var(--wp--preset--color--hairline);
}

.nahal-about-belief__media figure {
	position: absolute;
	inset: 0;
	margin: 0;
}

.nahal-about-belief__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.nahal-about-belief__panel {
	background-color: var(--wp--preset--color--espresso);
	color: var(--wp--preset--color--white);
	padding: var(--wp--preset--spacing--90) var(--wp--preset--spacing--80);
	display: flex;
	flex-direction: column;
	justify-content: center;
}

/* رنگ را صریح می‌دهیم، چون h1..h6 در همین فایل رنگِ ink دارند و رنگِ صریح
   از پنلِ تیره ارث نمی‌برد؛ بدونِ این خط، تیتر روی اسپرسو ۱٫۳:۱ می‌شد.
   همان کاری که .nahal-fabric-band__content h2 و .nahal-story h2 می‌کنند. */
.nahal-about-belief__heading {
	color: var(--wp--preset--color--white);
	font-family: var(--wp--preset--font-family--estedad);
	font-weight: 700;
	font-size: var(--wp--preset--font-size--xx-large);
	line-height: 1.35;
	margin-block: var(--wp--preset--spacing--40) var(--wp--preset--spacing--40);
}

.nahal-about-belief__panel p:last-child {
	font-size: var(--wp--preset--font-size--medium);
	line-height: 2.1;
	color: var(--wp--preset--color--muted-on-dark);
	margin: 0;
}

@media (max-width: 899px) {
	/* کامپِ موبایل گریدِ ارزش‌ها را ندارد. آن را «مخفی کن» نخواندیم — یک
	   اختصارِ ماکاپ است، نه دستور؛ پس ستونی می‌شود و سؤالش در
	   CHANGES_TO_REVIEW.md برایِ PM ثبت شده. */
	.nahal-about-values {
		grid-template-columns: 1fr;
	}

	.nahal-about-values__cell {
		border-inline-start: 0;
		border-block-start: var(--nahal-hairline);
	}

	.nahal-about-values__cell:first-child {
		border-block-start: 0;
	}

	.nahal-about-belief {
		grid-template-columns: 1fr;
	}

	.nahal-about-belief__media {
		min-height: 320px;
	}
}

@media (max-width: 699px) {
	.nahal-about-hero {
		padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--50) var(--wp--preset--spacing--60);
	}

	.nahal-about-media {
		height: 420px;
	}

	.nahal-about-story {
		padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--50);
	}

	.nahal-about-story p {
		font-size: var(--wp--preset--font-size--small);
		line-height: 2.1;
	}

	.nahal-about-values__cell,
	.nahal-about-belief__panel {
		padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--50);
	}
}

/* --------------------------------------------------------------------------
   ۱۳) صفحاتِ راهنما و حقوقی — سربرگ + سایدبارِ «در این بخش»
   -------------------------------------------------------------------------- */

/* سربرگ — کامپ: padding 72px 0 48px، وسط‌چین، خطِ مویی زیرش. */
.nahal-legal__masthead {
	text-align: center;
	padding: var(--wp--preset--spacing--80) var(--wp--preset--spacing--40) var(--wp--preset--spacing--70);
	border-block-end: var(--nahal-hairline);
}

.nahal-legal__title {
	font-family: var(--wp--preset--font-family--estedad);
	font-weight: 800;
	font-size: var(--wp--preset--font-size--huge);
	margin-block: var(--wp--preset--spacing--30) 0;
}

/* کامپ: 240px 1fr، خطِ مویی بینِ سایدبار و متن.

   سایدبار و متن یک بلوکِ وسط‌چینند. بی ‎max-width‎ چیدمان کلِ ۱۴۴۰px را
   می‌گرفت: سایدبار به لبهٔ راستِ پنجره می‌چسبید و ستونِ ۷۲۰ پیکسلیِ متن کنارش،
   و ۴۸۰px سمتِ چپ خالی می‌ماند (J2-18). */
.nahal-legal__layout {
	display: grid;
	grid-template-columns: 240px minmax(0, 1fr);
	align-items: start;
	max-width: 1040px;
	margin-inline: auto;
}

.nahal-legal__sidebar {
	border-inline-end: var(--nahal-hairline);
	padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--60);
	font-size: var(--wp--preset--font-size--small);
	position: sticky;
	inset-block-start: var(--wp--preset--spacing--50);
}

.nahal-legal__sidebar-title {
	display: block;
	color: var(--wp--preset--color--muted-mid);
	margin-block-end: var(--wp--preset--spacing--40);
}

.nahal-legal__nav ul {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--wp--preset--spacing--30);
}

.nahal-legal__nav a {
	color: var(--wp--preset--color--ink);
}

.nahal-legal__nav a:hover {
	color: var(--wp--preset--color--terracotta);
}

/* صفحهٔ جاری — ترّاکوتا و ضخیم‌تر، طبقِ کامپ. */
.nahal-legal__nav-item.is-current a {
	color: var(--wp--preset--color--terracotta);
	font-weight: 600;
}

/* ستونِ متن — کامپ: padding 56px 88px، max-width 720px، lh 2.3. */
.nahal-legal__content {
	padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--90);
	max-width: 720px;
	min-width: 0;
}

.nahal-legal__content p,
.nahal-legal__content li {
	font-size: var(--wp--preset--font-size--medium);
	line-height: 2.3;
	color: var(--wp--preset--color--ink);
}

.nahal-legal__content h2,
.nahal-legal__content h3 {
	font-family: var(--wp--preset--font-family--estedad);
	font-weight: 700;
	font-size: var(--wp--preset--font-size--x-large);
	margin-block: var(--wp--preset--spacing--60) var(--wp--preset--spacing--30);
}

@media (max-width: 899px) {
	/* سایدبار بالایِ متن می‌رود و افقی می‌شود — در موبایل یک ستونِ باریکِ
	   کنارِ متن هم متن را خفه می‌کند و هم خودش خوانده نمی‌شود. */
	.nahal-legal__layout {
		grid-template-columns: 1fr;
	}

	.nahal-legal__sidebar {
		position: static;
		border-inline-end: 0;
		border-block-end: var(--nahal-hairline);
		padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
	}

	.nahal-legal__nav ul {
		flex-direction: row;
		flex-wrap: wrap;
		gap: var(--wp--preset--spacing--30) var(--wp--preset--spacing--50);
	}

	.nahal-legal__content {
		padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--40);
	}

	.nahal-legal__masthead {
		padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--40) var(--wp--preset--spacing--60);
	}
}

/* آیبرویِ دستهٔ تک‌پستِ مجله — فاصله‌اش با تیتر، طبقِ کامپ. */
.nahal-magazine-single__head .nahal-eyebrow {
	display: block;
	margin-block-end: var(--wp--preset--spacing--40);
}

@media (max-width: 699px) {
	.nahal-magazine-single__media--bleed {
		height: 320px;
		margin-inline: var(--wp--preset--spacing--40);
	}
}

/* آیبرویِ کالکشن بالایِ عنوانِ محصول — لینک است، پس رنگش را از .nahal-eyebrow
   می‌گیرد و زیرخط نمی‌خواهد. */
.nahal-product-collection {
	display: block;
	margin-block-end: var(--wp--preset--spacing--30);
	text-decoration: none;
}

.nahal-product-collection:hover {
	text-decoration: underline;
}

/* مرتب‌سازی، هم‌شکلِ پیل‌هایِ فیلتر — کامپ هر شش کنترل را یک‌جور نشان می‌دهد.
   خودِ <select> ووکامرس است؛ فقط پوستهٔ ظاهری عوض شده. */
.nahal-shop-filters-bar .woocommerce-ordering {
	margin: 0;
}

.nahal-shop-filters-bar .woocommerce-ordering select.orderby {
	appearance: none;
	border: var(--nahal-hairline);
	border-radius: var(--wp--custom--radius--pill);
	background-color: transparent;
	color: var(--wp--preset--color--ink);
	font-family: var(--wp--preset--font-family--vazirmatn);
	font-size: var(--wp--preset--font-size--small);
	/* Blocksy برایِ همهٔ فیلدهایِ فرم ارتفاعِ ثابتِ ۴۰px می‌گذارد. با
	   box-sizing: border-box و ۱۲px padding در بالا و پایین، فقط ۱۶px برایِ
	   خطی می‌ماند که ارتفاعش ~۲۵px است — یعنی دُمِ حروفِ فارسی از پایین
	   بریده می‌شد. ارتفاع باید از محتوا بیاید. */
	height: auto;
	line-height: 1.4;
	padding: 12px var(--wp--preset--spacing--50);
	/* جا برایِ فلشِ سفارشی، در سمتِ پایانِ خط (چپ در RTL). */
	padding-inline-end: var(--wp--preset--spacing--60);
	cursor: pointer;
	max-width: 100%;
}

.nahal-shop-filters-bar .woocommerce-ordering select.orderby:hover {
	border-color: var(--wp--preset--color--muted);
}

/* فلشِ ▾ — چون appearance:none فلشِ بومی را برداشت.
   Blocksy هم دو فلشِ خودش را دارد (تصویرِ پس‌زمینهٔ ‎select‎ و یک ‎svg‎ کنارش)؛
   سه فلش رویِ هم کشیده می‌شد (J1-15). فقط همین یکی می‌ماند. */
.nahal-shop-filters-bar .woocommerce-ordering select.orderby {
	background-image: none;
}

.nahal-shop-filters-bar .woocommerce-ordering svg {
	display: none;
}

.nahal-shop-filters-bar .woocommerce-ordering {
	position: relative;
	display: inline-flex;
	align-items: center;
}

.nahal-shop-filters-bar .woocommerce-ordering::after {
	content: "▾";
	position: absolute;
	inset-inline-end: var(--wp--preset--spacing--40);
	color: var(--wp--preset--color--muted-mid);
	pointer-events: none;
	font-size: var(--wp--preset--font-size--small);
}

@media (max-width: 699px) {
	.nahal-shop-filters-bar .woocommerce-ordering select.orderby {
		width: 100%;
		/* قاعدهٔ سراسریِ «۱۶px رویِ موبایل» (بخشِ ۴) این‌جا نمی‌رسد: انتخابگرِ
		   آن ‎(0,3,1)‎ است و انتخابگرِ این جعبه هم ‎(0,3,1)‎، و در تساوی هرکه
		   دیرتر در فایل بیاید می‌برد — یعنی همین. پس صریح تکرارش می‌کنیم. */
		font-size: 16px;
	}

	/* پنلِ فیلتر رویِ موبایل به‌جایِ «زیرِ پیلِ خودش» تمام‌عرضِ ردیفِ پیل‌ها
	   می‌شود. با ‎right: 0‎ نسبت به پیل، پنلی که پیلش سمتِ چپِ ردیف بود از
	   لبهٔ صفحه بیرون می‌زد و بخشی‌اش دست‌نیافتنی می‌شد — در ۳۷۵px، «رنگ»
	   ‎-۵۶px‎ و «محدودهٔ قیمت» ‎-۹۰px‎. با static شدنِ خودِ wrap، مبدأِ
	   موقعیت‌دهی به نگه‌دارندهٔ پیل‌ها می‌رسد که هم‌عرضِ صفحه است. */
	.nahal-filter-pills {
		position: relative;
	}

	.nahal-filter-pill-wrap {
		position: static;
	}

	.nahal-filter-panel,
	.nahal-filter-panel--price {
		inset-inline: 0;
		min-width: 0;
	}
}

/* --------------------------------------------------------------------------
   ۱۴) سبد خرید — کامپِ دوستونه با استپرِ تعداد
   -------------------------------------------------------------------------- */

/* سربرگ — کامپ: padding 56px 0 40px، عنوانِ ۴۴px. */
.nahal-cart-masthead {
	text-align: center;
	padding: var(--wp--preset--spacing--70) 0 var(--wp--preset--spacing--60);
}

.nahal-cart-masthead h1 {
	font-family: var(--wp--preset--font-family--estedad);
	font-weight: 800;
	font-size: var(--wp--preset--font-size--huge);
	margin: 0;
}

.nahal-cart-masthead p {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted-mid);
	margin: var(--wp--preset--spacing--20) 0 0;
}

/* کامپ: 1fr 380px با فاصلهٔ ۴۸px. فرمِ اقلام و پنلِ جمع خواهرِ همدیگرند،
   پس گرید رویِ ظرفِ ووکامرس می‌نشیند. */
.woocommerce-cart .woocommerce:has(.nahal-cart-form) {
	display: grid;
	grid-template-columns: 1fr 380px;
	gap: var(--wp--preset--spacing--70);
	align-items: start;
	padding: 0 var(--wp--preset--spacing--80) var(--wp--preset--spacing--90);
}

/* ردیفِ قلم — کامپ: 120px 1fr auto، gap 24px، padding 28px 0، خطِ مویی بالا. */
.nahal-cart-item {
	display: grid;
	grid-template-columns: 120px 1fr auto;
	gap: var(--wp--preset--spacing--50);
	align-items: center;
	padding: var(--wp--preset--spacing--60) 0;
	border-block-start: var(--nahal-hairline);
}

.nahal-cart-items > .nahal-cart-item:last-of-type {
	border-block-end: var(--nahal-hairline);
}

.nahal-cart-item__media img {
	width: 100%;
	height: 150px;
	object-fit: cover;
	display: block;
}

/* نامِ محصول — کامپ: Estedad 600 / ۱۹px. */
.nahal-cart-item__title {
	font-family: var(--wp--preset--font-family--estedad);
	font-weight: 600;
	font-size: var(--wp--preset--font-size--large);
	line-height: 1.5;
	margin-block-end: var(--wp--preset--spacing--40);
}

/* خطِ تنوع («رنگ: خاکی · سایز: S») باید خطِ جدا باشد، نه چسبیده به نام.
   display:block لازم است چون خودِ عنصر یک <span> است. */
.nahal-cart-item__title .variation {
	display: block;
	font-family: var(--wp--preset--font-family--vazirmatn);
	font-weight: 400;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted);
	margin-block-start: var(--wp--preset--spacing--30);
}

.nahal-cart-item__title .variation dt,
.nahal-cart-item__title .variation dd {
	display: inline;
	margin: 0;
}

.nahal-cart-item__controls {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--30);
	flex-wrap: wrap;
}

/* استپر — کامپ: قابِ ۳۸px با عددِ ۴۴px وسط. */
.nahal-qty-stepper {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--wp--preset--color--hairline);
}

.nahal-qty-stepper__btn {
	width: 38px;
	height: 38px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: none;
	border: 0;
	font-size: var(--wp--preset--font-size--large);
	color: var(--wp--preset--color--muted);
	cursor: pointer;
	line-height: 1;
}

.nahal-qty-stepper__btn:hover {
	color: var(--wp--preset--color--terracotta);
}

/* ⚠️ ‎div.quantity‎ در هر دو قاعدهٔ زیر عمدی است. بلاکسی در woocommerce.min.css
   ‎div.quantity{width:70px;height:55px}‎ دارد — با یک سلکتورِ عنصری، یعنی
   (۰،۱،۱). یک ‎.nahal-qty-stepper .quantity‎ِ ساده (۰،۲،۰) در اندازه به آن
   می‌بازد و قابِ عدد ۵۵px می‌ماند، در حالی که دکمه‌هایِ ما ۳۸px‌اند. */
.nahal-qty-stepper div.quantity {
	margin: 0;
	width: auto;
	height: auto;
	display: flex;
	align-items: center;
}

/* بلاکسی داخلِ .quantity دکمه‌هایِ +/−ِ خودش را تزریق می‌کند. ما استپرِ خودمان
   را داریم، پس مالِ او پنهان می‌شود — وگرنه کاربر چهار دکمه می‌بیند.
   ⚠️ این‌جا هم ‎div.quantity‎ لازم است، و همین یک کلمه تمامِ فرقِ کار بود:
   قاعدهٔ بلاکسی ‎div.quantity .ct-increase‎ است، یعنی (۰،۲،۱)، و ‎display:none‎ِ
   ما با (۰،۲،۰) به آن می‌باخت — بی‌ربط به این‌که main.css دیرتر بار می‌شود.
   نتیجه‌اش این بود که هر دو استپر رندر می‌شدند («+ + − −») و چون دکمه‌هایِ
   بلاکسی ‎position:absolute; z-index:1‎ و پس‌زمینه‌دارند، درست رویِ خودِ عدد
   می‌نشستند: کاربر تعداد را نه می‌دید و نه می‌توانست عوض کند. */
.nahal-qty-stepper div.quantity .ct-increase,
.nahal-qty-stepper div.quantity .ct-decrease {
	display: none;
}

/* ⚠️ ‎div.quantity‎ باز هم عمدی است، این‌بار در برابرِ دو قاعدهٔ دیگرِ بلاکسی که
   هر دو از ‎.nahal-qty-stepper input.qty‎ (۰،۲،۱) قوی‌ترند:
   ‎.quantity[data-type="type-2"] input[type="number"]‎ (۰،۳،۱) که
   ‎padding-inline: calc(--quantity-height/1.8 + 9%)‎ می‌دهد — یعنی ۳۶px از هر
   طرف، که عرضِ ۴۴px را به ۷۲px می‌رساند — و ‎div.quantity input[type="number"]‎
   (۰،۲،۲) که ‎height: inherit‎ می‌گذارد. با سه کلاس + یک عنصر (۰،۳،۱) از دومی
   جلو می‌زنیم و با اولی مساوی می‌شویم؛ در تساوی، main.css دیرتر بار می‌شود. */
.nahal-qty-stepper div.quantity input.qty {
	width: 44px;
	height: 38px;
	text-align: center;
	border: 0;
	background: none;
	font-size: var(--wp--preset--font-size--medium);
	appearance: textfield;
	padding: 0;
}

.nahal-qty-stepper input.qty::-webkit-outer-spin-button,
.nahal-qty-stepper input.qty::-webkit-inner-spin-button {
	appearance: none;
	margin: 0;
}

/* همان دلیلِ ‎select.orderby‎: انتخابگرِ بالا ‎(0,3,2)‎ است و از قاعدهٔ سراسریِ
   بخشِ ۴ قوی‌تر، پس ‎--font-size--medium‎ رویِ موبایل تا ۱۵٫۱px پایین می‌آمد و
   iOS هنگامِ فوکوس زوم می‌کرد. جعبه ۴۴×۳۸ است و یکی-دو رقم بیشتر نمی‌گیرد،
   پس ۱۶px جا می‌شود. */
@media (max-width: 699px) {
	.nahal-qty-stepper div.quantity input.qty {
		font-size: 16px;
	}
}

.nahal-cart-item__remove {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--terracotta);
}

.nahal-cart-item__total {
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
	white-space: nowrap;
}

/* دکمهٔ به‌روزرسانی: استپر خودش می‌زندش، پس فقط بدونِ جاوااسکریپت دیده می‌شود. */
.nahal-cart-update {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}

.no-js .nahal-cart-update {
	position: static;
	width: auto;
	height: auto;
	clip-path: none;
}

.nahal-cart-actions {
	padding-block-start: var(--wp--preset--spacing--50);
}

/* ردیفِ کدِ تخفیف — کامپ: یک قابِ واحد با خطِ مویی، اینپوتِ بی‌حاشیه، و
   «اعمال» با فضایِ داخلیِ راحت (۱۲px بالا/پایین، ۱۸px چپ/راست).
   بدونِ این، دکمه استایلِ پیش‌فرضِ بلاکسی را می‌گرفت و بیش از حد جمع بود. */
.nahal-cart-coupon {
	display: flex;
	align-items: stretch;
	max-width: 420px;
	border: var(--nahal-hairline);
	border-radius: var(--wp--custom--radius--sharp);
	overflow: hidden;
	background-color: var(--wp--preset--color--ground);
}

.nahal-cart-coupon .input-text {
	flex: 1;
	min-width: 0;
	border: 0;
	background: transparent;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	font-family: var(--wp--preset--font-family--vazirmatn);
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--ink);
	outline: none;
}

.nahal-cart-coupon .input-text::placeholder {
	color: var(--wp--preset--color--muted-mid);
}

/* «اعمال» یک متنِ زیرخط‌دار است، نه دکمهٔ گرد — خواستهٔ کارفرما.
   کلاسِ button هم از خودِ مارکاپ برداشته شده تا استایلِ سراسریِ دکمهٔ بلاکسی
   اصلاً سراغش نیاید. */
.nahal-cart-coupon .nahal-coupon-apply {
	flex: none;
	appearance: none;
	border: 0;
	border-radius: 0;
	background: none;
	color: var(--wp--preset--color--terracotta);
	font-family: var(--wp--preset--font-family--vazirmatn);
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--50);
	cursor: pointer;
	white-space: nowrap;
	text-decoration: underline;
	text-underline-offset: 4px;
	min-height: 0;
	box-shadow: none;
}

.nahal-cart-coupon .nahal-coupon-apply:hover {
	color: var(--wp--preset--color--ink);
}

/* خطایِ کد (‎p.coupon-error-notice‎ که cart.jsِ ووکامرس تهِ همین ردیف اضافه
   می‌کند): ردیفِ خودش را زیرِ فیلد می‌گیرد. بی این، پاراگرافِ بی‌شکستِ خط
   سومین فرزندِ ردیفِ flex می‌شد و کلِ سبد را ۳۴px از لبهٔ چپِ گوشی بیرون می‌برد
   (J1-27). */
.nahal-cart-coupon:has(.coupon-error-notice) {
	flex-wrap: wrap;
}

.nahal-cart-coupon .coupon-error-notice {
	flex: 1 0 100%;
	min-width: 0;
	margin: 0;
	padding: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
	border-block-start: var(--nahal-hairline);
	color: #b8293b;
	font-size: var(--wp--preset--font-size--small);
	white-space: normal;
	overflow-wrap: anywhere;
}

.nahal-cart-continue {
	margin-block-start: var(--wp--preset--spacing--60);
	font-size: var(--wp--preset--font-size--small);
}

.nahal-cart-continue a {
	color: var(--wp--preset--color--terracotta);
}

/* پنلِ خلاصهٔ سفارش — کامپ: پس‌زمینهٔ روشن، padding 32px، چسبیده به بالا. */
.woocommerce-cart .cart-collaterals {
	width: auto;
	float: none;
}

.woocommerce-cart .cart_totals {
	width: auto;
	float: none;
	background-color: var(--wp--preset--color--ground);
	padding: var(--wp--preset--spacing--60);
}

.woocommerce-cart .cart_totals h2 {
	font-family: var(--wp--preset--font-family--estedad);
	font-weight: 700;
	font-size: var(--wp--preset--font-size--x-large);
	margin: 0 0 var(--wp--preset--spacing--50);
}

.woocommerce-cart .cart_totals table {
	width: 100%;
	border: 0;
	margin: 0;
}

.woocommerce-cart .cart_totals th,
.woocommerce-cart .cart_totals td {
	border: 0;
	padding: var(--wp--preset--spacing--30) 0;
	font-size: var(--wp--preset--font-size--medium);
	text-align: start;
}

.woocommerce-cart .cart_totals td {
	text-align: end;
}

/* ردیفِ «ارسال» (m77): ووکامرس/بلاکسی برچسب را بالا و روشِ ارسال را زیرش می‌چینند؛ ‎td { text-align: end }‎
   بالا برایِ ردیف‌هایِ «برچسب ↔ مبلغ» درست است ولی متنِ چندخطیِ روشِ ارسال («پست پیشتاز: …»،
   «محاسبهٔ هزینهٔ ارسال») را زیرِ برچسبِ شروع‌چین به لبهٔ مقابل می‌برد. زیرِ برچسب، همان لبهٔ شروع. */
.woocommerce-cart .cart_totals .woocommerce-shipping-totals td {
	text-align: start;
}

.woocommerce-cart .cart_totals .order-total th,
.woocommerce-cart .cart_totals .order-total td {
	font-size: var(--wp--preset--font-size--x-large);
	font-weight: 700;
	border-block-start: var(--nahal-hairline);
	padding-block: var(--wp--preset--spacing--40);
}

.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 54px;
	background-color: var(--wp--preset--color--terracotta);
	color: var(--wp--preset--color--white);
	font-size: var(--wp--preset--font-size--medium);
	font-weight: 600;
	border-radius: 0;
}

/* حالتِ سبدِ خالی — لحنِ برند، نه پیامِ خشکِ پیش‌فرض. */
.woocommerce-cart .cart-empty {
	text-align: center;
	font-size: var(--wp--preset--font-size--large);
	color: var(--wp--preset--color--muted);
	padding-block: var(--wp--preset--spacing--80);
}

@media (max-width: 899px) {
	.woocommerce-cart .woocommerce:has(.nahal-cart-form) {
		grid-template-columns: 1fr;
		padding-inline: var(--wp--preset--spacing--40);
	}

	.nahal-cart-item {
		grid-template-columns: 90px 1fr;
		gap: var(--wp--preset--spacing--40);
	}

	.nahal-cart-item__media img {
		height: 115px;
	}

	/* جمعِ ردیف زیرِ متن می‌رود، نه ستونِ سوم. */
	.nahal-cart-item__total {
		grid-column: 2;
	}

	/* فاصله‌هایِ خالیِ سبد در موبایل (J1-23). گرید بینِ هر دو فرزند ۵۴px می‌گذاشت
	   و ظرفِ خالیِ اعلان‌ها هم یک فرزند بود — زیرِ تیتر ۱۰۹px هیچ. */
	.woocommerce-cart .woocommerce:has(.nahal-cart-form) {
		gap: var(--wp--preset--spacing--50);
	}

	.woocommerce-cart .woocommerce-notices-wrapper:empty {
		display: none;
	}

	.nahal-cart-continue {
		margin-block: var(--wp--preset--spacing--40) 0;
	}

	/* پنلِ خلاصه با همان عرضِ اقلام، نه ۳۶px تو رفته از هر طرف. */
	.woocommerce-cart .cart_totals {
		padding: var(--wp--preset--spacing--50) var(--wp--preset--spacing--40);
	}

	/* کدِ تخفیف و «اعمال» در یک ردیف. Blocksy زیرِ ۶۹۰px ‎.coupon‎ را ستونی
	   می‌کند و این‌جا یک قابِ ۱۰۹ پیکسلی با دکمه‌ای زیرِ فیلد می‌ساخت. */
	.woocommerce-cart-form__contents .nahal-cart-coupon {
		flex-direction: row;
		max-width: none;
		margin-bottom: 0;
	}

	.woocommerce-cart-form__contents .nahal-cart-coupon .input-text {
		width: auto;
		margin: 0;
	}
}

/* روشِ ارسالِ تنها: وقتی انتخابی در کار نیست (یک روش برایِ این مقصد)، کارتِ
   قاب‌دار شبیهِ یک فیلدِ فرم بود. متنِ ساده می‌شود (J1-23). */
ul.woocommerce-shipping-methods li:only-child {
	border: 0;
	padding: 0;
}

/* --------------------------------------------------------------------------
   ۱۵) کشوی سبد
   -------------------------------------------------------------------------- */

/* پنل به inset-inline-end چسبیده — یعنی چپ در RTL، همان‌طور که کامپ می‌خواهد.
   عمداً left/right نیست تا اگر روزی نسخهٔ LTR آمد خودش برعکس شود. */
/* منویِ کشوییِ کوچکِ خودِ بلاکسی زیرِ آیکونِ سبد: کشوی سبد جایش را گرفته.
   با ‎:focus-within‎ باز می‌شد، پس بستنِ کشو (که فوکوس را به آیکونِ سبد
   برمی‌گرداند) یک سبدِ دومِ تیره زیرِ سربرگ باز می‌کرد (J1-28). */
.ct-header-cart .ct-cart-content {
	display: none !important;
}

.nahal-cart-drawer .nahal-cart-drawer__panel {
	position: fixed;
	inset-block: 0;
	inset-inline-end: 0;
	width: 340px;
	max-width: 100%;
	background-color: var(--wp--preset--color--ground);
	padding: var(--wp--preset--spacing--50);
	overflow-y: auto;
	max-height: none;
	border-radius: 0;
	transform: none;
	inset-inline-start: auto;
	inset-block-start: 0;
}

.nahal-cart-drawer__inner {
	display: flex;
	flex-direction: column;
	min-height: 100%;
}

.nahal-cart-drawer__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--wp--preset--spacing--30);
	margin-block-end: var(--wp--preset--spacing--50);
}

.nahal-cart-drawer__head h2 {
	font-family: var(--wp--preset--font-family--estedad);
	font-weight: 700;
	font-size: var(--wp--preset--font-size--x-large);
	margin: 0;
}

.nahal-cart-drawer__items {
	list-style: none;
	margin: 0;
	padding: 0;
	flex: 1;
}

/* قلم — کامپ: عکسِ ۶۰×۷۶، فاصلهٔ ۱۲px، خطِ مویی بینِ اقلام. */
.nahal-cart-drawer__item {
	display: grid;
	grid-template-columns: 60px 1fr auto;
	gap: var(--wp--preset--spacing--30);
	align-items: start;
	padding-block: var(--wp--preset--spacing--40);
	border-block-end: var(--nahal-hairline);
}

.nahal-cart-drawer__media img {
	width: 60px;
	height: 76px;
	object-fit: cover;
	display: block;
}

.nahal-cart-drawer__title {
	display: block;
	font-weight: 600;
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.6;
}

.nahal-cart-drawer__body .variation {
	display: block;
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--muted);
	margin-block-start: var(--wp--preset--spacing--20);
}

.nahal-cart-drawer__price {
	display: block;
	font-size: var(--wp--preset--font-size--x-small);
	color: var(--wp--preset--color--ink);
	margin-block-start: var(--wp--preset--spacing--20);
}

.nahal-cart-drawer__remove {
	color: var(--wp--preset--color--muted-mid);
	font-size: var(--wp--preset--font-size--medium);
	line-height: 1;
	/* ۲۰×۱۹ بود؛ حالا ۳۶×۳۶ با همان نشانه (J1-13). */
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	min-height: 36px;
}

.nahal-cart-drawer__remove:hover {
	color: var(--wp--preset--color--terracotta);
}

/* پایِ کشو — چسبیده به کفِ پنل، طبقِ کامپ. */
.nahal-cart-drawer__foot {
	margin-block-start: auto;
	padding-block-start: var(--wp--preset--spacing--50);
}

.nahal-cart-drawer__total {
	display: flex;
	align-items: center;
	justify-content: space-between;
	font-weight: 700;
	font-size: var(--wp--preset--font-size--medium);
	margin-block-end: var(--wp--preset--spacing--40);
}

.nahal-cart-drawer__checkout,
.nahal-cart-drawer__cta {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 50px;
	background-color: var(--wp--preset--color--terracotta);
	color: var(--wp--preset--color--white);
	font-weight: 600;
	font-size: var(--wp--preset--font-size--medium);
}

.nahal-cart-drawer__checkout:hover,
.nahal-cart-drawer__cta:hover {
	background-color: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--white);
}

.nahal-cart-drawer__empty {
	flex: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	text-align: center;
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
	gap: var(--wp--preset--spacing--30);
}

/* قفلِ اسکرولِ پس‌زمینه وقتی کشو باز است. */
body.nahal-drawer-open {
	overflow: hidden;
}

/* --------------------------------------------------------------------------
   ۱۶) لایهٔ جستجو
   -------------------------------------------------------------------------- */

.nahal-search-overlay .nahal-search-overlay__panel {
	width: 100%;
	max-width: 760px;
	background-color: var(--wp--preset--color--ground);
	padding: var(--wp--preset--spacing--70) var(--wp--preset--spacing--60);
	position: relative;
}

/* ردیفِ جستجو — کامپ: ذره‌بینِ ۲۲px + اینپوت، خطِ زیرِ ۲px، ۲۰px placeholder. */
.nahal-search-overlay__form {
	display: flex;
	align-items: center;
	gap: var(--wp--preset--spacing--30);
	border-block-end: 2px solid var(--wp--preset--color--ink);
	padding-block-end: var(--wp--preset--spacing--40);
	margin-block-end: var(--wp--preset--spacing--60);
}

.nahal-search-overlay__icon {
	flex: none;
	color: var(--wp--preset--color--ink);
}

.nahal-search-overlay__input {
	flex: 1;
	min-width: 0;
	border: 0;
	background: none;
	font-family: var(--wp--preset--font-family--vazirmatn);
	font-size: var(--wp--preset--font-size--x-large);
	color: var(--wp--preset--color--ink);
	padding: 0;
	outline: none;
	appearance: none;
}

/* Blocksy به ‎input[type=search]‎ قاب و رنگِ فوکوسِ خودش را می‌دهد و انتخابگرش
   ‎(0,1,1)‎ از ‎.nahal-search-overlay__input‎ قوی‌تر است؛ قابِ ترهِ‌کوتایِ فوکوس
   و خطِ زیرِ فرم با هم دو خط دورِ فیلد می‌کشیدند (J2-23). خطِ زیرِ فرم کافی است. */
.nahal-search-overlay__input:is([type="search"]),
.nahal-search-overlay__input:is([type="search"]):focus {
	border: 0;
	box-shadow: none;
	outline: none;
	background: none;
	height: auto;
}

.nahal-search-overlay__input::placeholder {
	color: var(--wp--preset--color--muted-mid);
}

.nahal-search-overlay__label {
	display: block;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--muted-mid);
	margin-block-end: var(--wp--preset--spacing--40);
}

/* پیل‌ها — رنگِ حاشیهٔ کامپ جایی بینِ hairline و muted-soft است و در پالت
   وجود ندارد. طبقِ یادداشتِ برنامه اول hairline امتحان شد و کافی بود، پس
   توکنِ تازه‌ای به theme.json اضافه نشد. */
.nahal-search-overlay__pills {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--30);
}

.nahal-search-overlay__pill {
	border: 1px solid var(--wp--preset--color--hairline);
	border-radius: var(--wp--custom--radius--pill);
	padding: 9px 18px;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--ink);
}

.nahal-search-overlay__pill:hover {
	border-color: var(--wp--preset--color--terracotta);
	color: var(--wp--preset--color--terracotta);
}

@media (max-width: 599px) {
	.nahal-search-overlay .nahal-search-overlay__panel {
		padding: var(--wp--preset--spacing--60) var(--wp--preset--spacing--50);
	}

	.nahal-search-overlay__input {
		font-size: var(--wp--preset--font-size--large);
	}
}

/* ---- بندِ باور: تضمینِ هم‌قدیِ دو ستون ----
   بلوکِ گروهِ گوتنبرگ کلاسِ is-layout-flow می‌گیرد و هستهٔ وردپرس با
   ‎:where(.is-layout-flow) > *‎ به فرزندانش margin-block-start می‌دهد. داخلِ
   گرید همان مارجین ارتفاعِ ستون‌ها را نابرابر می‌کند و پایینشان از یک راستا
   درمی‌آید.
   به‌جایِ تکیه بر رفتارِ پیش‌فرضِ کشیده‌شدن، هر دو ستون صراحتاً در ردیفِ اول
   قرار می‌گیرند، صراحتاً کشیده می‌شوند و مارجینشان صفر می‌شود. ویژگیِ سه‌کلاسه
   عمدی است تا هیچ استایلِ هسته یا قالبِ مادر رویش نیفتد — بدونِ important. */
.nahal-about-belief.wp-block-group {
	align-items: stretch;
}

.nahal-about-belief.wp-block-group > .nahal-about-belief__media,
.nahal-about-belief.wp-block-group > .nahal-about-belief__panel {
	grid-row: 1;
	align-self: stretch;
	margin-block: 0;
	min-height: 460px;
}

/* ---- چسبیدنِ آخرین بخش به فوتر ----
   صفحهٔ درباره تمام‌عرض است و بندِ تیره باید بی‌فاصله به فوتر برسد. فاصله از
   ناحیهٔ محتوایِ بلاکسی می‌آمد. ویژگی عمداً بالا برده شد (body + id + کلاس)
   چون قاعدهٔ ضعیف‌ترِ قبلی اثر نکرد. فقط همین قالب را هدف می‌گیرد. */
/* منشأِ فاصله، مارجینِ بالایِ خودِ فوتر بود (۳۶px از بلاکسی) — نه پدینگِ
   محتوا. اندازه‌گیری نشان داد همهٔ عناصرِ بالادست pb و mb صفر دارند و فقط
   ‎.ct-footer‎ مارجینِ بالا می‌گیرد. بندِ تیرهٔ پایانِ این صفحه باید بی‌فاصله
   به فوتر برسد، پس فقط رویِ همین قالب خنثی می‌شود. */
body.page-template-page-about .ct-footer {
	margin-block-start: 0;
}

body.page-template-page-about main#main.site-main {
	padding-block-end: 0;
	margin-block-end: 0;
}

body.page-template-page-about main.nahal-about {
	margin-block-end: 0;
	padding-block-end: 0;
}

body.page-template-page-about main.nahal-about > :last-child {
	margin-block-end: 0;
}

@media (max-width: 699px) {
	.nahal-magazine-single__content {
		padding-inline: var(--wp--preset--spacing--40);
	}
}

/* --------------------------------------------------------------------------
   ۱۷) تراکمِ فروشگاه در موبایل — شبکهٔ دوستونه و کارتِ باریک
   -------------------------------------------------------------------------- */

/* یک‌ستونه‌بودنِ موبایل هیچ‌وقت تصمیم نبود: مقدارِ پیش‌فرضِ ‎blocksy_woo_columns‎
   است (دسکتاپ ۴ / تبلت ۳ / موبایل ۱) و آن theme mod در این سایت اصلاً ست
   نشده. نتیجه‌اش کارتِ ۶۵۹ پیکسلی بود — ۷۸٪ ارتفاعِ صفحه — و صفحه‌ای به بلندیِ
   ۱۱.۷ نمایشگر برایِ ۱۲ محصول.

   در CSS تنظیم می‌شود و نه در سفارشی‌ساز، چون آن theme mod در دیتابیس می‌ماند و
   با بستهٔ فقط‌فایل به سایتِ واقعی نمی‌رسد — همان تصمیمی که برایِ آیکون‌هایِ هدر
   گرفته شد.

   نقطهٔ شکست ‎689.98px‎ همان مرزِ «موبایل»ِ خودِ Blocksy است، تا این قاعده دقیقاً
   جایی بنشیند که قاعدهٔ اوست و نه یک پیکسل این‌ور و آن‌ور. */
@media (max-width: 689.98px) {
	/* ‎ul.products‎ عمدی است و زینتی نیست: Blocksy این متغیر را با انتخابگرِ
	   ‎[data-products]‎ می‌نویسد و استایلِ درون‌خطی‌اش **بعد از** این فایل در
	   صفحه چاپ می‌شود، پس قاعدهٔ هم‌وزن می‌بازد. این‌جا یک پله ویژگیِ بیشتر
	   لازم است تا قاعده بگیرد. */
	ul.products[data-products] {
		--shop-columns: repeat(2, minmax(0, 1fr));
	}

	/* در نصفِ عرض (حدودِ ۱۷۰px) تیترِ ۲۴ پیکسلی سه‌خطی می‌شد و کارت‌هایِ یک
	   ردیف را ناهم‌قد می‌کرد. ‎small‎ کوچک‌ترین اندازه‌ای بود که در آزمون هنوز
	   نقطهٔ ورودیِ کارت می‌ماند. */
	ul.products li.product .woocommerce-loop-product__title {
		font-size: var(--wp--preset--font-size--small);
		line-height: 1.5;
	}

	/* قیمت مهم‌ترین خطِ کارت است و ‎x-small‎ (۱۲px) بود؛ هم‌اندازهٔ تیتر شد. */
	ul.products li.product .price {
		font-size: var(--wp--preset--font-size--small);
	}

	/* دسته و ستاره‌ها در کارتِ موبایل هم هستند — تصمیمِ کارفرما (ردیفِ ۲۶؛
	   پیش‌تر برداشته شده بودند). در ۱۶۰px کنارِ هم جا نمی‌شوند (ستاره‌ها از لبهٔ
	   کارت بیرون می‌زدند)، پس هر کدام یک ردیف: دسته، ستاره‌هایِ ریزتر، «مشاهده». */
	ul.products li.product .entry-meta {
		grid-area: 4 / 1 / 5 / 3;
	}

	ul.products li.product .ct-woo-card-rating {
		grid-area: 5 / 1 / 6 / 3;
		justify-self: start;
		font-size: 11px;
	}

	ul.products li.product .ct-woo-card-actions {
		grid-area: 6 / 1 / 7 / 3;
	}

	ul.products li.product .button {
		padding: 9px var(--wp--preset--spacing--20);
		font-size: var(--wp--preset--font-size--x-small);
	}

	/* قلب هم یک نمره کوچک‌تر، تا رویِ عکسِ باریک سنگینی نکند. هدفِ لمسی هنوز
	   ۳۶px است — بالایِ کفِ ۲۴ پیکسلیِ WCAG 2.2. */
	ul.products li.product .nahal-card-media .nahal-wishlist-btn {
		width: 36px;
		height: 36px;
		inset-inline-end: var(--wp--preset--spacing--20);
		inset-block-start: var(--wp--preset--spacing--20);
	}
}

/* --------------------------------------------------------------------------
   ۱۸) دو نشانهٔ ظاهریِ آیتمِ منو — «قرمز» و «خطِ جداکننده»
   -------------------------------------------------------------------------- */

/* مدیر این دو را با تیک در صفحهٔ «منوهای سایت» روشن می‌کند
   (inc/menu-admin.php کلاس را موقعِ رندر اضافه می‌کند). عمداً کلاس‌اند و نه
   استایلِ درون‌خطی، چون همان الگویی است که قالب از قبل برایِ
   ‎nahal-featured-collection‎ و ‎nahal-category-parent‎ دارد.

   رنگ: تراکوتا رویِ سربرگِ روشن نسبتِ کنتراستِ ۵٫۷۵:۱ می‌دهد (بالایِ کفِ
   ۴٫۵:۱ِ WCAG AA). همان تراکوتا رویِ پنلِ تیرهٔ موبایل فقط ۳٫۱۸:۱ می‌شد، پس
   آن‌جا تراکوتایِ روشن استفاده می‌شود که ۶٫۹:۱ است. */
.header-menu-1 .menu > li.nahal-menu-sale > a,
.header-menu-1 .menu > li.nahal-menu-sale > .ct-menu-link {
	color: var(--wp--preset--color--terracotta);
}

#offcanvas .nahal-menu-sale > a,
#offcanvas .nahal-menu-sale > .ct-sub-menu-parent > a {
	color: var(--wp--preset--color--terracotta-light);
}

/* خطِ جداکننده پیش از آیتم. در دسکتاپ خطِ عمودی (منو افقی است) و در موبایل
   خطِ افقی (‎border-block-start‎، بالایِ آیتم).

   ‎inset-inline-start‎ یعنی سمتِ راست در RTL — *پیش از* آیتم در جهتِ خواندن.
   نسخهٔ اول ‎inset-inline-end‎ بود و خط را سمتِ چپ، یعنی *بعد* از آیتم، می‌نشاند
   (سنجیده شد: میانِ «تخفیف خورده» و «مجله»). فاصله نصفِ ‎gap‎ِ منوست، پس خط
   وسطِ دو آیتم می‌افتد. */
.header-menu-1 .menu > li.nahal-menu-divider {
	position: relative;
}

.header-menu-1 .menu > li.nahal-menu-divider::before {
	content: "";
	position: absolute;
	inset-inline-start: calc(var(--wp--preset--spacing--60) / -2);
	inset-block: 25%;
	width: 1px;
	background-color: var(--wp--preset--color--hairline);
}

#offcanvas .nahal-menu-divider {
	border-block-start: 1px solid rgb(255 255 255 / 0.15);
	padding-block-start: var(--wp--preset--spacing--20);
	margin-block-start: var(--wp--preset--spacing--20);
}

/* ---- اعلان‌هایِ ووکامرس: خطا خوانا، آیکون کنارِ متن ----
   ۱) از ووکامرس ۸ هر سطرِ خطایِ تسویه‌حساب لینکی است به فیلدِ خودش. آن لینک‌ها
      رنگِ لینکِ سایت (ترهِ‌کوتا) را می‌گرفتند رویِ کادرِ قرمز — حدودِ ۱٫۳:۱، یعنی
      هفت سطر از نه سطرِ یک ارسالِ خالی تقریباً نامرئی بود (بازبینیِ سفرها، J1-03).
      هم‌رنگِ خودِ متن می‌شوند، با زیرخط تا هنوز پیدا باشد که کلیک‌پذیرند.
   ۲) Blocksy زیرِ ۴۸۰px فاصلهٔ آیکون را با ‎padding: 15px 15px 15px 46px‎ (چپِ
      فیزیکی) می‌دهد، ولی خودِ آیکون را با ‎inset-inline-start‎ (راست در RTL)
      می‌نشاند؛ پس زنگوله رویِ اولین کلمه‌هایِ هر اعلان می‌افتاد (J1-11). */
:is(.woocommerce-error, .woocommerce-message, .woocommerce-info) a,
:is(.woocommerce-error, .woocommerce-message, .woocommerce-info) a:hover {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

/* سفیدِ متن رویِ قرمزِ نیمه‌شفافِ Blocksy (‎rgba(218,0,28,.7)‎ رویِ زمینهٔ کرم) حدودِ
   ۴٫۲:۱ بود — کمی زیرِ ۴٫۵. قرمزِ مات و یک پله تیره‌تر: حدودِ ۶:۱. */
.woocommerce-error {
	background-color: #b8293b;
}

.woocommerce-error a.button,
.woocommerce-message a.button,
.woocommerce-info a.button {
	text-decoration: none;
}

@media (max-width: 479.98px) {
	:is(.woocommerce-info, .woocommerce-error, .woocommerce-message, .woocommerce-thankyou-order-received) {
		padding-inline-start: 46px;
		padding-inline-end: 15px;
	}
}

/* «اطلاعاتِ حساب کاربری» برایِ حسابی که هنوز رمز نساخته (inc/account.php):
   فیلدهایِ رمز پنهان، به‌جایش یک خط. */
.woocommerce-EditAccountForm[data-nahal-temp-password] fieldset {
	display: none;
}

.nahal-temp-password {
	margin-block: var(--wp--preset--spacing--40);
	color: var(--wp--preset--color--muted);
}

/* اعلانی که ووکامرس پس از خطا خودش فوکوس می‌کند (برایِ صفحه‌خوان) حلقهٔ فوکوسِ
   بلاکسی را هم می‌گرفت و دو قاب دورِ جعبهٔ قرمز دیده می‌شد (J1-35). فوکوسِ
   برنامه‌ای نیازی به نشانهٔ دیداری ندارد؛ کاربر چیزی را انتخاب نکرده. */
:is(.woocommerce-error, .woocommerce-message, .woocommerce-info, .woocommerce-NoticeGroup):focus {
	outline: none;
}

/* صفحهٔ پرداخت وقتی درگاه جواب نداد (inc/checkout.php): دکمه و دو پیوند در یک
   ردیفِ شکستنی، با فاصله. */
.nahal-pay-retry {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40);
	margin-block-start: var(--wp--preset--spacing--50);
}

/* «دیدگاهت پس از تأیید…» — ووکامرس ایتالیک می‌کند و فونتِ فارسی ایتالیکِ واقعی
   ندارد؛ مرورگر حروف را کج می‌کشید (J2-15). */
.woocommerce-review__awaiting-approval {
	font-style: normal;
}

/* دایرهٔ رنگ در فیلترِ «رنگ» — مثلِ دایره‌هایِ کارت، با خطِ دور برایِ سفید/شیری. */
.nahal-filter-panel__swatch {
	display: inline-block;
	width: 14px;
	height: 14px;
	border-radius: 50%;
	background-color: var(--nahal-dot, transparent);
	box-shadow: inset 0 0 0 1px rgba(31, 27, 23, 0.22);
	vertical-align: -2px;
	margin-inline-end: 4px;
}

/* ---- صفحهٔ محصول: سه اصلاحِ کوچک (بازبینیِ سفرها) ---- */

/* ۱) راهنمایِ رنگ/سایزِ افزونهٔ سوآچ رویِ لمس با تپ باز می‌شد و تا تپِ بعدی
      رویِ «سایز : سایز ۲» می‌ماند (J1-17). رویِ صفحهٔ لمسی، که هاور ندارد،
      نامِ گزینه همان بالایِ سوآچ‌ها نوشته شده؛ راهنما لازم نیست. */
@media (hover: none) {
	[data-wvstooltip]::before,
	[data-wvstooltip]::after,
	.wvs-has-image-tooltip::before,
	.wvs-has-image-tooltip::after {
		display: none !important;
	}
}

/* ۲) جدولِ سایز: بازه‌ها («۸۴–۹۲») و «سایز ۱» نمی‌شکنند — قبلاً خط‌تیره اولِ خطِ
      دوم می‌افتاد (J1-18). جدول اگر جا نشد، خودش افقی اسکرول می‌خورد. */
.nahal-size-table th,
.nahal-size-table td {
	white-space: nowrap;
}

.nahal-size-table-wrap {
	overflow-x: auto;
	max-width: 100%;
}

@media (max-width: 479.98px) {
	.nahal-size-table th,
	.nahal-size-table td {
		padding: 8px 5px;
		font-size: 13px;
	}
}

/* ۳) «این را با این بپوش» ۱۰px زیرِ بندانگشتی‌هایِ گالری می‌نشست، در حالی که
      بخش‌هایِ دیگر ۸۰px فاصله دارند (B-10). */
.single-product .up-sells {
	margin-block-start: var(--wp--preset--spacing--80);
}

/* چشمِ «نمایشِ رمز» زیرِ فیلد آویزان بود (m77): دکمهٔ ۴۰px با ‎top: 13px‎ِ ووکامرس/بلاکسی رویِ
   فیلدی ۴۰px نشسته بود، پس ۱۳px از پایینِ فیلد بیرون می‌زد (در هر دو زبان؛ در فرمِ دوستونهٔ
   بازنشانی لبهٔ هر دو فیلد را می‌پوشاند). به بالایِ فیلد می‌چسبد. */
.woocommerce form .password-input .show-password-input,
.woocommerce-page form .password-input .show-password-input {
	top: 0;
	bottom: auto;
}

/* دو هدفِ لمسیِ ریزِ دیگر از فرم‌هایِ خودِ ووکامرس (J1-13):
   چشمِ «نمایشِ رمز» ۱۴×۱۴ و ستاره‌هایِ ثبتِ امتیاز ۲۳×۱۴. */
.woocommerce form .show-password-input,
.woocommerce-page form .show-password-input {
	min-width: 40px;
	min-height: 40px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* اندازهٔ قلم رویِ خودِ پیوند صفر می‌ماند (بلاکسی متنِ «۱ از ۵ ستاره» را همین‌طور
   پنهان می‌کند — J2-25)؛ فقط جعبه و ستارهٔ ‎::before‎ بزرگ می‌شوند. */
/* تیکِ «شرایط و مقررات» ۱۶×۱۶ بود و تنها کنترلِ اجباریِ تسویه‌حساب است (J1-13). */
.woocommerce-terms-and-conditions-wrapper input#terms {
	width: 22px;
	height: 22px;
	vertical-align: middle;
}

.comment-form-rating p.stars a {
	display: inline-block;
	width: 32px;
	height: 32px;
	padding-inline: 0;
	vertical-align: middle;
}

.comment-form-rating p.stars a::before {
	width: 32px;
	height: 32px;
	line-height: 32px;
	text-align: center;
}

/* مقدارِ بی‌پیوند در خطِ برچسب‌هایِ محصول (فصل) — هم‌وزنِ مقدارهایِ پیونددار،
   نه پررنگِ برچسب. */
.product_meta .nahal-meta-value {
	font-weight: 400;
}

/* دکمهٔ «فیلترها» — فقط موبایل (inc/shop.php، تصمیمِ کارفرما ردیفِ ۲۳).
   بسته که باشد، ردیف فقط «N محصول · فیلترها · مرتب‌سازی» است. */
.nahal-filters-toggle {
	display: none;
}

@media (max-width: 689.98px) {
	.nahal-filters-toggle {
		display: inline-flex;
		align-items: center;
		gap: 6px;
		border: var(--nahal-hairline);
		border-radius: var(--wp--custom--radius--pill);
		background: transparent;
		color: var(--wp--preset--color--ink);
		font-family: var(--wp--preset--font-family--vazirmatn);
		font-size: 16px;
		padding: 10px var(--wp--preset--spacing--50);
		cursor: pointer;
	}

	.nahal-filters-toggle[aria-expanded="true"] {
		border-color: var(--wp--preset--color--terracotta);
		color: var(--wp--preset--color--terracotta);
	}

	.nahal-filters-toggle__count {
		color: var(--wp--preset--color--terracotta);
	}

	.nahal-shop-filters-bar.has-toggle:not(.is-open) .nahal-filter-form {
		display: none;
	}

	/* شمارش، دکمه و مرتب‌سازی در یک ردیف؛ فرمِ بازشده تمام‌عرض زیرشان. */
	.nahal-shop-filters-bar.has-toggle .nahal-filter-form {
		order: 10;
		flex-basis: 100%;
	}

	.nahal-shop-filters-bar.has-toggle .woocommerce-ordering {
		flex: 1;
	}

	/* در گوشی فهرستِ بازشده رویِ صفحه شناور نیست، در جریانِ فرم است: ردیفِ
	   خودش را می‌گیرد و دکمهٔ «فیلتر» را پایین می‌راند. شناور که بود، دکمه زیرِ
	   فهرست می‌ماند و لمسش یک گزینه را تیک می‌زد (J1-29). */
	.nahal-shop-filters-bar.has-toggle .nahal-filter-pill-wrap.is-open {
		flex-basis: 100%;
	}

	.nahal-shop-filters-bar.has-toggle .nahal-filter-panel {
		position: static;
		min-width: 0;
		margin-block-start: var(--wp--preset--spacing--20);
		box-shadow: none;
	}

	/* شمارش یک خطِ کوچکِ جدا بالایِ ردیف، تا «مرتب‌سازی پیش‌فرض» کنارِ دکمه
	   بریده نشود. */
	.nahal-shop-filters-bar.has-toggle .nahal-shop-result-count {
		flex-basis: 100%;
		order: -1;
		margin-block-end: calc(-1 * var(--wp--preset--spacing--20));
	}
}

/* --------------------------------------------------------------------------
   ۱۹) دسترس‌پذیری — حلقهٔ فوکوس، هدفِ لمسی، حرکتِ کمتر
   -------------------------------------------------------------------------- */

/* کدِ تخفیف و جستجو ‎outline‎ِ اینپوت را برمی‌دارند (اولی چون قابش ‎overflow:
   hidden‎ دارد و حلقه بریده می‌شد، دومی تا استایلِ بلاکسی پاک شود) و جایش چیزی
   نمی‌گذاشتند: با Tab معلوم نبود فوکوس کجاست. ‎:has()‎ و نه ‎:focus-within‎،
   چون دکمهٔ «اعمال» هم داخلِ همان قاب است و حلقهٔ خودش را دارد. */
.nahal-cart-coupon:has(.input-text:focus) {
	outline: 2px solid var(--wp--preset--color--terracotta);
	outline-offset: 2px;
}

/* جستجو با بازشدن خودش فوکوس می‌گیرد، پس حلقهٔ دور تا دور همیشه روشن می‌ماند.
   به‌جایش همان خطِ زیرینِ ۲px تراکوتا می‌شود و با سایه ۳px دیده می‌شود (بی
   جابه‌جاییِ چیدمان)؛ Tab رویِ «بستن» آن را به مشکی برمی‌گرداند. */
.nahal-search-overlay__form:has(.nahal-search-overlay__input:focus) {
	border-block-end-color: var(--wp--preset--color--terracotta);
	box-shadow: 0 1px 0 var(--wp--preset--color--terracotta);
}

/* حلقهٔ تراکوتا رویِ زمینهٔ تیره کم‌رنگ است: ‎۲٫۲۹:۱‎ رویِ اسپرسو و ‎۲٫۹۸:۱‎
   رویِ مشکی، زیرِ کفِ ‎۳:۱‎ِ نشانه‌هایِ غیرمتنی. تراکوتایِ روشن همان‌جا
   ‎۴٫۹۸‎ و ‎۶٫۴۸‎ است — همان رنگی که منویِ کشویی از قبل دارد. هیرو رویِ عکس است،
   پس سفید، مثلِ برچسبِ بالایِ تیترش. */
:is(
	#footer,
	.nahal-showcase-story > .nahal-story,
	.nahal-home-fabric-band__content,
	.nahal-fabric-band__content,
	.nahal-editorial-hero,
	.nahal-collection-quote,
	.nahal-about-belief__panel
) :focus-visible {
	outline-color: var(--wp--preset--color--terracotta-light);
}

.nahal-hero :focus-visible {
	outline-color: var(--wp--preset--color--white);
}

/* هدفِ لمسیِ ۴۴px بی‌آنکه شکلِ کنترل بزرگ شود: یک لایهٔ نامرئیِ ۴۴×۴۴ وسطِ
   هر دکمه. پیش از این فلش‌ها ۳۴، قلبِ کارت ۳۶، حذفِ کشو ۳۶ و دکمه‌هایِ استپر ۳۸
   بودند. ‎left/top‎ِ فیزیکی عمدی است: با ‎translate‎ در راست‌به‌چپ هم وسط می‌ماند.
   ‎:where()‎ یعنی ‎position‎ِ موجود (مثلاً ‎absolute‎ِ قلب) همیشه می‌برد. */
:where(.nahal-featured__arrow, .nahal-cart-drawer__remove, .nahal-qty-stepper__btn) {
	position: relative;
}

:is(
	.nahal-roll__arrow,
	.nahal-featured__arrow,
	.nahal-cart-drawer__remove,
	.nahal-qty-stepper__btn,
	ul.products li.product .nahal-card-media .nahal-wishlist-btn
)::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 44px;
	height: 44px;
	transform: translate(-50%, -50%);
}

/* «حرکتِ کمتر» تا حالا فقط چرخشِ فلشِ مگامنو را می‌گرفت. ‎0.01ms‎ و نه صفر تا
   اگر اسکریپتی (از بلاکسی یا افزونه‌ها) منتظرِ ‎transitionend‎ است، هنوز برسد. بزرگ‌نماییِ
   کارت می‌ماند — دنبالِ نشانگر می‌رود، یعنی خودِ کاربر حرکتش می‌دهد — فقط
   بی انیمیشن. اسکرولِ نرمِ فلش‌ها در roll-arrows.js جدا خاموش می‌شود. */
@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}

/* لینکِ داخلِ متن فقط با رنگ از متنِ دورش جدا می‌شد: تراکوتا در برابرِ مشکی
   ‎۲٫۹۸:۱‎ است، زیرِ ‎۳:۱‎ی که رنگ‌به‌تنهایی برایِ نشان‌دادنِ لینک لازم دارد.
   پس خطِ زیر می‌گیرد، و چون خط کارِ نشان‌دادن را می‌کند، خودِ متن مشکی
   می‌ماند و تراکوتا به خط و حالتِ هاور می‌رود — تراکوتا کم‌تر پخش می‌شود و
   برایِ دکمهٔ خرید و حراج می‌ماند. فقط در متنِ بلندِ برگه‌هایِ قانونی و مجله؛
   ‎:not([class])‎ دکمه‌ها و لینک‌هایِ ساخته‌شده را بیرون نگه می‌دارد. */
:is(.nahal-legal__content, .nahal-magazine-single__content) :is(p, li) a:not([class]) {
	color: var(--wp--preset--color--ink);
	text-decoration: underline;
	text-decoration-color: var(--wp--preset--color--terracotta);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.3em;
}

:is(.nahal-legal__content, .nahal-magazine-single__content) :is(p, li) a:not([class]):hover {
	color: var(--wp--preset--color--terracotta);
}

/* --------------------------------------------------------------------------
   ۲۰) انگلیسی (LTR) — /en/
   همه‌چیزِ این بخش زیرِ ‎html[dir="ltr"]‎ یا ‎:lang(en)‎ است، پس آبشارِ فارسی
   دست نمی‌خورد (صفحهٔ فارسی پیکسل‌به‌پیکسل همان است؛ K.sh مقایسه می‌کند).
   چیزی که این‌جا نیامده، عمداً در بخش‌هایِ بالا با ویژگی‌هایِ منطقی
   (‎inset-inline-*‎، ‎text-align: start‎، ‎margin-inline-*‎) نوشته شده و هر دو جهت را
   می‌پوشاند.
   -------------------------------------------------------------------------- */

/* ---- تایپوگرافیِ لاتین ----
   ارتفاعِ خط و فاصله‌حرفیِ فارسی برایِ لاتین زیادی بازند: ۱٫۹ رویِ لاتین بندها را
   از هم می‌پاشد، و ‎0.22em‎ِ برچسب‌ها در ۱۳px یک نوارِ پراکنده می‌سازد. توکن‌ها را
   یک‌جا (رویِ ریشه) عوض می‌کنیم تا هر قاعده‌ای که از ‎var(--wp--custom--…)‎ می‌خواند
   خودبه‌خود لاتین شود؛ فونت‌ها همان می‌مانند (D7 — وزیرمتن و استعداد حرف‌هایِ لاتین
   هم دارند، در K.sh با CDP سنجیده شد).
   ‎--theme-line-height‎ هم باید این‌جا دوباره بنشیند: ‎:root‎ آن را از همان توکن
   می‌سازد و Blocksy مقدارِ حل‌شده را به فرزندان ارث می‌دهد. */
:root:lang(en) {
	--wp--custom--line-height--body: 1.65;
	--wp--custom--line-height--loose: 1.8;
	--wp--custom--line-height--heading: 1.25;
	--wp--custom--line-height--tight: 1.15;
	--wp--custom--tracking--label: 0.16em;
	--theme-line-height: var(--wp--custom--line-height--body);
}

/* ارتفاع‌هایِ خطِ دست‌نویس که برایِ فارسی (۲–۲٫۳) تنظیم شده بود. ‎:lang(en)‎ رویِ
   خودِ عنصر است نه رویِ ریشه، تا بندِ ‎lang="fa"‎ِ داخلِ همین ظرف‌ها فارسی بماند. */
.nahal-legal__content p:lang(en),
.nahal-legal__content li:lang(en),
.nahal-about-story p:lang(en) {
	line-height: 1.8;
}

.nahal-about-hero__lead:lang(en),
.nahal-about-values__cell p:lang(en),
.nahal-about-belief__panel p:last-child:lang(en),
.nahal-magazine-soon p:lang(en),
.woocommerce-order-received .woocommerce-thankyou-order-received:has(.nahal-thankyou-unpaid):lang(en) {
	line-height: 1.7;
}

.nahal-slogan p:lang(en),
.nahal-about-belief__heading:lang(en) {
	line-height: 1.3;
}

/* ---- سوییچرِ زبان ----
   در هر دو زبان یک‌شکل است (U11): «EN» در صفحهٔ فارسی هم همان قرصِ انگلیسی را دارد.
   ‎html[dir]‎ و نه ‎html[dir="ltr"]‎: وزنِ انتخابگر همان می‌ماند و رویِ ‎/‎ و ‎/en/‎ می‌نشیند.
   (تا قبل از S فقط انگلیسی استایل می‌گرفت تا دروازهٔ پیکسلیِ فارسی نشکند؛ تغییرِ
   فارسی عمدی است و baseline با دلیلش تازه شد: reports/S-persian/U11.diff.)
   هدر: قرصِ باریکِ خط‌مویی در انتهایِ ردیفِ منو، تا مثلِ یک «آیتمِ دیگر» خوانده نشود. */
html[dir] .nahal-lang-switcher--header > a {
	display: inline-flex;
	align-items: center;
	border: var(--nahal-hairline);
	border-radius: var(--wp--custom--radius--pill);
	padding: 2px 14px;
	font-size: var(--wp--preset--font-size--x-small);
	font-weight: 500;
	line-height: 1.7;
	letter-spacing: 0;
	text-transform: none;
	color: var(--wp--preset--color--muted);
}

html[dir] .nahal-lang-switcher--header > a:hover,
html[dir] .nahal-lang-switcher--header > a:focus-visible {
	border-color: var(--wp--preset--color--terracotta);
	color: var(--wp--preset--color--terracotta);
}

/* منویِ کشوییِ موبایل: یک خطِ جداکننده و فاصله، مثلِ «حسابِ من» (inc/header.php). */
html[dir] #offcanvas .nahal-lang-switcher--mobile {
	margin-block-start: var(--wp--preset--spacing--40);
	padding-block-start: var(--wp--preset--spacing--40);
	border-block-start: 1px solid rgba(255, 255, 255, 0.15);
}

/* فوتر: کنارِ کپی‌رایت، با یک خطِ عمودیِ کم‌رنگ. */
html[dir] .nahal-lang-switcher--footer {
	margin-inline-start: var(--wp--preset--spacing--30);
	padding-inline-start: var(--wp--preset--spacing--30);
	border-inline-start: 1px solid rgba(255, 255, 255, 0.2);
}

html[dir] .nahal-lang-switcher--footer .nahal-lang-switcher__link {
	color: var(--wp--preset--color--white);
	font-weight: 500;
	text-decoration: underline;
	text-underline-offset: 3px;
}

html[dir] .nahal-lang-switcher--footer .nahal-lang-switcher__link:hover {
	color: var(--wp--preset--color--terracotta-light);
}

/* ---- متنِ فارسیِ بدونِ پوشش در ظرفِ LTR ----
   جایگزینِ فارسی (D3) گاهی متنِ سادهٔ بی‌‎lang‎ است (نامِ ترم، فیلدِ تخت، ستونِ
   فوتر، گزینهٔ سفارشی‌ساز) — تا در صفتِ ‎title‎ و JSON هم بنشیند نمی‌شود پوشاندش. در
   ظرفِ LTR نقطه‌ها، پرانتزها و «» به سمتِ اشتباهِ جمله می‌پریدند
   («.از کالکشنِ بعدی» ← «از کالکشنِ بعدی.»). ‎unicode-bidi: plaintext‎ جهتِ هر بند را
   از اولین حرفِ قوی می‌خواند: بندِ فارسی RTL و بندِ انگلیسی LTR می‌شود، و چون
   ‎text-align: start‎ هم همان جهت را دنبال می‌کند، بندِ فارسی سمتِ راست می‌نشیند.
   ‎:where()‎ = وزنِ صفر، پس ‎.woocommerce-Price-amount‎ و ‎.nahal-ltr‎ با ‎isolate‎ِ خودشان
   می‌مانند، و ‎:not([dir])‎ جهتِ صریحِ ‎<span lang="fa" dir="rtl">‎ را دست نمی‌زند. */
:where(html[dir="ltr"] :is(h1, h2, h3, h4, h5, h6, p, li, dt, dd, td, th, label, legend, figcaption, address, blockquote, summary, cite, a, span, strong, em, small, button, select):not([dir])) {
	unicode-bidi: plaintext;
}

/* ---- استان و شهر (D4: فارسی می‌مانند) در فرمِ انگلیسی ----
   ‎<select>‎ و منویِ بازشوِ select2 (که بیرونِ فرم، زیرِ ‎<body>‎ ساخته می‌شود). نامِ
   «تهران» داخلِ فرمِ LTR از شروعِ خط می‌نشیند ولی هر مقدار جهتِ خودش را دارد. */
html[dir="ltr"] :is(
	#billing_state, #billing_city, #shipping_state, #shipping_city,
	.select2-selection__rendered, .select2-results__option, .select2-search__field
) {
	unicode-bidi: plaintext;
}

/* دکمهٔ «×»ی مُدال، کشوی سبد و لایهٔ جست‌وجو: در فارسی گوشهٔ شروعِ (راست) است و
   تیتر به آن می‌چسبد؛ در LTR همان گوشهٔ شروع چپ می‌شد و رویِ حرفِ اولِ «Your cart»
   می‌افتاد. قراردادِ انگلیسی گوشهٔ بالا‌راست است. */
html[dir="ltr"] .nahal-modal__close {
	inset-inline-start: auto;
	inset-inline-end: var(--wp--preset--spacing--40);
}

/* ---- «شاسیِ» رابط در انگلیسی چپ‌چین است ----
   ‎plaintext‎ بندِ فارسی را به سمتِ راست می‌برد (درست برایِ متنِ خواندنی، مثلِ
   برگهٔ قوانین). ولی در ستون‌هایِ فوتر، کارتِ محصول، منوها و فیلترها همان تیترِ
   فارسی کنارِ قیمتِ چپ‌چینِ انگلیسی زیگزاگ می‌شد. این‌جا فقط ‎text-align‎ فیزیکی
   می‌شود؛ جهتِ بند (نقطه، پرانتز، «») همان ‎plaintext‎ می‌ماند. */
html[dir="ltr"] :is(
	#footer,
	ul.products li.product,
	.nahal-mega-panel,
	.nahal-filter-panel,
	.nahal-cart-item,
	.nahal-cart-drawer__item,
	.nahal-legal__sidebar,
	.woocommerce-MyAccount-navigation,
	.ct-breadcrumbs,
	.product_meta,
	.summary .product_title
) {
	text-align: left;
}

/* ---- هدرِ موبایلِ انگلیسی: وردمارک و قلب (M13) ----
   ردیفِ موبایلِ Blocksy سه ستون دارد: ‎1fr auto 1fr‎. ستونِ کناری ۷۰px می‌شود و
   «قلب + سبد» (۴۰ + ۲۰ + ۴۰) در آن جا نمی‌گیرد؛ قلب به سمتِ لوگو سرریز می‌کند.
   وردمارکِ فارسی کوتاه است و زیرِ آن سرریز دیده نمی‌شود، ولی «Nahal Collection» در ۳۹۰px
   تا زیرِ قلب می‌رسید. ستون‌هایِ کناری به اندازهٔ محتوایشان، وردمارک در ستونِ میانی؛
   و اندازهٔ حرف با پهنایِ صفحه می‌رود پایین (۲۵px از ≈۴۴۶px به بالا). ‎#header‎ لازم
   است چون قاعدهٔ Blocksy (‎#header [data-column-set="3"] > div‎) شناسه دارد. */
html[dir="ltr"] #header [data-device="mobile"] [data-column-set="3"] > div {
	grid-template-columns: auto minmax(0, 1fr) auto;
}

html[dir="ltr"] #header [data-device="mobile"] .site-branding {
	margin-inline: 0;
}

html[dir="ltr"] #header [data-device="mobile"] .site-title {
	--theme-font-size: min(25px, 5.6vw);
}

html[dir="ltr"] #header [data-device="mobile"] .site-title a {
	white-space: nowrap;
}

/* ---- کارتِ محصول در عرضِ تبلت و دسکتاپِ باریکِ انگلیسی (m66) ----
   ردیف‌هایِ «قیمت ↔ رنگ‌ها» و «دسته ↔ ستاره‌ها» برایِ کارتِ ≈۲۱۰px با متنِ فارسیِ کوتاه
   جا می‌شد؛ «960,000 Toman» و «BLAZERS & COATS» (حروفِ درشت) از لبه بیرون می‌زدند و
   روی نقطه‌هایِ رنگ و ستاره‌ها می‌افتادند — در ۷۰۰ تا ≈۸۷۰px و در ۱۰۰۰ تا ≈۱۱۰۰px، یعنی هر
   جا که ستونِ کارت زیرِ ≈۲۶۰px بود. ملاکِ درست عرضِ خودِ کارت است نه صفحه: ظرفِ
   ‎container query‎ همان ‎li.product‎ است. زیرِ آن، ردیف‌ها زیرِ هم می‌روند.
   موبایل (≤۶۸۹px) قاعدهٔ خودش را دارد و این‌جا دست نمی‌خورد. ‎.sale-price‎ در Blocksy
   ‎inline-flex‎ و وسط‌چین است؛ تمام‌عرض که شد باید به چپ بچسبد. */
html[dir="ltr"] ul.products li.product {
	container-type: inline-size;
}

@media (min-width: 690px) {
	@container (max-width: 259px) {
		ul.products li.product .price {
			grid-area: 3 / 1 / 4 / 3;
		}

		ul.products li.product .price .sale-price {
			justify-content: flex-start;
		}

		ul.products li.product .nahal-card-colors {
			grid-area: 4 / 1 / 5 / 3;
			justify-self: start;
		}

		ul.products li.product .entry-meta {
			grid-area: 5 / 1 / 6 / 3;
		}

		ul.products li.product .ct-woo-card-rating {
			grid-area: 6 / 1 / 7 / 3;
			justify-self: start;
		}

		ul.products li.product .ct-woo-card-actions {
			grid-area: 7 / 1 / 8 / 3;
		}
	}
}

/* ---- استان و شهرِ فارسی در بلوک‌هایِ نشانیِ انگلیسی (m74) ----
   D4: استان و شهر فارسی می‌مانند و داخلِ ‎<span lang="fa" dir="rtl">‎ می‌نشینند. اما
   ‎unicode-bidi: plaintext‎ (بالا) جهتِ هر خطِ ‎address‎ را از اولین حرفِ قوی می‌خواند، خطی که
   فقط فارسی دارد RTL می‌شود و ‎text-align: start‎ آن را به لبهٔ راستِ کارت می‌چسباند، میانِ
   خطوطِ چپ‌چینِ انگلیسی («R Smoke»، سپس «اصفهان» سمتِ راست، سپس «Maryam Passage»).
   جهتِ متن (نقطه، پرانتز) همان می‌ماند؛ فقط خطِ ‎text-align‎ فیزیکی چپ می‌شود. همین برایِ
   مقدارِ انتخاب‌شدهٔ ‎select2‎ در فرمِ تسویه‌حساب و نشانیِ حساب و برایِ گزینه‌هایِ فهرستِ
   بازشو (که بیرونِ فرم، زیرِ ‎<body>‎ ساخته می‌شود). */
html[dir="ltr"] address,
html[dir="ltr"] :is(.select2-selection__rendered, .select2-results__option) {
	text-align: left;
}

/* ---- برچسبِ تنوع در انگلیسی: «Size: Size 1»، نه «Size : Size 1» (m70) ----
   افزونهٔ سوآچ برچسب و نامِ انتخاب‌شده را دو عنصرِ ‎inline-block‎ با ‎margin: 0 2px‎ می‌چیند
   و دونقطه در اولِ متنِ دومی است؛ در فارسی همان فاصله طبیعی است، در لاتین دونقطه از
   کلمه‌اش جدا می‌افتد. حاشیه‌هایِ دو طرفِ دونقطه را برمی‌داریم؛ فاصله بعد از دونقطه
   در خودِ متن هست. */
html[dir="ltr"] .woo-variation-swatches.wvs-show-label .variations :is(th, td) label {
	margin-inline-end: 0;
}

html[dir="ltr"] .woo-variation-swatches.wvs-show-label .variations :is(th, td) .woo-selected-variation-item-name {
	margin-inline-start: 0;
}
