/* ============ Shop archive, product page, cart, checkout ============ */

/* --- Archive --- */
.woocommerce .mke-main, .woocommerce-page .mke-main { max-width: var(--container); margin: 0 auto; padding: 0 1.25rem; }
.woocommerce-products-header { text-align: center; padding: 3rem 0 1rem; }
.woocommerce-products-header h1 { font-size: clamp(1.9rem, 4vw, 2.6rem); }
.woocommerce-result-count, .woocommerce-ordering { font-size: .85rem; color: var(--muted); }

.woocommerce ul.products li.product {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: var(--radius);
	overflow: clip;
	transition: transform .22s ease, box-shadow .22s ease;
	padding-bottom: 1rem;
}
.woocommerce ul.products li.product:hover { transform: translateY(-5px); box-shadow: var(--shadow); }
.woocommerce ul.products li.product img { aspect-ratio: 4/3; object-fit: contain; width: 100%; background: var(--cream-light); }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	font-family: var(--font-serif);
	font-size: 1.12rem;
	font-weight: 400;
	padding: .9rem 1.1rem .2rem;
}
.woocommerce ul.products li.product .price { padding: 0 1.1rem; color: var(--muted); }
.woocommerce ul.products li.product .price .amount { color: var(--ink); font-weight: 600; }
.woocommerce ul.products li.product .button { margin: .8rem 1.1rem 0; }

/* --- Product page --- */
.single-product div.product { display: flex; flex-wrap: wrap; gap: 3rem; padding-top: 2.5rem; }
.single-product div.product .woocommerce-product-gallery { flex: 1 1 460px; max-width: 560px; position: sticky; top: calc(var(--header-h) + 1rem); align-self: flex-start; }
.woocommerce-product-gallery__wrapper .woocommerce-product-gallery__image { background: var(--cream-light); border-radius: 14px; overflow: clip; }
/* Blocksy flexy gallery: natural image proportions, no stretching */
.single-product .flexy-view, .single-product .flexy-items, .single-product .flexy-item { height: auto !important; }
.single-product .flexy-item .ct-media-container {
	width: 100% !important;
	height: auto !important;
	aspect-ratio: auto !important;
	display: block !important;
	background: var(--cream-light);
}
.single-product .flexy-item .ct-media-container img {
	width: 100% !important;
	height: auto !important;
	max-height: 520px !important;
	object-fit: contain !important;
	display: block;
}
.woocommerce-product-gallery__image a { cursor: default; }
.single-product div.product .summary { flex: 1 1 380px; max-width: 520px; }
.woocommerce-product-gallery__image img { border-radius: 14px; }
.woocommerce-product-gallery .flex-control-thumbs { display: flex; gap: .5rem; margin-top: .6rem; flex-wrap: wrap; }
.woocommerce-product-gallery .flex-control-thumbs li { width: 72px; }
.woocommerce-product-gallery .flex-control-thumbs img { border-radius: 8px; border: 2px solid transparent; cursor: pointer; opacity: .7; }
.woocommerce-product-gallery .flex-control-thumbs img.flex-active, .woocommerce-product-gallery .flex-control-thumbs img:hover { border-color: var(--olive); opacity: 1; }

.single-product .product_title { font-size: clamp(1.8rem, 3.4vw, 2.4rem); }
.single-product .summary .price { font-size: 1.5rem; color: var(--ink); font-weight: 600; margin: .6rem 0 .2rem; }
.single-product .summary .price .amount { color: var(--ink); }

.mke-usp { list-style: none; margin: .8rem 0 1.2rem; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem 1.2rem; }
.mke-usp li { font-size: .84rem; color: var(--muted); position: relative; padding-left: 1.15rem; }
.mke-usp li::before { content: '✓'; position: absolute; left: 0; color: var(--olive); font-weight: 700; }

