/* Elementor Menu Cart – Quantity Box
   مقادیر پیش‌فرض (ظاهر مشابه باکس تعداد صفحه محصول)؛ همه از تنظیمات ویجت قابل تغییرند. */

/* ---------- نمایش / مخفی بودن بر اساس تنظیمات ویجت ---------- */
.elementor-widget-woocommerce-menu-cart:not(.ecq-show-qty-yes) .ecq-product-qty {
	display: none;
}
.elementor-widget-woocommerce-menu-cart.ecq-show-qty-yes.ecq-hide-static-qty-yes .elementor-menu-cart__product-price .product-quantity {
	display: none;
}

/* ---------- چیدمان ردیف قیمت + باکس تعداد ---------- */
.ecq-show-qty-yes .elementor-menu-cart__product-price {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}
/* ظرف "نامرئی" است: باکس و پیغام مستقیماً آیتم‌های flex ردیف قیمت می‌شوند.
   باکس عرض خودش را دارد و پیغام در خط بعد با کل عرض موجود نمایش داده می‌شود. */
.ecq-product-qty {
	display: contents;
}

/* ---------- باکس ---------- */
.ecq-qty {
	display: inline-flex;
	align-items: center;
	box-sizing: border-box;
	background: #fff;
	border-radius: 12px;
	box-shadow: -5px 5px 20px -10px #ccc;
	padding: 5px;
	gap: 2px;
	transition: opacity .2s;
}
.elementor-menu-cart__product.ecq-is-loading .ecq-qty {
	opacity: .5;
	pointer-events: none;
}

