/* Larisa — product category & subcategory pages */

/* Palettes: purple everywhere (requested), per-category theme classes kept for later use */
body:is(.tax-product_cat, .tax-product_tag),
body.ls-theme-jewel,
.ls-hero { --ls-c1: #6b2a7d; --ls-c2: #3d0f4a; --ls-acc: #8b3fa3; --ls-acc2: #e7d3f2; --ls-soft: #f4ecf9; --ls-price: #5b1f6c; }

/* Beauty & health: the same green as the mega menu */
body.ls-theme-beauty,
.ls-hero--beauty { --ls-c1: #2f9a78; --ls-c2: #1d6b55; --ls-acc: #23866a; --ls-acc2: #c9f0dd; --ls-soft: #e8f6f0; --ls-price: #1d6b55; }

body:is(.tax-product_cat, .tax-product_tag) { --ls-ink: #241520; --ls-muted: #7a6c76; --ls-line: #efe6ec; }

/* =====================================================================
   Header (lilac banner: text right, products / banner left)
   ===================================================================== */

.ls-hero {
	position: relative;
	overflow: hidden;
	color: #4a1640;
	background:
		radial-gradient(60% 90% at 12% 60%, rgba(214, 186, 233, .9), transparent 70%),
		linear-gradient(100deg, #e2cdf0 0%, #ecdff7 42%, #f7f1fb 100%);
}

.ls-hero-inner {
	position: relative;
	z-index: 1;
	display: grid;
	grid-template-columns: minmax(0, 44%) minmax(0, 56%);
	align-items: center;
	min-height: 300px;
	max-width: var(--wd-container-w, 1222px);
	margin: 0 auto;
	padding: 0 15px;
}

/* Copy (right in RTL) */
.ls-hero-copy {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 34px 10px 46px;
	text-align: center;
}

.ls-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 6px;
	margin-bottom: 10px;
	font-size: 12px;
	color: #8a7290;
}

.ls-breadcrumb a { color: #7a5a86 !important; }
.ls-breadcrumb a:hover { color: #4a1640 !important; }
.ls-sep { opacity: .5; }

.ls-mark { display: block; color: #8b4fa8; margin-bottom: 4px; animation: ls-bloom 8s ease-in-out infinite; }
@keyframes ls-bloom { 50% { transform: rotate(22deg) scale(1.05); } }

.ls-title {
	margin: 0;
	font-size: clamp(32px, 4vw, 52px);
	font-weight: 900;
	line-height: 1.3;
	letter-spacing: .02em;
	color: #4a1640;
}

.ls-subtitle {
	margin: 8px 0 10px;
	font-size: 16px;
	font-weight: 800;
	color: #3b2440;
}

.ls-desc {
	max-width: 420px;
	margin: 0 0 14px;
	font-size: 14px;
	line-height: 2;
	color: #6b5470;
}

.ls-count {
	padding: 4px 14px;
	border-radius: 99px;
	font-size: 12.5px;
	font-weight: 800;
	color: #fff;
	background: linear-gradient(120deg, #8b3fa3, #5b1f6c);
	box-shadow: 0 8px 18px -10px #5b1f6c;
}

/* Visual (left in RTL) */
.ls-hero-visual {
	position: relative;
	align-self: stretch;
	min-height: 300px;
}

.ls-banner {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center center;
	/* Soft blend into the header: fades toward the text and toward the outer edge. */
	-webkit-mask-image: linear-gradient(to left, transparent 0, #000 26%, #000 86%, transparent 100%);
	mask-image: linear-gradient(to left, transparent 0, #000 26%, #000 86%, transparent 100%);
	animation: ls-rise .8s cubic-bezier(.2, .8, .2, 1) both;
}

.ls-hero.has-banner .ls-hero-visual { overflow: hidden; }

.ls-scene {
	position: absolute;
	left: 50%;
	bottom: 0;
	width: auto;
	max-width: 100%;
	height: 100%;
	transform: translateX(-50%);
	object-fit: contain;
	object-position: center bottom;
	animation: ls-rise .8s cubic-bezier(.2, .8, .2, 1) both;
}

@keyframes ls-rise { from { opacity: 0; transform: translateX(-50%) translateY(14px); } }



/* Dark plum header for jewelry (matches the plum jewelry photos) */
.ls-hero--jewel {
	color: #fff;
	background:
		radial-gradient(55% 95% at 14% 60%, rgba(122, 38, 82, .55), transparent 70%),
		linear-gradient(100deg, #4a1232 0%, #3c0a26 45%, #2e061c 100%);
}

.ls-hero--jewel .ls-title { color: #fff; text-shadow: 0 6px 24px rgba(0, 0, 0, .35); }
.ls-hero--jewel .ls-subtitle { color: #f2c16b; }
.ls-hero--jewel .ls-desc { color: #e6cdda; }
.ls-hero--jewel .ls-mark { color: #f2c16b; }
.ls-hero--jewel .ls-breadcrumb { color: #c9a5b8; }
.ls-hero--jewel .ls-breadcrumb a { color: #e9cfdc !important; }
.ls-hero--jewel .ls-breadcrumb a:hover { color: #fff !important; }
.ls-hero--jewel .ls-count { color: #3c0a26; background: linear-gradient(120deg, #ffe7a3, #e2ad47); box-shadow: 0 8px 18px -10px rgba(0, 0, 0, .6); }

/* Green header for beauty & health */
.ls-hero--beauty {
	color: #15584a;
	background:
		radial-gradient(60% 90% at 12% 60%, rgba(176, 228, 203, .9), transparent 70%),
		linear-gradient(100deg, #c8ecd9 0%, #dff4e9 42%, #f3fbf7 100%);
}

.ls-hero--beauty .ls-title { color: #15584a; }
.ls-hero--beauty .ls-subtitle { color: #1f4a3e; }
.ls-hero--beauty .ls-desc { color: #4d6b62; }
.ls-hero--beauty .ls-mark { color: #2f9a78; }
.ls-hero--beauty .ls-breadcrumb { color: #6b8a80; }
.ls-hero--beauty .ls-breadcrumb a { color: #3f7a68 !important; }
.ls-hero--beauty .ls-breadcrumb a:hover { color: #15584a !important; }
.ls-hero--beauty .ls-count { background: linear-gradient(120deg, #2f9a78, #1d6b55); box-shadow: 0 8px 18px -10px #1d6b55; }

body.ls-theme-beauty .ls-tile { color: #15584a !important; box-shadow: 0 16px 34px -22px rgba(21, 88, 74, .5), 0 0 0 1px #dff2e8; }
body.ls-theme-beauty .ls-tile-count { color: #5f8378; }

/* Subcategories strip (overlaps the banner bottom a little) */
.ls-subcats {
	position: relative;
	z-index: 2;
	margin: -30px auto 26px;
	max-width: var(--wd-container-w, 1222px);
	padding: 0 15px;
}

.ls-subcats-inner {
	display: flex;
	gap: 12px;
	padding: 4px 2px 8px;
	overflow-x: auto;
	scroll-snap-type: x proximity;
	scrollbar-width: thin;
}

.ls-tile {
	flex: none;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	width: 132px;
	padding: 12px 8px 12px;
	border-radius: 22px;
	text-align: center;
	color: #4a1640 !important;
	background: #fff;
	scroll-snap-align: start;
	box-shadow: 0 16px 34px -22px rgba(74, 22, 64, .55), 0 0 0 1px #efe4f4;
	transition: transform .35s cubic-bezier(.2, .8, .2, 1), box-shadow .35s ease;
	animation: ls-in .5s cubic-bezier(.2, .8, .2, 1) both;
	animation-delay: calc(var(--i) * 40ms);
}

@keyframes ls-in { from { opacity: 0; transform: translateY(10px); } }

.ls-tile:hover { transform: translateY(-5px); box-shadow: 0 24px 40px -22px rgba(74, 22, 64, .6), 0 0 0 1px #dcc4ea; }

.ls-tile-img {
	display: grid;
	place-items: center;
	width: 84px;
	height: 84px;
	margin-bottom: 6px;
	border-radius: 50%;
	overflow: hidden;
	background: radial-gradient(circle at 50% 40%, #faf5fd, #e3d0f0);
	transition: transform .4s cubic-bezier(.2, .8, .2, 1);
}

.ls-tile-img img { width: 100%; height: 100%; object-fit: cover; }
.ls-tile:hover .ls-tile-img { transform: scale(1.06); }
.ls-tile-name { font-size: 13.5px; font-weight: 800; line-height: 1.5; }
.ls-tile-count { font-size: 11px; color: #8a7290; }

/* Sibling chips (leaf categories) */
.ls-subcats--chips .ls-subcats-inner { flex-wrap: wrap; overflow: visible; }

.ls-chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 5px 16px 5px 6px;
	border-radius: 99px;
	font-size: 13px;
	font-weight: 800;
	color: #4a1640 !important;
	background: #fff;
	box-shadow: 0 10px 24px -18px rgba(74, 22, 64, .6), 0 0 0 1px #efe4f4;
	transition: background .2s ease, color .2s ease;
}

.ls-chip img { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; }
.ls-chip:hover { background: #f4ecf9; }
.ls-chip.is-active { color: #fff !important; background: linear-gradient(120deg, #8b3fa3, #5b1f6c); }
.ls-chip-all { padding-inline: 16px; border: 1.5px dashed #c9a8da; box-shadow: none; background: transparent; }

/* =====================================================================
   Toolbar
   ===================================================================== */

body:is(.tax-product_cat, .tax-product_tag) .shop-loop-head .wd-breadcrumbs { display: none; }

body:is(.tax-product_cat, .tax-product_tag) .shop-loop-head {
	align-items: center;
	gap: 10px;
	margin-bottom: 18px;
	padding: 10px 16px;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 0 0 1px var(--ls-line), 0 14px 30px -26px rgba(36, 21, 32, .5);
}

body:is(.tax-product_cat, .tax-product_tag) .shop-loop-head .woocommerce-result-count {
	margin: 0;
	font-size: 13px;
	color: var(--ls-muted);
}

body:is(.tax-product_cat, .tax-product_tag) .wd-products-per-page .per-page-variation {
	padding: 2px 9px;
	border-radius: 99px;
	transition: background .2s ease, color .2s ease;
}

body:is(.tax-product_cat, .tax-product_tag) .wd-products-per-page .per-page-variation.current-variation,
body:is(.tax-product_cat, .tax-product_tag) .wd-products-per-page .per-page-variation:hover {
	color: #fff;
	background: var(--ls-c1);
}

body:is(.tax-product_cat, .tax-product_tag) .wd-products-per-page .per-page-border { display: none; }

body:is(.tax-product_cat, .tax-product_tag) .wd-filter-buttons > a,
body:is(.tax-product_cat, .tax-product_tag) .wd-show-sidebar-btn > a {
	padding: 6px 14px;
	border-radius: 99px;
	font-weight: 700;
	background: var(--ls-soft);
	color: var(--ls-c1) !important;
}

body:is(.tax-product_cat, .tax-product_tag) .filters-area {
	margin-bottom: 18px;
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 0 0 1px var(--ls-line);
}

body:is(.tax-product_cat, .tax-product_tag) .woocommerce-ordering-list a.selected-order,
body:is(.tax-product_cat, .tax-product_tag) .woocommerce-ordering-list a:hover { color: var(--ls-acc); }

/* =====================================================================
   Sidebar filters
   ===================================================================== */

body:is(.tax-product_cat, .tax-product_tag) .area-sidebar-shop .wd-widget {
	margin-bottom: 16px;
	padding: 18px 18px 14px;
	border-radius: 20px;
	background: #fff;
	box-shadow: 0 0 0 1px var(--ls-line);
}

body:is(.tax-product_cat, .tax-product_tag) .area-sidebar-shop .widget-title {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 12px;
	padding: 0 0 10px;
	border-bottom: 1px dashed var(--ls-line);
	font-size: 14.5px;
	font-weight: 900;
	color: var(--ls-ink);
}

body:is(.tax-product_cat, .tax-product_tag) .area-sidebar-shop .widget-title::before {
	content: "";
	flex: none;
	width: 5px;
	height: 16px;
	border-radius: 3px;
	background: linear-gradient(var(--ls-acc2), var(--ls-acc));
}

body:is(.tax-product_cat, .tax-product_tag) .area-sidebar-shop ul li { margin-bottom: 4px; }

body:is(.tax-product_cat, .tax-product_tag) .area-sidebar-shop ul li a {
	display: inline-block;
	padding: 3px 0;
	color: var(--ls-ink);
	transition: color .2s ease, padding .2s ease;
}

body:is(.tax-product_cat, .tax-product_tag) .area-sidebar-shop ul li a:hover { color: var(--ls-acc); padding-inline-start: 4px; }

body:is(.tax-product_cat, .tax-product_tag) .area-sidebar-shop .count {
	min-width: 26px;
	padding: 0 7px;
	border-radius: 99px;
	font-size: 11px;
	line-height: 20px;
	text-align: center;
	color: var(--ls-muted);
	background: #f6f2f5;
}

/* Stock / sale toggles */
body:is(.tax-product_cat, .tax-product_tag) .wd-widget-stock-status ul { display: flex; flex-wrap: wrap; gap: 6px; }
body:is(.tax-product_cat, .tax-product_tag) .wd-widget-stock-status ul li { margin: 0; }

body:is(.tax-product_cat, .tax-product_tag) .wd-widget-stock-status ul li a {
	padding: 5px 14px !important;
	border-radius: 99px;
	border: 1.5px solid var(--ls-line);
	font-weight: 700;
	font-size: 13px;
}

body:is(.tax-product_cat, .tax-product_tag) .wd-widget-stock-status ul li a.wd-active,
body:is(.tax-product_cat, .tax-product_tag) .wd-widget-stock-status ul li a:hover {
	color: #fff;
	border-color: var(--ls-c1);
	background: var(--ls-c1);
}

/* Product categories */
body:is(.tax-product_cat, .tax-product_tag) .widget_product_categories .current-cat > a { font-weight: 900; color: var(--ls-acc); }
body:is(.tax-product_cat, .tax-product_tag) .widget_product_categories .children { margin: 4px 0 6px; padding-inline-start: 12px; border-inline-start: 2px solid var(--ls-soft); }

/* Price slider */
body:is(.tax-product_cat, .tax-product_tag) .widget_price_filter .ui-slider .ui-slider-range { background: var(--ls-acc); }

body:is(.tax-product_cat, .tax-product_tag) .widget_price_filter .ui-slider .ui-slider-handle {
	border: 3px solid #fff;
	background: var(--ls-c1);
	box-shadow: 0 2px 6px rgba(0, 0, 0, .25);
}

body:is(.tax-product_cat, .tax-product_tag) .widget_price_filter .price_slider_amount .button {
	padding: 6px 18px;
	border-radius: 99px;
	font-weight: 800;
	color: #fff;
	background: var(--ls-c1);
}

body:is(.tax-product_cat, .tax-product_tag) .woodmart-price-filter a.current-state { color: var(--ls-acc); font-weight: 800; }

/* =====================================================================
   Product cards
   ===================================================================== */

body:is(.tax-product_cat, .tax-product_tag) .products.elements-grid.products-bordered-grid { border: 0; box-shadow: none; }

body:is(.tax-product_cat, .tax-product_tag) .products.elements-grid { margin-inline: -9px; }

body:is(.tax-product_cat, .tax-product_tag) .products.elements-grid > .product-grid-item {
	margin-bottom: 18px;
	padding: 0 9px !important;
	border: 0 !important;
	box-shadow: none !important;
}

body:is(.tax-product_cat, .tax-product_tag) .product-grid-item .product-wrapper {
	height: 100%;
	padding: 10px 10px 14px;
	border-radius: 22px;
	background: #fff;
	box-shadow: 0 0 0 1px var(--ls-line);
	transition: transform .35s cubic-bezier(.2, .8, .2, 1), box-shadow .35s ease;
}

body:is(.tax-product_cat, .tax-product_tag) .product-grid-item:hover .product-wrapper {
	transform: translateY(-5px);
	box-shadow: 0 26px 50px -30px rgba(36, 21, 32, .55), 0 0 0 1px color-mix(in srgb, var(--ls-acc) 30%, transparent);
}

body:is(.tax-product_cat, .tax-product_tag) .product-grid-item .product-element-top {
	overflow: hidden;
	border-radius: 16px;
	background: #fff;
}

body:is(.tax-product_cat, .tax-product_tag) .product-grid-item .product-element-top img { transition: transform .6s cubic-bezier(.2, .8, .2, 1); }
body:is(.tax-product_cat, .tax-product_tag) .product-grid-item:hover .product-element-top img { transform: scale(1.05); }

/* Out of stock: dimmed so available products stand out */
body:is(.tax-product_cat, .tax-product_tag) .product-grid-item.outofstock .product-element-top img { filter: grayscale(.55); opacity: .7; }

/* Labels */
body:is(.tax-product_cat, .tax-product_tag) .product-labels { inset-inline-start: 8px; top: 8px; gap: 4px; }

body:is(.tax-product_cat, .tax-product_tag) .product-labels .product-label {
	min-width: 0;
	min-height: 0;
	padding: 3px 10px;
	border-radius: 99px;
	font-size: 11.5px;
	font-weight: 800;
	line-height: 1.6;
	box-shadow: 0 6px 12px -8px rgba(0, 0, 0, .5);
}

body:is(.tax-product_cat, .tax-product_tag) .product-labels .onsale { color: #fff; background: var(--ls-c1); }
body:is(.tax-product_cat, .tax-product_tag) .product-labels .out-of-stock { color: #5e5560; background: #f1edf0; }

/* Text */
body:is(.tax-product_cat, .tax-product_tag) .product-grid-item .product-information { padding: 12px 4px 0; }

body:is(.tax-product_cat, .tax-product_tag) .product-grid-item .wd-entities-title {
	font-size: 13.5px;
	font-weight: 800;
	line-height: 1.7;
}

body:is(.tax-product_cat, .tax-product_tag) .product-grid-item .wd-entities-title a { color: var(--ls-ink); }
body:is(.tax-product_cat, .tax-product_tag) .product-grid-item .wd-entities-title a:hover { color: var(--ls-acc); }

body:is(.tax-product_cat, .tax-product_tag) .product-grid-item .price { font-size: 14.5px; }
body:is(.tax-product_cat, .tax-product_tag) .product-grid-item .price > .amount,
body:is(.tax-product_cat, .tax-product_tag) .product-grid-item .price ins .amount { font-weight: 900; color: var(--ls-price); }
body:is(.tax-product_cat, .tax-product_tag) .product-grid-item .price del { opacity: .5; font-size: 12.5px; }

/* Add to cart */
body:is(.tax-product_cat, .tax-product_tag) .product-grid-item .wd-add-btn > a {
	border-radius: 99px;
	font-weight: 800;
	color: #fff;
	background: linear-gradient(120deg, var(--ls-c1), var(--ls-c2));
}

body:is(.tax-product_cat, .tax-product_tag) .product-grid-item .wd-add-btn > a:hover { color: #fff; filter: brightness(1.1); }

/* =====================================================================
   Pagination / empty
   ===================================================================== */

body:is(.tax-product_cat, .tax-product_tag) .woocommerce-pagination .page-numbers { gap: 6px; }

body:is(.tax-product_cat, .tax-product_tag) .woocommerce-pagination .page-numbers li a,
body:is(.tax-product_cat, .tax-product_tag) .woocommerce-pagination .page-numbers li span {
	min-width: 42px;
	height: 42px;
	line-height: 42px;
	border-radius: 14px;
	font-weight: 800;
	background: #fff;
	box-shadow: 0 0 0 1px var(--ls-line);
	transition: background .2s ease, color .2s ease;
}

body:is(.tax-product_cat, .tax-product_tag) .woocommerce-pagination .page-numbers li a:hover { color: var(--ls-c1); background: var(--ls-soft); }

body:is(.tax-product_cat, .tax-product_tag) .woocommerce-pagination .page-numbers li span.current {
	color: #fff;
	background: linear-gradient(120deg, var(--ls-c1), var(--ls-c2));
	box-shadow: 0 10px 20px -10px var(--ls-c1);
}

body:is(.tax-product_cat, .tax-product_tag) .woocommerce-pagination .page-numbers li span.dots { box-shadow: none; background: none; }

body:is(.tax-product_cat, .tax-product_tag) .woocommerce-info { border-radius: 18px; }

/* =====================================================================
   Responsive / motion
   ===================================================================== */

@media (max-width: 767px) {
	.ls-hero-inner { grid-template-columns: 1fr; min-height: 0; }
	.ls-hero-copy { padding: 26px 6px 6px; }
	.ls-title { font-size: 32px; }
	.ls-subtitle { font-size: 14.5px; }
	.ls-desc { font-size: 13px; }
	.ls-hero-visual { min-height: 210px; }
	.ls-subcats { margin-top: -18px; }
	.ls-tile { width: 108px; padding: 10px 6px; }
	.ls-tile-img { width: 68px; height: 68px; }
	body:is(.tax-product_cat, .tax-product_tag) .shop-loop-head { padding: 8px 12px; }
	body:is(.tax-product_cat, .tax-product_tag) .products.elements-grid { margin-inline: -5px; }
	body:is(.tax-product_cat, .tax-product_tag) .products.elements-grid > .product-grid-item { padding: 0 5px !important; margin-bottom: 10px; }
	body:is(.tax-product_cat, .tax-product_tag) .product-grid-item .product-wrapper { padding: 6px 6px 10px; border-radius: 18px; }
}

@media (prefers-reduced-motion: reduce) {
	.ls-tile, .ls-scene, .ls-mark { animation: none; }
	body:is(.tax-product_cat, .tax-product_tag) .product-grid-item .product-wrapper,
	body:is(.tax-product_cat, .tax-product_tag) .product-grid-item .product-element-top img { transition: none; }
}
