/*
 * WooCommerce checkout visual refresh (classic + block checkout).
 * Visual styles only: no structural or logic changes.
 * Conservative approach: enhance without breaking layout.
 */

.woocommerce-checkout:not(.woocommerce-order-received) {
	--erm-co-surface: #ffffff;
	--erm-co-border: #e5e7eb;
	--erm-co-border-strong: #d1d5db;
	--erm-co-text: #0f172a;
	--erm-co-muted: #64748b;
	--erm-co-accent: #1f4d92;
	--erm-co-accent-hover: #173e75;
	--erm-co-soft: #f8fafc;
	--erm-co-success: #16a34a;
	--erm-co-shadow: 0 4px 12px rgba(15, 23, 42, 0.06);
	--erm-co-radius: 12px;
}

/* ---------- Block checkout: order summary sidebar ---------- */
.woocommerce-checkout:not(.woocommerce-order-received) .wc-block-components-sidebar .wc-block-components-totals-wrapper,
.woocommerce-checkout:not(.woocommerce-order-received) .wc-block-components-sidebar .wc-block-checkout__totals {
	background: var(--erm-co-surface);
	border: 1px solid var(--erm-co-border);
	border-radius: var(--erm-co-radius);
	box-shadow: var(--erm-co-shadow);
	padding: 20px;
}

.woocommerce-checkout:not(.woocommerce-order-received) .wc-block-components-sidebar .wc-block-components-totals-item {
	padding: 10px 0;
	border-color: var(--erm-co-border);
}

.woocommerce-checkout:not(.woocommerce-order-received) .wc-block-components-sidebar .wc-block-components-totals-item__value {
	font-weight: 600;
	color: var(--erm-co-text);
}

.woocommerce-checkout:not(.woocommerce-order-received) .wc-block-components-sidebar .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-weight: 700;
	color: var(--erm-co-text);
}

/* Hide empty Fee and Discount rows in order summary (WooCommerce renders these blocks even when 0) */
.woocommerce-checkout:not(.woocommerce-order-received) .wp-block-woocommerce-checkout-order-summary-fee-block:empty,
.woocommerce-checkout:not(.woocommerce-order-received) .wp-block-woocommerce-checkout-order-summary-discount-block:empty {
	display: none;
}

.woocommerce-checkout:not(.woocommerce-order-received) .wp-block-woocommerce-checkout-order-summary-fee-block:has(.wc-block-components-totals-wrapper:empty),
.woocommerce-checkout:not(.woocommerce-order-received) .wp-block-woocommerce-checkout-order-summary-discount-block:has(.wc-block-components-totals-wrapper:empty) {
	display: none;
}

/* ---------- Classic checkout layout ---------- */
@media (min-width: 980px) {
	.woocommerce-checkout:not(.woocommerce-order-received) form.checkout {
		display: grid;
		grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
		align-items: start;
		gap: 24px;
		padding: 0;
	}

	.woocommerce-checkout:not(.woocommerce-order-received) #customer_details,
	.woocommerce-checkout:not(.woocommerce-order-received) #order_review_heading,
	.woocommerce-checkout:not(.woocommerce-order-received) #order_review {
		float: none;
		width: auto;
	}

	.woocommerce-checkout:not(.woocommerce-order-received) #customer_details {
		grid-column: 1;
	}

	.woocommerce-checkout:not(.woocommerce-order-received) #order_review_heading,
	.woocommerce-checkout:not(.woocommerce-order-received) #order_review {
		grid-column: 2;
	}

	.woocommerce-checkout:not(.woocommerce-order-received) #order_review_heading {
		margin: 0 0 8px;
	}
}

/* ---------- Classic checkout: customer details card ---------- */
.woocommerce-checkout:not(.woocommerce-order-received) #customer_details .col2-set {
	display: flex;
	flex-direction: column;
	gap: 20px;
}

