/* ==========================================================================
   LAB TESTS MANAGER – CHECKOUT v4.0.0
   ALL selectors are 100% scoped under .ltm-cko-wrapper.
   Zero bleed into WordPress theme, Elementor, or any other plugin.
   Page centering is handled by checkout.js (JS ancestor-expand technique).
   ========================================================================== */

/* ── CSS custom properties (locally scoped, not global :root) ── */
.ltm-cko-wrapper {
	--ltm-burg: #521542;
	--ltm-plum: #3D0D32;
	--ltm-teal: #054A4C;
	--ltm-gold: #BC8836;
	--ltm-dgold: #966624;
	--ltm-bgold: #DCAA4E;
	--ltm-champ: #F2DDB7;
	--ltm-bg: #FCF7F4;
}

/* ── Main wrapper (full width set by JS ancestor-expand) ── */
.ltm-cko-wrapper {
	display: block;
	width: 100%;
	padding: 32px 20px 60px;
	box-sizing: border-box;
	background: #FCF7F4;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen,
		Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
	color: #3D0D32;
}

/* ── form.woocommerce-checkout must not constrain our grid ── */
.ltm-cko-wrapper~*,
form.checkout.ltm-cko-form {
	display: block;
	width: 100%;
}

/* =========================================================================
   SECTION 1 – TWO-COLUMN GRID
   (Centered via max-width + margin auto once wrapper is full-width)
   ========================================================================= */

.ltm-cko-wrapper .ltm-cko-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 360px;
	gap: 32px;
	align-items: start;
	width: 100%;
	max-width: 1100px;
	margin: 0 auto;
	/* ← centers inside full-width wrapper */
	box-sizing: border-box;
}

.ltm-cko-wrapper .ltm-cko-left {
	min-width: 0;
	box-sizing: border-box;
}

.ltm-cko-wrapper .ltm-cko-right {
	width: 360px;
	max-width: 360px;
	box-sizing: border-box;
}

.ltm-cko-wrapper .ltm-cko-sticky {
	position: sticky;
	top: 24px;
}

/* =========================================================================
   SECTION 2 – PATIENT DETAILS CARD  (left column)
   ========================================================================= */

.ltm-cko-wrapper .ltm-cko-card {
	background: #fff;
	border: 1px solid #F2DDB7;
	border-radius: 16px;
	box-shadow: 0 8px 25px rgba(61, 13, 50, .04);
	padding: 28px 24px;
	margin-bottom: 24px;
	box-sizing: border-box;
}

.ltm-cko-wrapper .ltm-cko-card-hdr {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 22px;
	padding-bottom: 16px;
	border-bottom: 1px solid #F1F5F9;
}

.ltm-cko-wrapper .ltm-cko-card-icon {
	width: 44px;
	height: 44px;
	min-width: 44px;
	border-radius: 12px;
	background: #521542;
	color: #DCAA4E;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.ltm-cko-wrapper .ltm-cko-card-icon svg {
	width: 20px;
	height: 20px;
}

.ltm-cko-wrapper .ltm-cko-card-ttl {
	font-size: 20px;
	font-weight: 700;
	color: #3D0D32;
	margin: 0 0 2px !important;
	letter-spacing: -.01em;
}

.ltm-cko-wrapper .ltm-cko-card-sub {
	font-size: 13px;
	color: #64748B;
	margin: 0 !important;
}

/* =========================================================================
   SECTION 3 – BILLING FORM  (50 % / 50 % grid)
   ========================================================================= */

.ltm-cko-wrapper .woocommerce-billing-fields__field-wrapper {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 16px 20px !important;
	width: 100% !important;
	box-sizing: border-box !important;
}

/* Reset WooCommerce floats */
.ltm-cko-wrapper .form-row {
	float: none !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	box-sizing: border-box !important;
}

.ltm-cko-wrapper .form-row-wide,
.ltm-cko-wrapper #billing_address_1_field {
	grid-column: 1 / -1 !important;
}

.ltm-cko-wrapper .form-row-first {
	grid-column: 1 !important;
}

.ltm-cko-wrapper .form-row-last {
	grid-column: 2 !important;
}

/* Labels – scoped only inside our card */
.ltm-cko-wrapper .ltm-cko-card label {
	display: block !important;
	font-size: 13.5px !important;
	font-weight: 600 !important;
	color: #3D0D32 !important;
	margin-bottom: 6px !important;
	white-space: nowrap !important;
}

