/* ============================================================
   APG — Checkout · Multi-Step Redesign
   Targets: template-checkout.php (+ template-parts/checkout-faq.php)
   ============================================================ */

.checkout-head,
form.checkout.woocommerce-checkout,
#checkout-progress,
#checkout-faq,
#checkout-order-review {
	--apg-navy: #001740;
	--apg-navy-2: #0a2a52;
	--apg-accent: #ff930d;
	--apg-accent-dark: #e17f00;
	--apg-accent-darker: #c96f00;
	--apg-teal: #00557a;
	--apg-ink: #1a1a1a;
	--apg-ink-2: #4b5563;
	--apg-muted: #6b7280;
	--apg-faint: #9aa1ab;
	--apg-line: #eef0f3;
	--apg-line-2: #d6dae0;
	--apg-surface: #ffffff;
	--apg-surface-2: #fafbfc;
	--apg-surface-3: #f5f6f8;
	--apg-radius: 16px;
	--apg-radius-sm: 10px;
	--apg-shadow-sm: 0 2px 10px rgba(17, 24, 39, .05);
	--apg-shadow-md: 0 14px 40px rgba(17, 24, 39, .10);
	--apg-shadow-lg: 0 26px 70px rgba(17, 24, 39, .16);
	--apg-ease: cubic-bezier(.22, .61, .36, 1);
}

/* ---------- Page shell ---------- */
.woocommerce-checkout .container,
body.woocommerce-checkout .container {
	max-width: 1180px;
	margin: 0 auto;
	padding: .5rem 1.25rem 5rem;
}

/* ============================================================
   Progress stepper
   ============================================================ */
#checkout-progress {
	display: flex;
	align-items: center;
	gap: 1.75rem;
	background: var(--apg-surface);
	border: 1px solid var(--apg-line);
	border-radius: var(--apg-radius);
	box-shadow: var(--apg-shadow-sm);
	padding: 1.5rem 1.75rem;
	margin-bottom: 2rem;
}

.progress-title h3 {
	position: relative;
	font-family: 'CreatoDisplay', sans-serif;
	font-weight: 800 !important;
	font-size: 1.05rem !important;
	color: var(--apg-navy) !important;
	text-transform: uppercase;
	letter-spacing: .02em;
	white-space: nowrap;
	margin: 0;
	padding-left: .85rem;
}

.progress-steps {
	flex: 1;
	display: flex;
	position: relative;
}

/* Connecting line behind the circles */
.progress-steps::before {
	content: "";
	position: absolute;
	top: 15px;
	left: 9%;
	right: 9%;
	height: 3px;
	background: var(--apg-line);
	border-radius: 2px;
	z-index: 0;
}

.progress-steps > div {
	position: relative;
	z-index: 1;
	cursor: pointer;
	flex: 1 1 0;
	min-width: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.progress-steps > div p {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	margin: 0;
	padding: 0;
	font-size: .75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .04em;
	line-height: 1.3;
	color: var(--apg-navy);
	text-align: center;
	white-space: normal;
	width: 100%;
}

/* Numbered circle */
.progress-steps > div span {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	font-size: .8rem;
	font-weight: 800;
	line-height: 1;
	padding: 0;
	box-sizing: border-box;
	flex-shrink: 0;
	margin: 0 auto;
	font-family: 'CreatoDisplay', sans-serif;
}

/* Completed steps — navy with a check mark */
.progress-steps > div span::after {
	content: "\f00c";
	font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", "FontAwesome";
	font-weight: 900;
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #fff;
	font-size: .72rem;
}
.progress-steps > div:not(.active) span {
	background: var(--apg-navy);
	color: transparent;
}

/* Current step — orange gradient, shows its number */
.progress-steps > div.active span {
	background: linear-gradient(135deg, var(--apg-accent), var(--apg-accent-dark));
	color: #fff;
	box-shadow: 0 6px 16px rgba(255, 147, 13, .35);
	border: 0;
}
.progress-steps > div.active span::after { content: none; }

/* Upcoming steps after the active one — ghosted */
.progress-steps > div.active ~ div span {
	background: var(--apg-surface);
	border: 1.5px solid var(--apg-line-2);
	color: var(--apg-faint);
}
.progress-steps > div.active ~ div span::after { content: none; }
.progress-steps > div.active ~ div p { color: var(--apg-faint); }

/* ============================================================
   Step cards — shared container for every panel
   ============================================================ */
#checkout-guest,
#checkout-biling,
#checkout-shipping-info,
#checkout-shipping-method,
#checkout-payment-info {
	background: var(--apg-surface);
	border: 1px solid var(--apg-line);
	border-radius: var(--apg-radius);
	box-shadow: var(--apg-shadow-sm);
	padding: 2rem 2.25rem;
	margin-bottom: 1.5rem;
	box-sizing: border-box;
}

/* Section headings inside steps */
#checkout-guest h4.checkout-heading,
#checkout-guest h4.user-logged-checkout,
#checkout-biling .woocommerce-billing-fields h3,
#checkout-shipping-info .woocommerce-shipping-fields > h3:first-of-type,
#checkout-shipping-info .woocommerce-additional-fields h3,
#checkout-shipping-method > h3,
#checkout-payment-info > h3 {
	position: relative;
	font-family: 'CreatoDisplay', sans-serif;
	font-weight: 800 !important;
	font-size: 1.35rem !important;
	line-height: 1.2 !important;
	color: var(--apg-navy) !important;
	letter-spacing: -.01em;
	text-transform: none !important;
	margin: 0 0 1.25rem !important;
	padding-left: .9rem;
}

/* Helper paragraph under a heading */
#checkout-biling .woocommerce-billing-fields > p,
#checkout-guest p.checkout-subheading {
	font-size: .9rem;
	color: var(--apg-muted);
	margin: -0.5rem 0 1.5rem !important;
}


#checkout-shipping-info #ship-to-different-address {
	font-family: inherit !important;
	font-size: .95rem !important;
	font-weight: 600 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	color: var(--apg-navy) !important;
	margin: 1.5rem 0 .5rem !important;
	padding: 0 !important;
}
#checkout-shipping-info #ship-to-different-address::before { content: none !important; }

/* ============================================================
   Step 1 — Checkout as Guest / Register
   ============================================================ */
#checkout-guest h4.user-logged-checkout {
	font-size: 1.15rem !important;
	margin: 0 0 1.5rem !important;
}

#checkout-guest .clearfix {
	display: block;
	float: none !important;
	width: auto !important;
	overflow: visible;
	margin-bottom: 2rem;
}
#checkout-guest .clearfix:last-child { margin-bottom: 0; }

#checkout-guest .clearfix:first-child > * { margin-top: 0; }
#checkout-guest .checkout-heading { margin-bottom: .35rem !important; }
#checkout-guest p.checkout-subheading { margin-top: 0 !important; }

