/* Mezzaluna — Cart + Checkout
   Restrained resort-luxury system: warm cream canvas, warm-white surfaces,
   near-black transactional CTAs, gold identity details, restrained resort-teal accent. */

body.woocommerce-cart,
body.woocommerce-checkout {
	--mz-bg: #fdfaf5;
	--mz-surface: #fffdfa;
	--mz-surface-soft: #f7f1e9;
	--mz-ink: #1c1814;
	--mz-muted: #746c64;
	--mz-line: #e5dbcf;
	--mz-gold: #d4a850;
	--mz-resort: #0f6f70;
	--mz-resort-soft: #eaf4f1;
	background: var(--mz-bg);
	color: var(--mz-ink);
}

/* ---------- Page rhythm ---------- */
body.woocommerce-cart .main-title-section-wrapper,
body.woocommerce-checkout .main-title-section-wrapper {
	min-height: 0 !important;
	height: auto !important;
	margin: 0 !important;
	padding: 34px 0 14px !important;
	background: transparent !important;
}
body.woocommerce-cart .main-title-section-wrapper .container,
body.woocommerce-checkout .main-title-section-wrapper .container,
body.woocommerce-cart .main-title-section,
body.woocommerce-checkout .main-title-section {
	min-height: 0 !important;
	height: auto !important;
	margin: 0 !important;
	padding: 0 !important;
}
body.woocommerce-cart .main-title-section h1,
body.woocommerce-checkout .main-title-section h1 {
	margin: 0 0 6px !important;
	font-family: "Cormorant Garamond", serif;
	font-size: clamp(2.55rem, 4vw, 3.6rem) !important;
	font-weight: 400;
	line-height: 1;
}
body.woocommerce-cart .breadcrumb,
body.woocommerce-checkout .breadcrumb {
	font-size: .76rem;
}
body.woocommerce-cart #main,
body.woocommerce-checkout #main {
	padding-top: 18px !important;
	padding-bottom: 72px !important;
}
body.woocommerce-cart #primary,
body.woocommerce-checkout #primary,
body.woocommerce-cart .content-full-width,
body.woocommerce-checkout .content-full-width {
	width: 100% !important;
	margin-top: 0 !important;
	padding-top: 0 !important;
}
body.woocommerce-cart .woocommerce,
body.woocommerce-checkout .woocommerce {
	width: min(1180px, calc(100% - 44px));
	max-width: none !important;
	margin: 0 auto !important;
	color: var(--mz-ink);
}

/* ---------- Shared form / button language ---------- */
body.woocommerce-cart input,
body.woocommerce-cart select,
body.woocommerce-checkout input,
body.woocommerce-checkout select,
body.woocommerce-checkout textarea,
body.woocommerce-checkout .select2-container .select2-selection {
	border: 1px solid #d8cec2 !important;
	border-radius: 0 !important;
	background: #fff !important;
	box-shadow: none !important;
	color: var(--mz-ink) !important;
}
body.woocommerce-cart input:focus,
body.woocommerce-checkout input:focus,
body.woocommerce-checkout select:focus,
body.woocommerce-checkout textarea:focus,
body.woocommerce-checkout .select2-container--focus .select2-selection {
	border-color: var(--mz-resort) !important;
	outline: none !important;
}
body.woocommerce-cart .button,
body.woocommerce-checkout .button {
	border-radius: 0 !important;
}
body.woocommerce-cart .woocommerce-notices-wrapper,
body.woocommerce-checkout .woocommerce-notices-wrapper {
	margin-bottom: 18px;
}

/* ============================================================
   CART
   ============================================================ */
body.woocommerce-cart .woocommerce {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 350px;
	gap: 30px;
	align-items: start;
}
body.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper,
body.woocommerce-cart .woocommerce > .woocommerce-message,
body.woocommerce-cart .woocommerce > .woocommerce-error,
body.woocommerce-cart .woocommerce > .woocommerce-info {
	grid-column: 1 / -1;
}

