/* =========================================================
   VHCA PREMIUM WOO CHECKOUT
   Version 1.0.0
   ========================================================= */

body.vhca-premium-checkout {
	--vhca-bg: #f7f4ee;
	--vhca-card: #ffffff;
	--vhca-text: #1d2823;
	--vhca-muted: #6c746f;
	--vhca-line: #e6dfd5;
	--vhca-soft: #f3eee6;
	--vhca-green: #1f6b52;
	--vhca-green-dark: #17533f;
	--vhca-radius: 18px;
	background: var(--vhca-bg) !important;
	color: var(--vhca-text);
}

body.vhca-premium-checkout .site-main,
body.vhca-premium-checkout .woocommerce,
body.vhca-premium-checkout .elementor-widget-woocommerce-checkout {
	width: 100%;
	max-width: 1180px !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* ---------- Intro ---------- */
.vhca-checkout-intro {
	text-align: center;
	margin: 26px auto 28px;
	padding: 0 20px;
}

.vhca-checkout-intro h1 {
	margin: 10px 0 6px;
	font-size: clamp(30px, 4vw, 44px);
	line-height: 1.12;
	font-weight: 750;
	letter-spacing: -0.02em;
	color: var(--vhca-text);
}

.vhca-checkout-intro p {
	margin: 0;
	font-size: 14px;
	color: var(--vhca-muted);
}

.vhca-secure-pill {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 8px 13px;
	border: 1px solid var(--vhca-line);
	background: rgba(255,255,255,.75);
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	color: var(--vhca-green);
}

.vhca-checkout-progress {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 10px;
	margin-top: 18px;
	font-size: 13px;
	font-weight: 700;
	color: #919892;
}

.vhca-checkout-progress .is-done,
.vhca-checkout-progress .is-active {
	color: var(--vhca-green);
}
.vhca-checkout-progress .vhca-arrow {
	color: #b3b8b4;
}

/* ---------- Notice / login / coupon ---------- */
body.vhca-premium-checkout .woocommerce-info,
body.vhca-premium-checkout .woocommerce-message,
body.vhca-premium-checkout .woocommerce-error {
	border: 1px solid var(--vhca-line) !important;
	border-left: 1px solid var(--vhca-line) !important;
	border-radius: 12px !important;
	background: rgba(255,255,255,.92) !important;
	padding: 14px 18px !important;
	margin-bottom: 16px !important;
	box-shadow: none !important;
	color: var(--vhca-text) !important;
}

body.vhca-premium-checkout .woocommerce-info::before {
	color: var(--vhca-green) !important;
}

body.vhca-premium-checkout .woocommerce-form-login,
body.vhca-premium-checkout .checkout_coupon {
	background: var(--vhca-card);
	border: 1px solid var(--vhca-line);
	border-radius: 14px;
	padding: 20px;
	margin-bottom: 18px;
}

/* ---------- Native Woo layout ---------- */
body.vhca-premium-checkout form.checkout {
	display: grid !important;
	grid-template-columns: minmax(0, 1.55fr) minmax(360px, .85fr) !important;
	column-gap: 28px !important;
	row-gap: 18px !important;
	align-items: start !important;
	width: 100% !important;
}

body.vhca-premium-checkout form.checkout > #customer_details {
	grid-column: 1;
	grid-row: 1 / span 3;
}

body.vhca-premium-checkout form.checkout > #order_review_heading {
	grid-column: 2;
	grid-row: 1;
}

body.vhca-premium-checkout form.checkout > #order_review {
	grid-column: 2;
	grid-row: 2;
}

/* ---------- Elementor Checkout compatibility ---------- */
body.vhca-premium-checkout .elementor-widget-woocommerce-checkout form.checkout {
	display: block !important;
}

body.vhca-premium-checkout .e-checkout__container {
	display: grid !important;
	grid-template-columns: minmax(0, 1.55fr) minmax(360px, .85fr) !important;
	gap: 28px !important;
	align-items: start !important;
	width: 100% !important;
}

body.vhca-premium-checkout .e-checkout__column,
body.vhca-premium-checkout .e-checkout__column-start,
body.vhca-premium-checkout .e-checkout__column-end {
	width: 100% !important;
	max-width: none !important;
	min-width: 0 !important;
}

/* ---------- Cards ---------- */
body.vhca-premium-checkout #customer_details,
body.vhca-premium-checkout .e-checkout__column-start > div,
body.vhca-premium-checkout .e-checkout__order_review,
body.vhca-premium-checkout #order_review {
	background: var(--vhca-card) !important;
	border: 1px solid var(--vhca-line) !important;
	border-radius: var(--vhca-radius) !important;
	box-shadow: 0 10px 30px rgba(29,40,35,.055) !important;
}

body.vhca-premium-checkout #customer_details {
	padding: 30px !important;
}

body.vhca-premium-checkout #customer_details .col-1,
body.vhca-premium-checkout #customer_details .col-2 {
	width: 100% !important;
	max-width: 100% !important;
	float: none !important;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
}

