/* ENAMAD-01-UI1-T2 — Catalog surfaces only. */

.woocommerce-shop .dpc-woocommerce-main,
.tax-product_cat .dpc-woocommerce-main,
.tax-product_tag .dpc-woocommerce-main {
	padding-block-start: var(--dpc-space-6);
	padding-block-end: var(--dpc-space-16);
}

.woocommerce .woocommerce-products-header {
	display: grid;
	gap: var(--dpc-space-2);
	margin-block-end: var(--dpc-space-6);
}

.woocommerce .woocommerce-products-header__title.page-title {
	margin: 0;
	color: var(--dpc-color-graphite);
	font-size: var(--dpc-type-h1-size);
	font-weight: 700;
	line-height: var(--dpc-type-h1-line);
}

.woocommerce .term-description {
	max-inline-size: 820px;
	color: var(--dpc-color-text-secondary);
	font-size: 14px;
	line-height: 24px;
}

.woocommerce .term-description > :first-child {
	margin-block-start: 0;
}

.woocommerce .term-description > :last-child {
	margin-block-end: 0;
}

.dpc-catalog-toolbar {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--dpc-space-3);
	align-items: center;
	margin-block-end: var(--dpc-space-5);
	padding: var(--dpc-space-3);
	background: var(--dpc-color-surface);
	border: 1px solid var(--dpc-color-border);
	border-radius: var(--dpc-radius-card);
}

.dpc-catalog-toolbar__count .woocommerce-result-count,
.dpc-catalog-toolbar__sort .woocommerce-ordering {
	float: none;
	margin: 0;
}

.dpc-catalog-toolbar__count .woocommerce-result-count {
	color: var(--dpc-color-text-secondary);
	font-size: 13px;
	line-height: 22px;
}

.dpc-catalog-toolbar__sort {
	min-inline-size: 0;
}

.dpc-catalog-toolbar__sort .woocommerce-ordering,
.dpc-catalog-toolbar__sort select {
	inline-size: 100%;
}

.dpc-catalog-toolbar__sort select {
	min-block-size: var(--dpc-control-medium);
	padding-inline: var(--dpc-space-3) var(--dpc-space-8);
	background-color: var(--dpc-color-surface);
	border: 1px solid var(--dpc-color-border-strong);
	border-radius: var(--dpc-radius-control);
	color: var(--dpc-color-text);
	font: inherit;
}

.woocommerce-shop ul.products,
.tax-product_cat ul.products,
.tax-product_tag ul.products {
	gap: var(--dpc-space-4);
	margin-block: 0;
}

.woocommerce .woocommerce-info,
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-error {
	margin-block-end: var(--dpc-space-5);
}

.woocommerce nav.woocommerce-pagination {
	margin-block-start: var(--dpc-space-10);
}

.woocommerce nav.woocommerce-pagination ul {
	display: flex;
	flex-wrap: wrap;
	gap: var(--dpc-space-2);
	justify-content: center;
	border: 0;
}

.woocommerce nav.woocommerce-pagination ul li {
	border: 0;
}

.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-inline-size: var(--dpc-control-medium);
	min-block-size: var(--dpc-control-medium);
	padding-inline: var(--dpc-space-2);
	background: var(--dpc-color-surface);
	border: 1px solid var(--dpc-color-border);
	border-radius: var(--dpc-radius-control);
	color: var(--dpc-color-text);
	font-weight: 600;
}

.woocommerce nav.woocommerce-pagination ul li span.current {
	background: var(--dpc-color-primary);
	border-color: var(--dpc-color-primary);
	color: var(--dpc-color-neutral-0);
}

.woocommerce nav.woocommerce-pagination ul li a:hover {
	background: var(--dpc-color-primary-subtle);
	border-color: var(--dpc-color-primary);
	color: var(--dpc-color-primary-active);
}

@media (min-width: 480px) {
	.dpc-catalog-toolbar {
		grid-template-columns: minmax(0, 1fr) minmax(210px, auto);
		padding: var(--dpc-space-4);
	}

	.dpc-catalog-toolbar__sort .woocommerce-ordering,
	.dpc-catalog-toolbar__sort select {
		inline-size: auto;
		min-inline-size: 220px;
	}
}

