/* BizLab shop experience — desktop sidebar, clean product cards and mobile-safe filters. */
.post-type-archive-product,
.tax-product_cat,
.tax-product_tag {
	--bl-shop-ink: #122038;
	--bl-shop-copy: #607086;
	--bl-shop-line: #e4e9ef;
	--bl-shop-soft: #f5f7fa;
	--bl-shop-orange: #ff6a00;
}

.post-type-archive-product .site-content,
.tax-product_cat .site-content,
.tax-product_tag .site-content {
	background: var(--bl-shop-soft);
}

.post-type-archive-product .products .product-grid-item,
.tax-product_cat .products .product-grid-item,
.tax-product_tag .products .product-grid-item {
	overflow: hidden;
	border: 1px solid var(--bl-shop-line);
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 7px 22px rgba(18, 32, 56, .055);
	transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}

.post-type-archive-product .products .product-grid-item:hover,
.tax-product_cat .products .product-grid-item:hover,
.tax-product_tag .products .product-grid-item:hover {
	transform: translateY(-4px);
	border-color: #ffd0ad;
	box-shadow: 0 16px 34px rgba(18, 32, 56, .11);
}

.post-type-archive-product .product-element-top,
.tax-product_cat .product-element-top,
.tax-product_tag .product-element-top {
	overflow: hidden;
	border-radius: 15px 15px 0 0;
	background: #fff;
}

.post-type-archive-product .product-element-bottom,
.tax-product_cat .product-element-bottom,
.tax-product_tag .product-element-bottom {
	padding: 16px 17px 18px;
}

.post-type-archive-product .wd-entities-title,
.tax-product_cat .wd-entities-title,
.tax-product_tag .wd-entities-title {
	min-height: 2.7em;
	font-size: 15px;
	line-height: 1.35;
}

.post-type-archive-product .products .price,
.tax-product_cat .products .price,
.tax-product_tag .products .price {
	color: var(--bl-shop-orange) !important;
	font-size: 17px;
	font-weight: 850;
}

.post-type-archive-product .products :is(.button, .add_to_cart_button),
.tax-product_cat .products :is(.button, .add_to_cart_button),
.tax-product_tag .products :is(.button, .add_to_cart_button) {
	display: inline-flex !important;
	width: 100%;
	min-height: 44px !important;
	align-items: center;
	justify-content: center;
	margin-top: 13px !important;
	padding: 0 13px !important;
	border: 0 !important;
	border-radius: 9px !important;
	background: linear-gradient(135deg, var(--bl-shop-orange), #ff8a29) !important;
	color: #fff !important;
	font-weight: 800 !important;
	line-height: 1.15 !important;
	text-align: center;
	box-shadow: 0 8px 18px rgba(255, 106, 0, .18);
}

.post-type-archive-product .wd-shop-tools,
.tax-product_cat .wd-shop-tools,
.tax-product_tag .wd-shop-tools {
	margin-bottom: 25px;
	padding: 14px 18px;
	border: 1px solid var(--bl-shop-line);
	border-radius: 12px;
	background: #fff;
	box-shadow: 0 5px 18px rgba(18, 32, 56, .04);
}

@media (min-width: 1025px) {
	.post-type-archive-product .site-content > .elementor,
	.tax-product_cat .site-content > .elementor,
	.tax-product_tag .site-content > .elementor {
		display: grid;
		grid-template-columns: minmax(245px, 285px) minmax(0, 1fr);
		column-gap: 28px;
		align-items: start;
	}

	.post-type-archive-product .site-content > .elementor > .e-con:nth-child(-n+2),
	.tax-product_cat .site-content > .elementor > .e-con:nth-child(-n+2),
	.tax-product_tag .site-content > .elementor > .e-con:nth-child(-n+2) {
		grid-column: 1 / -1;
	}

	.post-type-archive-product .site-content > .elementor > .e-con:nth-child(3),
	.tax-product_cat .site-content > .elementor > .e-con:nth-child(3),
	.tax-product_tag .site-content > .elementor > .e-con:nth-child(3) {
		grid-column: 1;
		grid-row: 3;
		position: sticky;
		top: 98px;
		z-index: 4;
		align-self: start;
	}

	.post-type-archive-product .site-content > .elementor > .e-con:nth-child(4),
	.tax-product_cat .site-content > .elementor > .e-con:nth-child(4),
	.tax-product_tag .site-content > .elementor > .e-con:nth-child(4) {
		grid-column: 2;
		grid-row: 3;
		min-width: 0;
	}

	.post-type-archive-product .wd-shop-filters-btn,
	.tax-product_cat .wd-shop-filters-btn,
	.tax-product_tag .wd-shop-filters-btn {
		display: none !important;
	}

	.post-type-archive-product .filters-area,
	.tax-product_cat .filters-area,
	.tax-product_tag .filters-area {
		display: block !important;
		width: 100% !important;
		padding: 0 !important;
		border: 0 !important;
		background: transparent !important;
	}

	.post-type-archive-product .filters-inner-area,
	.tax-product_cat .filters-inner-area,
	.tax-product_tag .filters-inner-area {
		display: flex !important;
		width: 100% !important;
		height: auto !important;
		max-height: calc(100vh - 120px);
		flex-direction: column;
		gap: 0;
		overflow: auto;
		padding: 20px !important;
		border: 1px solid var(--bl-shop-line);
		border-radius: 15px;
		background: #fff;
		box-shadow: 0 10px 28px rgba(18, 32, 56, .07);
	}

	.post-type-archive-product .filters-inner-area > .wd-widget,
	.tax-product_cat .filters-inner-area > .wd-widget,
	.tax-product_tag .filters-inner-area > .wd-widget {
		width: 100% !important;
		padding: 20px 0 0 !important;
		border-top: 1px solid var(--bl-shop-line);
	}
}

.bl-shop-filter-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding-bottom: 17px;
}

