/**
 * WooCommerce Shop Grid Fixer
 * Equal-width, equal-height product cards. Stops the skinny-column wrap.
 */

.wsgf-on .woocommerce ul.products::before,
.wsgf-on .woocommerce ul.products::after,
.wsgf-on .woocommerce-page ul.products::before,
.wsgf-on .woocommerce-page ul.products::after,
.wsgf-on ul.products::before,
.wsgf-on ul.products::after {
	display: none !important;
	content: none !important;
}

.wsgf-on .woocommerce ul.products li.product,
.wsgf-on .woocommerce-page ul.products li.product,
.wsgf-on ul.products li.product,
.wsgf-on .wc-block-grid__product,
.wsgf-on .wc-block-product {
	display: flex !important;
	flex-direction: column !important;
	align-items: stretch !important;
	height: 100% !important;
	min-width: 0 !important;
	padding: var(--wsgf-pad, 20px) !important;
	border-radius: var(--wsgf-radius, 16px) !important;
	box-sizing: border-box !important;
}

.wsgf-on .woocommerce ul.products li.product > a,
.wsgf-on .woocommerce-page ul.products li.product > a.woocommerce-LoopProduct-link,
.wsgf-on ul.products li.product > a {
	display: flex !important;
	flex-direction: column !important;
	flex: 1 1 auto !important;
	min-width: 0 !important;
	width: 100% !important;
	text-decoration: none;
}

/* Consistent image box so logos / thumbs don’t blow the card open */
.wsgf-on .woocommerce ul.products li.product img,
.wsgf-on .woocommerce-page ul.products li.product img,
.wsgf-on ul.products li.product img,
.wsgf-on .wc-block-grid__product-image img,
.wsgf-on .wc-block-product img {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	height: var(--wsgf-img, 160px) !important;
	object-fit: var(--wsgf-fit, contain) !important;
	object-position: center !important;
	margin: 0 auto 12px auto !important;
}

/* Titles: clamp lines so one long name doesn’t unbalance the row,
   and allow wrapping at a sensible card width instead of one word per line. */
.wsgf-on .woocommerce ul.products li.product .woocommerce-loop-product__title,
.wsgf-on .woocommerce ul.products li.product h2,
.wsgf-on .woocommerce ul.products li.product h3,
.wsgf-on .woocommerce-page ul.products li.product .woocommerce-loop-product__title,
.wsgf-on ul.products li.product .woocommerce-loop-product__title,
.wsgf-on .wc-block-grid__product-title,
.wsgf-on .wc-block-product-template__product-title,
.wsgf-on .wp-block-post-title {
	display: -webkit-box !important;
	-webkit-box-orient: vertical !important;
	-webkit-line-clamp: var(--wsgf-lines, 3);
	line-clamp: var(--wsgf-lines, 3);
	overflow: hidden !important;
	word-break: normal !important;
	overflow-wrap: break-word !important;
	hyphens: auto;
	min-height: calc(1.3em * 2);
	margin: 0 0 8px 0 !important;
	width: 100% !important;
	max-width: 100% !important;
}

.wsgf-on .woocommerce ul.products li.product .price,
.wsgf-on .woocommerce-page ul.products li.product .price,
.wsgf-on ul.products li.product .price,
.wsgf-on .wc-block-grid__product-price {
	margin-top: 4px !important;
	margin-bottom: 12px !important;
	width: 100%;
}

/* Pin buttons to the bottom of equal-height cards */
.wsgf-on .woocommerce ul.products li.product .button,
.wsgf-on .woocommerce ul.products li.product a.button,
.wsgf-on .woocommerce ul.products li.product .add_to_cart_button,
.wsgf-on .woocommerce-page ul.products li.product .button,
.wsgf-on ul.products li.product .button,
.wsgf-on .wc-block-grid__product-add-to-cart .wp-block-button__link {
	margin-top: auto !important;
	align-self: center;
	max-width: 100%;
}

/* Kill legacy float / percentage column widths from older themes */
.wsgf-on .woocommerce ul.products li.product.first,
.wsgf-on .woocommerce ul.products li.product.last {
	clear: none !important;
}

.wsgf-on .woocommerce.columns-2 ul.products li.product,
.wsgf-on .woocommerce.columns-3 ul.products li.product,
.wsgf-on .woocommerce.columns-4 ul.products li.product,
.wsgf-on .woocommerce.columns-5 ul.products li.product,
.wsgf-on .woocommerce.columns-6 ul.products li.product,
.wsgf-on .woocommerce ul.products li.product,
.wsgf-on[class*="columns-"] ul.products li.product {
	width: auto !important;
}

@media (max-width: 600px) {
	.wsgf-on .woocommerce ul.products li.product,
	.wsgf-on .woocommerce-page ul.products li.product {
		padding: 16px !important;
	}
}
