/* Checkout + cart flow — readable, large tap targets, calm hierarchy */

/* Membership PDP: chips are the UI; keep native selects for WC + screen readers */
.single-product form.variations_form table.variations {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* Cart: prominent proceed + clear hit area */
.woocommerce-cart .wc-proceed-to-checkout {
	position: relative;
	z-index: 2;
	margin-top: 1.25rem !important;
	padding-top: 0.25rem !important;
}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	min-height: 56px !important;
	font-size: 1.1rem !important;
	letter-spacing: 0.08em !important;
	text-decoration: none !important;
	text-decoration-line: none !important;
	background: #c72127 !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
}

/* Checkout page shell — align progress intro + form to same gutters */
body.woocommerce-checkout #main.ta-site {
	max-width: 1120px;
	margin-left: auto;
	margin-right: auto;
	padding-left: clamp(1rem, 4vw, 2rem);
	padding-right: clamp(1rem, 4vw, 2rem);
	box-sizing: border-box;
	overflow-x: clip;
	width: 100%;
}

body.woocommerce-checkout .ta-checkout-flow {
	max-width: none;
	margin: 0;
	padding: clamp(1.25rem, 4vw, 2.5rem) 0;
}

/* Selected package confirmation (after add-to-cart → checkout) */
.ta-checkout-package-banner {
	margin: 0 0 1.15rem;
	padding: 1rem 1.15rem 1.05rem;
	border-radius: 10px;
	border: 2px solid #ecc918;
	background: linear-gradient(165deg, #fffbf0 0%, #fff7d6 45%, #fff3c4 100%);
	box-shadow: 0 6px 22px rgba(0, 0, 0, 0.07);
	text-align: center;
}

.ta-checkout-package-banner-kicker {
	margin: 0 0 0.35rem;
	font-family: Oswald, Inter, sans-serif;
	font-weight: 800;
	font-size: clamp(0.78rem, 2.4vw, 0.88rem);
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: #8a7200;
}

.ta-checkout-package-banner-detail {
	margin: 0;
	font-family: Inter, system-ui, sans-serif;
	font-size: clamp(1.02rem, 3vw, 1.14rem);
	font-weight: 700;
	line-height: 1.35;
	color: #111;
	overflow-wrap: anywhere;
}

/* Memorial Day: size + tee weight on checkout (cart already has membership) */
.ta-md-checkout-size-step {
	margin: 0 0 1.35rem;
	padding: 1.25rem 1.15rem 1.1rem;
	border: 2px solid #ecc918;
	border-radius: 10px;
	background: #fff;
	box-shadow: 0 6px 22px rgba(0, 0, 0, 0.06);
}

.ta-md-checkout-size-heading {
	margin: 0.15rem 0 0.55rem;
	font-family: Georgia, serif;
	font-size: clamp(1.45rem, 4vw, 2rem);
	line-height: 1.1;
	color: #111;
}

.ta-md-checkout-size-lead {
	margin: 0 0 1rem;
	font-size: 1rem;
	line-height: 1.55;
	color: #333;
}

.ta-md-checkout-size-status {
	margin: 0 0 0.85rem;
	font-weight: 700;
	font-size: 0.95rem;
	color: #1a5c1a;
}

.ta-md-checkout-size-status.is-error {
	color: #a11;
}

.ta-md-checkout-size-tee-note {
	margin: 0 0 1rem;
	padding: 0.65rem 0.85rem;
	background: #faf5ee;
	border-radius: 6px;
	font-size: 0.95rem;
	line-height: 1.45;
	color: #333;
}

.ta-md-size-confirm-wrap {
	margin: 1.1rem 0 0;
	text-align: center;
}

.ta-md-size-confirm-btn {
	display: inline-block;
	min-width: min(100%, 320px);
	padding: 14px 28px;
	font-family: Oswald, Inter, sans-serif;
	font-size: 1rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #000;
	background: #ecc918;
	border: 2px solid #c9a80f;
	border-radius: 8px;
	cursor: pointer;
	transition: background 0.15s ease, transform 0.15s ease;
}

.ta-md-size-confirm-btn:hover:not(:disabled),
.ta-md-size-confirm-btn:focus-visible:not(:disabled) {
	background: #f5d84a;
}

.ta-md-size-confirm-btn:disabled,
.ta-md-size-confirm-btn[aria-disabled="true"] {
	opacity: 0.45;
	cursor: not-allowed;
}

.ta-md-size-confirm-help {
	margin: 0.55rem 0 0;
	font-size: 0.9rem;
	color: #626162;
}

.ta-md-size-confirmed-panel {
	text-align: center;
	padding: 0.35rem 0 0.25rem;
}

.ta-md-checkout-size-status.is-locked {
	margin: 0 0 0.65rem;
	font-weight: 700;
	font-size: 1rem;
	color: #1a5c1a;
}

.ta-md-size-change-btn {
	background: transparent;
	border: 0;
	color: #141414;
	font-size: 0.9rem;
	font-weight: 700;
	text-decoration: underline;
	cursor: pointer;
	padding: 0.25rem 0.5rem;
}

.ta-md-checkout-size-step.is-confirmed {
	border-color: #1a5c1a;
	background: linear-gradient(165deg, #f8fff8 0%, #fff 55%);
}

body.ta-md-needs-size-pick #place_order {
	opacity: 0.55;
	cursor: not-allowed;
	pointer-events: none;
}

body.ta-md-needs-size-pick.ta-checkout-step-active--1 .ta-checkout-column-main .ta-checkout-wizard-actions--step1 .ta-checkout-wizard-next {
	pointer-events: auto;
}

body.ta-md-needs-size-pick .ta-checkout-package-banner {
	border-color: #ecc918;
}

.ta-checkout-progress {
	list-style: none;
	margin: 0 0 1.25rem;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0.5rem;
}
.ta-checkout-progress li {
	font-family: Oswald, Inter, sans-serif;
	font-size: 0.82rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	text-align: center;
	padding: 0.65rem 0.5rem;
	border-radius: 8px;
	background: #fff;
	border: 1px solid #c8c8c8;
	color: #3d3d3d;
}
.ta-checkout-progress li.is-active {
	background: #fff7d6;
	border-color: #ecc918;
	color: #000;
	box-shadow: 0 0 0 1px rgba(236, 201, 24, 0.35);
}
.ta-checkout-progress li.is-done {
	background: rgba(61, 110, 68, 0.08);
	border-color: rgba(61, 110, 68, 0.35);
	color: #1f4d2a;
}

.ta-checkout-same-address-note {
	margin: 0 0 1rem;
	padding: 0.85rem 1rem;
	background: #fff;
	border: 1px solid #e0e2e0;
	border-radius: 8px;
	font-size: 1.02rem;
	line-height: 1.45;
	color: #333;
}

/* Checkout layout (senior + order-first templates) */
.woocommerce-checkout.ta-checkout-senior #order_review_heading,
.woocommerce-checkout.ta-checkout-senior .ta-checkout-step-heading,
.woocommerce-checkout.ta-checkout-order-first #order_review_heading,
.woocommerce-checkout.ta-checkout-order-first .ta-checkout-step-heading {
	font-family: Georgia, serif !important;
	color: #1a1a1a !important;
	font-size: clamp(1.75rem, 3.5vw, 2.35rem) !important;
	line-height: 1.1 !important;
	margin: 0 0 0.85rem !important;
}

/* Plain-language note under Step 1 title about wallet / express buttons above */
.ta-checkout-column-main .ta-checkout-express-pay-hint {
	font-family: Inter, system-ui, sans-serif !important;
	font-weight: 600 !important;
	font-size: clamp(0.95rem, 2.8vw, 1.08rem) !important;
	line-height: 1.5 !important;
	color: #333 !important;
	margin: -0.35rem 0 1rem !important;
	max-width: 42rem;
	font-style: normal !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}

.ta-checkout-express-pay-hint.ta-checkout-express-pay-hint--hidden {
	display: none !important;
}

.woocommerce-checkout.ta-checkout-senior #order_review,
.woocommerce-checkout.ta-checkout-order-first #order_review {
	background: #fff !important;
	border: 1px solid #e0e2e0 !important;
	border-radius: 12px !important;
	padding: 1.35rem !important;
	margin: 0 0 1.75rem !important;
}