.bl-shop-filter-head strong {
	color: var(--bl-shop-ink);
	font-size: 19px;
}

.bl-shop-filter-head a {
	color: var(--bl-shop-orange) !important;
	font-size: 11px;
	font-weight: 800;
	text-decoration: none;
}

.bl-shop-category-filter {
	padding: 20px 0;
	border-top: 1px solid var(--bl-shop-line);
}

.bl-shop-category-filter h3,
.filters-inner-area .widget-title {
	margin: 0 0 13px;
	color: var(--bl-shop-ink);
	font-size: 14px;
	font-weight: 850;
	letter-spacing: .02em;
}

.bl-shop-category-filter ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.bl-shop-category-filter li + li {
	margin-top: 3px;
}

.bl-shop-category-filter a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	padding: 7px 9px;
	border-radius: 7px;
	color: var(--bl-shop-copy) !important;
	font-size: 13px;
	text-decoration: none;
}

.bl-shop-category-filter a:hover {
	background: #fff3ea;
	color: var(--bl-shop-orange) !important;
}

.bl-shop-category-filter small {
	display: grid;
	min-width: 24px;
	height: 24px;
	place-items: center;
	border-radius: 50%;
	background: var(--bl-shop-soft);
	color: var(--bl-shop-copy);
	font-size: 10px;
}

.filters-inner-area :is(.wd-filter-list, .wd-sort-list) a {
	border-radius: 7px;
}

/* Real colour swatches: visual colour only, with the name retained for accessibility. */
.wd-swatches-product .bl-color-swatch,
.wd-swatches-filter .bl-color-swatch,
.single-product .bl-color-swatch {
	position: relative;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 24px !important;
	min-width: 24px !important;
	height: 24px !important;
	min-height: 24px !important;
	padding: 0 !important;
	overflow: hidden;
	border: 1px solid rgba(17, 24, 39, .18) !important;
	border-radius: 50% !important;
	box-shadow: 0 1px 3px rgba(17, 24, 39, .12);
}

.wd-swatches-product .bl-color-swatch:hover,
.wd-swatches-filter .bl-color-swatch:hover,
.single-product .bl-color-swatch:hover,
.wd-swatches-product .bl-color-swatch.wd-active,
.wd-swatches-filter .bl-color-swatch.wd-active,
.single-product .bl-color-swatch.wd-active {
	border-color: var(--bl-shop-ink) !important;
	box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--bl-shop-ink);
	transform: translateY(-1px);
}

.bl-color-swatch .wd-swatch-bg {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	border-radius: inherit !important;
}

.bl-color-swatch.bl-light-color .wd-swatch-bg {
	box-shadow: inset 0 0 0 1px rgba(17, 24, 39, .12);
}

