/* ---------------------------------------------------------------------------
   Checkout — Classic shortcode, Lindex-style two-column form.
   --------------------------------------------------------------------------- */

body.woocommerce-checkout main.cb-main { padding-top: 0 !important; }

body.woocommerce-checkout .woocommerce-form-coupon-toggle {
	padding-top: clamp(16px, 2vw, 26px);
	padding-bottom: clamp(16px, 2vw, 28px);
}
/* Coupon prompt: plain text, no info-box (border / background / icon). */
body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info {
	border: 0 !important;
	background: transparent !important;
	padding: 0 !important;
	margin: 0 0 4px !important;
	font-size: 15px;
	color: #1a1a1a;
	list-style: none;
}
body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::before,
body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info::after {
	display: none !important;
	content: none !important;
}
body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info a.showcoupon {
	color: #d6253b;
	font-weight: 600;
	text-decoration: underline;
}

body.woocommerce-checkout .cb-container {
	max-width: none !important;
	margin: 0 !important;
	padding: 0 var(--lindex-pad-x, clamp(16px, 2.5vw, 32px)) !important;
}

body.woocommerce-checkout .entry-content > *,
body.woocommerce-checkout .cb-page__content > *,
body.woocommerce-checkout .entry-content > .woocommerce {
	max-width: none !important;
	margin-inline: 0 !important;
}

body.woocommerce-checkout .entry-header,
body.woocommerce-checkout .cb-page-header,
body.woocommerce-checkout header.cb-page-header,
body.woocommerce-checkout article > header { display: none !important; }
.cb-hidden-field { display: none !important; }

.cb-checkout-columns {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(16px, 2vw, 32px);
	align-items: start;
}
.cb-checkout-left { min-width: 0; }
.cb-checkout-right { min-width: 0; position: sticky; top: 100px; }
@media (max-width: 900px) { .cb-checkout-columns { grid-template-columns: 1fr; } }

/* —— Shipping-method cards (top of left column) ——
   Selectors are scoped under .cb-ship-cards so they beat the global
   `.cb-checkout-form label { display:block }` rule (the card is a <label>). */
