/*
Whiteplate — Shop Archive styles (isolated)
Version: 0.25.1
Scope: /shop/ + product taxonomy + product search. Loads AFTER app.css and reuses
Brand Book tokens (--wp-emerald GREEN, --wp-sale ORANGE, --wp-ink GREY…).
Never edit app.css — everything shop-specific lives here. RTL-first, responsive.
*/

/* ---- Shell ------------------------------------------------------------- */
/*
 * Full-width row (no narrow fixed max-width “box”) + always clean L/R breathing
 * room via padding-inline clamp. Never flush to edges; never huge uneven gutters.
 */
.wp-shop {
	width: 100%;
	max-width: none;
	margin: 0;
	padding: 22px clamp(16px, 3vw, 40px) 72px;
	box-sizing: border-box;
	color: var(--wp-body);
	font-family: var(--wp-font);
}

/* Neutralise WoodMart's default archive chrome that may still print. */
.wp-shop .shop-loop-head,
.wp-shop .wd-shop-tools,
.wp-shop .woocommerce-no-products-found > .woocommerce-info { display: none; }

/*
 * Kill WoodMart page-title category accordion (wd-nav-product-cat) — stacked/
 * overlapping dump of every category. Categories live in sidebar filters + mega.
 * Also hide duplicate WD page title; .wp-shop-header already has title + crumb.
 */
.whiteplate-shop-surface .wd-page-title,
.whiteplate-shop-surface .wd-nav-product-cat,
.whiteplate-shop-surface .wd-btn-show-cat {
	display: none !important;
}

/* Cancel reserved WoodMart sidebar column (was --wd-col-lg:9 → huge empty gutter). */
.whiteplate-shop-surface .wd-content-layout.content-layout-wrapper,
.whiteplate-shop-surface .wd-content-layout {
	--wd-col-lg: 12;
	grid-template-columns: minmax(0, 1fr);
}
.whiteplate-shop-surface .wd-content-area.site-content,
.whiteplate-shop-surface .wd-content-area {
	--wd-col-lg: 12 !important;
	--wd-col-md: 12 !important;
	--wd-col-sm: 12 !important;
	width: 100%;
	max-width: 100%;
	grid-column: 1 / -1;
}
.whiteplate-shop-surface .sidebar-container,
.whiteplate-shop-surface aside.sidebar-container,
.whiteplate-shop-surface .wd-sidebar {
	display: none !important;
}

/* ---- Page header ------------------------------------------------------- */
.wp-shop-header {
	margin-bottom: 22px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--wp-line);
}
.wp-shop-breadcrumb {
	margin-bottom: 12px;
	color: var(--wp-muted);
	font-size: 12.5px;
}
.wp-shop-breadcrumb .woocommerce-breadcrumb {
	color: var(--wp-muted);
	font-size: 12.5px;
	font-weight: 600;
}
.wp-shop-breadcrumb a { color: var(--wp-muted); transition: color .2s ease; }
.wp-shop-breadcrumb a:hover { color: var(--wp-emerald); }
.wp-shop-title {
	margin: 0 0 8px;
	color: var(--wp-ink);
	font: 800 clamp(24px, 3vw, 34px)/1.25 var(--wp-font);
}
.wp-shop-subcount,
.wp-shop-subcount .woocommerce-result-count {
	margin: 0;
	color: var(--wp-muted);
	font-size: 13px;
	font-weight: 600;
}
.wp-shop-termdesc {
	margin-top: 14px;
	max-width: 70ch;
	color: var(--wp-body);
	font-size: 14px;
	line-height: 1.9;
}

/* ---- Two-column body --------------------------------------------------- */
.wp-shop-body {
	display: grid;
	grid-template-columns: 286px minmax(0, 1fr);
	gap: 28px;
	align-items: start;
}