#checkout-guest .radio.radio-info,
#checkout-biling .radio-wrap .radio.radio-info {
	position: relative;
	display: block;
	padding: 0;
	margin: 0 0 .75rem;
	background: var(--apg-surface-2);
	border: 1px solid var(--apg-line);
	border-radius: var(--apg-radius-sm);
	transition: border-color .2s var(--apg-ease), background .2s var(--apg-ease), box-shadow .2s var(--apg-ease);
	overflow: hidden;
}
#checkout-guest .radio.radio-info:hover,
#checkout-biling .radio-wrap .radio.radio-info:hover {
	border-color: var(--apg-line-2);
	background: var(--apg-surface);
}
/* The native input stays tabbable/keyboard-focusable but visually hidden */
#checkout-guest .radio.radio-info input[type="radio"],
#checkout-biling .radio-wrap .radio.radio-info input[type="radio"] {
	position: absolute;
	opacity: 0;
	cursor: pointer;
	margin: 0;
	width: 1px;
	height: 1px;
}
/* Label fills the whole card → clicking anywhere toggles the radio */
#checkout-guest .radio.radio-info label,
#checkout-biling .radio-wrap .radio.radio-info label {
	position: relative;
	display: flex;
	align-items: center;
	width: 100%;
	box-sizing: border-box;
	min-height: 20px;
	padding: 1rem 1.25rem 1rem 2.85rem;
	cursor: pointer;
	margin: 0;
	font-size: .92rem;
	font-weight: 600;
	color: var(--apg-navy);
	line-height: 1.4;
	transition: background .18s var(--apg-ease);
}

#checkout-guest .radio.radio-info label::before,
#checkout-biling .radio-wrap .radio.radio-info label::before {
	content: "";
	position: absolute;
	left: 1.1rem;
	top: 50%;
	transform: translateY(-50%);
	margin: 0;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	border: 1.5px solid var(--apg-line-2);
	background: var(--apg-surface);
	box-sizing: border-box;
	transition: border-color .18s var(--apg-ease), box-shadow .18s var(--apg-ease);
}
#checkout-guest .radio.radio-info label::after,
#checkout-biling .radio-wrap .radio.radio-info label::after {
	content: "";
	position: absolute;
	left: calc(1.1rem + 5px);
	top: 50%;
	transform: translateY(-50%) scale(0);
	margin: 0;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--apg-accent), var(--apg-accent-dark));
	transition: transform .18s var(--apg-ease);
}
/* Checked state — circle + card highlight */
#checkout-guest .radio.radio-info input[type="radio"]:checked + label::before,
#checkout-biling .radio-wrap .radio.radio-info input[type="radio"]:checked + label::before {
	border-color: var(--apg-accent);
	box-shadow: 0 0 0 4px rgba(255, 147, 13, .14);
}
#checkout-guest .radio.radio-info input[type="radio"]:checked + label::after,
#checkout-biling .radio-wrap .radio.radio-info input[type="radio"]:checked + label::after {
	transform: translateY(-50%) scale(1);
}
#checkout-guest .radio.radio-info input[type="radio"]:checked + label,
#checkout-biling .radio-wrap .radio.radio-info input[type="radio"]:checked + label {
	background: rgba(255, 147, 13, .06);
}
/* Keyboard focus ring on the card */
#checkout-guest .radio.radio-info input[type="radio"]:focus-visible + label,
#checkout-biling .radio-wrap .radio.radio-info input[type="radio"]:focus-visible + label {
	outline: 2px solid var(--apg-navy);
	outline-offset: -2px;
}
/* Register password node */
#checkout-guest .create-account-node {
	margin: 0 0 1.25rem;
}
#checkout-guest .create-account-node form#passwordHolder label {
	display: block;
	font-size: .8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: var(--apg-muted);
	margin-bottom: .4rem;
}
#checkout-guest .create-account-node form#passwordHolder label .required { color: var(--apg-accent-dark); }
#checkout-guest .create-account-node .input-wrap { display: block; }
#checkout-guest .create-account-node .input-wrap input.input-text {
	width: 100%;
	height: 44px;
	border: 1px solid var(--apg-line-2);
	border-radius: var(--apg-radius-sm);
	padding: 0 .85rem;
	color: var(--apg-navy);
	font-size: .9rem;
	box-sizing: border-box;
}

/* Benefits block — heading + checklist side by side under the radios */
#checkout-guest p.reg-save {
	font-size: .92rem;
	font-weight: 700;
	color: var(--apg-navy);
	margin: 1.5rem 0 .75rem !important;
}
#checkout-guest p.reg-save br { display: none; }

#checkout-guest ul {
	list-style: none;
	margin: 0 0 1.5rem !important;
	padding: 0;
	float: none !important;
	display: block;
}
#checkout-guest ul li {
	position: relative;
	padding-left: 1.6rem;
	margin-bottom: .5rem;
	font-size: 1rem;
	color: var(--apg-ink-2);
	line-height: 1.5;
}
#checkout-guest ul li::before {
	content: "\f00c";
	font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", "FontAwesome";
	font-weight: 900;
	position: absolute;
	left: 0;
	top: 1px;
	color: var(--apg-accent);
	font-size: .72rem;
}

/* Continue button row — full width, left-aligned under the form */
#checkout-guest .buttons-wrap {
	float: none !important;
	width: 100% !important;
	justify-content: flex-start;
	padding: 0 !important;
	margin-top: .5rem;
}

/* ============================================================
   Returning-customer login form (woocommerce/global/form-login.php
   injected by the woocommerce_before_checkout_form hook, revealed
   by the "Click here to login" toggle). Scoped under #checkout-guest
   so it only affects the checkout page, not the My Account page.
   ============================================================ */
#checkout-guest .woocommerce-form-login,
#checkout-guest form.woocommerce-form.woocommerce-form-login.login {
	width: 100%;
	box-sizing: border-box;
	background: var(--apg-surface-2);
	border: 1px solid var(--apg-line);
	border-radius: var(--apg-radius-sm);
	padding: 1.5rem 1.75rem;
	margin: 0;
	box-shadow: var(--apg-shadow-sm);
}

#checkout-guest .woocommerce-form-login > p:first-child {
	font-size: .9rem;
	color: var(--apg-muted);
	margin: 0 0 1.25rem !important;
	padding: 0;
}

#checkout-guest .woocommerce-form-login .form-row-first,
#checkout-guest .woocommerce-form-login .form-row-last {
	width: 100%;
	box-sizing: border-box;
	padding: 0;
	margin: 0 0 1.1rem !important;
	float: none !important;
}
@media (min-width: 700px) {
	#checkout-guest .woocommerce-form-login .form-row-first,
	#checkout-guest .woocommerce-form-login .form-row-last {
		display: inline-block;
		width: calc(50% - .5rem);
		vertical-align: top;
	}
	#checkout-guest .woocommerce-form-login .form-row-first { margin-right: .5rem !important; }
	#checkout-guest .woocommerce-form-login .form-row-last { margin-left: .5rem !important; margin-right: 0 !important; }
}
#checkout-guest .woocommerce-form-login .clear { clear: both; }

#checkout-guest .woocommerce-form-login .form-row label {
	display: block;
	font-size: .8rem !important;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: var(--apg-muted) !important;
	margin: 0 0 .35rem !important;
}
#checkout-guest .woocommerce-form-login .form-row label .required { color: var(--apg-accent-dark) !important; }