body.woocommerce-cart .mz-cart-form {
	grid-column: 1;
	min-width: 0;
	margin: 0;
}
body.woocommerce-cart .mz-cart-list {
	overflow: hidden;
	border: 1px solid var(--mz-line) !important;
	background: var(--mz-surface) !important;
}
body.woocommerce-cart .mz-cart-item {
	display: grid;
	grid-template-columns: 122px minmax(0, 1fr);
	gap: 24px;
	padding: 24px;
	border-bottom: 1px solid var(--mz-line);
}
body.woocommerce-cart .mz-cart-item:last-child {
	border-bottom: 0;
}
body.woocommerce-cart .mz-cart-item-media {
	align-self: start;
	padding: 8px;
	background: var(--mz-resort-soft);
}
body.woocommerce-cart .mz-cart-item-media a,
body.woocommerce-cart .mz-cart-item-media img {
	display: block;
	width: 100%;
}
body.woocommerce-cart .mz-cart-item-media img {
	height: auto;
}
body.woocommerce-cart .mz-cart-item-heading {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 18px;
}
body.woocommerce-cart .mz-cart-item-title {
	max-width: 470px;
	color: var(--mz-ink);
	font-family: "Cormorant Garamond", serif;
	font-size: 1.48rem;
	font-weight: 500;
	line-height: 1.08;
}
body.woocommerce-cart .mz-cart-item-title:hover {
	color: var(--mz-resort);
}
body.woocommerce-cart .mz-cart-remove {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	flex: 0 0 30px;
	width: 30px !important;
	height: 30px !important;
	min-width: 30px;
	margin: 0 !important;
	padding: 0 !important;
	border: 1px solid #d8cec2 !important;
	border-radius: 50% !important;
	background: transparent !important;
	color: var(--mz-muted) !important;
	font-size: 17px !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	text-decoration: none !important;
}
body.woocommerce-cart .mz-cart-remove:hover {
	border-color: var(--mz-resort) !important;
	background: var(--mz-resort-soft) !important;
	color: var(--mz-resort) !important;
}
body.woocommerce-cart .mz-cart-item-meta {
	margin-top: 9px;
	color: var(--mz-muted);
	font-size: .79rem;
	line-height: 1.5;
}
body.woocommerce-cart .mz-cart-item-meta .variation {
	display: flex;
	flex-wrap: wrap;
	gap: 5px 16px;
	margin: 0 !important;
}
body.woocommerce-cart .mz-cart-item-meta .variation dt,
body.woocommerce-cart .mz-cart-item-meta .variation dd {
	float: none !important;
	margin: 0 !important;
	padding: 0 !important;
}
body.woocommerce-cart .mz-cart-item-meta .variation dt {
	color: var(--mz-ink);
	font-weight: 600;
}
body.woocommerce-cart .mz-cart-item-controls {
	display: grid;
	grid-template-columns: minmax(120px, 1fr) 86px minmax(120px, auto);
	gap: 22px;
	align-items: end;
	margin-top: 24px;
	padding-top: 17px;
	border-top: 1px solid #eee7de;
}
body.woocommerce-cart .mz-cart-control-label {
	display: block;
	margin-bottom: 5px;
	color: var(--mz-muted);
	font-size: .64rem;
	font-weight: 600;
	letter-spacing: .09em;
	text-transform: uppercase;
}
body.woocommerce-cart .mz-cart-item-price strong,
body.woocommerce-cart .mz-cart-item-subtotal strong {
	color: var(--mz-ink);
	font-size: .92rem;
	font-weight: 500;
}
body.woocommerce-cart .mz-cart-item-subtotal {
	text-align: right;
}
body.woocommerce-cart .mz-cart-item-qty .quantity {
	width: 72px !important;
	margin: 0 !important;
}
body.woocommerce-cart .mz-cart-item-qty input.qty {
	width: 72px !important;
	height: 40px !important;
	min-height: 40px !important;
	padding: 6px 8px !important;
	text-align: center;
	-moz-appearance: textfield;
}
body.woocommerce-cart .mz-cart-item-qty input.qty::-webkit-outer-spin-button,
body.woocommerce-cart .mz-cart-item-qty input.qty::-webkit-inner-spin-button {
	margin: 0;
	-webkit-appearance: none;
}