/* Variations: colour swatches */
.mke-swatches { display: flex; flex-wrap: wrap; gap: .55rem; margin: .4rem 0 .6rem; }
.mke-swatch {
	width: 34px; height: 34px;
	border-radius: 50%;
	border: 2px solid #fff;
	box-shadow: 0 0 0 1px var(--line);
	cursor: pointer;
	padding: 0;
	transition: scale .15s ease, box-shadow .15s ease;
}
.mke-swatch:hover { scale: 1.12; }
.mke-swatch.is-active { box-shadow: 0 0 0 2px var(--olive); scale: 1.08; }
.mke-swatch-label { font-size: .88rem; color: var(--muted); margin-left: .2rem; }
.mke-swatch-label strong { color: var(--ink); }
table.variations select { display: none; }
table.variations, table.variations td, table.variations th { border: 0; padding: 0; margin: 0; }
table.variations .label { display: none; }
.woocommerce div.product form.cart .reset_variations { font-size: .8rem; }

/* Cover addon */
.mke-cover-addon {
	display: flex;
	align-items: center;
	gap: .9rem;
	background: var(--cream-light);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 1rem 1.1rem;
	margin: 1.2rem 0;
	cursor: pointer;
	transition: border-color .15s ease, background .15s ease;
}
.mke-cover-addon:hover { border-color: var(--olive); }
.mke-cover-addon input { position: absolute; opacity: 0; }
.mke-cover-box {
	flex: 0 0 22px;
	width: 22px; height: 22px;
	border: 2px solid var(--olive);
	border-radius: 6px;
	background: #fff;
	position: relative;
}
.mke-cover-addon input:checked + .mke-cover-box { background: var(--olive); }
.mke-cover-addon input:checked + .mke-cover-box::after {
	content: '';
	position: absolute;
	inset: 3px 5px 6px 5px;
	border: solid #fff;
	border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}
.mke-cover-text { display: flex; flex-direction: column; }
.mke-cover-text strong { font-size: .95rem; }
.mke-cover-text em { font-style: normal; font-size: .82rem; color: var(--muted); }

/* Qty + buttons row */
.woocommerce div.product form.cart { margin-top: .6rem; }
.woocommerce div.product form.cart div.quantity {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--line);
	border-radius: 10px;
	background: #fff;
}
.woocommerce div.product form.cart div.quantity .qty {
	height: 50px;
	width: 112px !important;
	border: 0 !important;
	text-align: center;
	font-size: 16px;
	background: transparent;
	-moz-appearance: textfield;
}
.woocommerce div.product form.cart div.quantity .ct-increase,
.woocommerce div.product form.cart div.quantity .ct-decrease {
	background: var(--cream-light);
	color: var(--ink);
	border: 0 !important;
}