.ltm-cko-wrapper .ltm-cko-card label .required {
	color: #EF4444 !important;
	text-decoration: none !important;
	margin-left: 2px !important;
}

/* Inputs – scoped only inside our card */
.ltm-cko-wrapper .ltm-cko-card input[type="text"],
.ltm-cko-wrapper .ltm-cko-card input[type="email"],
.ltm-cko-wrapper .ltm-cko-card input[type="tel"],
.ltm-cko-wrapper .ltm-cko-card select,
.ltm-cko-wrapper .ltm-cko-card textarea {
	width: 100% !important;
	height: 46px !important;
	padding: 8px 14px !important;
	font-size: 14px !important;
	color: #3D0D32 !important;
	background: #FCF7F4 !important;
	border: 1px solid #CBD5E1 !important;
	border-radius: 8px !important;
	transition: border-color .2s !important;
	outline: none !important;
	box-sizing: border-box !important;
}

.ltm-cko-wrapper .ltm-cko-card select {
	appearance: none !important;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23521542' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 12px center !important;
	background-size: 14px !important;
	padding-right: 32px !important;
}

.ltm-cko-wrapper .ltm-cko-card input:focus,
.ltm-cko-wrapper .ltm-cko-card select:focus,
.ltm-cko-wrapper .ltm-cko-card textarea:focus {
	background: #fff !important;
	border-color: #521542 !important;
	box-shadow: none !important;
}

/* =========================================================================
   SECTION 4 – PRESCRIPTION UPLOAD
   ========================================================================= */

.ltm-cko-wrapper .ltm-cko-rx {
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid #F1F5F9;
}

.ltm-cko-wrapper .ltm-cko-rx-ttl {
	font-size: 15px;
	font-weight: 700;
	color: #3D0D32;
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 12px !important;
}

.ltm-cko-wrapper .ltm-cko-rx-ttl svg {
	width: 16px;
	height: 16px;
	color: #BC8836;
}

.ltm-cko-wrapper .ltm-cko-opt-badge {
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .05em;
	background: #F2DDB7;
	color: #966624;
	padding: 2px 7px;
	border-radius: 5px;
	margin-left: 4px;
}

.ltm-cko-wrapper .ltm-cko-dropzone {
	background: #FCF7F4;
	border: 2px dashed #BC8836;
	border-radius: 12px;
	padding: 20px 14px;
	text-align: center;
	cursor: pointer;
	transition: all .2s;
}

.ltm-cko-wrapper .ltm-cko-dropzone:hover {
	background: #F9F0EA;
	border-color: #521542;
}

.ltm-cko-wrapper .ltm-cko-up-icon {
	width: 40px;
	height: 40px;
	background: #521542;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 10px;
	color: #DCAA4E;
}

.ltm-cko-wrapper .ltm-cko-up-icon svg {
	width: 18px;
	height: 18px;
}

.ltm-cko-wrapper .ltm-cko-up-main {
	display: block;
	font-size: 13px;
	font-weight: 600;
	color: #521542;
}

.ltm-cko-wrapper .ltm-cko-up-sub {
	display: block;
	font-size: 11px;
	color: #966624;
	margin-top: 2px;
}

/* =========================================================================
   SECTION 5 – ZIG-ZAG RECEIPT CARD  (right column)
   ========================================================================= */

.ltm-cko-wrapper .ltm-cko-receipt {
	background: #fff !important;
	position: relative;
	padding: 28px 20px;
	box-shadow: 0 10px 30px -8px rgba(61, 13, 50, .08);
	border-left: 1px solid #E2E8F0;
	border-right: 1px solid #E2E8F0;
	margin: 12px 0;
	box-sizing: border-box;
}

/* Top zig-zag */
.ltm-cko-wrapper .ltm-cko-receipt::before {
	content: "";
	position: absolute;
	top: -12px;
	left: 0;
	right: 0;
	height: 12px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 12' width='20' height='12'%3E%3Cpolygon points='0,12 10,0 20,12' fill='%23ffffff'/%3E%3C/svg%3E") repeat-x left top;
	z-index: 10;
}

/* Bottom zig-zag */
.ltm-cko-wrapper .ltm-cko-receipt::after {
	content: "";
	position: absolute;
	bottom: -12px;
	left: 0;
	right: 0;
	height: 12px;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 12' width='20' height='12'%3E%3Cpolygon points='0,0 10,12 20,0' fill='%23ffffff'/%3E%3C/svg%3E") repeat-x left bottom;
	z-index: 10;
}