.woocommerce-checkout.ta-checkout-senior #customer_details,
.woocommerce-checkout.ta-checkout-order-first #customer_details {
	background: #faf5ee !important;
	border-radius: 12px !important;
	padding: 1.35rem !important;
	margin-bottom: 1.25rem !important;
}

.woocommerce-checkout.ta-checkout-senior #customer_details h3,
.woocommerce-checkout.ta-checkout-order-first #customer_details h3,
.woocommerce-checkout.ta-checkout-senior #ship-to-different-address,
.woocommerce-checkout.ta-checkout-order-first #ship-to-different-address {
	font-family: Oswald, Inter, sans-serif !important;
	font-size: 1.15rem !important;
	font-weight: 800 !important;
	letter-spacing: 0.04em !important;
	text-transform: none !important;
	color: #000 !important;
}

.woocommerce-checkout.ta-checkout-senior .form-row label,
.woocommerce-checkout.ta-checkout-order-first .form-row label {
	font-size: 1rem !important;
	font-weight: 700 !important;
	color: #000 !important;
	margin-bottom: 0.35rem !important;
}

.woocommerce-checkout.ta-checkout-senior input.input-text,
.woocommerce-checkout.ta-checkout-senior select,
.woocommerce-checkout.ta-checkout-senior textarea,
.woocommerce-checkout.ta-checkout-order-first input.input-text,
.woocommerce-checkout.ta-checkout-order-first select,
.woocommerce-checkout.ta-checkout-order-first textarea {
	font-size: 1.05rem !important;
	line-height: 1.35 !important;
	min-height: 52px !important;
	padding: 0.75rem 0.85rem !important;
	border: 2px solid #c8c8c8 !important;
	border-radius: 8px !important;
	background: #fff !important;
	color: #000 !important;
}