/* Inline nudge when no colour picked yet */
.mke-choose-note {
	display: none;
	margin: .7rem 0 0;
	padding: .65rem 1rem;
	background: #FBEFEA;
	border: 1px solid #E8C9BC;
	border-radius: 10px;
	color: #8A3B22;
	font-size: .92rem;
	font-weight: 500;
}
.mke-choose-note.is-visible { display: block; animation: mke-note-in .25s ease; }
@keyframes mke-note-in { from { opacity: 0; transform: translateY(-4px); } to { opacity: 1; transform: none; } }
.mke-swatches.is-nudged .mke-swatch { animation: mke-swatch-pulse .5s ease 2; }
@keyframes mke-swatch-pulse { 50% { scale: 1.18; } }
.woocommerce div.product form.cart .button { height: 50px; padding: 0 1.9rem; }
.single_add_to_cart_button { background: var(--olive) !important; }
.mke-buy-now { background: var(--bottle) !important; margin-left: .5rem !important; }
.mke-buy-now:hover { background: #16291f !important; }

/* Accordions */
.mke-accordions { flex-basis: 100%; max-width: 820px; margin: 3rem auto 0; }
.mke-acc { border: 1px solid var(--line); border-radius: var(--radius); margin-bottom: .7rem; background: #fff; }
.mke-acc summary {
	cursor: pointer;
	list-style: none;
	padding: 1.1rem 1.3rem;
	font-weight: 600;
	font-size: 1.02rem;
	position: relative;
}
.mke-acc summary::-webkit-details-marker { display: none; }
.mke-acc summary::after { content: '+'; position: absolute; right: 1.2rem; top: 50%; transform: translateY(-50%); color: var(--olive); font-size: 1.4rem; transition: rotate .2s; }
.mke-acc[open] summary::after { rotate: 45deg; }
.mke-acc-body { padding: 0 1.3rem 1.2rem; color: var(--muted); }
.mke-acc-body .mke-faq-item { border-bottom: 1px solid var(--line); }
.mke-acc-body .mke-faq-item:last-child { border-bottom: 0; }
.mke-acc-body .mke-faq-item summary { padding: .8rem 0; font-size: .95rem; }
.mke-acc-body .mke-faq-item p { margin: 0 0 .9rem; }

/* Related */
.single-product .related.products { flex-basis: 100%; margin-top: 3.5rem; }
.single-product .related.products > h2 { text-align: center; margin-bottom: 1.6rem; }

/* --- Cart --- */
.woocommerce-cart .mke-main { padding-top: 2.5rem; }
.woocommerce table.shop_table { border: 1px solid var(--line); border-radius: var(--radius); overflow: clip; }
.woocommerce table.shop_table td, .woocommerce table.shop_table th { border-color: var(--line); }
.woocommerce-cart table.cart img { width: 76px; border-radius: 8px; }
.cart_totals h2 { font-size: 1.3rem; }

/* --- Checkout --- */
.woocommerce-checkout .mke-main { padding-top: 0; }
.woocommerce-checkout .mke-page-wrap { max-width: 1140px; }
.woocommerce-checkout form.checkout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(340px, 420px);
	column-gap: 3.5rem;
	align-items: start;
}
.woocommerce-checkout form.checkout > .ct-customer-details { grid-column: 1; min-width: 0; }
.woocommerce-checkout form.checkout > .ct-order-review {
	grid-column: 2;
	min-width: 0;
	border: 0;
	padding: 0;
	background: transparent;
	position: sticky;
	top: calc(var(--header-h) + 1.5rem);
}
.woocommerce-checkout form.checkout #order_review_heading { display: none; }
.woocommerce-checkout form.checkout #order_review {
	background: var(--cream-light);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 1.6rem;
}
.woocommerce-checkout #order_review::before {
	content: 'Your order';
	display: block;
	font-family: var(--font-serif);
	font-size: 1.35rem;
	font-weight: 400;
	margin-bottom: .9rem;
}
@media (max-width: 900px) {
	.woocommerce-checkout form.checkout { display: block; }
	.woocommerce-checkout form.checkout > .ct-order-review { position: static; margin-top: 1.6rem; }
}
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .select2-container--default .select2-selection--single {
	border: 1px solid var(--line);
	border-radius: 10px;
	padding: .75rem 1rem;
	height: auto;
	font-size: .95rem;
}
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 1.4; }
.select2-container--default .select2-selection--single .select2-selection__arrow { height: 100%; }
.woocommerce form .form-row label { font-size: .85rem; font-weight: 600; }
#payment { background: transparent !important; }
.woocommerce-checkout #payment div.payment_box { background: #fff; border: 1px solid var(--line); border-radius: 10px; }
.woocommerce-checkout #payment div.payment_box::before { display: none; }
#place_order { width: 100%; font-size: 1.05rem; padding: 1rem; }
.mke-trust { list-style: none; margin: 1.1rem 0 0; padding: 0; }
.mke-trust li { font-size: .82rem; color: var(--muted); padding: .2rem 0 .2rem 1.3rem; position: relative; }
.mke-trust li::before { content: '✓'; position: absolute; left: 0; color: var(--olive); font-weight: 700; }