/* Avoid nested cards inside Elementor */
body.vhca-premium-checkout .e-checkout__column-start #customer_details,
body.vhca-premium-checkout .e-checkout__column-start .col2-set {
	border: 0 !important;
	box-shadow: none !important;
	background: transparent !important;
	padding: 0 !important;
}

/* ---------- Headings ---------- */
body.vhca-premium-checkout h3,
body.vhca-premium-checkout #order_review_heading {
	font-size: 24px !important;
	line-height: 1.25 !important;
	font-weight: 750 !important;
	color: var(--vhca-text) !important;
	margin: 0 0 22px !important;
}

body.vhca-premium-checkout #order_review_heading {
	background: var(--vhca-card) !important;
	border: 1px solid var(--vhca-line) !important;
	border-radius: var(--vhca-radius) !important;
	padding: 22px 26px !important;
	box-shadow: 0 10px 30px rgba(29,40,35,.055) !important;
}

/* Elementor puts heading inside order review: make it one card */
body.vhca-premium-checkout .e-checkout__order_review #order_review_heading,
body.vhca-premium-checkout .e-checkout__order_review + #order_review_heading {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	padding: 0 0 18px !important;
}

/* ---------- Fields ---------- */
body.vhca-premium-checkout form .form-row {
	margin: 0 0 17px !important;
}

body.vhca-premium-checkout form .form-row label {
	display: block;
	margin: 0 0 7px !important;
	font-size: 13px !important;
	line-height: 1.4;
	font-weight: 700 !important;
	color: #47504b !important;
}

body.vhca-premium-checkout form .input-text,
body.vhca-premium-checkout form select,
body.vhca-premium-checkout .select2-container .select2-selection--single {
	width: 100% !important;
	min-height: 54px !important;
	border: 1px solid #ddd8d0 !important;
	border-radius: 11px !important;
	background: #fbfaf8 !important;
	color: var(--vhca-text) !important;
	padding: 0 15px !important;
	font-size: 15px !important;
	outline: none !important;
	box-shadow: none !important;
	transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

body.vhca-premium-checkout form textarea.input-text {
	min-height: 110px !important;
	padding-top: 14px !important;
}

body.vhca-premium-checkout form .input-text:focus,
body.vhca-premium-checkout form select:focus {
	border-color: var(--vhca-green) !important;
	background: #fff !important;
	box-shadow: 0 0 0 3px rgba(31,107,82,.09) !important;
}

body.vhca-premium-checkout .select2-container .select2-selection--single .select2-selection__rendered {
	line-height: 52px !important;
	padding-left: 0 !important;
}

body.vhca-premium-checkout .select2-container .select2-selection--single .select2-selection__arrow {
	height: 52px !important;
	right: 10px !important;
}

body.vhca-premium-checkout .form-row-first {
	width: 48.5% !important;
	float: left !important;
}
body.vhca-premium-checkout .form-row-last {
	width: 48.5% !important;
	float: right !important;
}
body.vhca-premium-checkout .form-row-wide {
	width: 100% !important;
	clear: both !important;
}

/* ---------- Review card ---------- */
body.vhca-premium-checkout #order_review {
	padding: 24px 26px !important;
}

body.vhca-premium-checkout .woocommerce-checkout-review-order-table {
	width: 100% !important;
	table-layout: auto !important;
	border: 0 !important;
	margin: 0 0 18px !important;
}

body.vhca-premium-checkout .woocommerce-checkout-review-order-table th,
body.vhca-premium-checkout .woocommerce-checkout-review-order-table td {
	border: 0 !important;
	border-bottom: 1px solid #eee8df !important;
	padding: 15px 0 !important;
	vertical-align: middle !important;
	font-size: 14px !important;
	color: var(--vhca-muted) !important;
}

body.vhca-premium-checkout .woocommerce-checkout-review-order-table th {
	font-weight: 700 !important;
	color: #59635e !important;
}

body.vhca-premium-checkout .woocommerce-checkout-review-order-table .product-name {
	width: 68% !important;
	word-break: normal !important;
	overflow-wrap: normal !important;
	padding-right: 12px !important;
	color: var(--vhca-text) !important;
	font-weight: 650 !important;
}

body.vhca-premium-checkout .woocommerce-checkout-review-order-table .product-total {
	width: 32% !important;
	text-align: right !important;
	white-space: nowrap !important;
	color: var(--vhca-text) !important;
}

body.vhca-premium-checkout .order-total th,
body.vhca-premium-checkout .order-total td {
	padding-top: 20px !important;
	font-size: 18px !important;
	font-weight: 800 !important;
	color: var(--vhca-text) !important;
}

/* Product thumbnail */
.vhca-product-line {
	display: flex;
	align-items: center;
	gap: 12px;
	min-width: 0;
}
.vhca-checkout-product-image {
	width: 58px !important;
	height: 58px !important;
	object-fit: cover;
	border-radius: 10px;
	border: 1px solid var(--vhca-line);
	background: #fff;
	flex: 0 0 58px;
}
.vhca-product-name {
	display: block;
	min-width: 0;
	line-height: 1.4;
}

