/* =====================================================
 * SAB Shop Loop
 * Grid, shelf images, card text, element order, buttons
 * ===================================================== */

/* --- Grid --- */

.woocommerce ul.products,
.woocommerce-page ul.products {
	display: grid !important;
	grid-template-columns: repeat(3, 1fr) !important;
	column-gap: 2rem !important;
	row-gap: 3.5rem !important;
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.woocommerce ul.products li.product {
	float: none !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	clear: none !important;
	text-align: center !important;
}

/* --- Shelf: uniform image area, covers bottom-aligned at natural ratio --- */

.woocommerce ul.products li.product .astra-shop-thumbnail-wrap {
	display: flex;
	align-items: flex-end;
	justify-content: center;
	height: 340px;
}

.woocommerce ul.products li.product .astra-shop-thumbnail-wrap > a {
	display: flex;
	align-items: flex-end;
	justify-content: center;
	height: 100%;
	max-height: 100%;
}

.woocommerce ul.products li.product img {
	width: auto !important;
	height: auto !important;
	max-width: 100%;
	max-height: 100% !important;
	object-fit: contain;
	display: block;
	margin: 0 auto;
}

/* --- Card text --- */

.woocommerce ul.products li.product .ast-woo-product-category,
.woocommerce ul.products li.product .astra-woo-product-category {
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	color: #9B9B9B;
	margin-bottom: 0.25rem;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
	text-transform: uppercase;
	font-size: 0.95rem;
	line-height: 1.4;
	color: #332E2B;
	max-width: 85%;
	margin: 0.75rem auto 0.35rem;
}

.woocommerce ul.products li.product .sab-book-subtitle {
	font-size: 0.8rem;
	font-style: italic;
	color: #9B9B9B;
	max-width: 85%;
	margin: 0 auto 0.35rem;
	line-height: 1.4;
}

.woocommerce ul.products li.product .price {
	color: #9B9B9B;
	font-size: 0.85rem;
}

.sab-starting-at {
	font-size: 0.75em;
	text-transform: uppercase;
	letter-spacing: 0.03em;
}

/* --- Element order (pinned via flex, immune to Astra hook priorities) --- */

.woocommerce ul.products li.product .astra-shop-summary-wrap {
	display: flex !important;
	flex-direction: column;
	align-items: center;
	text-align: center !important;
}

.woocommerce ul.products li.product .astra-shop-summary-wrap > * {
	order: 9; /* anything unaccounted for goes last */
}

.woocommerce ul.products li.product .astra-shop-summary-wrap > .ast-woo-product-category,
.woocommerce ul.products li.product .astra-shop-summary-wrap > .astra-woo-product-category,
.woocommerce ul.products li.product .astra-shop-summary-wrap > *:has(.ast-woo-product-category),
.woocommerce ul.products li.product .astra-shop-summary-wrap > *:has(.astra-woo-product-category) {
	order: 1;
}

.woocommerce ul.products li.product .astra-shop-summary-wrap > .woocommerce-loop-product__title,
.woocommerce ul.products li.product .astra-shop-summary-wrap > *:has(.woocommerce-loop-product__title) {
	order: 2;
}

.woocommerce ul.products li.product .astra-shop-summary-wrap > .sab-book-subtitle {
	order: 3;
}

.woocommerce ul.products li.product .astra-shop-summary-wrap > .price,
.woocommerce ul.products li.product .astra-shop-summary-wrap > *:has(> .price) {
	order: 4;
}

.woocommerce ul.products li.product .astra-shop-summary-wrap > .button,
.woocommerce ul.products li.product .astra-shop-summary-wrap > .added_to_cart,
.woocommerce ul.products li.product .astra-shop-summary-wrap > *:has(> .button) {
	order: 5;
}

/* --- Buttons --- */

.woocommerce ul.products li.product .button,
.woocommerce ul.products li.product .added_to_cart {
	display: inline-block;
	font-size: 0.75em;
	border: 1px solid #332E2B !important;
	background: transparent !important;
	color: #332E2B !important;
	padding: 0.5em 1.2em;
	text-transform: uppercase;
	margin-top: 0.75rem;
}

.woocommerce ul.products li.product .button:hover {
	background: #E5DBC2 !important;
}

/* --- Responsive --- */

@media (max-width: 768px) {
	.woocommerce ul.products,
	.woocommerce-page ul.products {
		grid-template-columns: repeat(2, 1fr) !important;
		column-gap: 1.25rem !important;
		row-gap: 2.5rem !important;
	}

	.woocommerce ul.products li.product .astra-shop-thumbnail-wrap {
		height: 260px;
	}
}

@media (max-width: 480px) {
	.woocommerce ul.products,
	.woocommerce-page ul.products {
		grid-template-columns: 1fr !important;
		row-gap: 3rem !important;
	}

	.woocommerce ul.products li.product .astra-shop-thumbnail-wrap {
		height: 300px;
	}
}