@media (min-width: 768px) {
	.woocommerce-checkout:not(.woocommerce-order-received) #customer_details .col2-set {
		flex-direction: row;
	}

	.woocommerce-checkout:not(.woocommerce-order-received) #customer_details .col2-set .col-1,
	.woocommerce-checkout:not(.woocommerce-order-received) #customer_details .col2-set .col-2 {
		flex: 1;
		min-width: 0;
	}
}

.woocommerce-checkout:not(.woocommerce-order-received) #customer_details .col-1,
.woocommerce-checkout:not(.woocommerce-order-received) #customer_details .col-2,
.woocommerce-checkout:not(.woocommerce-order-received) #order_review {
	background: var(--erm-co-surface);
	border: 1px solid var(--erm-co-border);
	border-radius: var(--erm-co-radius);
	box-shadow: var(--erm-co-shadow);
	padding: clamp(16px, 2.2vw, 24px);
}

/* ---------- Block checkout: form inputs (only text inputs, not express buttons) ---------- */
.woocommerce-checkout:not(.woocommerce-order-received) .wc-block-components-text-input input,
.woocommerce-checkout:not(.woocommerce-order-received) .wc-block-components-combobox .wc-block-components-combobox-control input {
	border: 1px solid var(--erm-co-border-strong);
	border-radius: 10px;
	background: #fff;
	color: var(--erm-co-text);
	min-height: 44px;
	padding: 10px 14px;
	transition: border-color 0.16s ease, box-shadow 0.16s ease;
}

.woocommerce-checkout:not(.woocommerce-order-received) .wc-block-components-text-input input:focus,
.woocommerce-checkout:not(.woocommerce-order-received) .wc-block-components-combobox .wc-block-components-combobox-control input:focus {
	outline: 0;
	border-color: var(--erm-co-accent);
	box-shadow: 0 0 0 3px rgba(31, 77, 146, 0.12);
}

/* ---------- Block checkout: step titles ---------- */
.woocommerce-checkout:not(.woocommerce-order-received) .wc-block-components-checkout-step__title {
	color: var(--erm-co-text);
	font-weight: 700;
	font-size: 1.1rem;
}

/* ---------- Classic checkout: form controls ---------- */
.woocommerce-checkout:not(.woocommerce-order-received) .form-row {
	margin-bottom: 14px;
}

.woocommerce-checkout:not(.woocommerce-order-received) label {
	color: #334155;
	font-weight: 600;
	font-size: 0.9rem;
}

.woocommerce-checkout:not(.woocommerce-order-received) input.input-text,
.woocommerce-checkout:not(.woocommerce-order-received) textarea,
.woocommerce-checkout:not(.woocommerce-order-received) select,
.woocommerce-checkout:not(.woocommerce-order-received) .select2-container--default .select2-selection--single {
	border: 1px solid var(--erm-co-border-strong);
	border-radius: 10px;
	background: #fff;
	color: var(--erm-co-text);
	min-height: 44px;
	padding: 10px 14px;
	transition: border-color 0.16s ease, box-shadow 0.16s ease;
}

.woocommerce-checkout:not(.woocommerce-order-received) input.input-text:focus,
.woocommerce-checkout:not(.woocommerce-order-received) textarea:focus,
.woocommerce-checkout:not(.woocommerce-order-received) select:focus,
.woocommerce-checkout:not(.woocommerce-order-received) .select2-container--default.select2-container--focus .select2-selection--single {
	outline: 0;
	border-color: var(--erm-co-accent);
	box-shadow: 0 0 0 3px rgba(31, 77, 146, 0.12);
}

/* ---------- Classic checkout: order table ---------- */
.woocommerce-checkout:not(.woocommerce-order-received) .shop_table.woocommerce-checkout-review-order-table {
	border: 1px solid var(--erm-co-border);
	border-radius: 10px;
	overflow: hidden;
	background: #fff;
}

.woocommerce-checkout:not(.woocommerce-order-received) .shop_table.woocommerce-checkout-review-order-table th,
.woocommerce-checkout:not(.woocommerce-order-received) .shop_table.woocommerce-checkout-review-order-table td {
	border-color: var(--erm-co-border);
	padding: 12px 14px;
	color: var(--erm-co-text);
}