/* ---------- Consultation ---------- */
.vhca-benefit-card {
	display: flex;
	gap: 12px;
	align-items: flex-start;
	margin: 8px 0 14px;
	padding: 14px;
	background: #f4f7f3;
	border: 1px solid #dce7df;
	border-radius: 13px;
}
.vhca-benefit-icon {
	font-size: 21px;
	line-height: 1;
	margin-top: 1px;
}
.vhca-benefit-card strong,
.vhca-benefit-card span,
.vhca-benefit-card small {
	display: block;
}
.vhca-benefit-card strong {
	font-size: 11px;
	letter-spacing: .06em;
	color: var(--vhca-green);
	margin-bottom: 3px;
}
.vhca-benefit-card span {
	font-size: 14px;
	font-weight: 750;
	color: var(--vhca-text);
}
.vhca-benefit-card small {
	font-size: 11px;
	color: var(--vhca-muted);
	margin-top: 3px;
}

/* ---------- Trust ---------- */
.vhca-trust-list {
	display: grid;
	grid-template-columns: 1fr;
	gap: 6px;
	margin: 0 0 16px;
	font-size: 12px;
	font-weight: 650;
	color: #55615a;
}

/* ---------- Payment ---------- */
body.vhca-premium-checkout #payment {
	background: #f8f6f2 !important;
	border: 1px solid var(--vhca-line) !important;
	border-radius: 14px !important;
	overflow: hidden;
}

body.vhca-premium-checkout #payment ul.payment_methods {
	border-bottom: 1px solid var(--vhca-line) !important;
	padding: 16px 18px !important;
}

body.vhca-premium-checkout #payment div.payment_box {
	background: #fff !important;
	border-radius: 10px !important;
	font-size: 12px !important;
	color: var(--vhca-muted) !important;
}

body.vhca-premium-checkout #payment div.form-row {
	padding: 18px !important;
	margin: 0 !important;
}

/* ---------- Place order CTA ---------- */
body.vhca-premium-checkout #place_order {
	width: 100% !important;
	min-height: 58px !important;
	border: 0 !important;
	border-radius: 12px !important;
	background: var(--vhca-green) !important;
	color: #fff !important;
	font-size: 15px !important;
	font-weight: 800 !important;
	letter-spacing: .02em;
	box-shadow: 0 10px 22px rgba(31,107,82,.22) !important;
	transition: transform .15s ease, background .15s ease, box-shadow .15s ease;
}

body.vhca-premium-checkout #place_order:hover {
	background: var(--vhca-green-dark) !important;
	transform: translateY(-1px);
	box-shadow: 0 12px 26px rgba(31,107,82,.26) !important;
}

/* ---------- Sticky summary ---------- */
@media (min-width: 1025px) {
	body.vhca-premium-checkout form.checkout > #order_review,
	body.vhca-premium-checkout .e-checkout__column-end {
		position: sticky !important;
		top: 24px !important;
	}
}

/* ---------- Tablet ---------- */
@media (max-width: 1024px) {
	body.vhca-premium-checkout form.checkout,
	body.vhca-premium-checkout .e-checkout__container {
		grid-template-columns: 1fr !important;
		gap: 20px !important;
	}

	body.vhca-premium-checkout form.checkout > #customer_details,
	body.vhca-premium-checkout form.checkout > #order_review_heading,
	body.vhca-premium-checkout form.checkout > #order_review {
		grid-column: 1 !important;
		grid-row: auto !important;
	}

	body.vhca-premium-checkout form.checkout > #order_review,
	body.vhca-premium-checkout .e-checkout__column-end {
		position: static !important;
	}
}

/* ---------- Mobile ---------- */
@media (max-width: 640px) {
	.vhca-checkout-intro {
		margin-top: 16px;
	}
	.vhca-checkout-intro h1 {
		font-size: 30px !important;
	}
	.vhca-checkout-intro p {
		font-size: 12px;
		line-height: 1.5;
	}
	.vhca-checkout-progress {
		gap: 7px;
		font-size: 11px;
	}

	body.vhca-premium-checkout #customer_details,
	body.vhca-premium-checkout #order_review {
		padding: 20px !important;
		border-radius: 14px !important;
	}

	body.vhca-premium-checkout #order_review_heading {
		padding: 18px 20px !important;
		border-radius: 14px !important;
	}

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

	.vhca-checkout-product-image {
		width: 48px !important;
		height: 48px !important;
		flex-basis: 48px;
	}

	body.vhca-premium-checkout .woocommerce-checkout-review-order-table .product-name {
		width: 62% !important;
	}
	body.vhca-premium-checkout .woocommerce-checkout-review-order-table .product-total {
		width: 38% !important;
	}
}

.vhca-payment-security-note {
	text-align: center;
	margin-top: 10px;
	font-size: 11px;
	color: #7a827d;
}