.woocommerce-checkout.ta-checkout-senior input.input-text:focus,
.woocommerce-checkout.ta-checkout-senior select:focus,
.woocommerce-checkout.ta-checkout-senior textarea:focus,
.woocommerce-checkout.ta-checkout-order-first input.input-text:focus,
.woocommerce-checkout.ta-checkout-order-first select:focus,
.woocommerce-checkout.ta-checkout-order-first textarea:focus {
	border-color: #c72127 !important;
	box-shadow: 0 0 0 3px rgba(199, 33, 39, 0.2) !important;
	outline: none !important;
}

.woocommerce-checkout.ta-checkout-senior #ship-to-different-address label,
.woocommerce-checkout.ta-checkout-order-first #ship-to-different-address label {
	display: flex !important;
	align-items: flex-start !important;
	gap: 0.65rem !important;
	font-size: 1.02rem !important;
	line-height: 1.4 !important;
	color: #000 !important;
	cursor: pointer !important;
	padding: 0.75rem 0.85rem !important;
	background: #fff !important;
	border: 1px solid #e0e2e0 !important;
	border-radius: 8px !important;
}

.woocommerce-checkout.ta-checkout-senior #ship-to-different-address label span,
.woocommerce-checkout.ta-checkout-order-first #ship-to-different-address label span {
	color: #000 !important;
}

.woocommerce-checkout.ta-checkout-senior #ship-to-different-address-checkbox,
.woocommerce-checkout.ta-checkout-order-first #ship-to-different-address-checkbox {
	width: 1.35rem !important;
	height: 1.35rem !important;
	min-width: 1.35rem !important;
	margin: 0.15rem 0 0 !important;
	accent-color: #c72127;
}

.woocommerce-checkout.ta-checkout-senior .shipping_address,
.woocommerce-checkout.ta-checkout-order-first .shipping_address {
	margin-top: 0.75rem !important;
	padding-top: 0.75rem !important;
	border-top: 1px dashed #d8d8d8 !important;
}

.woocommerce-checkout.ta-checkout-senior .col2-set,
.woocommerce-checkout.ta-checkout-order-first .col2-set,
.woocommerce-checkout.ta-checkout-senior .ta-customer-details-stack,
.woocommerce-checkout.ta-checkout-order-first .ta-customer-details-stack {
	display: block !important;
}
.woocommerce-checkout.ta-checkout-senior .col2-set .col-1,
.woocommerce-checkout.ta-checkout-senior .col2-set .col-2,
.woocommerce-checkout.ta-checkout-order-first .col2-set .col-1,
.woocommerce-checkout.ta-checkout-order-first .col2-set .col-2,
.woocommerce-checkout.ta-checkout-senior .ta-checkout-billing-wrap,
.woocommerce-checkout.ta-checkout-senior .ta-checkout-shipping-wrap,
.woocommerce-checkout.ta-checkout-order-first .ta-checkout-billing-wrap,
.woocommerce-checkout.ta-checkout-order-first .ta-checkout-shipping-wrap {
	width: 100% !important;
	float: none !important;
}

