
/* Current product prices use the brand red; former prices retain muted gray. */
body .price,
body .price ins,
body .debackers-wishlist-item__price,
body .debackers-wishlist-item__price ins {
	color: var(--wp--preset--color--sale);
}

body .price del,
body .debackers-wishlist-item__price del {
	color: var(--wp--preset--color--muted);
	opacity: 1;
}


/* ── شريط الأرشيف والتصفيات المفعّلة ─────────────────────────── */

.woo-listing-top {
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--30);
}

.debackers-catalog__open {
	align-items: center;
	background: transparent;
	border: 1px solid var(--wp--preset--color--ink);
	border-radius: 2px;
	color: var(--wp--preset--color--ink);
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	font-size: var(--wp--preset--font-size--sm, 14px);
	font-weight: 600;
	gap: var(--wp--preset--spacing--20);
	min-block-size: 44px;
	padding-block: 0;
	padding-inline: var(--wp--preset--spacing--40);
	text-decoration: none;
}

.debackers-catalog__open:focus-visible,
.debackers-filter__close:focus-visible,
.debackers-chip:focus-visible,
.debackers-card-color:focus-visible,
.debackers-card-size:focus-visible,
.debackers-card-gallery__dot:focus-visible,
.debackers-card-gallery__arrow:focus-visible {
	outline: 2px solid var(--wp--preset--color--ink);
	outline-offset: 2px;
}

.debackers-catalog__badge {
	background: var(--wp--preset--color--ink);
	border-radius: 999px;
	color: var(--wp--preset--color--surface);
	font-size: 12px;
	line-height: 1;
	min-inline-size: 22px;
	padding: 5px 7px;
	text-align: center;
}

.debackers-catalog__chips {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20);
	list-style: none;
	margin-block: 0 var(--wp--preset--spacing--50);
	margin-inline: 0;
	padding: 0;
}

.debackers-chip {
	align-items: center;
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 999px;
	color: var(--wp--preset--color--ink);
	display: inline-flex;
	font-size: var(--wp--preset--font-size--sm, 14px);
	gap: var(--wp--preset--spacing--20);
	max-inline-size: 100%;
	min-block-size: 44px;
	padding-block: var(--wp--preset--spacing--10);
	padding-inline: var(--wp--preset--spacing--40);
	text-decoration: none;
}

/* رسالة «لا توجد منتجات»: أيقونة WooCommerce مطلقة على بعد 18px من بداية السطر، وحشوة البداية
   تنزل إلى 15px على الجوال فتقع الأيقونة فوق أول كلمة. نضمن مساحة الأيقونة (TASK-0040). */
.woocommerce-no-products-found .woocommerce-info {
	padding-inline-start: 46px;
}

.debackers-chip__label {
	min-inline-size: 0;
	overflow-wrap: anywhere;
}

.debackers-chip__remove {
	font-size: 18px;
	line-height: 1;
}

.debackers-chip--clear {
	background: transparent;
	border-color: transparent;
	text-decoration: underline;
}

/* عند فشل الطلب يُخفي السكربت النتائج السابقة؛ قواعد الشبكة لا تُبقيها ظاهرة. */
:where(.products, .ct-pagination, .woocommerce-pagination, .woocommerce-result-count, .woocommerce-info, .woocommerce-no-products-found)[hidden] {
	display: none !important;
}

.debackers-catalog__loading {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--sm, 14px);
	margin-block: 0 var(--wp--preset--spacing--30);
}

.debackers-catalog-is-loading .products {
	opacity: 0.5;
	pointer-events: none;
	transition: opacity 200ms ease;
}

.debackers-catalog__error {
	background: var(--wp--preset--color--surface);
	border-inline-start: 4px solid var(--wp--preset--color--sale);
	margin-block: 0 var(--wp--preset--spacing--50);
	padding: var(--wp--preset--spacing--40);
}

.debackers-catalog__error p {
	margin-block: 0 var(--wp--preset--spacing--30);
}

.debackers-catalog__retry,
.debackers-filter__apply {
	background: var(--wp--preset--color--ink);
	border: 0;
	border-radius: 2px;
	color: var(--wp--preset--color--surface);
	cursor: pointer;
	font: inherit;
	font-weight: 600;
	min-block-size: 44px;
	padding-inline: var(--wp--preset--spacing--50);
}

/* ── درج التصفية: dialog أصلي ومجموعات قابلة للطي بتفاصيل/ملخص أصليين ── */

.debackers-filter {
	background: var(--wp--preset--color--surface);
	block-size: 100dvh;
	border: 0;
	color: var(--wp--preset--color--ink);
	inline-size: min(420px, 100vw);
	inset-block: 0;
	inset-inline: 0 auto;
	margin: 0;
	max-block-size: 100dvh;
	max-inline-size: 100vw;
	padding: 0;
}

.debackers-filter::backdrop {
	background: rgba(28, 28, 28, 0.45);
}

/* بلا سكربت (أو بلا واجهات المتصفح اللازمة): رابط الفتح يستهدف #debackers-filter فيظهر الدرج
   لوحةً ثابتة فوق الصفحة، ورابط الإغلاق يعيد الهدف إلى رابط الفتح. مع السكربت يُفتح نافذة modal. */
.debackers-filter:target:not([open]) {
	box-shadow: 0 0 0 100vmax rgba(28, 28, 28, 0.45);
	display: block;
	position: fixed;
	z-index: 100000;
}

.debackers-filter__form {
	display: flex;
	flex-direction: column;
	block-size: 100%;
}

.debackers-filter__head,
.debackers-filter__foot {
	align-items: center;
	display: flex;
	gap: var(--wp--preset--spacing--30);
	padding-block: var(--wp--preset--spacing--30);
	padding-inline: var(--wp--preset--spacing--50);
}

.debackers-filter__head {
	border-block-end: 1px solid var(--wp--preset--color--line);
	justify-content: space-between;
}

.debackers-filter__title {
	font-size: var(--wp--preset--font-size--md, 18px);
	margin: 0;
}

.debackers-filter__close {
	align-items: center;
	background: transparent;
	border: 0;
	color: var(--wp--preset--color--ink);
	cursor: pointer;
	display: inline-flex;
	justify-content: center;
	min-block-size: 44px;
	min-inline-size: 44px;
	padding: 0;
	text-decoration: none;
}

.debackers-filter__body {
	flex: 1;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding-block: var(--wp--preset--spacing--20) var(--wp--preset--spacing--40);
	padding-inline: var(--wp--preset--spacing--50);
}

.debackers-filter__foot {
	border-block-start: 1px solid var(--wp--preset--color--line);
	/* مناطق أمان الجوال: أزرار ثابتة فوق شريط النظام. */
	padding-block-end: calc(var(--wp--preset--spacing--30) + env(safe-area-inset-bottom, 0px));
}

.debackers-filter__apply {
	flex: 1;
}

.debackers-filter__clear {
	align-items: center;
	color: var(--wp--preset--color--ink);
	display: inline-flex;
	min-block-size: 44px;
	padding-inline: var(--wp--preset--spacing--30);
}

/* مجموعات قابلة للطي: العنوان صف 44px، والملخص قيمه المختارة أو «الكل». */
.debackers-filter__group {
	border-block-end: 1px solid var(--wp--preset--color--line);
	margin: 0;
	padding: 0;
}

.debackers-filter__summary-row {
	align-items: center;
	cursor: pointer;
	display: flex;
	gap: var(--wp--preset--spacing--20);
	list-style: none;
	min-block-size: 52px;
	padding-block: var(--wp--preset--spacing--10);
}

.debackers-filter__summary-row::-webkit-details-marker {
	display: none;
}

.debackers-filter__summary-label {
	flex: none;
	font-size: var(--wp--preset--font-size--base, 15px);
	font-weight: 600;
}

.debackers-filter__summary {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--sm, 13px);
	margin-inline-start: auto;
	max-inline-size: 65%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.debackers-filter__chevron {
	color: var(--wp--preset--color--muted);
	flex: none;
	transition: transform 120ms ease;
}

.debackers-filter__group[open] > .debackers-filter__summary-row .debackers-filter__chevron {
	transform: rotate(180deg);
}

.debackers-filter__fieldset {
	border: 0;
	margin: 0;
	min-inline-size: 0;
	padding-block: 0 var(--wp--preset--spacing--30);
	padding-inline: 0;
}

.debackers-filter__choices {
	display: flex;
	flex-wrap: wrap;
	gap: var(--wp--preset--spacing--20);
}

/* قوائم عمودية: التصنيفات ونطاقات السعر. */
.debackers-filter__choices--stack {
	align-items: stretch;
	flex-direction: column;
}

.debackers-filter__choice {
	cursor: pointer;
	display: inline-flex;
	max-inline-size: 100%;
	position: relative;
}

/* «الكل»: خانة مع سكربت التصفية، ورابط مسح المجموعة بدونه (TASK-0044). */
.debackers-filter__choice.debackers-filter__all-check,
.debackers-filter-enhanced .debackers-filter__choice.debackers-filter__all-link {
	display: none;
}

.debackers-filter-enhanced .debackers-filter__choice.debackers-filter__all-check {
	display: inline-flex;
}

