/**
 * WooCommerce block product grids: equal card height, aligned image slots, CTA row at bottom.
 * List layout overrides are at the end of this file.
 */

/* Infinite scroll: keep pagination in DOM for SEO, hide visually (see product-collection-infinite-scroll.js) */
.groceria-infinite-scroll-active .wp-block-query-pagination {
	border: 0 !important;
	clip: rect(0, 0, 0, 0) !important;
	height: 1px !important;
	margin: -1px !important;
	overflow: hidden !important;
	padding: 0 !important;
	position: absolute !important;
	width: 1px !important;
	white-space: nowrap !important;
}

.groceria-product-collection-sentinel {
	height: 1px;
	pointer-events: none;
}

.groceria-product-collection-loader {
	margin: 0;
	padding: 1rem 0 2rem;
	font-size: 0.875rem;
	color: var(--wp--preset--color--charcoal, #444);
}

.groceria-product-collection-loader[hidden] {
	display: none !important;
}

/* ------------------------------------------------------------------------- */
/* Left-align card content (overrides block textAlign:center + Woo flex)    */
/* ------------------------------------------------------------------------- */

.wc-block-product-template li.wc-block-product .has-text-align-center {
	text-align: left !important;
}

.wc-block-product-template li.wc-block-product .is-content-justification-center {
	justify-content: flex-start !important;
}

.wc-block-product-template .wp-block-post-title,
.wc-block-product-template .wp-block-post-terms,
.wc-block-product-template .wp-block-woocommerce-product-rating {
	text-align: left !important;
}

.wc-block-product-template .wp-block-post-terms,
.wc-block-product-template .wp-block-woocommerce-product-rating,
.wc-block-product-template .wc-block-components-product-rating__container {
	justify-content: flex-start !important;
}

.wc-block-product-template .wc-block-components-product-price,
.wc-block-product-template .wc-block-components-product-price--align-center,
.wc-block-product-template .wc-block-components-product-price--align-right,
.wc-block-product-template .wp-block-woocommerce-product-price {
	text-align: left !important;
}

.wc-block-product-template .wc-block-components-product-price {
	justify-content: flex-start !important;
}

.wc-block-product-template .has-text-align-center.wc-block-components-product-price {
	justify-content: flex-start !important;
}

/* Price + button row: start from the left instead of space-between / center */
.wc-block-product-template li.wc-block-product .wp-block-group.is-layout-flex.is-content-justification-space-between {
	justify-content: flex-start !important;
	flex-wrap: wrap;
	column-gap: 0.75rem;
	row-gap: 0.5rem;
}

.wc-block-product-template .wp-block-woocommerce-product-button,
.wc-block-product-template .wp-block-button.wc-block-components-product-button {
	align-items: stretch !important;
	justify-content: flex-start !important;
}

.wc-block-product-template:not(.v3):not(.v5) .wp-block-woocommerce-product-button .wp-block-button__link,
.wc-block-product-template:not(.v3):not(.v5) .wp-block-woocommerce-product-button a,
.wc-block-product-template:not(.v3):not(.v5) .wc-block-components-product-button .wp-block-button__link,
.wc-block-product-template:not(.v3):not(.v5) .wc-block-components-product-button a {
	text-align: left !important;
	justify-content: flex-start !important;
}

/* product-style v4: theme utility text-center on layered button */
.wc-block-product-template.v4 .wp-block-woocommerce-product-button > span,
.wc-block-product-template.v4 .wp-block-woocommerce-product-button > span a {
	text-align: left !important;
}

.wc-block-product-template.is-flex-container {
	align-items: stretch;
}

.wc-block-product-template.wc-block-product-template__responsive {
	align-items: stretch;
}

.wc-block-product-template.wc-block-product-template__responsive > li.wc-block-product {
	height: 100%;
}

.wc-block-product-template.grid > li.wc-block-product {
	align-self: stretch;
	min-height: 0;
	min-width: 0;
}

.wc-block-product-template > li.wc-block-product {
	display: flex;
	flex-direction: column;
	align-self: stretch;
	min-width: 0;
}

.wc-block-product-template > li.wc-block-product > .wp-block-group {
	flex: 1 1 auto;
	min-height: 100%;
	min-width: 0;
}

/* Vertical card roots (constrained / flow): column flex so margin-top:auto works */
.wc-block-product-template > li.wc-block-product > .wp-block-group:is(.is-layout-constrained, .is-layout-flow) {
	display: flex;
	flex-direction: column;
}

/* Explicit column flex from editor (e.g. product-style v4) */
.wc-block-product-template > li.wc-block-product > .wp-block-group.is-layout-flex.is-vertical {
	flex: 1 1 auto;
	min-height: 100%;
}

/* Consistent image area so titles start on one line per row */
.wc-block-product-template .wp-block-woocommerce-product-image,
.wc-block-product-template .wc-block-components-product-image {
	display: block;
}

.wc-block-product-template .wp-block-woocommerce-product-image .wc-block-components-product-image,
.wc-block-product-template .wc-block-components-product-image {
	aspect-ratio: 1 / 1;
	position: relative;
	overflow: hidden;
}

.wc-block-product-template .wc-block-components-product-image img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: left center;
	vertical-align: middle;
}