#checkout-guest .woocommerce-form-login .form-row input.input-text {
	width: 100% !important;
	max-width: 100%;
	height: 46px;
	border: 1px solid var(--apg-line-2) !important;
	border-radius: var(--apg-radius-sm) !important;
	padding: .7rem .85rem !important;
	box-sizing: border-box;
	color: var(--apg-navy) !important;
	font-size: .9rem;
	font-family: inherit;
	-webkit-appearance: none;
	appearance: none;
	background-color: var(--apg-surface) !important;
	transition: border-color .18s var(--apg-ease), box-shadow .18s var(--apg-ease);
}
#checkout-guest .woocommerce-form-login .form-row input.input-text:focus {
	outline: none;
	border-color: var(--apg-accent) !important;
	box-shadow: 0 0 0 4px rgba(255, 147, 13, .14);
}

#checkout-guest .woocommerce-form-login .form-row:not(.form-row-first):not(.form-row-last) {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: .75rem 1rem;
	margin: 0 !important;
	padding: 0;
}
#checkout-guest .woocommerce-form-login .woocommerce-form__label-for-checkbox.inline {
	display: inline-flex !important;
	align-items: center;
	gap: .5rem;
	margin: 0 !important;
	font-size: 1rem !important;
	font-weight: 500;
	color: var(--apg-ink-2) !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	order: 1;
}
#checkout-guest .woocommerce-form-login .woocommerce-form__input-checkbox {
	width: 18px !important;
	height: 18px !important;
	min-height: 0 !important;
	accent-color: var(--apg-accent);
	cursor: pointer;
	flex-shrink: 0;
}

#checkout-guest .woocommerce-form-login .woocommerce-form-login__submit,
#checkout-guest .woocommerce-form-login button.button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	height: 2.6rem !important;
	min-width: 140px !important;
	padding: 0 1.25rem !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	font-size: 1rem !important;
	font-weight: 600 !important;
	line-height: 1 !important;
	text-transform: none !important;
	color: #fff !important;
	background-color: #ff930d !important;
	border: 3px solid #ff930d !important;
	border-radius: 10rem !important;
	box-shadow: none;
	transition: background .18s var(--apg-ease), border-color .18s var(--apg-ease);
	cursor: pointer;
	margin: 0 !important;
	order: 2;
}
#checkout-guest .woocommerce-form-login .woocommerce-form-login__submit:hover,
#checkout-guest .woocommerce-form-login button.button:hover {
	background: #e17f00 !important;
	border-color: #e17f00 !important;
	color: #fff !important;
}

/* Lost password link */
#checkout-guest .woocommerce-form-login .lost_password,
#checkout-guest .woocommerce-form-login p.lost_password {
	margin: 1rem 0 0 !important;
	font-size: 1rem;
}
#checkout-guest .woocommerce-form-login .lost_password a {
	color: var(--apg-accent-dark);
	font-weight: 600;
	text-decoration: none;
	border-bottom: 1px dotted var(--apg-accent);
	padding-bottom: 1px;
	transition: color .18s var(--apg-ease);
}
#checkout-guest .woocommerce-form-login .lost_password a:hover { color: var(--apg-accent); }

#checkout-guest .woocommerce-info {
	margin: 0 0 1rem !important;
}

/* ============================================================
   Form fields — shared across billing / shipping / account
   ============================================================ */
.woocommerce-checkout input.input-text,
.woocommerce-checkout select,
.woocommerce-checkout textarea {
	width: 100% !important;
	max-width: 100%;
	border: 1px solid var(--apg-line-2) !important;
	border-radius: var(--apg-radius-sm) !important;
	padding: .7rem .75rem !important;
	box-sizing: border-box;
	color: var(--apg-navy) !important;
	font-size: .9rem;
	font-family: inherit;
	min-height: 46px;
	line-height: 1.4;
	-webkit-appearance: none;
	appearance: none;
	background-color: var(--apg-surface) !important;
	transition: border-color .18s var(--apg-ease), box-shadow .18s var(--apg-ease);
}
/* Native <select> — override old global.css (#checkout-biling select etc.)
   so the raw select matches the Select2 widget height/padding before
   WooCommerce JS converts it to a Select2 span widget. */
#checkout-biling select,
#checkout-shipping-info select {
	height: 46px !important;
	min-height: 46px;
	line-height: 1.4 !important;
	text-indent: 0 !important;
	padding: .7rem 2rem .7rem .75rem !important;
}
/* Dropdown arrow — positioned on the Select2 selection element (and native
   select wrapper) so the chevron stays vertically centered on the visible
   46px widget, not on the wrapper which may include hidden elements. */
#checkout-biling .css3-metro-dropdown,
#checkout-shipping-info .css3-metro-dropdown {
	position: relative;
	display: block;
	width: 100%;
}
#checkout-biling .css3-metro-dropdown::after,
#checkout-shipping-info .css3-metro-dropdown::after {
	content: "\f078";
	font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", "FontAwesome";
	font-weight: 900;
	font-size: .7rem;
	color: var(--apg-muted);
	position: absolute;
	right: .85rem;
	top: 50%;
	transform: translateY(-50%);
	pointer-events: none;
	z-index: 1;
}
/* When Select2 is active, position the chevron on the selection element
   itself so it stays centered on the 46px widget. */
#checkout-biling .select2-container--default .select2-selection--single::after,
#checkout-shipping-info .select2-container--default .select2-selection--single::after {
	content: "\f078";
	font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", "FontAwesome";
	font-weight: 900;
	font-size: .7rem;
	color: var(--apg-muted);
	position: absolute;
	right: .85rem;
	top: 50%;
	transform: translateY(-50%);
	pointer-events: none;
	z-index: 2;
}
/* Hide the wrapper chevron when Select2 is active to avoid duplicates */
#checkout-biling .css3-metro-dropdown:has(.select2-container)::after,
#checkout-shipping-info .css3-metro-dropdown:has(.select2-container)::after {
	display: none;
}
.woocommerce-checkout textarea {
	min-height: 110px;
	resize: vertical;
}
.woocommerce-checkout input.input-text:focus,
.woocommerce-checkout select:focus,
.woocommerce-checkout textarea:focus {
	outline: none;
	border-color: var(--apg-accent) !important;
	box-shadow: 0 0 0 4px rgba(255, 147, 13, .14);
}

.woocommerce-checkout .form-row label:not(.error),
.woocommerce-checkout .woocommerce-billing-fields__field-wrapper label:not(.error),
.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper label:not(.error) {
	display: block;
	font-size: .8rem !important;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: var(--apg-muted) !important;
	margin-bottom: .35rem !important;
}
.woocommerce-checkout label:not(.error) .required { color: var(--apg-accent-dark) !important; }


.woocommerce-checkout label.error,
#checkout-guest label.error,
.checkout-head label.error {
	display: block !important;
	color: #dc2626 !important;
	background: transparent !important;
	font-size: .9rem !important;
	font-weight: 600 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	margin: .3rem 0 0 !important;
	padding: 0 !important;
	line-height: 1.4;
}
/* Invalid inputs get a red border + soft red focus glow */
.woocommerce-checkout input.input-text.error,
.woocommerce-checkout select.error,
.woocommerce-checkout textarea.error,
#checkout-guest input.input-text.error {
	border-color: #dc2626 !important;
}
.woocommerce-checkout input.input-text.error:focus,
.woocommerce-checkout select.error:focus,
.woocommerce-checkout textarea.error:focus,
#checkout-guest input.input-text.error:focus {
	box-shadow: 0 0 0 4px rgba(220, 38, 38, .14) !important;
}