/* Cart utility row */
body.woocommerce-cart .mz-cart-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	margin-top: 12px;
	padding: 14px 16px;
	border: 1px solid var(--mz-line) !important;
	background: var(--mz-surface) !important;
}
body.woocommerce-cart .mz-promo summary {
	cursor: pointer;
	list-style: none;
	color: var(--mz-resort);
	font-size: .78rem;
	font-weight: 600;
	letter-spacing: .025em;
}
body.woocommerce-cart .mz-promo summary::-webkit-details-marker {
	display: none;
}
body.woocommerce-cart .mz-promo summary::after {
	content: " +";
	color: var(--mz-gold);
}
body.woocommerce-cart .mz-promo[open] summary::after {
	content: " −";
}
body.woocommerce-cart .mz-promo-fields {
	display: grid;
	grid-template-columns: minmax(190px, 1fr) auto;
	gap: 8px;
	margin-top: 12px;
	min-width: 360px;
}
body.woocommerce-cart .mz-promo-fields #coupon_code,
body.woocommerce-cart .mz-promo-fields .button,
body.woocommerce-cart .mz-update-cart {
	min-height: 40px;
}
body.woocommerce-cart .mz-promo-fields #coupon_code {
	padding: 8px 11px !important;
}
body.woocommerce-cart .mz-promo-fields .button,
body.woocommerce-cart .mz-update-cart {
	padding: 8px 16px !important;
	border: 1px solid var(--mz-ink) !important;
	background: transparent !important;
	color: var(--mz-ink) !important;
	font-size: .72rem !important;
	font-weight: 600 !important;
	letter-spacing: .05em;
	text-transform: uppercase;
}
body.woocommerce-cart .mz-promo-fields .button:hover,
body.woocommerce-cart .mz-update-cart:hover {
	background: var(--mz-ink) !important;
	color: #fff !important;
}

/* Cart totals */
body.woocommerce-cart .mz-cart-summary {
	grid-column: 2;
	grid-row: 1;
	position: sticky;
	top: 92px;
	min-width: 0;
}
body.woocommerce-cart .mz-cart-summary .cart_totals {
	position: relative;
	width: 100% !important;
	margin: 0 !important;
	padding: 26px !important;
	border: 1px solid var(--mz-line) !important;
	background: var(--mz-surface) !important;
}
body.woocommerce-cart .mz-cart-summary .cart_totals::before {
	content: "";
	position: absolute;
	top: -1px;
	left: -1px;
	right: -1px;
	height: 3px;
	background: linear-gradient(90deg, var(--mz-gold), var(--mz-resort));
}
body.woocommerce-cart .mz-cart-summary .cart_totals h2 {
	margin: 0 0 16px;
	font-family: "Cormorant Garamond", serif;
	font-size: 1.78rem;
	font-weight: 500;
}
body.woocommerce-cart .mz-cart-summary .cart_totals table {
	margin: 0 0 20px !important;
	border: 0 !important;
	background: transparent !important;
}
body.woocommerce-cart .mz-cart-summary .cart_totals th,
body.woocommerce-cart .mz-cart-summary .cart_totals td {
	padding: 13px 0 !important;
	border: 0 !important;
	border-bottom: 1px solid var(--mz-line) !important;
	vertical-align: top;
}
body.woocommerce-cart .mz-cart-summary .cart_totals th {
	width: 34%;
	color: var(--mz-ink);
	font-weight: 500;
}
body.woocommerce-cart .mz-cart-summary .cart_totals td {
	width: 66%;
	color: var(--mz-ink);
	text-align: right;
}
body.woocommerce-cart .mz-cart-summary .woocommerce-shipping-destination,
body.woocommerce-cart .mz-cart-summary .woocommerce-shipping-methods {
	margin: 0 !important;
	color: var(--mz-muted);
	font-size: .8rem;
	line-height: 1.45;
}
body.woocommerce-cart .mz-cart-summary .shipping-calculator-button {
	display: inline-block;
	margin-top: 7px !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	color: var(--mz-resort) !important;
	font-size: .78rem;
	text-decoration: underline;
	text-underline-offset: 3px;
}
body.woocommerce-cart .mz-cart-summary .order-total th,
body.woocommerce-cart .mz-cart-summary .order-total td {
	padding-top: 16px !important;
	font-size: 1rem;
	font-weight: 700;
}
body.woocommerce-cart .mz-cart-summary .wc-proceed-to-checkout {
	padding: 0 !important;
}
body.woocommerce-cart .mz-cart-summary .checkout-button {
	display: block !important;
	width: 100%;
	min-height: 52px;
	margin: 0 !important;
	padding: 14px 18px !important;
	border: 1px solid var(--mz-ink) !important;
	background: var(--mz-ink) !important;
	color: #fff !important;
	font-size: .75rem !important;
	font-weight: 600 !important;
	letter-spacing: .09em;
	text-align: center;
	text-transform: uppercase;
}
body.woocommerce-cart .mz-cart-summary .checkout-button:hover {
	border-color: var(--mz-resort) !important;
	background: var(--mz-resort) !important;
}