/* Thank you */
.woocommerce-order-received .woocommerce-thankyou-order-received {
	font-family: var(--font-serif);
	font-size: 1.7rem;
	font-weight: 400;
	text-align: center;
	padding: 2rem 0 1rem;
}

/* Notices */
.woocommerce-message, .woocommerce-info {
	border-top-color: var(--olive);
	background: var(--cream-light);
	border-radius: 10px;
}
.woocommerce-message::before, .woocommerce-info::before { color: var(--olive); }

/* Responsive */
@media (max-width: 767px) {
	.single-product div.product { gap: 1.6rem; padding-top: 1.2rem; }
	.single-product div.product .woocommerce-product-gallery { position: static; }
	.woocommerce div.product form.cart .button { width: 100%; margin: .4rem 0 0 !important; }
	.woocommerce div.product form.cart div.quantity { margin-bottom: .4rem; }
	.woocommerce-checkout #order_review { position: static; }
	.woocommerce table.shop_table_responsive tr td::before { content: attr(data-title); }
}

/* Bottom spacing before footer */
.woocommerce .mke-main, .woocommerce-page .mke-main { padding-bottom: 4.5rem; }

/* Meta cleanup */
.product_meta .sku_wrapper { display: none !important; }
.woocommerce div.product form.cart .reset_variations { display: block; margin-top: .4rem; color: var(--muted); }

/* Shop header polish */
.woocommerce-products-header { padding: 3rem 0 .4rem; }
.mke-shop-lead { text-align: center; color: var(--muted); max-width: 560px; margin: .4rem auto 2rem; }
.woocommerce-result-count { display: none; }
.woocommerce .woocommerce-ordering { float: right; margin-bottom: 1.2rem; }
.woocommerce-ordering select { border: 1px solid var(--line); border-radius: 8px; padding: .45rem .7rem; color: var(--muted); font-size: .85rem; background: #fff; }
li.product .entry-meta { display: none; }

/* ============ Checkout: modern, simple, mobile-first ============ */
.woocommerce-checkout .mke-page-wrap { max-width: 1080px; }
.woocommerce-checkout .wc-stripe-elements-field, .woocommerce-checkout .StripeElement { background: #fff; }
#wc-stripe-express-checkout-element { max-width: 560px; }
.woocommerce-checkout #payment ul.payment_methods { border-bottom: 0; padding: 0; }
.woocommerce-checkout #payment li.wc_payment_method > label { font-weight: 600; }
.wc-stripe-express-checkout__separator, #wc-stripe-express-checkout__separator {
	color: var(--muted);
	font-size: .78rem;
	letter-spacing: .18em;
}
.woocommerce form .form-row { margin-bottom: .9rem; }
.woocommerce-billing-fields h3, #order_review_heading {
	font-size: 1.25rem;
	margin: 1rem 0 .8rem;
}
.woocommerce-checkout .woocommerce-form__label-for-checkbox { font-size: .9rem; }
.woocommerce table.shop_table.woocommerce-checkout-review-order-table { border: 0; }
.woocommerce-checkout-review-order-table td, .woocommerce-checkout-review-order-table th { border-color: var(--line) !important; font-size: .93rem; }

@media (max-width: 767px) {
	/* 16px inputs stop iOS auto-zoom */
	.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea,
	.select2-container--default .select2-selection--single,
	.mke-news-form input { font-size: 16px; }
	.woocommerce-checkout form.checkout { gap: 1.4rem; }
	.woocommerce-checkout #order_review { padding: 1.1rem; }
	#place_order { position: sticky; bottom: 12px; z-index: 40; box-shadow: 0 6px 24px rgba(30, 58, 47, .4); }
	.single-product div.product .summary { max-width: none; }
	.woocommerce-product-gallery__image img { max-height: 380px; }
}