.woocommerce-billing-fields__field-wrapper .form-row,
.woocommerce-account-fields .form-row,
.woocommerce-shipping-fields__field-wrapper .form-row,
.woocommerce-additional-fields__field-wrapper .form-row {
	margin-bottom: 1.1rem !important;
}

#checkout-shipping-info .woocommerce-additional-fields { margin-top: 0; }
#checkout-shipping-info .woocommerce-additional-fields h3 { margin-bottom: .75rem !important; }
#checkout-shipping-info .woocommerce-additional-fields__field-wrapper {
	padding: 0 !important;
	margin: 0 !important;
}
#checkout-shipping-info .woocommerce-additional-fields__field-wrapper .form-row {
	padding: 0 !important;
	margin: 0 !important;
}
#checkout-shipping-info .woocommerce-additional-fields__field-wrapper .form-row label {
	margin-bottom: .3rem !important;
}
#checkout-shipping-info .woocommerce-additional-fields textarea {
	min-height: 84px;
	padding: .55rem .7rem !important;
	margin: 0 !important;
}

.woocommerce-checkout .select2-container,
.woocommerce-checkout .select2-container--default .select2-selection--single {
	width: 100% !important;
	height: 46px !important;
	min-height: 46px;
	border: 1px solid var(--apg-line-2) !important;
	border-radius: var(--apg-radius-sm) !important;
	background: var(--apg-surface) !important;
	position: relative;
}
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 44px;
	padding-left: .75rem;
	padding-right: 2rem;
	color: var(--apg-navy);
	font-size: .9rem;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
/* Select2's default arrow is hidden — the .css3-metro-dropdown wrapper
   provides the Font Awesome chevron via ::after for both native select
   and Select2 widget, keeping them visually identical. */
.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__arrow b {
	display: none !important;
}
.woocommerce-checkout .select2-container--default.select2-container--focus .select2-selection--single,
.woocommerce-checkout .select2-container--default.select2-container--open .select2-selection--single {
	border-color: var(--apg-accent) !important;
}

/* Inline checkboxes (create account / ship to different address) */
.woocommerce-checkout .woocommerce-form__label-for-checkbox,
#checkout-shipping-info #ship-to-different-address label {
	display: inline-flex !important;
	align-items: center;
	gap: .55rem;
	font-size: .92rem !important;
	font-weight: 600;
	color: var(--apg-navy) !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	margin: 0 !important;
	cursor: pointer;
}
.woocommerce-checkout .woocommerce-form__input-checkbox,
#ship-to-different-address-checkbox {
	width: 18px !important;
	height: 18px !important;
	min-height: 0 !important;
	accent-color: var(--apg-accent);
	cursor: pointer;
	flex-shrink: 0;
}


#checkout-biling .radio-wrap {
	clear: both;
	padding-top: 1.25rem;
	margin-top: 1.25rem;
	border-top: 1px dashed var(--apg-line);
	float: none !important;
	width: 100% !important;
	max-width: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	text-align: left !important;
}
#checkout-biling .radio-wrap .radio.radio-info label {
	font-size: 1rem;
	font-weight: 500;
	color: var(--apg-ink-2);
	white-space: normal;
}

#checkout-biling .woocommerce-account-fields {
	float: none !important;
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}
#checkout-biling .woocommerce-account-fields .form-row.create-account {
	margin: 0 0 .75rem !important;
	padding: 0 !important;
}
#checkout-biling .woocommerce-account-fields .form-row.create-account label {
	display: inline-flex !important;
	align-items: center;
	gap: .5rem;
	margin: 0 !important;
}
#checkout-biling .woocommerce-account-fields .form-row.create-account input[type="checkbox"] {
	width: 18px !important;
	height: 18px !important;
	min-height: 0 !important;
	accent-color: var(--apg-accent);
	flex-shrink: 0;
}
/* Hidden password field container — no reserved space when hidden */
#checkout-biling .woocommerce-account-fields .create-account > div {
	margin: 0 !important;
	padding: 0 !important;
}
#checkout-biling .woocommerce-account-fields #account_password_field {
	margin: .75rem 0 0 !important;
}

/* ============================================================
   Step 4 — Shipping Method / Order review table
   ============================================================ */
#checkout-shipping-method .woocommerce-checkout-review-order-table,
#checkout-shipping-method table.shop_table {
	display: block;
	width: 100% !important;
	border: 0 !important;
	border-collapse: collapse;
	background: transparent !important;
	margin: 0 0 .5rem;
}
#checkout-shipping-method .woocommerce-checkout-review-order-table thead { display: block; }
#checkout-shipping-method .woocommerce-checkout-review-order-table thead tr {
	display: flex;
	width: 100%;
	padding: 0 1.25rem;
	box-sizing: border-box;
	border-bottom: 1px solid var(--apg-line);
}
#checkout-shipping-method .woocommerce-checkout-review-order-table thead th {
	font-size: .75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--apg-faint);
	border: 0;
	padding: 0 0 .85rem;
}
#checkout-shipping-method .woocommerce-checkout-review-order-table thead th.product-name { flex: 1 1 auto; }
#checkout-shipping-method .woocommerce-checkout-review-order-table thead th.product-total { flex: 0 0 130px; text-align: right; }

#checkout-shipping-method .woocommerce-checkout-review-order-table tbody { display: block; padding-top: .75rem; }

/* Each review row = a card */
#checkout-shipping-method .woocommerce-checkout-review-order-table tbody tr.cart_item {
	display: flex;
	align-items: center;
	gap: .5rem;
	background: var(--apg-surface-2);
	border: 1px solid var(--apg-line);
	border-radius: var(--apg-radius-sm);
	padding: .85rem 1.1rem;
	margin-bottom: .65rem;
	transition: border-color .2s var(--apg-ease);
}
#checkout-shipping-method .woocommerce-checkout-review-order-table tbody tr.cart_item:hover { border-color: var(--apg-line-2); }
#checkout-shipping-method .woocommerce-checkout-review-order-table tbody tr.cart_item td { border: 0 !important; padding: 0 !important; }
#checkout-shipping-method .woocommerce-checkout-review-order-table tbody tr.cart_item td.product-name {
	flex: 1 1 auto;
	min-width: 0;
	font-size: .9rem;
	color: var(--apg-navy);
	font-weight: 600;
}
#checkout-shipping-method .woocommerce-checkout-review-order-table tbody tr.cart_item td.product-name a {
	color: var(--apg-navy);
	text-decoration: none;
}
#checkout-shipping-method .woocommerce-checkout-review-order-table tbody tr.cart_item td.product-name .product-quantity {
	display: inline-block;
	margin-left: .35rem;
	font-size: .85rem;
	font-weight: 600;
	color: var(--apg-muted);
	background: var(--apg-surface);
	border: 1px solid var(--apg-line);
	border-radius: 999px;
	padding: .1rem .55rem;
}
#checkout-shipping-method .woocommerce-checkout-review-order-table tbody tr.cart_item td.product-total {
	flex: 0 0 130px;
	text-align: right;
	font-family: 'CreatoDisplay', sans-serif;
	font-weight: 700;
	color: var(--apg-navy);
}

