/**
 * Cart / Checkout UX — Phase 6B.3 (brand green palette)
 * Scoped to body.woocommerce-cart and body.woocommerce-checkout only.
 */

/* --------------------------------------------------------------------------
   Design tokens (commerce pages only)
   -------------------------------------------------------------------------- */
body.woocommerce-cart,
body.woocommerce-checkout {
	--vn-commerce-green: var(--vn-color-primary);
	--vn-commerce-green-hover: var(--vn-color-primary-hover);
	--vn-commerce-green-light: #eef5ed;
	--vn-commerce-border: #e5e8e3;
	--vn-commerce-muted: #6b7280;
	--vn-commerce-heading: #1a361a;
	--vn-commerce-card-bg: #ffffff;
	--vn-commerce-review-bg: #f7f8f6;

	--woocommerce: var(--vn-commerce-green);
	--wc-primary: var(--vn-commerce-green);
	--wc-primary-text: #ffffff;
	--wc-highlight: var(--vn-commerce-green);
}

/* --------------------------------------------------------------------------
   Shared commerce page container
   -------------------------------------------------------------------------- */
.vn-commerce-page {
	padding-block: 36px 56px;
	color: #1f2937;
}

.vn-commerce-page__header {
	margin-bottom: 28px;
}

.vn-commerce-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin-bottom: 10px;
	font-size: 14px;
	color: var(--vn-commerce-muted);
}

.vn-commerce-breadcrumb a {
	color: var(--vn-commerce-muted);
	transition: color 0.15s ease;
}

.vn-commerce-breadcrumb a:hover {
	color: var(--vn-commerce-green);
}

.vn-commerce-breadcrumb__sep {
	color: #c4c9c0;
}

.vn-commerce-breadcrumb__current {
	color: var(--vn-commerce-heading);
}

.vn-commerce-page__title {
	margin: 0;
	font-family: var(--font-heading, 'Playfair Display', Georgia, serif);
	font-size: clamp(1.75rem, 3vw, 2.25rem);
	font-weight: 700;
	line-height: 1.2;
	color: var(--vn-commerce-heading);
}

.vn-commerce-page__content {
	width: 100%;
	max-width: none;
}

body.woocommerce-cart .vn-commerce-page__content::after,
body.woocommerce-checkout .vn-commerce-page__content::after {
	content: '';
	display: block;
	clear: both;
}

/* --------------------------------------------------------------------------
   Buttons (scoped layout — colors from buttons.css)
   -------------------------------------------------------------------------- */
body.woocommerce-cart .button,
body.woocommerce-cart button.button,
body.woocommerce-cart input.button,
body.woocommerce-checkout .button,
body.woocommerce-checkout button.button,
body.woocommerce-checkout input.button,
body.woocommerce-checkout #place_order {
	min-height: var(--vn-button-height-md);
	padding: 0 20px;
	line-height: 1.2;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	box-shadow: none;
}

body.woocommerce-cart .button:disabled,
body.woocommerce-checkout .button:disabled,
body.woocommerce-checkout #place_order:disabled {
	opacity: 1;
}

/* --------------------------------------------------------------------------
   Notices
   -------------------------------------------------------------------------- */
body.woocommerce-cart .woocommerce-message,
body.woocommerce-checkout .woocommerce-message {
	background: var(--vn-commerce-green-light);
	border-top-color: var(--vn-commerce-green);
	color: var(--vn-commerce-heading);
	border-radius: 8px;
}

body.woocommerce-cart .woocommerce-error,
body.woocommerce-checkout .woocommerce-error {
	background: #fef2f2;
	border-top-color: #dc2626;
	color: #991b1b;
	border-radius: 8px;
}

body.woocommerce-cart .woocommerce-info,
body.woocommerce-checkout .woocommerce-info {
	background: #f0f4ef;
	border-top-color: #94a894;
	color: #425044;
	border-radius: 8px;
}

