/* Catalog component metrics. Rules do not target checkout or account forms. */
.ej-product-search {
	--ej-search-control-height: 44px;
	--ej-search-gap: 12px;
	--ej-search-label-size: .8rem;
	display: flex;
	align-items: end;
	gap: var(--ej-search-gap);
	min-width: 0;
}
.ej-product-search__field { display: grid; gap: 6px; min-width: 0; }
.ej-product-search__field--query { flex: 1 1 16rem; }
.ej-product-search label { font: 700 var(--ej-search-label-size)/1.3 var(--ej-sans); }
.ej-product-search input[type="search"], .ej-product-search select {
	width: 100%;
	min-width: 0;
	min-height: var(--ej-search-control-height);
	padding: 8px 12px;
	color: var(--ej-ink);
	background: var(--ej-paper);
	font: 1rem/1.3 var(--ej-sans);
}
.ej-product-search .ej-button { flex: 0 0 auto; min-height: var(--ej-search-control-height); margin: 0; padding: 10px 20px; }
.ej-product-search--header { align-items: center; width: min(100%, 900px); margin-inline: auto; }
.ej-product-search--header .ej-product-search__field { display: flex; align-items: center; gap: var(--ej-search-gap); }
.ej-product-search--header label { flex: 0 0 auto; }
.ej-product-search--catalog { flex-wrap: wrap; margin: 0 0 32px; padding-block: 20px; border-block: 2px solid var(--ej-ink); }
.ej-product-search--catalog .ej-product-search__field:not(.ej-product-search__field--query) { flex: 1 1 12rem; }
.ej-product-search__clear { flex-basis: 100%; width: fit-content; text-decoration: underline; text-underline-offset: .2em; font-size: .9rem; }
.ej-catalog {
	--ej-catalog-columns: 6;
	--ej-catalog-gap: 20px;
	--ej-catalog-row-gap: 36px;
	--ej-catalog-card-padding: 0;
	--ej-catalog-card-title: 1rem;
}
.ej-catalog .ej-page-intro--shop h1 {
	min-width: 0;
	overflow-wrap: anywhere;
}
.ej-catalog ul.products[class] {
	display: grid;
	grid-template-columns: repeat(var(--ej-catalog-columns), minmax(0, 1fr));
	gap: var(--ej-catalog-row-gap) var(--ej-catalog-gap);
	width: 100%;
	margin: 0;
	padding: 0;
}
.ej-catalog ul.products[class]::before, .ej-catalog ul.products[class]::after { display: none; }
.ej-catalog ul.products[class] li.product {
	float: none;
	clear: none;
	display: flex;
	flex-direction: column;
	width: 100%;
	min-width: 0;
	margin: 0;
	padding: var(--ej-catalog-card-padding);
	border: 0;
	background: transparent;
	box-shadow: none;
	overflow-wrap: anywhere;
}
.ej-catalog ul.products[class] li.product .woocommerce-loop-product__link { display: flex; flex-direction: column; flex: 1; margin-bottom: 14px; }
.ej-catalog ul.products[class] li.product a img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; }
.ej-catalog ul.products[class] li.product .woocommerce-loop-product__title { font-size: var(--ej-catalog-card-title); line-height: 1.35; padding-bottom: 12px; }
.ej-catalog ul.products[class] li.product .price { margin-block: auto 0; font-size: .95rem; }
.ej-catalog ul.products[class] li.product .button { align-self: start; margin-top: auto; line-height: 1.4; font-size: .75rem; padding: 10px 12px; min-height: 44px; max-width: 100%; }
.ej-catalog .woocommerce-result-count { float: none; }
.ej-catalog .woocommerce-pagination { margin-top: 32px; }
@media (max-width: 1200px) {
	.ej-catalog { --ej-catalog-columns: 3; }
}
@media (max-width: 980px) {
	.ej-catalog { --ej-catalog-columns: 2; }
}
@media (max-width: 600px) {
	.ej-catalog { --ej-catalog-columns: 1; --ej-catalog-gap: 20px; }
	.ej-product-search--header label { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
	.ej-product-search--catalog { display: grid; grid-template-columns: minmax(0, 1fr); }
	.ej-product-search--catalog .ej-button { justify-self: start; }
}