/* Totals footer rows */
#checkout-shipping-method .woocommerce-checkout-review-order-table tfoot { display: block; }
#checkout-shipping-method .woocommerce-checkout-review-order-table tfoot tr {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 1rem;
	border-bottom: 1px dashed var(--apg-line);
	padding: .7rem 1.25rem;
}
#checkout-shipping-method .woocommerce-checkout-review-order-table tfoot tr:last-of-type { border-bottom: 0; }
#checkout-shipping-method .woocommerce-checkout-review-order-table tfoot tr th,
#checkout-shipping-method .woocommerce-checkout-review-order-table tfoot tr td {
	border: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	font-weight: 400;
	text-align: right;
	font-size: .9rem;
	color: var(--apg-ink-2);
	font-variant-numeric: tabular-nums;
}
#checkout-shipping-method .woocommerce-checkout-review-order-table tfoot tr th {
	text-align: left;
	color: var(--apg-muted);
	font-weight: 600;
}
#checkout-shipping-method .woocommerce-checkout-review-order-table tfoot tr td .amount {
	font-family: 'CreatoDisplay', sans-serif;
}
#checkout-shipping-method .woocommerce-checkout-review-order-table tfoot tr.cart-subtotal td { color: var(--apg-ink); font-weight: 600; }

/* Shipping rows inside the review table */
#checkout-shipping-method .woocommerce-checkout-review-order-table tfoot tr.shipping { flex-wrap: wrap; }
#checkout-shipping-method .woocommerce-checkout-review-order-table tfoot tr.shipping td { width: 100%; padding-top: .35rem !important; }

/* Shipping method radio list (cart-shipping.php injected here) */
#checkout-shipping-method #shipping_method {
	list-style: none;
	margin: .75rem 0 0;
	padding: 0;
}
#checkout-shipping-method #shipping_method li {
	position: relative;
	margin-bottom: .5rem;
}
#checkout-shipping-method #shipping_method li:last-child { margin-bottom: 0; }
#checkout-shipping-method #shipping_method input[type="radio"] {
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 18px;
	height: 18px;
	margin: 0;
	opacity: 0;
	cursor: pointer;
}
#checkout-shipping-method #shipping_method label {
	position: relative;
	display: inline-flex;
	align-items: center;
	min-height: 18px;
	padding-left: 28px;
	font-size: 1rem;
	color: var(--apg-navy);
	cursor: pointer;
}
#checkout-shipping-method #shipping_method label::before {
	content: "";
	position: absolute;
	left: 0;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	border: 1.5px solid var(--apg-line-2);
	background: var(--apg-surface);
	box-sizing: border-box;
}
#checkout-shipping-method #shipping_method input[type="radio"]:checked + label::before { border-color: var(--apg-accent); }
#checkout-shipping-method #shipping_method input[type="radio"]:checked + label::after {
	content: "";
	position: absolute;
	left: 4px;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--apg-accent), var(--apg-accent-dark));
}
#checkout-shipping-method #shipping_method input[type="radio"]:focus-visible + label::before {
	outline: 2px solid var(--apg-navy);
	outline-offset: 2px;
}

/* Order total — the hero row */
#checkout-shipping-method .woocommerce-checkout-review-order-table tfoot tr.order-total {
	border-top: 2px solid var(--apg-navy);
	border-bottom: 0;
	margin-top: .5rem;
	padding: 1.1rem 1.25rem !important;
	align-items: center;
}
#checkout-shipping-method .woocommerce-checkout-review-order-table tfoot tr.order-total th {
	font-family: 'CreatoDisplay', sans-serif;
	font-weight: 800 !important;
	text-transform: uppercase;
	font-size: .9rem !important;
	letter-spacing: .04em;
	color: var(--apg-navy) !important;
}
#checkout-shipping-method .woocommerce-checkout-review-order-table tfoot tr.order-total td strong,
#checkout-shipping-method .woocommerce-checkout-review-order-table tfoot tr.order-total td .woocommerce-Price-amount {
	font-family: 'CreatoDisplay', sans-serif;
	font-size: 1.85rem !important;
	font-weight: 800 !important;
	color: var(--apg-navy) !important;
	line-height: 1;
}

/* ============================================================
   Step 5 — Payment
   ============================================================ */
#checkout-payment-info #payment {
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	padding: 0 !important;
	margin-top: .5rem;
	box-shadow: none !important;
}
#checkout-payment-info #payment ul.payment_methods,
#checkout-payment-info ul.wc_payment_methods {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
}
#checkout-payment-info #payment ul.payment_methods li,
#checkout-payment-info ul.wc_payment_methods li.wc_payment_method {
	position: relative;
	padding: .85rem 0 !important;
	border: 0 !important;
	background: transparent !important;
}
#checkout-payment-info ul.wc_payment_methods li.wc_payment_method input.input-radio {
	position: absolute;
	opacity: 0;
	cursor: pointer;
	margin: 0;
}
#checkout-payment-info ul.wc_payment_methods li.wc_payment_method > label {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: .65rem;
	padding-left: 30px;
	cursor: pointer;
	margin: 0;
	font-size: .95rem;
	font-weight: 700;
	color: var(--apg-navy);
	line-height: 1.4;
}
#checkout-payment-info ul.wc_payment_methods li.wc_payment_method > label::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 20px;
	height: 20px;
	border-radius: 50%;
	border: 1.5px solid var(--apg-line-2);
	background: var(--apg-surface);
	box-sizing: border-box;
	transition: border-color .18s var(--apg-ease);
}
#checkout-payment-info ul.wc_payment_methods li.wc_payment_method > label::after {
	content: "";
	position: absolute;
	left: 5px;
	top: 50%;
	transform: translateY(-50%) scale(0);
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--apg-accent), var(--apg-accent-dark));
	transition: transform .18s var(--apg-ease);
}
#checkout-payment-info ul.wc_payment_methods li.wc_payment_method input.input-radio:checked + label::before { border-color: var(--apg-accent); }
#checkout-payment-info ul.wc_payment_methods li.wc_payment_method input.input-radio:checked + label::after { transform: translateY(-50%) scale(1); }
#checkout-payment-info ul.wc_payment_methods li.wc_payment_method input.input-radio:focus-visible + label::before {
	outline: 2px solid var(--apg-navy);
	outline-offset: 2px;
}
/* Payment gateway icons */
#checkout-payment-info ul.wc_payment_methods li.wc_payment_method > label img {
	max-height: 22px;
	opacity: .85;
}

/* Payment description box */
#checkout-payment-info .payment_box {
	background: var(--apg-surface);
	border: 1px solid var(--apg-line);
	border-radius: var(--apg-radius-sm);
	padding: 1rem 1.1rem;
	margin: .75rem 0 0;
	font-size: 1rem;
	color: var(--apg-ink-2);
	line-height: 1.55;
}

/* Authorize.Net credit-card form — card number, expiry & CVC on one line */
#checkout-payment-info #wc-authnet-cc-form,
#checkout-payment-info .wc-credit-card-form {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: .75rem;
}
#checkout-payment-info #wc-authnet-cc-form .form-row,
#checkout-payment-info .wc-credit-card-form .form-row {
	float: none !important;
	clear: none !important;
	width: auto !important;
	margin: 0 !important;
	flex: 0 0 auto;
}
#checkout-payment-info #wc-authnet-cc-form .form-row.form-row-wide,
#checkout-payment-info .wc-credit-card-form .form-row.form-row-wide {
	flex: 1 1 50%;
}
#checkout-payment-info #authnet-card-number,
#checkout-payment-info input.wc-credit-card-form-card-number {
	width: 100% !important;
}
#checkout-payment-info #wc-authnet-cc-form .form-row.form-row-first,
#checkout-payment-info #wc-authnet-cc-form .form-row.form-row-last,
#checkout-payment-info .wc-credit-card-form .form-row.form-row-first,
#checkout-payment-info .wc-credit-card-form .form-row.form-row-last {
	flex: 1 1 20%;
	width: auto !important;
	min-width: 90px;
}
#checkout-payment-info #authnet-card-expiry,
#checkout-payment-info #authnet-card-cvc {
	width: 100% !important;
}
#checkout-payment-info #wc-authnet-cc-form .form-row label,
#checkout-payment-info .wc-credit-card-form .form-row label {
	width: auto !important;
}

