/* ==========================================================================
   Identity Design — Default checkout/cart page styling.
   Applies to WooCommerce's own [woocommerce_checkout] markup, rendered
   inside the generic index.php fallback (header.php/footer.php) since this
   theme never built a dedicated checkout page-template. Loads on every
   checkout/cart visit regardless of whether a per-course Checkout Design
   (inc/checkout-builder/) is also active — that system wraps AROUND this
   native form rather than replacing it, so the two layers compose cleanly.
   ========================================================================== */

.id21-default-content h1.entry-title,
.id21-default-content article > h1 {
	font-size: 30px;
	font-weight: 800;
	margin: 0 0 28px;
}

/* Narrow, centered card — but ONLY when no Checkout Design (inc/checkout-builder/) is
   active. That system wraps <form class="woocommerce-checkout"> one level deeper inside
   its own .id21-checkout-form-col, so the direct-child selector here naturally excludes
   it and lets the wider 2-column shell take over instead (see checkout-builder-front.css). */
.entry-content > form.woocommerce-checkout,
.entry-content > .woocommerce-notices-wrapper + form.woocommerce-checkout {
	max-width: 640px;
	margin: 0 auto;
}
.entry-content > .woocommerce-notices-wrapper {
	max-width: 640px;
	margin: 0 auto;
}

.woocommerce-notices-wrapper:empty {
	display: none;
}
.woocommerce-error,
.woocommerce-message,
.woocommerce-info {
	list-style: none;
	margin: 0 0 20px;
	padding: 14px 18px;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 600;
	background: var(--panel, #f4f5f8);
	border: 1px solid var(--line, #dfe1e8);
}
.woocommerce-error {
	background: rgba(220, 53, 69, 0.08);
	border-color: #dc3545;
	color: #a3212f;
}
.woocommerce-message {
	background: rgba(53, 209, 47, 0.1);
	border-color: #35d12f;
	color: #1a7a12;
}

/* Coupon toggle */
.woocommerce-form-coupon-toggle .woocommerce-info {
	background: none;
	border: none;
	padding: 0 0 20px;
	font-size: 14px;
}
.showcoupon {
	font-weight: 700;
	text-decoration: underline;
}
.woocommerce-form-coupon {
	display: flex;
	gap: 10px;
	margin-bottom: 24px;
	flex-wrap: wrap;
}
.woocommerce-form-coupon .form-row {
	flex: 1;
	min-width: 180px;
}
.woocommerce-form-coupon .button {
	white-space: nowrap;
}

/* Section headings */
#customer_details h3,
#order_review_heading {
	font-size: 18px;
	font-weight: 800;
	margin: 0 0 16px;
}

/* Form fields */
.woocommerce-billing-fields .form-row,
.woocommerce-additional-fields .form-row {
	margin-bottom: 16px;
}
.woocommerce-billing-fields label,
.woocommerce-additional-fields label {
	display: block;
	font-weight: 600;
	font-size: 13px;
	margin-bottom: 6px;
}
.woocommerce-billing-fields .required,
.woocommerce-additional-fields .required {
	color: #dc3545;
	text-decoration: none;
}
.woocommerce-billing-fields input.input-text,
.woocommerce-additional-fields input.input-text,
.woocommerce-billing-fields select,
.woocommerce-form-coupon input.input-text {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid var(--line, #dfe1e8);
	border-radius: 8px;
	font-size: 14px;
	font-family: inherit;
	box-sizing: border-box;
}
.woocommerce-billing-fields input.input-text:focus,
.woocommerce-additional-fields input.input-text:focus {
	outline: none;
	border-color: var(--blue, #1432ff);
}

/* Order review table */
#order_review_heading {
	margin-top: 36px;
}
table.shop_table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 24px;
	border: 1px solid var(--line, #dfe1e8);
	border-radius: 10px;
	overflow: hidden;
}
table.shop_table th,
table.shop_table td {
	padding: 12px 16px;
	text-align: left;
	font-size: 14px;
	border-bottom: 1px solid var(--line, #dfe1e8);
}
table.shop_table thead th {
	background: var(--panel, #f4f5f8);
	font-weight: 700;
}
table.shop_table tfoot tr:last-child th,
table.shop_table tfoot tr:last-child td {
	border-bottom: none;
	font-size: 16px;
	font-weight: 800;
}
table.shop_table .product-total {
	text-align: right;
}

/* Payment methods */
ul.wc_payment_methods,
ul.payment_methods {
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
	border: 1px solid var(--line, #dfe1e8);
	border-radius: 10px;
	overflow: hidden;
}
ul.wc_payment_methods li,
ul.payment_methods li {
	padding: 14px 16px;
	border-bottom: 1px solid var(--line, #dfe1e8);
	font-size: 14px;
}
ul.wc_payment_methods li:last-child,
ul.payment_methods li:last-child {
	border-bottom: none;
}
ul.wc_payment_methods label,
ul.payment_methods label {
	font-weight: 700;
	cursor: pointer;
}
.payment_box {
	margin-top: 10px;
	padding: 14px;
	background: var(--panel, #f4f5f8);
	border-radius: 8px;
	font-size: 13px;
	color: var(--muted, #5f6270);
}
.payment_box p {
	margin: 0 0 8px;
}
.payment_box p:last-child {
	margin-bottom: 0;
}

/* Terms + submit */
.woocommerce-terms-and-conditions-wrapper {
	margin-bottom: 16px;
	font-size: 13px;
}
#place_order,
.woocommerce-checkout button[type="submit"] {
	display: block;
	width: 100%;
	background: var(--blue, #1432ff);
	color: #fff;
	border: none;
	padding: 15px 24px;
	border-radius: 8px;
	font-weight: 800;
	font-size: 15px;
	cursor: pointer;
	box-shadow: 0 4px var(--blue-dark, #071bb5);
}
#place_order:hover {
	filter: brightness(1.05);
}

/* WC's built-in AJAX spinner overlay */
.blockUI.blockOverlay {
	position: relative;
}