@media (min-width: 768px) {
	.woocommerce-shop ul.products,
	.tax-product_cat ul.products,
	.tax-product_tag ul.products {
		gap: var(--dpc-space-5);
	}
}

@media (min-width: 1024px) {
	.woocommerce-shop .dpc-woocommerce-main,
	.tax-product_cat .dpc-woocommerce-main,
	.tax-product_tag .dpc-woocommerce-main {
		padding-block-start: var(--dpc-space-8);
	}
}

/* UI2 generic product taxonomies (e.g. brand archives) without assuming taxonomy names. */
.dpc-generic-product-taxonomy {
	padding-block-start: var(--dpc-space-6);
	padding-block-end: var(--dpc-space-16);
}

.dpc-generic-product-taxonomy .dpc-catalog-header {
	display: grid;
	gap: var(--dpc-space-2);
	margin-block-end: var(--dpc-space-6);
}

.dpc-generic-product-taxonomy .dpc-catalog-header h1 { margin: 0; }
.dpc-generic-product-taxonomy .term-description { max-inline-size: 820px; color: var(--dpc-color-text-secondary); }
.dpc-generic-product-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--dpc-space-4);
}

@media (min-width: 480px) {
	.dpc-generic-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1024px) {
	.dpc-generic-product-taxonomy { padding-block-start: var(--dpc-space-8); }
	.dpc-generic-product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--dpc-space-5); }
}
@media (min-width: 1280px) {
	.dpc-generic-product-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* 0.8.1 — runtime catalog refinement after HostDL archive review. */
.woocommerce-shop .woocommerce-products-header,
.tax-product_cat .woocommerce-products-header,
.tax-product_tag .woocommerce-products-header {
	position: relative;
	gap: var(--dpc-space-3);
	padding: var(--dpc-space-6);
	margin-block-end: var(--dpc-space-4);
	background:
		linear-gradient(135deg, rgb(8 106 246 / .045), transparent 44%),
		var(--dpc-color-surface);
	border: 1px solid var(--dpc-color-border);
	border-radius: 18px;
	box-shadow: 0 8px 30px rgb(18 20 23 / .035);
}

.woocommerce-shop .woocommerce-products-header::before,
.tax-product_cat .woocommerce-products-header::before,
.tax-product_tag .woocommerce-products-header::before {
	position: absolute;
	inset-block: var(--dpc-space-5);
	inset-inline-start: 0;
	inline-size: 4px;
	border-radius: 0 999px 999px 0;
	background: var(--dpc-color-primary);
	content: "";
}

.woocommerce .woocommerce-products-header__title.page-title {
	font-size: clamp(24px, 2.2vw, 34px);
	line-height: 1.45;
	letter-spacing: -.02em;
}

.dpc-catalog-shortcuts {
	display: flex;
	flex-wrap: wrap;
	gap: var(--dpc-space-3);
	align-items: center;
	margin-block: 0 var(--dpc-space-5);
	padding: var(--dpc-space-3) var(--dpc-space-4);
	background: var(--dpc-color-surface);
	border: 1px solid var(--dpc-color-border);
	border-radius: 14px;
}

.dpc-catalog-shortcuts__label {
	color: var(--dpc-color-text-muted);
	font-size: 12px;
	font-weight: 700;
}

.dpc-catalog-shortcuts__items {
	display: flex;
	flex-wrap: wrap;
	gap: var(--dpc-space-2);
}

.dpc-catalog-shortcuts__link {
	display: inline-flex;
	align-items: center;
	min-block-size: 40px;
	padding-inline: var(--dpc-space-4);
	background: var(--dpc-color-neutral-50);
	border: 1px solid var(--dpc-color-border);
	border-radius: 999px;
	color: var(--dpc-color-graphite);
	font-size: 13px;
	font-weight: 650;
	text-decoration: none;
	transition: background-color 160ms ease, border-color 160ms ease, color 160ms ease;
}

.dpc-catalog-shortcuts__link:hover,
.dpc-catalog-shortcuts__link:focus-visible,
.dpc-catalog-shortcuts__link.is-current {
	background: var(--dpc-color-primary-subtle);
	border-color: var(--dpc-color-primary-border-soft);
	color: var(--dpc-color-primary-active);
}

.dpc-catalog-toolbar {
	grid-template-columns: minmax(0, 1fr);
	gap: var(--dpc-space-3);
	margin-block-end: var(--dpc-space-5);
	padding: var(--dpc-space-4);
	border-radius: 14px;
	box-shadow: 0 4px 18px rgb(18 20 23 / .025);
}

.dpc-catalog-toolbar__count .woocommerce-result-count {
	font-size: 13px;
	font-weight: 600;
}

.dpc-catalog-toolbar__sort select {
	background-color: var(--dpc-color-neutral-0);
	border-color: var(--dpc-color-neutral-300);
	font-weight: 600;
}

.woocommerce-shop ul.products,
.tax-product_cat ul.products,
.tax-product_tag ul.products {
	align-items: stretch;
}

@media (min-width: 768px) {
	.dpc-catalog-toolbar {
		grid-template-columns: minmax(0, 1fr) minmax(220px, auto);
	}
}

@media (min-width: 1024px) {
	.woocommerce-shop ul.products,
	.tax-product_cat ul.products,
	.tax-product_tag ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: var(--dpc-space-5);
	}
}

