/* Shared commerce palette; checkout layout rules remain scoped to .wl-checkout. */
body.wl-commerce {
	--wl-ink: #30282b;
	--wl-muted: #70666a;
	--wl-wine: #722b43;
	--wl-wine-dark: #562035;
	--wl-line: #e5deda;
	--wl-paper: #fff;
	--wl-canvas: #faf7f4;
}

.wl-commerce #main {
	background: var(--wl-canvas);
	color: var(--wl-ink);
}

.wl-commerce #content > .woocommerce {
	max-width: 1160px;
	margin-inline: auto;
}

/* Hide The7's page title and progress banner across the purchase flow. */
.wl-commerce #page .page-title,
.wl-commerce #page .checkout-page-title { display: none; }

.wl-checkout .wl-checkout-intro {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 12px 24px;
	margin-bottom: 12px;
	font-size: 14px;
}

.wl-checkout .wl-checkout-intro p {
	margin: 0;
	color: var(--wl-muted);
}

.wl-checkout .wl-checkout-back {
	display: inline-flex;
	align-items: center;
	gap: 9px;
	min-height: 44px;
	color: var(--wl-wine);
	font-weight: 600;
	text-decoration: none;
}

.wl-checkout .wl-checkout-back:hover { text-decoration: underline; }

.wl-checkout .wl-checkout-status {
	min-height: 24px;
	margin: 0 0 20px;
	color: var(--wl-muted);
	font-size: 13px;
	line-height: 1.6;
}

.wl-checkout .wl-checkout-status.is-warning { color: #9a341e; }

.wl-checkout #page .wc-coupon-wrap {
	margin-bottom: 28px;
	padding: clamp(22px, 1vw, 36px);
	border: 1px solid var(--wl-line);
	border-radius: 16px;
	background: var(--wl-paper);
	box-shadow: 0 4px 24px rgb(48 40 43 / 3%);
}
.wl-checkout #page .wc-coupon-wrap .woocommerce-info {
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--wl-ink);
	font-size: 14px;
	line-height: 1.7;
}
.wl-checkout #page .wc-coupon-wrap .showcoupon { color: var(--wl-wine); text-decoration: underline; }
.wl-checkout #page .wc-coupon-wrap form.checkout_coupon { margin: 0; padding: 0; border: 0; }
.wl-checkout #page .wc-coupon-wrap .form-coupon-wrap {
	display: flex;
	align-items: stretch;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 20px;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}
.wl-checkout #page .wc-coupon-wrap .coupon { flex: 1 1 220px; min-width: 0; margin: 0; padding: 0; }
.wl-checkout #page .wc-coupon-wrap #coupon_code {
	width: 100%;
	min-height: 48px;
	height: auto;
	margin: 0;
	padding: 11px 14px;
	box-sizing: border-box;
	border: 1px solid #cfc5c3;
	border-radius: 8px;
	background: var(--wl-paper);
	color: var(--wl-ink);
	box-shadow: none;
	font-size: 16px;
	line-height: 24px;
}
.wl-checkout #page .wc-coupon-wrap #coupon_code::placeholder { color: var(--wl-muted); opacity: 1; }
.wl-checkout #page .wc-coupon-wrap #coupon_code:focus {
	border-color: var(--wl-wine);
	outline: 3px solid rgb(114 43 67 / 15%);
	outline-offset: 1px;
}
.wl-checkout #page .wc-coupon-wrap button[name="apply_coupon"] {
	min-height: 48px;
	margin: 0;
	padding: 11px 20px;
	border: 1px solid var(--wl-wine);
	border-radius: 8px;
	background: var(--wl-wine);
	color: #fff;
	box-shadow: none;
	font-size: 16px;
	font-weight: 600;
	line-height: 24px;
	text-transform: none;
	white-space: normal;
}
.wl-checkout #page .wc-coupon-wrap button[name="apply_coupon"]:hover { background: var(--wl-wine-dark); border-color: var(--wl-wine-dark); }

.wl-checkout form.the7-woocommerce-checkout {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
	align-items: start;
	gap: 28px;
	margin: 0;
}

.wl-checkout form.the7-woocommerce-checkout > * {
	grid-column: 1 / -1;
	min-width: 0;
}

.wl-checkout form.the7-woocommerce-checkout #customer_details,
.wl-checkout form.the7-woocommerce-checkout .wc-order-review {
	width: auto;
	min-width: 0;
	margin: 0;
	padding: clamp(22px, 1vw, 36px);
	background: var(--wl-paper);
	border: 1px solid var(--wl-line);
	border-radius: 16px;
	box-shadow: 0 4px 24px rgb(48 40 43 / 3%);
	box-sizing: border-box;
}