.cb-ship-cards {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	margin: 0 0 32px;
}
@media (max-width: 520px) { .cb-ship-cards { grid-template-columns: 1fr; } }
.cb-ship-cards .cb-ship-card {
	display: flex;
	align-items: center;
	gap: 14px;
	margin: 0;
	padding: 18px 20px;
	border: 1px solid #d5d5d5;
	border-radius: 12px;
	background: #fff;
	cursor: pointer;
	position: relative;
	font-weight: 400;
	transition: border-color 160ms ease, background 160ms ease;
}
.cb-ship-cards .cb-ship-card:hover { border-color: #b0b0b0; }
.cb-ship-cards .cb-ship-card.is-selected { border-color: #d6253b; background: #fdeeee; }
.cb-ship-cards .cb-ship-radio { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.cb-ship-cards .cb-ship-card__dot {
	flex: 0 0 auto;
	width: 22px; height: 22px;
	border: 2px solid #c2c2c2;
	border-radius: 50%;
	position: relative;
	transition: border-color 160ms ease;
}
.cb-ship-cards .cb-ship-card.is-selected .cb-ship-card__dot { border-color: #d6253b; }
.cb-ship-cards .cb-ship-card.is-selected .cb-ship-card__dot::after {
	content: ''; position: absolute; inset: 3px;
	background: #d6253b; border-radius: 50%;
}
.cb-ship-cards .cb-ship-card__icon { flex: 0 0 auto; color: #1a1a1a; display: inline-flex; align-items: center; }
.cb-ship-cards .cb-ship-card__label { flex: 1 1 auto; font-size: 15px; font-weight: 600; color: #1a1a1a; line-height: 1.3; margin: 0; }
.cb-ship-cards .cb-ship-card__price { flex: 0 0 auto; margin-left: 8px; font-size: 15px; font-weight: 700; color: #d6253b; white-space: nowrap; }
.cb-ship-cards .cb-ship-card__free { color: #6b6b6b; font-weight: 600; }

/* Order-review shipping row now shows a plain chosen-method label. */
.woocommerce-checkout .woocommerce-shipping-totals.shipping td { text-align: right; }
.woocommerce-checkout .cb-chosen-shipping { font-size: 14px; color: #1a1a1a; }

.cb-checkout-form h3,
.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3,
#ship-to-different-address {
	font-family: inherit; font-size: 22px; font-weight: 600; color: #333;
	margin: 32px 0 20px; padding: 0; letter-spacing: -0.01em;
}
.woocommerce-billing-fields h3:first-child { margin-top: 0; }

.cb-checkout-form .form-row { margin-bottom: 16px; }
.cb-checkout-form .form-row-first, .cb-checkout-form .form-row-last { width: 48%; }
.cb-checkout-form .form-row-first { float: left; clear: left; }
.cb-checkout-form .form-row-last { float: right; clear: right; }
.cb-checkout-form .form-row-wide { width: 100%; clear: both; }

.cb-checkout-form label { display: block; font-size: 14px; font-weight: 500; color: #333; margin-bottom: 6px; }
.cb-checkout-form label .required { color: #d6253b; font-weight: 400; }
.cb-checkout-form label .optional { font-weight: 400; color: #999; font-size: 13px; }

.cb-checkout-form input[type="text"],
.cb-checkout-form input[type="email"],
.cb-checkout-form input[type="tel"],
.cb-checkout-form input[type="number"],
.cb-checkout-form input[type="password"],
.cb-checkout-form select,
.cb-checkout-form textarea,
.cb-checkout-form .select2-container--default .select2-selection--single {
	font-family: inherit; font-size: 15px; color: #1a1a1a;
	background: #fff; border: 1px solid #d0d0d0; border-radius: 4px;
	padding: 11px 14px; width: 100%; box-sizing: border-box;
	box-shadow: none; outline: none; transition: border-color 180ms ease; -webkit-appearance: none;
}
.cb-checkout-form input:focus, .cb-checkout-form select:focus, .cb-checkout-form textarea:focus { border-color: #1a1a1a; box-shadow: none; outline: none; }
.cb-checkout-form input::placeholder, .cb-checkout-form textarea::placeholder { color: #999; font-weight: 400; }

.cb-checkout-form .select2-container--default .select2-selection--single { height: auto; min-height: 42px; display: flex; align-items: center; }
.cb-checkout-form .select2-container--default .select2-selection--single .select2-selection__rendered { color: #1a1a1a; font-size: 15px; line-height: 1.4; padding: 0; }
.cb-checkout-form .select2-container--default .select2-selection--single .select2-selection__arrow { height: 100%; top: 0; right: 10px; }

.cb-checkout-form input[type="checkbox"] {
	width: 16px; height: 16px; border: 1px solid #d0d0d0; border-radius: 2px;
	background: #fff; -webkit-appearance: none; appearance: none;
	cursor: pointer; position: relative; vertical-align: middle; margin-right: 8px; flex-shrink: 0;
}
.cb-checkout-form input[type="checkbox"]:checked { background: #1a1a1a; border-color: #1a1a1a; }
.cb-checkout-form input[type="checkbox"]:checked::after {
	content: ''; position: absolute; top: 1px; left: 4px;
	width: 5px; height: 9px; border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg);
}
.cb-checkout-checkbox { margin: 12px 0 !important; }
.cb-checkout-checkbox label { display: flex; align-items: flex-start; gap: 4px; font-size: 14px; font-weight: 400; color: #333; cursor: pointer; }

#ship-to-different-address { display: flex; align-items: center; justify-content: space-between; cursor: pointer; }
#ship-to-different-address { font-size: 15px !important; margin: 20px 0 !important; }
#ship-to-different-address label { font-size: 15px; font-weight: 500; color: #333; cursor: pointer; display: flex; align-items: center; gap: 10px; }

.woocommerce-additional-fields h3 { font-size: 16px; font-weight: 500; color: #333; margin: 24px 0 12px; }
.cb-checkout-form textarea { min-height: 80px; resize: vertical; }

.cb-checkout-right #order_review_heading { font-size: 22px; font-weight: 600; color: #333; margin: 0 0 16px; }

.woocommerce-checkout .woocommerce-checkout-review-order-table,
.woocommerce-checkout .woocommerce-checkout-review-order-table thead,
.woocommerce-checkout .woocommerce-checkout-review-order-table tbody,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot,
.woocommerce-checkout .woocommerce-checkout-review-order-table tr,
.woocommerce-checkout .woocommerce-checkout-review-order-table th,
.woocommerce-checkout .woocommerce-checkout-review-order-table td,
.woocommerce table.shop_table.woocommerce-checkout-review-order-table th,
.woocommerce table.shop_table.woocommerce-checkout-review-order-table td,
.woocommerce table.shop_table.woocommerce-checkout-review-order-table tbody th,
.woocommerce table.shop_table.woocommerce-checkout-review-order-table tbody td,
.woocommerce table.shop_table.woocommerce-checkout-review-order-table tfoot th,
.woocommerce table.shop_table.woocommerce-checkout-review-order-table tfoot td {
	border: 0 !important;
	border-top: 0 !important;
	border-bottom: 0 !important;
}
.woocommerce-checkout .woocommerce-checkout-review-order-table { border-collapse: collapse; width: 100%; border: 0 !important; }
.woocommerce-checkout .woocommerce-checkout-review-order-table th,
.woocommerce-checkout .woocommerce-checkout-review-order-table td { padding: 12px 0; font-size: 14px; vertical-align: middle; }
.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total th,
.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total td { font-size: 16px; font-weight: 600; padding-top: 16px; }
.woocommerce-checkout .woocommerce-checkout-review-order-table .product-name img {
	display: inline-block; width: 60px; height: 80px; object-fit: cover;
	border-radius: 4px; margin-right: 12px; vertical-align: middle;
}

/* —— Order summary: card, row dividers, right-aligned prices (match design) —— */
body.woocommerce-checkout { background: #f3f3f4; }
body.woocommerce-checkout .cb-checkout-left,
body.woocommerce-checkout .cb-checkout-right {
	background: #fff;
	border-radius: 16px;
	padding: clamp(20px, 2.5vw, 36px);
	box-shadow: 0 1px 4px rgba(0, 0, 0, .05);
}
.cb-checkout-right #order_review_heading { display: none; }

/* Divider line under each summary row (not the final total). */
.woocommerce-checkout .woocommerce-checkout-review-order-table thead th,
.woocommerce-checkout .woocommerce-checkout-review-order-table tbody .cart_item td,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot .cart-subtotal th,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot .cart-subtotal td,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot .woocommerce-shipping-totals th,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot .woocommerce-shipping-totals td {
	border-bottom: 1px solid #e8e8e8 !important;
}

/* Labels left, all values pinned to the right end. */
.woocommerce-checkout .woocommerce-checkout-review-order-table th { text-align: left; }
.woocommerce-checkout .woocommerce-checkout-review-order-table td,
.woocommerce-checkout .woocommerce-checkout-review-order-table thead th.product-total { text-align: right; }
.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-name { text-align: left; }
.woocommerce-checkout .woocommerce-checkout-review-order-table td.product-total,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot td { white-space: nowrap; }

/* Row typography + colours. */
.woocommerce-checkout .woocommerce-checkout-review-order-table thead th,
.woocommerce-checkout .woocommerce-checkout-review-order-table tfoot th { font-weight: 600; color: #1a1a1a; }
.woocommerce-checkout .woocommerce-checkout-review-order-table thead th.product-name { font-size: 22px; letter-spacing: -0.01em; padding-bottom: 16px; }
.woocommerce-checkout .woocommerce-checkout-review-order-table thead th.product-total { font-size: 14px; font-weight: 600; padding-bottom: 16px; }
.woocommerce-checkout .woocommerce-checkout-review-order-table .cart_item td.product-total { color: #8a8a8a; }
.woocommerce-checkout .woocommerce-checkout-review-order-table .cart-subtotal td,
.woocommerce-checkout .woocommerce-checkout-review-order-table .cart-subtotal td .amount { color: #d6253b; font-weight: 600; }
.woocommerce-checkout .woocommerce-checkout-review-order-table .woocommerce-shipping-totals td,
.woocommerce-checkout .woocommerce-checkout-review-order-table .woocommerce-shipping-totals td .cb-shipping-free { color: #8a8a8a; }
.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total th { font-size: 16px; }
.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total td,
.woocommerce-checkout .woocommerce-checkout-review-order-table .order-total td .amount { color: #d6253b; font-weight: 700; font-size: 18px; }

/* Place order button — brand red to match the design. */
.cb-checkout-form #place_order { background: #d6253b; }
.cb-checkout-form #place_order:hover { background: #bb1f33; }

body.woocommerce-checkout #payment,
body.woocommerce-checkout #payment ul,
body.woocommerce-checkout #payment li,
body.woocommerce-checkout #payment div,
body.woocommerce-checkout #payment p,
body.woocommerce-checkout #payment .place-order,
body.woocommerce-checkout .woocommerce-privacy-policy-text,
body.woocommerce-checkout .woocommerce-privacy-policy-text p,
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
	border: 0 !important;
	border-top: 0 !important;
	border-bottom: 0 !important;
}
body.woocommerce-checkout #payment { background: transparent !important; }
body.woocommerce-checkout #payment ul.payment_methods { padding: 0 !important; list-style: none; }
body.woocommerce-checkout #payment ul.payment_methods li {
	padding: 14px 16px; border: 1px solid #e5e5e5 !important; border-radius: 6px; margin-bottom: 8px;
}
body.woocommerce-checkout #payment ul.payment_methods li label { font-size: 15px; font-weight: 500; cursor: pointer; }
body.woocommerce-checkout #payment .payment_box {
	padding: 10px 16px; background: #f9f7f3 !important; border-radius: 0 0 6px 6px; font-size: 13px; color: #666;
}
body.woocommerce-checkout #payment div.payment_box::before,
body.woocommerce-checkout #payment div.payment_box::after { display: none !important; }
body.woocommerce-checkout #payment .place-order { padding: 0 !important; margin: 0 !important; background: transparent !important; }

.cb-checkout-form #place_order {
	width: 100%; padding: 16px 24px; font-family: inherit; font-size: 15px; font-weight: 600;
	color: #fff; background: #1a1a1a; border: 0 !important; border-radius: 9999px;
	cursor: pointer; transition: background 180ms ease; margin-top: 24px;
}
.cb-checkout-form #place_order:hover { background: #000; }

.woocommerce-billing-fields__field-wrapper::after,
.woocommerce-shipping-fields__field-wrapper::after { content: ''; display: table; clear: both; }

.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper { display: flex; flex-wrap: wrap; gap: 0; }
.woocommerce-billing-fields__field-wrapper > .form-row,
.woocommerce-shipping-fields__field-wrapper > .form-row { float: none !important; }

#billing_first_name_field { order: 1; width: 48%; }
#billing_last_name_field { order: 2; width: 48%; margin-left: auto; }
#billing_country_field { order: 3; width: 100%; }
#billing_state_field { order: 4; width: 100%; }
#billing_address_1_field { order: 5; width: 100%; }
#billing_phone_field { order: 6; width: 100%; }
#billing_email_field { order: 7; width: 100%; }
#billing_city_field { order: 90; }
#billing_postcode_field { order: 91; }

/* —— Order received (thank you) page —— */
body.woocommerce-order-received main.cb-main,
body.woocommerce-checkout.woocommerce-order-received main.cb-main {
	padding-top: clamp(32px, 4vw, 64px) !important;
}

.woocommerce-order-received .woocommerce-thankyou-order-received {
	font-size: clamp(24px, 3vw, 32px) !important;
	font-weight: 700 !important;
	color: #1a1a1a !important;
	line-height: 1.3;
	margin: 0 0 1.5rem;
}

.woocommerce-order-received .woocommerce-order-details h2,
.woocommerce-order-received section.woocommerce-order-details h2 {
	font-size: 1.25rem !important;
	font-weight: normal !important;
	color: #1a1a1a !important;
}

/* Thank you page product thumbnail */
.woocommerce-order-received .product-name img.cb-thankyou-thumb,
.woocommerce-order-received td.product-name img.cb-thankyou-thumb,
img.cb-thankyou-thumb {
	width: 36px !important;
	height: 48px !important;
	max-width: 36px !important;
	max-height: 48px !important;
	object-fit: cover !important;
	border-radius: 3px !important;
	margin-right: 10px !important;
	vertical-align: middle !important;
	display: inline-block !important;
}

/* —— Mobile —— */
@media (max-width: 600px) {
	#billing_first_name_field, #billing_last_name_field { width: 100%; margin-left: 0; }
}