.woocommerce-checkout.ta-checkout-senior .ta-checkout-shipping-wrap,
.woocommerce-checkout.ta-checkout-order-first .ta-checkout-shipping-wrap {
	margin-top: 0.5rem !important;
}

.woocommerce-checkout.ta-checkout-senior .ta-checkout-step-pay,
.woocommerce-checkout.ta-checkout-order-first .ta-checkout-step-pay {
	margin: 1.25rem 0 0.75rem !important;
}

.woocommerce-checkout.ta-checkout-senior #payment,
.woocommerce-checkout.ta-checkout-order-first #payment {
	background: #fff !important;
	border: 2px solid #e0e2e0 !important;
	border-radius: 12px !important;
	padding: 1.25rem !important;
}

.woocommerce-checkout.ta-checkout-senior #place_order,
.woocommerce-checkout.ta-checkout-senior button#place_order,
.woocommerce-checkout.ta-checkout-order-first #place_order,
.woocommerce-checkout.ta-checkout-order-first button#place_order {
	width: 100% !important;
	min-height: 58px !important;
	font-size: 1.15rem !important;
	font-weight: 800 !important;
	letter-spacing: 0.08em !important;
	background: #c72127 !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	border-radius: 8px !important;
	border: 0 !important;
	text-decoration: none !important;
}

.woocommerce-checkout.ta-checkout-senior #place_order:hover,
.woocommerce-checkout.ta-checkout-order-first #place_order:hover {
	background: #000 !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
}

.woocommerce-checkout.ta-checkout-senior .woocommerce-error,
.woocommerce-checkout.ta-checkout-senior .woocommerce-NoticeGroup-checkout .woocommerce-error,
.woocommerce-checkout.ta-checkout-order-first .woocommerce-error,
.woocommerce-checkout.ta-checkout-order-first .woocommerce-NoticeGroup-checkout .woocommerce-error {
	font-size: 1.02rem !important;
	line-height: 1.45 !important;
	padding: 0.85rem 1rem !important;
	border-radius: 8px !important;
	color: #fff !important;
	background: #c72127 !important;
}

.woocommerce-checkout.ta-checkout-senior .woocommerce-invalid input,
.woocommerce-checkout.ta-checkout-order-first .woocommerce-invalid input {
	border-color: #c72127 !important;
}

/* -------------------------------------------------------------------------
   Contrast compliance on light cart/checkout (overrides legacy dark-theme
   WooCommerce rules in site.css: cream headings on cream background, etc.)
   ------------------------------------------------------------------------- */
body.woocommerce-cart .ta-site,
body.woocommerce-checkout .ta-site {
	color: #000 !important;
	background: #fafae1 !important;
}

body.woocommerce-cart .ta-site a:not(.button):not(.checkout-button):not(.ta-cart-clear):not(.remove),
body.woocommerce-checkout .ta-site a:not(.button):not(#place_order):not(.remove) {
	color: #c72127 !important;
}

body.woocommerce-cart .ta-site h1,
body.woocommerce-cart .ta-site h2,
body.woocommerce-cart .ta-site h3,
body.woocommerce-checkout .ta-site h1,
body.woocommerce-checkout .ta-site h2,
body.woocommerce-checkout .ta-site h3,
body.woocommerce-checkout .woocommerce-checkout h3,
body.woocommerce-cart .woocommerce-cart h2,
body.woocommerce-cart .cart_totals h2 {
	color: #1a1a1a !important;
}

body.woocommerce-cart .woocommerce table.shop_table th,
body.woocommerce-checkout .woocommerce table.shop_table th {
	color: #1a1a1a !important;
	background: #f3f3f3 !important;
}