.wl-checkout form.the7-woocommerce-checkout #customer_details { grid-column: 1; }
.wl-checkout form.the7-woocommerce-checkout .wc-order-review {
	grid-column: 2;
	border-top: 3px solid var(--wl-wine);
}

.wl-checkout #customer_details h3,
.wl-checkout #order_review_heading,
.wl-checkout #order_review > h3 {
	margin: 0 0 24px;
	color: var(--wl-ink);
	font-size: 22px;
	line-height: 1.35;
	font-weight: 600;
	letter-spacing: -.35px;
	text-transform: none;
}

.wl-checkout form.checkout .form-row {
	box-sizing: border-box;
	margin-bottom: 0;
	padding: 0 0 20px;
}

/* Country changes retain WooCommerce's field classes, order and visibility. */
.wl-checkout #customer_details .woocommerce-billing-fields__field-wrapper,
.wl-checkout #customer_details .woocommerce-shipping-fields__field-wrapper {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 16px;
}

.wl-checkout #customer_details .woocommerce-billing-fields__field-wrapper > *,
.wl-checkout #customer_details .woocommerce-shipping-fields__field-wrapper > * {
	grid-column: 1 / -1;
	min-width: 0;
}

.wl-checkout #customer_details .woocommerce-billing-fields__field-wrapper > .form-row,
.wl-checkout #customer_details .woocommerce-shipping-fields__field-wrapper > .form-row {
	float: none;
	clear: none;
	width: 100%;
	margin-inline: 0;
	padding-inline: 0;
}

/* IDs also cover the default form-row-wide classes and mobile theme rules. */
.wl-checkout #customer_details #billing_postcode_field,
.wl-checkout #customer_details #billing_city_field,
.wl-checkout #customer_details #shipping_postcode_field,
.wl-checkout #customer_details #shipping_city_field { grid-column: auto / span 1; }

@media (min-width: 541px) {
	.wl-checkout #customer_details .woocommerce-billing-fields__field-wrapper > .form-row-first,
	.wl-checkout #customer_details .woocommerce-billing-fields__field-wrapper > .form-row-last,
	.wl-checkout #customer_details .woocommerce-shipping-fields__field-wrapper > .form-row-first,
	.wl-checkout #customer_details .woocommerce-shipping-fields__field-wrapper > .form-row-last { grid-column: auto / span 1; }
}

.wl-checkout form.checkout .form-row label {
	color: var(--wl-ink);
	font-size: 14px;
	line-height: 1.6;
}

.wl-checkout form.checkout .form-row label:not(.checkbox) {
	display: block;
	margin-bottom: 7px;
	font-weight: 500;
}

.wl-checkout form.checkout .optional { color: var(--wl-muted); font-weight: 400; }
.wl-checkout form.checkout .required { color: var(--wl-wine); }

.wl-checkout form.checkout .form-row input.input-text,
.wl-checkout form.checkout .form-row textarea,
.wl-checkout form.checkout .form-row select,
.wl-checkout form.checkout .select2-container .select2-selection--single {
	width: 100%;
	min-height: 48px;
	margin: 0;
	padding: 11px 14px;
	box-sizing: border-box;
	border: 1px solid #cfc5c3;
	border-radius: 8px;
	background: #fff;
	color: var(--wl-ink);
	box-shadow: none;
	font-size: 16px;
	line-height: 24px;
}

.wl-checkout form.checkout .form-row textarea { min-height: 104px; resize: vertical; }
.wl-checkout form.checkout input::placeholder,
.wl-checkout form.checkout textarea::placeholder { color: var(--wl-muted); opacity: 1; }
.wl-checkout form.checkout .select2-selection__rendered { padding: 0 22px 0 0; color: var(--wl-ink); line-height: 24px; }
.wl-checkout form.checkout .select2-selection__arrow { top: 50%; transform: translateY(-50%); }

.wl-checkout form.checkout input.input-text:focus,
.wl-checkout form.checkout textarea:focus,
.wl-checkout form.checkout select:focus,
.wl-checkout form.checkout .select2-container--focus .select2-selection--single,
.wl-checkout form.checkout .select2-container--open .select2-selection--single {
	border-color: var(--wl-wine);
	outline: 3px solid rgb(114 43 67 / 15%);
	outline-offset: 1px;
}

.wl-commerce a:focus-visible,
.wl-commerce button:focus-visible,
.wl-commerce input[type="checkbox"]:focus-visible,
.wl-commerce input[type="radio"]:focus-visible {
	outline: 3px solid var(--wl-wine);
	outline-offset: 4px;
}