.debackers-filter__all-link {
	color: var(--wp--preset--color--ink);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.debackers-filter__choice--child {
	margin-inline-start: 20px;
}

/* الإدخال الأصلي يبقى في شجرة الإتاحة وتركيز لوحة المفاتيح؛ الشكل على الصندوق بعده. */
.debackers-filter__choice input {
	block-size: 1px;
	inline-size: 1px;
	inset-block-start: 0;
	inset-inline-start: 0;
	margin: 0;
	opacity: 0;
	position: absolute;
}

.debackers-filter__box {
	align-items: center;
	background: var(--wp--preset--color--surface);
	border: 1px solid rgba(20, 28, 38, 0.22);
	border-radius: 2px;
	display: inline-flex;
	gap: var(--wp--preset--spacing--20);
	justify-content: center;
	max-inline-size: 100%;
	min-block-size: 44px;
	min-inline-size: 44px;
	overflow-wrap: anywhere;
	padding-block: var(--wp--preset--spacing--10);
	padding-inline: var(--wp--preset--spacing--30);
	text-align: start;
}

.debackers-filter__name {
	min-inline-size: 0;
}

/* الاختيار لا يعتمد على اللون وحده: علامة صح ظاهرة، وحدّ أغلظ، وخط عريض. مكان العلامة
   محجوز دائمًا حتى لا يتحرك الصندوق عند التبديل. */
.debackers-filter__tick {
	flex: none;
	visibility: hidden;
}

.debackers-filter__choice input:checked + .debackers-filter__box {
	border-color: var(--wp--preset--color--ink);
	box-shadow: 0 0 0 1px var(--wp--preset--color--ink) inset;
	font-weight: 700;
}

.debackers-filter__choice input:checked + .debackers-filter__box .debackers-filter__tick {
	visibility: visible;
}

.debackers-filter__choice input:focus-visible + .debackers-filter__box {
	outline: 2px solid var(--debackers-focus, var(--wp--preset--color--ink));
	outline-offset: 2px;
}

.debackers-filter__swatch {
	background: var(--debackers-swatch-color);
	block-size: 24px;
	border: 1px solid rgba(20, 28, 38, 0.22);
	flex: none;
	inline-size: 24px;
}

/* Equal geometry within each group (TASK-0047). A responsive grid gives every choice of a group
   the same width, rows share the tallest height, and the tick is pinned in a corner so neither
   selection nor a bolder label resizes a box. Short values (3XL) never wrap. Groups differ from
   each other on purpose: a category label needs more room than «S». */
.debackers-filter__choices:is(.debackers-filter__choices--compact, .debackers-filter__choices--values, .debackers-filter__choices--swatches, .debackers-filter__choices--availability) {
	display: grid;
	gap: var(--wp--preset--spacing--20);
	grid-auto-rows: 1fr;
}

/* TASK-0053: 116px minimum (was 104px), so the phone drawer uses two columns and names such as «قميص كم طويل»
   stay on one line at 15px, also when a selected box turns bold; wider drawers still get more columns. */
.debackers-filter__choices--compact {
	grid-template-columns: repeat(auto-fill, minmax(116px, 1fr));
}

/* TASK-0048: compact size boxes (about 52px, 40px high, still above the 24px target minimum); the
   text is centered with symmetric padding because the tick is pinned in a corner. */
.debackers-filter__choices--values {
	grid-template-columns: repeat(auto-fill, minmax(52px, 1fr));
}

/* «عرض الكل» (category) and «الكل» (groups) centred on their full-width row (TASK-0081 owner screenshots 2–3); the tick
   stays pinned in its corner, so centring moves only the label. Three classes: outranks the availability start rule. */
.debackers-filter__choices.debackers-filter__all-centered .debackers-filter__box {
	justify-content: center;
	padding-inline: 20px;
	text-align: center;
}

/* «المجموعات»: a modest gap between «الكل» and the first collection, and slightly larger labels (TASK-0081). */
.debackers-filter__choices.debackers-filter__collections-all {
	margin-block-end: var(--wp--preset--spacing--20);
}

:is(.debackers-filter__collections-all, .debackers-filter__collections) .debackers-filter__name {
	font-size: 1.08em;
}

.debackers-filter__collections .debackers-filter__count {
	font-size: 12px;
}

/* «المجموعات» (TASK-0076): one readable full-width row per collection, not the numeric size grid. */
.debackers-filter__choices.debackers-filter__choices--values.debackers-filter__collections {
	grid-template-columns: minmax(0, 1fr);
}

.debackers-filter__choices.debackers-filter__choices--values.debackers-filter__collections .debackers-filter__box {
	justify-content: space-between;
	min-block-size: 44px;
	padding-inline: var(--wp--preset--spacing--20) 20px;
	text-align: start;
}

/* TASK-0048: four color choices per row in the phone drawer; swatch above a readable label. Below
   300px of drawer width (very narrow screens or zoom) the grid reflows to fewer, wider columns. */
.debackers-filter__choices--swatches {
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

@media (max-width: 319px) {
	.debackers-filter__choices--swatches {
		grid-template-columns: repeat(auto-fill, minmax(64px, 1fr));
	}
}

.debackers-filter__choices--availability {
	grid-template-columns: minmax(0, 1fr);
}

.debackers-filter__choices:is(.debackers-filter__choices--compact, .debackers-filter__choices--values, .debackers-filter__choices--swatches, .debackers-filter__choices--availability) :is(.debackers-filter__choice, .debackers-filter__choice--child) {
	display: flex;
	/* Blocksy gives labels a bottom margin except the last one, which made the final box taller. */
	margin: 0;
	min-inline-size: 0;
}

/* Keep the «الكل» script/no-script pair (D-113) exclusive inside the grid groups. */
.debackers-filter__choices:is(.debackers-filter__choices--compact, .debackers-filter__choices--values, .debackers-filter__choices--swatches, .debackers-filter__choices--availability) .debackers-filter__all-check,
.debackers-filter-enhanced .debackers-filter__choices:is(.debackers-filter__choices--compact, .debackers-filter__choices--values, .debackers-filter__choices--swatches, .debackers-filter__choices--availability) .debackers-filter__all-link {
	display: none;
}

.debackers-filter-enhanced .debackers-filter__choices:is(.debackers-filter__choices--compact, .debackers-filter__choices--values, .debackers-filter__choices--swatches, .debackers-filter__choices--availability) .debackers-filter__all-check {
	display: flex;
}

.debackers-filter__choices:is(.debackers-filter__choices--compact, .debackers-filter__choices--values, .debackers-filter__choices--swatches, .debackers-filter__choices--availability) .debackers-filter__box {
	block-size: 100%;
	inline-size: 100%;
	min-block-size: 44px;
	padding-inline: var(--wp--preset--spacing--20) 20px;
}

/* Three classes: outranks the shared :is() group box rule (asymmetric padding for the tick, 44px). */
.debackers-filter__choices.debackers-filter__choices--values .debackers-filter__box {
	justify-content: center;
	min-block-size: 40px;
	padding-inline: 4px;
	text-align: center;
	white-space: nowrap;
}

.debackers-filter__choices--availability .debackers-filter__box {
	justify-content: flex-start;
}

.debackers-filter__choices.debackers-filter__choices--swatches .debackers-filter__box {
	flex-direction: column;
	gap: 4px;
	justify-content: center;
	min-block-size: 58px;
	padding-block: 6px;
	padding-inline: 2px;
	text-align: center;
}

.debackers-filter__choices:is(.debackers-filter__choices--compact, .debackers-filter__choices--values, .debackers-filter__choices--swatches, .debackers-filter__choices--availability) .debackers-filter__tick {
	block-size: 12px;
	inline-size: 12px;
	inset-block-start: 3px;
	inset-inline-end: 3px;
	position: absolute;
}

.debackers-filter__choices--swatches .debackers-filter__name {
	font-size: 13px;
	line-height: 1.3;
	max-inline-size: 100%;
}

.debackers-filter__choices--swatches .debackers-filter__swatch {
	block-size: 20px;
	border-radius: 50%;
	inline-size: 20px;
}

/* ── صفحة المنتج (قائمة من TASK-0039) ────────────────────────── */

.single-product .product-entry-wrapper {
	align-items: start;
	display: grid;
	gap: clamp(28px, 4vw, 64px);
	grid-template-columns: minmax(0, 1.05fr) minmax(340px, 0.95fr);
}

.single-product .product-entry-wrapper > .woo-variation-product-gallery,
.single-product .product-entry-wrapper > .summary {
	min-width: 0;
	width: 100%;
}

.single-product .woo-variation-product-gallery {
	max-width: 100% !important;
}

@media (max-width: 767px) {

	.single-product .product-entry-wrapper {
		gap: 22px;
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (prefers-reduced-motion: reduce) {
	.debackers-card-media img,
	.debackers-card-size,
	.debackers-card-color::before,
	.debackers-filter__chevron,
	.debackers-card-gallery__arrow {
		transition: none;
	}

	.debackers-card-size:not(.is-unavailable):hover {
		transform: none;
	}
}

/* ── أدوات التصفية المدمجة والترتيب المقروء ─────────────────────────────── */

/* أدوات التصنيف والسعر المدمجة: حجم متساوٍ وحشوة أضيق، والالتفاف صفوف. */
.debackers-filter__box--compact {
	padding-inline: 10px;
}

/* أيقونة الترتيب الزخرفية من Blocksy تخفى: القائمة النصية المقروءة هي العنصر الوحيد. تحت
   690px يجعل Blocksy القائمة مربعًا شفاف النص بحجم 34px يعتمد على الأيقونة؛ مع إخفائها
   تُعاد القائمة نصًا مقروءًا بارتفاع هدف لمس كامل (عيب مربع فارغ وُجد في TASK-0045). */
body .woocommerce-ordering .ct-sort-icon {
	display: none;
}

@media (max-width: 689.98px) {
	body .woo-listing-top .woocommerce-ordering select {
		block-size: 44px;
		color: var(--wp--preset--color--ink);
		inline-size: auto;
		max-inline-size: 11rem;
		padding-inline: var(--wp--preset--spacing--20);
		user-select: auto;
	}
}

/* ── درج السلة المملوك (TASK-0045) ───────────────────────────────────────── */

.debackers-cart {
	background: var(--wp--preset--color--surface);
	block-size: 100dvh;
	border: 0;
	color: var(--wp--preset--color--ink);
	inline-size: min(420px, 100vw);
	inset-block: 0;
	inset-inline: auto 0;
	margin: 0;
	max-block-size: 100dvh;
	max-inline-size: 100vw;
	padding: 0;
}

/* Only the item list scrolls; header, subtotal and actions remain in the viewport. */
.debackers-cart[open] {
	display: flex;
	flex-direction: column;
}

.debackers-cart::backdrop {
	background: rgba(28, 28, 28, 0.45);
}

/* Drawer scroll lock (TASK-0048). Blocksy sets body { overflow-x: hidden }. Hiding overflow on <html>
   stopped body's overflow from propagating to the viewport, so body became the scroll container and
   the sticky header jumped to its in-flow position (top -300px after scrolling 300px). Locking body
   instead keeps its overflow on the viewport: the page cannot scroll and the scroll position and the
   sticky header stay put. scrollbar-gutter is not used: measured with classic scrollbars it resized
   the cards (304.5px to 302.6px) while plain body locking kept card and logo positions unchanged. */
html:is(.debackers-cart-open, .debackers-wishlist-open) body {
	overflow: hidden;
	/* A classic scrollbar disappears with the lock; its measured width is kept as padding on the side it
	   occupied (cart-drawer.js sets the variables), so the page width and the header do not shift. */
	padding-inline-start: var(--debackers-scrollbar-start, 0px);
	padding-inline-end: var(--debackers-scrollbar-end, 0px);
}

/* Pending lines dim only their own total; the drawer never fades or reflows while waiting. */
.debackers-cart-item.is-pending .debackers-cart-item__total {
	opacity: 0.5;
}

.debackers-cart__notice {
	background: color-mix(in srgb, var(--wp--preset--color--sale) 8%, var(--wp--preset--color--surface));
	border-inline-start: 3px solid var(--wp--preset--color--sale);
	color: var(--wp--preset--color--ink);
	flex: none;
	font-size: 14px;
	margin: 0;
	padding-block: 8px;
	padding-inline: var(--wp--preset--spacing--50);
}

.debackers-cart__head,
.debackers-cart__title,
.debackers-cart__close {
	align-items: center;
}

.debackers-cart__head {
	flex: none;
	border-block-end: 1px solid var(--wp--preset--color--line);
	display: flex;
	gap: var(--wp--preset--spacing--30);
	justify-content: space-between;
	padding-block: var(--wp--preset--spacing--30);
	padding-inline: var(--wp--preset--spacing--50);
}

.debackers-cart__title {
	font-size: var(--wp--preset--font-size--md, 18px);
	margin: 0;
}

.debackers-cart__close {
	background: transparent;
	border: 0;
	color: var(--wp--preset--color--ink);
	cursor: pointer;
	display: inline-flex;
	justify-content: center;
	min-block-size: 44px;
	min-inline-size: 44px;
	padding: 0;
}

.debackers-cart__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	min-block-size: 0;
	overflow: hidden;
	overscroll-behavior: contain;
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
	padding-block-end: calc(var(--wp--preset--spacing--40) + env(safe-area-inset-bottom, 0px));
}

.debackers-cart__empty {
	margin-block: var(--wp--preset--spacing--70) var(--wp--preset--spacing--50);
	text-align: center;
}

.debackers-cart__items {
	align-content: start;
	display: grid;
	flex: 1 1 auto;
	gap: var(--wp--preset--spacing--30);
	list-style: none;
	margin: 0;
	min-block-size: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 0;
}

/* Owner (2026-10-10): the scroll bar showed as a grey line along the edge of the open menu and the cart
   drawer. Both still scroll by touch, wheel and keys; only the bar is hidden. */
#offcanvas .ct-panel-content-inner,
.debackers-cart__items {
	scrollbar-width: none;
}

#offcanvas .ct-panel-content-inner::-webkit-scrollbar,
.debackers-cart__items::-webkit-scrollbar {
	display: none;
}

/* One stable row layout for every line (TASK-0047): the name takes the full text width, the
   variation label shares its row with the line total, and quantity plus «إزالة» sit together
   on the last row regardless of how the name wraps. */
.debackers-cart-item {
	align-items: center;
	column-gap: var(--wp--preset--spacing--30);
	display: grid;
	grid-template-areas:
		"thumb name name"
		"thumb meta total"
		"thumb sizes sizes"
		"thumb controls controls";
	grid-template-columns: 56px minmax(0, 1fr) auto;
	row-gap: 2px;
}

.debackers-cart-item > img,
.debackers-cart-item > picture > img {
	align-self: start;
	block-size: auto;
	grid-area: thumb;
	grid-row: 1 / span 4;
	inline-size: 56px;
}

.debackers-cart-item__info {
	display: contents;
}

.debackers-cart-item__name {
	color: var(--wp--preset--color--ink);
	font-weight: 600;
	grid-area: name;
	line-height: 1.4;
	text-decoration: none;
	overflow-wrap: anywhere;
}

.debackers-cart-item__meta {
	color: var(--wp--preset--color--muted);
	font-size: 13px;
	grid-area: meta;
	min-inline-size: 0;
}

.debackers-cart-item__controls {
	align-items: center;
	display: flex;
	flex-wrap: nowrap;
	gap: var(--wp--preset--spacing--20);
	grid-area: controls;
	margin-block-start: 4px;
}

.debackers-cart-item__qty {
	align-items: center;
	display: inline-flex;
	gap: 2px;
}

.debackers-cart-item__qty button {
	background: transparent;
	border: 1px solid rgba(20, 28, 38, 0.22);
	border-radius: 2px;
	color: var(--wp--preset--color--ink);
	cursor: pointer;
	font: inherit;
	font-size: 16px;
	inline-size: 44px;
	min-block-size: 44px;
	padding: 0;
}

.debackers-cart-item__qty input {
	appearance: textfield;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 2px;
	font: inherit;
	inline-size: 44px;
	min-block-size: 44px;
	padding: 0;
	text-align: center;
}

.debackers-cart-item__remove {
	background: transparent;
	border: 0;
	color: var(--wp--preset--color--muted);
	cursor: pointer;
	font: inherit;
	font-size: 13px;
	min-block-size: 44px;
	padding-inline: var(--wp--preset--spacing--20);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.debackers-cart-item__total {
	font-weight: 600;
	grid-area: total;
	white-space: nowrap;
}

.debackers-cart__subtotal {
	flex: none;
	align-items: center;
	border-block-start: 1px solid var(--wp--preset--color--line);
	display: flex;
	font-weight: 700;
	gap: var(--wp--preset--spacing--30);
	justify-content: space-between;
	margin-block: var(--wp--preset--spacing--40) var(--wp--preset--spacing--30);
	padding-block-start: var(--wp--preset--spacing--30);
}

/* TASK-0153: server-confirmed offer progress in the drawer and cart summary. */
.debackers-auto-offer {
	flex: none;
	margin-block: 12px;
	font-size: 13px;
	line-height: 1.7;
}

.debackers-auto-offer p {
	margin-block: 0 6px;
}

.debackers-auto-offer__track {
	display: block;
	block-size: 3px;
	inline-size: 100%;
	background: var(--wp--preset--color--line);
	overflow: hidden;
}

.debackers-auto-offer__track > span {
	display: block;
	block-size: 100%;
	inline-size: var(--debackers-offer-progress, 0%);
	background: currentColor;
}

.debackers-cart__actions {
	display: grid;
	flex: none;
	gap: var(--wp--preset--spacing--20);
	margin-block-start: auto;
}

.debackers-cart__checkout {
	align-items: center;
	background: var(--wp--preset--color--ink);
	border-radius: 2px;
	color: var(--wp--preset--color--surface);
	display: inline-flex;
	font-weight: 600;
	justify-content: center;
	min-block-size: 44px;
	padding-inline: var(--wp--preset--spacing--50);
	text-decoration: none;
}

.debackers-cart__continue {
	align-items: center;
	background: transparent;
	border: 1px solid rgba(20, 28, 38, 0.22);
	border-radius: 2px;
	color: var(--wp--preset--color--ink);
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	justify-content: center;
	min-block-size: 44px;
	padding-inline: var(--wp--preset--spacing--50);
}

.debackers-cart__close:focus-visible,
.debackers-cart__continue:focus-visible,
.debackers-cart-item__remove:focus-visible,
.debackers-cart-item__qty button:focus-visible,
.debackers-cart__checkout:focus-visible {
	outline: 2px solid var(--wp--preset--color--ink);
	outline-offset: 2px;
}

/* ── لوحة قائمة الرغبات (TASK-0045) ─────────────────────────────────────── */

.debackers-wishlist {
	background: var(--wp--preset--color--surface);
	block-size: 100dvh;
	border: 0;
	color: var(--wp--preset--color--ink);
	inline-size: min(420px, 100vw);
	inset-block: 0;
	inset-inline: auto 0;
	margin: 0;
	max-block-size: 100dvh;
	max-inline-size: 100vw;
	padding: 0;
}

.debackers-wishlist::backdrop {
	background: rgba(28, 28, 28, 0.45);
}

.debackers-wishlist__head {
	border-block-end: 1px solid var(--wp--preset--color--line);
	display: flex;
	gap: var(--wp--preset--spacing--30);
	justify-content: space-between;
	padding-block: var(--wp--preset--spacing--30);
	padding-inline: var(--wp--preset--spacing--50);
}

.debackers-wishlist__title {
	font-size: var(--wp--preset--font-size--md, 18px);
	margin: 0;
}

.debackers-wishlist__close {
	align-items: center;
	background: transparent;
	border: 0;
	color: var(--wp--preset--color--ink);
	cursor: pointer;
	display: inline-flex;
	justify-content: center;
	min-block-size: 44px;
	min-inline-size: 44px;
	padding: 0;
}

.debackers-wishlist[open] {
	display: flex;
	flex-direction: column;
}

.debackers-wishlist__body {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	gap: var(--wp--preset--spacing--30);
	min-block-size: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: var(--wp--preset--spacing--40) var(--wp--preset--spacing--50);
}

.debackers-wishlist__state {
	color: var(--wp--preset--color--muted);
	margin: 0;
}

/* Fixed 2:3 thumbnail column independent of the text (TASK-0047); the name has the full text
   width and the price sits on its own row; removal stays in the same place on every row. */
.debackers-wishlist-item {
	align-items: center;
	border-block-end: 1px solid var(--wp--preset--color--line);
	display: grid;
	gap: var(--wp--preset--spacing--30);
	grid-template-columns: 72px minmax(0, 1fr) 44px;
	padding-block: var(--wp--preset--spacing--20);
}

.debackers-wishlist-item__media {
	block-size: 108px;
	display: block;
	inline-size: 72px;
}

.debackers-wishlist-item__media img {
	block-size: 108px;
	inline-size: 72px;
	max-inline-size: none;
	object-fit: cover;
}

.debackers-wishlist-item__text {
	display: grid;
	gap: 4px;
	min-inline-size: 0;
}

.debackers-wishlist-item__name {
	color: var(--wp--preset--color--ink);
	font-weight: 600;
	line-height: 1.4;
	overflow-wrap: anywhere;
	text-decoration: none;
}

.debackers-wishlist-item__meta {
	color: var(--wp--preset--color--muted);
	font-size: 13px;
}

.debackers-wishlist-item__price {
	color: var(--wp--preset--color--ink);
	font-size: 15px;
	font-weight: 600;
	white-space: nowrap;
}

.debackers-wishlist-item__price :is(del, ins) {
	text-decoration-color: currentColor;
}

.debackers-wishlist-item__price del {
	color: var(--wp--preset--color--sale);
	font-size: 0.85em;
	margin-inline-start: 6px;
}

.debackers-wishlist-item__price ins {
	text-decoration: none;
}

.debackers-wishlist__state--error {
	color: var(--wp--preset--color--sale);
}

.debackers-wishlist-item__remove {
	background: transparent;
	border: 0;
	color: var(--wp--preset--color--ink);
	cursor: pointer;
	font-size: 20px;
	min-block-size: 44px;
	min-inline-size: 44px;
	padding: 0;
}

.debackers-wishlist__close:focus-visible,
.debackers-wishlist-item__remove:focus-visible,
.debackers-wishlist-item__name:focus-visible {
	outline: 2px solid var(--wp--preset--color--ink);
	outline-offset: 2px;
}

/* أيقونة الهيدر وعدّادها: أهداف 44px مثل أدوات الهيدر الأخرى. */
#header .ct-header-debackers-wishlist {
	align-items: center;
	cursor: pointer;
	display: inline-flex;
	justify-content: center;
	min-block-size: 44px;
	min-inline-size: 44px;
	position: relative;
	background: transparent;
	border: 0;
	padding: 0;
	color: var(--wp--preset--color--ink);
}

.debackers-wishlist-badge {
	background: var(--wp--preset--color--ink);
	border-radius: 999px;
	color: var(--wp--preset--color--surface);
	font-size: 10px;
	line-height: 1;
	min-inline-size: 16px;
	padding: 3px 4px;
	position: absolute;
	inset-block-start: 2px;
	inset-inline-end: 0;
	text-align: center;
}

#header .ct-header-debackers-wishlist:focus-visible {
	outline: 2px solid var(--wp--preset--color--ink);
	outline-offset: 2px;
}

/* ── لوحة اقتراحات البحث المثبتة (TASK-0045) ────────────────────────────── */

.debackers-search-popover {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 6px;
	box-shadow: 0 12px 32px rgba(20, 28, 38, 0.16);
	color: var(--wp--preset--color--ink);
	display: flex;
	flex-direction: column;
	gap: 6px;
	inset-inline-start: 12px;
	padding: 10px;
	/* Fixed to the viewport (TASK-0047): percentages exclude a classic scrollbar, unlike 100vw,
	   which had widened the document on narrow desktop windows; the panel also stays under the
	   sticky header while scrolled. */
	position: fixed;
	inline-size: min(420px, calc(100% - 24px));
	z-index: 100001;
}

/* السمة hidden لا تغلب display الصريحة؛ الإغلاق يحتاج هذه القاعدة. */
.debackers-search-popover[hidden] {
	display: none;
}

.debackers-search-popover__input {
	border: 1px solid var(--theme-form-field-border-initial-color, var(--wp--preset--color--line));
	border-radius: 2px;
	font: inherit;
	min-block-size: 44px;
	padding-inline: 12px;
	width: 100%;
}

.debackers-search-popover__list {
	display: grid;
	gap: 2px;
	/* The script sets the room left in the visual viewport (keyboard open included). */
	max-block-size: var(--debackers-search-room, 60vh);
	overflow-y: auto;
	overscroll-behavior: contain;
}

.debackers-search-popover__item {
	align-items: center;
	border-radius: 4px;
	color: var(--wp--preset--color--ink);
	display: flex;
	gap: 10px;
	min-block-size: 56px;
	padding: 4px 8px;
	text-decoration: none;
}

.debackers-search-popover__item[aria-selected="true"],
.debackers-search-popover__item:hover {
	background: var(--wp--preset--color--ground);
}

.debackers-search-item__thumb {
	flex: none;
	inline-size: 40px;
}

.debackers-search-item__thumb img {
	block-size: 60px;
	inline-size: 40px;
	object-fit: cover;
}

.debackers-search-item__text {
	display: grid;
	gap: 2px;
	min-inline-size: 0;
}

.debackers-search-item__name {
	font-weight: 600;
	overflow-wrap: anywhere;
}

.debackers-search-item__meta {
	color: var(--wp--preset--color--muted);
	font-size: 13px;
}

.debackers-search-popover [hidden] {
	display: none;
}

.debackers-search-popover__state {
	color: var(--wp--preset--color--muted);
	margin: 0;
	padding: 8px;
}

.debackers-search-popover__all {
	color: var(--wp--preset--color--ink);
	font-size: 14px;
	min-block-size: 44px;
	padding: 8px;
	text-align: start;
	text-decoration: underline;
	text-underline-offset: 3px;
}

/* TASK-0101 (owner): one frame on the search field — focus thickens its own border instead of adding a second ring. */
.debackers-search-popover__input:focus,
.debackers-search-popover__input:focus-visible {
	border-color: var(--wp--preset--color--ink);
	box-shadow: inset 0 0 0 1px var(--wp--preset--color--ink);
	outline: none;
}

.debackers-search-popover__item:focus-visible,
.debackers-search-popover__all:focus-visible {
	outline: 2px solid var(--wp--preset--color--ink);
	outline-offset: 2px;
}

/* ── التنبيهات (TASK-0045) ───────────────────────────────────────────────── */

.debackers-toasts {
	inset-block-end: 16px;
	inset-inline-start: 16px;
	position: fixed;
	display: grid;
	gap: 8px;
	z-index: 100002;
}

/* داخل درج مفتوح ترتفع التنبيهات فوق أزرار الإجراءات السفلية (شراء مباشرة، متابعة التصفح)
   فلا تغطيها، ولا تغطي العنصر المضاف أعلى القائمة. */
dialog .debackers-toasts {
	inset-block-end: calc(132px + env(safe-area-inset-bottom, 0px));
}

.debackers-toast {
	align-items: center;
	background: var(--wp--preset--color--ink);
	border-radius: 4px;
	color: var(--wp--preset--color--surface);
	display: flex;
	gap: 8px;
	max-inline-size: min(360px, calc(100vw - 32px));
	padding: 10px 12px;
}

.debackers-toast--error {
	background: var(--wp--preset--color--sale, #8b1d1d);
}

.debackers-toast__text {
	min-inline-size: 0;
	overflow-wrap: anywhere;
}

.debackers-toast__close {
	background: transparent;
	border: 0;
	color: inherit;
	cursor: pointer;
	font-size: 16px;
	min-block-size: 32px;
	min-inline-size: 32px;
}

.debackers-toast {
	animation: debackers-toast-in 160ms ease;
}

@keyframes debackers-toast-in {
	from {
		opacity: 0;
		translate: 0 6px;
	}

	to {
		opacity: 1;
		translate: 0 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.debackers-toast {
		animation: none;
	}

	.debackers-card-wish .debackers-card-wish__shape {
		transition: none;
	}
}

/* ── ملاحظات الدفع V1 (TASK-0045) ────────────────────────────────────────── */

.debackers-checkout-note {
	margin-block: var(--wp--preset--spacing--40);
}

/* Order summary line (TASK-0047): thumbnail, then name, variation and quantity stacked in one
   column so the quantity position never depends on how the name wraps. */
.debackers-checkout-item {
	align-items: start;
	display: grid;
	gap: 10px;
	grid-template-columns: 40px minmax(0, 1fr);
}

.debackers-checkout-item__details {
	display: grid;
	gap: 2px;
	min-inline-size: 0;
}

.debackers-checkout-item__name {
	line-height: 1.4;
	overflow-wrap: anywhere;
}

.debackers-checkout-item__meta,
.debackers-checkout-item__qty {
	color: var(--wp--preset--color--muted);
	font-size: 13px;
}

/* Fixed country prefix on the physical left, local digits beside it (TASK-0047). */
.debackers-phone {
	align-items: stretch;
	display: flex;
	inline-size: 100%;
}

.debackers-phone__prefix {
	align-items: center;
	background: var(--wp--preset--color--ground);
	border: 1px solid var(--theme-form-field-border-initial-color, var(--wp--preset--color--muted));
	border-inline-end: 0;
	color: var(--wp--preset--color--ink);
	display: inline-flex;
	flex: none;
	font-variant-numeric: tabular-nums;
	padding-inline: 12px;
}

.debackers-phone #billing_phone {
	flex: 1 1 auto;
	min-inline-size: 0;
	text-align: left;
}

form.checkout .debackers-checkout-submit {
	position: sticky;
	inset-block-end: 0;
	z-index: 4;
	grid-column: 1 / -1;
	padding-block: 8px;
	background: var(--wp--preset--color--ground);
	border-block-start: 1px solid var(--wp--preset--color--muted);
}

form.checkout .debackers-checkout-submit #place_order {
	inline-size: 100%;
	margin: 0;
}

/* Desktop (Blocksy's two-column checkout from 1000px): the bar spans the billing column only,
   so the button matches and aligns with the billing fields in RTL (TASK-0047). */
@media (min-width: 1000px) {
	/* The order review spans both rows, so the bar's row starts right after the billing fields and
	   its natural position never overlaps the checkout notes. */
	form.checkout > .ct-customer-details {
		grid-row: 1;
	}

	form.checkout > .ct-order-review {
		grid-row: 1 / span 2;
	}

	form.checkout .debackers-checkout-submit {
		align-self: start;
		grid-column: 1;
		grid-row: 2;
	}
}

.debackers-search-item__meta del {
	color: var(--wp--preset--color--sale);
	margin-inline-start: 4px;
}

.debackers-search-item__meta ins {
	text-decoration: none;
}

/* ── Compact picker: governorate, shop sort, cart-line size (TASK-0048) ───────────────────────────
   The value and the chevron occupy separate flex slots (the governorate arrow was a text glyph
   pseudo-element touching the value). The chevron is a masked SVG, so it is centered and does not
   depend on font metrics or direction. */
.debackers-picker {
	display: inline-flex;
	min-inline-size: 0;
	position: relative;
}

.debackers-picker__toggle {
	align-items: center;
	background: transparent;
	border: 1px solid rgba(20, 28, 38, 0.32);
	border-radius: 2px;
	color: var(--wp--preset--color--ink);
	cursor: pointer;
	display: inline-flex;
	font: inherit;
	gap: 10px;
	justify-content: space-between;
	margin: 0;
	min-block-size: 44px;
	min-inline-size: 0;
	padding-block: 0;
	padding-inline: 12px;
	text-align: start;
}

.debackers-picker__toggle:hover {
	border-color: var(--wp--preset--color--ink);
}

.debackers-picker__toggle:focus-visible {
	outline: 2px solid var(--wp--preset--color--ink);
	outline-offset: 2px;
}

.debackers-picker__value {
	min-inline-size: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.debackers-picker__chevron {
	background: currentColor;
	block-size: 6px;
	flex: none;
	inline-size: 10px;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

.debackers-picker.is-open .debackers-picker__chevron {
	mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M1 5l4-4 4 4' fill='none' stroke='%23000' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

.debackers-picker__list {
	/* TASK-0101 (owner): the page's ground; the frame and shadow keep the open list apart from the page. */
	background: var(--wp--preset--color--ground);
	border: 1px solid rgba(20, 28, 38, 0.32);
	border-radius: 2px;
	box-shadow: 0 8px 24px rgba(20, 28, 38, 0.14);
	inset-block-start: calc(100% + 4px);
	inset-inline-start: 0;
	list-style: none;
	margin: 0;
	max-block-size: min(320px, 60vh);
	max-inline-size: calc(100vw - 16px);
	min-inline-size: 100%;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: 4px;
	position: absolute;
	z-index: 30;
}

/* A picker whose toggle sits at the physical left of a RTL row opens toward the page, not off it. */
.debackers-picker--end .debackers-picker__list {
	inset-inline-end: 0;
	inset-inline-start: auto;
}

.debackers-picker__option {
	align-items: center;
	border-radius: 2px;
	cursor: pointer;
	display: flex;
	gap: 8px;
	justify-content: space-between;
	min-block-size: 40px;
	padding-inline: 10px;
	white-space: nowrap;
}

.debackers-picker__option.is-highlighted {
	background: var(--wp--preset--color--ground);
}

.debackers-picker__option[aria-selected="true"] {
	font-weight: 700;
}

.debackers-picker__option[aria-selected="true"]::after {
	background: currentColor;
	block-size: 10px;
	content: "";
	flex: none;
	inline-size: 12px;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath d='M1 5l3.5 3.5L11 1.5' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Unavailable: struck through, muted, not-allowed, and named «غير متوفر» in the option text for
   assistive technology (aria-disabled), so the state never relies on styling alone. */
.debackers-picker__option.is-unavailable {
	color: var(--wp--preset--color--muted);
	cursor: not-allowed;
	text-decoration-line: line-through;
}

.debackers-governorate {
	display: flex;
	inline-size: 100%;
}

.debackers-governorate .debackers-picker__toggle {
	border-color: var(--wp--preset--color--muted);
	inline-size: 100%;
}

/* The sticky submit bar (about 61px) must not cover the options when the list is scrolled into view. */
.debackers-governorate .debackers-picker__list {
	scroll-margin-block-end: 76px;
}

/* Cart-line sizes (drawer and checkout): the list opens in flow as a compact grid of sizes, so it is
   never clipped by the drawer's scrolling list and needs no positioning. */
.debackers-line-sizes {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 4px 12px;
	margin-block-start: 4px;
	min-inline-size: 0;
}

/* Named area only inside the drawer row grid; elsewhere an unknown area name creates stray columns. */
.debackers-cart-item .debackers-line-sizes {
	grid-area: sizes;
}

.debackers-line-size {
	align-items: center;
	flex-wrap: wrap;
	gap: 6px;
}

.debackers-line-size__label,
.debackers-line-size--static {
	color: var(--wp--preset--color--muted);
	font-size: 13px;
}

.debackers-line-size .debackers-picker__toggle {
	font-size: 14px;
	font-weight: 600;
	min-block-size: 36px;
	min-inline-size: 72px;
	padding-inline: 10px;
}

.debackers-picker--inline .debackers-picker__list {
	background: transparent;
	border: 0;
	box-shadow: none;
	display: grid;
	flex-basis: 100%;
	gap: 4px;
	grid-template-columns: repeat(auto-fill, minmax(52px, 1fr));
	max-block-size: none;
	max-inline-size: none;
	overflow: visible;
	padding: 0;
	position: static;
}

.debackers-picker--inline .debackers-picker__list[hidden] {
	display: none;
}

.debackers-picker--inline .debackers-picker__option {
	border: 1px solid rgba(20, 28, 38, 0.22);
	font-size: 14px;
	justify-content: center;
	min-block-size: 40px;
	padding-inline: 6px;
}

.debackers-picker--inline .debackers-picker__option[aria-selected="true"] {
	border-color: var(--wp--preset--color--ink);
	box-shadow: 0 0 0 1px var(--wp--preset--color--ink) inset;
}

.debackers-picker--inline .debackers-picker__option[aria-selected="true"]::after {
	display: none;
}

.debackers-picker--inline .debackers-picker__option.is-highlighted {
	outline: 2px solid var(--wp--preset--color--ink);
	outline-offset: 1px;
}

.debackers-picker--inline .debackers-picker__option.is-unavailable {
	background: var(--wp--preset--color--line);
	border-style: dashed;
}

/* Checkout summary: the product column takes the width and the line total stays compact at the top,
   so the line controls are not squeezed beside a wide total column on phones. */
.woocommerce-checkout-review-order-table {
	table-layout: auto;
}

.woocommerce-checkout-review-order-table .cart_item td.product-name {
	vertical-align: top;
}

.woocommerce-checkout-review-order-table .cart_item td.product-total {
	inline-size: 1%;
	vertical-align: top;
	white-space: nowrap;
}

/* Checkout summary controls: shown only when the cart script runs; the static line is the no-JS view. */
.woocommerce-checkout-review-order-table .debackers-checkout-line {
	display: grid;
	gap: 4px;
	margin-block-start: 4px;
}

/* TASK-0053: one compact item. The thumbnail floats at the start; name, color, size, quantity and removal stack
   beside it at every width. The review template prints a no-break space between the name and the line: the
   cell's zero font size keeps it from adding an empty line (its children restore 15px). The name and the line
   establish their own formatting contexts, so they stay beside the image instead of wrapping under it. The line
   total keeps its column at the top. */
.woocommerce-checkout-review-order-table .cart_item td {
	padding-block: 12px;
}

.woocommerce-checkout-review-order-table td.product-name {
	font-size: 0;
	line-height: 0;
}

.woocommerce-checkout-review-order-table td.product-name > * {
	font-size: 15px;
	line-height: 1.65;
}

.woocommerce-checkout-review-order-table .debackers-checkout-item {
	display: block;
}

.woocommerce-checkout-review-order-table .debackers-checkout-item .debackers-checkout-thumb {
	float: inline-start;
	margin-inline-end: 10px;
}

.woocommerce-checkout-review-order-table .debackers-checkout-item__details {
	display: flow-root;
}

.woocommerce-checkout-review-order-table .debackers-checkout-line {
	margin-block-start: 2px;
}

/* Phones: only the name and color sit beside the thumbnail; the size, quantity and removal controls clear
   below it and use the whole product column, so «إزالة» stays beside the quantity and the size label beside
   its selector at 320px instead of wrapping in a 95–150px strip. */
@media (max-width: 689px) {
	.woocommerce-checkout-review-order-table .debackers-checkout-line {
		display: block;
	}

	.woocommerce-checkout-review-order-table .debackers-checkout-item__meta {
		display: flow-root;
	}

	.woocommerce-checkout-review-order-table .debackers-checkout-line__static,
	html.debackers-cart-enhanced .woocommerce-checkout-review-order-table .debackers-checkout-line__controls {
		clear: both;
		padding-block-start: 6px;
	}

	/* 320px leaves a 150px product column: 6px gaps and a 22px quantity number (still wider than «10» at 15px)
	   keep the 40px quantity buttons and «إزالة» (44px high) on one line. */
	.woocommerce-checkout-review-order-table .debackers-checkout-line__row {
		gap: 6px;
	}
}

@media (max-width: 359px) {
	.woocommerce-checkout-review-order-table .debackers-checkout-line__qty {
		min-inline-size: 22px;
	}

	/* TASK-0062: at 320px Blocksy's 25px review padding (inside the 19px page gutter) left a 141px product
	   column, 6px short of the quantity (106px), the gap and «إزالة» (35px), so removal wrapped to its own line.
	   16px keeps the framed box and gives the column 18px; wider phones keep Blocksy's padding. */
	form.checkout > .ct-order-review {
		padding-inline: 16px;
	}
}

.debackers-checkout-line__controls {
	display: none;
}

html.debackers-cart-enhanced .debackers-checkout-line__controls {
	display: grid;
	gap: 6px;
}

html.debackers-cart-enhanced .debackers-checkout-line__static {
	display: none;
}

.debackers-checkout-line__static {
	color: var(--wp--preset--color--muted);
	font-size: 13px;
}

.debackers-checkout-line__row {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.debackers-checkout-line .debackers-cart-item__qty button {
	inline-size: 40px;
	min-block-size: 40px;
}

.debackers-checkout-line__qty {
	font-variant-numeric: tabular-nums;
	min-inline-size: 28px;
	text-align: center;
}

.debackers-checkout-line.is-pending .debackers-checkout-line__qty {
	opacity: 0.6;
}

.debackers-checkout-cart-notice {
	background: color-mix(in srgb, var(--wp--preset--color--sale) 8%, var(--wp--preset--color--surface));
	border-inline-start: 3px solid var(--wp--preset--color--sale);
	font-size: 14px;
	margin-block: 0 12px;
	padding-block: 8px;
	padding-inline: 12px;
}

/* Blocksy lays the checkout form out as a grid, which overrides the hidden attribute. */
form.checkout[hidden] {
	display: none;
}

.debackers-checkout-empty {
	display: grid;
	gap: 12px;
	justify-items: start;
	padding-block: 24px;
}

.debackers-checkout-empty a {
	align-items: center;
	background: var(--wp--preset--color--ink);
	border-radius: 2px;
	color: var(--wp--preset--color--surface);
	display: inline-flex;
	min-block-size: 44px;
	padding-inline: 20px;
	text-decoration: none;
}

form.checkout .debackers-checkout-submit #place_order[aria-disabled="true"] {
	opacity: 0.6;
}

.debackers-checkout-submit__status {
	font-size: 13px;
	margin: 0 0 6px;
}

.debackers-checkout-submit__status:empty {
	display: none;
}

.woocommerce-checkout-review-order-table .debackers-checkout-thumb {
	inline-size: 40px;
	block-size: 60px;
	object-fit: cover;
	flex: none;
}

form.checkout :is(input, select, button) {
	scroll-margin-block-start: 88px;
	/* A focused field is never left under the sticky submit bar (TASK-0047). */
	scroll-margin-block-end: 72px;
}

@media (max-width: 689px) {
	.woocommerce-checkout .ct-container[data-vertical-spacing] {
		padding-block: 16px;
	}

	.woocommerce-checkout form.checkout .form-row {
		margin-block-end: 12px;
	}

	.woocommerce-checkout form.checkout :is(h3, .debackers-checkout-note) {
		margin-block: 12px;
	}

	.woocommerce-checkout form.checkout .form-row .description {
		font-size: 12px;
		line-height: 1.5;
	}
}

.debackers-checkout-note ul {
	display: grid;
	gap: 4px;
	list-style: none;
	margin: 0;
	padding-inline-start: 0;
	color: var(--wp--preset--color--muted);
	font-size: 14px;
}

.debackers-checkout-note li::before {
	content: "•";
	margin-inline-end: 6px;
}

/* ── السعر من–إلى (TASK-0045، D-123) ─────────────────────────── */
.debackers-filter__choices--price {
	align-items: flex-start;
}

.debackers-filter__price {
	display: grid;
	flex-basis: 100%;
	gap: var(--wp--preset--spacing--20);
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

/* Equal «من» and «إلى» boxes (TASK-0048): measured 69px and 77px fields with 44px and 48px inputs,
   because the «إلى» label line box grew with its hamza-below glyph and Blocksy's label margin applies
   to all but the last label. Fixed label line height, zero label margin and a fixed input height
   give both fields the same geometry and baseline. */
.debackers-filter__price-field {
	display: grid;
	gap: 4px;
	grid-template-rows: 20px 44px;
	margin: 0;
	min-inline-size: 0;
}

.debackers-filter__price-label {
	block-size: 20px;
	font-size: 0.8125rem;
	font-weight: 700;
	line-height: 20px;
	overflow: hidden;
}

.debackers-filter__price-input {
	align-items: center;
	background: var(--wp--preset--color--surface);
	block-size: 44px;
	border: 1px solid rgba(20, 28, 38, 0.32);
	border-radius: 2px;
	box-sizing: border-box;
	display: flex;
	padding-inline: var(--wp--preset--spacing--20);
}

.debackers-filter__price-input:focus-within {
	outline: 2px solid var(--debackers-focus, var(--wp--preset--color--ink));
	outline-offset: 2px;
}

.debackers-filter__price-input input {
	appearance: textfield;
	background: transparent;
	border: 0;
	block-size: 100%;
	margin: 0;
	direction: ltr;
	flex: 1 1 auto;
	font: inherit;
	min-inline-size: 0;
	outline: none;
	padding: 0;
	text-align: end;
}

.debackers-filter__price-input input::-webkit-inner-spin-button,
.debackers-filter__price-input input::-webkit-outer-spin-button {
	appearance: none;
	margin: 0;
}

.debackers-filter__price-currency {
	color: rgba(20, 28, 38, 0.72);
	flex: none;
	font-size: 0.8125rem;
	line-height: 1;
	margin-inline-start: var(--wp--preset--spacing--10);
}

.debackers-filter__price-hint {
	color: rgba(20, 28, 38, 0.72);
	flex-basis: 100%;
	font-size: 0.8125rem;
	margin: 0;
}


/* ── Progressive loading (TASK-0050, D-152) ─────────────────────────────── */
html.debackers-progressive #main :is(.ct-pagination, .woocommerce-pagination) {
	display: none;
}

.debackers-catalog-more {
	align-items: center;
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-block: 24px;
	text-align: center;
}

.debackers-catalog-more[hidden],
.debackers-catalog-more [hidden] {
	display: none;
}

.debackers-catalog-more__status,
.debackers-catalog-more__error,
.debackers-catalog-more__end {
	font-size: 14px;
	margin: 0;
}

.debackers-catalog-more__status {
	align-items: center;
	color: var(--wp--preset--color--muted);
	display: inline-flex;
	gap: 8px;
}

.debackers-catalog-more__spinner {
	animation: debackers-more-spin 800ms linear infinite;
	block-size: 16px;
	border: 2px solid var(--wp--preset--color--line);
	border-block-start-color: var(--wp--preset--color--ink);
	border-radius: 50%;
	box-sizing: border-box;
	inline-size: 16px;
}

@keyframes debackers-more-spin {
	to {
		transform: rotate(360deg);
	}
}

.debackers-catalog-more__error {
	color: var(--wp--preset--color--sale);
}

.debackers-catalog-more__end {
	color: var(--wp--preset--color--muted);
}

.debackers-catalog-more__button {
	align-items: center;
	border: 1px solid var(--wp--preset--color--ink);
	border-radius: 2px;
	color: var(--wp--preset--color--ink);
	display: inline-flex;
	font-size: 14px;
	font-weight: 600;
	min-block-size: 44px;
	padding-inline: 20px;
	text-decoration: none;
}

.debackers-catalog-more__button[aria-disabled="true"] {
	opacity: 0.5;
	pointer-events: none;
}

.debackers-catalog-more__button:focus-visible,
.debackers-catalog-more__end:focus-visible {
	outline: 2px solid var(--wp--preset--color--ink);
	outline-offset: 2px;
}

/* ── TASK-0052: phone cards, sticky Filter/Sort toolbar, size rows ─────────────────────────────── */


/* Filter/Sort toolbar up to the tablet header breakpoint: two equal halves under the sticky header. The top
   offset comes from the measured header (catalog-filter.js); the fallback is the 72px header row. Products
   keep a matching scroll margin so a card scrolled into view is never under the toolbar. Drawers and the
   sort list open above it (dialog top layer; the list is inside the toolbar). */
@media (max-width: 999.98px) {
	#main .woo-listing-top {
		background: var(--wp--preset--color--ground);
		display: grid;
		gap: 0;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		inset-block-start: var(--debackers-toolbar-top, 72px);
		margin-block-end: 12px;
		margin-inline: 0;
		padding-block: 6px;
		position: sticky;
		z-index: 40;
	}

	#main .woo-listing-top > .woocommerce-result-count {
		display: none;
	}

	#main .woo-listing-top > .debackers-catalog__open,
	#main .woo-listing-top > .woocommerce-ordering {
		margin: 0;
		min-inline-size: 0;
	}

	#main .woo-listing-top > .woocommerce-ordering,
	#main .woo-listing-top .debackers-ordering {
		display: flex;
		inline-size: 100%;
	}

	#main .woo-listing-top > .debackers-catalog__open,
	#main .woo-listing-top .debackers-ordering .debackers-picker__toggle {
		background: transparent;
		block-size: 48px;
		border: 1px solid color-mix(in srgb, var(--wp--preset--color--ink) 28%, transparent);
		border-radius: 0;
		box-sizing: border-box;
		color: var(--wp--preset--color--ink);
		font-size: 15px;
		font-weight: 600;
		gap: 8px;
		inline-size: 100%;
		justify-content: center;
		line-height: 1;
		min-block-size: 48px;
		padding-inline: 8px;
	}

	/* One shared divider between the halves. */
	#main .woo-listing-top > .debackers-catalog__open {
		border-inline-end-width: 0;
	}

	#main .woo-listing-top .debackers-ordering .debackers-picker__value {
		display: none;
	}

	#main .woo-listing-top .debackers-ordering .debackers-picker__list {
		inset-inline: 0;
		max-inline-size: none;
	}

	#main ul.products > li.product {
		scroll-margin-block-start: var(--debackers-toolbar-bottom, 132px);
	}
}

