:root {
	--ems-archive-ink: #161616;
	--ems-archive-muted: #777;
	--ems-archive-border: #e2e2e2;
	--ems-archive-orange: var(--ems-accent, #F6A51C);
	--ems-archive-accent: var(--ems-ui-orange-dark, #9A4A05);
}

/* Breadcrumbs are not part of the approved public storefront layout. */
body .woocommerce-breadcrumb,
body .wd-breadcrumbs,
body .ems-product-breadcrumbs,
body .ems-all-equipment__breadcrumbs,
body .wp-block-woocommerce-breadcrumbs,
body .wp-block-breadcrumbs {
	display: none !important;
}

body.ems-catalog-active .shop-loop-head > .wd-shop-tools:first-child {
	display: none !important;
}

/* Block-theme archives apply a 700px constrained-content cap to shortcode
 * blocks.  The shared EMS archive is a full storefront layout and must use
 * the available content width so its related list, toolbar and product grid
 * align with the other category archives. */
body.ems-catalog-active main .ems-catalog-shortcode {
	width: min(100%, 1400px) !important;
	max-width: 1400px !important;
	margin-right: auto !important;
	margin-left: auto !important;
}

/* Hostinger's block-theme archive has no WoodMart title-band node.  Recreate
 * the shared EMS archive order and title treatment on the native block
 * markup, while leaving all non-archive pages untouched. */
body.ems-catalog-active.woocommerce-uses-block-theme main#wp--skip-link--target {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) !important;
	column-gap: 32px !important;
	row-gap: 0 !important;
	align-items: start !important;
}
body.ems-catalog-active.woocommerce-uses-block-theme main#wp--skip-link--target > .wp-block-query-title {
	grid-column: 1 / -1 !important;
	grid-row: 1 !important;
	display: flex !important;
	width: 100vw !important;
	max-width: none !important;
	height: 248px !important;
	min-height: 248px !important;
	align-items: center !important;
	justify-content: center !important;
	box-sizing: border-box !important;
	margin: 0 0 0 calc(-1 * var(--wp--style--root--padding-left, 24px)) !important;
	padding: 0 24px !important;
	background: #090909 !important;
	color: #fff !important;
	text-align: center !important;
}
body.ems-catalog-active.woocommerce-uses-block-theme main#wp--skip-link--target > .wp-block-query-title {
	font-family: Oswald, "Arial Narrow", Arial, Helvetica, sans-serif !important;
	font-size: clamp(46px, 5vw, 78px) !important;
	font-weight: 500 !important;
	line-height: 1.05 !important;
}
body.ems-catalog-active.woocommerce-uses-block-theme main#wp--skip-link--target > .wp-block-woocommerce-breadcrumbs {
	display: none !important;
}
body.ems-catalog-active.woocommerce-uses-block-theme main#wp--skip-link--target > .wc-block-store-notices {
	grid-column: 1 / -1 !important;
	grid-row: 3 !important;
}
body.ems-catalog-active.woocommerce-uses-block-theme main#wp--skip-link--target > .ems-archive-related-sidebar {
	grid-column: 1 !important;
	grid-row: 4 !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
}
body.ems-catalog-active.woocommerce-uses-block-theme main#wp--skip-link--target > .wp-block-group {
	grid-column: 1 / -1 !important;
	grid-row: 5 !important;
	width: min(100% - 48px, 1400px) !important;
	max-width: 1400px !important;
	margin-right: auto !important;
	margin-left: auto !important;
	display: none !important;
}
body.ems-catalog-active.woocommerce-uses-block-theme main#wp--skip-link--target > .ems-catalog-shortcode {
	grid-column: 1 !important;
	grid-row: 2 / span 2 !important;
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
	margin: 0 !important;
}

@media (max-width: 767px) {
	body.ems-catalog-active.woocommerce-uses-block-theme main#wp--skip-link--target {
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
	}
	body.ems-catalog-active.woocommerce-uses-block-theme main#wp--skip-link--target > .wp-block-query-title,
	body.ems-catalog-active.woocommerce-uses-block-theme main#wp--skip-link--target > .wp-block-woocommerce-breadcrumbs,
	body.ems-catalog-active.woocommerce-uses-block-theme main#wp--skip-link--target > .wc-block-store-notices,
	body.ems-catalog-active.woocommerce-uses-block-theme main#wp--skip-link--target > .ems-archive-related-sidebar,
	body.ems-catalog-active.woocommerce-uses-block-theme main#wp--skip-link--target > .ems-catalog-shortcode {
		grid-column: auto !important;
		grid-row: auto !important;
	}
	body.ems-catalog-active.woocommerce-uses-block-theme main#wp--skip-link--target > .ems-catalog-shortcode {
		width: 100% !important;
		max-width: none !important;
		margin: 0 !important;
	}
	body.ems-catalog-active.woocommerce-uses-block-theme main#wp--skip-link--target > .wp-block-query-title {
		height: 190px !important;
		min-height: 190px !important;
		font-size: clamp(40px, 10vw, 62px) !important;
	}
	body.ems-catalog-active.woocommerce-uses-block-theme main#wp--skip-link--target > .wp-block-woocommerce-breadcrumbs,
	body.ems-catalog-active.woocommerce-uses-block-theme main#wp--skip-link--target > .wp-block-group {
		width: calc(100% - 28px) !important;
		max-width: none !important;
	}
}

/* EMS archive geometry. WoodMart places the breadcrumb/tools and the
 * product loop in sibling nodes; this grid makes one stable archive without
 * moving catalog content into the mobile drawer. */
body.ems-catalog-active .wd-page-title {
	display: flex;
	width: 100%;
	height: 248px !important;
	min-height: 248px !important;
	align-items: center;
	justify-content: center;
	padding: 0 !important;
	background: #090909 !important;
	color: #fff;
}

