/*
 * CaseScent WooCommerce compatibility layer.
 * Transaction details remain visible and native Woo notices are never hidden.
 */

:root {
	--casescent-control-height: 44px;
}

.woocommerce,
.wc-block-cart,
.wc-block-checkout,
.wp-block-woocommerce-product-collection {
	min-width: 0;
}

.woocommerce-notices-wrapper,
.woocommerce-error,
.woocommerce-info,
.woocommerce-message,
.wc-block-components-notice-banner {
	display: block;
	margin-block: var(--casescent-space-md);
	max-width: none;
}

.woocommerce-error,
.wc-block-components-notice-banner.is-error {
	border-inline-start: 3px solid var(--casescent-error);
}

.woocommerce-message,
.wc-block-components-notice-banner.is-success {
	border-inline-start: 3px solid var(--casescent-success);
}

.wc-block-grid__products,
.wc-block-product-template {
	display: grid;
	gap: var(--casescent-space-xl) var(--casescent-space-lg);
	grid-template-columns: minmax(0, 1fr);
	list-style: none;
	margin: 0;
	padding: 0;
}

.wc-block-grid__product,
.wc-block-product {
	min-width: 0;
	box-shadow: none;
	text-align: start;
}

.wc-block-grid__product {
	max-width: none;
	width: auto;
}

.wc-block-components-product-image,
.wc-block-grid__product-image {
	aspect-ratio: 3 / 4;
	background: var(--casescent-parchment);
	overflow: clip;
}

.wc-block-components-product-image img,
.wc-block-grid__product-image img {
	height: 100%;
	object-fit: contain;
	width: 100%;
}

.wc-block-components-product-name,
.wc-block-grid__product-title {
	font-family: var(--casescent-font-body);
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.35;
}

.wc-block-components-product-price,
.price,
[data-casescent="case-price"],
[data-casescent="bottle-reference"],
[data-casescent="case-size"],
[data-casescent="delivered-price"] {
	font-variant-numeric: tabular-nums;
}

[data-casescent="case-price"],
[data-casescent="bottle-reference"],
[data-casescent="case-size"],
[data-casescent="delivered-price"] {
	display: block;
	margin-block: var(--casescent-space-xs);
}

[data-casescent="order-availability"] {
	align-items: center;
	color: var(--casescent-success);
	display: flex;
	font-size: 0.875rem;
	font-weight: 700;
	gap: 0.5rem;
	margin-block-start: var(--casescent-space-md);
}

[data-casescent="order-availability"]::before {
	background: currentcolor;
	border-radius: 50%;
	content: "";
	height: 0.5rem;
	width: 0.5rem;
}

[data-casescent="availability-note"] {
	background: var(--casescent-parchment);
	display: block;
	font-size: 0.875rem;
	margin-block: var(--casescent-space-xs) var(--casescent-space-md);
	padding: var(--casescent-space-sm) var(--casescent-space-md);
}

[data-casescent="case-price"] {
	font-size: 1.375rem;
	font-weight: 700;
}

.casescent-product-layout {
	display: grid;
	gap: var(--casescent-space-xl);
	grid-template-columns: minmax(0, 1fr);
	padding-block: var(--casescent-space-xl) var(--casescent-space-2xl);
}

.casescent-product-purchase {
	align-self: start;
	display: grid;
	gap: var(--casescent-space-md);
	min-width: 0;
}

.casescent-product-purchase .wp-block-post-title {
	font-size: clamp(2rem, 1.4rem + 2.5vw, 3.75rem);
	margin: 0;
}

.casescent-purchase-facts {
	border-block: 1px solid var(--casescent-rule);
	list-style: none;
	margin: 0;
	padding: var(--casescent-space-md) 0;
}

.casescent-purchase-facts li + li {
	margin-block-start: var(--casescent-space-xs);
}

.quantity .qty,
.woocommerce .quantity .qty,
.wc-block-components-quantity-selector input {
	min-height: var(--casescent-control-height);
	min-width: var(--casescent-control-height);
}

.single_add_to_cart_button,
.woocommerce button.button,
.wc-block-components-button,
.wc-block-cart__submit-button {
	min-height: var(--casescent-control-height);
	white-space: nowrap;
}

.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form select {
	border: 1px solid var(--casescent-rule);
	border-radius: var(--casescent-radius);
	font: inherit;
	min-height: var(--casescent-control-height);
}

.wc-block-components-text-input input:focus,
.wc-block-components-combobox .wc-block-components-combobox-control input:focus,
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form select:focus {
	border-width: 1px;
	outline: 3px solid var(--casescent-copper);
	outline-offset: 1px;
}

.woocommerce form .form-row textarea {
	min-height: 8rem;
	resize: vertical;
}

[data-casescent="quote-prompt"] {
	background: var(--casescent-parchment);
	border-block: 1px solid var(--casescent-rule);
	margin-block-end: var(--casescent-space-lg);
	padding: var(--casescent-space-lg);
}

[data-casescent="quote-prompt"][hidden] {
	display: none;
}

[data-casescent="volume-quote"] {
	max-width: 760px;
}

[data-casescent="volume-quote-form"] {
	display: grid;
	gap: var(--casescent-space-md);
}

[data-casescent="volume-quote-form"] label {
	display: grid;
	font-weight: 700;
	gap: var(--casescent-space-xs);
}

[data-casescent="volume-quote-form"] input:not([type="checkbox"]),
[data-casescent="volume-quote-form"] textarea {
	border: 1px solid var(--casescent-rule);
	border-radius: var(--casescent-radius);
	font: inherit;
	min-height: var(--casescent-control-height);
	padding: var(--casescent-space-sm);
}

[data-casescent="volume-quote-form"] textarea {
	min-height: 8rem;
	resize: vertical;
}

.wc-block-cart-items,
.wc-block-cart-items__row,
.wc-block-cart-item__wrap,
.wc-block-components-order-summary,
.wc-block-checkout__main,
.wc-block-checkout__sidebar {
	min-width: 0;
}

.wc-block-cart table,
.woocommerce table.shop_table {
	font-variant-numeric: tabular-nums;
	width: 100%;
}

.wc-block-components-totals-wrapper,
.wc-block-components-order-summary {
	overflow-wrap: anywhere;
}

.wp-block-woocommerce-checkout .wc-block-checkout__shipping-option .wc-block-components-shipping-rates-control__no-shipping-address-message {
	color: #5a746b;
}

@media (min-width: 40rem) {
	.wc-block-grid__products,
	.wc-block-product-template {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 60rem) {
	.wc-block-grid__products,
	.wc-block-product-template {
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}

	.casescent-product-layout {
		grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	}

	.casescent-product-purchase {
		position: sticky;
		top: var(--casescent-space-lg);
	}

}

@media (pointer: coarse) {
	:where(
			.woocommerce a,
			.woocommerce button,
			.wc-block-cart a,
			.wc-block-cart button,
			.wc-block-checkout a,
			.wc-block-checkout button
		) {
		min-height: var(--casescent-control-height);
	}
}