/* ---- Sidebar ----------------------------------------------------------- */
.wp-shop-sidebar { position: sticky; top: 20px; }
.wp-shop-filters {
	display: flex;
	flex-direction: column;
	gap: 22px;
	padding: 22px 20px;
	border: 1px solid var(--wp-line);
	border-radius: var(--wp-radius-sm);
	background: #fff;
	box-shadow: var(--wp-shadow-sm);
}
.wp-filters-head { display: none; align-items: center; justify-content: space-between; }
.wp-filters-title { color: var(--wp-ink); font: 800 17px var(--wp-font); }
.wp-filters-close {
	display: grid; place-items: center;
	width: 38px; height: 38px;
	border: 1px solid var(--wp-line); border-radius: 12px;
	background: var(--wp-ivory); color: var(--wp-ink);
	font-size: 24px; line-height: 1; cursor: pointer;
}

.wp-filter-group { padding-bottom: 20px; border-bottom: 1px solid var(--wp-line-soft); }
.wp-filter-group:last-of-type { padding-bottom: 0; border-bottom: 0; }
.wp-filter-heading {
	margin: 0 0 14px;
	color: var(--wp-ink);
	font: 800 14px var(--wp-font);
	letter-spacing: .2px;
}

/* Categories */
.wp-filter-cats { list-style: none; margin: 0; padding: 0; max-height: 320px; overflow-y: auto; }
.wp-filter-cats::-webkit-scrollbar { width: 6px; }
.wp-filter-cats::-webkit-scrollbar-thumb { background: var(--wp-line); border-radius: 8px; }
.wp-filter-cats li { margin: 0; }
.wp-filter-cats a {
	display: flex; align-items: center; justify-content: space-between; gap: 10px;
	padding: 9px 12px;
	border-radius: 10px;
	color: var(--wp-body);
	font-size: 13px; font-weight: 600;
	transition: background .18s ease, color .18s ease;
}
.wp-filter-cats a:hover { background: var(--wp-emerald-soft); color: var(--wp-emerald); }
.wp-filter-cats .is-active > a { background: var(--wp-emerald); color: #fff; }
.wp-filter-cats .is-active > a .wp-cat-count { background: rgba(255, 255, 255, .22); color: #fff; }
.wp-cat-count {
	flex: 0 0 auto;
	padding: 2px 9px; border-radius: 999px;
	background: var(--wp-ivory); color: var(--wp-muted);
	font-size: 11px; font-weight: 700;
}
.wp-cat-all a { color: var(--wp-emerald); font-weight: 800; }

/* Brands */
.wp-filter-brands { list-style: none; margin: 0; padding: 0; max-height: 300px; overflow-y: auto; }
.wp-filter-brands::-webkit-scrollbar { width: 6px; }
.wp-filter-brands::-webkit-scrollbar-thumb { background: var(--wp-line); border-radius: 8px; }
.wp-brand-opt label {
	display: flex; align-items: center; gap: 10px;
	padding: 8px 10px; border-radius: 10px;
	cursor: pointer; transition: background .18s ease;
}
.wp-brand-opt label:hover { background: var(--wp-ivory); }
.wp-brand-opt input[type="radio"] {
	flex: 0 0 auto;
	width: 18px; height: 18px; margin: 0;
	accent-color: var(--wp-emerald);
	cursor: pointer;
}
.wp-brand-name { flex: 1; color: var(--wp-body); font-size: 13px; font-weight: 600; }
.wp-brand-count { color: var(--wp-muted); font-size: 11px; font-weight: 700; }
.wp-brand-opt input:checked ~ .wp-brand-name { color: var(--wp-emerald); font-weight: 800; }

/* Price */
.wp-price-slider { position: relative; height: 34px; margin: 6px 4px 16px; }
.wp-price-track {
	position: absolute; inset-inline: 6px; top: 50%; transform: translateY(-50%);
	height: 5px; border-radius: 999px; background: var(--wp-line);
}
.wp-price-range { position: absolute; height: 100%; border-radius: 999px; background: var(--wp-emerald); }
.wp-price-handle {
	position: absolute; inset-inline: 0; top: 50%; transform: translateY(-50%);
	width: 100%; height: 34px; margin: 0;
	background: none; pointer-events: none;
	-webkit-appearance: none; appearance: none;
}
.wp-price-handle::-webkit-slider-thumb {
	-webkit-appearance: none; appearance: none;
	width: 20px; height: 20px; border-radius: 50%;
	background: #fff; border: 3px solid var(--wp-emerald);
	box-shadow: var(--wp-shadow-sm); cursor: pointer; pointer-events: auto;
}
.wp-price-handle::-moz-range-thumb {
	width: 20px; height: 20px; border-radius: 50%;
	background: #fff; border: 3px solid var(--wp-emerald);
	box-shadow: var(--wp-shadow-sm); cursor: pointer; pointer-events: auto;
}
.wp-price-handle::-webkit-slider-runnable-track { background: transparent; }
.wp-price-handle::-moz-range-track { background: transparent; }
.wp-price-inputs { display: flex; gap: 10px; }
.wp-price-field { flex: 1; display: flex; align-items: center; gap: 6px; }
.wp-price-field > span { color: var(--wp-muted); font-size: 12px; font-weight: 700; }
.wp-price-field input {
	width: 100%; min-width: 0;
	padding: 9px 10px;
	border: 1px solid var(--wp-line); border-radius: 10px;
	background: var(--wp-ivory);
	color: var(--wp-ink); font: 700 13px var(--wp-font);
	text-align: center;
}
.wp-price-field input:focus { outline: none; border-color: var(--wp-emerald); background: #fff; }
.wp-price-readout { margin-top: 10px; color: var(--wp-muted); font-size: 12px; font-weight: 700; text-align: center; }

/* Toggles */
.wp-filter-group[data-group="toggles"] { display: flex; flex-direction: column; gap: 12px; }
.wp-filter-toggle { display: flex; align-items: center; gap: 12px; cursor: pointer; }
.wp-filter-toggle input { position: absolute; opacity: 0; width: 0; height: 0; }
.wp-toggle-track {
	position: relative; flex: 0 0 auto;
	box-sizing: border-box;
	width: 44px; height: 24px; border-radius: 999px;
	overflow: hidden;
	background: var(--wp-line); transition: background .22s ease;
}
/* Knob: logical start (LTR left / RTL right). ON uses inset-inline-start so RTL never overflows. */
.wp-toggle-track::after {
	content: ""; position: absolute; top: 3px; inset-inline-start: 3px;
	width: 18px; height: 18px; border-radius: 50%;
	background: #fff; box-shadow: 0 2px 5px rgba(15, 23, 42, .28);
	transition: inset-inline-start .22s ease;
}
.wp-filter-toggle input:checked + .wp-toggle-track { background: var(--wp-emerald); }
.wp-filter-toggle input:checked + .wp-toggle-track::after {
	inset-inline-start: calc(100% - 21px); /* 18px knob + 3px end padding */
}
.wp-filter-toggle input:focus-visible + .wp-toggle-track { outline: 2px solid var(--wp-emerald); outline-offset: 2px; }
.wp-toggle-label { color: var(--wp-body); font-size: 13.5px; font-weight: 600; }

/* Actions */
.wp-filter-actions { display: flex; flex-direction: column; gap: 10px; }
.wp-filter-apply {
	display: inline-flex; align-items: center; justify-content: center;
	padding: 13px 18px; border: 0; border-radius: 12px;
	background: var(--wp-emerald); color: #fff;
	font: 800 14px var(--wp-font); cursor: pointer;
	transition: background .2s ease, transform .2s ease, box-shadow .2s ease;
}
.wp-filter-apply:hover { background: var(--wp-emerald-2); transform: translateY(-2px); box-shadow: 0 14px 30px rgba(104, 112, 73, .3); }
.wp-filter-clear {
	display: inline-flex; align-items: center; justify-content: center;
	padding: 11px 18px; border: 1px solid var(--wp-line); border-radius: 12px;
	background: #fff; color: var(--wp-muted);
	font: 700 13px var(--wp-font); transition: color .2s ease, border-color .2s ease;
}
.wp-filter-clear:hover { color: var(--wp-sale); border-color: var(--wp-sale); }

/* ---- Main column: toolbar + text sort (Brief §6) --------------------- */
.wp-shop-toolbar {
	display: flex; align-items: center; justify-content: space-between; gap: 16px;
	margin-bottom: 22px; padding: 12px 16px;
	border: 1px solid var(--wp-line); border-radius: var(--wp-radius-sm);
	background: #fff;
}
.wp-shop-toolbar-count,
.wp-shop-toolbar-count .woocommerce-result-count {
	margin: 0; color: var(--wp-muted); font-size: 13px; font-weight: 700;
}
.wp-shop-ordering {
	display: flex; align-items: center; flex-wrap: wrap; gap: 10px 14px; margin: 0;
}
.wp-sort-label { color: var(--wp-muted); font-size: 13px; font-weight: 700; white-space: nowrap; }
.wp-sort-links {
	list-style: none; display: flex; flex-wrap: wrap; align-items: center;
	gap: 4px 18px; margin: 0; padding: 0;
}
.wp-sort-links li { margin: 0; }
.wp-sort-link {
	display: inline-block;
	padding: 2px 0 4px;
	color: var(--wp-body, #4A433A);
	font: 700 13.5px var(--wp-font);
	text-decoration: none;
	border-bottom: 2px solid transparent;
	transition: color .18s ease, border-color .18s ease;
}
.wp-sort-link:hover { color: var(--wp-emerald); }
.wp-sort-link.is-active {
	color: var(--wp-emerald);
	border-bottom-color: var(--wp-emerald);
	font-weight: 800;
}
/* Legacy select (if any leftover) */
.wp-sort-select { position: relative; display: none; }
.wp-sort-select select {
	appearance: none; -webkit-appearance: none; -moz-appearance: none;
	padding: 10px 40px 10px 16px;
	border: 1px solid var(--wp-line); border-radius: 999px;
	background: var(--wp-ivory);
	color: var(--wp-ink); font: 700 13px var(--wp-font);
	cursor: pointer;
}

/* ---- Product grid ------------------------------------------------------ */
.wp-shop-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 22px;
}
.wp-shop-grid .wp-product-card { width: 100%; }

.wp-shop-empty {
	padding: 48px 24px; text-align: center;
	border: 1px dashed var(--wp-line); border-radius: var(--wp-radius-sm);
	color: var(--wp-muted); font-size: 15px; font-weight: 600;
	background: #fff;
}
.wp-shop-empty-state { max-width: 520px; margin: 0 auto; }
.wp-shop-empty-title {
	margin: 0 0 10px;
	color: var(--wp-ink);
	font: 800 20px/1.4 var(--wp-font);
}
.wp-shop-empty-sub {
	margin: 0 0 22px;
	color: var(--wp-muted);
	font: 600 14px/1.8 var(--wp-font);
}
.wp-shop-empty-suggest {
	list-style: none; display: flex; flex-wrap: wrap; justify-content: center;
	gap: 8px; margin: 0 0 22px; padding: 0;
}
.wp-shop-empty-suggest a {
	display: inline-flex; padding: 8px 14px;
	border: 1px solid var(--wp-line); border-radius: 999px;
	background: var(--wp-sand, #DFDBCF);
	color: var(--wp-ink); font: 700 12.5px var(--wp-font);
	transition: background .18s ease, color .18s ease, border-color .18s ease;
}
.wp-shop-empty-suggest a:hover {
	background: var(--wp-emerald); border-color: var(--wp-emerald); color: #fff;
}
.wp-shop-empty-shop {
	display: inline-flex; padding: 12px 22px;
	border-radius: 12px;
	background: var(--wp-orange, #FF5F23); color: #fff !important;
	font: 800 14px var(--wp-font);
}
.wp-shop-empty-shop:hover { background: var(--wp-orange-2, #E04E1A); color: #fff !important; }

/* Unified cards on shop grid */
.wp-shop-grid .wp-product-card {
	border: 1px solid var(--wp-line);
	border-radius: 16px;
	background: #fff;
	box-shadow: none;
	transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.wp-shop-grid .wp-product-image {
	background: #fff;
	aspect-ratio: 1 / 1;
}
.wp-shop-grid .wp-product-title,
.wp-shop-grid .wp-product-content h3 {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: 2.8em;
	margin: 0 0 12px;
	color: var(--wp-ink, #333);
	font: 600 13.5px/1.55 var(--wp-font);
}
.wp-shop-grid .wp-product-title a,
.wp-shop-grid .wp-product-content h3 a { color: inherit; }
.wp-shop-grid .wp-product-price { font-weight: 800; color: var(--wp-ink); }
.wp-shop-grid .wp-stock-badge {
	position: absolute;
	top: 12px;
	inset-inline-start: 12px;
	z-index: 2;
	padding: 4px 11px;
	border-radius: 999px;
	background: var(--wp-emerald);
	color: #fff;
	font-size: 11px;
	font-weight: 800;
}
.wp-shop-grid .wp-sale-badge {
	background: var(--wp-orange, #FF5F23);
	box-shadow: 0 6px 14px rgba(255, 95, 35, .28);
}
.wp-shop-grid .wp-card-action--cart {
	background: transparent;
	border-color: var(--wp-orange, #FF5F23);
	color: var(--wp-orange, #FF5F23) !important;
	border-radius: 12px;
}
.wp-shop-grid .wp-card-action--cart::before {
	background: var(--wp-orange, #FF5F23);
	transform: scaleX(0);
	transform-origin: right center;
}
.wp-shop-grid .wp-card-action--cart:hover,
.wp-shop-grid .wp-product-card:hover .wp-card-action--cart {
	background: transparent;
	border-color: var(--wp-orange, #FF5F23);
	color: #fff !important;
}
.wp-shop-grid .wp-card-action--cart:hover::before,
.wp-shop-grid .wp-product-card:hover .wp-card-action--cart::before {
	transform: scaleX(1);
}
.wp-shop-grid .wp-product-card:hover {
	border-color: color-mix(in srgb, var(--wp-sand, #DFDBCF) 70%, var(--wp-emerald));
	box-shadow: 0 12px 28px rgba(51, 51, 51, .08);
	transform: translateY(-4px);
}

/* ---- Numbered pagination ---------------------------------------------- */
.wp-shop-pagination { margin-top: 42px; }
.wp-shop-pagination .page-numbers {
	list-style: none; display: flex; flex-wrap: wrap; gap: 8px;
	margin: 0; padding: 0; justify-content: center;
}
.wp-shop-pagination .page-numbers li { margin: 0; }
.wp-shop-pagination a.page-numbers,
.wp-shop-pagination span.page-numbers {
	display: inline-flex; align-items: center; justify-content: center;
	min-width: 44px; height: 44px; padding: 0 12px;
	border: 1px solid var(--wp-line); border-radius: 12px;
	background: #fff; color: var(--wp-ink);
	font: 700 14px var(--wp-font); text-decoration: none;
	transition: background .18s ease, color .18s ease, border-color .18s ease, transform .18s ease;
}
.wp-shop-pagination a.page-numbers:hover {
	background: var(--wp-emerald-soft); border-color: var(--wp-emerald); color: var(--wp-emerald); transform: translateY(-2px);
}
.wp-shop-pagination span.page-numbers.current {
	background: var(--wp-emerald); border-color: var(--wp-emerald); color: #fff;
}
.wp-shop-pagination span.page-numbers.dots { border-color: transparent; background: transparent; }
.wp-shop-pagination .page-numbers.next,
.wp-shop-pagination .page-numbers.prev { font-size: 20px; font-weight: 800; }

/* ---- Mobile filter toggle + backdrop ---------------------------------- */
/* Ancestor-specificity (0,2,0) to beat WoodMart base-rtl.css
   :is(.btn,.button,button,[type=submit],[type=button]){display:inline-flex} (0,1,0). */
.wp-shop .wp-filter-mobile-toggle {
	display: none;
	align-items: center; justify-content: center; gap: 10px;
	width: 100%; margin-bottom: 18px; padding: 14px 18px;
	border: 1px solid var(--wp-line); border-radius: 14px;
	background: #fff; color: var(--wp-ink);
	font: 800 14px var(--wp-font); cursor: pointer;
	box-shadow: var(--wp-shadow-sm);
}
.wp-filter-mobile-ico {
	width: 18px; height: 12px; position: relative;
}
.wp-filter-mobile-ico::before,
.wp-filter-mobile-ico::after,
.wp-filter-mobile-ico { background-repeat: no-repeat; }
.wp-filter-mobile-ico {
	background-image:
		linear-gradient(var(--wp-emerald), var(--wp-emerald)),
		linear-gradient(var(--wp-emerald), var(--wp-emerald)),
		linear-gradient(var(--wp-emerald), var(--wp-emerald));
	background-size: 100% 2px, 70% 2px, 40% 2px;
	background-position: 0 0, 0 50%, 0 100%;
}

/* Project-wide backdrop convention: dim + blur behind any drawer/modal. */
.wp-shop-backdrop {
	position: fixed; inset: 0; z-index: 1100;
	background: rgba(15, 23, 42, .5);
	backdrop-filter: blur(6px);
	-webkit-backdrop-filter: blur(6px);
	opacity: 0; transition: opacity .28s ease;
}
.wp-shop-backdrop[hidden] { display: none; }
body.wp-shop-drawer-open .wp-shop-backdrop { opacity: 1; }
body.wp-shop-drawer-open { overflow: hidden; }

/* ---- Responsive -------------------------------------------------------- */
@media (max-width: 1200px) {
	.wp-shop-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 1024px) {
	.wp-shop-body { grid-template-columns: minmax(0, 1fr); }
	.wp-shop .wp-filter-mobile-toggle { display: inline-flex; }

	.wp-shop-sidebar {
		position: fixed; inset-block: 0; inset-inline-end: 0; z-index: 1110;
		width: min(360px, 88vw);
		transform: translateX(100%);
		transition: transform .3s cubic-bezier(.4, 0, .2, 1);
		overflow-y: auto;
		background: #fff;
	}
	html[dir="rtl"] .wp-shop-sidebar { transform: translateX(-100%); }
	body.wp-shop-drawer-open .wp-shop-sidebar { transform: translateX(0); }

	.wp-shop-filters {
		height: 100%; border: 0; border-radius: 0; box-shadow: none;
		padding: 18px 18px 40px;
	}
	.wp-filters-head { display: flex; margin-bottom: 4px; }
}

@media (max-width: 860px) {
	.wp-shop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
	.wp-shop-toolbar { flex-direction: column; align-items: stretch; gap: 12px; }
	.wp-shop-ordering { justify-content: flex-start; }
	.wp-sort-links { gap: 4px 14px; }
}

@media (max-width: 480px) {
	.wp-shop { padding: 16px clamp(12px, 4vw, 20px) 56px; }
	.wp-shop-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
	.wp-product-content { padding: 12px 12px 14px; }
}

/* =======================================================================
   v0.14.0 polish — card action clipping, sort/pagination arrow cleanup,
   AJAX filtering states.
   ======================================================================= */

/* TASK 2 — "مشاهده" card action must never be clipped inside the narrow shop
   grid. The pill is pinned to its natural size (flex-shrink:0); the price
   flexes/shrinks so a long price can't squeeze the action out of the
   overflow:hidden card. Styling itself is inherited from app.css .wp-card-action
   so shop cards match the homepage card action exactly. */
.wp-shop-grid .wp-product-bottom {
	flex-wrap: wrap;
	gap: 8px 10px;
}
.wp-shop-grid .wp-product-price {
	min-width: 0;
	flex: 1 1 auto;
}
.wp-shop-grid .wp-card-action {
	flex: 0 0 auto;
	max-width: 100%;
}

/* TASK 3a — Sort <select>: WoodMart's global rule paints an SVG chevron via
   background-image:var(--wd-form-chevron); appearance:none does NOT remove it,
   so it doubled up with our .wp-sort-caret. Strip it → single custom caret. */
.wp-shop-ordering .wp-sort-select select.orderby {
	background-image: none !important;
	background-color: var(--wp-ivory);
}
.wp-shop-ordering .wp-sort-select select.orderby:focus {
	background-color: #fff;
}

/* TASK 3b — Pagination: WoodMart injects a woodmart-font glyph via
   nav[class*=-pagination] li :is(.next,.prev):before, doubling our own ‹ / ›
   text arrows. Kill that pseudo-element so exactly one clean arrow shows, and
   re-assert our sizing over WoodMart's higher-specificity nav rules. */
.wp-shop-pagination .page-numbers.next::before,
.wp-shop-pagination .page-numbers.prev::before,
.wp-shop-pagination .page-numbers.next::after,
.wp-shop-pagination .page-numbers.prev::after,
.wp-shop-pagination li .next::before,
.wp-shop-pagination li .prev::before {
	content: none !important;
	display: none !important;
}
.wp-shop .wp-shop-pagination li a.page-numbers,
.wp-shop .wp-shop-pagination li span.page-numbers {
	min-width: 44px;
	height: 44px;
	padding: 0 12px;
	border-radius: 12px;
	font-size: 14px;
}
.wp-shop .wp-shop-pagination li .page-numbers.next,
.wp-shop .wp-shop-pagination li .page-numbers.prev {
	font-size: 20px;
	font-weight: 800;
	line-height: 1;
}

/* TASK 1 — AJAX filtering: subtle loading state + spinner, no layout shift.
   The apply button is hidden once JS is active (filters auto-apply); the
   "حذف فیلترها" clear link stays. */
.wp-shop-main { position: relative; transition: opacity .18s ease; }
.wp-shop-main.is-ajax-loading { opacity: .45; pointer-events: none; }
.wp-shop-main.is-ajax-loading::after {
	content: "";
	position: absolute;
	inset-inline-start: 50%;
	top: 140px;
	width: 36px;
	height: 36px;
	margin-inline-start: -18px;
	border: 3px solid var(--wp-line);
	border-top-color: var(--wp-emerald);
	border-radius: 50%;
	animation: wp-shop-spin .7s linear infinite;
	z-index: 3;
}
@keyframes wp-shop-spin { to { transform: rotate(360deg); } }
.wp-shop.wp-ajax-on .wp-filter-apply { display: none; }

/* Subtle amber hover border — shared card language with homepage. */
.wp-shop .wp-product-card:hover {
	border-color: color-mix(in srgb, var(--wp-amber) 38%, var(--wp-line));
	box-shadow: var(--wp-lift-shadow, 0 14px 32px rgba(15, 23, 42, .12));
}
.wp-shop .wp-product-card .wp-product-image img {
	filter: drop-shadow(0 10px 18px rgba(104, 112, 73, .08));
}

/* =========================================================================
   v0.18.0 — Shop-only motion (transform/opacity)
   ========================================================================= */
@keyframes wp-page-lift {
    from { transform: translateY(0); }
    to   { transform: translateY(-4px); }
}

.wp-filter-group {
    transition: background .2s ease;
}
.wp-filter-cats a,
.wp-brand-opt label {
    transition: background .18s ease, color .18s ease, transform .18s cubic-bezier(.22, 1, .36, 1), box-shadow .18s ease;
}
.wp-filter-cats a:hover,
.wp-brand-opt label:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 14px rgba(15, 23, 42, .06);
}

.wp-shop-pagination a.page-numbers {
    transition: background .18s ease, color .18s ease, border-color .18s ease, transform .18s cubic-bezier(.22, 1, .36, 1), box-shadow .18s ease;
}
.wp-shop-pagination a.page-numbers:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 20px rgba(104, 112, 73, .14);
}

.wp-shop .wp-product-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 40px rgba(15, 23, 42, .14);
}

@media (prefers-reduced-motion: reduce) {
    .wp-filter-cats a:hover,
    .wp-brand-opt label:hover,
    .wp-shop-pagination a.page-numbers:hover,
    .wp-shop .wp-product-card:hover {
        transform: none !important;
        animation: none !important;
    }
}