body.woocommerce-cart .woocommerce table.shop_table td,
body.woocommerce-cart .woocommerce table.shop_table th,
body.woocommerce-checkout .woocommerce table.shop_table td,
body.woocommerce-checkout .woocommerce table.shop_table th {
	color: #000 !important;
	border-color: #d8d8d8 !important;
}

body.woocommerce-cart .woocommerce table.shop_table a,
body.woocommerce-checkout .woocommerce table.shop_table a {
	color: #c72127 !important;
}

body.woocommerce-cart .cart_totals,
body.woocommerce-checkout #order_review,
body.woocommerce-checkout #customer_details,
body.woocommerce-checkout #payment {
	color: #000 !important;
}

body.woocommerce-checkout #payment,
body.woocommerce-checkout #payment ul.payment_methods {
	background: #fff !important;
	color: #000 !important;
}

body.woocommerce-checkout #payment div.payment_box,
body.woocommerce-checkout #payment .payment_box {
	background: #f5f5f5 !important;
	color: #000 !important;
}

body.woocommerce-checkout #payment div.payment_box::before {
	border-bottom-color: #f5f5f5 !important;
}

body.woocommerce-checkout #payment label,
body.woocommerce-checkout #payment .wc-stripe-elements-field,
body.woocommerce-checkout .woocommerce-privacy-policy-text,
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
	color: #000 !important;
}

body.woocommerce-checkout .woocommerce-form-login-toggle,
body.woocommerce-checkout .woocommerce-form-coupon-toggle,
body.woocommerce-checkout .woocommerce-info {
	color: #000 !important;
	background: #fff !important;
	border-color: #d8d8d8 !important;
}

body.woocommerce-checkout .woocommerce-form-coupon-toggle a,
body.woocommerce-checkout .woocommerce-form-login-toggle a {
	color: #c72127 !important;
}

body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:link,
body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:visited {
	background: #c72127 !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
}

body.woocommerce-cart .woocommerce-cart-form .actions .button,
body.woocommerce-cart .woocommerce-cart-form .actions button[name="update_cart"],
body.woocommerce-checkout .woocommerce-checkout .button.alt,
body.woocommerce-checkout #payment .button {
	background: #c72127 !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	opacity: 1 !important;
}

body.woocommerce-cart .woocommerce-cart-form .actions button[name="update_cart"]:disabled {
	background: #d8d8d8 !important;
	color: #3d3d3d !important;
	-webkit-text-fill-color: #3d3d3d !important;
	border-color: #b0b0b0 !important;
}

body.woocommerce-cart .woocommerce-cart-form .coupon .button,
body.woocommerce-checkout .checkout_coupon .button {
	background: #ececec !important;
	color: #1a1a1a !important;
	-webkit-text-fill-color: #1a1a1a !important;
	border: 1px solid #9a9a9a !important;
}

body.woocommerce-cart .woocommerce-message,
body.woocommerce-checkout .woocommerce-message {
	color: #1f4d2a !important;
	background: #eef6ef !important;
}