.wl-checkout form.checkout .woocommerce-invalid input.input-text,
.wl-checkout form.checkout .woocommerce-invalid select,
.wl-checkout form.checkout .woocommerce-invalid .select2-selection--single { border-color: #b42318; background: #fffafa; }
.wl-checkout form.checkout .woocommerce-invalid label { color: #a12118; }

.wl-checkout form.checkout input[type="checkbox"],
.wl-checkout form.checkout input[type="radio"] { accent-color: var(--wl-wine); }

.wl-checkout form.checkout .woocommerce-shipping-fields {
	margin: 12px 0 24px;
	padding-top: 24px;
	border-top: 1px solid var(--wl-line);
}
.wl-checkout #customer_details #ship-to-different-address { margin-bottom: 0; font-size: 15px; letter-spacing: 0; }
.wl-checkout form.checkout #order_comments_field { margin-top: 0; }
.wl-checkout form.checkout #billing_address_1_field { padding-bottom: 12px; }
.wl-checkout .woocommerce-additional-fields > h3 { font-size: 18px; }

.wl-checkout #page form.checkout .woocommerce-checkout-review-order-table {
	display: table;
	width: 100%;
	margin: 0 0 28px;
	border: 0;
	border-collapse: collapse;
	background: var(--wl-paper);
	color: var(--wl-ink);
	font-size: 14px;
}
.wl-checkout #page form.checkout .woocommerce-checkout-review-order-table thead { display: table-header-group; }
.wl-checkout #page form.checkout .woocommerce-checkout-review-order-table tbody { display: table-row-group; }
.wl-checkout #page form.checkout .woocommerce-checkout-review-order-table tfoot { display: table-footer-group; }
.wl-checkout #page form.checkout .woocommerce-checkout-review-order-table tr {
	display: table-row;
	padding: 0;
	border-color: var(--wl-line);
}
.wl-checkout #page form.checkout .woocommerce-checkout-review-order-table th,
.wl-checkout #page form.checkout .woocommerce-checkout-review-order-table td {
	display: table-cell;
	float: none;
	width: auto;
	padding: 15px 0;
	vertical-align: top;
	color: var(--wl-ink);
	font-weight: 400;
}
.wl-checkout #page form.checkout .woocommerce-checkout-review-order-table th:first-child,
.wl-checkout #page form.checkout .woocommerce-checkout-review-order-table td:first-child { padding-inline-end: 16px; text-align: start; }
.wl-checkout #page form.checkout .woocommerce-checkout-review-order-table th:last-child,
.wl-checkout #page form.checkout .woocommerce-checkout-review-order-table td:last-child { text-align: end; }
.wl-checkout #page form.checkout .woocommerce-checkout-review-order-table thead th { color: var(--wl-muted); font-size: 12px; }
.wl-checkout #page form.checkout .woocommerce-checkout-review-order-table .product-name { overflow-wrap: anywhere; line-height: 1.6; }
.wl-checkout #page form.checkout .woocommerce-checkout-review-order-table .amount,
.wl-checkout #page form.checkout .woocommerce-checkout-review-order-table .product-quantity { color: var(--wl-ink); white-space: nowrap; }
.wl-checkout #page form.checkout .woocommerce-checkout-review-order-table .order-total {
	padding-block: 20px;
	border-top: 2px solid var(--wl-line);
	font-size: 20px;
}
.wl-checkout #page form.checkout .woocommerce-checkout-review-order-table .order-total th,
.wl-checkout #page form.checkout .woocommerce-checkout-review-order-table .order-total td { padding-block: 20px; font-weight: 600; }
.wl-checkout form.checkout #shipping_method { margin: 0; padding: 0; list-style: none; font-size: 13px; }
.wl-checkout form.checkout #shipping_method input { margin-inline-end: 6px; }
.wl-checkout #page form.checkout .woocommerce-checkout-review-order-table small,
.wl-checkout #page form.checkout .woocommerce-checkout-review-order-table .product-name p { font-size: 12px; color: var(--wl-muted); line-height: 1.6; }
.wl-checkout #page form.checkout .woocommerce-checkout-review-order-table .order-total small { display: block; font-size: 12px; font-weight: 400; }