/* ============================================================
   CHECKOUT
   ============================================================ */
body.woocommerce-checkout .woocommerce-checkout-header,
body.woocommerce-checkout .woocommerce-form-coupon-toggle {
	width: min(1180px, calc(100% - 44px));
	margin-left: auto;
	margin-right: auto;
}
body.woocommerce-checkout .woocommerce-form-coupon-toggle {
	margin-bottom: 14px;
}
body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
	padding: 12px 0 !important;
	border: 0 !important;
	border-top: 1px solid var(--mz-line) !important;
	border-bottom: 1px solid var(--mz-line) !important;
	background: transparent !important;
	color: var(--mz-muted);
	font-size: .8rem;
}
body.woocommerce-checkout .woocommerce-form-coupon-toggle a {
	color: var(--mz-resort);
	font-weight: 600;
}
body.woocommerce-checkout form.checkout_coupon {
	width: min(560px, 100%);
	margin: 0 0 18px !important;
	padding: 16px !important;
	border: 1px solid var(--mz-line) !important;
	background: var(--mz-surface) !important;
}
body.woocommerce-checkout .mz-checkout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 420px;
	gap: 32px;
	align-items: start;
	width: min(1180px, calc(100% - 44px));
	margin: 0 auto;
}
body.woocommerce-checkout .mz-checkout-details,
body.woocommerce-checkout .mz-order-summary {
	border: 1px solid var(--mz-line) !important;
	background: var(--mz-surface) !important;
}
body.woocommerce-checkout .mz-checkout-details {
	grid-column: 1;
	padding: 26px !important;
}
body.woocommerce-checkout .mz-checkout-details .col-1,
body.woocommerce-checkout .mz-checkout-details .col-2 {
	float: none !important;
	width: 100% !important;
}
body.woocommerce-checkout .mz-checkout-details .col-2 {
	margin-top: 18px;
	padding-top: 18px;
	border-top: 1px solid var(--mz-line);
}
body.woocommerce-checkout .woocommerce-billing-fields > h3,
body.woocommerce-checkout .woocommerce-shipping-fields h3,
body.woocommerce-checkout .woocommerce-additional-fields > h3 {
	margin: 0 0 15px;
	font-family: "Cormorant Garamond", serif;
	font-weight: 500;
}
body.woocommerce-checkout .woocommerce-billing-fields > h3 {
	font-size: 1.65rem;
}
body.woocommerce-checkout .woocommerce-shipping-fields h3,
body.woocommerce-checkout .woocommerce-additional-fields > h3 {
	font-size: 1.12rem;
}
body.woocommerce-checkout .form-row {
	margin-bottom: 11px !important;
}
body.woocommerce-checkout .form-row label {
	margin-bottom: 5px;
	color: var(--mz-ink);
	font-size: .7rem;
	font-weight: 600;
	letter-spacing: .035em;
}
body.woocommerce-checkout .form-row input.input-text,
body.woocommerce-checkout .form-row select,
body.woocommerce-checkout .select2-container .select2-selection {
	min-height: 43px;
	padding: 9px 11px !important;
}
body.woocommerce-checkout .select2-container .select2-selection__rendered {
	line-height: 41px !important;
	padding-left: 0 !important;
}
body.woocommerce-checkout .select2-container .select2-selection__arrow {
	height: 41px !important;
}
body.woocommerce-checkout .woocommerce-additional-fields {
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px solid var(--mz-line);
}
body.woocommerce-checkout .woocommerce-additional-fields textarea {
	min-height: 76px !important;
	padding: 10px 11px !important;
}