.ltm-cko-wrapper .ltm-cko-rcpt-badge {
	text-align: center;
	margin-bottom: 10px;
}

.ltm-cko-wrapper .ltm-cko-rcpt-badge span {
	font-size: 10.5px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: #966624;
	background: #FCF7F4;
	border: 1px solid #F2DDB7;
	padding: 3px 10px;
	border-radius: 10px;
}

.ltm-cko-wrapper .ltm-cko-rcpt-ttl {
	font-size: 18px;
	font-weight: 700;
	color: #521542;
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	margin: 0 0 18px !important;
	padding-bottom: 14px;
	border-bottom: 2px dashed #E2E8F0;
}

.ltm-cko-wrapper .ltm-cko-rcpt-ttl svg {
	width: 18px;
	height: 18px;
	color: #BC8836;
}

/* Order table */
.ltm-cko-wrapper .ltm-cko-receipt table.shop_table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 18px;
}

.ltm-cko-wrapper .ltm-cko-receipt table.shop_table th {
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: #054A4C;
	padding: 8px 0;
	border-bottom: 1px solid #E2E8F0;
	text-align: left;
}

.ltm-cko-wrapper .ltm-cko-receipt table.shop_table th.product-total {
	text-align: right;
}

.ltm-cko-wrapper .ltm-cko-receipt table.shop_table td {
	padding: 12px 0;
	border-bottom: 1px dashed #F1F5F9;
	font-size: 13.5px;
	color: #3D0D32;
}

.ltm-cko-wrapper .ltm-cko-receipt table.shop_table td.product-name {
	font-weight: 500;
}

.ltm-cko-wrapper .ltm-cko-receipt table.shop_table td.product-total {
	text-align: right;
	font-weight: 600;
	color: #521542;
}

.ltm-cko-wrapper .ltm-cko-receipt table.shop_table tr.cart-discount th,
.ltm-cko-wrapper .ltm-cko-receipt table.shop_table tr.cart-discount td {
	color: #16A34A !important;
	font-weight: 600;
}

.ltm-cko-wrapper .ltm-cko-receipt table.shop_table tr.cart-discount td {
	text-align: right;
}

.ltm-cko-wrapper .ltm-cko-receipt table.shop_table tr.cart-subtotal th,
.ltm-cko-wrapper .ltm-cko-receipt table.shop_table tr.cart-subtotal td {
	border-top: 1px solid #E2E8F0;
	font-weight: 600;
}

.ltm-cko-wrapper .ltm-cko-receipt table.shop_table tr.order-total th,
.ltm-cko-wrapper .ltm-cko-receipt table.shop_table tr.order-total td {
	border-top: 2px dashed #521542;
	border-bottom: 2px dashed #521542;
	padding: 14px 0;
	font-size: 17px;
	font-weight: 700;
	color: #3D0D32;
}

.ltm-cko-wrapper .ltm-cko-receipt table.shop_table tr.order-total td {
	text-align: right;
	color: #521542;
}

/* =========================================================================
   SECTION 6 – PAYMENT METHODS
   ========================================================================= */

.ltm-cko-wrapper .ltm-cko-receipt #payment,
.ltm-cko-wrapper .ltm-cko-receipt .woocommerce-checkout-payment {
	background: transparent !important;
	border-radius: 0 !important;
	padding: 0 !important;
	margin-top: 18px !important;
	margin-bottom: 18px !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
}

.ltm-cko-wrapper .ltm-cko-receipt #payment ul.payment_methods {
	padding: 0 !important;
	margin: 0 0 16px !important;
	list-style: none !important;
	border-bottom: 1px solid #F1F5F9;
	margin-left: 0 !important;
	margin-right: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
}

.ltm-cko-wrapper .ltm-cko-receipt #payment ul.payment_methods li {
	margin-bottom: 10px !important;
	background: #FCF7F4 !important;
	border: 1px solid #CBD5E1 !important;
	border-radius: 10px !important;
	padding: 12px 14px !important;
	display: flex !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	gap: 10px !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
}

.ltm-cko-wrapper .ltm-cko-receipt #payment ul.payment_methods li input[type="radio"] {
	margin: 0 !important;
	padding: 0 !important;
	width: 18px !important;
	height: 18px !important;
	accent-color: #521542 !important;
	flex-shrink: 0 !important;
	cursor: pointer !important;
}