.debackers-ordering__label,
.debackers-ordering__icon {
	display: none;
}

@media (max-width: 999.98px) {
	#main .woo-listing-top .debackers-ordering__label,
	#main .woo-listing-top .debackers-ordering__icon {
		display: inline-block;
	}

	/* The chevron would be a third element beside the label and icon; the icon marks the control. */
	#main .woo-listing-top .debackers-ordering .debackers-picker__chevron {
		display: none;
	}
}

.debackers-ordering__icon {
	flex: none;
}

/* «المقاس» by sizing system (TASK-0056, replaces the TASK-0052/0053 fixed rows): «الكل» on its own line, a short
   note when several systems are listed, then one block per system with its heading and equal value boxes. A box
   shows the value and, under it, how many products match; a selected box is filled (fill, contrast and weight,
   not color alone) and keeps its size. A value with no match is muted and dashed but stays selectable. */
.debackers-filter__size-rows {
	display: grid;
	gap: 12px;
}

.debackers-filter__size-system {
	display: grid;
	gap: 6px;
}

.debackers-filter__size-heading,
.debackers-filter__cat-heading {
	font-size: 14px;
	font-weight: 700;
	line-height: 1.4;
	margin: 0;
	overflow-wrap: anywhere;
}

.debackers-filter__size-note {
	color: var(--wp--preset--color--muted);
	font-size: 13px;
	line-height: 1.5;
	margin: 0;
}