@media (min-width: 1320px) {
	.woocommerce-shop ul.products,
	.tax-product_cat ul.products,
	.tax-product_tag ul.products {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
}

@media (max-width: 767px) {
	.woocommerce-shop .woocommerce-products-header,
	.tax-product_cat .woocommerce-products-header,
	.tax-product_tag .woocommerce-products-header {
		padding: var(--dpc-space-4);
		border-radius: 14px;
	}

	.dpc-catalog-shortcuts {
		align-items: flex-start;
		flex-direction: column;
	}

	.dpc-catalog-shortcuts__items {
		inline-size: 100%;
	}

	.dpc-catalog-shortcuts__link {
		flex: 1 1 auto;
		justify-content: center;
	}
}

/* 0.8.2 — native WooCommerce filter surface. */
.dpc-catalog-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--dpc-space-5);
	align-items: start;
}

.dpc-catalog-filters {
	padding: var(--dpc-space-4);
	background: var(--dpc-color-surface);
	border: 1px solid var(--dpc-color-border);
	border-radius: 16px;
	box-shadow: 0 4px 18px rgb(18 20 23 / .025);
}

.dpc-catalog-filters__heading {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--dpc-space-3);
	padding-block-end: var(--dpc-space-3);
	margin-block-end: var(--dpc-space-3);
	border-block-end: 1px solid var(--dpc-color-border);
}

.dpc-catalog-filters__heading h2 {
	margin: 0;
	font-size: 16px;
	line-height: 28px;
}

.dpc-catalog-filters__reset {
	color: var(--dpc-color-primary);
	font-size: 12px;
	font-weight: 700;
	text-decoration: none;
}

.dpc-catalog-filters__widgets {
	display: grid;
	gap: var(--dpc-space-4);
}

.dpc-filter-widget + .dpc-filter-widget {
	padding-block-start: var(--dpc-space-4);
	border-block-start: 1px solid var(--dpc-color-border);
}

.dpc-filter-widget__title,
.dpc-filter-widget .widget-title {
	margin: 0 0 var(--dpc-space-3);
	font-size: 14px;
	line-height: 24px;
}

.dpc-filter-widget ul {
	display: grid;
	gap: 4px;
	padding: 0;
	margin: 0;
	list-style: none;
}

.dpc-filter-widget li {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--dpc-space-2);
	min-block-size: 36px;
}

.dpc-filter-widget li a {
	color: var(--dpc-color-text-secondary);
	font-size: 13px;
	text-decoration: none;
}

.dpc-filter-widget li.chosen a,
.dpc-filter-widget li a:hover {
	color: var(--dpc-color-primary-active);
}

.dpc-filter-widget .count {
	color: var(--dpc-color-text-muted);
	font-size: 11px;
}

.dpc-filter-widget .price_slider_wrapper {
	padding-block-start: var(--dpc-space-2);
}

.dpc-filter-widget .price_slider_amount {
	display: grid;
	gap: var(--dpc-space-2);
}