.ltm-cko-wrapper .ltm-cko-receipt #payment ul.payment_methods li label {
	font-size: 14px !important;
	font-weight: 600 !important;
	color: #3D0D32 !important;
	cursor: pointer !important;
	margin: 0 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	flex: 1 !important;
	gap: 8px !important;
	min-width: 0 !important;
}

.ltm-cko-wrapper .ltm-cko-receipt #payment ul.payment_methods li label img {
	max-height: 22px !important;
	max-width: 90px !important;
	width: auto !important;
	height: auto !important;
	margin-left: auto !important;
	flex-shrink: 0 !important;
}

.ltm-cko-wrapper .ltm-cko-receipt #payment div.payment_box {
	width: 100% !important;
	flex: 0 0 100% !important;
	background: #fff !important;
	border: 1px solid #E2E8F0 !important;
	border-radius: 8px !important;
	padding: 12px !important;
	font-size: 12.5px !important;
	color: #475569 !important;
	margin-top: 8px !important;
	box-sizing: border-box !important;
	word-wrap: break-word !important;
	word-break: break-word !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.ltm-cko-wrapper .ltm-cko-receipt #payment div.payment_box::before {
	display: none !important;
}

/* =========================================================================
   SECTION 7 – BOOK LAB TEST BUTTON
   ========================================================================= */

.ltm-cko-wrapper .ltm-cko-receipt #place_order,
.ltm-cko-wrapper .ltm-cko-receipt button[type="submit"] {
	width: 100% !important;
	background: #521542 !important;
	color: #fff !important;
	border: none !important;
	border-radius: 10px !important;
	padding: 16px 20px !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	letter-spacing: .01em !important;
	cursor: pointer !important;
	box-shadow: none !important;
	transition: background .2s !important;
	text-transform: none !important;
	box-sizing: border-box !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.ltm-cko-wrapper .ltm-cko-receipt #place_order:hover,
.ltm-cko-wrapper .ltm-cko-receipt button[type="submit"]:hover {
	background: #054A4C !important;
	box-shadow: none !important;
	transform: none !important;
}

/* Scoped override for Policy Checkboxes to stay inside container bounds */
.ltm-cko-wrapper .ltm-cko-policies-wrap {
	margin-left: 0 !important;
	margin-right: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
}

/* =========================================================================
   SECTION 8 – COUPON BOX
   ========================================================================= */

.ltm-cko-wrapper .ltm-cko-coupon {
	margin: 14px 0 16px;
	padding: 14px;
	background: #FCF7F4;
	border: 1px dashed #BC8836;
	border-radius: 10px;
	box-sizing: border-box !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.ltm-cko-wrapper .ltm-cko-coupon-lbl {
	display: flex;
	align-items: center;
	gap: 5px;
	font-size: 12px;
	font-weight: 700;
	color: #3D0D32;
	margin-bottom: 8px !important;
}

.ltm-cko-wrapper .ltm-cko-coupon-lbl svg {
	width: 14px;
	height: 14px;
	color: #BC8836;
}

.ltm-cko-wrapper .ltm-cko-coupon-row {
	display: flex;
	gap: 6px;
}

.ltm-cko-wrapper .ltm-cko-coupon-inp {
	flex: 1;
	height: 38px !important;
	padding: 6px 10px !important;
	font-size: 12.5px !important;
	background: #fff !important;
	border: 1px solid #CBD5E1 !important;
	border-radius: 6px !important;
	box-sizing: border-box;
	color: #3D0D32 !important;
}

.ltm-cko-wrapper .ltm-cko-coupon-btn {
	height: 38px;
	padding: 0 14px;
	background: #521542;
	color: #fff;
	font-size: 12.5px;
	font-weight: 600;
	border: none;
	border-radius: 6px;
	cursor: pointer;
	white-space: nowrap;
	box-shadow: none !important;
}

.ltm-cko-wrapper .ltm-cko-coupon-btn:hover {
	background: #054A4C;
}

.ltm-cko-wrapper .ltm-cko-coupon-msg {
	margin-top: 8px;
	font-size: 11.5px;
	font-weight: 600;
	padding: 5px 8px;
	border-radius: 5px;
	display: none;
}

.ltm-cko-wrapper .ltm-cko-coupon-msg.ltm-cko-ok {
	background: #DCFCE7;
	color: #15803D;
}

.ltm-cko-wrapper .ltm-cko-coupon-msg.ltm-cko-err {
	background: #FEE2E2;
	color: #B91C1C;
}

/* =========================================================================
   SECTION 9 – RESPONSIVE
   ========================================================================= */

@media (max-width: 849px) {
	.ltm-cko-wrapper {
		padding: 16px 16px 40px;
	}

	.ltm-cko-wrapper .ltm-cko-grid {
		grid-template-columns: 1fr !important;
		gap: 20px !important;
	}

	.ltm-cko-wrapper .ltm-cko-right {
		width: 100% !important;
		max-width: 100% !important;
	}

	.ltm-cko-wrapper .ltm-cko-sticky {
		position: static !important;
	}

	/* Keep First Name & Last Name side-by-side (1fr 1fr) on tablets & mobiles */
	.ltm-cko-wrapper .woocommerce-billing-fields__field-wrapper {
		grid-template-columns: 1fr 1fr !important;
		gap: 12px !important;
	}

	/* Stack all other fields vertically */
	.ltm-cko-wrapper #billing_phone_field,
	.ltm-cko-wrapper #billing_email_field,
	.ltm-cko-wrapper #billing_state_field,
	.ltm-cko-wrapper #billing_city_field,
	.ltm-cko-wrapper #billing_postcode_field,
	.ltm-cko-wrapper #billing_address_1_field {
		grid-column: 1 / -1 !important;
	}
}

@media (max-width: 480px) {
	.ltm-cko-wrapper {
		padding: 10px 10px 40px !important;
	}

	/* Keep First Name & Last Name side-by-side even on small phones */
	.ltm-cko-wrapper .woocommerce-billing-fields__field-wrapper {
		grid-template-columns: 1fr 1fr !important;
		gap: 10px 8px !important;
	}

	.ltm-cko-wrapper #billing_phone_field,
	.ltm-cko-wrapper #billing_email_field,
	.ltm-cko-wrapper #billing_state_field,
	.ltm-cko-wrapper #billing_city_field,
	.ltm-cko-wrapper #billing_postcode_field,
	.ltm-cko-wrapper #billing_address_1_field {
		grid-column: 1 / -1 !important;
	}

	.ltm-cko-wrapper .ltm-cko-card input,
	.ltm-cko-wrapper .ltm-cko-card select,
	.ltm-cko-wrapper .ltm-cko-card textarea,
	.ltm-cko-wrapper .ltm-cko-card label {
		font-size: 13px !important;
	}
}