body.ems-catalog-active .wd-page-title-bg { background: #090909 !important; }
body.ems-catalog-active .wd-page-title .container {
	width: min(100% - 40px, 1400px);
	padding: 0;
	text-align: center;
}
body.ems-catalog-active .wd-page-title .entry-title.title {
	margin: 0 !important;
	color: #fff !important;
	font-size: clamp(46px, 5vw, 78px) !important;
	font-weight: 500 !important;
	line-height: 1.05 !important;
}
body.ems-catalog-active .wd-page-title .wd-btn-show-cat,
body.ems-catalog-active .wd-page-title .wd-nav-product-cat { display: none !important; }

body.ems-catalog-active .shop-loop-head {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	grid-auto-flow: row;
	column-gap: 42px;
	row-gap: 0;
	width: min(100% - 48px, 1400px);
	margin: 0 auto;
	padding: 36px 0 64px;
	align-items: start;
}

body.ems-catalog-active .shop-loop-head > .wd-shop-tools:first-child {
	display: none !important;
	grid-column: 1 / -1;
	grid-row: 1;
	width: 100%;
	min-width: 0;
	margin: 0 0 26px;
}
body.ems-catalog-active .shop-loop-head > .wd-shop-tools:first-child .woocommerce-result-count { display: none !important; }
body.ems-catalog-active .shop-loop-head > .wd-shop-tools:first-child .wd-breadcrumbs,
body.ems-catalog-active .shop-loop-head > .wd-shop-tools:first-child .woocommerce-breadcrumb {
	margin: 0;
	color: #777;
	font-size: 15px;
}

body.ems-catalog-active .shop-loop-head > .wd-shop-tools:nth-child(2) { display: contents; }
body.ems-catalog-active .ems-catalog-layout,
body.ems-catalog-active .ems-catalog-results { display: contents; }
body.ems-catalog-active .ems-category-navigation {
	grid-column: 1;
	grid-row: 1;
	width: 100%;
	min-width: 0;
	box-sizing: border-box;
	margin: 0 0 26px;
	padding: 16px 18px;
	border: 1px solid var(--ems-archive-border);
	border-radius: 10px;
	background: #fff;
}
body.ems-catalog-active .ems-category-navigation-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: 0 0 12px;
}
body.ems-catalog-active .ems-category-navigation h2 {
	margin: 0;
	color: var(--ems-archive-ink);
	font-size: 16px;
	font-weight: 800;
	letter-spacing: .01em;
	line-height: 1.2;
	text-transform: uppercase;
}
body.ems-catalog-active .ems-category-navigation ul {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
	margin: 0;
	padding: 0;
	list-style: none;
}
body.ems-catalog-active .ems-category-navigation li { margin: 0; list-style: none; }
body.ems-catalog-active .ems-category-navigation li.ems-category-navigation-group {
	flex: 0 0 100%;
	margin: 6px 0 -1px;
	color: #777;
	font-size: 11px;
	font-weight: 800;
	letter-spacing: .06em;
	line-height: 1.2;
	text-transform: uppercase;
}
body.ems-catalog-active .ems-category-navigation a {
	display: inline-flex;
	min-height: 34px;
	align-items: center;
	justify-content: center;
	padding: 8px 13px;
	border: 1px solid #d9d9d9;
	border-radius: 999px;
	background: #fff;
	color: #333;
	font-size: 13px;
	font-weight: 700;
	line-height: 1.1;
	text-decoration: none;
}
body.ems-catalog-active .ems-category-navigation a:hover,
body.ems-catalog-active .ems-category-navigation a.is-current {
	border-color: #111;
	background: #111;
	color: #fff;
}
body.ems-catalog-active .ems-category-navigation a small { display: none; }
.ems-category-mobile-toggle { display: none; }

body.ems-catalog-active .ems-filter-panel {
	display: none !important;
	grid-column: 1;
	grid-row: 2 / span 3;
	position: sticky;
	top: 24px;
	width: 100%;
	max-height: calc(100vh - 48px);
	overflow-y: auto;
	background: #fff;
	color: var(--ems-archive-ink);
}
.ems-filter-heading {
	display: flex;
	min-height: 32px;
	align-items: center;
	justify-content: space-between;
	margin: 0;
	padding: 0 0 12px;
	border-bottom: 0;
	background: #fff;
	color: var(--ems-archive-ink);
}
.ems-filter-heading h2 {
	display: none;
	margin: 0;
	font-size: 18px;
	font-weight: 800;
	line-height: 1.2;
	text-transform: uppercase;
}
.ems-filter-close { display: none; }
.ems-filter-form { margin: 0; }
.ems-filter-group {
	margin: 0;
	padding: 20px 0;
	border: 0;
	border-bottom: 1px solid var(--ems-archive-border);
}
.ems-filter-group legend {
	display: block;
	float: none;
	width: auto;
	margin: 0 0 18px;
	padding: 0;
	color: var(--ems-archive-ink);
	font-size: 18px;
	font-weight: 800;
	line-height: 1.2;
	text-transform: uppercase;
}
.ems-filter-options { display: grid; gap: 14px; }
.ems-filter-option {
	display: grid;
	grid-template-columns: 18px minmax(0, 1fr) auto;
	gap: 8px;
	align-items: center;
	margin: 0;
	color: #333;
	font-size: 15px;
	line-height: 1.35;
	cursor: pointer;
}
.ems-filter-option input { width: 17px; height: 17px; margin: 0; accent-color: var(--ems-archive-orange); }
.ems-filter-option small { color: var(--ems-archive-muted); font-size: 11px; }