/* ---------- دکمه‌ها (روی استایل پیش‌فرض دکمه‌های قالب غلبه می‌کنیم) ---------- */
.ecq-qty .ecq-qty__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 28px;
	height: 28px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 8px;
	box-shadow: none;
	background: var(--ecq-btn-bg, transparent);
	color: var(--ecq-btn-color, #333);
	cursor: pointer;
	line-height: 1;
	transition: color .2s, background-color .2s;
}
.ecq-qty .ecq-qty__btn:hover,
.ecq-qty .ecq-qty__btn:focus {
	background: var(--ecq-btn-hover-bg, transparent);
	color: var(--ecq-btn-hover-color, #82B92A);
	outline: none;
}
.ecq-qty .ecq-qty__btn:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: -2px;
}
.ecq-qty .ecq-qty__btn:disabled {
	background: var(--ecq-btn-bg, transparent);
	color: var(--ecq-btn-disabled-color, #bbb);
	cursor: not-allowed;
}
.ecq-qty .ecq-qty__btn svg {
	width: 18px;
	height: 18px;
	fill: currentColor;
}

/* ---------- ورودی ---------- */
.ecq-qty .ecq-qty__input {
	box-sizing: border-box;
	width: 40px;
	height: 28px;
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 8px;
	box-shadow: none;
	background: var(--ecq-input-bg, transparent);
	color: var(--ecq-input-color, inherit);
	font: inherit;
	text-align: center;
	-moz-appearance: textfield;
}
.ecq-qty .ecq-qty__input:focus {
	outline: none;
	background: var(--ecq-input-focus-bg, #f7f7f7);
	box-shadow: none;
}

/* ---------- پیام خطا ---------- */
.ecq-error {
	/* تمام عرض ستون محصول (از ابتدای ستون تا انتها)؛ با آیتم بعدی قاطی نمی‌شود چون در ردیف جدا می‌آید */
	flex: none;
	width: 100%;
	overflow-wrap: anywhere;
	box-sizing: border-box;
	padding: 6px 10px;
	border-radius: 8px;
	background: #fdecea;
	color: #b3261e;
	font-size: 12px;
	line-height: 1.7;
}
.ecq-error:empty {
	display: none;
}
/* پیش‌نمایش خطا برای استایل‌دهی در ویرایشگر */
.elementor-editor-active .ecq-preview-error-yes .ecq-error:empty {
	display: block;
}
.elementor-editor-active .ecq-preview-error-yes .ecq-error:empty::before {
	content: attr(data-sample);
}

/* ---------- آیکن‌های دکمه حذف ----------
   ماسک هر آیکن در متغیر --ecq-rm-mask است و هم برای دکمه‌ی گوشه (:before) و هم برای دکمه‌ی داخل باکس استفاده می‌شود.
   آیکن پیش‌فرض المنتور (×) در حالت گوشه با دو خط :before/:after ساخته می‌شود؛ برای بقیه :before به ماسک تبدیل
   و :after مخفی می‌شود (رنگ همان background است). */
.elementor-widget-woocommerce-menu-cart {
	--ecq-rm-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 6.4L17.6 5 12 10.6 6.4 5 5 6.4 10.6 12 5 17.6 6.4 19 12 13.4 17.6 19 19 17.6 13.4 12z'/%3E%3C/svg%3E");
}
.elementor-widget-woocommerce-menu-cart.ecq-remove-icon-trash {
	--ecq-rm-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M9 3h6l1 1h4v2H4V4h4l1-1zM6 8h12l-1 13H7L6 8zm4 2v9h1.5v-9H10zm2.5 0v9H14v-9h-1.5z'/%3E%3C/svg%3E");
}
.elementor-widget-woocommerce-menu-cart.ecq-remove-icon-circle {
	--ecq-rm-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill-rule='evenodd' d='M12 2a10 10 0 100 20 10 10 0 000-20zm4.7 12.3l-1.4 1.4-3.3-3.3-3.3 3.3-1.4-1.4 3.3-3.3-3.3-3.3 1.4-1.4 3.3 3.3 3.3-3.3 1.4 1.4-3.3 3.3 3.3 3.3z'/%3E%3C/svg%3E");
}
.elementor-widget-woocommerce-menu-cart.ecq-remove-icon-minus {
	--ecq-rm-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 11h16v2H4z'/%3E%3C/svg%3E");
}

/* دکمه‌ی گوشه (رفتار قبلی): آیکن‌های غیر از × */
.ecq-remove-icon-trash .elementor-menu-cart__product-remove:before,
.ecq-remove-icon-circle .elementor-menu-cart__product-remove:before,
.ecq-remove-icon-minus .elementor-menu-cart__product-remove:before,
.ecq-remove-icon-custom .elementor-menu-cart__product-remove:before {
	width: 60%;
	height: 60%;
	left: 20%;
	top: 20%;
	margin: 0;
	transform: none;
	border-radius: 0;
	-webkit-mask-image: var(--ecq-rm-mask);
	mask-image: var(--ecq-rm-mask);
	-webkit-mask-repeat: no-repeat;
	mask-repeat: no-repeat;
	-webkit-mask-position: center;
	mask-position: center;
	-webkit-mask-size: contain;
	mask-size: contain;
}
.ecq-remove-icon-trash .elementor-menu-cart__product-remove:after,
.ecq-remove-icon-circle .elementor-menu-cart__product-remove:after,
.ecq-remove-icon-minus .elementor-menu-cart__product-remove:after,
.ecq-remove-icon-custom .elementor-menu-cart__product-remove:after {
	display: none;
}

/* ---------- دکمه‌ی حذف داخل باکس تعداد (پیش‌فرض) ---------- */
/* ترتیب پیش‌فرض (RTL): − ، عدد ، + ، حذف  (با سوئیچ "Swap +/−" جای + و − عوض می‌شود) */
.ecq-qty .ecq-qty__btn--minus { order: 1; }
.ecq-qty .ecq-qty__input { order: 2; }
.ecq-qty .ecq-qty__btn--plus { order: 3; }
.ecq-qty .ecq-qty__remove { order: 4; }
.ecq-swap-pm-yes .ecq-qty .ecq-qty__btn--plus { order: 1; }
.ecq-swap-pm-yes .ecq-qty .ecq-qty__btn--minus { order: 3; }

.ecq-qty__remove {
	display: none;
	align-items: center;
	justify-content: center;
	gap: 6px;
	box-sizing: border-box;
	flex: 0 0 auto;
	height: 28px;
	margin: 0;
	margin-inline-start: 6px;
	padding: 0 12px;
	border: 1px solid var(--ecq-rm-border, #f1c4c4);
	border-radius: 8px;
	background: var(--ecq-rm-bg, #fff);
	color: var(--ecq-rm-color, #d63638);
	box-shadow: 0 2px 8px -4px rgba(0, 0, 0, .25);
	font: inherit;
	font-size: 13px;
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
	transition: color .2s, background-color .2s, border-color .2s, box-shadow .2s;
}
.ecq-show-qty-yes.ecq-remove-loc-box .ecq-qty .ecq-qty__remove {
	display: inline-flex;
}
.elementor-widget-woocommerce-menu-cart:not(.elementor-menu-cart--show-remove-button-yes) .ecq-qty__remove {
	display: none;
}
.ecq-qty__remove:hover,
.ecq-qty__remove:focus {
	background: var(--ecq-rm-hover-bg, #fdecea);
	border-color: var(--ecq-rm-hover-border, #e79a9a);
	color: var(--ecq-rm-hover-color, #b3261e);
	outline: none;
}
.ecq-qty__remove:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}
.ecq-qty__remove-icon {
	flex: 0 0 auto;
	width: var(--ecq-rm-icon-size, 14px);
	height: var(--ecq-rm-icon-size, 14px);
	background: currentColor;
	-webkit-mask: var(--ecq-rm-mask) center / contain no-repeat;
	mask: var(--ecq-rm-mask) center / contain no-repeat;
}
.ecq-qty__remove-text::before {
	content: var(--ecq-rm-text, "حذف");
}
.ecq-rm-content-text .ecq-qty__remove-icon,
.ecq-rm-content-icon .ecq-qty__remove-text {
	display: none;
}

/* وقتی دکمه‌ی حذف داخل باکس است، دکمه‌ی گوشه و فضای رزروشده‌ی آن حذف می‌شود */
.ecq-show-qty-yes.ecq-remove-loc-box .elementor-menu-cart__product-remove {
	display: none;
}
.ecq-show-qty-yes.ecq-remove-loc-box .elementor-menu-cart__product {
	padding-inline-end: 0;
}

/* ---------- دکمه حذف: فقط ترنسفورم افست (کنترل‌های Offset ویجت) ---------- */
.elementor-menu-cart__product-remove {
	translate: var(--ecq-remove-x, 0) var(--ecq-remove-y, 0);
}

/* ---------- سبد خالی (محتوای دلخواه) ----------
   بلوک .ecq-empty به‌صورت استاتیک داخل ویجت است؛ فقط وقتی پیام خالی بودن ووکامرس داخل مینی‌کارت هست دیده می‌شود. */
.ecq-empty { display: none; padding: 24px 16px; text-align: center; }
.elementor-menu-cart__main:has(.woocommerce-mini-cart__empty-message) .ecq-empty,
.ecq-is-empty .ecq-empty { display: block; }   /* ecq-is-empty را ecq.js می‌گذارد (فرانتی که fragments خالی دارد یا سبد خالی است) */
.ecq-empty-custom-yes .woocommerce-mini-cart__empty-message { display: none; }
.ecq-empty__img { display: block; max-width: 100%; height: auto; margin: 0 auto 16px; }
.ecq-empty__title { margin: 0 0 6px; font-size: 17px; font-weight: 700; line-height: 1.7; }
.ecq-empty__sub { margin: 0 0 16px; font-size: 14px; line-height: 1.8; opacity: .8; }
.ecq-empty__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px 22px;
	border-radius: 12px;
	background: #0865fe;
	color: #fff;
	font-size: 14px;
	font-weight: 700;
	text-decoration: none;
	transition: background-color .2s, color .2s;
}
.ecq-empty__btn:hover { background: #0654d4; color: #fff; }

/* قیمت عادی خط‌خورده بدون نماد ارز */
.elementor-menu-cart__product-price del .woocommerce-Price-currencySymbol, .elementor-menu-cart__product del .woocommerce-Price-currencySymbol { display: none; }

/* ===== چیدمان کارتی آیتم (مثل سبد خرید؛ پیش‌فرض) =====
   ستون راست: تصویر | ستون چپ: عنوان + دکمه‌ی حذف (هم‌راستا در یک ردیف؛ عنوان به اندازه‌ی «عرض ستون − عرض دکمه‌ی حذف» است و اگر طولانی شود دو خطی می‌شود)
   و زیرش متغیرها (هر کدام یک خط) | پایین راست: باکس تعداد | پایین چپ: قیمت. بدون خط جداکننده‌ی بین محصولات و داخل آیتم.
   (ترتیب راست/چپ از جهت صفحه می‌آید.) */
.elementor-widget-woocommerce-menu-cart {
	--ecq-var-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M21.4 11.6l-9-9C12.1 2.2 11.6 2 11 2H4c-1.1 0-2 .9-2 2v7c0 .6.2 1.1.6 1.4l9 9c.8.8 2 .8 2.8 0l7-7c.8-.8.8-2 0-2.8zM6.5 8C5.7 8 5 7.3 5 6.5S5.7 5 6.5 5 8 5.7 8 6.5 7.3 8 6.5 8z'/%3E%3C/svg%3E");
}
/* فاصله‌ی محصولات از هم (بدون خط جداکننده) */
.ecq-card-yes .elementor-menu-cart__products {
	display: flex !important;
	flex-direction: column;
	gap: var(--ecq-item-gap, 14px);
}
.ecq-card-yes .elementor-menu-cart__product {
	position: relative;
	display: grid !important;
	grid-template-columns: var(--ecq-card-img-w, 84px) minmax(0, 1fr);
	grid-template-areas: "img name" "price price";
	column-gap: var(--ecq-card-colgap, 12px);
	row-gap: var(--ecq-card-rowgap, 6px);
	align-items: start;
	margin: 0 !important;
	border: var(--ecq-card-bw, 0) solid var(--ecq-card-bc, transparent) !important;
	border-radius: var(--ecq-card-br, 0);
	box-shadow: none;
}
.ecq-card-yes .elementor-menu-cart__product::before,
.ecq-card-yes .elementor-menu-cart__product::after { display: none !important; }
.ecq-card-yes .elementor-menu-cart__product-image {
	grid-area: img;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}
.ecq-card-yes .elementor-menu-cart__product-image img { display: block; width: 100%; height: auto; object-fit: contain; }
.ecq-card-yes .elementor-menu-cart__product-name {
	grid-area: name;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas: "title rm" "vars vars";
	align-items: start;
	column-gap: var(--ecq-rm-gap, 8px);
	min-width: 0;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	line-height: 1.7;
	font-weight: 700;
	overflow-wrap: anywhere;
}
/* عنوان و دکمه‌ی حذف هم‌راستا در یک ردیف؛ ستون دکمه به اندازه‌ی محتوای خود دکمه است و عنوان بقیه‌ی عرض را می‌گیرد (طولانی شد دو خطی می‌شود و در دکمه فرو نمی‌رود) */
.ecq-card-yes .elementor-menu-cart__product-name > a,
.ecq-card-yes .elementor-menu-cart__product-name > .ecq-title { grid-area: title; min-width: 0; color: inherit; text-decoration: none; }
.ecq-card-yes .elementor-menu-cart__product-name > .ecq-head-remove { grid-area: rm; justify-self: end; }
/* متغیرها: تمام عرض ستون، زیر ردیف عنوان/دکمه */
.ecq-card-yes .elementor-menu-cart__product-name dl.variation {
	grid-area: vars;
	display: grid;
	grid-template-columns: max-content minmax(0, 1fr);
	column-gap: 6px;
	row-gap: 2px;
	margin: 6px 0 0;
	padding: 0;
	font-size: 12px;
	font-weight: 400;
	line-height: 1.7;
}.ecq-card-yes dl.variation dt,
.ecq-card-yes dl.variation dd { display: flex; align-items: center; gap: 6px; margin: 0; padding: 0; float: none; width: auto; }
.ecq-card-yes dl.variation dd p { margin: 0; }
.ecq-card-yes dl.variation dt::before {
	content: "";
	display: none;
	flex: 0 0 auto;
	width: 14px;
	height: 14px;
	background-color: currentColor;
	-webkit-mask: var(--ecq-var-mask) center / contain no-repeat;
	mask: var(--ecq-var-mask) center / contain no-repeat;
}
.ecq-card-var-ico-yes dl.variation dt::before { display: inline-block; }

.ecq-card-yes .elementor-menu-cart__product-price {
	grid-area: price;
	display: flex !important;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	width: auto !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}
.ecq-card-yes .elementor-menu-cart__product-price .quantity { display: block; order: 1; }
.ecq-card-yes .ecq-qty { order: -1; }
.ecq-card-yes .ecq-error { order: 3; }

/* دکمه‌ی حذف: در حالت کارتی کنار عنوان (دکمه‌ی .ecq-head-remove داخل نام محصول) نمایش داده می‌شود و دکمه‌ی داخل باکس تعداد مخفی است */
.ecq-head-remove { display: none; }
.ecq-card-yes.ecq-show-qty-yes.ecq-remove-loc-box.elementor-menu-cart--show-remove-button-yes .ecq-head-remove { display: inline-flex; margin: 0; }
.ecq-card-yes.ecq-show-qty-yes.ecq-remove-loc-box .ecq-qty .ecq-qty__remove { display: none; }
/* بین محصولات و داخل آیتم هیچ خطی نباشد */
.ecq-card-yes .elementor-menu-cart__products,
.ecq-card-yes .elementor-menu-cart__product-name,
.ecq-card-yes .elementor-menu-cart__product-price,
.ecq-card-yes .elementor-menu-cart__product-image { border: 0 !important; }

/* ویژگی‌های تنوع زیر عنوان (انتخابی): بدون گزینه، عنوان کامل تنوع و بدون لیست اجباری ویژگی‌ها؛ با گزینه، عنوان محصول والد + ویژگی‌ها زیر آن */
.ecq-t-base,
.ecq-attrs-extra { display: none; }
.ecq-attrs-yes .ecq-t-full { display: none; }
.ecq-attrs-yes .ecq-t-base { display: inline; }
.ecq-attrs-yes .ecq-attrs-extra { display: contents; }