/* =========================================================================
   SECTION 10 – AUTH POPUP (SIMPLE, CLEAN & PRETTY CARD DESIGN)
   ========================================================================= */

/* Overlay Background */
.ltm-auth-modal {
	display:         none;
	position:        fixed !important;
	top:             0 !important;
	left:            0 !important;
	width:           100vw !important;
	height:          100vh !important;
	background:      rgba(20, 5, 17, 0.65) !important;
	backdrop-filter: blur(6px) !important;
	-webkit-backdrop-filter: blur(6px) !important;
	z-index:         9999999 !important;
	align-items:     center !important;
	justify-content: center !important;
	padding:         20px !important;
	box-sizing:      border-box !important;
}

.ltm-auth-modal.active {
	display: flex !important;
}

/* Modal Card */
.ltm-auth-card {
	background:    #FFFFFF !important;
	border-radius: 18px !important;
	width:         100% !important;
	max-width:     440px !important;
	position:      relative !important;
	padding:       30px 28px 26px !important;
	box-shadow:    0 15px 40px rgba(0, 0, 0, 0.22) !important;
	border:        1px solid #F2DDB7 !important;
	box-sizing:    border-box !important;
	animation:     ltmPopFadeIn 0.25s ease-out both !important;
}

@keyframes ltmPopFadeIn {
	from { transform: scale(0.95) translateY(10px); opacity: 0; }
	to   { transform: scale(1) translateY(0); opacity: 1; }
}

/* Close Button (top right X) */
.ltm-auth-close-btn {
	position:      absolute !important;
	top:           12px !important;
	right:         14px !important;
	background:    transparent !important;
	border:        none !important;
	font-size:     26px !important;
	line-height:   1 !important;
	color:         #888888 !important;
	cursor:        pointer !important;
	padding:       4px 8px !important;
	border-radius: 50% !important;
	transition:    color 0.2s, background 0.2s !important;
}

.ltm-auth-close-btn:hover {
	color:      #521542 !important;
	background: #FCE8F3 !important;
}

