/* ==========================================================================
   WooCommerce Cart & Checkout Override Styles
   Walden Driving School — Infin Driving School Systems
   ========================================================================== */

/* ── Variables ──────────────────────────────────────────────────────────── */
:root {
	--ids-wc-primary:    #2c6fad;
	--ids-wc-primary-dk: #1f4f80;
	--ids-wc-success:    #46b450;
	--ids-wc-text:       #1d2327;
	--ids-wc-muted:      #50575e;
	--ids-wc-border:     #e2e4e7;
	--ids-wc-bg:         #f6f7f7;
	--ids-wc-radius:     8px;
}

/* ── Page headings ──────────────────────────────────────────────────────── */
.woocommerce-cart h1,
.woocommerce-checkout h1 {
	color: var(--ids-wc-primary);
	font-size: 1.8rem;
	margin-bottom: 1.5rem;
}

/* ── Cart table ─────────────────────────────────────────────────────────── */
.woocommerce-cart-form table.cart {
	border-collapse: collapse;
	width: 100%;
}
.woocommerce-cart-form table.cart thead th {
	background: var(--ids-wc-primary);
	color: #fff;
	padding: 10px 14px;
	font-weight: 600;
	text-transform: uppercase;
	font-size: 0.75rem;
	letter-spacing: 0.05em;
}
.woocommerce-cart-form table.cart td {
	padding: 14px;
	border-bottom: 1px solid var(--ids-wc-border);
	vertical-align: middle;
}
.woocommerce-cart-form table.cart tr:last-child td {
	border-bottom: none;
}
.woocommerce-cart-form table.cart .product-name a {
	color: var(--ids-wc-primary);
	font-weight: 600;
	text-decoration: none;
}
.woocommerce-cart-form table.cart .product-name a:hover {
	color: var(--ids-wc-primary-dk);
}

/* ── Cart totals ────────────────────────────────────────────────────────── */
.cart_totals {
	background: #fff;
	border: 1px solid var(--ids-wc-border);
	border-radius: var(--ids-wc-radius);
	padding: 24px;
}
.cart_totals h2 {
	color: var(--ids-wc-primary);
	font-size: 1.15rem;
	margin-top: 0;
	border-bottom: 2px solid var(--ids-wc-border);
	padding-bottom: 10px;
}
.cart_totals table {
	width: 100%;
	border-collapse: collapse;
}
.cart_totals table th,
.cart_totals table td {
	padding: 8px 4px;
	border-bottom: 1px solid var(--ids-wc-border);
	font-size: 0.95rem;
}
.cart_totals table .order-total th,
.cart_totals table .order-total td {
	font-weight: 700;
	font-size: 1.05rem;
	color: var(--ids-wc-primary);
	border-bottom: none;
	padding-top: 12px;
}

/* ── Checkout form ──────────────────────────────────────────────────────── */
.woocommerce-checkout #customer_details {
	background: #fff;
	border: 1px solid var(--ids-wc-border);
	border-radius: var(--ids-wc-radius);
	padding: 24px;
}
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 {
	width: 100%;
}
.woocommerce form .form-row label {
	color: var(--ids-wc-text);
	font-weight: 600;
	margin-bottom: 4px;
	display: block;
	font-size: 0.9rem;
}
.woocommerce form .form-row .required {
	color: #d63638;
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row select,
.woocommerce form .form-row textarea {
	border: 1px solid var(--ids-wc-border);
	border-radius: 5px;
	padding: 9px 12px;
	font-size: 0.95rem;
	width: 100%;
	transition: border-color 0.2s;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row select:focus,
.woocommerce form .form-row textarea:focus {
	border-color: var(--ids-wc-primary);
	outline: 2px solid rgba(44, 111, 173, 0.2);
}

/* ── Order review ───────────────────────────────────────────────────────── */
#order_review_heading {
	color: var(--ids-wc-primary);
	font-size: 1.15rem;
	border-bottom: 2px solid var(--ids-wc-border);
	padding-bottom: 10px;
}
#order_review .shop_table {
	border-collapse: collapse;
	width: 100%;
	border: 1px solid var(--ids-wc-border);
	border-radius: var(--ids-wc-radius);
	overflow: hidden;
}
#order_review .shop_table th {
	background: var(--ids-wc-bg);
	padding: 10px 14px;
	font-weight: 600;
	border-bottom: 1px solid var(--ids-wc-border);
}
#order_review .shop_table td {
	padding: 10px 14px;
	border-bottom: 1px solid var(--ids-wc-border);
}
#order_review .order-total td,
#order_review .order-total th {
	font-weight: 700;
	color: var(--ids-wc-primary);
	font-size: 1.05rem;
}

/* ── Buttons ────────────────────────────────────────────────────────────── */
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.woocommerce .button.alt,
.woocommerce button.button.alt {
	background: var(--ids-wc-primary);
	color: #fff;
	border: none;
	border-radius: 6px;
	padding: 11px 24px;
	font-weight: 600;
	font-size: 0.95rem;
	cursor: pointer;
	transition: background 0.2s;
	text-decoration: none;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce .button.alt:hover,
.woocommerce button.button.alt:hover {
	background: var(--ids-wc-primary-dk);
	color: #fff;
}
.woocommerce a.button.disabled,
.woocommerce button.button:disabled {
	opacity: 0.55;
	cursor: not-allowed;
}

/* ── Notices ────────────────────────────────────────────────────────────── */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	border-radius: var(--ids-wc-radius);
	padding: 12px 16px;
	font-size: 0.95rem;
}
.woocommerce-message { border-color: var(--ids-wc-success); }
.woocommerce-info    { border-color: var(--ids-wc-primary); }

/* ── Payment methods ────────────────────────────────────────────────────── */
#payment .payment_methods {
	list-style: none;
	margin: 0;
	padding: 0;
}
#payment .payment_methods li {
	border: 1px solid var(--ids-wc-border);
	border-radius: var(--ids-wc-radius);
	margin-bottom: 8px;
	padding: 12px 16px;
	transition: border-color 0.2s;
}
#payment .payment_methods li:has(input:checked) {
	border-color: var(--ids-wc-primary);
	background: rgba(44, 111, 173, 0.04);
}
#payment .payment_methods label {
	font-weight: 600;
	cursor: pointer;
}
#payment #place_order {
	width: 100%;
	padding: 14px;
	font-size: 1.05rem;
}