@media (max-width: 991px) {
	body.ta-checkout-wizard .ta-checkout-progress {
		grid-template-columns: 1fr !important;
		gap: 0.45rem;
		margin-bottom: 1rem;
	}

	body.ta-checkout-wizard .ta-checkout-progress li {
		text-align: left;
		padding: 0.62rem 0.85rem;
		font-size: clamp(0.74rem, 3.4vw, 0.84rem);
		letter-spacing: 0.055em;
	}

	body.ta-checkout-wizard .ta-checkout-flow {
		padding-top: 1rem;
		padding-bottom: 1rem;
	}

	body.ta-checkout-wizard.ta-checkout-step-active--2 .ta-checkout-flow,
	body.ta-checkout-wizard.ta-checkout-step-active--3 .ta-checkout-flow {
		padding-top: 0.35rem;
		padding-bottom: 0.35rem;
	}

	body.ta-checkout-wizard.ta-checkout-step-active--2 .ta-checkout-progress,
	body.ta-checkout-wizard.ta-checkout-step-active--3 .ta-checkout-progress {
		margin-bottom: 0.65rem;
	}

	body.ta-checkout-wizard .ta-checkout-wizard-actions {
		flex-direction: column;
		align-items: stretch;
		width: 100%;
		max-width: 100%;
		gap: 0.65rem;
		margin-top: 1rem;
		margin-bottom: 0.35rem;
		box-sizing: border-box;
	}

	body.ta-checkout-wizard .ta-checkout-wizard-actions .button {
		width: 100%;
		max-width: none;
		box-sizing: border-box;
		text-align: center;
		justify-content: center;
	}

	body.ta-checkout-wizard .ta-checkout-wizard-panel[data-ta-step-panel='2'] > .ta-checkout-wizard-actions {
		flex-direction: column-reverse;
		justify-content: stretch;
		width: 100%;
	}

	body.ta-checkout-wizard.ta-checkout-step-active--2 #order_review,
	body.ta-checkout-wizard.ta-checkout-step-active--3 #order_review {
		overflow-x: auto;
		overflow-y: visible;
		-webkit-overflow-scrolling: touch;
		max-width: 100%;
		padding: 1rem !important;
		margin-bottom: 1rem !important;
	}

	body.ta-checkout-wizard.ta-checkout-step-active--2 .ta-checkout-column-summary,
	body.ta-checkout-wizard.ta-checkout-step-active--3 .ta-checkout-column-summary {
		overflow-x: visible !important;
	}

	body.woocommerce-checkout.ta-checkout-wizard #main.ta-site {
		overflow-x: visible;
	}

	body.ta-checkout-wizard #customer_details,
	body.ta-checkout-wizard #order_review_heading,
	body.ta-checkout-wizard #ta-checkout-pay-heading {
		scroll-margin-top: 0.85rem;
	}

	/* Space so sticky payment bar does not cover totals / legal copy */
	body.woocommerce-checkout:not(.woocommerce-order-received).ta-checkout-wizard.ta-checkout-step-active--3
		form.checkout.woocommerce-checkout.ta-checkout-senior,
	body.woocommerce-checkout:not(.woocommerce-order-received):not(.ta-checkout-wizard)
		form.checkout.woocommerce-checkout.ta-checkout-senior {
		padding-bottom: 10rem !important;
	}

	body.woocommerce-checkout:not(.woocommerce-order-received).ta-checkout-wizard.ta-checkout-step-active--1
		form.checkout.woocommerce-checkout.ta-checkout-senior,
	body.woocommerce-checkout:not(.woocommerce-order-received).ta-checkout-wizard.ta-checkout-step-active--2
		form.checkout.woocommerce-checkout.ta-checkout-senior {
		padding-bottom: 1.25rem !important;
	}

	body.woocommerce-checkout:not(.woocommerce-order-received).ta-checkout-wizard.ta-checkout-step-active--1 #payment,
	body.woocommerce-checkout:not(.woocommerce-order-received).ta-checkout-wizard.ta-checkout-step-active--2 #payment {
		position: relative !important;
		bottom: auto !important;
		z-index: auto !important;
		box-shadow: none !important;
		padding-bottom: 1rem !important;
	}

	body.woocommerce-checkout.ta-checkout-wizard.ta-checkout-step-active--3 #payment {
		position: sticky;
		bottom: 0;
		z-index: 30;
		margin-bottom: 0 !important;
		box-shadow: 0 -8px 28px rgba(0, 0, 0, 0.12);
		padding-bottom: max(1rem, env(safe-area-inset-bottom)) !important;
	}

	body.woocommerce-checkout:not(.woocommerce-order-received):not(.ta-checkout-wizard) #payment {
		position: sticky;
		bottom: 0;
		z-index: 30;
		margin-bottom: 0 !important;
		box-shadow: 0 -8px 28px rgba(0, 0, 0, 0.12);
		padding-bottom: max(1rem, env(safe-area-inset-bottom)) !important;
	}
}

/* -------------------------------------------------------------------------
   Two-column checkout: explicit wrappers keep Stripe express buttons +
   billing in the main column so CSS grid auto-placement cannot break layout.
   ------------------------------------------------------------------------- */
.ta-checkout-columns {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.35rem;
	align-items: start;
	width: 100%;
	box-sizing: border-box;
}

.ta-checkout-column-main,
.ta-checkout-column-summary {
	min-width: 0;
	overflow-x: clip;
}