.dpc-filter-widget .price_slider_amount .button {
	min-block-size: 40px;
	padding-inline: var(--dpc-space-4);
	background: var(--dpc-color-graphite);
	border: 0;
	border-radius: var(--dpc-radius-control);
	color: var(--dpc-color-neutral-0);
	font: inherit;
	font-size: 12px;
	font-weight: 700;
	cursor: pointer;
}

.dpc-catalog-results { min-inline-size: 0; }
.dpc-catalog-no-results-reset { margin-block-start: var(--dpc-space-4); }

@media (min-width: 1024px) {
	.dpc-catalog-layout {
		grid-template-columns: 260px minmax(0, 1fr);
		gap: var(--dpc-space-6);
	}
	.dpc-catalog-filters {
		position: sticky;
		inset-block-start: 20px;
	}
	.dpc-catalog-results .dpc-catalog-toolbar { margin-block-start: 0; }
}

/* 0.8.3 — keep the approved four-column catalog feel and move filters to an on-demand drawer. */
.dpc-catalog-layout {
	display: block;
}

.dpc-catalog-results {
	min-inline-size: 0;
}

.dpc-catalog-toolbar {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: var(--dpc-space-3);
}

.dpc-catalog-toolbar__controls {
	display: flex;
	flex-wrap: wrap;
	gap: var(--dpc-space-2);
	align-items: center;
}

.dpc-catalog-filter-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--dpc-space-2);
	min-block-size: 44px;
	padding-inline: var(--dpc-space-4);
	background: var(--dpc-color-neutral-0);
	border: 1px solid var(--dpc-color-neutral-300);
	border-radius: var(--dpc-radius-control);
	color: var(--dpc-color-graphite);
	font: inherit;
	font-size: 13px;
	font-weight: 700;
	cursor: pointer;
}

.dpc-catalog-filter-toggle:hover,
.dpc-catalog-filter-toggle:focus-visible,
.dpc-catalog-filter-toggle[aria-expanded="true"] {
	background: var(--dpc-color-primary-subtle);
	border-color: var(--dpc-color-primary);
	color: var(--dpc-color-primary-active);
}

.dpc-catalog-filter-backdrop {
	position: fixed;
	z-index: 998;
	inset: 0;
	background: rgb(18 20 23 / .38);
	backdrop-filter: blur(1px);
}

.dpc-catalog-filter-backdrop[hidden] { display: none; }

.dpc-has-js .dpc-catalog-filters {
	position: fixed;
	z-index: 999;
	inset-block: 0;
	inset-inline-start: 0;
	inline-size: min(88vw, 360px);
	max-block-size: 100dvh;
	padding: var(--dpc-space-5);
	border: 0;
	border-radius: 0;
	box-shadow: -18px 0 48px rgb(18 20 23 / .14);
	overflow-y: auto;
	transform: translateX(110%);
	transition: transform 180ms ease;
}

.dpc-has-js .dpc-catalog-filters.is-open {
	transform: translateX(0);
}

.dpc-catalog-filters__heading {
	position: relative;
	padding-inline-end: 44px;
}

.dpc-catalog-filters__close {
	position: absolute;
	inset-block-start: -4px;
	inset-inline-end: 0;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	inline-size: 40px;
	block-size: 40px;
	padding: 0;
	background: var(--dpc-color-neutral-100);
	border: 1px solid var(--dpc-color-neutral-200);
	border-radius: 10px;
	color: var(--dpc-color-graphite);
	font-size: 24px;
	line-height: 1;
	cursor: pointer;
}

.dpc-catalog-filter-open {
	overflow: hidden;
}

@media (min-width: 480px) {
	.dpc-catalog-toolbar {
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: center;
	}
	.dpc-catalog-toolbar__controls { justify-content: flex-start; }
}

@media (min-width: 1024px) {
	.dpc-catalog-layout { display: block; }
	.dpc-catalog-filters { position: fixed; inset-block-start: 0; }
	.dpc-catalog-results .dpc-catalog-toolbar { margin-block-start: 0; }
}

@media (prefers-reduced-motion: reduce) {
	.dpc-has-js .dpc-catalog-filters { transition: none; }
}