.woocommerce-checkout:not(.woocommerce-order-received) .order-total .amount {
	font-weight: 700;
	color: var(--erm-co-text);
}

/* ---------- Classic checkout: payment section ---------- */
.woocommerce-checkout:not(.woocommerce-order-received) #payment {
	border: 1px solid var(--erm-co-border);
	border-radius: 10px;
	background: var(--erm-co-soft);
	padding: 16px;
	margin-top: 16px;
}

.woocommerce-checkout:not(.woocommerce-order-received) .wc_payment_methods li,
.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-shipping-methods li {
	border: 1px solid var(--erm-co-border);
	border-radius: 10px;
	padding: 12px 14px;
	background: #fff;
	margin-bottom: 10px;
}

.woocommerce-checkout:not(.woocommerce-order-received) .wc_payment_methods li:last-child,
.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-shipping-methods li:last-child {
	margin-bottom: 0;
}

.woocommerce-checkout:not(.woocommerce-order-received) #payment div.payment_box {
	border-radius: 8px;
	background: #fff;
	border: 1px solid var(--erm-co-border);
	padding: 12px;
	margin-top: 8px;
}

/* ---------- Place order button only (NOT G Pay, Link, etc.) ---------- */
.woocommerce-checkout:not(.woocommerce-order-received) #place_order,
.woocommerce-checkout:not(.woocommerce-order-received) .wc-block-components-checkout-place-order-button {
	border-radius: 12px;
	min-height: 50px;
	padding: 14px 24px;
	border: 0;
	font-weight: 700;
	background: var(--erm-co-accent);
	color: #fff;
	box-shadow: 0 4px 14px rgba(31, 77, 146, 0.25);
	transition: background-color 0.2s ease, transform 0.2s ease, box-shadow 0.2s ease;
}

.woocommerce-checkout:not(.woocommerce-order-received) #place_order:hover,
.woocommerce-checkout:not(.woocommerce-order-received) #place_order:focus,
.woocommerce-checkout:not(.woocommerce-order-received) .wc-block-components-checkout-place-order-button:hover,
.woocommerce-checkout:not(.woocommerce-order-received) .wc-block-components-checkout-place-order-button:focus {
	background: var(--erm-co-accent-hover);
	transform: translateY(-1px);
	box-shadow: 0 6px 18px rgba(31, 77, 146, 0.3);
	color: #fff;
}

/* ---------- Headings ---------- */
.woocommerce-checkout:not(.woocommerce-order-received) h3,
.woocommerce-checkout:not(.woocommerce-order-received) #order_review_heading {
	color: var(--erm-co-text);
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.3;
	margin: 0 0 16px;
}

/* ---------- Notices ---------- */
.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-error,
.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-info,
.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-message,
.woocommerce-checkout:not(.woocommerce-order-received) .wc-block-components-notice-banner {
	border-radius: 10px;
	border: 1px solid var(--erm-co-border);
	box-shadow: var(--erm-co-shadow);
}

.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-error {
	border-left: 4px solid #dc2626;
}

.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce-message,
.woocommerce-checkout:not(.woocommerce-order-received) .wc-block-components-notice-banner.is-success {
	border-left: 4px solid var(--erm-co-success);
}

/* ---------- Mobile ---------- */
@media (max-width: 979px) {
	.woocommerce-checkout:not(.woocommerce-order-received) form.checkout {
		padding: 0;
	}

	.woocommerce-checkout:not(.woocommerce-order-received) #customer_details .col-1,
	.woocommerce-checkout:not(.woocommerce-order-received) #customer_details .col-2,
	.woocommerce-checkout:not(.woocommerce-order-received) #order_review {
		padding: 16px;
	}

	.woocommerce-checkout:not(.woocommerce-order-received) #place_order,
	.woocommerce-checkout:not(.woocommerce-order-received) .wc-block-components-checkout-place-order-button {
		width: 100%;
	}
}