body.woocommerce-checkout .checkout .form-row-first,
body.woocommerce-checkout .checkout .form-row-last,
body.woocommerce-checkout .checkout .form-row {
	box-sizing: border-box !important;
}

/* Stripe / WooCommerce wallet buttons — full width in main column */
.ta-checkout-column-main #wc-stripe-payment-request-wrapper,
.ta-checkout-column-main #wc-stripe-express-checkout-element,
.ta-checkout-column-main .wcpay-payment-request-wrapper {
	width: 100% !important;
	max-width: 100% !important;
	margin-bottom: 0.75rem !important;
}

@media (min-width: 992px) {
	body.woocommerce-checkout:not(.woocommerce-order-received) .ta-checkout-columns {
		grid-template-columns: minmax(0, 1fr) minmax(300px, 400px);
		column-gap: 1.75rem;
	}

	body.woocommerce-checkout:not(.woocommerce-order-received) .ta-checkout-column-summary {
		position: sticky;
		top: 1rem;
		align-self: start;
		max-height: calc(100vh - 2rem);
		overflow-y: auto;
		padding-bottom: 0.35rem;
		z-index: 3;
	}

	body.woocommerce-checkout:not(.woocommerce-order-received) .ta-checkout-review-pay-stack {
		position: static;
		max-height: none;
		overflow: visible;
	}
}

/* Multi-step checkout wizard */
.ta-checkout-wizard-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem;
	align-items: center;
	justify-content: flex-start;
	margin-top: 1.25rem;
	margin-bottom: 0.25rem;
}

.ta-checkout-wizard-panel[data-ta-step-panel='2'] > .ta-checkout-wizard-actions {
	justify-content: space-between;
	width: 100%;
}

.ta-checkout-wizard-actions .button.alt {
	background: #c72127 !important;
	color: #fff !important;
	-webkit-text-fill-color: #fff !important;
	border: 0 !important;
	min-height: 52px !important;
	padding-left: 1.25rem !important;
	padding-right: 1.25rem !important;
	font-weight: 800 !important;
}

.ta-checkout-wizard-actions .button.ta-checkout-wizard-back {
	min-height: 52px !important;
	background: #ececec !important;
	color: #1a1a1a !important;
	border: 1px solid #9a9a9a !important;
}

.ta-checkout-wizard-actions--pay-top {
	margin-bottom: 0.85rem !important;
}

body.ta-checkout-wizard.ta-checkout-step-active--1 .ta-checkout-column-summary {
	display: none !important;
}

body.ta-checkout-wizard.ta-checkout-step-active--2 .ta-checkout-column-main,
body.ta-checkout-wizard.ta-checkout-step-active--3 .ta-checkout-column-main {
	display: none !important;
}

body.ta-checkout-wizard.ta-checkout-step-active--2 [data-ta-step-panel='3'],
body.ta-checkout-wizard.ta-checkout-step-active--3 [data-ta-step-panel='2'] {
	display: none !important;
}

body.ta-checkout-wizard.ta-checkout-step-active--3 #order_review_heading {
	display: none !important;
}

/* Wizard hides one column via display:none but the desktop grid still defines two
   tracks, so an empty second column steals ~300–400px and clips the main column. */
body.ta-checkout-wizard.ta-checkout-step-active--1 .ta-checkout-columns,
body.ta-checkout-wizard.ta-checkout-step-active--2 .ta-checkout-columns,
body.ta-checkout-wizard.ta-checkout-step-active--3 .ta-checkout-columns {
	grid-template-columns: 1fr !important;
}

body.ta-checkout-wizard.ta-checkout-step-active--1 .ta-checkout-column-main {
	grid-column: 1 / -1 !important;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	overflow-x: visible !important;
}

/* Step 1: never clip billing/shipping fields (desktop + mobile) */
body.ta-checkout-wizard.ta-checkout-step-active--1 #main.ta-site {
	overflow-x: visible;
}

body.ta-checkout-wizard.ta-checkout-step-active--1 form.checkout.woocommerce-checkout {
	overflow-x: visible;
	max-width: 100%;
	box-sizing: border-box;
}

body.ta-checkout-wizard.ta-checkout-step-active--1 #customer_details {
	overflow-x: visible;
	max-width: 100%;
}