/* --------------------------------------------------------------------------
   CART — table
   -------------------------------------------------------------------------- */
body.woocommerce-cart table.shop_table {
	width: 100%;
	border: 1px solid var(--vn-commerce-border);
	border-radius: 12px;
	border-collapse: separate;
	overflow: hidden;
}

body.woocommerce-cart table.shop_table th {
	background: var(--vn-commerce-review-bg);
	color: var(--vn-commerce-heading);
	font-weight: 600;
	font-size: 14px;
	padding: 14px 16px;
	border-color: var(--vn-commerce-border);
}

body.woocommerce-cart table.shop_table td {
	padding: 16px;
	border-color: #eef2ee;
	vertical-align: middle;
}

body.woocommerce-cart .product-thumbnail img {
	width: 78px;
	height: 78px;
	object-fit: cover;
	border-radius: 8px;
}

body.woocommerce-cart .product-name a {
	color: var(--vn-commerce-heading);
	font-weight: 600;
}

body.woocommerce-cart a.remove {
	color: #b91c1c !important;
	font-size: 22px;
	line-height: 1;
	font-weight: 700;
}

/* Quantity stepper */
body.woocommerce-cart .vn-qty-control {
	display: inline-flex;
	align-items: stretch;
	border: 1px solid #d1d5db;
	border-radius: 8px;
	overflow: hidden;
	background: #fff;
}

body.woocommerce-cart .vn-qty-control .vn-qty-btn {
	width: 40px;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--vn-commerce-review-bg);
	color: var(--vn-commerce-heading);
	font-size: 18px;
	font-weight: 600;
	border: 0;
	padding: 0;
	cursor: pointer;
	transition: background 0.15s ease;
}

body.woocommerce-cart .vn-qty-control .vn-qty-btn:hover {
	background: var(--vn-commerce-green-light);
}

body.woocommerce-cart .vn-qty-control .vn-qty-btn:disabled {
	opacity: 0.4;
	cursor: not-allowed;
}

body.woocommerce-cart .vn-qty-control .qty {
	width: 52px !important;
	min-height: 44px !important;
	border: 0 !important;
	border-left: 1px solid #e5e7eb !important;
	border-right: 1px solid #e5e7eb !important;
	border-radius: 0 !important;
	text-align: center;
	padding: 0 !important;
	margin: 0 !important;
	-moz-appearance: textfield;
}

body.woocommerce-cart .vn-qty-control .qty::-webkit-outer-spin-button,
body.woocommerce-cart .vn-qty-control .qty::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* Cart actions row */
body.woocommerce-cart td.actions {
	padding: 20px 16px !important;
	background: var(--vn-commerce-review-bg);
}

body.woocommerce-cart .vn-cart-actions-row {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	justify-content: space-between;
	gap: 12px;
}

body.woocommerce-cart .coupon {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 10px;
	float: none !important;
	margin: 0;
}

body.woocommerce-cart .coupon .input-text {
	width: min(100%, 280px);
	min-height: 46px;
	padding: 10px 14px;
	border: 1px solid #d1d5db;
	border-radius: 8px;
	font-size: 15px;
}

body.woocommerce-cart .vn-cart-update-button {
	margin-left: auto;
	min-width: 180px;
}

/* Cart collaterals / totals */
body.woocommerce-cart .cart-collaterals {
	width: 100%;
	float: none !important;
	margin-top: 28px;
	display: flex;
	justify-content: flex-end;
	clear: both;
}

body.woocommerce-cart .cart-collaterals::after {
	display: none;
}

body.woocommerce-cart .cart_totals {
	float: none !important;
	width: min(100%, 520px);
	background: var(--vn-commerce-card-bg);
	border: 1px solid var(--vn-commerce-border);
	border-radius: 12px;
	padding: 22px 24px;
}

body.woocommerce-cart .cart_totals h2 {
	margin: 0 0 16px;
	font-size: 1.2rem;
	color: var(--vn-commerce-heading);
}