/* Checkout order summary */
body.woocommerce-checkout .mz-order-summary {
	position: sticky;
	top: 92px;
	padding: 24px !important;
}
body.woocommerce-checkout .mz-order-summary::before {
	content: "";
	position: absolute;
	top: -1px;
	left: -1px;
	right: -1px;
	height: 3px;
	background: linear-gradient(90deg, var(--mz-gold), var(--mz-resort));
}
body.woocommerce-checkout .mz-order-summary > h3 {
	margin: 0 0 17px;
	font-family: "Cormorant Garamond", serif;
	font-size: 1.72rem;
	font-weight: 500;
}
body.woocommerce-checkout .mz-order-table {
	margin: 0 !important;
	border: 0 !important;
	background: transparent !important;
}
body.woocommerce-checkout .mz-order-table thead {
	display: none;
}
body.woocommerce-checkout .mz-order-table .cart_item td {
	padding: 15px 0 !important;
	border: 0 !important;
	border-bottom: 1px solid var(--mz-line) !important;
}
body.woocommerce-checkout .mz-order-item {
	display: grid;
	grid-template-columns: 78px minmax(0, 1fr) auto;
	gap: 14px;
	align-items: start;
}
body.woocommerce-checkout .mz-order-item-media {
	padding: 5px;
	background: var(--mz-resort-soft);
}
body.woocommerce-checkout .mz-order-item-media img {
	display: block;
	width: 100% !important;
	height: auto;
}
body.woocommerce-checkout .mz-order-item-heading {
	display: flex;
	align-items: flex-start;
	gap: 7px;
}
body.woocommerce-checkout .mz-order-item-title {
	font-family: "Cormorant Garamond", serif;
	font-size: 1.03rem;
	line-height: 1.15;
}
body.woocommerce-checkout .mz-order-item-heading .product-quantity {
	flex: 0 0 auto;
	font-size: .7rem;
	font-weight: 600;
}
body.woocommerce-checkout .mz-order-item-meta {
	margin-top: 7px;
	color: var(--mz-muted);
	font-size: .69rem;
	line-height: 1.42;
}
body.woocommerce-checkout .mz-order-item-meta .variation {
	margin: 0 !important;
}
body.woocommerce-checkout .mz-order-item-price {
	padding-top: 1px;
	font-size: .8rem;
	white-space: nowrap;
}
body.woocommerce-checkout .mz-order-table tfoot th,
body.woocommerce-checkout .mz-order-table tfoot td {
	padding: 12px 0 !important;
	border: 0 !important;
	border-bottom: 1px solid var(--mz-line) !important;
}
body.woocommerce-checkout .mz-order-table tfoot td {
	text-align: right;
}
body.woocommerce-checkout .mz-order-table .order-total th,
body.woocommerce-checkout .mz-order-table .order-total td {
	padding-top: 15px !important;
	font-size: 1rem;
	font-weight: 700;
}
body.woocommerce-checkout #payment {
	margin-top: 16px;
	padding-top: 0 !important;
	border: 0 !important;
	background: transparent !important;
}
body.woocommerce-checkout #payment .payment_methods {
	padding: 0 !important;
	border: 0 !important;
}
body.woocommerce-checkout #payment .woocommerce-info,
body.woocommerce-checkout #payment .woocommerce-notice {
	padding: 12px 14px !important;
	border: 0 !important;
	background: var(--mz-surface-soft) !important;
	color: var(--mz-muted);
	font-size: .78rem;
	line-height: 1.45;
}
body.woocommerce-checkout #payment .place-order {
	padding: 16px 0 0 !important;
}
body.woocommerce-checkout #place_order {
	display: block !important;
	width: 100% !important;
	min-height: 54px;
	padding: 14px 18px !important;
	border: 1px solid var(--mz-ink) !important;
	background: var(--mz-ink) !important;
	color: #fff !important;
	font-size: .75rem !important;
	font-weight: 600 !important;
	letter-spacing: .09em;
	text-transform: uppercase;
}
body.woocommerce-checkout #place_order:hover {
	border-color: var(--mz-resort) !important;
	background: var(--mz-resort) !important;
}
body.woocommerce-checkout .woocommerce-privacy-policy-text {
	color: var(--mz-muted);
	font-size: .75rem;
	line-height: 1.55;
}