body.ta-checkout-wizard.ta-checkout-step-active--1 .col2-set,
body.ta-checkout-wizard.ta-checkout-step-active--1 .ta-customer-details-stack {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

body.ta-checkout-wizard.ta-checkout-step-active--1 .checkout input.input-text,
body.ta-checkout-wizard.ta-checkout-step-active--1 .checkout input[type='email'],
body.ta-checkout-wizard.ta-checkout-step-active--1 .checkout input[type='tel'],
body.ta-checkout-wizard.ta-checkout-step-active--1 .checkout textarea,
body.ta-checkout-wizard.ta-checkout-step-active--1 .checkout select {
	max-width: 100%;
	box-sizing: border-box !important;
	overflow-wrap: anywhere;
}

body.ta-checkout-wizard.ta-checkout-step-active--2 .ta-checkout-column-summary,
body.ta-checkout-wizard.ta-checkout-step-active--3 .ta-checkout-column-summary {
	grid-column: 1 / -1 !important;
	position: static !important;
	max-height: none !important;
	overflow: visible !important;
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
	width: 100%;
}

body.ta-checkout-wizard.ta-checkout-step-active--2 .ta-checkout-column-summary .ta-checkout-review-pay-stack,
body.ta-checkout-wizard.ta-checkout-step-active--3 .ta-checkout-column-summary .ta-checkout-review-pay-stack {
	width: 100%;
}

.ta-checkout-pay-hint,
.ta-checkout-trust-line {
	font-size: 0.98rem !important;
	line-height: 1.45 !important;
	color: #333 !important;
	margin: 0 0 0.85rem !important;
	max-width: 36rem;
}

.ta-checkout-trust-line {
	margin-top: 0.35rem !important;
	margin-bottom: 0.75rem !important;
	padding: 0.65rem 0.75rem !important;
	background: #f8f8f4 !important;
	border-radius: 8px !important;
	border: 1px solid #e8e8e0 !important;
}

.ta-checkout-order-notes-details {
	margin: 1rem 0 0;
	border: 1px solid #e0e2e0;
	border-radius: 10px;
	background: #fff;
	overflow: hidden;
}

.ta-checkout-order-notes-summary {
	cursor: pointer;
	list-style: none;
	font-family: Oswald, Inter, sans-serif;
	font-weight: 700;
	font-size: 0.95rem;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #000 !important;
	padding: 0.85rem 1rem;
	margin: 0;
	background: #fafafa;
	border-bottom: 1px solid transparent;
}

.ta-checkout-order-notes-details[open] .ta-checkout-order-notes-summary {
	border-bottom-color: #e0e2e0;
}

.ta-checkout-order-notes-summary::-webkit-details-marker {
	display: none;
}

.ta-checkout-order-notes-inner {
	padding: 0.75rem 1rem 1rem;
}

.ta-checkout-field-msg {
	display: block;
	margin-top: 0.35rem;
	font-size: 0.92rem;
	line-height: 1.35;
	color: #444;
}

.form-row.ta-checkout-field-msg-error .ta-checkout-field-msg {
	color: #7f211a !important;
	font-weight: 600;
}

.form-row.ta-checkout-field-msg-error input.input-text,
.form-row.ta-checkout-field-msg-error select {
	border-color: #c72127 !important;
}

body.woocommerce-checkout.woocommerce-order-received .woocommerce-order {
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
	padding: 0 clamp(1rem, 4vw, 2rem);
}

.ta-thankyou-hero {
	background: linear-gradient(180deg, #fff 0%, #faf7ee 100%);
	border: 1px solid #ecc918;
	border-radius: 12px;
	padding: 1.35rem 1.25rem 1.45rem;
	margin: 0 0 1.5rem;
	text-align: center;
}

.ta-thankyou-kicker {
	font-family: Oswald, Inter, sans-serif;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: #c72127;
	font-size: 0.82rem;
	margin: 0 0 0.35rem;
}

.ta-thankyou-headline {
	font-family: Georgia, serif;
	font-size: clamp(1.65rem, 4vw, 2.1rem);
	line-height: 1.15;
	color: #1a1a1a !important;
	margin: 0 0 0.65rem;
}

.ta-thankyou-copy {
	margin: 0;
	font-size: 1.05rem;
	line-height: 1.5;
	color: #222 !important;
}