/* ============ Cart redesign ============ */
.woocommerce-cart .mke-page-wrap { max-width: 1140px; }
.woocommerce-cart form.woocommerce-cart-form { margin-bottom: 2rem; }
.woocommerce-cart table.cart { border: 0; }
.woocommerce-cart table.cart th { font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); border-bottom: 1px solid var(--line); background: transparent; }
.woocommerce-cart table.cart td { border-color: var(--line); background: transparent; }
.woocommerce-cart table.cart td.product-name a { color: var(--ink); text-decoration: none; font-weight: 600; }
.woocommerce-cart table.cart td { vertical-align: middle; }
.woocommerce-cart .ct-woocommerce-cart-form { grid-template-columns: minmax(0, 1fr) 380px; gap: 3rem; align-items: start; }
.woocommerce-cart form.woocommerce-cart-form { min-width: 0; }
.woocommerce-cart table.cart { width: 100%; table-layout: fixed; }
.woocommerce-cart table.cart th.product-thumbnail { width: 148px !important; }
.woocommerce-cart table.cart th.product-quantity { width: 140px !important; }
.woocommerce-cart table.cart th.product-subtotal { width: 104px !important; }
.woocommerce-cart table.cart th.product-remove, .woocommerce-cart table.cart td.product-remove { width: 44px !important; }
.woocommerce-cart table.cart th.product-name { width: auto; text-align: left; }
.woocommerce-cart table.cart td.product-thumbnail, .woocommerce-cart table.cart th.product-thumbnail { width: 132px !important; }
.woocommerce-cart table.cart td.product-thumbnail .ct-media-container { display: block; width: 112px !important; }
.woocommerce-cart table.cart img { width: 112px !important; height: 112px !important; object-fit: cover; border-radius: 12px; display: block; }
.woocommerce-cart td.product-name { font-size: 1.05rem; line-height: 1.4; min-width: 220px; }
.woocommerce-cart td.product-name .woocommerce-Price-amount { color: var(--muted); font-size: .9rem; font-weight: 400; }
.woocommerce-cart .quantity { display: inline-flex; align-items: center; border: 1px solid var(--line); border-radius: 10px; }
.woocommerce-cart .quantity .qty { border: 0 !important; width: 100px !important; height: 42px; text-align: center; font-size: 15px !important; -moz-appearance: textfield; background: transparent; }
.woocommerce-cart .quantity .ct-increase, .woocommerce-cart .quantity .ct-decrease { border: 0 !important; background: var(--cream-light); color: var(--ink); }
.woocommerce-cart table.cart td.actions { padding: 1.1rem 0 0; border: 0; display: flex; align-items: center; gap: 1rem; }
.woocommerce-cart td.actions .coupon { display: flex; gap: .6rem; align-items: stretch; float: none; flex: 0 0 auto; margin: 0; }
.woocommerce-cart td.actions .coupon .input-text { border: 1px solid var(--line); border-radius: 10px; padding: .7rem 1rem; width: 190px; font-size: .92rem; }
.woocommerce-cart td.actions .coupon .button { white-space: nowrap; padding: .72rem 1.3rem; font-size: .9rem; }
.woocommerce-cart td.actions > .button { float: none; white-space: nowrap; padding: .72rem 1.3rem; font-size: .9rem; }
.woocommerce-cart td.actions > .button { margin-left: auto; }
.woocommerce-cart td.actions .button:disabled { background: var(--cream); color: var(--muted); box-shadow: none; }
.woocommerce-cart .cart_totals {
	float: none;
	width: 100%;
	background: var(--cream-light);
	border: 1px solid var(--line);
	border-radius: var(--radius);
	padding: 1.6rem;
	position: sticky;
	top: calc(var(--header-h) + 1.5rem);
}
.woocommerce-cart .cart_totals h2 { font-size: 1.35rem; margin-bottom: .8rem; }
.woocommerce-cart .cart_totals table.shop_table { border: 0; margin-bottom: 1rem; }
.woocommerce-cart .cart_totals table.shop_table td, .woocommerce-cart .cart_totals table.shop_table th { border-color: var(--line); background: transparent; font-size: .95rem; }
.wc-proceed-to-checkout { padding: 0 !important; }
.wc-proceed-to-checkout a.checkout-button { width: 100%; text-align: center; font-size: 1.05rem; padding: 1rem !important; margin-bottom: .8rem !important; }
.cart_totals #wc-stripe-express-checkout-element { margin-top: .4rem; }
@media (max-width: 900px) {
	.woocommerce-cart .ct-woocommerce-cart-form { grid-template-columns: 1fr; }
	.woocommerce-cart .cart_totals { position: static; }
}
@media (max-width: 767px) {
	.woocommerce-cart table.cart td.actions { flex-direction: column; align-items: stretch; }
	.woocommerce-cart td.actions .coupon .input-text { flex: 1; width: auto; }
	.woocommerce-cart td.actions > .button { margin-left: 0; width: 100%; }
}