.ems-price-slider { position: relative; height: 28px; margin: 14px 0 0; }
.ems-price-slider-track,
.ems-price-slider-track span {
	position: absolute;
	top: 12px;
	right: 0;
	left: 0;
	height: 4px;
	border-radius: 99px;
	background: #e4e4e4;
}
.ems-price-slider-track span { right: auto; background: var(--ems-archive-orange); }
.ems-price-slider input[type="range"] {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 28px;
	margin: 0;
	appearance: none;
	background: transparent;
	pointer-events: none;
}
.ems-price-slider input[type="range"]::-webkit-slider-thumb {
	width: 16px;
	height: 16px;
	border: 0;
	border-radius: 50%;
	background: var(--ems-archive-orange);
	box-shadow: 0 0 0 2px #fff;
	cursor: pointer;
	appearance: none;
	pointer-events: auto;
}
.ems-price-slider input[type="range"]::-moz-range-thumb {
	width: 16px;
	height: 16px;
	border: 0;
	border-radius: 50%;
	background: var(--ems-archive-orange);
	box-shadow: 0 0 0 2px #fff;
	cursor: pointer;
	pointer-events: auto;
}
.ems-price-readout { margin: 16px 0 0; color: #777; font-size: 15px; }
.ems-price-readout strong { color: #333; font-weight: 600; }
.ems-filter-actions {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 20px 0;
}
.ems-apply-filters {
	min-height: 42px;
	padding: 10px 20px;
	border: 0;
	border-radius: 999px;
	background: #f4f4f4;
	color: #444;
	font-size: 13px;
	font-weight: 800;
	text-transform: uppercase;
	cursor: pointer;
}
.ems-filter-actions a { color: #222; font-size: 14px; font-weight: 700; }
.ems-top-rated { padding: 24px 0 0; }
.ems-top-rated h3 { margin: 0 0 14px; font-size: 18px; text-transform: uppercase; }
.ems-top-rated-item {
	display: grid;
	grid-template-columns: 72px minmax(0, 1fr);
	gap: 12px;
	align-items: center;
	padding: 12px 0;
	border-bottom: 1px solid var(--ems-archive-border);
	color: #111;
	text-decoration: none;
}
.ems-top-rated-image img { display: block; width: 72px; height: 72px; object-fit: contain; background: #f4f4f4; }
.ems-top-rated-copy strong,
.ems-top-rated-copy span { display: block; }
.ems-top-rated-copy strong { font-size: 13px; line-height: 1.28; }
.ems-top-rated-copy span { margin-top: 5px; color: var(--ems-archive-orange); font-size: 13px; font-weight: 700; }

body.ems-catalog-active .ems-catalog-toolbar {
	display: grid;
	grid-column: 1;
	grid-row: 3;
	grid-template-columns: minmax(0, 1fr) auto auto auto;
	gap: 16px;
	width: 100%;
	min-width: 0;
	min-height: 44px;
	margin: 0 0 22px;
	padding: 0;
	align-items: center;
}
.ems-filter-open,
.ems-filter-close,
.ems-filter-backdrop { display: none !important; }
.ems-result-count,
.ems-per-page,
.ems-view-controls,
.ems-sort-form { white-space: nowrap; }
.ems-result-count { margin: 0; color: #555; font-size: 14px; }
.ems-per-page,
.ems-view-controls { display: inline-flex; align-items: center; gap: 7px; color: #555; font-size: 14px; }
.ems-per-page a { color: #777; text-decoration: none; }
.ems-per-page a.is-current { color: #111; font-weight: 800; }
.ems-view-controls button { width: 25px; height: 25px; padding: 0; border: 0; background: transparent; color: #bbb; font-size: 22px; line-height: 1; cursor: pointer; }
.ems-view-controls button.is-current,
.ems-view-controls button:hover { color: #333; }
.ems-sort-form { display: inline-flex; align-items: center; gap: 8px; margin: 0; }
.ems-sort-form label { color: #333; font-size: 14px; }
.ems-sort-form select { min-width: 190px; height: 38px; padding: 8px 25px 8px 0; border: 0; border-bottom: 1px solid #ddd; background: #fff; color: #333; font-size: 14px; }
.ems-active-filters { display: flex; grid-column: 1; flex-wrap: wrap; gap: 7px; align-items: center; margin: -6px 0 20px; }
.ems-active-filters > span { color: #777; font-size: 12px; font-weight: 700; }
.ems-active-filters a { color: #333; font-size: 12px; font-weight: 700; }
.ems-active-filters a.ems-clear-filters { color: #b42318; }

body.ems-catalog-active .wd-products-element {
	grid-column: 1;
	grid-row: auto;
	width: 100%;
	min-width: 0;
}
body.ems-catalog-active .wd-products-element > .products {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: 24px 20px !important;
	width: 100%;
	margin: 0;
	padding: 0;
}
body.ems-catalog-active .wd-products-element > .products[data-ems-view="grid-4"] { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
body.ems-catalog-active .wd-products-element > .products[data-ems-view="grid-2"] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
body.ems-catalog-active .wd-products-element > .products::before,
body.ems-catalog-active .wd-products-element > .products::after { display: none !important; }

/* The live block-theme catalog renders its product list directly inside
 * `.ems-catalog-results` (without WoodMart's `.wd-products-element` wrapper).
 * Keep that markup on the same EMS grid used by the homepage and responsive
 * archive views instead of allowing the theme's legacy floated columns to
 * control widths. */
body.ems-catalog-active .ems-catalog-results > ul.products,
body.ems-catalog-active .ems-catalog-results ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
	gap: 24px 20px !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
body.ems-catalog-active .ems-catalog-results > ul.products::before,
body.ems-catalog-active .ems-catalog-results > ul.products::after {
	display: none !important;
}
body.ems-catalog-active .ems-catalog-results > ul.products > li.product-card,
body.ems-catalog-active .ems-catalog-results ul.products > li.product-card {
	float: none !important;
	clear: none !important;
	width: auto !important;
	max-width: none !important;
	min-width: 0 !important;
	margin: 0 !important;
}
@media (max-width: 1100px) {
	body.ems-catalog-active .ems-catalog-results > ul.products,
	body.ems-catalog-active .ems-catalog-results ul.products {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	}
}
@media (max-width: 767px) {
	body.ems-catalog-active .ems-catalog-results > ul.products,
	body.ems-catalog-active .ems-catalog-results ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 24px 14px !important;
	}
}

/* Ensure block-theme archive headings use the same EMS heading face as the
 * homepage, while body copy remains the shared Inter stack. */
body.ems-catalog-active .wp-block-query-title,
body.ems-catalog-active .wp-block-query-title *,
body.ems-catalog-active .ems-catalog-page-title,
body.ems-catalog-active .ems-catalog-page-title *,
body.ems-catalog-active .woocommerce-products-header h1,
body.ems-catalog-active .woocommerce-products-header h2,
body.ems-catalog-active .ems-catalog-results h1,
body.ems-catalog-active .ems-catalog-results h2 {
	font-family: Oswald, "Arial Narrow", Arial, Helvetica, sans-serif !important;
}
body.ems-catalog-active .wd-products-element > .products > .wd-product {
	display: flex !important;
	width: auto !important;
	min-width: 0;
	height: 100%;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}
body.ems-catalog-active .wd-products-element .wd-product-wrapper,
body.ems-catalog-active .wd-products-element .product-element-bottom {
	display: flex !important;
	width: 100%;
	min-width: 0;
	flex: 1 1 auto;
	flex-direction: column;
	padding: 0 !important;
	background: transparent !important;
}
body.ems-catalog-active .wd-products-element .wd-product-thumb {
	display: flex !important;
	width: 100%;
	aspect-ratio: 1 / 1;
	align-items: center;
	justify-content: center;
	margin: 0 !important;
	overflow: hidden;
	background: #fff;
}
body.ems-catalog-active .wd-products-element .wd-product-img-link { display: flex; width: 100%; height: 100%; align-items: center; justify-content: center; }
body.ems-catalog-active .wd-products-element .wd-product-img-link > img { display: block; width: 100% !important; height: 100% !important; margin: 0 !important; object-fit: contain; background: #fff; }
body.ems-catalog-active .wd-products-element .wd-entities-title {
	display: -webkit-box;
	width: 100%;
	height: 4.35em;
	min-height: 4.35em !important;
	max-height: 4.35em;
	margin: 18px 0 0 !important;
	overflow: hidden;
	color: #252525;
	font-size: clamp(15px, 1.25vw, 21px);
	font-weight: 750;
	line-height: 1.45;
	text-align: center;
	text-overflow: ellipsis;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
}
body.ems-catalog-active .wd-products-element .wd-entities-title a { color: #252525; text-decoration: none; }
body.ems-catalog-active .wd-products-element .wd-product-cats,
body.ems-catalog-active .wd-products-element .wd-product-card-bg,
body.ems-catalog-active .wd-products-element .wd-product-img-hover,
body.ems-catalog-active .wd-products-element .wrapp-swatches,
body.ems-catalog-active .wd-products-element .wd-compare-btn,
body.ems-catalog-active .wd-products-element .wd-quick-view-btn,
body.ems-catalog-active .wd-products-element .wrap-wishlist-button,
body.ems-catalog-active .wd-products-element .ems-card-availability,
body.ems-catalog-active .wd-products-element .ems-card-facts { display: none !important; }
body.ems-catalog-active .wd-products-element .product-card__term {
	display: block !important;
	min-height: 1.45em;
	margin: 16px 0 0 !important;
	color: #a8a8a8 !important;
	font-size: clamp(14px, 1.05vw, 18px);
	font-weight: 500;
	line-height: 1.45;
	text-align: center;
}
body.ems-catalog-active .wd-products-element .product-card__price {
	display: block !important;
	min-height: 1.35em;
	margin: 22px 0 0 !important;
	color: var(--ems-archive-accent) !important;
	font-size: clamp(18px, 1.45vw, 24px);
	font-weight: 750;
	line-height: 1.35;
	text-align: center;
}
body.ems-catalog-active .wd-products-element .product-card__price .amount,
body.ems-catalog-active .wd-products-element .product-card__price .woocommerce-Price-amount,
body.ems-catalog-active .wd-products-element .product-card__price .woocommerce-Price-currencySymbol { color: inherit !important; font-size: inherit; }
/* Sale pairs must remain visible on archive cards: original first, sale second. */
body.ems-catalog-active .wd-products-element .product-card__price del {
	display: inline-block !important;
	color: #777 !important;
	text-decoration: line-through !important;
}

/* The only desktop hover actions are the EMS action row. */
body.ems-catalog-active .wd-products-element .wd-product-card-hover { display: block !important; position: absolute !important; inset: 0 !important; z-index: 4 !important; background: transparent !important; pointer-events: none !important; }
body.ems-catalog-active .wd-products-element .wd-product-card-hover .hover-content,
body.ems-catalog-active .wd-products-element .wd-product-card-hover .wd-bottom-actions,
body.ems-catalog-active .wd-products-element .wd-product-card-hover .wd-add-btn,
body.ems-catalog-active .wd-products-element .wd-product-card-hover .wrap-quickview-button { display: none !important; }
body.ems-catalog-active .wd-products-element .product-card__actions {
	display: flex !important;
	position: absolute;
	right: 10px;
	bottom: 10px;
	left: 10px;
	z-index: 5;
	align-items: center;
	justify-content: center;
	gap: 10px;
	min-height: 50px;
	padding: 8px 10px;
	border-radius: 6px;
	background: #fff;
	box-shadow: 0 5px 18px rgba(0,0,0,.14);
	opacity: 0;
	transform: translateY(6px);
	transition: opacity .18s ease, transform .18s ease;
	pointer-events: none;
}
body.ems-catalog-active .wd-products-element .wd-product:hover .product-card__actions,
body.ems-catalog-active .wd-products-element .wd-product:focus-within .product-card__actions { opacity: 1; transform: translateY(0); pointer-events: auto; }
.product-card__action { display: inline-flex; min-height: 34px; align-items: center; justify-content: center; padding: 8px 14px; border: 0; border-radius: 999px; background: var(--ems-archive-orange); color: #fff !important; font-size: 12px; font-weight: 800; line-height: 1; text-decoration: none; text-transform: uppercase; white-space: nowrap; }
.product-card__action--quick { width: 36px; padding: 0; background: #fff; color: #222 !important; font-size: 24px; box-shadow: inset 0 0 0 1px #ddd; }

.woocommerce-pagination { grid-column: 1; width: 100%; margin: 32px 0 0; text-align: center; }
.woocommerce-pagination ul.page-numbers {
	display: inline-flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: center;
	width: auto;
	margin: 0;
	padding: 0;
	border: 0;
	list-style: none;
}
.woocommerce-pagination li { display: block; float: none; margin: 0; padding: 0; }
.woocommerce-pagination a,
.woocommerce-pagination span {
	display: inline-flex;
	box-sizing: border-box;
	width: 52px;
	min-width: 52px;
	height: 52px;
	align-items: center;
	justify-content: center;
	padding: 0;
	border: 1px solid var(--ems-archive-border);
	border-radius: 4px;
	color: #333;
	font-size: 16px;
	line-height: 1;
	text-decoration: none;
}
.woocommerce-pagination a:hover,
.woocommerce-pagination a:focus-visible { border-color: var(--ems-archive-orange); background: #fffaf0; color: #222; }
.woocommerce-pagination span.current { border-color: var(--ems-archive-orange); background: var(--ems-archive-orange); color: #17191c; }
.woocommerce-pagination span.dots { border-color: var(--ems-archive-border); background: #fff; color: #333; }

/* WooCommerce's base pagination selector is more specific than the flat
 * archive rules above; neutralize its legacy rail so only the individual
 * numbered controls are visible. */
body.ems-catalog-active.woocommerce nav.woocommerce-pagination ul.page-numbers {
	display: inline-flex !important;
	width: auto !important;
	border: 0 !important;
}
body.ems-catalog-active.woocommerce nav.woocommerce-pagination ul.page-numbers li {
	float: none !important;
	display: block !important;
}

/* No native WoodMart toolbar may create a second filter, count or grid row. */
body.ems-catalog-active .ems-catalog-results > .wd-show-sidebar-btn,
body.ems-catalog-active .ems-catalog-results > .wd-products-per-page,
body.ems-catalog-active .ems-catalog-results > .wd-products-shop-view,
body.ems-catalog-active .ems-catalog-results > .woocommerce-ordering,
body.ems-catalog-active .ems-catalog-results > .wd-shop-tools { display: none !important; }
.ems-filter-backdrop { display: none; }
body.ems-filter-drawer-open { overflow: hidden; }
body.ems-filter-drawer-open #vue-app,
body.ems-filter-drawer-open .float-btn__wrapper.float-btn--bottom-right.chatbot-overwrite,
body.ems-filter-drawer-open .kodee-fab,
body.ems-filter-drawer-open .kodee-fab__open { z-index: 100 !important; }

/* Empty/search state. */
.ems-catalog-state { grid-column: 1; padding: 44px 24px; border: 1px solid var(--ems-archive-border); text-align: center; }
.ems-catalog-state h2 { margin: 0 0 8px; font-size: 21px; }
.ems-catalog-state p { max-width: 620px; margin: 0 auto; color: #777; }
.ems-catalog-state-actions { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; margin-top: 20px; }
.ems-catalog-search-again { width: min(620px,100%); margin: 24px auto 0; text-align: left; }

/* Mobile below 768px: the page remains in normal flow and only the filter
 * panel becomes fixed. */
@media (max-width: 767px) {
	.woocommerce-pagination { margin-top: 24px; }
	.woocommerce-pagination ul.page-numbers { gap: 8px; }
	.woocommerce-pagination a,
	.woocommerce-pagination span { width: 48px; min-width: 48px; height: 48px; }
	body.ems-catalog-active .wd-page-title { height: 190px !important; min-height: 190px !important; }
	body.ems-catalog-active .wd-page-title .entry-title.title { font-size: clamp(40px, 10vw, 62px) !important; }
	body.ems-catalog-active .shop-loop-head { display: block; width: 100%; margin: 0; padding: 20px 15px 44px; }
	body.ems-catalog-active .shop-loop-head > .wd-shop-tools:first-child { margin-bottom: 18px; }
	body.ems-catalog-active .shop-loop-head > .wd-shop-tools:nth-child(2) { display: block; }
	body.ems-catalog-active .ems-catalog-layout,
	body.ems-catalog-active .ems-catalog-results { display: block; }
	body.ems-catalog-active .ems-category-navigation { margin-bottom: 18px; padding: 15px; }
	body.ems-catalog-active .ems-category-navigation-head { margin-bottom: 0; }
	body.ems-catalog-active .ems-category-navigation h2 { font-size: 15px; }
	body.ems-catalog-active .ems-category-mobile-toggle { display: inline-flex; gap: 8px; align-items: center; padding: 10px 14px; border: 0; background: #f3f3f3; color: #333; font-size: 13px; font-weight: 700; text-transform: uppercase; }
	body.ems-catalog-active .ems-category-navigation ul { display: none; }
	body.ems-catalog-active .ems-category-navigation.is-mobile-open ul { display: flex; margin-top: 14px; }
	body.ems-catalog-active .ems-category-navigation a { min-height: 34px; padding: 8px 12px; font-size: 13px; }
	body.ems-catalog-active .ems-filter-open { display: inline-flex !important; min-height: 42px; align-items: center; gap: 9px; margin: 0 0 14px; padding: 8px 12px; border: 1px solid #bbb; border-radius: 4px; background: #fff; color: #222; font-size: 14px; font-weight: 750; cursor: pointer; }
	.ems-filter-icon,
	.ems-filter-icon::before,
	.ems-filter-icon::after { display: block; width: 16px; height: 2px; background: currentColor; content: ""; }
	.ems-filter-icon { position: relative; }
	.ems-filter-icon::before { position: absolute; top: -5px; width: 11px; }
	.ems-filter-icon::after { position: absolute; top: 5px; left: 5px; width: 11px; }
	body.ems-catalog-active .ems-catalog-toolbar { display: grid; grid-template-columns: 1fr auto; gap: 10px; margin-bottom: 20px; }
	body.ems-catalog-active .ems-result-count { grid-column: 1 / -1; white-space: nowrap; }
	body.ems-catalog-active .ems-per-page,
	body.ems-catalog-active .ems-view-controls { justify-self: start; }
	body.ems-catalog-active .ems-sort-form { grid-column: 1 / -1; display: flex; justify-content: space-between; }
	body.ems-catalog-active .ems-sort-form select { min-width: 0; max-width: 64vw; }
	body.ems-catalog-active .ems-filter-panel {
	position: fixed;
	top: var(--wp-admin--admin-bar--height, 0px);
	bottom: 0;
	left: 0;
	z-index: 100060;
	display: block;
	width: min(88vw, 360px);
	height: calc(100vh - var(--wp-admin--admin-bar--height, 0px));
	max-height: none;
	margin: 0;
	padding: 0 18px 20px;
	overflow-x: hidden;
	overflow-y: auto;
	border: 0;
	background: #fff;
	box-shadow: 12px 0 30px rgba(0,0,0,.25);
	transform: translateX(-105%);
	transition: transform .2s ease;
	visibility: hidden;
	}
	body.ems-catalog-active .ems-filter-panel.is-open { transform: translateX(0); visibility: visible; }
	body.ems-catalog-active .ems-filter-heading { position: sticky; top: 0; z-index: 2; min-height: 58px; margin: 0 -18px; padding: 0 18px; border-bottom: 1px solid #ddd; background: #fff; }
	body.ems-catalog-active .ems-filter-heading h2 { display: block; font-size: 18px; }
	body.ems-catalog-active .ems-filter-close { display: inline-flex !important; padding: 8px 12px; border: 0; background: #f3f3f3; color: #222; font-size: 13px; font-weight: 750; cursor: pointer; }
	body.ems-catalog-active .ems-filter-group { padding: 20px 0; }
	body.ems-catalog-active .ems-filter-actions { position: sticky; bottom: 0; margin: 0 -18px; padding: 14px 18px; border-top: 1px solid #ddd; background: #fff; box-shadow: 0 -8px 18px rgba(0,0,0,.08); }
	body.ems-catalog-active .ems-filter-backdrop.is-open { display: block !important; position: fixed; z-index: 100050; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; background: rgba(0,0,0,.62); }
	body.ems-catalog-active .wd-products-element { width: 100%; }
	body.ems-catalog-active .wd-products-element > .products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 24px 14px !important; }
	body.ems-catalog-active .wd-products-element > .products[data-ems-view="grid-4"],
	body.ems-catalog-active .wd-products-element > .products[data-ems-view="grid-3"] { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	body.ems-catalog-active .wd-products-element .wd-entities-title { margin-top: 12px !important; font-size: 15px; line-height: 1.35; }
	body.ems-catalog-active .wd-products-element .product-card__term { margin-top: 10px !important; font-size: 13px; }
	body.ems-catalog-active .wd-products-element .product-card__price { margin-top: 14px !important; font-size: 17px; }
	body.ems-catalog-active .wd-products-element .product-card__actions { display: none !important; }
	.ems-catalog-state { padding: 30px 16px; }
}

@media (min-width: 768px) and (max-width: 1199px) {
	body.ems-catalog-active .shop-loop-head { grid-template-columns: minmax(240px, 270px) minmax(0, 1fr); column-gap: 28px; }
	body.ems-catalog-active .wd-products-element > .products { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

/* At narrow tablet widths the full sort control cannot share one row with
 * the count, page-size links, and view buttons. Keep it orderly in two rows
 * instead of allowing the result count to collapse into the next control. */
@media (min-width: 768px) and (max-width: 899px) {
	body.ems-catalog-active .ems-catalog-toolbar {
		grid-template-columns: minmax(0, 1fr) auto;
		grid-template-areas: "count sort" "per view";
		row-gap: 12px;
	}
	body.ems-catalog-active .ems-result-count { grid-area: count; min-width: 0; }
	body.ems-catalog-active .ems-sort-form { grid-area: sort; justify-self: end; }
	body.ems-catalog-active .ems-sort-form label { display: none; }
	body.ems-catalog-active .ems-sort-form select { min-width: 190px; }
	body.ems-catalog-active .ems-per-page { grid-area: per; }
	body.ems-catalog-active .ems-view-controls { grid-area: view; justify-self: end; }
}

@media (max-width: 390px) {
	body.ems-catalog-active .wd-products-element > .products { gap: 18px 10px !important; }
	body.ems-catalog-active .ems-sort-form select { max-width: 58vw; }
}

/* Block-theme archive compatibility.  Hostinger AI uses WooCommerce's
 * Product Collection block instead of the classic WoodMart loop.  Keep that
 * markup on the same EMS grid, card geometry, typography and media treatment
 * so Shop, category, brand and search archives are visually identical. */
body.ems-catalog-active.woocommerce-uses-block-theme {
	font-family: Inter, Arial, Helvetica, sans-serif;
}

/* Hostinger's block theme applies ProstoOne/Catamaran to archive headings and
 * cards.  The EMS archive reference uses the same neutral Arial system as the
 * shared EMS shell; keep the rule scoped to catalog surfaces so the theme's
 * other pages are untouched. */
body.ems-catalog-active.woocommerce-uses-block-theme,
body.ems-catalog-active.woocommerce-uses-block-theme h1,
body.ems-catalog-active.woocommerce-uses-block-theme h2,
body.ems-catalog-active.woocommerce-uses-block-theme h3,
body.ems-catalog-active.woocommerce-uses-block-theme h4,
body.ems-catalog-active.woocommerce-uses-block-theme p,
body.ems-catalog-active.woocommerce-uses-block-theme a,
body.ems-catalog-active.woocommerce-uses-block-theme button,
body.ems-catalog-active.woocommerce-uses-block-theme select,
body.ems-catalog-active.woocommerce-uses-block-theme input {
	font-family: Inter, Arial, Helvetica, sans-serif !important;
}

/* Block-theme query headings must retain the EMS reference heading face. */
body.ems-catalog-active.woocommerce-uses-block-theme .wp-block-query-title,
body.ems-catalog-active.woocommerce-uses-block-theme .wp-block-query-title *,
body.ems-catalog-active.woocommerce-uses-block-theme .wp-block-heading,
body.ems-catalog-active.woocommerce-uses-block-theme .wp-block-heading *,
body.ems-catalog-active.woocommerce-uses-block-theme .wp-block-post-title,
body.ems-catalog-active.woocommerce-uses-block-theme .wp-block-post-title * {
	font-family: Oswald, "Arial Narrow", Arial, Helvetica, sans-serif !important;
}

body.ems-catalog-active.woocommerce-uses-block-theme
	.wp-block-woocommerce-product-collection {
	width: min(1400px, calc(100% - 48px)) !important;
	max-width: 1400px !important;
	margin-right: auto !important;
	margin-left: auto !important;
}

body.ems-catalog-active.woocommerce-uses-block-theme
	.wc-block-product-template {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
	gap: 30px 18px !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

body.ems-catalog-active.woocommerce-uses-block-theme
	.wc-block-product-template > .wc-block-product {
	position: relative;
	min-width: 0 !important;
	display: grid !important;
	grid-template-rows: auto 1fr !important;
	overflow: hidden !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	font-family: Inter, Arial, Helvetica, sans-serif !important;
}

body.ems-catalog-active.woocommerce-uses-block-theme
	.wc-block-product-template > .wc-block-product
	.wc-block-components-product-image {
	position: relative !important;
	display: flex !important;
	width: 100% !important;
	aspect-ratio: 1 / 1 !important;
	align-items: center !important;
	justify-content: center !important;
	overflow: hidden !important;
	background: #fff !important;
}

body.ems-catalog-active.woocommerce-uses-block-theme
	.wc-block-product-template > .wc-block-product
	.wc-block-components-product-image > a {
	display: flex !important;
	width: 100% !important;
	height: 100% !important;
	align-items: center !important;
	justify-content: center !important;
}

body.ems-catalog-active.woocommerce-uses-block-theme
	.wc-block-product-template > .wc-block-product
	.wc-block-components-product-image img {
	display: block !important;
	width: 100% !important;
	height: 100% !important;
	object-fit: contain !important;
	background: #fff !important;
}

body.ems-catalog-active.woocommerce-uses-block-theme
	.wc-block-product-template > .wc-block-product
	> .wp-block-post-title {
	display: -webkit-box !important;
	width: 100% !important;
	height: 4.2em !important;
	min-height: 4.2em !important;
	max-height: 4.2em !important;
	margin: 17px 0 0 !important;
	overflow: hidden !important;
	font-family: Inter, Arial, Helvetica, sans-serif !important;
	font-size: 15px !important;
	font-weight: 750 !important;
	line-height: 1.4 !important;
	text-align: center !important;
	text-overflow: ellipsis !important;
	-webkit-box-orient: vertical !important;
	-webkit-line-clamp: 3 !important;
}

body.ems-catalog-active.woocommerce-uses-block-theme
	.wc-block-product-template > .wc-block-product
	> .wp-block-post-title a {
	color: #252525 !important;
	text-decoration: none !important;
}

body.ems-catalog-active.woocommerce-uses-block-theme
	.wc-block-product-template > .wc-block-product .product-card__term {
	display: block !important;
	min-height: 1.45em !important;
	margin: 14px 0 0 !important;
	color: #a8a8a8 !important;
	font-family: Inter, Arial, Helvetica, sans-serif !important;
	font-size: 13px !important;
	font-weight: 500 !important;
	line-height: 1.45 !important;
	text-align: center !important;
}

body.ems-catalog-active.woocommerce-uses-block-theme
	.wc-block-product-template > .wc-block-product .product-card__price {
	display: block !important;
	min-height: 1.35em !important;
	margin: 18px 0 0 !important;
	color: var(--ems-archive-accent, #9A4A05) !important;
	font-family: Inter, Arial, Helvetica, sans-serif !important;
	font-size: 18px !important;
	font-weight: 750 !important;
	line-height: 1.35 !important;
	text-align: center !important;
}

/* render_block() removes these nodes server-side; this fallback only covers
 * cached HTML generated before the filter was deployed. */
body.ems-catalog-active.woocommerce-uses-block-theme
	.wc-block-product-template > .wc-block-product
	> .wp-block-woocommerce-product-price,
body.ems-catalog-active.woocommerce-uses-block-theme
	.wc-block-product-template > .wc-block-product
	> .wp-block-woocommerce-product-button {
	display: none !important;
}

@media (max-width: 1023px) and (min-width: 768px) {
	body.ems-catalog-active.woocommerce-uses-block-theme
		.wc-block-product-template {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 24px 16px !important;
	}
}

@media (max-width: 767px) {
	body.ems-catalog-active.woocommerce-uses-block-theme
		.wp-block-woocommerce-product-collection {
		width: calc(100% - 28px) !important;
		max-width: none !important;
		margin-right: auto !important;
		margin-left: auto !important;
	}

	body.ems-catalog-active.woocommerce-uses-block-theme
		.wc-block-product-template {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 26px 10px !important;
	}

	body.ems-catalog-active.woocommerce-uses-block-theme
		.wc-block-product-template > .wc-block-product
		> .wp-block-post-title {
		height: 3.9em !important;
		min-height: 3.9em !important;
		max-height: 3.9em !important;
		margin-top: 10px !important;
		font-size: 14px !important;
		line-height: 1.3 !important;
	}

	body.ems-catalog-active.woocommerce-uses-block-theme
		.wc-block-product-template > .wc-block-product .product-card__term {
		min-height: 1.3em !important;
		margin-top: 7px !important;
		font-size: 12px !important;
		line-height: 1.3 !important;
	}

	body.ems-catalog-active.woocommerce-uses-block-theme
	.wc-block-product-template > .wc-block-product .product-card__price {
		margin-top: 9px !important;
		font-size: 17px !important;
		line-height: 1.25 !important;
	}
}

/* Product cards are intentionally informational.  Permanent archive actions
 * belong to the product page/cart flow, not beneath every catalog card. */
body.ems-catalog-active.woocommerce-uses-block-theme
	.wc-block-product-template > .wc-block-product > .product-card__actions {
	display: none !important;
}

/* Shared flat cards used by the EMS homepage and non-builder loops. */
.product-card__link { display: flex; flex-direction: column; color: inherit; text-decoration: none; }
.product-card__image { display: flex; width: 100%; aspect-ratio: 1 / 1; align-items: center; justify-content: center; overflow: hidden; background: #fff; }
.product-card__image img { display: block; width: 100% !important; height: 100% !important; object-fit: contain; background: #fff; }
.product-card__title { display: -webkit-box; height: 4.35em; margin: 18px 0 0; overflow: hidden; font-size: clamp(15px, 1.25vw, 21px); font-weight: 750; line-height: 1.45; text-align: center; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.product-card__term { display: block; margin: 16px 0 0; color: #a8a8a8; font-size: clamp(14px, 1.05vw, 18px); text-align: center; }
.product-card__price { margin: 22px 0 0; color: var(--ems-archive-accent); font-size: clamp(18px, 1.45vw, 24px); font-weight: 750; text-align: center; }
.product-card__price del {
	display: inline-block !important;
	color: #777;
	text-decoration: line-through;
}
.product-card__price .ems-price-stack,
.ems-hp-product__price .ems-price-stack {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: center;
	gap: 3px 8px;
}
.product-card__price .ems-price-comparison,
.ems-hp-product__price .ems-price-comparison,
.product-card__price .ems-price-current,
.ems-hp-product__price .ems-price-current {
	display: inline-flex;
	align-items: baseline;
}
.ems-hp-product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 30px 26px; margin: 0; padding: 0; list-style: none; }
@media (max-width: 1100px) { .ems-hp-product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) { .ems-hp-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 14px; } }

/* Quick view. */
.ems-quick-view-modal { position: fixed; inset: 0; z-index: 100070; display: grid; place-items: center; padding: 20px; background: rgba(0,0,0,.62); }
.ems-quick-view-modal[hidden] { display: none; }
.ems-quick-view-dialog { position: relative; display: grid; grid-template-columns: minmax(240px,42%) minmax(0,1fr); gap: 26px; width: min(900px,100%); max-height: min(720px,100%); overflow: auto; padding: 30px; border-radius: 12px; background: #fff; }
.ems-quick-view-close { position: absolute; top: 12px; right: 14px; width: 34px; height: 34px; border: 0; border-radius: 50%; background: #111; color: #fff; font-size: 20px; cursor: pointer; }
.ems-quick-view-dialog img { display: block; width: 100%; height: 320px; object-fit: contain; }
.ems-quick-view-dialog h2 { margin: 0 0 14px; font-size: 24px; line-height: 1.2; }
.ems-quick-view-dialog .price { color: var(--ems-archive-accent); font-size: 22px; font-weight: 800; }
.ems-quick-view-link { display: inline-flex; margin-top: 20px; padding: 12px 18px; border-radius: 999px; background: var(--ems-archive-orange); color: #fff !important; font-weight: 800; text-decoration: none; }
@media (max-width: 767px) { .ems-quick-view-dialog { grid-template-columns: 1fr; padding: 22px; } .ems-quick-view-dialog img { height: 240px; } }

/* Keyboard focus remains visible without restoring WoodMart action clutter. */
.ems-category-navigation a:focus-visible,
.ems-filter-panel button:focus-visible,
.ems-filter-panel a:focus-visible,
.ems-catalog-toolbar button:focus-visible,
.ems-catalog-toolbar select:focus-visible,
.ems-catalog-results a:focus-visible { outline: 3px solid #005fcc; outline-offset: 2px; }