.debackers-filter__size-system .debackers-filter__choices--values {
	gap: 4px;
	grid-auto-rows: auto;
}

.debackers-filter__choices.debackers-filter__choices--values .debackers-filter__box {
	flex-direction: column;
	gap: 0;
	line-height: 1.15;
	min-block-size: 44px;
}

.debackers-filter__count {
	color: var(--wp--preset--color--muted);
	font-size: 11px;
	font-weight: 400;
}

.debackers-filter__size-system .debackers-filter__tick {
	display: none;
}

.debackers-filter__size-system .debackers-filter__choice input:checked + .debackers-filter__box {
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--surface);
}

.debackers-filter__size-system .debackers-filter__choice input:checked + .debackers-filter__box .debackers-filter__count {
	color: inherit;
}

.debackers-filter__choice.is-empty .debackers-filter__box {
	border-style: dashed;
	color: var(--wp--preset--color--muted);
}

.debackers-filter__choice input:disabled + .debackers-filter__box {
	cursor: not-allowed;
	opacity: .55;
}

/* «التصنيف» (TASK-0056): the SHOP menu groups as headings with their boxes, «جميع المنتجات» first. Long Arabic
   labels wrap inside their box instead of being cut. */
.debackers-filter__cat-groups {
	display: grid;
	gap: 14px;
}

.debackers-filter__cat-group {
	display: grid;
	gap: 6px;
}

.debackers-filter__cat-group .debackers-filter__choices--compact .debackers-filter__name {
	line-height: 1.3;
}

/* «اختياراتك» (TASK-0056): the selection at the top of the drawer as wrapping, removable chips. */
.debackers-filter__selected {
	border-block-end: 1px solid var(--wp--preset--color--line);
	display: grid;
	gap: 8px;
	padding-block: 4px 12px;
}

.debackers-filter__selected[hidden] {
	display: none;
}

.debackers-filter__selected-title {
	font-size: 14px;
	font-weight: 700;
	margin: 0;
}