/* Shop header: compact cream band, no dead space */
.woocommerce .hero-section { background: linear-gradient(180deg, var(--cream-light) 0%, #fff 100%); border-bottom: 1px solid var(--line); }
.woocommerce .hero-section .entry-header { min-height: 0 !important; padding: 2.4rem 0 1.1rem !important; }
.woocommerce-products-header { padding: 1.2rem 0 0; }
.mke-shop-lead { margin: 0 auto 1.4rem; }

/* Gallery: kill the broken pan-zoom overlay (image "wandering" on hover) */
.woocommerce-product-gallery .zoomImg { display: none !important; }
.woocommerce-product-gallery img { cursor: default; }

/* ============ Checkout design polish v2 ============ */
/* Express checkout area */
.woocommerce-checkout #wc-stripe-express-checkout-element { max-width: none; }
.woocommerce-checkout #wc-stripe-express-checkout-element::before {
	content: 'Express checkout';
	display: block;
	flex: 0 0 100%;
	width: 100%;
	font-size: .78rem;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--muted);
	margin: 0 0 .7rem;
}
#wc-stripe-express-checkout-button-separator {
	display: flex !important;
	align-items: center;
	gap: 1rem;
	color: var(--muted);
	font-size: .8rem;
	letter-spacing: .18em;
	margin: 1.4rem 0 1.6rem !important;
}
#wc-stripe-express-checkout-button-separator::before,
#wc-stripe-express-checkout-button-separator::after {
	content: '';
	flex: 1;
	height: 1px;
	background: var(--line);
}

/* Brand checkboxes & radios */
.woocommerce-checkout input[type="checkbox"],
.woocommerce-checkout input[type="radio"],
.woocommerce-cart input[type="checkbox"] {
	accent-color: var(--olive-dark);
	width: 18px;
	height: 18px;
}
.woocommerce-checkout .woocommerce-form__label-for-checkbox,
.woocommerce-checkout #ship-to-different-address label {
	display: inline-flex;
	align-items: center;
	gap: .55rem;
	cursor: pointer;
}

/* Payment method label + box */
.woocommerce-checkout #payment li.wc_payment_method > label {
	font-family: var(--font-serif);
	font-size: 1.22rem;
	font-weight: 400;
	display: inline-flex;
	align-items: center;
	gap: .5rem;
}
.woocommerce-checkout #payment div.payment_box { margin-top: .8rem; }

/* Order review table cleanup */
#order_review table.shop_table, #order_review table.shop_table tr, #order_review table.shop_table th, #order_review table.shop_table td { background: transparent !important; border-left: 0; border-right: 0; }
#order_review table.shop_table thead th {
	font-size: .74rem;
	letter-spacing: .12em;
	color: var(--muted);
	border-bottom: 1px solid var(--line);
	padding-left: 0;
}
#order_review table.shop_table td, #order_review table.shop_table tfoot th { padding-left: 0; }
#order_review tfoot .order-total th, #order_review tfoot .order-total td {
	border-top: 2px solid var(--olive);
	font-size: 1.08rem;
	padding-top: .9rem;
}
#order_review tfoot .order-total .amount { color: var(--ink); }