/* Tab Switcher Pills */
.ltm-auth-header-tabs {
	display:       flex !important;
	background:    #FCF7F4 !important;
	border-radius: 10px !important;
	padding:       4px !important;
	margin-bottom: 22px !important;
	border:        1px solid #F2DDB7 !important;
}

.ltm-auth-tab-btn {
	flex:          1 !important;
	padding:       9px 0 !important;
	font-size:     14px !important;
	font-weight:   700 !important;
	border:        none !important;
	background:    transparent !important;
	color:         #666666 !important;
	border-radius: 8px !important;
	cursor:        pointer !important;
	transition:    all 0.2s ease !important;
	text-align:    center !important;
}

.ltm-auth-tab-btn.active {
	background: #521542 !important;
	color:      #FFFFFF !important;
	box-shadow: 0 2px 8px rgba(82, 21, 66, 0.2) !important;
}

/* Form Groups & Inputs */
.ltm-form-group {
	margin-bottom: 15px !important;
}

.ltm-form-row {
	display: flex !important;
	gap:     12px !important;
}

.ltm-form-row .ltm-form-group {
	flex:      1 !important;
	min-width: 0 !important;
}

.ltm-form-label {
	display:       block !important;
	font-size:     12.5px !important;
	font-weight:   600 !important;
	color:         #521542 !important;
	margin-bottom: 5px !important;
}

.ltm-form-label .ltm-req {
	color: #E11D48 !important;
}

.ltm-form-label-row {
	display:         flex !important;
	justify-content: space-between !important;
	align-items:     center !important;
	margin-bottom:   5px !important;
}

.ltm-form-link {
	font-size:       12px !important;
	color:           #BC8836 !important;
	font-weight:     600 !important;
	text-decoration: none !important;
}

.ltm-form-link:hover {
	color:           #521542 !important;
	text-decoration: underline !important;
}

.ltm-form-input {
	width:         100% !important;
	height:        42px !important;
	padding:       0 14px !important;
	font-size:     13.5px !important;
	color:         #333333 !important;
	background:    #FFFFFF !important;
	border:        1.5px solid #E2D5DC !important;
	border-radius: 8px !important;
	box-sizing:    border-box !important;
	outline:       none !important;
	transition:    border-color 0.2s, box-shadow 0.2s !important;
	box-shadow:    none !important;
	font-family:   inherit !important;
}

.ltm-form-input:focus {
	border-color: #521542 !important;
	box-shadow:   0 0 0 3px rgba(82, 21, 66, 0.1) !important;
}

/* Submit Button */
.ltm-form-submit-btn {
	width:          100% !important;
	height:         44px !important;
	background:     #521542 !important;
	color:          #FFFFFF !important;
	border:         none !important;
	border-radius:  8px !important;
	font-size:      14px !important;
	font-weight:    700 !important;
	cursor:         pointer !important;
	margin-top:     6px !important;
	transition:     background 0.2s ease, transform 0.1s ease !important;
	letter-spacing: 0.03em !important;
	box-shadow:     0 4px 12px rgba(82, 21, 66, 0.2) !important;
}

.ltm-form-submit-btn:hover {
	background: #3D0D32 !important;
}

.ltm-form-submit-btn:active {
	transform: scale(0.99) !important;
}

/* Footer Links */
.ltm-form-footer-switch {
	margin-top: 16px !important;
	text-align: center !important;
	font-size:  13px !important;
	color:      #666666 !important;
}

.ltm-form-footer-switch a {
	color:           #521542 !important;
	font-weight:     700 !important;
	text-decoration: none !important;
	margin-left:     4px !important;
}

.ltm-form-footer-switch a:hover {
	text-decoration: underline !important;
}

.ltm-auth-msg {
	margin-top:    12px !important;
	padding:       8px 12px !important;
	border-radius: 6px !important;
	font-size:     13px !important;
	font-weight:   600 !important;
	text-align:    center !important;
}

@media (max-width: 480px) {
	.ltm-auth-card {
		padding: 22px 20px 20px !important;
		border-radius: 14px !important;
	}
}

@media (max-width: 480px) {
	.ltm-auth-panel {
		padding: 18px 16px 20px !important;
	}

	.ltm-left-content h2 {
		font-size: 15px !important;
	}

	.ltm-left-cta {
		padding: 5px 12px !important;
		font-size: 11.5px !important;
	}
}

/* =========================================================================
   SECTION 11 – THANK YOU / BOOKING SUCCESSFUL PAGE
   ========================================================================= */