body.woocommerce-cart .cart_totals table {
	border: 0;
}

body.woocommerce-cart .cart_totals table th,
body.woocommerce-cart .cart_totals table td {
	padding: 10px 0;
	border: 0;
}

body.woocommerce-cart .cart_totals table td {
	text-align: right;
	font-weight: 500;
}

body.woocommerce-cart .cart_totals .order-total th,
body.woocommerce-cart .cart_totals .order-total td {
	padding-top: 14px;
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--vn-commerce-heading);
	border-top: 1px solid var(--vn-commerce-border);
}

body.woocommerce-cart .wc-proceed-to-checkout {
	padding: 0;
	margin-top: 18px;
}

body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	width: 100%;
	min-height: 52px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 24px;
	line-height: 1.2;
	font-size: 16px;
	font-weight: 700;
	text-align: center;
	border-radius: 8px;
}

body.woocommerce-cart .cart-empty {
	text-align: center;
	padding: 48px 16px;
}

/* --------------------------------------------------------------------------
   CHECKOUT — two-column checkout layout
   -------------------------------------------------------------------------- */
body.woocommerce-checkout form.checkout.vn-checkout-form {
	display: block;
	width: 100%;
	max-width: none;
	margin: 0;
}

body.woocommerce-checkout .vn-checkout-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.55fr) minmax(360px, 0.9fr);
	gap: 48px;
	align-items: start;
	width: 100%;
}

body.woocommerce-checkout .vn-checkout-fields-column,
body.woocommerce-checkout .vn-checkout-order-column {
	width: 100%;
	max-width: none;
	float: none !important;
}

body.woocommerce-checkout .vn-checkout-customer-details .col2-set,
body.woocommerce-checkout .vn-checkout-customer-details .col-1,
body.woocommerce-checkout .vn-checkout-customer-details .col-2 {
	width: 100% !important;
	max-width: none !important;
	float: none !important;
}

body.woocommerce-checkout .woocommerce-billing-fields h3,
body.woocommerce-checkout #order_review_heading {
	margin: 0 0 18px;
	font-family: var(--font-heading, 'Playfair Display', Georgia, serif);
	font-size: 1.35rem;
	color: var(--vn-commerce-heading);
}

body.woocommerce-checkout .woocommerce-billing-fields,
body.woocommerce-checkout .woocommerce-shipping-fields,
body.woocommerce-checkout .woocommerce-additional-fields {
	width: 100%;
	max-width: none;
	margin-bottom: 20px;
}

body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
body.woocommerce-checkout .woocommerce-additional-fields__field-wrapper {
	width: 100%;
}

body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 16px;
	row-gap: 18px;
}

body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper::after,
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper::before {
	display: none;
	content: none;
}

body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper > .form-row {
	float: none !important;
	clear: none !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0;
}

body.woocommerce-checkout #billing_first_name_field,
body.woocommerce-checkout #billing_last_name_field,
body.woocommerce-checkout #billing_phone_field,
body.woocommerce-checkout #billing_email_field,
body.woocommerce-checkout #billing_state_field,
body.woocommerce-checkout #billing_commune_code_field {
	width: 100% !important;
	margin: 0;
	float: none;
}

body.woocommerce-checkout #billing_address_1_field {
	grid-column: 1 / -1;
	width: 100% !important;
	margin: 0;
	float: none;
}

body.woocommerce-checkout #billing_country_field,
body.woocommerce-checkout #billing_city_field {
	display: none !important;
}

body.woocommerce-checkout #billing_state_field {
	display: block !important;
}

/* Neutralize browser :valid/:invalid until WooCommerce marks errors */
body.woocommerce-checkout .form-row:not(.woocommerce-invalid) .input-text,
body.woocommerce-checkout .form-row:not(.woocommerce-invalid) select,
body.woocommerce-checkout .form-row:not(.woocommerce-invalid) textarea {
	border-color: #d1d5db;
	box-shadow: none;
}