/* Footer transition: identity stays black, but don't slam into it. */
body.woocommerce-cart #footer,
body.woocommerce-checkout #footer {
	border-top: 3px solid var(--mz-gold);
}

/* ---------- Tablet ---------- */
@media (max-width: 1040px) {
	body.woocommerce-cart .woocommerce,
	body.woocommerce-checkout .mz-checkout {
		grid-template-columns: 1fr;
		width: min(760px, calc(100% - 34px));
	}
	body.woocommerce-cart .mz-cart-summary,
	body.woocommerce-checkout .mz-order-summary {
		grid-column: 1;
		grid-row: auto;
		position: static;
	}
	body.woocommerce-checkout .woocommerce-checkout-header,
	body.woocommerce-checkout .woocommerce-form-coupon-toggle {
		width: min(760px, calc(100% - 34px));
	}
}

/* ---------- Mobile ---------- */
@media (max-width: 640px) {
	body.woocommerce-cart .main-title-section-wrapper,
	body.woocommerce-checkout .main-title-section-wrapper {
		padding: 24px 0 12px !important;
	}
	body.woocommerce-cart #main,
	body.woocommerce-checkout #main {
		padding-top: 10px !important;
		padding-bottom: 46px !important;
	}
	body.woocommerce-cart .woocommerce,
	body.woocommerce-checkout .woocommerce,
	body.woocommerce-checkout .mz-checkout,
	body.woocommerce-checkout .woocommerce-checkout-header,
	body.woocommerce-checkout .woocommerce-form-coupon-toggle {
		width: calc(100% - 24px);
	}
	body.woocommerce-cart .mz-cart-item {
		grid-template-columns: 92px minmax(0, 1fr);
		gap: 14px;
		padding: 15px;
	}
	body.woocommerce-cart .mz-cart-item-title {
		font-size: 1.2rem;
	}
	body.woocommerce-cart .mz-cart-item-controls {
		grid-template-columns: 1fr 72px;
		gap: 12px;
		margin-top: 17px;
	}
	body.woocommerce-cart .mz-cart-item-subtotal {
		grid-column: 1 / -1;
		text-align: left;
	}
	body.woocommerce-cart .mz-cart-actions {
		flex-direction: column;
		align-items: stretch;
	}
	body.woocommerce-cart .mz-promo-fields {
		min-width: 0;
		grid-template-columns: 1fr;
	}
	body.woocommerce-cart .mz-update-cart {
		width: 100%;
	}
	body.woocommerce-cart .mz-cart-summary .cart_totals,
	body.woocommerce-checkout .mz-checkout-details,
	body.woocommerce-checkout .mz-order-summary {
		padding: 18px !important;
	}
	body.woocommerce-checkout .mz-order-item {
		grid-template-columns: 62px minmax(0, 1fr);
	}
	body.woocommerce-checkout .mz-order-item-price {
		grid-column: 2;
		padding-top: 7px;
	}
}