/* ≤1200px — card number full width on its own row, expiry + CVC share the next row */
@media (max-width: 1200px) {
	#checkout-payment-info #wc-authnet-cc-form .form-row.form-row-wide,
	#checkout-payment-info .wc-credit-card-form .form-row.form-row-wide {
		flex: 0 0 100% !important;
	}
	#checkout-payment-info #wc-authnet-cc-form .form-row.form-row-first,
	#checkout-payment-info #wc-authnet-cc-form .form-row.form-row-last,
	#checkout-payment-info .wc-credit-card-form .form-row.form-row-first,
	#checkout-payment-info .wc-credit-card-form .form-row.form-row-last {
		flex: 1 1 calc(50% - .375rem) !important;
		min-width: 0;
	}
}

/* Small phones — stack vertically, full width each */
@media (max-width: 600px) {
	#checkout-payment-info #wc-authnet-cc-form,
	#checkout-payment-info .wc-credit-card-form {
		flex-direction: column;
		gap: 1.1rem;
	}
	#checkout-payment-info #wc-authnet-cc-form .form-row,
	#checkout-payment-info .wc-credit-card-form .form-row {
		flex: 0 0 auto !important;
		width: 100% !important;
		min-width: 0;
	}
}

/* Terms (woocommerce/checkout/terms.php) */
#checkout-payment-info .terms,
#checkout-payment-info .woocommerce-terms-and-conditions-wrapper {
	margin: 1.25rem 0 0;
	font-size: 1rem;
	color: var(--apg-ink-2);
}
#checkout-payment-info .terms label,
#checkout-payment-info .woocommerce-terms-and-conditions-wrapper label {
	display: inline-flex !important;
	align-items: center;
	gap: .55rem;
	text-transform: none !important;
	letter-spacing: 0 !important;
	font-size: 1rem !important;
	font-weight: 500 !important;
	color: var(--apg-ink-2) !important;
}
#checkout-payment-info .terms input,
#checkout-payment-info .woocommerce-terms-and-conditions-wrapper input[type="checkbox"] {
	width: 18px !important;
	height: 18px !important;
	min-height: 0 !important;
	accent-color: var(--apg-accent);
}

/* Store subscription / custom terms checkbox */
#checkout-payment-info .store-subscription {
	margin: 1.25rem 0 0;
}
#checkout-payment-info .store-subscription .radio-choice {
	display: flex;
	align-items: flex-start;
	gap: .6rem;
	font-size: 1rem;
	color: var(--apg-ink-2);
	line-height: 1.55;
}
#checkout-payment-info .store-subscription .styled-checkbox {
	width: 18px !important;
	height: 18px !important;
	min-height: 0 !important;
	margin-top: 3px;
	accent-color: var(--apg-accent);
	flex-shrink: 0;
}
#checkout-payment-info .store-subscription .radio-choice label { cursor: pointer; }
#checkout-payment-info .store-subscription .radio-choice label a { color: var(--apg-accent-dark); }

/* Place order button row */
#checkout-payment-info .form-row.place-order { margin-top: 1.5rem; }
#checkout-payment-info .form-row.place-order .buttons-wrap { padding-top: 0 !important; }

/* ============================================================
   Buttons — primary (Continue / Place order) & secondary (Back)
   ============================================================ */
.checkout-head .buttons-wrap,
form.checkout.woocommerce-checkout .buttons-wrap {
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .75rem;
	flex-wrap: wrap;
	margin: 0 !important;
	padding: 2rem 0 0 !important;
}
#checkout-guest .buttons-wrap { padding: 1.5rem 0 0 !important; }

.checkout-head .checkout-next,
.checkout-head .user-logged-next,
form.checkout.woocommerce-checkout .checkout-next,
.checkout-head .checkout-back,
form.checkout.woocommerce-checkout .checkout-back,
#checkout-payment-info #place_order,
#checkout-payment-info input.button.alt {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	height: 2.6rem !important;
	min-width: 160px !important;
	padding: 0 1rem !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	font-size: 1rem !important;
	font-weight: 600 !important;
	line-height: 1 !important;
	text-transform: none !important;
	color: #fff !important;
	background-color: #ff930d !important;
	border: 3px solid #ff930d !important;
	border-radius: 10rem !important;
	box-shadow: none;
	transition: background .18s var(--apg-ease), border-color .18s var(--apg-ease);
	cursor: pointer;
	margin: 0 !important;
}

/* Continue / Place order — trailing arrow icon */
.checkout-head .checkout-next::after,
.checkout-head .user-logged-next::after,
form.checkout.woocommerce-checkout .checkout-next::after,
#checkout-payment-info #place_order::after,
#checkout-payment-info input.button.alt::after {
	content: "\f061";
	font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", "FontAwesome";
	font-weight: 900;
	font-size: 1rem;
	transition: transform .2s var(--apg-ease);
}

/* Back — leading arrow icon */
.checkout-head .checkout-back::before,
form.checkout.woocommerce-checkout .checkout-back::before {
	content: "\f060";
	font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", "FontAwesome";
	font-weight: 900;
	font-size: .8rem;
	transition: transform .2s var(--apg-ease);
}

/* Hover — site-standard #e17f00 */
.checkout-head .checkout-next:hover,
.checkout-head .user-logged-next:hover,
form.checkout.woocommerce-checkout .checkout-next:hover,
.checkout-head .checkout-back:hover,
form.checkout.woocommerce-checkout .checkout-back:hover,
#checkout-payment-info #place_order:hover,
#checkout-payment-info input.button.alt:hover {
	background: #e17f00 !important;
	border-color: #e17f00 !important;
	color: #fff !important;
}
.checkout-head .checkout-next:hover::after,
.checkout-head .user-logged-next:hover::after,
form.checkout.woocommerce-checkout .checkout-next:hover::after,
#checkout-payment-info #place_order:hover::after,
#checkout-payment-info input.button.alt:hover::after { transform: translateX(4px); }
.checkout-head .checkout-back:hover::before,
form.checkout.woocommerce-checkout .checkout-back:hover::before { transform: translateX(-4px); }

/* Back button on payment step sits alone — align left */
#checkout-payment-info > .buttons-wrap:last-of-type,
#checkout-payment-info .buttons-wrap:last-child {
	justify-content: flex-start;
}