/* Reassurance card under the billing form */
.mke-checkout-note {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 12px;
	padding: 1.1rem 1.3rem;
	margin-top: 1.6rem;
	font-size: .9rem;
	color: var(--muted);
	line-height: 1.6;
}
.mke-checkout-note strong { color: var(--ink); }

/* Hide express UI until Stripe wallet buttons actually render */
#wc-stripe-express-checkout-element .StripeElement:not(:has(iframe)) { display: none; }
#wc-stripe-express-checkout-element:not(:has(iframe))::before { display: none; }
form.checkout:not(:has(#wc-stripe-express-checkout-element iframe)) #wc-stripe-express-checkout-button-separator { display: none !important; }

/* Cart totals: editorial like checkout order review */
.woocommerce-cart .cart_totals h2::before, .woocommerce-cart .cart_totals h2::after { display: none; }
.woocommerce-cart .cart_totals table.shop_table,
.woocommerce-cart .cart_totals table.shop_table tr,
.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td {
	background: transparent !important;
	border-left: 0;
	border-right: 0;
}
.woocommerce-cart .cart_totals table.shop_table th {
	font-size: .74rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--muted);
	padding-left: 0;
	width: 40%;
}
.woocommerce-cart .cart_totals table.shop_table td { text-align: right; padding-right: 0; }
.woocommerce-cart .cart_totals table.shop_table td, .woocommerce-cart .cart_totals table.shop_table th { border-bottom: 1px solid var(--line); }
.woocommerce-cart .cart_totals .shipping td { text-align: left; font-size: .9rem; color: var(--muted); }
.woocommerce-cart .cart_totals .order-total th, .woocommerce-cart .cart_totals .order-total td {
	border-top: 2px solid var(--olive);
	border-bottom: 0;
	font-size: 1.08rem;
	padding-top: .9rem;
	color: var(--ink);
}

/* ============ Cart: card layout on narrow screens ============ */
@media (max-width: 860px) {
	.woocommerce-cart table.cart { table-layout: auto; }
	.woocommerce-cart table.cart thead { display: none; }
	.woocommerce-cart table.cart tbody { display: block; }
	.woocommerce-cart table.cart tr.woocommerce-cart-form__cart-item {
		display: grid;
		grid-template-columns: 96px minmax(0, 1fr) 32px;
		grid-template-areas:
			"img name remove"
			"img controls controls";
		gap: .3rem 1rem;
		padding: 1.1rem 0;
		border-bottom: 1px solid var(--line);
		align-items: start;
	}
	.woocommerce-cart table.cart tr.woocommerce-cart-form__cart-item td { border: 0 !important; padding: 0 !important; }
	.woocommerce-cart table.cart td.product-thumbnail { grid-area: img; width: auto !important; }
	.woocommerce-cart table.cart td.product-thumbnail .ct-media-container { width: 96px !important; }
	.woocommerce-cart table.cart img { width: 96px !important; height: 96px !important; }
	.woocommerce-cart td.product-name { grid-area: name; min-width: 0; font-size: .98rem; }
	.woocommerce-cart td.product-remove { grid-area: remove; justify-self: end; }
	.woocommerce-cart td.product-quantity { grid-area: controls; display: flex; align-items: center; justify-content: space-between; margin-top: .4rem !important; }
	.woocommerce-cart td.product-quantity::after { content: attr(data-mke-price); font-weight: 600; }
	.woocommerce-cart td.product-subtotal { grid-area: controls; justify-self: end; align-self: center; margin-top: .4rem !important; font-weight: 600; }
	.woocommerce-cart .quantity .qty { width: 84px !important; height: 38px; }
	.woocommerce-cart table.cart td.actions { display: flex; flex-direction: column; align-items: stretch; gap: .7rem; padding-top: 1.2rem !important; }
	.woocommerce-cart td.actions .coupon { width: 100%; }
	.woocommerce-cart td.actions .coupon .input-text { flex: 1; width: auto; }
	.woocommerce-cart td.actions > .button { width: 100%; margin-left: 0; }
}


/* Gallery on phones: 4:3 stage instead of a tall cream box */
@media (max-width: 767px) {
	.single-product .flexy-item .ct-media-container { aspect-ratio: 4 / 3 !important; }
	.single-product .flexy-item .ct-media-container img { height: 100% !important; max-height: none !important; }
	.single-product div.product .woocommerce-product-gallery { position: static; }
}

/* ============ Phones: compact chrome, thumb strip, sticky buy bar ============ */
@media (max-width: 767px) {
	/* Blocksy wraps every Woo view in a container with 50px of top padding
	   and a breadcrumb "hero" with another 56px. On a phone that is a blank
	   screen before the product. */
	.woocommerce .ct-container-full, .woocommerce-page .ct-container-full { padding-top: .6rem !important; }
	.woocommerce .hero-section .entry-header, .single-product .hero-section .entry-header { padding: .3rem 0 .6rem !important; }
	.ct-breadcrumbs { font-size: .78rem; }
	.woocommerce-cart .hero-section, .woocommerce-checkout .hero-section { display: none; }
	.woocommerce .mke-main, .woocommerce-page .mke-main { padding-bottom: 2.5rem; }
	.woocommerce-products-header { padding-top: .4rem; }

	/* Gallery thumbs: one horizontal strip you flick, not a 2-row block */
	.single-product .flexy-pills ol {
		display: flex; flex-wrap: nowrap !important; flex-direction: row !important;
		overflow-x: auto; gap: .5rem; padding: .25rem .1rem .6rem; margin: .5rem 0 0;
		scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; scrollbar-width: none;
	}
	.single-product .flexy-pills ol::-webkit-scrollbar { display: none; }
	.single-product .flexy-pills ol li { flex: 0 0 64px !important; width: 64px !important; scroll-snap-align: start; margin: 0 !important; padding: 0 !important; }
	.single-product .flexy-pills ol li img, .single-product .flexy-pills ol li .ct-media-container { width: 64px !important; height: 64px !important; object-fit: cover; border-radius: 8px; display: block; }
	.single-product .flexy-pills ol li .ct-media-container { overflow: clip; }
	.single-product .flexy-pills ol li img { opacity: .75; }
	.single-product .flexy-pills ol li.active img { opacity: 1; box-shadow: 0 0 0 2px var(--olive); }

	.single-product .product_title { font-size: 1.7rem; }
	.single-product .summary .price { font-size: 1.5rem; }
}

/* Sticky buy bar (created by product.js on screens up to 1024px) */
.mke-buybar {
	position: fixed;
	left: 0; right: 0; bottom: 0;
	z-index: 850;
	display: flex;
	align-items: center;
	gap: .9rem;
	padding: .65rem 1rem calc(.65rem + env(safe-area-inset-bottom, 0px));
	background: rgba(251, 249, 244, .98);
	border-top: 1px solid var(--line);
	box-shadow: 0 -8px 24px rgba(32, 30, 26, .10);
	transform: translateY(110%);
	transition: transform .3s cubic-bezier(.2, .7, .2, 1);
}
.mke-buybar.is-in { transform: none; }
.mke-buybar-info { display: flex; flex-direction: column; min-width: 0; flex: 1; }
.mke-buybar-price { font-family: var(--font-sans); font-weight: 700; font-size: 1.15rem; color: var(--bottle); line-height: 1.15; font-variant-numeric: lining-nums tabular-nums; }
.mke-buybar-colour { font-size: .78rem; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mke-buybar.is-ready .mke-buybar-colour { color: var(--olive-dark); }
.mke-buybar .mke-btn { flex: 0 0 auto; padding: .8rem 1.4rem; min-height: 46px; font-size: .95rem; }
body.has-buybar .mke-footer-legal { padding-bottom: 6.5rem; }
@media (prefers-reduced-motion: reduce) { .mke-buybar { transition: none; } }