.debackers-filter__selected-list {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.debackers-filter__selected-list .debackers-chip {
	cursor: pointer;
	font: inherit;
	font-size: 14px;
}

.debackers-filter__pending {
	color: var(--wp--preset--color--muted);
	font-size: 13px;
	margin: 0;
}

.debackers-filter__pending[hidden] {
	display: none;
}

/* A legacy link whose size exists in several systems (TASK-0056). */
.debackers-catalog__notice {
	border: 1px solid var(--wp--preset--color--line);
	margin-block-end: var(--wp--preset--spacing--40);
	padding: 12px;
}

.debackers-catalog__notice p {
	margin: 0 0 8px;
}

.debackers-catalog__notice .debackers-catalog__chips {
	margin-block-end: 0;
}

/* «القالب» (TASK-0053): «الكل» on its own line, then SLIM FIT and REGULAR FIT in two equal columns. Both English
   labels keep the group's font size and weight, one line, LTR, centered; the boxes share one height. */
.debackers-filter__fit-rows {
	display: grid;
	gap: 9px;
}

.debackers-filter__choices.debackers-filter__fit-row {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.debackers-filter__choices.debackers-filter__fit-row .debackers-filter__box {
	justify-content: center;
	padding-inline: 20px;
	text-align: center;
}

.debackers-filter__fit-row .debackers-filter__name {
	direction: ltr;
	unicode-bidi: isolate;
	white-space: nowrap;
}

/* Delivery summary row (TASK-0053): label and amount aligned like the subtotal and total rows. A waived fee
   shows the real fee struck in muted gray, the effective 0 beside it and a short reason under them. */
.woocommerce-checkout-review-order-table tr.debackers-shipping-row :is(th, td) {
	vertical-align: top;
}

.woocommerce-checkout-review-order-table .debackers-shipping-row__value {
	text-align: end;
}

.woocommerce-checkout-review-order-table .debackers-shipping-row__note {
	color: var(--wp--preset--color--muted);
	display: block;
	font-size: 13px;
	font-weight: 400;
	line-height: 1.5;
	text-align: end;
}

.debackers-shipping-amount {
	display: inline-grid;
	gap: 2px;
	justify-items: end;
}

.debackers-shipping-amount__prices {
	align-items: baseline;
	display: inline-flex;
	flex-wrap: wrap;
	gap: 6px;
	justify-content: flex-end;
}

.debackers-shipping-amount__original {
	color: var(--wp--preset--color--muted);
	font-weight: 400;
}

.debackers-shipping-amount__reason {
	color: var(--wp--preset--color--muted);
	white-space: nowrap;
	font-size: 12px;
	font-weight: 400;
	line-height: 1.4;
}

.debackers-shipping-methods {
	display: grid;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
}

.debackers-shipping-methods label {
	align-items: start;
	display: inline-flex;
	gap: 8px;
	justify-content: space-between;
}


/* ── «العودة إلى المنتج» on the policy page ───────────────── */

.debackers-policy-return {
	margin: 12px auto 0;
	max-inline-size: var(--theme-content-width, 1290px);
	padding-inline: 16px;
}

.debackers-policy-return[hidden] {
	display: none;
}

.debackers-policy-return__link {
	align-items: center;
	border: 1px solid rgba(28, 28, 28, 0.25);
	border-radius: 2px;
	display: inline-flex;
	gap: 6px;
	min-block-size: 44px;
	padding-inline: 14px;
	text-decoration: none;
}

/* ── TASK-0057: brand rows, live size facet, filter swatches, shop context ───────────────────────── */

/* «براند» (owner decision, supersedes the one-row layout of D-191): «الكل» alone on a full-width row, then the
   brands two per row like «القالب»; every label centered in its 44px box, one line, at the group's size. */
.debackers-filter__choices.debackers-filter__brand-all .debackers-filter__box,
.debackers-filter__choices.debackers-filter__brand-row .debackers-filter__box {
	justify-content: center;
	padding-inline: 20px;
	text-align: center;
	white-space: nowrap;
}

/* The size group follows the draft choices; while it refreshes the old counts stay readable, after a failure
   they are hidden because they would describe another selection. */
.debackers-filter__facet-status {
	color: var(--wp--preset--color--muted);
	font-size: 13px;
	margin: 0;
}

.debackers-filter__facet-error {
	border-inline-start: 3px solid var(--wp--preset--color--sale);
	display: grid;
	gap: 6px;
	justify-items: start;
	padding-inline-start: 10px;
}

.debackers-filter__facet-error p {
	font-size: 13px;
	margin: 0;
}

.debackers-filter__facet-retry {
	background: none;
	border: 1px solid var(--wp--preset--color--ink);
	color: var(--wp--preset--color--ink);
	cursor: pointer;
	font: inherit;
	font-size: 14px;
	min-block-size: 44px;
	padding-inline: 16px;
}

.debackers-filter__facet-status[hidden],
.debackers-filter__facet-error[hidden] {
	display: none;
}

.debackers-filter__size-slot[aria-busy="true"] .debackers-filter__count {
	opacity: 0.4;
}

.debackers-filter__size-slot.is-stale .debackers-filter__count,
.debackers-filter__size-slot.is-stale .debackers-filter__count + .screen-reader-text {
	display: none;
}

/* Colour choices: a larger circle (26px, was 20px) with less empty space around it; the box keeps its 44px+
   target, the tick and the focus ring, and two-word names wrap inside it rather than being cut. */
.debackers-filter__choices.debackers-filter__choices--swatches .debackers-filter__box {
	gap: 3px;
	min-block-size: 56px;
	padding-block: 4px;
}

.debackers-filter__choices--swatches .debackers-filter__swatch {
	block-size: 26px;
	inline-size: 26px;
}

.debackers-filter__choices--swatches .debackers-filter__name {
	overflow-wrap: anywhere;
}

/* Sorting without JavaScript (TASK-0057): the choices as links under the toolbar. */
.debackers-catalog__sort-links ul {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	list-style: none;
	margin: 0 0 var(--wp--preset--spacing--30);
	padding: 0;
}

.debackers-catalog__sort-links a {
	align-items: center;
	border: 1px solid var(--wp--preset--color--line);
	color: var(--wp--preset--color--ink);
	display: inline-flex;
	font-size: 14px;
	min-block-size: 44px;
	padding-inline: 12px;
	text-decoration: none;
}

.debackers-catalog__sort-links a[aria-current="true"] {
	border-color: var(--wp--preset--color--ink);
	font-weight: 700;
}

/* Selling collections — cover (TASK-0073, replaces the TASK-0070 split banner): a full-width landscape photograph
   directly under the header, printed before the constrained container, with the live heading over it. The box
   has a fixed aspect ratio so nothing shifts while the photograph loads. The owner places the heading at the
   start, centre or end of the reading direction and picks light or dark text for the photograph; a scrim on the
   heading's side only supports contrast. Without a photograph the heading sits on the page background. */
.debackers-collection-banner {
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--ink);
	position: relative;
}

.debackers-collection-banner:not(.has-image) {
	padding-block: var(--wp--preset--spacing--40) var(--wp--preset--spacing--20);
}

.debackers-collection-banner.has-image {
	aspect-ratio: 4 / 3;
	background: #2b2b2b;
	overflow: hidden;
}

.debackers-collection-banner__media {
	display: block;
}

.debackers-collection-banner.has-image .debackers-collection-banner__media {
	inset: 0;
	position: absolute;
}

.debackers-collection-banner__image {
	block-size: 100%;
	display: block;
	inline-size: 100%;
	object-fit: cover;
	object-position: var(--debackers-cover-position-mobile, 50% 50%);
}

/* Picture puts the class on the picture; object-fit has to reach the img. The cover focal points are custom
   properties on that img, so they inherit into object-position here. */
.debackers-collection-banner.has-image .debackers-collection-banner__image img {
	block-size: 100%;
	display: block;
	inline-size: 100%;
	object-fit: cover;
	object-position: var(--debackers-cover-position-mobile, 50% 50%);
}

.debackers-collection-banner__text {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
}

.debackers-collection-banner.has-image .debackers-collection-banner__text {
	inset: 0;
	position: absolute;
}

.debackers-collection-banner__inner {
	box-sizing: border-box;
	inline-size: 100%;
	margin-inline: auto;
	max-inline-size: var(--theme-normal-container-max-width, 1290px);
	padding-block: 20px;
	padding-inline: 16px;
}

.debackers-collection-banner.is-align-center .debackers-collection-banner__inner {
	text-align: center;
}

.debackers-collection-banner.is-align-end .debackers-collection-banner__inner {
	text-align: end;
}

.debackers-collection-banner__title {
	color: inherit;
	font-size: clamp(1.75rem, 1.35rem + 2vw, 3rem);
	line-height: 1.15;
	margin: 0;
}

.debackers-collection-banner__intro {
	font-size: var(--wp--preset--font-size--base, 1rem);
	line-height: 1.5;
	margin: 6px 0 0;
}

.debackers-collection-banner.has-image .debackers-collection-banner__intro {
	display: -webkit-box;
	overflow: hidden;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
}

.debackers-collection-banner.is-tone-light {
	color: #fff;
}

.debackers-collection-banner.is-tone-light .debackers-collection-banner__text {
	background: linear-gradient(to top, rgb(0 0 0 / 55%), rgb(0 0 0 / 18%) 45%, rgb(0 0 0 / 0%) 70%);
}

.debackers-collection-banner.is-tone-light .debackers-collection-banner__title,
.debackers-collection-banner.is-tone-light .debackers-collection-banner__intro {
	text-shadow: 0 1px 12px rgb(0 0 0 / 35%);
}

.debackers-collection-banner.is-tone-dark {
	color: var(--wp--preset--color--ink);
}

.debackers-collection-banner.is-tone-dark .debackers-collection-banner__text {
	background: linear-gradient(to top, rgb(255 255 255 / 55%), rgb(255 255 255 / 0%) 60%);
}

/* The catalog under a cover starts with its usual spacing, not a second gap. */
.debackers-collection .debackers-collection-banner + .ct-container,
.debackers-collection .debackers-collection-banner + div > .ct-container {
	padding-block-start: var(--wp--preset--spacing--30);
}

@media (min-width: 782px) {
	.debackers-collection-banner.has-image {
		aspect-ratio: 16 / 6;
		max-block-size: 540px;
		min-block-size: 300px;
		inline-size: 100%;
	}

	.debackers-collection-banner__image,
	.debackers-collection-banner.has-image .debackers-collection-banner__image img {
		object-position: var(--debackers-cover-position, 50% 50%);
	}

	.debackers-collection-banner__inner {
		padding-block: 40px;
		padding-inline: 32px;
	}

	.debackers-collection-banner.has-image .debackers-collection-banner__intro {
		font-size: 1.125rem;
		max-inline-size: 32em;
	}

	.debackers-collection-banner.is-align-center .debackers-collection-banner__intro {
		margin-inline: auto;
	}

	.debackers-collection-banner.is-align-end .debackers-collection-banner__intro {
		margin-inline-start: auto;
	}
}

@media (max-width: 781.98px) {
	.debackers-collection-empty,
	.debackers-collection-empty + p {
		padding-inline: 16px;
	}
}

.debackers-collection-empty {
	font-size: var(--wp--preset--font-size--md, 1.125rem);
	margin-block: var(--wp--preset--spacing--40) 8px;
}

.debackers-collection-empty__link {
	color: var(--wp--preset--color--ink);
	display: inline-block;
	min-block-size: 44px;
	padding-block: 10px;
	text-decoration: underline;
	text-underline-offset: 4px;
}

/* «عودة إلى المتجر» on the policy pages (TASK-0076): the purchase button's look — ink, 44px, bold — as a link. */
.debackers-policy-shop {
	margin-block: var(--wp--preset--spacing--40, 32px) 0;
}

.debackers-policy-shop__link {
	align-items: center;
	background: var(--wp--preset--color--ink);
	border-radius: 2px;
	color: var(--wp--preset--color--surface);
	display: inline-flex;
	font-size: 16px;
	font-weight: 600;
	justify-content: center;
	min-block-size: 48px;
	min-inline-size: min(100%, 260px);
	padding-inline: 24px;
	text-decoration: none;
}

.debackers-policy-shop__link:is(:hover, :focus-visible) {
	color: var(--wp--preset--color--surface);
	opacity: 0.88;
}

.debackers-policy-shop__link:focus-visible {
	outline: 2px solid var(--wp--preset--color--ink);
	outline-offset: 3px;
}

/* Google sign-in preview (TASK-0076, owner decision TASK-0077): Google's own light button look, full colour and
   full size — not greyed — on the account page; it has no action until hosting. */
.debackers-account-providers {
	margin-block-end: var(--wp--preset--spacing--40, 32px);
	max-inline-size: 420px;
}

.debackers-google-preview {
	align-items: center;
	background: #fff;
	border: 1px solid #747775;
	border-radius: 4px;
	color: #1f1f1f;
	cursor: default;
	display: flex;
	font-family: inherit;
	font-size: 16px;
	font-weight: 600;
	gap: 12px;
	justify-content: center;
	inline-size: 100%;
	min-block-size: 48px;
	padding: 10px 16px;
}

.debackers-google-preview:focus-visible {
	outline: 2px solid var(--wp--preset--color--ink);
	outline-offset: 3px;
}

.debackers-google-preview__mark {
	flex: 0 0 auto;
}


/* ── TASK-0086: compact checkout, coupon entry, saved delivery, total in words ─────────────────────────── */
.debackers-coupon {
	border-block: 1px solid var(--wp--preset--color--line, #dde1e5);
	margin-block: 12px;
	padding-block: 10px;
}

.debackers-coupon__summary,
.debackers-coupon__mine > summary {
	cursor: pointer;
	font-weight: 600;
	min-block-size: 44px;
	display: flex;
	align-items: center;
}

.debackers-coupon__row {
	display: flex;
	gap: 8px;
	margin-block-start: 6px;
}

.debackers-coupon__row input {
	flex: 1 1 auto;
	min-inline-size: 0;
	text-transform: uppercase;
}

.debackers-coupon__apply,
.debackers-coupon__use {
	flex: none;
	min-block-size: 44px;
}

.debackers-coupon__status {
	font-size: 14px;
	margin-block: 6px 0;
}

.debackers-coupon__status:empty {
	display: none;
}

.debackers-coupon__status[data-state="error"] {
	color: var(--wp--preset--color--sale);
}

.debackers-coupon__list {
	display: grid;
	gap: 8px;
	list-style: none;
	margin: 6px 0 0;
	padding: 0;
}

.debackers-coupon__item {
	align-items: center;
	border: 1px solid var(--wp--preset--color--line, #dde1e5);
	border-radius: 4px;
	display: grid;
	gap: 2px 10px;
	grid-template-columns: minmax(0, 1fr) auto;
	padding: 8px 10px;
}

.debackers-coupon__title {
	font-weight: 600;
	overflow-wrap: anywhere;
}

.debackers-coupon__details {
	color: var(--wp--preset--color--muted);
	font-size: 13px;
	grid-column: 1;
}

.debackers-coupon__item > :is(button, .debackers-coupon__applied, .debackers-coupon__state) {
	grid-column: 2;
	grid-row: 1 / span 2;
}

.debackers-coupon__item.is-unavailable {
	opacity: 0.7;
}

.debackers-coupon__mine-guest {
	background: none;
	border: 0;
	color: var(--wp--preset--color--ink);
	min-block-size: 44px;
	padding: 0;
	text-decoration: underline;
}

.debackers-coupon__dialog {
	border: 1px solid var(--wp--preset--color--line, #dde1e5);
	border-radius: 6px;
	max-inline-size: min(420px, calc(100vw - 32px));
	padding: 20px;
}

.debackers-coupon__dialog::backdrop {
	background: rgba(20, 28, 38, 0.45);
}

.debackers-coupon__dialog h2 {
	font-size: 18px;
	margin-block: 0 8px;
}

.debackers-coupon__dialog-actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

.debackers-coupon__dialog-close {
	background: none;
	border: 0;
	margin-block-start: 8px;
	min-block-size: 44px;
	padding: 0;
	text-decoration: underline;
}

.debackers-saved-address {
	border: 1px solid var(--wp--preset--color--line, #dde1e5);
	border-radius: 4px;
	margin-block-end: 12px;
	padding: 8px 12px;
}

.debackers-saved-address__choice {
	align-items: center;
	display: flex;
	font-weight: 600;
	gap: 8px;
	min-block-size: 44px;
}

.debackers-saved-address :is(.debackers-saved-address__summary, .debackers-saved-address__hint) {
	font-size: 13px;
	margin: 0;
}

.debackers-saved-address__hint,
.debackers-checkout-guest-note {
	color: var(--wp--preset--color--muted);
}

.debackers-checkout-guest-note {
	font-size: 13px;
	margin-block: 4px 0;
}

.woocommerce-checkout-review-order-table tr.debackers-total-words :is(th, td) {
	font-size: 14px;
	font-weight: 400;
	padding-block-start: 0;
}

.woocommerce-checkout-review-order-table tr.debackers-total-words td {
	color: var(--wp--preset--color--muted);
}

/* Measured compaction (TASK-0086): less space around the title, between fields, in product rows and payment
   boxes; tap targets, labels, hints and totals keep their sizes. */
@media (max-width: 689px) {
	.woocommerce-checkout .ct-container[data-vertical-spacing] {
		padding-block: 8px 16px;
	}

	.woocommerce-checkout .hero-section[data-type="type-1"] {
		margin-block-end: 12px;
	}

	.woocommerce-checkout form.checkout .form-row {
		margin-block-end: 8px;
	}

	.woocommerce-checkout form.checkout .form-row label {
		margin-block-end: 2px;
	}

	.woocommerce-checkout-review-order-table .cart_item td {
		padding-block: 8px;
	}

	.woocommerce-checkout-review-order-table :is(tfoot th, tfoot td) {
		padding-block: 8px;
	}

	form.checkout > .ct-order-review {
		padding-block: 16px;
	}

	.woocommerce-checkout #payment ul.payment_methods > li {
		padding-block: 6px;
	}

	.woocommerce-checkout #payment div.payment_box {
		margin-block: 6px 0;
		padding: 8px 10px;
	}

	.woocommerce-checkout #payment .place-order {
		padding-block: 8px 0;
	}
}


.woocommerce-checkout-review-order-table tfoot :is(th, td) {
	border-block-start: 1px solid var(--wp--preset--color--line, #dde1e5);
}

.woocommerce-checkout-review-order-table .order-total .amount {
	white-space: nowrap;
	font-size: 18px;
}

.woocommerce-checkout-review-order-table .order-total .woocommerce-Price-currencySymbol {
	font-size: 11px;
}

/* ── TASK-0086: «أفرعنا» ─────────────────────────────────────────────────────────────────────────── */
.debackers-branches__jump ul {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
}

.debackers-branches__jump a {
	align-items: center;
	border: 1px solid var(--wp--preset--color--line, #dde1e5);
	border-radius: 999px;
	display: inline-flex;
	min-block-size: 44px;
	padding-inline: 16px;
	text-decoration: none;
}

.debackers-branches__group {
	margin-block-end: 32px;
	scroll-margin-block-start: 90px;
}

.debackers-branches__group > h2 {
	font-size: 22px;
	margin-block: 0 12px;
}

.debackers-branches__grid {
	display: grid;
	gap: 16px;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
}

.debackers-branch {
	/* TASK-0102 (owner): cream instead of white. */
	background: var(--debackers-cream, #e0dad3);
	border: 1px solid var(--wp--preset--color--line, #dde1e5);
	border-radius: 6px;
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 14px;
	padding: 0;
	overflow: hidden;
}

.debackers-branch__body { padding: 0 16px 16px; }

.debackers-branch__image {
	aspect-ratio: 16 / 9;
	border-radius: 0;
	block-size: auto;
	inline-size: 100%;
	object-fit: cover;
}

.debackers-branch__image.is-placeholder {
	object-fit: contain;
	padding: 20px;
}

.debackers-branch__name {
	font-size: 18px;
	margin: 0 0 4px;
}

.debackers-branch__address,
.debackers-branch__notes,
.debackers-branch__exceptions {
	font-size: 14px;
	margin: 0 0 8px;
}

.debackers-branch__exceptions {
	font-weight: 600;
}

.debackers-branch__label {
	color: var(--wp--preset--color--muted);
	font-size: 13px;
	font-weight: 600;
	margin: 0 0 4px;
}

.debackers-branch__hours,
.debackers-branch__phones {
	list-style: none;
	margin: 0 0 8px;
	padding: 0;
}

.debackers-branch__hours li {
	display: flex;
	flex-wrap: wrap;
	font-size: 14px;
	gap: 4px 12px;
	justify-content: space-between;
}

.debackers-branch__hours li.is-closed span:last-child {
	color: var(--wp--preset--color--muted);
}

.debackers-branch__hours li.is-closed {
	justify-content: flex-start;
}

.debackers-branch__phones {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.debackers-branch__phones a,
.debackers-branch__maps {
	align-items: center;
	border: 1px solid var(--wp--preset--color--ink);
	border-radius: 4px;
	display: inline-flex;
	font-variant-numeric: tabular-nums;
	min-block-size: 44px;
	padding-inline: 12px;
	text-decoration: none;
	unicode-bidi: isolate;
}

@media (max-width: 380px) {
	.debackers-branch {
		grid-template-columns: 64px minmax(0, 1fr);
	}

	.debackers-branch__image {
		inline-size: 64px;
	}
}

/* TASK-0086 / TASK-0102 (owner): service pages (FAQ, shipping and payment, terms) — readable headings and question
   rows of one height and spacing; a chevron at the far edge says each question opens, and turns when it does. */
.entry-content .wp-block-details {
	border-block-end: 1px solid var(--wp--preset--color--line, #d9d4cf);
	margin-block: 0;
}

.entry-content .wp-block-details > summary {
	align-items: center;
	cursor: pointer;
	display: flex;
	font-size: 16px;
	font-weight: 500;
	gap: 12px;
	justify-content: space-between;
	line-height: 1.5;
	list-style: none;
	min-block-size: 56px;
	padding-block: 12px;
}

.entry-content .wp-block-details > summary::-webkit-details-marker {
	display: none;
}

.entry-content .wp-block-details > summary::after {
	background: currentColor;
	block-size: 7px;
	content: "";
	flex: none;
	inline-size: 12px;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 7'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23000' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform var(--debackers-motion-base, 200ms);
}

.entry-content .wp-block-details[open] > summary::after {
	transform: rotate(180deg);
}

.entry-content .wp-block-details > p {
	color: var(--wp--preset--color--muted);
	line-height: 1.8;
	margin-block: -2px 16px;
}

/* Legal pages (privacy, terms, exchange): smaller section headings, airy paragraphs, «label:» lists. */
.debackers-legal-page .entry-content > h2,
.debackers-legal-page .entry-content > .wp-block-heading {
	font-size: 18px;
	font-weight: 600;
	margin-block: 32px 10px;
}

.debackers-legal-page .entry-content > p,
.debackers-legal-page .entry-content > ul li {
	font-size: 15px;
	line-height: 1.85;
}

.debackers-legal-page .entry-content > p:first-child {
	color: var(--wp--preset--color--muted);
	font-size: 13px;
}

.debackers-legal-list {
	display: grid;
	gap: 8px;
	margin-block: 4px 12px;
	padding-inline-start: 20px;
}

.debackers-legal-list strong {
	font-weight: 600;
}

/* Complaints (TASK-0102): the fields wait, dimmed, until the message type is chosen. */
.debackers-complaints__form .is-locked {
	opacity: 0.45;
}

.entry-content .wp-block-details > summary:focus-visible {
	outline: 2px solid var(--wp--preset--color--ink);
	outline-offset: 2px;
}

.entry-content .wp-block-details > p {
	margin-block: 0 12px;
}

.page .entry-content > h2.wp-block-heading {
	font-size: clamp(20px, 5vw, 26px);
	margin-block: 28px 8px;
}

/* ── TASK-0086: «الشكاوى والاقتراحات» ────────────────────────────────────────────────────────────── */
.debackers-complaints {
	max-inline-size: 720px;
}

.debackers-complaints__form {
	display: grid;
	gap: 16px;
}

.debackers-complaints__group {
	border: 0;
	display: grid;
	gap: 12px;
	margin: 0;
	padding: 0;
}

.debackers-complaints__group > legend {
	font-weight: 700;
	margin-block-end: 8px;
	padding: 0;
}

.debackers-complaints__choices {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
}

.debackers-complaints__choice {
	align-items: center;
	border: 1px solid var(--wp--preset--color--line, #dde1e5);
	border-radius: 4px;
	cursor: pointer;
	display: inline-flex;
	gap: 8px;
	min-block-size: 44px;
	padding-inline: 14px;
}

.debackers-complaints__choice:has(input:checked) {
	border-color: var(--wp--preset--color--ink);
	box-shadow: 0 0 0 1px var(--wp--preset--color--ink) inset;
	background: var(--wp--preset--color--ink);
	color: #fff;
}

.debackers-complaints__choice input[type="radio"] {
	appearance: none;
	border: 1px solid currentColor;
	border-radius: 2px;
	inline-size: 16px;
	block-size: 16px;
	flex: 0 0 16px;
}

.debackers-complaints__choice input:checked::after {
	content: "\2713";
	display: block;
	font-size: 13px;
	line-height: 14px;
	text-align: center;
}

.debackers-complaints__choice:focus-within {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.debackers-evidence-input {
	inline-size: 1px;
	block-size: 1px;
	position: absolute;
	clip-path: inset(50%);
}

.debackers-evidence-input:focus-visible + label {
	outline: 2px solid currentColor;
	outline-offset: 3px;
}

.debackers-complaints__field label.debackers-complaints__button {
	display: flex;
	align-items: center;
	justify-content: center;
	inline-size: fit-content;
}

.debackers-complaints__field {
	display: grid;
	gap: 4px;
}

.debackers-complaints__field label {
	font-weight: 600;
}

.debackers-complaints__field :is(input:not([type="file"]), select, textarea) {
	box-sizing: border-box;
	inline-size: 100%;
	min-block-size: 44px;
}

.debackers-complaints__optional,
.debackers-complaints__hint {
	color: var(--wp--preset--color--muted);
	font-size: 13px;
	font-weight: 400;
}

.debackers-complaints__required,
.debackers-complaints__error {
	color: var(--wp--preset--color--sale);
}

.debackers-complaints__error {
	font-size: 14px;
}

.debackers-complaints__field.has-error :is(input, select, textarea) {
	border-color: var(--wp--preset--color--sale);
}

.debackers-complaints__summary {
	border: 2px solid var(--wp--preset--color--sale);
	border-radius: 4px;
	margin-block-end: 16px;
	padding: 12px 16px;
}

.debackers-complaints__summary a {
	color: var(--wp--preset--color--sale);
}

.debackers-complaints__privacy {
	font-size: 13px;
	margin: 0;
}

.debackers-complaints__hp {
	block-size: 1px;
	inline-size: 1px;
	overflow: hidden;
	position: absolute;
	inset-inline-start: -9999px;
}

.debackers-complaints__button {
	background: var(--wp--preset--color--ink);
	border: 0;
	border-radius: 4px;
	color: #fff;
	cursor: pointer;
	font-weight: 700;
	min-block-size: 48px;
	padding-inline: 24px;
}

.debackers-complaints__button--secondary {
	background: transparent;
	border: 1px solid var(--wp--preset--color--ink);
	color: var(--wp--preset--color--ink);
	min-block-size: 44px;
}

.debackers-complaints__button[aria-disabled="true"] {
	opacity: 0.6;
}

.debackers-complaints__receipt,
.debackers-complaints__track {
	border: 1px solid var(--wp--preset--color--line, #dde1e5);
	border-radius: 6px;
	margin-block-end: 24px;
	padding: 16px 20px;
}

.debackers-complaints__link a {
	overflow-wrap: anywhere;
}

.debackers-complaints__steps {
	display: grid;
	gap: 8px;
	list-style: none;
	margin: 12px 0;
	padding: 0;
}

.debackers-complaints__steps li {
	color: var(--wp--preset--color--muted);
	padding-inline-start: 24px;
	position: relative;
}

.debackers-complaints__steps li::before {
	border: 2px solid currentColor;
	border-radius: 50%;
	block-size: 12px;
	content: "";
	inline-size: 12px;
	inset-block-start: 6px;
	inset-inline-start: 0;
	position: absolute;
}

.debackers-complaints__steps li.is-done {
	color: var(--wp--preset--color--ink);
	font-weight: 600;
}

.debackers-complaints__steps li.is-done::before {
	background: currentColor;
}

.debackers-complaints__messages {
	padding-inline-start: 18px;
}

.debackers-complaints__date {
	color: var(--wp--preset--color--muted);
	font-size: 13px;
}

.debackers-complaints [hidden] {
	display: none;
}


/* ── TASK-0091: checkout summary — titles right, amounts in a fixed left column, currency under the number ─── */
/* Supersedes the one-line amount+currency rule of TASK-0089 for the checkout summary only (the card price pair
   stays on one line). Subtotal, delivery, coupon and total share one amount column; the full currency name sits
   under each number in a smaller line, so a five-digit amount never pushes «جديدة» onto a broken line. */
.woocommerce-checkout-review-order-table tfoot th {
	text-align: start;
	vertical-align: top;
}

.woocommerce-checkout-review-order-table tfoot tr:not(.debackers-total-words) td {
	inline-size: 42%;
	text-align: end;
	vertical-align: top;
}

.woocommerce-checkout-review-order-table tfoot td .amount > bdi {
	align-items: flex-end;
	display: inline-flex;
	flex-direction: column;
	line-height: 1.25;
	white-space: nowrap;
}

.woocommerce-checkout-review-order-table tfoot td .amount .woocommerce-Price-currencySymbol,
.woocommerce-checkout-review-order-table .order-total .woocommerce-Price-currencySymbol {
	color: var(--wp--preset--color--muted);
	font-size: 12px;
	font-weight: 400;
	margin-block-start: 1px;
}

.woocommerce-checkout-review-order-table .debackers-shipping-row__reason {
	color: var(--wp--preset--color--muted);
	display: block;
	font-size: 13px;
	font-weight: 400;
	line-height: 1.4;
	margin-block-start: 2px;
}

.woocommerce-checkout-review-order-table .debackers-shipping-amount {
	justify-items: end;
}

.woocommerce-checkout-review-order-table tfoot :is(th, td) {
	border-block-start-color: color-mix(in srgb, var(--wp--preset--color--ink) 10%, transparent);
	padding-block: 8px;
}

.woocommerce-checkout-review-order-table .order-total th {
	font-size: 16px;
	font-weight: 700;
}

.woocommerce-checkout-review-order-table .order-total .amount {
	font-size: 18px;
	font-weight: 700;
}

/* The total in words: one full-width row from the right edge; natural wrapping where it cannot fit. */
.woocommerce-checkout-review-order-table tr.debackers-total-words td {
	border-block-start: 0;
	font-size: 13px;
	line-height: 1.6;
	padding-block: 0 8px;
	text-align: start;
	white-space: normal;
}

.woocommerce-checkout-review-order-table tr.debackers-total-words strong {
	color: var(--wp--preset--color--ink);
	font-weight: 600;
}

/* ── TASK-0091: «أفرعنا» — façade across the card top, week/hours/Friday lines, sticky governorate bar ─── */
.debackers-branches__jump {
	background: var(--wp--preset--color--ground, #efece8);
	border-block-end: 1px solid var(--wp--preset--color--line, #dde1e5);
	margin-block-end: 20px;
	margin-inline: -12px;
	padding: 8px 12px;
	position: sticky;
	inset-block-start: var(--debackers-branches-top, 72px);
	z-index: 20;
}

.debackers-branches__jump ul {
	display: grid;
	gap: 6px;
	grid-template-columns: repeat(auto-fill, minmax(88px, 1fr));
	margin: 0;
}

.debackers-branches__jump a {
	/* TASK-0102 (owner): cream instead of white. */
	background: var(--debackers-cream, #e0dad3);
	justify-content: center;
	min-block-size: 40px;
	padding-inline: 8px;
	white-space: nowrap;
}

.debackers-branches__jump a:hover {
	border-color: var(--wp--preset--color--ink);
}

.debackers-branches__jump a {
	transition: none; /* the active state is set after load; a fading colour was briefly low-contrast */
}

.debackers-branches__jump a[aria-current] {
	background: var(--wp--preset--color--ink);
	border-color: var(--wp--preset--color--ink);
	color: #fff;
	font-weight: 600;
}

.debackers-branches__group {
	scroll-margin-block-start: calc(var(--debackers-branches-top, 72px) + var(--debackers-branches-bar, 56px) + 8px);
}

@media (min-width: 690px) {
	.debackers-branches__jump {
		margin-inline: 0;
		padding-inline: 0;
	}

	.debackers-branches__jump ul {
		display: flex;
		flex-wrap: wrap;
	}

	.debackers-branches__jump a {
		min-inline-size: 96px;
	}
}

/* At large zoom or a short landscape screen the bar scrolls with the page instead of covering it. */
@media (max-height: 520px) {
	.debackers-branches__jump {
		position: static;
	}
}

.debackers-branch {
	gap: 12px;
}

.debackers-branch__media {
	line-height: 0;
}

.debackers-branch__image:not(.is-placeholder) {
	aspect-ratio: auto;
	block-size: auto;
	display: block;
	inline-size: 100%;
	object-fit: fill;
}

.debackers-branch__media:has(.is-placeholder) {
	padding-block-start: 16px;
	text-align: center;
}

.debackers-branch__image.is-placeholder {
	aspect-ratio: 1;
	block-size: 64px;
	inline-size: 64px;
	object-fit: contain;
	opacity: 0.85;
	padding: 0;
}

.debackers-branch__hours li {
	display: block;
	margin-block-end: 6px;
}

.debackers-branch__hours li > span {
	display: block;
}

.debackers-branch__days {
	font-weight: 600;
}

.debackers-branch__hours li.debackers-branch__friday {
	border-block-start: 1px solid var(--wp--preset--color--line, #dde1e5);
	padding-block-start: 6px;
}

.debackers-branch__friday.is-closed {
	color: var(--wp--preset--color--muted);
}

.debackers-branch__maps {
	gap: 6px;
	margin-block-start: 4px;
}

@media (max-width: 689px) {
	.debackers-branches .debackers-branch__body {
		padding: 0 12px 14px;
	}
}

@media (max-width: 380px) {
	.debackers-branch {
		grid-template-columns: minmax(0, 1fr);
	}

	.debackers-branch__image:not(.is-placeholder) {
		inline-size: 100%;
	}
}

/* ── TASK-0091 (R3): complaint title and branch lists — compact picker, readable, 44px target ─────── */
.debackers-complaints__picker {
	display: flex;
	inline-size: 100%;
}

.debackers-complaints__picker .debackers-picker__toggle {
	border-color: var(--wp--preset--color--muted);
	font-size: 15px;
	inline-size: 100%;
	min-block-size: 44px;
	padding-inline: 12px;
}

.debackers-complaints__picker.is-empty .debackers-picker__value {
	color: var(--wp--preset--color--muted);
}

.debackers-complaints__picker .debackers-picker__list {
	font-size: 15px;
	inline-size: 100%;
	max-block-size: min(280px, 50vh);
}

.debackers-complaints__picker .debackers-picker__option {
	white-space: normal;
}

.debackers-complaints__field.has-error .debackers-picker__toggle {
	border-color: var(--wp--preset--color--sale);
}

/* ── TASK-0091: «عرض كوبوناتي» as a clear button; compact coupon row with its code, negative value and «إزالة» ── */
.debackers-coupon__mine > summary,
.debackers-coupon__mine-guest {
	align-items: center;
	background: var(--wp--preset--color--surface, #fff);
	border: 1px solid var(--wp--preset--color--ink);
	border-radius: 4px;
	color: var(--wp--preset--color--ink);
	cursor: pointer;
	display: inline-flex;
	font-size: 14px;
	font-weight: 600;
	gap: 8px;
	list-style: none;
	margin-block-start: 8px;
	min-block-size: 44px;
	padding-inline: 14px;
	text-decoration: none;
}

.debackers-coupon__mine > summary::-webkit-details-marker {
	display: none;
}

.debackers-coupon__mine > summary:hover,
.debackers-coupon__mine-guest:hover,
.debackers-coupon__mine[open] > summary {
	background: var(--wp--preset--color--ink);
	color: #fff;
}

.debackers-coupon__mine > summary:focus-visible,
.debackers-coupon__mine-guest:focus-visible {
	outline: 2px solid var(--wp--preset--color--ink);
	outline-offset: 2px;
}

.woocommerce-checkout-review-order-table tr.cart-discount th {
	font-weight: 500;
}

.woocommerce-checkout-review-order-table .debackers-coupon-code {
	font-family: var(--wp--preset--font-family--latin);
	font-size: 13px;
	letter-spacing: 0.02em;
	unicode-bidi: isolate;
}

.woocommerce-checkout-review-order-table tr.cart-discount td {
	color: var(--wp--preset--color--sale);
}

.woocommerce-checkout-review-order-table .debackers-coupon-discount .amount > bdi {
	flex-direction: column;
}

.woocommerce-checkout-review-order-table .debackers-coupon-remove {
	color: var(--wp--preset--color--muted);
	display: inline-block;
	font-size: 13px;
	padding-block: 4px;
	text-decoration: underline;
}

.woocommerce-checkout-review-order-table .debackers-total-pair {
	align-items: baseline;
	display: inline-flex;
	flex-wrap: wrap;
	gap: 2px 8px;
	justify-content: flex-end;
}

.woocommerce-checkout-review-order-table .debackers-total-before {
	color: var(--wp--preset--color--muted);
	font-size: 13px;
	font-weight: 400;
}

/* TASK-0091: governorate bar cells — equal width, four per row on a phone, a compact regular strip. */
.debackers-branches__jump li {
	display: flex;
}

.debackers-branches__jump a {
	border-radius: 6px;
	flex: 1 1 auto;
	font-size: 14px;
}

@media (max-width: 689px) {
	.debackers-branches__jump ul {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

/* TASK-0091: measured checkout slack on a phone (390px): 50px above the title, 61px payment rows, a 32px gap before
   the privacy note, 12px around the coupon block. Rows keep a 44px target; errors and hints keep their sizes. */
@media (max-width: 689px) {
	.woocommerce-checkout #main > .ct-container-full {
		padding-block: 16px 24px;
	}

	.woocommerce-checkout #payment ul.payment_methods > li > label {
		min-block-size: 44px;
		padding-block: 8px;
	}

	.woocommerce-checkout #payment .place-order {
		margin-block: 12px 8px;
	}

	.debackers-coupon {
		margin-block: 8px;
		padding-block: 6px;
	}
}

/* TASK-0091: a field or payment option brought into view (focus, error jump) stops above the sticky confirm bar,
   which stays at the bottom of the viewport at every width. */
html:has(body.woocommerce-checkout .debackers-checkout-submit) {
	scroll-padding-block-end: 84px;
}

/* TASK-0091: on a phone «أفرعنا» uses 10px page gutters (instead of Blocksy's ~23px) so each card and its façade
   photo are wider; text keeps its own inner padding. The governorate bar runs edge to edge. */
@media (max-width: 689px) {
	.entry-content.is-layout-constrained > .debackers-branches {
		inline-size: calc(100% - 20px);
		max-inline-size: none;
	}

	.debackers-branches__jump {
		margin-inline: -10px;
		padding-inline: 10px;
	}
}

/* ── TASK-0093: «أفرعنا» — one bounded photo box per card ─────────────────────────────────────────── */
/* The façade photo used to keep its own ratio (D-256): a portrait photo made its card — and every card of the row —
   over 700px tall. The photo now covers a fixed box: a square capped at 280px on wide screens and a short band on a
   phone, sized so the whole card and the start of the next one fit the screen. A branch without a photo shows the
   small mark in the same box, so every card has one structure and height. */
.debackers-branch__media,
.debackers-branch__media:has(.is-placeholder) {
	align-items: center;
	aspect-ratio: 4 / 3;
	background: var(--wp--preset--color--ground, #efece8);
	display: flex;
	inline-size: 100%;
	justify-content: center;
	max-block-size: 340px;
	overflow: hidden;
	padding: 0;
}

.debackers-branch__image:not(.is-placeholder) {
	aspect-ratio: auto;
	block-size: 100%;
	inline-size: 100%;
	object-fit: cover;
}

.debackers-branch__edit {
	color: var(--wp--preset--color--muted);
	display: block;
	inline-size: fit-content;
	font-size: 13px;
	margin-block-start: 10px;
	text-decoration: underline;
}

/* On a phone the photo spans the card top, as before, in a taller box (owner, 2026-10-02: the 96–176px band hid the
   shop front, and a photo beside the text was not wanted): 5:4 of the card width — 296px on a 390px phone — covered
   by the photo at the owner's chosen focus. A landscape photo keeps its own ratio when that is shorter. No photo: a
   short band with the mark. */
@media (max-width: 689px) {
	.debackers-branch__media {
		aspect-ratio: 5 / 4;
		block-size: auto;
		max-block-size: 320px;
	}

	.debackers-branch--landscape > .debackers-branch__media {
		aspect-ratio: max(1.25, var(--debackers-branch-number, 1.25));
	}

	.debackers-branch__media:has(.is-placeholder) {
		aspect-ratio: auto;
		block-size: 96px;
		max-block-size: none;
	}
}

/* TASK-0151: the owner's front photos are prepared at 4:3 to 16:9 with the whole front inside, so the wide-screen box
   is 4:3 (was a square that cut both sides) and a phone shows each photo whole at its own ratio. */

/* Cards of one row share the tallest height: the spare space goes under the text, never between photo and text. */
.debackers-branch {
	grid-template-rows: auto 1fr;
}


/* TASK-0093: the checkout trap field — out of sight and out of the tab order, never `display: none` (scripts that
   fill every visible-looking field still find it). */
.debackers-trap {
	block-size: 1px;
	clip-path: inset(50%);
	inline-size: 1px;
	overflow: hidden;
	position: absolute;
	white-space: nowrap;
}

/* ── TASK-0096 (plan 2.0): announcement bar above the black header — light, one message at a time ───────── */
.dbk-announce {
	background: var(--wp--preset--color--ground);
	border-block-end: 1px solid rgb(28 28 28 / 10%);
	color: var(--wp--preset--color--ink);
	overflow: hidden;
	position: relative;
}

/* TASK-0098: a slimmer bar with larger type (owner). 34px keeps the links above the 24px target minimum. */
.dbk-announce__list {
	block-size: 34px;
	list-style: none;
	margin: 0;
	padding: 0;
	position: relative;
}

.dbk-announce__item {
	align-items: center;
	display: flex;
	font-size: 14px;
	font-weight: 500;
	inset: 0;
	justify-content: center;
	line-height: 1.3;
	opacity: 0;
	padding-inline: 12px;
	position: absolute;
	text-align: center;
	transform: translateY(100%);
}

.dbk-announce__item:first-child {
	opacity: 1;
	transform: none;
}

.dbk-announce[data-count]:not([data-count="1"]) .dbk-announce__item {
	animation: dbk-announce var(--dbk-announce-cycle, 12s) linear infinite both;
	animation-delay: calc(var(--i) * var(--dbk-announce-step, 1500ms) - 0.3s);
}

.dbk-announce:is(:hover, :focus-within) .dbk-announce__item {
	animation-play-state: paused;
}

/* A message reached by keyboard is shown, whatever point of the rotation it was at. */
.dbk-announce .dbk-announce__item:focus-within {
	animation: none;
	opacity: 1;
	transform: none;
	z-index: 1;
}

.dbk-announce:focus-within .dbk-announce__item:not(:focus-within) {
	visibility: hidden;
}

.dbk-announce__item a {
	align-items: center;
	color: inherit;
	display: inline-flex;
	min-block-size: 34px;
	text-decoration: underline 1px transparent;
	text-underline-offset: 4px;
}

.dbk-announce__item a:hover,
.dbk-announce__item a:focus-visible {
	text-decoration-color: currentColor;
}

.dbk-announce__item a:focus-visible {
	outline: 2px solid var(--wp--preset--color--ink);
	outline-offset: -2px;
}

/* Reduced motion: the first message stays; the others remain in the list for screen readers. */
@media (prefers-reduced-motion: reduce) {
	.dbk-announce .dbk-announce__item {
		animation: none !important;
	}

	.dbk-announce .dbk-announce__item:not(:first-child) {
		opacity: 0;
	}
}

/* ── The name band under the Footer (TASK-0096 plan 2.12; TASK-0101 owner: small, one line, like the Egypt store) ──
   «DE BACKER’S since 1986» on one line at every width, sized near the header wordmark: a closing signature, not a
   poster. */
.dbk-name-band {
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--ground);
	overflow: hidden;
	padding: clamp(18px, 2.4vw, 28px) 16px;
}

.dbk-name-band__text {
	font-family: var(--wp--preset--font-family--latin);
	font-size: clamp(17px, 2vw, 24px);
	font-weight: 700;
	letter-spacing: 0.01em;
	line-height: 1.2;
	margin: 0;
	text-align: center;
	white-space: nowrap;
}

.dbk-name-band__tagline {
	font-weight: 500;
	white-space: nowrap;
}

/* TASK-0098 r2 (owner): wherever a price is reduced, the price to pay reads first (right in RTL) and the struck
   former price sits beside it (left). Covers recommendations, «complete the look», the sticky bar and any other
   WooCommerce price markup with the former price first in the source. */
:is(.price, .debackers-look__price, .debackers-pdp-bar__price):has(> del) {
	align-items: baseline;
	display: inline-flex;
	flex-wrap: wrap;
	gap: 0 8px;
}

:is(.price, .debackers-look__price, .debackers-pdp-bar__price):has(> del) > ins {
	order: 1;
}

:is(.price, .debackers-look__price, .debackers-pdp-bar__price):has(> del) > del {
	margin-inline-end: 0;
	order: 2;
}

:is(.price, .debackers-look__price, .debackers-pdp-bar__price):has(> del) > .screen-reader-text {
	order: 3;
}


/* ── TASK-0102 (owner round 4) ────────────────────────────────────────────────────────────────────────────────── */

/* «سكري» (TASK-0102/0103, owner): a warm cream one step lighter than the page's ground — not white — for the
   surfaces that used to be white (reviews, branch cards and city buttons, the account notice): they read as their own
   card on the page, as the pieces did on the darker trial band. One value for the whole store. */
:root {
	--debackers-cream: #f2eeeb;
}

/* One price pattern everywhere (owner): the price to pay at the reading edge (right), the former price beside it on
   the left, on the same baseline, 1px smaller, in regular weight, struck by one straight darker line across number
   and currency. WooCommerce's sale markup comes with or without a .sale-price wrapper, so both are covered. */
.sale-price {
	align-items: baseline;
	display: inline-flex;
	flex-wrap: wrap;
	gap: 0 8px;
}

:is(.sale-price, .price, .dbk-card__price, .debackers-look__price, .debackers-reco__price, .debackers-pdp-bar__price, .debackers-wishlist-item__price) > ins {
	font-weight: 400;
	order: 1;
	text-decoration: none;
}

:is(.sale-price, .price, .dbk-card__price, .debackers-look__price, .debackers-reco__price, .debackers-pdp-bar__price, .debackers-wishlist-item__price) > del {
	order: 2;
}

body :is(.sale-price, .price, .dbk-card__price, .debackers-look__price, .debackers-reco__price, .debackers-pdp-bar__price, .debackers-wishlist-item__price) del {
	font-size: calc(1em - 1px);
	font-weight: 400;
	margin-inline-end: 0;
	opacity: 1;
	position: relative;
	text-decoration: none;
	white-space: nowrap;
}

body :is(.sale-price, .price, .dbk-card__price, .debackers-look__price, .debackers-reco__price, .debackers-pdp-bar__price, .debackers-wishlist-item__price) del::after {
	border-block-start: 1px solid rgb(28 28 28 / 72%);
	content: "";
	inset-block-start: 54%;
	inset-inline: -1px;
	pointer-events: none;
	position: absolute;
}

body :is(.dbk-tabs--sale, .debackers-look) del::after {
	border-block-start-color: rgb(233 229 226 / 80%);
}

/* The currency keeps one size (0.8 of its price) in both prices, so «ل.س.ج» stands on the numbers' line. */
body :is(.price, .dbk-card__price, .debackers-look__price, .debackers-reco__price, .debackers-pdp-bar__price, .debackers-wishlist-item__price) .woocommerce-Price-currencySymbol {
	font-size: 0.8em;
	text-decoration: none;
}


/* ── Drawers (owner): cart, wishlist and filter are panels — a thin strip of the page stays visible beside them ── */
@media (min-width: 360px) {
	.debackers-cart,
	.debackers-wishlist,
	.debackers-filter {
		inline-size: min(420px, calc(100vw - 28px));
	}
}

/* ── Cart lines (owner): name; colour and price on one line; «المقاس» over its box, the quantity and a trash button
   on the same row; a grey hairline between products. The size list opens as a small floating grid. ── */
.debackers-cart-item {
	align-items: start;
	grid-template-areas:
		"thumb name name"
		"thumb meta total"
		"thumb row row";
	grid-template-columns: 64px minmax(0, 1fr) auto;
	padding-block: 14px;
	row-gap: 3px;
}

.debackers-cart-item + .debackers-cart-item {
	border-block-start: 1px solid var(--wp--preset--color--line, #d9d4cf);
}

.debackers-cart-item > img,
.debackers-cart-item > picture > img {
	grid-row: 1 / span 3;
	inline-size: 64px;
}

.debackers-cart-item__name {
	font-size: 15px;
	font-weight: 400;
	line-height: 1.45;
}

.debackers-cart-item__meta {
	align-self: baseline;
	font-size: 13px;
}

.debackers-cart-item__total {
	align-self: baseline;
	font-size: 14px;
	font-weight: 400;
}

.debackers-cart-item__row {
	align-items: flex-end;
	display: flex;
	flex-wrap: wrap;
	gap: 8px 10px;
	grid-area: row;
	margin-block-start: 6px;
	min-inline-size: 0;
}

.debackers-cart-item .debackers-line-sizes {
	gap: 8px;
	grid-area: auto;
	margin: 0;
}

.debackers-cart-item .debackers-line-size {
	align-items: flex-start;
	flex-direction: column;
	flex-wrap: nowrap;
	gap: 3px;
	position: relative;
}

.debackers-cart-item .debackers-line-size__label {
	font-size: 12px;
	line-height: 1.2;
}

.debackers-cart-item .debackers-line-size .debackers-picker__toggle {
	gap: 6px;
	min-block-size: 34px;
	min-inline-size: 60px;
	padding-inline: 10px 8px;
}

.debackers-cart-item .debackers-picker--inline .debackers-picker__list {
	background: var(--wp--preset--color--surface);
	border: 1px solid rgba(20, 28, 38, 0.18);
	border-radius: 4px;
	box-shadow: 0 10px 28px rgba(20, 28, 38, 0.16);
	grid-template-columns: repeat(4, 48px);
	inset-block-start: calc(100% + 6px);
	inset-inline-start: 0;
	padding: 6px;
	position: absolute;
	z-index: 5;
}

.debackers-cart-item .debackers-picker--inline .debackers-picker__option {
	min-block-size: 34px;
}

.debackers-cart-item .debackers-cart-item__controls {
	flex: 1 1 auto;
	gap: 8px;
	margin: 0;
}

.debackers-cart-item .debackers-cart-item__qty button,
.debackers-cart-item .debackers-cart-item__qty input {
	inline-size: 34px;
	min-block-size: 34px;
}

.debackers-cart-item .debackers-cart-item__remove {
	align-items: center;
	block-size: 34px;
	border-radius: 50%;
	color: var(--wp--preset--color--muted);
	display: inline-flex;
	inline-size: 34px;
	justify-content: center;
	margin-inline-start: auto;
	min-block-size: 34px;
	padding: 0;
	text-decoration: none;
}

.debackers-cart-item .debackers-cart-item__remove:hover {
	background: rgb(28 28 28 / 6%);
	color: var(--wp--preset--color--sale);
}

/* ── Menu drawer (management): the last group (complaints, policies, FAQ…) one step quieter than the shop and the
   main pages above it, so the eye stays on what matters. The group starts at the second separator. ── */
#offcanvas li.debackers-menu-separator ~ li.debackers-menu-separator > .ct-menu-link,
#offcanvas li.debackers-menu-separator ~ li.debackers-menu-separator ~ li > .ct-menu-link {
	font-size: 15px;
	opacity: 0.82;
}

/* ── «لماذا أسجّل الدخول» above the sign-in form (owner) ── */
.debackers-account-reason {
	background: var(--debackers-cream);
	border-inline-start: 3px solid var(--wp--preset--color--ink);
	font-size: 15px;
	margin-block: 0 20px;
	padding: 12px 14px;
}

/* ── TASK-0103 (owner round 5) ─────────────────────────────────────────────────────────────────────────────────── */

/* The shop's struck price: one thin line only — WooCommerce's own line-through is switched off at full strength so
   it never doubles the single line drawn above (TASK-0102). */
body ul.products li.product .price del,
body .debackers-buy__price del,
body .woocommerce-cart-form del,
body .woocommerce-checkout-review-order-table del {
	text-decoration: none;
}

/* Reviews cards and branch cards keep a hairline on the cream. */
.dbk-review,
.debackers-branch {
	border-color: rgb(28 28 28 / 9%);
}

/* Cart drawer quantity (owner): one rectangle like the product page's — «−», the number, «+» — the size box's
   height, on the size box's line; no browser arrows in the number. */
.debackers-cart-item .debackers-cart-item__qty {
	align-items: stretch;
	block-size: 34px;
	border: 1px solid rgba(28, 28, 28, 0.35);
	border-radius: 2px;
	gap: 0;
}

.debackers-cart-item .debackers-cart-item__qty button,
.debackers-cart-item .debackers-cart-item__qty input {
	block-size: 100%;
	border: 0;
	border-radius: 0;
	inline-size: 30px;
	min-block-size: 0;
}

.debackers-cart-item .debackers-cart-item__qty input {
	appearance: textfield;
	-moz-appearance: textfield;
	background: transparent;
	font-size: 14px;
}

.debackers-cart-item .debackers-cart-item__qty input::-webkit-inner-spin-button,
.debackers-cart-item .debackers-cart-item__qty input::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.debackers-cart-item .debackers-line-size .debackers-picker__toggle {
	block-size: 34px;
}

/* Menu drawer (owner): the middle group (branches, contact, about) as quiet as the last one. */
#offcanvas li.debackers-menu-separator > .ct-menu-link,
#offcanvas li.debackers-menu-separator ~ li > .ct-menu-link {
	font-size: 15px;
	opacity: 0.82;
}

/* ── Checkout order lines (TASK-0103, owner): like the cart drawer's lines ───────────────────────────────────────
   Thumbnail; the name (up to two lines) with the line's final price level with it and «ليرة سورية جديدة» small and
   muted under the number; the colour; «المقاس» over its box, the quantity rectangle and a trash button on one row;
   a hairline between products. The product cell becomes a grid and the item/line wrappers dissolve into it, so the
   price (printed with the line controls) sits on the name's row. The separate price column and the header row are
   not needed any more. The review template's no-break space stays at zero size (font-size: 0 on the cell). */
.woocommerce-checkout-review-order-table thead,
.woocommerce-checkout-review-order-table .cart_item td.product-total {
	display: none;
}

/* The table becomes blocks: a hidden price column would otherwise keep the product cell to the first column's
   width. The totals rows keep their title at the reading edge and the amount at the far edge. */
.woocommerce-checkout-review-order-table,
.woocommerce-checkout-review-order-table :is(tbody, tfoot) {
	display: block;
	inline-size: 100%;
}

.woocommerce-checkout-review-order-table .cart_item {
	display: block;
}

.woocommerce-checkout-review-order-table tfoot tr {
	align-items: start;
	display: flex;
	justify-content: space-between;
}

.woocommerce-checkout-review-order-table tfoot tr > :is(th, td) {
	display: block;
}

.woocommerce-checkout-review-order-table tfoot tr > th {
	flex: 1 1 auto;
}

.woocommerce-checkout-review-order-table tfoot tr:not(.debackers-total-words) > td {
	flex: 0 1 auto;
	inline-size: auto;
	max-inline-size: 60%;
}

.woocommerce-checkout-review-order-table tfoot tr.debackers-total-words > td {
	flex: 1 1 100%;
}

.woocommerce-checkout-review-order-table .cart_item td.product-name {
	box-sizing: border-box;
	inline-size: 100%;
	max-inline-size: none;
	align-items: start;
	column-gap: 12px;
	display: grid;
	grid-template-columns: 56px minmax(0, 1fr) auto;
	/* A tall thumbnail's extra height goes to the last (empty) row, never between the name and the colour. */
	grid-template-rows: auto auto auto 1fr;
	padding-block: 12px;
	padding-inline: 0;
	row-gap: 0;
}

.woocommerce-checkout-review-order-table .cart_item + .cart_item td.product-name {
	border-block-start: 1px solid var(--wp--preset--color--line, #d9d4cf);
}

.woocommerce-checkout-review-order-table .cart_item :is(.debackers-checkout-item, .debackers-checkout-item__details, .debackers-checkout-line) {
	display: contents;
}

.woocommerce-checkout-review-order-table .cart_item .debackers-checkout-item .debackers-checkout-thumb {
	block-size: auto;
	float: none;
	grid-column: 1;
	grid-row: 1 / span 4;
	inline-size: 56px;
	margin: 0;
}

.woocommerce-checkout-review-order-table .cart_item .debackers-checkout-item__name {
	-webkit-box-orient: vertical;
	display: -webkit-box;
	font-size: 15px;
	font-weight: 400;
	grid-column: 2;
	grid-row: 1;
	-webkit-line-clamp: 2;
	line-clamp: 2;
	line-height: 1.45;
	overflow: hidden;
}

.woocommerce-checkout-review-order-table .cart_item .debackers-checkout-line__price {
	font-size: 15px;
	grid-column: 3;
	grid-row: 1 / span 2;
	line-height: 1.45;
	text-align: end;
}

.woocommerce-checkout-review-order-table .cart_item .debackers-checkout-line__price .amount > bdi {
	align-items: flex-end;
	display: inline-flex;
	flex-direction: column;
	white-space: nowrap;
}

.woocommerce-checkout-review-order-table .cart_item .debackers-checkout-line__price .woocommerce-Price-currencySymbol {
	color: var(--wp--preset--color--muted);
	font-size: 12px;
	line-height: 1.3;
}

.woocommerce-checkout-review-order-table .cart_item .debackers-checkout-item__meta {
	align-self: start;
	color: var(--wp--preset--color--muted);
	display: block;
	font-size: 13px;
	grid-column: 2;
	grid-row: 2;
	line-height: 1.5;
}

.woocommerce-checkout-review-order-table .cart_item :is(.debackers-checkout-line__static, .debackers-checkout-line__controls) {
	clear: none;
	font-size: 13px;
	grid-column: 2 / span 2;
	grid-row: 3;
	line-height: 1.5;
	padding-block-start: 0;
}

html.debackers-cart-enhanced .woocommerce-checkout-review-order-table .cart_item .debackers-checkout-line__controls {
	align-items: flex-end;
	display: flex;
	flex-wrap: wrap;
	gap: 8px 10px;
	margin-block-start: 6px;
}

.woocommerce-checkout-review-order-table .cart_item .debackers-line-sizes {
	gap: 8px;
	margin: 0;
}

.woocommerce-checkout-review-order-table .cart_item .debackers-line-size {
	align-items: flex-start;
	flex-direction: column;
	flex-wrap: nowrap;
	gap: 3px;
	position: relative;
}

.woocommerce-checkout-review-order-table .cart_item .debackers-line-size__label {
	color: var(--wp--preset--color--muted);
	font-size: 12px;
	line-height: 1.2;
}

.woocommerce-checkout-review-order-table .cart_item .debackers-line-size .debackers-picker__toggle {
	block-size: 34px;
	gap: 6px;
	min-block-size: 34px;
	min-inline-size: 60px;
	padding-inline: 10px 8px;
}

.woocommerce-checkout-review-order-table .cart_item .debackers-picker--inline .debackers-picker__list {
	background: var(--wp--preset--color--surface);
	border: 1px solid rgba(20, 28, 38, 0.18);
	border-radius: 4px;
	box-shadow: 0 10px 28px rgba(20, 28, 38, 0.16);
	grid-template-columns: repeat(4, 48px);
	inset-block-start: calc(100% + 6px);
	inset-inline-start: 0;
	padding: 6px;
	position: absolute;
	z-index: 5;
}

.woocommerce-checkout-review-order-table .cart_item .debackers-picker--inline .debackers-picker__option {
	min-block-size: 34px;
}

.woocommerce-checkout-review-order-table .cart_item .debackers-checkout-line__row {
	align-items: center;
	flex: 1 1 auto;
	flex-wrap: nowrap;
	gap: 8px;
}

.woocommerce-checkout-review-order-table .cart_item .debackers-cart-item__qty {
	align-items: stretch;
	block-size: 34px;
	border: 1px solid rgba(28, 28, 28, 0.35);
	border-radius: 2px;
	display: inline-flex;
	gap: 0;
}

.woocommerce-checkout-review-order-table .cart_item .debackers-cart-item__qty button {
	background: transparent;
	block-size: 100%;
	border: 0;
	border-radius: 0;
	color: var(--wp--preset--color--ink);
	inline-size: 30px;
	min-block-size: 0;
	padding: 0;
}

.woocommerce-checkout-review-order-table .cart_item .debackers-checkout-line__qty {
	align-self: center;
	font-size: 14px;
	min-inline-size: 26px;
}

.woocommerce-checkout-review-order-table .cart_item .debackers-cart-item__remove {
	align-items: center;
	background: transparent;
	block-size: 34px;
	border: 0;
	border-radius: 50%;
	color: var(--wp--preset--color--muted);
	display: inline-flex;
	inline-size: 34px;
	justify-content: center;
	margin-inline-start: auto;
	min-block-size: 34px;
	padding: 0;
	text-decoration: none;
}

.woocommerce-checkout-review-order-table .cart_item .debackers-cart-item__remove:hover {
	background: rgb(28 28 28 / 6%);
	color: var(--wp--preset--color--sale);
}

/* Narrow phones: the size, quantity and trash row starts under the thumbnail so it stays on one line at 320px. */
@media (max-width: 359px) {
	.woocommerce-checkout-review-order-table .cart_item td.product-name {
		grid-template-rows: auto auto 1fr auto;
	}

	.woocommerce-checkout-review-order-table .cart_item .debackers-checkout-item .debackers-checkout-thumb {
		grid-row: 1 / span 3;
	}

	.woocommerce-checkout-review-order-table .cart_item :is(.debackers-checkout-line__static, .debackers-checkout-line__controls) {
		grid-column: 1 / -1;
		grid-row: 4;
	}
}

/* «المبلغ كتابةً» (owner): from the reading edge, on one line where it fits, without the empty space under it. */
.woocommerce-checkout-review-order-table tr.debackers-total-words td {
	padding-block: 2px 6px;
	padding-inline: 0;
	text-align: start;
}

.woocommerce-checkout-review-order-table tr.debackers-total-words td > strong {
	margin-inline-end: 4px;
}

/* Coupon box (owner): the code field and «تطبيق» of one height; a muted hint for guests; «عرض كوبوناتي» as the
   homepage's outlined pill on the page's ground with a nudging arrow. */
.debackers-coupon__row {
	align-items: stretch;
}

.debackers-coupon__row input,
.debackers-coupon__row .debackers-coupon__apply {
	block-size: 44px;
	box-sizing: border-box;
	margin: 0;
	min-block-size: 44px;
}

.debackers-coupon__row input {
	border: 1px solid rgba(28, 28, 28, 0.35);
	border-radius: 2px;
	font-size: 14px;
	padding-inline: 12px;
}

.debackers-coupon__row .debackers-coupon__apply {
	border-radius: 2px;
	font-size: 14px;
	line-height: 1;
	padding-block: 0;
	padding-inline: 22px;
}

.debackers-coupon__hint {
	color: var(--wp--preset--color--muted);
	font-size: 12px;
	line-height: 1.5;
	margin-block: 6px 0;
}

.debackers-coupon__mine > summary,
.debackers-coupon__mine-guest {
	background: transparent;
	border-radius: 999px;
	font-weight: 500;
	gap: 12px;
	padding-inline: 22px;
}

.debackers-coupon__mine > summary:hover,
.debackers-coupon__mine-guest:hover,
.debackers-coupon__mine[open] > summary {
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--ground);
}

.debackers-coupon__arrow {
	animation: debackers-coupon-nudge 1.6s ease-in-out infinite;
	display: block;
	flex-shrink: 0;
}

.debackers-coupon__mine[open] .debackers-coupon__arrow {
	animation: none;
	transform: rotate(-90deg);
}

@keyframes debackers-coupon-nudge {
	0%,
	100% {
		transform: translateX(0);
	}

	50% {
		transform: translateX(-5px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.debackers-coupon__arrow {
		animation: none;
	}
}

/* Cart page (owner): totals only — no coupon form, no delivery row; the total says it leaves delivery out. */
.woocommerce-cart .cart_totals .debackers-total-note {
	color: var(--wp--preset--color--muted);
	display: block;
	font-size: 12px;
	font-weight: 400;
}

/* Checkout spacing (owner): less air around the summary, the coupon and the payment choices — the page scrolls
   less; tap targets keep 40px or more. */
form.checkout #order_review .woocommerce-checkout-review-order-table {
	margin-block-end: 0;
}

.woocommerce-checkout-review-order-table tfoot tr > :is(th, td) {
	border-block-end: 0;
}

.woocommerce-checkout-review-order-table .cart_item td {
	border-block-end: 0;
}

.woocommerce-checkout #order_review_heading {
	margin-block: 0 4px;
}

.woocommerce-checkout .debackers-coupon {
	margin-block: 4px;
	padding-block: 2px;
}

.woocommerce-checkout .debackers-coupon__summary {
	min-block-size: 40px;
}

.woocommerce-checkout .debackers-coupon[open] .debackers-coupon__body {
	padding-block-end: 8px;
}

.woocommerce-checkout #payment ul.payment_methods {
	margin-block: 0;
	padding-block: 0;
}

.woocommerce-checkout #payment ul.payment_methods > li {
	padding-block: 4px;
}

.woocommerce-checkout #payment .place-order {
	margin-block: 6px 0;
	padding-block: 4px 0;
}

.woocommerce-checkout form.checkout .debackers-checkout-note {
	margin-block: 8px;
}

@media (max-width: 689px) {
	.woocommerce-checkout form.checkout > .ct-order-review {
		padding-block: 12px;
	}
}

@media (min-width: 690px) {
	.woocommerce-checkout form.checkout > .ct-order-review {
		padding: 24px;
	}
}

/* The total before a coupon (owner): one thin, normal strike — readable, never doubled or heavy. */
body .woocommerce-checkout-review-order-table del.debackers-total-before {
	text-decoration-color: rgb(28 28 28 / 72%);
	text-decoration-line: line-through;
	text-decoration-thickness: 1px;
}

body .woocommerce-checkout-review-order-table del.debackers-total-before::after,
body .woocommerce-checkout-review-order-table del.debackers-total-before::before {
	content: none;
}

/* ── TASK-0104 (owner round 6) ─────────────────────────────────────────────────────────────────────────────────── */

/* Back/Forward: the content waits, hidden, until the reading position is back (scroll-memory.js, catalog-filter.js);
   the header stays. */
html.debackers-restore-pending #main,
html.debackers-restore-pending #footer,
html.debackers-restore-pending .ct-footer {
	visibility: hidden;
}

/* TASK-0126: while the shop fetches its next batch by itself, the footer and the name band step out of the layout and
   come back with the new cards. A visitor who reached the bottom on a slow line saw the footer pushed down by the
   appended cards (layout shift 1.0 measured at 200 KB/s); between batches and at the end the footer stays reachable. */
html.debackers-progressive body:has([data-debackers-more]:is([data-state="loading"], [data-state="restoring"])) :is(#footer, .ct-footer, .dbk-name-band) {
	display: none;
}

/* Menu drawer (owner): the two lower groups (branches/contact/about, then complaints, policies, FAQ…) stay quieter than
   the shop above them but readable — 16px at 90% (TASK-0103 had 15px at 82%). */
#offcanvas li.debackers-menu-separator > .ct-menu-link,
#offcanvas li.debackers-menu-separator ~ li > .ct-menu-link {
	font-size: 16px;
	opacity: 0.9;
}

/* «عرض الكل» in the SHOP branch (owner): in the column of the categories, with the homepage call-to-action arrow in
   the column of the categories' chevrons, nudging toward the reading direction. */
#offcanvas .sub-menu > li:not(.menu-item-has-children) > .ct-menu-link[href$="/shop/"] {
	align-items: center;
	display: flex;
	gap: 10px;
	inline-size: 100%;
}

#offcanvas .sub-menu > li:not(.menu-item-has-children) > .ct-menu-link[href$="/shop/"]::after {
	animation: debackers-menu-nudge 1.6s ease-in-out infinite;
	background: currentColor;
	block-size: 16px;
	content: "";
	flex: none;
	inline-size: 16px;
	/* TASK-0104 (owner): right after the words, not at the far edge. */
	margin-inline: 0;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 12H5M11 6l-6 6 6 6'/%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' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 12H5M11 6l-6 6 6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}

@keyframes debackers-menu-nudge {
	0%,
	100% {
		transform: translateX(0);
	}

	50% {
		transform: translateX(-4px);
	}
}

@media (prefers-reduced-motion: reduce) {
	#offcanvas .sub-menu > li:not(.menu-item-has-children) > .ct-menu-link[href$="/shop/"]::after {
		animation: none;
	}
}

/* Checkout lines (owner): the number sits in the middle of «ليرة سورية جديدة» under it, and the pair uses a little of
   the summary's padding on the far side (never reaching its border). */
form.checkout .woocommerce-checkout-review-order-table .cart_item .debackers-checkout-line__price {
	margin-inline-end: -10px;
}

form.checkout .woocommerce-checkout-review-order-table .cart_item .debackers-checkout-line__price .amount > bdi {
	align-items: center;
}

/* «المبلغ كتابةً» starts at the right (the reading edge); a short amount leaves the space on the left. */
form.checkout .woocommerce-checkout-review-order-table tfoot tr.debackers-total-words > td {
	text-align: start;
}

/* «هل تملك كوبون حسم؟» (owner): for a guest a light line under the question, visible before the box opens. */
.woocommerce-checkout .debackers-coupon__summary {
	align-items: flex-start;
	flex-direction: column;
	gap: 2px;
	justify-content: center;
	padding-block: 6px;
}

.debackers-coupon__summary .debackers-coupon__hint {
	color: var(--wp--preset--color--muted);
	font-size: 12px;
	font-weight: 400;
	line-height: 1.5;
	margin: 0;
}

/* ── TASK-0105 ─────────────────────────────────────────────────────────────────────────────────────────────────── */

/* AVIF product photos: the <picture> around a product <img> adds no box, so every layout that places the image keeps
   placing it (class-avif.php, avif.js). */
picture.dbk-avif {
	display: contents;
}

/* Blocksy sizes a media photo with `width: inherit` from its parent; the AVIF <picture> sits between them, so the photo
   takes its container's full width explicitly (it was 0, and a lazy photo of no width never loaded). */
.ct-media-container > picture.dbk-avif > img {
	width: 100%;
}

/* ── TASK-0106: «دليل القياسات» by weight and height (class-fit-guide.php) ─────────────────────────────────────────
   On a product page a panel over the page — a sheet from the bottom on phones, a centred card on wider screens — with
   two tabs; on a full page the same content in the flow. */
.debackers-buy__guide[data-fit-open] {
	background: none;
	border: 0;
	color: var(--wp--preset--color--ink);
	cursor: pointer;
	font: inherit;
	font-size: 14px;
	min-block-size: 44px;
	padding: 0;
	text-decoration: underline;
	text-underline-offset: 4px;
}

.debackers-fit--dialog {
	background: var(--wp--preset--color--ground, #ebe7e3);
	border: 0;
	border-radius: 14px 14px 0 0;
	box-shadow: 0 -12px 40px rgb(28 28 28 / 22%);
	color: var(--wp--preset--color--ink);
	inline-size: 100%;
	inset-block: auto 0;
	margin: 0;
	max-block-size: 88vh;
	max-inline-size: 100%;
	overflow: auto;
	padding: 18px 16px 24px;
}

.debackers-fit--dialog::backdrop {
	background: rgb(28 28 28 / 45%);
}

@media (min-width: 690px) {
	.debackers-fit--dialog {
		border-radius: 12px;
		inline-size: min(640px, calc(100vw - 48px));
		inset: 0;
		margin: auto;
		max-block-size: min(86vh, 760px);
		padding: 24px 28px 28px;
	}
}

.debackers-fit__head {
	align-items: center;
	display: flex;
	justify-content: space-between;
	margin-block-end: 12px;
}

.debackers-fit__head h2 {
	font-size: 20px;
	font-weight: 400;
	margin: 0;
}

.debackers-fit__close {
	background: none;
	border: 0;
	color: var(--wp--preset--color--ink);
	cursor: pointer;
	font-size: 28px;
	line-height: 1;
	min-block-size: 44px;
	min-inline-size: 44px;
}

.debackers-fit__tabs {
	border: 1px solid rgb(28 28 28 / 25%);
	border-radius: 999px;
	display: grid;
	gap: 4px;
	grid-auto-columns: 1fr;
	grid-auto-flow: column;
	margin-block-end: 16px;
	padding: 4px;
}

.debackers-fit__tabs button {
	background: transparent;
	border: 0;
	border-radius: 999px;
	color: var(--wp--preset--color--ink);
	cursor: pointer;
	font: inherit;
	font-size: 15px;
	min-block-size: 40px;
}

.debackers-fit__tabs button[aria-selected="true"] {
	background: var(--wp--preset--color--ink);
	color: var(--wp--preset--color--ground, #ebe7e3);
}

.debackers-fit__inputs {
	display: grid;
	gap: 12px;
	grid-template-columns: 1fr 1fr;
}

.debackers-fit__field {
	display: grid;
	gap: 6px;
	margin: 0 0 12px;
}

.debackers-fit__field label {
	font-size: 14px;
}

.debackers-fit__field :is(input, select) {
	background: transparent;
	block-size: 46px;
	border: 1px solid rgb(28 28 28 / 35%);
	border-radius: 4px;
	font-size: 16px;
	padding-inline: 12px;
}

.debackers-fit__result {
	background: var(--debackers-cream, #f2eeeb);
	border-radius: 8px;
	font-size: 16px;
	margin: 4px 0 12px;
	padding: 14px 16px;
}

.debackers-fit__choose {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-block-end: 12px;
}

.debackers-fit__choose p {
	color: var(--wp--preset--color--muted);
	font-size: 14px;
	margin: 0;
}

.debackers-fit__pick {
	background: var(--wp--preset--color--ink);
	border: 0;
	border-radius: 999px;
	color: var(--wp--preset--color--ground, #ebe7e3);
	cursor: pointer;
	font: inherit;
	font-size: 15px;
	min-block-size: 44px;
	padding-inline: 22px;
}

.debackers-fit__pick:disabled {
	cursor: not-allowed;
	opacity: 0.45;
}

.debackers-fit__note {
	color: var(--wp--preset--color--muted);
	font-size: 12px;
	line-height: 1.6;
	margin: 0;
}

.debackers-fit__chart {
	margin: 0 0 20px;
}

.debackers-fit__chart figcaption {
	font-size: 15px;
	margin-block-end: 8px;
}

.debackers-fit__scroll {
	overflow-x: auto;
}

.debackers-fit__chart table {
	border-collapse: collapse;
	font-size: 14px;
	inline-size: 100%;
	text-align: center;
}

.debackers-fit__chart :is(th, td) {
	border-block-end: 1px solid rgb(28 28 28 / 12%);
	padding: 9px 6px;
	white-space: nowrap;
}

.debackers-fit__chart th {
	color: var(--wp--preset--color--muted);
	font-weight: 400;
}

.debackers-fit__chart .is-mine {
	background: var(--debackers-cream, #f2eeeb);
	color: var(--wp--preset--color--ink);
	font-weight: 600;
}

.debackers-fit--page {
	margin-inline: auto;
	max-inline-size: 760px;
}

.debackers-fit__field input {
	appearance: textfield;
	-moz-appearance: textfield;
}

.debackers-fit__field input::-webkit-inner-spin-button,
.debackers-fit__field input::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* TASK-0107: three tabs, the size column of each table, the kind choice on the full page. */
.debackers-fit__tabs button {
	font-size: 14px;
	padding-inline: 4px;
}

.debackers-fit__chart .is-size {
	background: var(--debackers-cream, #f2eeeb);
	color: var(--wp--preset--color--ink);
	font-weight: 600;
}

.debackers-fit__chart th.is-size[scope="col"] {
	font-weight: 400;
}

.debackers-fit__kind-field {
	max-inline-size: 360px;
}

.debackers-fit__chart + .debackers-fit__chart {
	margin-block-start: 8px;
}

/* ── TASK-0108: size-guide panel — a fixed height of about one table, the product still visible above it on a phone;
   title, «×» and tabs stay at the top; only the content scrolls, with a thin bar and a soft fade at the foot until
   the end; wide tables scroll sideways inside their own box. */
.debackers-fit--dialog[open] {
	display: flex;
	flex-direction: column;
}

.debackers-fit--dialog {
	block-size: min(520px, 72vh);
	overflow: hidden;
	padding-block-end: 0;
}

@media (min-width: 690px) {
	.debackers-fit--dialog {
		block-size: min(600px, 82vh);
		padding-block-end: 0;
	}
}

.debackers-fit--dialog > .debackers-fit__head,
.debackers-fit--dialog > .debackers-fit__tabs {
	flex: none;
}

.debackers-fit__body {
	flex: 1 1 auto;
	margin-inline: -4px;
	min-block-size: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding-block-end: 24px;
	padding-inline: 4px;
	scrollbar-color: rgb(28 28 28 / 35%) transparent;
	scrollbar-width: thin;
}

.debackers-fit__body::-webkit-scrollbar,
.debackers-fit__scroll::-webkit-scrollbar {
	block-size: 4px;
	inline-size: 4px;
}

.debackers-fit__body::-webkit-scrollbar-thumb,
.debackers-fit__scroll::-webkit-scrollbar-thumb {
	background: rgb(28 28 28 / 35%);
	border-radius: 4px;
}

.debackers-fit__more {
	background: linear-gradient(to bottom, transparent, var(--wp--preset--color--ground, #ebe7e3) 85%);
	block-size: 44px;
	inset-block-end: 0;
	inset-inline: 0;
	pointer-events: none;
	position: absolute;
	transition: opacity 160ms ease;
}

.debackers-fit--dialog.is-scroll-end .debackers-fit__more {
	opacity: 0;
}

.debackers-fit__scroll {
	-webkit-overflow-scrolling: touch;
	overflow-x: auto;
	scrollbar-color: rgb(28 28 28 / 35%) transparent;
	scrollbar-width: thin;
}

.debackers-fit__chart table {
	inline-size: max-content;
	min-inline-size: 100%;
}

.debackers-fit__chart :is(th, td) {
	padding-inline: 12px;
}

.debackers-fit__swipe {
	color: var(--wp--preset--color--muted);
	font-size: 12px;
	margin: 6px 0 0;
}


/* TASK-0143 (owner): a tighter filter — lower boxes, smaller gaps and type, so a group fits in less height. The 24px
   minimum target (WCAG 2.2) is kept with room to spare. */
#debackers-filter .debackers-filter__summary-row {
	min-block-size: 44px;
}

#debackers-filter .debackers-filter__choices {
	gap: 6px;
}

#debackers-filter .debackers-filter__fieldset {
	padding-block-end: 12px;
}

#debackers-filter .debackers-filter__choices .debackers-filter__box {
	font-size: 13px;
	min-block-size: 34px;
	padding-block: 4px;
	padding-inline: 8px;
}

#debackers-filter .debackers-filter__choices.debackers-filter__choices--swatches .debackers-filter__box {
	min-block-size: 0;
	padding-block: 4px;
}

/* TASK-0143 (owner): category choices three to a row, low and close together. */
#debackers-filter .debackers-filter__cat-group .debackers-filter__choices--compact {
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

#debackers-filter .debackers-filter__cat-group .debackers-filter__choices--compact .debackers-filter__box,
#debackers-filter .debackers-filter__cat-all .debackers-filter__box {
	font-size: 12px;
	min-block-size: 30px;
	padding-block: 3px;
	padding-inline: 4px;
}

#debackers-filter .debackers-filter__cat-groups {
	gap: 10px;
}

#debackers-filter .debackers-filter__cat-group {
	gap: 4px;
}

/* TASK-0146: a set's other garments under the line («قياس البنطال: L») read like «اللون: أسود» above them — one quiet
   line per garment, label and value side by side, in the cart, the checkout summary and the order pages. */
:is(.woocommerce-checkout-review-order-table, .woocommerce-cart-form, .woocommerce-table--order-details, .debackers-cart) dl.variation {
	color: var(--wp--preset--color--muted);
	column-gap: 4px;
	display: grid;
	font-size: 13px;
	grid-template-columns: max-content 1fr;
	line-height: 1.5;
	margin-block: 4px 0;
	margin-inline: 0;
}

:is(.woocommerce-checkout-review-order-table, .woocommerce-cart-form, .woocommerce-table--order-details, .debackers-cart) dl.variation :is(dt, dd, dd p) {
	display: inline;
	font-weight: 400;
	margin: 0;
	padding: 0;
}


/* TASK-0153: on shop, product and cart pages the bar is the pinned store offer — it stays above the sticky header. */
.dbk-announce--offer {
	inset-block-start: var(--wp-admin--admin-bar--height, 0px);
	position: sticky;
	z-index: 51;
}

.dbk-offer-pinned #header {
	inset-block-start: calc(var(--wp-admin--admin-bar--height, 0px) + 34px);
}

.dbk-offer-pinned {
	--debackers-toolbar-top: 106px;
}

.debackers-auto-offer-row td {
	border: 0;
	padding-block: 6px 0;
}

/* TASK-0155: the push card sits under the cart dialog and uses logical insets so RTL and LTR share it. */
.debackers-push-prompt {
	background: var(--wp--preset--color--ink);
	border-radius: 12px;
	box-shadow: 0 10px 28px rgb(20 28 38 / 18%);
	color: var(--wp--preset--color--surface);
	display: grid;
	gap: 8px;
	inline-size: min(22rem, calc(100% - 24px));
	inset-block-end: 12px;
	inset-inline-end: auto;
	inset-inline-start: 12px;
	padding-block: 14px;
	padding-inline: 16px;
	position: fixed;
	z-index: 40;
}

.debackers-push-prompt p,
.debackers-push-prompt strong {
	margin: 0;
}

.debackers-push-prompt p {
	font-size: 0.92rem;
	line-height: 1.5;
}

.debackers-push-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.debackers-push-prompt button {
	background: transparent;
	border: 1px solid currentColor;
	border-radius: 999px;
	color: inherit;
	cursor: pointer;
	font: inherit;
	min-block-size: 44px;
	padding-block: 0;
	padding-inline: 16px;
}

.debackers-push-prompt button[data-debackers-push-enable] {
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--ink);
}

.debackers-push-prompt button:focus-visible {
	outline: 2px solid currentColor;
	outline-offset: 2px;
}