.checkout-head .woocommerce-message,
.checkout-head .woocommerce-info,
.checkout-head .woocommerce-error,
.checkout-head .woocommerce-NoticeGroup .woocommerce-message,
.checkout-head .woocommerce-NoticeGroup .woocommerce-info,
.checkout-head .woocommerce-NoticeGroup .woocommerce-error {
	border-radius: var(--apg-radius-sm) !important;
	border-left: 4px solid var(--apg-accent) !important;
	background: var(--apg-surface) !important;
	color: var(--apg-ink) !important;
	box-shadow: var(--apg-shadow-sm);
	padding: 1rem 1.25rem !important;
	margin: 0 0 1.5rem !important;
	font-size: 1rem;
	list-style: none !important;
	overflow: hidden;
}
.checkout-head .woocommerce-error { border-left-color: #b91c1c !important; }
.checkout-head .woocommerce-message::before,
.checkout-head .woocommerce-info::before { color: var(--apg-accent) !important; }
.checkout-head .woocommerce-error::before { color: #b91c1c !important; }
.checkout-head .woocommerce-NoticeGroup { margin-bottom: 1.5rem; }
.checkout-head .woocommerce-notice-group-checkout { margin-top: 0; }

/* ============================================================
   Checkout FAQ
   ============================================================ */
#checkout-faq {
	margin-top: 2rem;
	padding: 1.75rem 2rem;
	background: var(--apg-surface);
	border: 1px solid var(--apg-line);
	border-radius: var(--apg-radius);
	box-shadow: var(--apg-shadow-sm);
	font-size: 1rem;
	color: var(--apg-ink-2);
	line-height: 1.6;
}
#checkout-faq .p-first {
	margin: 0 0 1.25rem !important;
	font-weight: 700;
	font-size: .92rem;
}
#checkout-faq .p-first a {
	display: inline-flex !important;
	align-items: center;
	gap: .4rem;
	color: var(--apg-accent-dark) !important;
	font-weight: 700;
	text-decoration: none;
	border-bottom: 1px dotted var(--apg-accent);
	padding-bottom: 1px;
	box-shadow: none !important;
	transition: color .18s var(--apg-ease);
}
#checkout-faq .p-first a:hover { color: var(--apg-accent) !important; }
#checkout-faq .p-first a::before {
	content: "\f059";
	font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", "FontAwesome";
	font-weight: 900;
	font-size: 1rem;
}
#checkout-faq .p-second { margin: 0 0 1rem !important; }
#checkout-faq .p-second strong {
	display: block;
	font-family: 'CreatoDisplay', sans-serif;
	font-weight: 800;
	color: var(--apg-navy);
	font-size: .9rem;
	text-transform: uppercase;
	letter-spacing: .03em;
	margin-bottom: .35rem;
}
#checkout-faq .p-second p { margin: .25rem 0 0 !important; }
#checkout-faq .p-second:last-child { margin-bottom: 0 !important; }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 992px) {
	#checkout-guest,
	#checkout-biling,
	#checkout-shipping-info,
	#checkout-shipping-method,
	#checkout-payment-info { padding: 1.5rem 1.5rem; }
}

@media (max-width: 767px) {
	.woocommerce-checkout .container { padding: .5rem 1rem 4rem; }

	/* Stepper -> vertical */
	#checkout-progress {
		flex-direction: column;
		align-items: stretch;
		gap: 1.25rem;
		padding: 1.25rem 1.25rem;
	}
	.progress-title h3 { text-align: left; white-space: normal; }
	.progress-steps {
		flex-direction: column;
		align-items: stretch;
		width: 100%;
	}
	.progress-steps::before {
		top: 15px;
		bottom: 15px;
		left: 15px;
		right: auto;
		width: 3px;
		height: auto;
	}
	.progress-steps > div {
		flex: none;
		width: 100%;
		margin-bottom: 1.1rem;
		align-items: flex-start;
	}
	.progress-steps > div:last-child { margin-bottom: 0; }
	.progress-steps > div p {
		flex-direction: row;
		align-items: center;
		justify-content: flex-start;
		text-align: left;
		gap: .75rem;
		width: auto;
	}
	.progress-steps > div span { margin: 0; }

	/* Step cards */
	#checkout-guest,
	#checkout-biling,
	#checkout-shipping-info,
	#checkout-shipping-method,
	#checkout-payment-info { padding: 1.25rem 1.1rem; }

	/* Buttons stack full width */
	.checkout-head .buttons-wrap,
	form.checkout.woocommerce-checkout .buttons-wrap {
		flex-direction: column-reverse;
		align-items: stretch;
		gap: .65rem;
	}
	.checkout-head .checkout-next,
	.checkout-head .checkout-back,
	.checkout-head .user-logged-next,
	form.checkout.woocommerce-checkout .checkout-next,
	form.checkout.woocommerce-checkout .checkout-back,
	#checkout-payment-info #place_order,
	#checkout-payment-info input.button.alt {
		width: 100% !important;
		min-width: 0 !important;
	}

	/* Review table rows collapse */
	#checkout-shipping-method .woocommerce-checkout-review-order-table tbody tr.cart_item {
		flex-wrap: wrap;
		align-items: flex-start;
	}
	#checkout-shipping-method .woocommerce-checkout-review-order-table tbody tr.cart_item td.product-name,
	#checkout-shipping-method .woocommerce-checkout-review-order-table tbody tr.cart_item td.product-total {
		flex: 1 1 100%;
	}
	#checkout-shipping-method .woocommerce-checkout-review-order-table tbody tr.cart_item td.product-total { text-align: left; margin-top: .35rem; }
	#checkout-shipping-method .woocommerce-checkout-review-order-table thead { display: none; }

	/* Increase the gap between the Place Order button and the subscribe checkbox */
	#checkout-payment-info .form-row.place-order { margin-bottom: 1.25rem; }
	#checkout-payment-info .store-subscription { margin-top: 5.25rem; }
}

/* ============================================================
   Step 6 — Order Completed (order-review.php)
   ============================================================ */

body.page-template-order-review .woocommerce.row {
	display: block;
	margin: 0 !important;
}
body.page-template-order-review #checkout-progress.col-sm-12 {
	float: none;
	width: auto !important;
	padding: 1.5rem 1.75rem !important;
	margin: 0 0 2rem !important;
}
/* Kill old global.css float/width on step circles + wrappers */
body.page-template-order-review .progress-steps > div,
body.page-template-order-review .step01,
body.page-template-order-review .step02,
body.page-template-order-review .step03,
body.page-template-order-review .step04,
body.page-template-order-review .step05,
body.page-template-order-review .step06 {
	float: none !important;
	width: auto !important;
}
body.page-template-order-review .progress-steps span {
	display: inline-flex !important;
	float: none !important;
	width: 30px !important;
	height: 30px !important;
	padding: 0 !important;
	line-height: 1 !important;
}
body.page-template-order-review .progress-steps p {
	display: flex !important;
	float: none !important;
	padding: 0 !important;
	white-space: normal !important;
}

body.page-template-order-review #checkout-order-review {
	max-width: 100%;
	margin: 0;
	float: none !important;
	width: auto !important;
}

/* Order header — order number + date */
body.page-template-order-review #checkout-order-review .order-header {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: .5rem 1rem;
	background: var(--apg-surface);
	border: 1px solid var(--apg-line);
	border-radius: var(--apg-radius);
	box-shadow: var(--apg-shadow-sm);
	padding: 1.25rem 1.5rem;
	margin: 0 0 1.5rem;
	float: none !important;
	width: auto !important;
}
body.page-template-order-review #checkout-order-review .order-header h3 {
	float: none !important;
	width: auto !important;
	margin: 0 !important;
	font-family: 'CreatoDisplay', sans-serif;
	font-size: 1.4rem !important;
	font-weight: 800 !important;
	color: var(--apg-navy) !important;
}
body.page-template-order-review #checkout-order-review .order-header span {
	float: none !important;
	width: auto !important;
	font-size: .9rem;
	font-weight: 600;
	color: var(--apg-muted);
}