body.woocommerce-checkout .form-row.woocommerce-invalid .input-text,
body.woocommerce-checkout .form-row.woocommerce-invalid select,
body.woocommerce-checkout .form-row.woocommerce-invalid textarea {
	border-color: #e2401c;
}

/* Do not show green "valid" borders before/without user submit */
body.woocommerce-checkout .form-row.woocommerce-validated .input-text,
body.woocommerce-checkout .form-row.woocommerce-validated select,
body.woocommerce-checkout .form-row.woocommerce-validated textarea {
	border-color: #d1d5db;
	box-shadow: none;
}

body.woocommerce-checkout form .form-row {
	width: 100%;
	max-width: none;
	margin-bottom: 16px;
	padding: 0;
}

body.woocommerce-checkout form .form-row-first,
body.woocommerce-checkout form .form-row-last,
body.woocommerce-account form .form-row-first,
body.woocommerce-account form .form-row-last {
	width: calc(50% - 8px) !important;
	max-width: none;
}

body.woocommerce-checkout form .form-row-first,
body.woocommerce-account form .form-row-first {
	float: left;
}

body.woocommerce-checkout form .form-row-last,
body.woocommerce-account form .form-row-last {
	float: right;
}

body.woocommerce-checkout form .form-row-wide,
body.woocommerce-account form .form-row-wide {
	clear: both;
	width: 100% !important;
}

body.woocommerce-checkout form .form-row label {
	display: block;
	margin-bottom: 6px;
	font-weight: 500;
	color: var(--vn-commerce-heading);
	line-height: 1.4;
}

body.woocommerce-checkout input.input-text,
body.woocommerce-checkout textarea,
body.woocommerce-checkout select,
body.woocommerce-checkout .select2-container,
body.woocommerce-account input.input-text,
body.woocommerce-account textarea,
body.woocommerce-account select,
body.woocommerce-account .select2-container {
	width: 100% !important;
	max-width: none !important;
	box-sizing: border-box;
}

body.woocommerce-checkout input.input-text,
body.woocommerce-checkout select,
body.woocommerce-checkout .select2-container .select2-selection--single {
	min-height: 46px;
	padding: 10px 14px;
	border: 1px solid #d1d5db;
	border-radius: 8px;
	font-size: 15px;
}

body.woocommerce-checkout textarea {
	min-height: 110px;
	padding: 12px 14px;
	border: 1px solid #d1d5db;
	border-radius: 8px;
	resize: vertical;
}

body.woocommerce-checkout .vn-checkout-field--hidden,
body.woocommerce-account .vn-checkout-field--hidden {
	display: none !important;
}

/* Hide ship-to-different when not needed visually */
body.woocommerce-checkout .woocommerce-shipping-fields > h3#ship-to-different-address {
	font-size: 15px;
	font-weight: 500;
}

/* Order review column */
body.woocommerce-checkout .vn-checkout-order-column {
	position: sticky;
	top: 110px;
	background: var(--vn-commerce-review-bg);
	border: 1px solid var(--vn-commerce-border);
	border-radius: 12px;
	padding: 24px;
}