/* Bottom-align purchase row (price + button) or lone button — not v3/v5 overlay buttons */
.wc-block-product-template:not(.v3):not(.v5) > li.wc-block-product > .wp-block-group > .wp-block-group:has(> .wp-block-woocommerce-product-button) {
	margin-top: auto;
}

.wc-block-product-template:not(.v3):not(.v5) > li.wc-block-product > .wp-block-group > .wp-block-woocommerce-product-button:last-child {
	margin-top: auto;
}

/* v2: price-only row at end of card */
.wc-block-product-template.v2 > li.wc-block-product > .wp-block-group > .wp-block-group.leading-normal {
	margin-top: auto;
}

/* Product collection — list layout: undo grid card rules (placed last for specificity) */
.is-product-collection-layout-list .wc-block-product-template > li.wc-block-product {
	display: block;
	align-self: auto;
	min-width: 0;
}

.is-product-collection-layout-list .wc-block-product-template > li.wc-block-product > .wp-block-group {
	flex: none;
	min-height: 0;
}

.is-product-collection-layout-list .wc-block-product-template > li.wc-block-product > .wp-block-group:is(.is-layout-constrained, .is-layout-flow) {
	display: revert;
	flex-direction: revert;
}

.is-product-collection-layout-list .wc-block-product-template > li.wc-block-product > .wp-block-group.is-layout-flex.is-vertical {
	flex: none;
	min-height: 0;
}

.is-product-collection-layout-list .wc-block-product-template .wp-block-woocommerce-product-image .wc-block-components-product-image,
.is-product-collection-layout-list .wc-block-product-template .wc-block-components-product-image {
	aspect-ratio: revert;
	overflow: revert;
}

.is-product-collection-layout-list .wc-block-product-template .wc-block-components-product-image img {
	width: revert;
	height: revert;
	object-fit: revert;
	object-position: revert;
	vertical-align: revert;
}

.is-product-collection-layout-list .wc-block-product-template:not(.v3):not(.v5) > li.wc-block-product > .wp-block-group > .wp-block-group:has(> .wp-block-woocommerce-product-button) {
	margin-top: revert;
}

.is-product-collection-layout-list .wc-block-product-template:not(.v3):not(.v5) > li.wc-block-product > .wp-block-group > .wp-block-woocommerce-product-button:last-child {
	margin-top: revert;
}

.is-product-collection-layout-list .wc-block-product-template.v2 > li.wc-block-product > .wp-block-group > .wp-block-group.leading-normal {
	margin-top: revert;
}