/* Success banner above the order details */
body.page-template-order-review #checkout-order-review .order-header::before {
	content: "\f00c";
	font-family: "Font Awesome 6 Free", "Font Awesome 5 Free", "FontAwesome";
	font-weight: 900;
	color: #fff;
	background: linear-gradient(135deg, #22c55e, #16a34a);
	width: 36px;
	height: 36px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1.1rem;
	flex-shrink: 0;
	margin-right: .25rem;
}

/* Info columns — billing / shipping / payment as cards */
body.page-template-order-review #checkout-order-review .dl-pdf-wrapper {
	display: block;
	background: var(--apg-surface);
	border: 1px solid var(--apg-line);
	border-radius: var(--apg-radius);
	box-shadow: var(--apg-shadow-sm);
	padding: 1.5rem;
	margin-bottom: 1.5rem;
}
body.page-template-order-review #checkout-order-review .dl-pdf-wrapper .spinner {
	display: none;
}
body.page-template-order-review #checkout-order-review .dl-pdf-wrapper > .col-sm-4 {
	display: inline-block;
	vertical-align: top;
	float: none !important;
	width: 100%;
	margin-bottom: 0 !important;
	padding: 0 !important;
	box-sizing: border-box;
}
@media (min-width: 768px) {
	body.page-template-order-review #checkout-order-review .dl-pdf-wrapper > .col-sm-4 {
		width: calc(33.333% - 1.25rem);
		margin-right: 1.25rem;
	}
	body.page-template-order-review #checkout-order-review .dl-pdf-wrapper > .col-sm-4:last-of-type {
		margin-right: 0;
	}
}
body.page-template-order-review #checkout-order-review .col-sm-4 h4 {
	font-family: 'CreatoDisplay', sans-serif;
	font-size: .95rem !important;
	font-weight: 800 !important;
	text-transform: uppercase;
	letter-spacing: .03em;
	color: var(--apg-navy) !important;
	border-bottom: 2px solid var(--apg-accent) !important;
	padding-bottom: .5rem !important;
	margin-bottom: .75rem !important;
}
body.page-template-order-review #checkout-order-review .checkout-b,
body.page-template-order-review #checkout-order-review .checkout-s,
body.page-template-order-review #checkout-order-review .checkout-p {
	font-size: .9rem;
	line-height: 1.7;
	color: var(--apg-ink-2);
}
body.page-template-order-review #checkout-order-review .checkout-b strong,
body.page-template-order-review #checkout-order-review .checkout-s strong,
body.page-template-order-review #checkout-order-review .checkout-p strong {
	color: var(--apg-ink);
	font-weight: 700;
	display: inline-block;
	margin-right: .5rem;
}
body.page-template-order-review #checkout-order-review .clear.half-border {
	display: none;
}

/* Download PDF button */
body.page-template-order-review #checkout-order-review .dl-pdf {
	display: inline-flex !important;
	align-items: center;
	gap: .5rem;
	margin-top: 1.25rem;
	height: 2.6rem !important;
	padding: 0 1.5rem !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	font-size: 1rem !important;
	font-weight: 600 !important;
	line-height: 1 !important;
	color: #fff !important;
	background-color: #ff930d !important;
	border: 3px solid #ff930d !important;
	border-radius: 10rem !important;
	cursor: pointer;
	transition: background .18s var(--apg-ease), border-color .18s var(--apg-ease);
}
body.page-template-order-review #checkout-order-review .dl-pdf:hover {
	background: #e17f00 !important;
	border-color: #e17f00 !important;
}

/* Products table */
body.page-template-order-review #checkout-order-review .checkout-form-wrap {
	margin-top: 0 !important;
	background: var(--apg-surface);
	border: 1px solid var(--apg-line);
	border-radius: var(--apg-radius);
	box-shadow: var(--apg-shadow-sm);
	padding: 1.5rem;
	overflow-x: auto;
}
body.page-template-order-review #checkout-order-review #products-table {
	width: 100%;
	border: 0;
	border-collapse: collapse;
}
body.page-template-order-review #checkout-order-review #products-table thead th {
	font-size: .68rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--apg-faint);
	border: 0;
	border-bottom: 1px solid var(--apg-line);
	padding: .75rem .5rem;
}
body.page-template-order-review #checkout-order-review #products-table tbody td {
	border: 0;
	border-bottom: 1px solid var(--apg-line);
	padding: 1rem .5rem;
	vertical-align: middle;
	font-size: .95rem;
	color: var(--apg-ink);
}
body.page-template-order-review #checkout-order-review #products-table tbody tr:last-child td {
	border-bottom: 0;
}
body.page-template-order-review #checkout-order-review #products-table .product-name a {
	font-family: 'CreatoDisplay', sans-serif;
	font-weight: 700;
	color: var(--apg-navy) !important;
	text-decoration: none;
}
body.page-template-order-review #checkout-order-review #products-table .product-name p {
	margin: .25rem 0 0 !important;
	font-size: .85rem;
	color: var(--apg-muted);
}
body.page-template-order-review #checkout-order-review #products-table .product-price,
body.page-template-order-review #checkout-order-review #products-table .product-subtotal {
	font-family: 'CreatoDisplay', sans-serif;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
}
body.page-template-order-review #checkout-order-review #products-table .product-subtotal {
	font-weight: 700;
	color: var(--apg-navy);
}
body.page-template-order-review #checkout-order-review #products-table .product-quantity {
	text-align: center;
	font-weight: 600;
}
body.page-template-order-review #checkout-order-review #products-table tfoot tr td {
	border: 0;
	border-top: 1px solid var(--apg-line);
	padding: .65rem .5rem;
	font-size: .95rem;
	color: var(--apg-ink-2);
	text-align: right;
}
body.page-template-order-review #checkout-order-review #products-table tfoot tr:first-child td {
	border-top: 2px solid var(--apg-line-2);
}
body.page-template-order-review #checkout-order-review #products-table tfoot span.order-prices {
	display: inline !important;
	font-weight: 700;
	color: var(--apg-ink);
}
body.page-template-order-review #checkout-order-review #products-table tfoot span.order-prices + br {
	display: none !important;
}
body.page-template-order-review #checkout-order-review #products-table tfoot tr:last-child td {
	font-size: 1.1rem;
	font-weight: 800;
	color: var(--apg-navy);
	padding-top: 1rem;
}
body.page-template-order-review #checkout-order-review #products-table tfoot .checkout-taxes {
	font-size: .8rem !important;
	font-weight: 400 !important;
	color: var(--apg-muted) !important;
}

@media (max-width: 767px) {
	body.page-template-order-review .progress-steps > div,
	body.page-template-order-review .step01,
	body.page-template-order-review .step02,
	body.page-template-order-review .step03,
	body.page-template-order-review .step04,
	body.page-template-order-review .step05,
	body.page-template-order-review .step06 {
		width: 100% !important;
	}
}