body.woocommerce-checkout #order_review {
	background: transparent;
	border: 0;
	padding: 0;
	margin: 0;
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table {
	width: 100%;
	border: 0;
	margin-bottom: 16px;
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table th,
body.woocommerce-checkout .woocommerce-checkout-review-order-table td {
	padding: 10px 0;
	border-color: var(--vn-commerce-border);
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total th,
body.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total td {
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--vn-commerce-heading);
	border-top: 1px solid var(--vn-commerce-border);
	padding-top: 14px;
}

body.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-total,
body.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot td {
	text-align: right;
}

/* Coupon toggle + form */
body.woocommerce-checkout .woocommerce-form-coupon-toggle {
	margin-bottom: 16px;
}

body.woocommerce-checkout form.checkout_coupon {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 10px;
	margin-bottom: 20px;
	padding: 16px;
	background: var(--vn-commerce-review-bg);
	border: 1px solid var(--vn-commerce-border);
	border-radius: 10px;
}

body.woocommerce-checkout form.checkout_coupon .form-row-first,
body.woocommerce-checkout form.checkout_coupon .form-row-last {
	width: auto !important;
	float: none !important;
	flex: 1 1 200px;
	margin: 0;
}

body.woocommerce-checkout form.checkout_coupon .form-row-last {
	flex: 0 0 auto;
}

body.woocommerce-checkout form.checkout_coupon .input-text {
	min-height: 46px;
	width: 100%;
}

/* Payment */
body.woocommerce-checkout #payment {
	background: var(--vn-commerce-card-bg);
	border: 1px solid var(--vn-commerce-border);
	border-radius: 10px;
	padding: 16px;
	margin-top: 8px;
}

body.woocommerce-checkout #payment ul.payment_methods {
	border-bottom: 1px solid var(--vn-commerce-border);
	padding-bottom: 12px;
	margin-bottom: 12px;
}

body.woocommerce-checkout #payment ul.payment_methods li {
	margin-bottom: 10px;
}

body.woocommerce-checkout #payment ul.payment_methods li input[type="radio"] {
	accent-color: var(--vn-commerce-green);
}

body.woocommerce-checkout #payment div.payment_box {
	background: var(--vn-commerce-green-light) !important;
	color: #425044;
	border-radius: 8px;
	padding: 14px;
	margin-top: 8px;
}

body.woocommerce-checkout #payment div.payment_box::before {
	border-bottom-color: var(--vn-commerce-green-light) !important;
}

body.woocommerce-checkout #payment #place_order {
	width: 100%;
	min-height: 52px;
	float: none !important;
	margin-top: 8px;
	font-size: 16px;
	font-weight: 700;
}

body.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper {
	margin-bottom: 12px;
}

/* Thank you */
body.woocommerce-checkout .woocommerce-thankyou-order-received {
	font-size: 1.15rem;
	font-weight: 600;
	color: var(--vn-commerce-heading);
}

/* --------------------------------------------------------------------------
   Mobile
   -------------------------------------------------------------------------- */
@media (max-width: 900px) {
	.vn-commerce-page {
		padding-block: 24px 40px;
	}

	body.woocommerce-checkout .vn-checkout-layout {
		grid-template-columns: 1fr;
		gap: 28px;
	}

	body.woocommerce-checkout .vn-checkout-order-column {
		position: static;
		top: auto;
	}

	body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper {
		grid-template-columns: 1fr;
	}

	body.woocommerce-checkout #billing_address_1_field {
		grid-column: auto;
	}

	body.woocommerce-cart .cart-collaterals {
		justify-content: stretch;
	}

	body.woocommerce-cart .cart_totals {
		width: 100%;
	}

	body.woocommerce-cart .vn-cart-actions-row {
		flex-direction: column;
		align-items: stretch;
	}

	body.woocommerce-cart .coupon {
		width: 100%;
	}

	body.woocommerce-cart .coupon .input-text {
		width: 100%;
		flex: 1 1 auto;
	}

	body.woocommerce-cart .coupon .button,
	body.woocommerce-cart .vn-cart-update-button {
		width: 100%;
		margin-left: 0;
	}

	body.woocommerce-checkout form .form-row-first,
	body.woocommerce-checkout form .form-row-last {
		width: 100% !important;
		float: none;
	}
}

@media (max-width: 700px) {
	body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 768px) {
	body.woocommerce-cart table.shop_table_responsive tr {
		margin-bottom: 12px;
		border: 1px solid var(--vn-commerce-border);
		border-radius: 10px;
		overflow: hidden;
	}
}