.wl-checkout #payment { background: transparent; border-radius: 0; }
.wl-checkout #page #payment ul.payment_methods {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 12px;
	margin: 0 0 24px;
	padding: 0;
	border: 0;
}
.wl-checkout #page #payment ul.payment_methods > li {
	min-width: 0;
	margin: 0;
	padding: 15px;
	border: 1px solid var(--wl-line);
	border-radius: 9px;
	background: #fff;
	list-style: none;
}
.wl-checkout #page #payment ul.payment_methods > li:has(> input:checked) { border-color: var(--wl-wine); background: #fcf8f9; }
.wl-checkout #payment ul.payment_methods > li > label { color: var(--wl-ink); font-size: 14px; font-weight: 600; cursor: pointer; }
.wl-checkout #payment ul.payment_methods > li > input { margin-inline-end: 8px; }
.wl-checkout #payment div.payment_box {
	width: auto;
	margin: 12px 0 0;
	padding: 14px 0 0;
	border-top: 1px solid var(--wl-line);
	border-radius: 0;
	background: transparent;
	color: var(--wl-muted);
	font-size: 13px;
	line-height: 1.7;
}
.wl-checkout #payment div.payment_box::before { content: none; }
.wl-checkout #payment div.payment_box p:last-child { margin-bottom: 0; }
.wl-checkout .woocommerce-terms-and-conditions-wrapper,
.wl-checkout .wc-gzd-checkbox-placeholder,
.wl-checkout .woocommerce-privacy-policy-text { font-size: 13px; line-height: 1.7; color: var(--wl-muted); }
.wl-checkout form.checkout .place-order { padding: 0; }
.wl-checkout form.checkout #place_order {
	display: block;
	float: none;
	width: 100%;
	min-height: 54px;
	margin: 18px 0 0;
	padding: 15px 20px;
	border: 1px solid var(--wl-wine);
	border-radius: 9px;
	background: var(--wl-wine);
	color: #fff;
	box-shadow: none;
	font-size: 16px;
	font-weight: 600;
	line-height: 1.5;
	text-transform: none;
	white-space: normal;
}
.wl-checkout form.checkout #place_order:hover { background: var(--wl-wine-dark); border-color: var(--wl-wine-dark); }
.wl-checkout form.checkout #place_order:disabled { opacity: .6; cursor: wait; }
.wl-checkout form.checkout.processing { cursor: progress; }

.wl-commerce .woocommerce-info,
.wl-commerce .woocommerce-message,
.wl-commerce .woocommerce-error,
.wl-commerce .wc-block-components-notice-banner {
	box-sizing: border-box;
	border-radius: 9px;
	box-shadow: none;
	font-size: 14px;
	line-height: 1.7;
}
.wl-commerce .woocommerce-info { background: #f1ece8; border-color: var(--wl-line); color: var(--wl-ink); }
body.wl-commerce .woocommerce-error { background: #fff5f3; border-color: #b42318; }
/* The7 colors every descendant white; cover all notice markup, including popups outside #page. */
body.wl-commerce .woocommerce-error,
body.wl-commerce .woocommerce-error * { color: #8f2117 !important; }
body.wl-commerce .woocommerce-error .woocommerce-error-text,
body.wl-commerce .woocommerce-error .woocommerce-error-text li { display: block; white-space: normal; }
body.wl-commerce .woocommerce-error a { text-decoration: underline; }
body.wl-commerce .woocommerce-error a:hover,
body.wl-commerce .woocommerce-error a:hover * { color: #65180f !important; }
body.wl-commerce .woocommerce-error::before,
body.wl-commerce .woocommerce-error .close-message::before { background: #8f2117; }
.wl-checkout .woocommerce-NoticeGroup-checkout { scroll-margin-top: 120px; }
.wl-checkout form.checkout .form-row { scroll-margin-top: 120px; }

@media (max-width: 900px) {
	.wl-checkout form.the7-woocommerce-checkout { grid-template-columns: minmax(0, 1fr); gap: 20px; }
	.wl-checkout form.the7-woocommerce-checkout #customer_details,
	.wl-checkout form.the7-woocommerce-checkout .wc-order-review { grid-column: 1 / -1; }
}

@media (max-width: 540px) {
	.wl-checkout #page .wc-coupon-wrap { padding: 22px 18px; border-radius: 12px; }
	.wl-checkout #page .wc-coupon-wrap .coupon,
	.wl-checkout #page .wc-coupon-wrap button[name="apply_coupon"] { flex: 1 1 100%; width: 100%; }
	.wl-checkout #page form.checkout .woocommerce-checkout-review-order-table th,
	.wl-checkout #page form.checkout .woocommerce-checkout-review-order-table td { overflow-wrap: anywhere; }
	.wl-checkout #page form.checkout .woocommerce-checkout-review-order-table .button {
		box-sizing: border-box;
		max-width: 100%;
		white-space: normal;
	}
	.wl-checkout form.the7-woocommerce-checkout #customer_details,
	.wl-checkout form.the7-woocommerce-checkout .wc-order-review { padding: 22px 18px; border-radius: 12px; }
	.wl-checkout form.checkout .form-row-first,
	.wl-checkout form.checkout .form-row-last { float: none; clear: both; width: 100%; }
	.wl-checkout .wl-checkout-intro { display: block; }
	.wl-checkout #customer_details h3,
	.wl-checkout #order_review_heading { font-size: 20px; }
}