.bl-color-swatch .wd-swatch-text {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.wd-swatches-product,
.wd-swatches-filter,
.single-product .wd-swatches-single {
	gap: 8px;
}

.single-product .wd-swatches-single .bl-color-swatch {
	width: 30px !important;
	min-width: 30px !important;
	height: 30px !important;
	min-height: 30px !important;
}

/* Mobile fallback for attributes that WoodMart leaves as native dropdowns. */
.bl-select-swatches {
	display: none;
}

@media (max-width: 1024px) {
	.bl-shop-filter-head,
	.bl-shop-category-filter {
		display: none;
	}

	.post-type-archive-product .wd-shop-filters-btn,
	.tax-product_cat .wd-shop-filters-btn,
	.tax-product_tag .wd-shop-filters-btn {
		display: block !important;
	}
}

@media (max-width: 767px) {
	.post-type-archive-product .products .product-grid-item,
	.tax-product_cat .products .product-grid-item,
	.tax-product_tag .products .product-grid-item {
		display: flex;
		height: 100%;
	}

	.post-type-archive-product .product-grid-item .product-wrapper,
	.tax-product_cat .product-grid-item .product-wrapper,
	.tax-product_tag .product-grid-item .product-wrapper {
		display: flex !important;
		width: 100%;
		height: 100%;
		flex-direction: column;
	}

	.post-type-archive-product .product-grid-item .product-element-top,
	.tax-product_cat .product-grid-item .product-element-top,
	.tax-product_tag .product-grid-item .product-element-top {
		display: flex;
		aspect-ratio: 1 / 1;
		flex: 0 0 auto;
		align-items: center;
		justify-content: center;
	}

	.post-type-archive-product .product-element-top .product-image-link,
	.tax-product_cat .product-element-top .product-image-link,
	.tax-product_tag .product-element-top .product-image-link,
	.post-type-archive-product .product-element-top picture,
	.tax-product_cat .product-element-top picture,
	.tax-product_tag .product-element-top picture {
		display: flex !important;
		width: 100%;
		height: 100%;
		align-items: center;
		justify-content: center;
	}

	.post-type-archive-product .product-element-top img,
	.tax-product_cat .product-element-top img,
	.tax-product_tag .product-element-top img {
		display: block;
		width: 100% !important;
		height: 100% !important;
		object-fit: contain !important;
	}

	.post-type-archive-product .product-grid-item .product-element-bottom,
	.tax-product_cat .product-grid-item .product-element-bottom,
	.tax-product_tag .product-grid-item .product-element-bottom {
		display: flex !important;
		min-height: 250px;
		flex: 1 1 auto;
		flex-direction: column;
	}

	.post-type-archive-product .product-grid-item .wd-swatches-grid,
	.tax-product_cat .product-grid-item .wd-swatches-grid,
	.tax-product_tag .product-grid-item .wd-swatches-grid {
		display: flex !important;
		height: 48px;
		min-height: 48px;
		max-height: 48px;
		align-content: center;
		align-items: center;
		justify-content: center;
		overflow: hidden;
		margin: 0 0 6px;
	}

	.post-type-archive-product .product-grid-item .wd-entities-title,
	.tax-product_cat .product-grid-item .wd-entities-title,
	.tax-product_tag .product-grid-item .wd-entities-title {
		display: -webkit-box;
		height: 5.4em;
		min-height: 5.4em;
		max-height: 5.4em;
		overflow: hidden;
		-webkit-box-orient: vertical;
		-webkit-line-clamp: 4;
		line-clamp: 4;
	}

	.post-type-archive-product .product-grid-item .price,
	.tax-product_cat .product-grid-item .price,
	.tax-product_tag .product-grid-item .price {
		display: flex;
		min-height: 27px;
		align-items: center;
		justify-content: center;
		margin-top: 5px;
	}

	.post-type-archive-product .product-grid-item .wd-add-btn,
	.tax-product_cat .product-grid-item .wd-add-btn,
	.tax-product_tag .product-grid-item .wd-add-btn {
		width: 100%;
		margin-top: auto;
	}

	.single-product .variations .wd-swatches-single,
	.single-product .variations .bl-select-swatches {
		display: flex !important;
		flex-wrap: wrap;
		align-items: center;
		gap: 10px;
		width: 100%;
	}

	.single-product .variations select.bl-mobile-swatch-select-ready {
		position: absolute !important;
		width: 1px !important;
		height: 1px !important;
		padding: 0 !important;
		margin: -1px !important;
		overflow: hidden !important;
		clip: rect(0, 0, 0, 0) !important;
		clip-path: inset(50%) !important;
		white-space: nowrap !important;
		border: 0 !important;
	}

	.single-product .bl-select-swatch {
		appearance: none;
		display: inline-flex;
		align-items: center;
		justify-content: center;
		min-height: 42px;
		padding: 0 14px;
		border: 1px solid #d5d9df;
		border-radius: 8px;
		background: #fff;
		color: var(--bl-shop-ink);
		font-size: 13px;
		font-weight: 800;
		line-height: 1;
		box-shadow: 0 2px 7px rgba(17, 24, 39, .08);
	}

	.single-product .bl-select-swatch--color {
		width: 34px;
		min-width: 34px;
		height: 34px;
		min-height: 34px;
		padding: 0;
		overflow: hidden;
		border-radius: 50%;
	}

	.single-product .bl-select-swatch-color {
		display: block;
		width: 100%;
		height: 100%;
		border-radius: inherit;
	}

	.single-product .bl-select-swatch.bl-light-color .bl-select-swatch-color {
		box-shadow: inset 0 0 0 1px rgba(17, 24, 39, .16);
	}

	.single-product .bl-select-swatch:hover,
	.single-product .bl-select-swatch:focus-visible,
	.single-product .bl-select-swatch.is-selected {
		border-color: var(--bl-shop-ink);
		outline: none;
		box-shadow: 0 0 0 2px #fff, 0 0 0 4px var(--bl-shop-ink);
	}

	.single-product .bl-select-swatch--text.is-selected {
		background: var(--bl-shop-ink);
		color: #fff;
	}

	.single-product .bl-select-swatch:disabled {
		cursor: not-allowed;
		opacity: .35;
		box-shadow: none;
	}

	.post-type-archive-product .quick-shop-wrapper,
	.tax-product_cat .quick-shop-wrapper,
	.tax-product_tag .quick-shop-wrapper {
		display: none !important;
	}

	.post-type-archive-product .product-element-bottom,
	.tax-product_cat .product-element-bottom,
	.tax-product_tag .product-element-bottom {
		padding: 12px 12px 14px;
	}

	.post-type-archive-product .wd-entities-title,
	.tax-product_cat .wd-entities-title,
	.tax-product_tag .wd-entities-title {
		font-size: 13px;
	}
}