.ltm-thank-you-wrapper {
	background: #FFFFFF;
	border: 1px solid #F2DDB7;
	border-radius: 16px;
	padding: 40px 30px;
	max-width: 600px;
	margin: 40px auto;
	text-align: center;
	box-shadow: 0 10px 30px rgba(61, 13, 50, 0.05);
	box-sizing: border-box;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

.ltm-success-checkmark {
	width: 80px;
	height: 80px;
	background: #DCFCE7;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 20px;
}

.ltm-success-checkmark svg {
	width: 40px;
	height: 40px;
	stroke: #16A34A;
	stroke-width: 4;
	fill: none;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.ltm-thank-you-wrapper h2 {
	font-size: 24px;
	font-weight: 800;
	color: #521542;
	margin: 0 0 10px 0 !important;
}

.ltm-thank-you-wrapper p {
	font-size: 15px;
	color: #64748B;
	margin: 0 0 24px 0 !important;
}

.ltm-booking-number-box {
	background: #FCF7F4;
	border: 1px dashed #BC8836;
	border-radius: 10px;
	padding: 14px 20px;
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 30px;
}

.ltm-booking-number-box span {
	font-size: 15px;
	font-weight: 700;
	color: #3D0D32;
}

.ltm-booking-number-box span span {
	color: #521542;
}

.ltm-copy-icon {
	width: 20px;
	height: 20px;
	fill: #966624;
	cursor: pointer;
	transition: fill 0.2s;
}

.ltm-copy-icon:hover {
	fill: #521542;
}

.ltm-thank-you-actions {
	display: flex;
	justify-content: center;
	gap: 14px;
	flex-wrap: wrap;
}

.ltm-thank-you-actions .ltm-btn {
	padding: 12px 24px;
	font-size: 14px;
	font-weight: 700;
	border-radius: 8px;
	cursor: pointer;
	text-decoration: none;
	transition: all 0.2s;
	display: inline-block;
}

.ltm-thank-you-actions .ltm-btn-primary {
	background: #521542;
	color: #FFFFFF;
	border: 1px solid #521542;
}

.ltm-thank-you-actions .ltm-btn-primary:hover {
	background: #054A4C;
	border-color: #054A4C;
}

.ltm-thank-you-actions .ltm-btn-secondary {
	background: #FCF7F4;
	color: #521542;
	border: 1px solid #F2DDB7;
}

.ltm-thank-you-actions .ltm-btn-secondary:hover {
	background: #F2DDB7;
	color: #3D0D32;
}

/* =========================================================================
   SECTION 12 – SHORTCODE [login_signup] STYLES
   ========================================================================= */

.ltm-header-login-btn {
	font-size: 15px !important;
	font-weight: 500 !important;
	color: #521542 !important;
	text-decoration: none !important;
	transition: color 0.2s ease !important;
	display: inline-block !important;
}

.ltm-header-login-btn:hover {
	color: #054A4C !important;
}

.ltm-header-profile-link {
	display: inline-flex !important;
	align-items: center !important;
	gap: 8px !important;
	text-decoration: none !important;
	color: #3D0D32 !important;
	font-weight: 500 !important;
	font-size: 15px !important;
	transition: all 0.2s ease !important;
}

.ltm-header-profile-link:hover {
	opacity: 0.9 !important;
}

.ltm-profile-avatar {
	width: 32px !important;
	height: 32px !important;
	background: #521542 !important;
	color: #DCAA4E !important;
	border-radius: 50% !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	font-weight: 500 !important;
	font-size: 14px !important;
	border: 1.5px solid #F2DDB7 !important;
	box-shadow: none !important;
	line-height: 1 !important;
}

.ltm-profile-welcome {
	font-size: 15px !important;
	color: #3D0D32 !important;
}

@media (max-width: 849px) {
	.ltm-header-login-btn {
		font-size: 13px !important;
	}

	.ltm-header-profile-link {
		font-size: 13px !important;
	}

	.ltm-profile-welcome {
		font-size: 13px !important;
	}

	.ltm-profile-avatar {
		width: 28px !important;
		height: 28px !important;
		font-size: 12px !important;
	}
}

/* =========================================================================
   SECTION 13 – BOOKING DATE & 10 TIME SLOTS SCHEDULER
   ========================================================================= */

.ltm-cko-wrapper .ltm-cko-schedule-wrap,
.ltm-cko-schedule-wrap {
	margin-top: 28px !important;
	padding-top: 24px !important;
	border-top: 2px solid #F1F5F9 !important;
}

.ltm-cko-wrapper .ltm-slots-grid,
.ltm-slots-grid {
	display: grid !important;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)) !important;
	gap: 12px !important;
	margin-top: 12px !important;
	width: 100% !important;
	box-sizing: border-box !important;
}

