/* Fixed commerce columns, neutral footer and non-modal cart preview. */
.header-cart-wrap { position: relative; }
.header-cart-preview[hidden] { display: none !important; }
.header-cart-preview {
	position: absolute; right: 0; top: calc(100% + 12px); z-index: 130;
	width: min(400px, calc(100vw - 40px)); max-height: min(650px, calc(100dvh - 160px));
	overflow: auto; padding: 22px; border: 1px solid var(--luman-border); border-radius: 14px;
	background: #fff; box-shadow: 0 16px 50px rgba(0,0,0,.14); color: var(--luman-ink);
}
.header-cart-preview__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
.header-cart-preview .woocommerce-mini-cart { list-style: none; margin: 0; padding: 0; }
.header-cart-preview .woocommerce-mini-cart-item { position: relative; min-height: 96px; padding: 14px 28px 14px 0; border-bottom: 1px solid var(--luman-border); font-size: 13px; }
.header-cart-preview .woocommerce-mini-cart-item > a:not(.remove) { display: block; font-weight: 650; }
.header-cart-preview .woocommerce-mini-cart-item img { float: left; width: 68px; height: 68px; object-fit: contain; margin-right: 14px; background: #fff; }
.header-cart-preview .woocommerce-mini-cart-item .remove { position: absolute; right: 0; top: 14px; font-size: 23px; width: 24px; height: 24px; line-height: 24px; text-align: center; }
.header-cart-preview .quantity { display: block; margin: 7px 0 0 82px; color: var(--luman-muted); }
.header-cart-preview .woocommerce-mini-cart__total { display: flex; justify-content: space-between; padding-top: 14px; font-size: 14px; }
.header-cart-preview .woocommerce-mini-cart__buttons { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin: 18px 0 0; }
.header-cart-preview .button { min-height: 44px; padding: 12px 10px; font-size: 11px; text-align: center; }
.header-cart-preview .button.checkout { background: var(--luman-ink); color: #fff; }

.footer-main { padding-bottom: 0; background: var(--luman-fog); color: var(--luman-ink); }
.footer-grid { grid-template-columns: 1fr .85fr 1fr; gap: clamp(28px, 5vw, 80px); }
.footer-main .wordmark { color: var(--luman-ink); }
.footer-main .custom-logo { filter: none; }
.footer-intro p, .footer-menu, .footer-pickup p { color: var(--luman-muted); }
.footer-main .footer-menu a { color: var(--luman-muted); }
.footer-menu a:hover { color: var(--luman-ink); text-decoration: underline; }
.footer-pickup h2 { margin-bottom: 22px; font-family: var(--luman-font); font-size: 14px; letter-spacing: 0; }
.footer-pickup p, .footer-pickup > a { display: block; font-size: 13px; margin-bottom: 14px; }
.footer-pickup > a:hover { text-decoration: underline; }
.footer-bottom { width: 100%; max-width: none; padding: 22px var(--luman-gutter); border: 0; background: var(--luman-ink); color: #b8bec3; }

/* WooCommerce Blocks use percentage widths plus child padding by default.
 * Grid owns both column widths here so totals can never overlap the products. */
.wc-block-components-sidebar-layout { display: grid !important; grid-template-columns: minmax(0, 1fr) minmax(280px, 340px); gap: 32px !important; align-items: start; }
.wc-block-components-sidebar-layout > .wc-block-components-main,
.wc-block-components-sidebar-layout > .wc-block-components-sidebar {
	position: static !important; width: 100% !important; max-width: 100% !important;
	min-width: 0 !important; margin: 0 !important; padding: 0 !important; float: none !important;
}
.wc-block-cart-items, .wc-block-components-order-summary { width: 100%; table-layout: fixed; }
.wc-block-cart-items__row .wc-block-cart-item__product { overflow-wrap: anywhere; }
.wc-block-components-sidebar .wc-block-cart__submit-container { position: static !important; }
.wc-block-cart__submit-button { text-decoration: none !important; }

.woocommerce-checkout form.checkout.luman-checkout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(340px, .8fr); gap: 32px; align-items: start; }
.luman-checkout > * { min-width: 0; }
.luman-checkout #customer_details { display: block; }
.luman-checkout #customer_details > * { margin-bottom: 24px; }
.luman-checkout #order_review { position: static; }
.luman-checkout #order_review_heading { margin: 0 0 20px; font-size: 28px; }
.luman-checkout .woocommerce-checkout-review-order { padding: clamp(18px, 2vw, 28px); }
.luman-checkout .shop_table { width: 100%; table-layout: fixed; overflow-wrap: anywhere; }
.luman-checkout .shop_table th:first-child, .luman-checkout .shop_table td:first-child { width: 62%; }
.luman-checkout .shop_table td, .luman-checkout .shop_table th { padding: 14px 8px; }
.luman-checkout #payment .payment_box { margin: 12px 0; padding: 14px; background: #fff; }
.luman-checkout #payment ul.payment_methods li { margin-bottom: 14px; line-height: 1.6; }
.luman-checkout #payment .place-order { margin: 0; }
.luman-checkout #place_order { float: none; width: 100%; white-space: normal; margin-top: 18px; }
.luman-checkout .woocommerce-terms-and-conditions-wrapper { font-size: 12px; line-height: 1.65; }
.luman-checkout .woocommerce-form__label-for-checkbox { display: block; }
.luman-checkout .woocommerce-form__input-checkbox { width: auto; min-height: 0; margin-right: 8px; }
.luman-checkout .woocommerce-shipping-methods { padding-left: 0; list-style: none; }
.luman-checkout .woocommerce-shipping-methods label { display: inline; font-size: 13px; font-weight: 500; }
.luman-checkout .shop_table .luman-shipping-options { width: auto; text-align: left; }
.luman-shipping-title { display: block; margin: 0 0 14px; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.luman-pickup-note { display: none; margin: 7px 0 0 22px; font-size: 12px; color: var(--luman-muted); line-height: 1.6; }
.shipping_method:checked ~ .luman-pickup-note,
.shipping_method[type="hidden"] ~ .luman-pickup-note { display: block; }
.luman-checkout .woocommerce-shipping-methods li + li { margin-top: 10px; }
.luman-checkout .shipping_method, .luman-checkout input[type=radio] { width: auto; min-height: 0; }
.luman-checkout .select2-container { width: 100% !important; }
.luman-checkout .woocommerce-billing-fields h3 { margin-top: 0; }
.luman-checkout .luman-address-internal, .luman-checkout #ship-to-different-address,
.luman-checkout #billing_country_field, .luman-checkout #shipping_country_field { display: none !important; }
.luman-checkout .zen-ui-select__value { min-height: 48px; border-radius: 6px; border-color: var(--luman-border); }
.entry-content dl { display: grid; grid-template-columns: minmax(110px, .4fr) minmax(0, 1fr); gap: 12px 24px; }
.entry-content dt { font-weight: 700; }
.entry-content dd { margin: 0; overflow-wrap: anywhere; }
.luman-checkout .woocommerce-additional-fields { margin-top: 24px; }
.luman-checkout .woocommerce-shipping-fields { display: none; }
.woocommerce-checkout form.luman-checkout #payment div.payment_box { background: #fff; color: var(--luman-muted); }
.woocommerce-checkout form.luman-checkout #payment div.payment_box::before { border-bottom-color: #fff; }

/* Order summaries must not inherit WooCommerce's desktop floats on a phone. */
.woocommerce ul.order_details {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 20px 28px;
	margin: 24px 0 32px;
	padding: 0;
	list-style: none;
}
.woocommerce ul.order_details::before,
.woocommerce ul.order_details::after { display: none; }
.woocommerce ul.order_details li {
	float: none;
	min-width: 0;
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 11px;
	line-height: 1.6;
	letter-spacing: .03em;
}
.woocommerce ul.order_details li strong {
	display: block;
	margin-top: 6px;
	font-size: 16px;
	line-height: 1.5;
	letter-spacing: 0;
	text-transform: none;
	overflow-wrap: anywhere;
}
.woocommerce .woocommerce-customer-details .addresses {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 32px;
	margin: 0;
}
.woocommerce .woocommerce-customer-details .addresses::before,
.woocommerce .woocommerce-customer-details .addresses::after { display: none; }
.woocommerce .woocommerce-customer-details .addresses > :is(.col-1, .col-2) {
	float: none;
	width: 100%;
	min-width: 0;
}
.woocommerce .woocommerce-customer-details .woocommerce-column__title { margin: 0 0 16px; }
.woocommerce .woocommerce-customer-details address {
	width: 100%;
	margin: 0;
	padding: 18px;
	border: 1px solid var(--luman-border);
	border-radius: 10px;
	line-height: 1.65;
	overflow-wrap: anywhere;
}

/* One notice border, not an inset stripe plus a programmatic focus outline.
 * Links/buttons inside the notice keep their normal visible keyboard focus. */
.woocommerce :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) {
	border: 1px solid var(--luman-border);
	border-left: 3px solid var(--luman-success);
	box-shadow: none;
	line-height: 1.65;
}
.woocommerce .woocommerce-info { border-left-color: var(--luman-blue); }
.woocommerce .woocommerce-error { border-left-color: var(--luman-red); }
.woocommerce :is(.woocommerce-message, .woocommerce-info, .woocommerce-error)[tabindex="-1"]:focus { outline: none; }

@media (max-width: 999px) {
	.wc-block-components-sidebar-layout, .woocommerce-checkout form.checkout.luman-checkout { grid-template-columns: minmax(0, 1fr); }
	.footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 699px) {
	.woocommerce ul.order_details { grid-template-columns: minmax(0, 1fr); gap: 0; }
	.woocommerce ul.order_details li {
		display: grid;
		grid-template-columns: minmax(100px, .9fr) minmax(0, 1.1fr);
		gap: 16px;
		padding: 14px 0;
		border-bottom: 1px solid var(--luman-border);
	}
	.woocommerce ul.order_details li strong { margin: 0; font-size: 15px; }
	.woocommerce .woocommerce-customer-details .addresses { grid-template-columns: minmax(0, 1fr); gap: 32px; }
	.woocommerce :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) {
		padding: 18px 18px 18px 48px;
	}
	.woocommerce :is(.woocommerce-message, .woocommerce-info, .woocommerce-error)::before { left: 18px; top: 20px; }
	.woocommerce :is(.woocommerce-message, .woocommerce-info, .woocommerce-error) .button {
		display: flex;
		float: none;
		clear: both;
		justify-content: center;
		width: 100%;
		margin: 16px 0 0;
		padding: 14px 12px;
		white-space: normal;
		text-align: center;
	}
	.header-cart-preview { display: none !important; }
	.footer-grid { grid-template-columns: 1fr; gap: 32px; }
	.luman-checkout .form-row-first, .luman-checkout .form-row-last { float: none; width: 100%; }
	.luman-checkout .woocommerce-checkout-review-order { padding: 18px 14px; }
	.wc-block-cart.is-mobile .wc-block-cart-items__row {
		grid-template-columns: 64px minmax(0, 1fr) !important;
		gap: 12px !important;
		padding: 20px 0 !important;
	}
	.wc-block-cart.is-mobile .wc-block-cart-items__row > * { min-width: 0; padding: 0 !important; }
	.wc-block-cart.is-mobile .wc-block-cart-item__image { grid-column: 1 !important; grid-row: 1 / span 2 !important; }
	.wc-block-cart.is-mobile .wc-block-cart-item__product { grid-column: 2 !important; grid-row: 1 !important; }
	.wc-block-cart.is-mobile .wc-block-cart-item__total { grid-column: 2 !important; grid-row: 2 !important; align-items: flex-start; }
}