.ltm-cko-wrapper .ltm-slot-card,
.ltm-slot-card {
	position: relative !important;
	background: #FFFFFF !important;
	border: 1.5px solid #CBD5E1 !important;
	border-radius: 12px !important;
	padding: 12px 14px !important;
	cursor: pointer !important;
	transition: all 0.2s ease !important;
	display: flex !important;
	flex-direction: row !important;
	align-items: center !important;
	justify-content: flex-start !important;
	gap: 12px !important;
	box-sizing: border-box !important;
	user-select: none !important;
	margin: 0 !important;
	width: 100% !important;
}

.ltm-cko-wrapper .ltm-slot-card:hover:not(.ltm-slot-full),
.ltm-slot-card:hover:not(.ltm-slot-full) {
	border-color: #BC8836 !important;
	background: #FCF7F4 !important;
	transform: translateY(-1px) !important;
}

.ltm-cko-wrapper .ltm-slot-radio,
.ltm-slot-radio,
.ltm-slot-card input[type="radio"] {
	position: static !important;
	opacity: 1 !important;
	visibility: visible !important;
	width: 18px !important;
	height: 18px !important;
	accent-color: #521542 !important;
	margin: 0 !important;
	padding: 0 !important;
	cursor: pointer !important;
	flex-shrink: 0 !important;
}

.ltm-cko-wrapper .ltm-slot-card.ltm-selected,
.ltm-cko-wrapper .ltm-slot-card:has(.ltm-slot-radio:checked),
.ltm-slot-card.ltm-selected,
.ltm-slot-card:has(.ltm-slot-radio:checked) {
	border-color: #521542 !important;
	background: #FCF7F4 !important;
	box-shadow: 0 4px 14px rgba(82, 21, 66, 0.12) !important;
}

.ltm-cko-wrapper .ltm-slot-details,
.ltm-slot-details {
	display: flex !important;
	flex-direction: column !important;
	flex: 1 !important;
	min-width: 0 !important;
	gap: 2px !important;
	text-align: left !important;
}

.ltm-cko-wrapper .ltm-slot-label,
.ltm-slot-label {
	font-size: 13.5px !important;
	font-weight: 700 !important;
	color: #521542 !important;
	line-height: 1.2 !important;
}

.ltm-cko-wrapper .ltm-slot-time,
.ltm-slot-time {
	font-size: 12px !important;
	font-weight: 600 !important;
	color: #64748B !important;
	line-height: 1.2 !important;
}

.ltm-cko-wrapper .ltm-slot-badge,
.ltm-slot-badge {
	font-size: 11px !important;
	font-weight: 700 !important;
	padding: 3px 9px !important;
	border-radius: 12px !important;
	background: #DCFCE7 !important;
	color: #15803D !important;
	letter-spacing: 0.02em !important;
	white-space: nowrap !important;
	flex-shrink: 0 !important;
}

/* Disabled / Full Slot */
.ltm-cko-wrapper .ltm-slot-card.ltm-slot-full,
.ltm-slot-card.ltm-slot-full {
	background: #F8FAFC !important;
	border-color: #E2E8F0 !important;
	opacity: 0.65 !important;
	cursor: not-allowed !important;
	transform: none !important;
}

.ltm-cko-wrapper .ltm-slot-card.ltm-slot-full .ltm-slot-label,
.ltm-slot-card.ltm-slot-full .ltm-slot-label {
	color: #94A3B8 !important;
}

.ltm-cko-wrapper .ltm-slot-card.ltm-slot-full .ltm-slot-time,
.ltm-slot-card.ltm-slot-full .ltm-slot-time {
	color: #CBD5E1 !important;
}

.ltm-cko-wrapper .ltm-slot-card.ltm-slot-full .ltm-slot-badge,
.ltm-slot-card.ltm-slot-full .ltm-slot-badge {
	background: #FEE2E2 !important;
	color: #991B1B !important;
}

@media (max-width: 600px) {
	.ltm-cko-wrapper .ltm-slots-grid,
	.ltm-slots-grid {
		grid-template-columns: 1fr !important;
		gap: 10px !important;
	}
}