/**
 * Checkout v2 — pixel-aligned to new-checkout-design-desktop / mobile.
 * Scoped under .cc-checkout-v2-active when body class is set.
 *
 * Responsive / “utility-style” tokens: spacing uses rem + clamp where it helps;
 * no Tailwind in this theme — patterns mirror Tailwind (fluid gaps, min-w-0, safe-area).
 */

/* Shoptimizer’s legacy 3-step `.checkout-bar` (Customizer “progress bar”) — v2 has its own stepper.
   PHP removes the hook; this is a safety net if the theme registers it twice or at another priority. */
body.cc-checkout-v2-active .woocommerce .checkout-wrap {
	display: none !important;
}

:root {
	--cc-checkout-green: #0d5c48;
	--cc-checkout-green-hover: #0a4a3a;
	--cc-checkout-border: #e2e2e2;
	--cc-checkout-muted: #6b6b6b;
	--cc-checkout-bg-soft: #f4f7f5;
	--cc-checkout-review-border: #0d5c48;
	/* Content column cap (≈ Tailwind max-w-xl +): scales with root font-size */
	--cc-checkout-form-max: min(32.5rem, 100%);
	--cc-checkout-gap-grid: clamp(1.125rem, 3.5vw, 2.5rem);
	--cc-checkout-touch-min: 2.75rem; /* ~44px primary controls */
	/* Primary CTAs: match cart `.wc-proceed-to-checkout .button.checkout-button` (child theme custom.css) */
	--cc-checkout-cta-bg: #1281ba;
	--cc-checkout-cta-hover: #006852;
	--cc-checkout-cta-font: "arboria", system-ui, sans-serif;
}

/* --- Login bar (mockup top strip) --- */
.cc-checkout-v2__login-bar {
	background: var(--cc-checkout-green);
	color: #fff;
	text-align: center;
	padding: 0.65rem 1rem;
	font-size: 0.875rem;
	margin: 0 0 1.25rem;
	border-radius: 0;
}

.cc-checkout-v2__login-bar a {
	color: #fff;
	text-decoration: underline;
	font-weight: 600;
}

.cc-checkout-v2__login-bar:empty {
	display: none;
}

/* --- Page title (korolev-compressed, checkout-appropriate size) ---
   custom.css sets .cc-checkout-v2__page-title to arboria 88px !important.
   Higher specificity selector needed to win the cascade. */
h1.cc-checkout-v2__page-title,
body .cc-checkout-v2__page-title {
	font-family: "korolev-compressed", Sans-serif !important;
	font-size: 36px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	color: #006852 !important;
	margin: 0 0 1.5rem !important;
	text-align: center !important;
	text-transform: uppercase !important;
}

@media (max-width: 768px) {
	h1.cc-checkout-v2__page-title,
	body .cc-checkout-v2__page-title {
		font-size: 28px !important;
		line-height: 1.2 !important;
	}
}

/* --- 4-step stepper (circles + connector line + labels below) --- */
.cc-checkout-v2__stepper {
	margin: 0 0 2rem;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	padding: 0 min(1rem, 4vw) 0.25rem;
	scrollbar-gutter: stable;
}

.cc-checkout-v2__steps {
	display: flex;
	list-style: none;
	margin: 0;
	padding: 0;
	justify-content: space-between;
	align-items: flex-start;
	position: relative;
	min-width: min(100%, 520px);
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
	gap: 0;
}

/* Horizontal connector behind step circles */
.cc-checkout-v2__steps::before {
	content: '';
	position: absolute;
	left: 11%;
	right: 11%;
	top: 1.125rem;
	height: 2px;
	background: #d5d5d5;
	z-index: 0;
}

.cc-checkout-v2__step {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	position: relative;
	padding: 0 0.25rem;
	min-width: 0;
}

.cc-checkout-v2__step-num {
	position: relative;
	z-index: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.25rem;
	border-radius: 50%;
	background: #e8e8e8;
	color: #888;
	font-weight: 700;
	font-size: 0.9rem;
	border: 2px solid #e8e8e8;
	transition: background 0.2s, color 0.2s, border-color 0.2s;
}

.cc-checkout-v2__step-label {
	margin-top: 0.5rem;
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	color: #9a9a9a;
	line-height: 1.2;
}

@media (min-width: 480px) {
	.cc-checkout-v2__step-label {
		font-size: 0.7rem;
	}
}

/* Active step */
.cc-checkout-v2__step.is-active .cc-checkout-v2__step-num {
	background: var(--cc-checkout-green);
	color: #fff;
	border-color: var(--cc-checkout-green);
}

.cc-checkout-v2__step.is-active .cc-checkout-v2__step-label {
	color: var(--cc-checkout-green);
}

/* Completed (passed) steps — checkmark replaces digit (mockups) */
.cc-checkout-v2__step.is-complete .cc-checkout-v2__step-num {
	background: var(--cc-checkout-green);
	color: transparent;
	border-color: var(--cc-checkout-green);
	font-size: 0;
	line-height: 0;
}

.cc-checkout-v2__step.is-complete .cc-checkout-v2__step-num::after {
	content: '\2713';
	font-size: 0.85rem;
	line-height: 1;
	font-weight: 700;
	color: #fff;
	display: block;
	margin-top: 0.05rem;
}

.cc-checkout-v2__step.is-complete .cc-checkout-v2__step-label {
	color: var(--cc-checkout-green);
}

.cc-checkout-v2__step.is-complete {
	cursor: pointer;
}

.cc-checkout-v2__step.is-complete:hover .cc-checkout-v2__step-num {
	box-shadow: 0 0 0 3px rgba(13, 92, 72, 0.2);
}

/* Future step (confirmation on checkout page) */
.cc-checkout-v2__step--future .cc-checkout-v2__step-num {
	background: #f0f0f0;
	color: #bbb;
}

.cc-checkout-v2__step--future .cc-checkout-v2__step-label {
	color: #9a9a9a;
}

.cc-checkout-v2 {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

/* --- Layout: mobile = aside (summary) first; desktop = main left, aside right --- */
.cc-checkout-v2__grid {
	display: flex;
	flex-direction: column;
	gap: var(--cc-checkout-gap-grid);
}

/* Center the shipping / age / payment column; form stays centered as the viewport grows */
.cc-checkout-v2__main {
	display: flex;
	flex-direction: column;
	align-items: center;
	width: 100%;
	box-sizing: border-box;
}

.cc-checkout-v2__main > .cc-checkout-v2__panel {
	width: 100%;
	max-width: var(--cc-checkout-form-max);
	margin-left: auto;
	margin-right: auto;
	box-sizing: border-box;
}

@media (min-width: 992px) {
	.cc-checkout-v2__grid {
		flex-direction: row;
		align-items: flex-start;
		gap: var(--cc-checkout-gap-grid);
		/* Let position:sticky on the aside use the viewport; parent overflow clips break sticky */
		overflow: visible;
	}

	.cc-checkout-v2__main {
		order: 1;
		flex: 1;
		min-width: 0; /* allow flex child to shrink → no horizontal scroll */
	}

	/* Same max width as `.cc-checkout-v2__panel` — do not grow past 32.5rem (see @media 1200px removal below). */
	.cc-checkout-v2__aside {
		order: 2;
		width: 100%;
		min-width: 0;
		max-width: var(--cc-checkout-form-max);
		flex: 0 1 var(--cc-checkout-form-max);
		align-self: flex-start;
		position: static;
	}
}

/*
 * Sticky column: apply to .cc-checkout-v2__aside-sticky (inner), not the flex item .cc-checkout-v2__aside.
 * position:sticky on a flex child is unreliable across browsers; inner block sticks while the long
 * .cc-checkout-v2__main scrolls, so the order summary follows the user down the shipping form.
 */
.cc-checkout-v2__aside-sticky {
	display: block;
	width: 100%;
	box-sizing: border-box;
}

@media (min-width: 992px) {
	.cc-checkout-v2__aside-sticky {
		position: -webkit-sticky;
		position: sticky;
		top: 1.25rem;
		z-index: 2;
	}
}

@media (min-width: 992px) {
	body.admin-bar.cc-checkout-v2-active .cc-checkout-v2__aside-sticky {
		top: calc(1.25rem + 32px);
	}
}

/* --- Order summary card --- */
.cc-checkout-v2__order-summary-card {
	border: 1px solid var(--cc-checkout-border);
	border-radius: 6px;
	background: #fff;
	overflow: hidden;
}

.cc-checkout-v2__summary-toggle {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100%;
	padding: 1rem 1.1rem;
	background: #fff;
	border: none;
	cursor: pointer;
	text-align: left;
	font: inherit;
	gap: 0.75rem;
}

@media (max-width: 991px) {
	.cc-checkout-v2__summary-toggle {
		min-height: var(--cc-checkout-touch-min);
	}
}

.cc-checkout-v2__summary-toggle-main {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	flex: 1;
	min-width: 0;
}

.cc-checkout-v2__summary-icon {
	color: var(--cc-checkout-green);
	display: flex;
	flex-shrink: 0;
}

.cc-checkout-v2__summary-heading {
	font-weight: 700;
	font-size: 0.95rem;
	color: #111;
}

.cc-checkout-v2__summary-total {
	font-weight: 700;
	margin-left: auto;
	padding-right: 0.5rem;
	color: #111;
}

.cc-checkout-v2__summary-chevron {
	font-size: 1.5rem;
	font-weight: 400;
	line-height: 1;
	color: var(--cc-checkout-green);
	width: 1.5rem;
	text-align: center;
}

.cc-checkout-v2__summary-body {
	padding: 0 1.25rem 1.25rem;
}

/* Order review table — Figma spacing (20px rhythm), neutral chrome */
body.cc-checkout-v2-active .cc-checkout-v2__order-summary-card {
	border: 1px solid var(--cc-checkout-border);
	border-radius: 8px;
	box-shadow: none;
}

body.cc-checkout-v2-active .cc-checkout-v2__summary-toggle {
	padding: 1.25rem;
	border-bottom: 1px solid var(--cc-checkout-border);
	background: #fff;
}

/*
 * Shoptimizer (cart-checkout.css) on desktop sets #order_review { float:right; width:41.17% } for the
 * classic two-column checkout. On v2, #order_review lives inside the summary card — that rule
 * shrinks it to ~41% of the card and causes the “scrunched right” layout.
 */
body.cc-checkout-v2-active .cc-checkout-v2 #order_review,
body.cc-checkout-v2-active .cc-checkout-v2 #order_review_heading {
	float: none !important;
	width: 100% !important;
	max-width: 100% !important;
	clear: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	box-sizing: border-box;
}

body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order {
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table {
	margin: 0;
	border-collapse: separate;
	border-spacing: 0;
	width: 100% !important;
	max-width: 100% !important;
	/*
	 * Auto layout: column 2 width = max of all cells in that column (price + shipping + tax + total).
	 * `table-layout: fixed` + % on tbody forced col2 to ~28% and broke long shipping labels.
	 */
	table-layout: auto !important;
}

/* Shoptimizer stacks .shipping row with display:block + width:200% — breaks table inside v2 sidebar */
body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table tr.shipping th,
body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table tr.shipping td {
	display: table-cell !important;
	vertical-align: top;
}

/* “Shipping” label stays compact in col 1; col 2 width comes from auto layout + line-item hint below */
body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table tr.shipping th {
	width: 1%;
	white-space: nowrap;
	padding-right: 0.75rem;
}

body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table tr.shipping td {
	width: auto;
	min-width: 0;
	max-width: 100%;
	text-align: left !important; /* theme tfoot td is text-align:right — bad for long labels */
}

body.cc-checkout-v2-active .cc-checkout-v2 .cc-checkout-v2__panel--concealedct .woocommerce-checkout-review-order-table tr.shipping th {
	display: block !important;
    width: 131.8%;
}

body.cc-checkout-v2-active .cc-checkout-v2 .cc-checkout-v2__panel--concealedct .woocommerce-checkout-review-order-table tr.shipping td {
	/* width: auto; */
	min-width: 0;
	max-width: 131.8%;
	display: block !important;
    width: 131.8%;
	text-align: left !important; /* theme tfoot td is text-align:right — bad for long labels */
}

/* Real shipping methods only — placeholder row should match subtotal/tax (no extra inner grid lines). */
body.cc-checkout-v2-active .cc-checkout-v2 #order_review .shop_table tr.shipping:not(.cc-checkout-v2__shipping-placeholder) th {
	border-bottom: 1px solid #eeeeee;
	padding-bottom: 0.85rem;
}

/*
 * Steps 1–2 (placeholder tax row): one continuous grey box for subtotal + shipping + taxes — Figma (no inner horizontal rules).
 * Uses :has() for row adjacency; shipping placeholder regains left/right outer borders removed earlier.
 */
body.cc-checkout-v2-active .cc-checkout-v2:not([data-cc-step="3"])
	.woocommerce-checkout-review-order-table.cc-checkout-v2__review-order-table
	tfoot
	tr.cart-subtotal:has(+ tr.cc-checkout-v2__shipping-placeholder)
	th,
body.cc-checkout-v2-active .cc-checkout-v2:not([data-cc-step="3"])
	.woocommerce-checkout-review-order-table.cc-checkout-v2__review-order-table
	tfoot
	tr.cart-subtotal:has(+ tr.cc-checkout-v2__shipping-placeholder)
	td {
	border-bottom: none !important;
}

body.cc-checkout-v2-active .cc-checkout-v2:not([data-cc-step="3"])
	.woocommerce-checkout-review-order-table.cc-checkout-v2__review-order-table
	tfoot
	tr.cart-subtotal:has(+ tr.cc-checkout-v2__tax-placeholder)
	th,
body.cc-checkout-v2-active .cc-checkout-v2:not([data-cc-step="3"])
	.woocommerce-checkout-review-order-table.cc-checkout-v2__review-order-table
	tfoot
	tr.cart-subtotal:has(+ tr.cc-checkout-v2__tax-placeholder)
	td {
	border-bottom: none !important;
}

body.cc-checkout-v2-active .cc-checkout-v2:not([data-cc-step="3"])
	.woocommerce-checkout-review-order-table.cc-checkout-v2__review-order-table
	tfoot
	tr.cart-discount:has(+ tr.cc-checkout-v2__shipping-placeholder)
	th,
body.cc-checkout-v2-active .cc-checkout-v2:not([data-cc-step="3"])
	.woocommerce-checkout-review-order-table.cc-checkout-v2__review-order-table
	tfoot
	tr.cart-discount:has(+ tr.cc-checkout-v2__shipping-placeholder)
	td {
	border-bottom: none !important;
}

body.cc-checkout-v2-active .cc-checkout-v2:not([data-cc-step="3"])
	.woocommerce-checkout-review-order-table.cc-checkout-v2__review-order-table
	tfoot
	tr.cart-discount:has(+ tr.cc-checkout-v2__tax-placeholder)
	th,
body.cc-checkout-v2-active .cc-checkout-v2:not([data-cc-step="3"])
	.woocommerce-checkout-review-order-table.cc-checkout-v2__review-order-table
	tfoot
	tr.cart-discount:has(+ tr.cc-checkout-v2__tax-placeholder)
	td {
	border-bottom: none !important;
}

body.cc-checkout-v2-active .cc-checkout-v2:not([data-cc-step="3"])
	.woocommerce-checkout-review-order-table.cc-checkout-v2__review-order-table
	tfoot
	tr.cc-checkout-v2__shipping-placeholder:has(+ tr.cc-checkout-v2__tax-placeholder)
	th,
body.cc-checkout-v2-active .cc-checkout-v2:not([data-cc-step="3"])
	.woocommerce-checkout-review-order-table.cc-checkout-v2__review-order-table
	tfoot
	tr.cc-checkout-v2__shipping-placeholder:has(+ tr.cc-checkout-v2__tax-placeholder)
	td {
	border-bottom: none !important;
}

/* Shipping placeholder: outer left/right match subtotal/tax; bottom only when no tax row follows. */
body.cc-checkout-v2-active .cc-checkout-v2:not([data-cc-step="3"])
	#order_review
	.shop_table
	tr.cc-checkout-v2__shipping-placeholder
	th {
	border-left: 1px solid #e2e2e2 !important;
	border-right: none !important;
	padding-bottom: 0.85rem;
	background-color: #f9f9f9 !important;
}

body.cc-checkout-v2-active .cc-checkout-v2:not([data-cc-step="3"])
	#order_review
	.shop_table
	tr.cc-checkout-v2__shipping-placeholder
	td {
	border-right: 1px solid #e2e2e2 !important;
	border-left: none !important;
	background-color: #f9f9f9 !important;
}

body.cc-checkout-v2-active .cc-checkout-v2:not([data-cc-step="3"])
	#order_review
	.shop_table
	tr.cc-checkout-v2__shipping-placeholder:not(:has(+ tr.cc-checkout-v2__tax-placeholder))
	th {
	border-bottom: 1px solid #e2e2e2 !important;
	border-bottom-left-radius: 6px;
	overflow: hidden;
}

body.cc-checkout-v2-active .cc-checkout-v2:not([data-cc-step="3"])
	#order_review
	.shop_table
	tr.cc-checkout-v2__shipping-placeholder:not(:has(+ tr.cc-checkout-v2__tax-placeholder))
	td {
	border-bottom: 1px solid #e2e2e2 !important;
	border-bottom-right-radius: 6px;
	overflow: hidden;
}

body.cc-checkout-v2-active .cc-checkout-v2:not([data-cc-step="3"])
	.woocommerce-checkout-review-order-table.cc-checkout-v2__review-order-table
	tfoot
	tr.cc-checkout-v2__tax-placeholder
	th {
	border-bottom-left-radius: 6px;
	overflow: hidden;
	background-color: #f9f9f9 !important;
}

body.cc-checkout-v2-active .cc-checkout-v2:not([data-cc-step="3"])
	.woocommerce-checkout-review-order-table.cc-checkout-v2__review-order-table
	tfoot
	tr.cc-checkout-v2__tax-placeholder
	td {
	border-bottom-right-radius: 6px;
	overflow: hidden;
	background-color: #f9f9f9 !important;
}

body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table tr.shipping td ul.woocommerce-shipping-methods {
	list-style: none;
	margin: 0;
	padding: 0;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
}

body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table tr.shipping td ul.woocommerce-shipping-methods li {
	margin: 0;
	padding: 0;
}

body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table tr.shipping td .woocommerce-shipping-methods label {
	display: block;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	white-space: normal;
	word-break: break-word;
	overflow-wrap: break-word;
	line-height: 1.45;
	text-align: left;
	font-weight: 500;
}

/*
 * Line item (tbody): no flex on <td>. Float thumb + overflow:hidden BFC on title block.
 * Col 1 takes remaining width; col 2 uses the classic 1% + nowrap hint on the price cell only so
 * col 2 still grows for long shipping text in tfoot (same column).
 */
body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table tbody tr td.product-name {
	display: table-cell !important;
	vertical-align: top;
	width: auto;
	min-width: 0;
	max-width: none;
	box-sizing: border-box;
}

/* Figma: thumb + text column; price inside .cc-checkout-v2__product-line-text so it sits under title, not below tall thumb. */
body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table tbody tr td.product-name.cc-checkout-v2__product-line {
	padding: 1.25rem 0;
}

body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table td.cc-checkout-v2__product-line::after {
	display: none;
}

body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table .cc-checkout-v2__product-line-main {
	display: flex;
	flex-direction: row;
	align-items: flex-start;
	gap: 0 0.75rem;
	overflow: visible;
	box-sizing: border-box;
}

body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table .cc-checkout-v2__product-line-main > .product-item-thumbnail {
	flex: 0 0 auto;
	float: none !important;
	margin: 0 !important;
	align-self: flex-start;
}

body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table .cc-checkout-v2__product-line-main > .cc-checkout-v2__product-line-text {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.2rem;
	box-sizing: border-box;
}

body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table .cc-checkout-v2__product-line-text .cc-checkout-v2__line-item-subtotal {
	margin: 0;
	padding: 0;
	font-weight: 700;
	color: #111;
}

body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table td.cc-checkout-v2__product-line .product-item-thumbnail {
	float: none !important;
	margin: 0 !important;
}

/* Placeholder totals: match real tfoot value alignment (override shipping row left-align). */
body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table tr.cc-checkout-v2__shipping-placeholder th,
body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table tr.cc-checkout-v2__tax-placeholder th {
	width: 1%;
	white-space: nowrap;
	padding-right: 0.75rem;
}

body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table tr.cc-checkout-v2__shipping-placeholder td,
body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table tr.cc-checkout-v2__tax-placeholder td {
	text-align: right !important;
	vertical-align: top;
}

body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table td.product-name::after {
	content: "";
	display: table;
	clear: both;
}

body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table td.product-name .product-item-thumbnail {
	float: left !important;
	display: block !important;
	margin: 0 0.75rem 0 0 !important;
	clear: none;
}

/* BFC beside float: text uses full width of the product-name <td> (wide col 1 under auto layout). */
body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table td.product-name .cg-checkout-table-product-name {
	display: block !important;
	overflow: visible !important;
	width: auto;
	max-width: none;
	min-width: 0;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	font-size: inherit;
	line-height: 1.45;
	text-align: left;
	word-wrap: break-word;
	overflow-wrap: break-word;
	word-break: normal;
}

body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table td.cc-checkout-v2__product-line .cg-checkout-table-product-name {
	overflow: visible !important;
}

body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table td.product-name .cg-checkout-table-product-name .clear {
	clear: both;
	display: block;
	height: 0;
	overflow: hidden;
	visibility: hidden;
	line-height: 0;
	margin: 0;
	padding: 0;
}

body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table td.product-name .cg-checkout-table-product-name .product-quantity {
	display: inline;
	font-weight: 600;
	white-space: nowrap;
}

/*
 * Price cell only: 1% + nowrap nudges col 2 to stay minimal for “$80.00” but the *column* still
 * expands for the widest col-2 cell (shipping label), unlike table-layout:fixed + % on every row.
 */
body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table tbody tr td.product-total {
	width: 1%;
	white-space: nowrap;
	vertical-align: top;
	font-weight: 700;
	color: #111;
	text-align: right;
	min-width: 3.5rem;
	box-sizing: border-box;
}

body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table tbody td {
	padding: 1.25rem 0;
	border-bottom: 1px solid #eeeeee;
	vertical-align: top;
}

body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table tbody tr:last-child td {
	border-bottom: none;
}

body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table tfoot th,
body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table tfoot td {
	padding: 0.85rem 1.25rem;
	font-size: 0.9375rem;
}

body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table tfoot th {
	color: var(--cc-checkout-muted);
	font-weight: 500;
}

body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table tfoot td {
	color: #111;
}

body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table tr.order-total th,
body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table tr.order-total td {
	font-weight: 700;
	color: #111;
}

.cc-checkout-v2__totals-placeholder {
	color: var(--cc-checkout-muted);
	font-weight: 500;
}

/* Figma: quantity badge on line-item image */
body.cc-checkout-v2-active .cc-checkout-v2 .product-item-thumbnail.cc-checkout-v2__line-thumb {
	position: relative;
	width: 72px;
	padding-right: 0.75rem;
	vertical-align: top;
}

body.cc-checkout-v2-active .cc-checkout-v2 .product-item-thumbnail.cc-checkout-v2__line-thumb img {
	width: 72px;
	height: 72px;
	object-fit: contain;
	border-radius: 4px;
}

body.cc-checkout-v2-active .cc-checkout-v2 .product-item-thumbnail.cc-checkout-v2__line-thumb::after {
	content: attr(data-qty);
	position: absolute;
	top: 4px;
	right: calc(0.75rem + 4px);
	min-width: 1.25rem;
	height: 1.25rem;
	padding: 0 4px;
	background: #9a9a9a;
	color: #fff;
	border-radius: 50%;
	font-size: 0.65rem;
	font-weight: 700;
	line-height: 1.25rem;
	text-align: center;
}

/* CommerceKit free shipping notification — Figma: copy above bar, inside summary card */
.cc-checkout-v2__fsn:empty {
	display: none;
}

.cc-checkout-v2__fsn {
	margin-top: 0.75rem;
	padding-top: 0.85rem;
	border-top: 1px solid var(--cc-checkout-border);
}

.cc-checkout-v2__fsn .cgkit-fsn-bar {
	display: flex;
	flex-direction: column-reverse;
	align-items: stretch;
	gap: 0.5rem;
	width: 100%;
	text-align: center;
	margin: 0;
}

.cc-checkout-v2__fsn .cgkit-fsn-progress-bar {
	height: 8px;
	margin: 0;
	border-radius: 4px;
	background: #e8e8e8;
	overflow: hidden;
	position: relative;
}

.cc-checkout-v2__fsn .cgkit-fsn-amount {
	display: block !important;
	height: 100% !important;
	border-radius: 4px;
	background: #0d5c48 !important;
	background: var(--cc-checkout-green, #0d5c48) !important;
	min-width: 2px;
	transition: width 0.2s ease;
}

.cc-checkout-v2__fsn .cgkit-fsn-notice,
.cc-checkout-v2__fsn .cgkit-fsn-title {
	display: block;
	font-size: 0.875rem;
	line-height: 1.45;
	color: #111;
}

.cc-checkout-v2__fsn .cgkit-fsn-notice .amount {
	color: var(--cc-checkout-green) !important;
	font-weight: 700;
}

.cc-checkout-v2__fsn .cgkit-fsn-bar.ckit-fsn-bar-active .cgkit-fsn-title {
	font-size: 16px;
	padding-left: 0;
	text-align: center;
}

.cc-checkout-v2__fsn .cgkit-fsn-bar.ckit-fsn-bar-active .cgkit-fsn-title::before {
	display: none;
}

/* Coupon below order summary card (above “Shipping & tax…” subtext) */
.cc-checkout-v2__coupon--below-summary {
	margin: 0.75rem 0 0;
	padding: 0 0.15rem;
	box-sizing: border-box;
}

.cc-checkout-v2__coupon--below-summary .cc-checkout-v2__coupon-toggle-line {
	margin: 0;
	font-size: 0.8125rem;
	line-height: 1.45;
}

.cc-checkout-v2__coupon--below-summary .cc-checkout-v2__coupon-link {
	font-weight: 600;
	color: var(--cc-checkout-green, #1a7f37);
	text-decoration: underline;
	text-underline-offset: 2px;
	margin: 20px 0;
    display: block;
}

.cc-checkout-v2__coupon--below-summary .cc-checkout-v2__coupon-link:hover,
.cc-checkout-v2__coupon--below-summary .cc-checkout-v2__coupon-link:focus {
	text-decoration-thickness: 2px;
}

/*
 * Coupon UI is a <div id="woocommerce-checkout-form-coupon"> inside form.checkout (nested <form> is invalid).
 * The shell hides the whole block; theme rules targeting form.checkout_coupon do not apply to the inner div.
 */
.cc-checkout-v2__coupon--below-summary .cc-checkout-v2__coupon-fields[hidden],
body.cc-checkout-v2-active
	.cc-checkout-v2__coupon--below-summary
	.cc-checkout-v2__coupon-fields:not(.cc-checkout-v2__coupon-fields-visible) {
	display: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	min-height: 0 !important;
	overflow: hidden !important;
	visibility: hidden !important;
}

.cc-checkout-v2__coupon--below-summary .checkout_coupon {
	margin: 0.65rem 0 0;
	padding: 0.75rem;
	background: var(--cc-checkout-bg-soft);
	border: 1px solid var(--cc-checkout-border);
	border-radius: 4px;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	display: flex !important;
	flex-wrap: nowrap;
	gap: 0.75rem;
	align-items: center;
	box-sizing: border-box;
}

.cc-checkout-v2__coupon--below-summary .checkout_coupon p {
	margin: 0;
	font-size: 0.8125rem;
}

.cc-checkout-v2__coupon--below-summary .checkout_coupon .form-row {
	float: none !important;
	width: auto !important;
	max-width: 100% !important;
	margin: 0 !important;
	box-sizing: border-box;
}

.cc-checkout-v2__coupon--below-summary .checkout_coupon .form-row-first {
	flex: 1 1 auto;
	width: auto !important;
	max-width: none !important;
	min-width: 0;
}

.cc-checkout-v2__coupon--below-summary .checkout_coupon .form-row-last {
	flex: 0 0 auto;
	width: auto !important;
	max-width: none !important;
	margin-left: 0 !important;
}

.cc-checkout-v2__coupon--below-summary .checkout_coupon #coupon_code,
.cc-checkout-v2__coupon--below-summary .checkout_coupon input[name='coupon_code'],
.cc-checkout-v2__coupon--below-summary .checkout_coupon .form-row-first .input-text {
	display: block;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	box-sizing: border-box;
}

.cc-checkout-v2__coupon--below-summary .checkout_coupon .button {
	background: #fff !important;
	color: var(--cc-checkout-green) !important;
	border: 1px solid var(--cc-checkout-green) !important;
	font-weight: 600;
	box-shadow: none !important;
	width: auto;
	min-width: 10.5rem;
	white-space: nowrap;
}

/* Remove legacy clearfix row from flex coupon layout. */
.cc-checkout-v2__coupon--below-summary .checkout_coupon .clear {
	display: none !important;
}

.cc-checkout-v2__coupon--below-summary .checkout_coupon .button:hover,
.cc-checkout-v2__coupon--below-summary .checkout_coupon .button:focus {
	background: var(--cc-checkout-bg-soft) !important;
}

@media (max-width: 480px) {
	.cc-checkout-v2__coupon--below-summary .checkout_coupon {
		gap: 0.625rem;
	}

	.cc-checkout-v2__coupon--below-summary .checkout_coupon .button {
		min-width: 9.5rem;
	}
}

/* v2 checkout: hide footer strip that duplicates contact + guarantee already in the flow */
body.cc-checkout-v2-active .footer-top {
	display: none;
}

/* Keep checkout-v2 contact module visible when it reuses the exact footer wrapper. */
body.cc-checkout-v2-active .cc-checkout-v2__contact .footer-top {
	display: block !important;
}

/* Subtext sits below the summary card (mockup) */
.cc-checkout-v2__summary-sub {
	margin: 0.5rem 0 0;
	font-size: 0.75rem;
	color: var(--cc-checkout-muted);
	line-height: 1.35;
	padding: 0 0.15rem;
	display: none;
}

/* Desktop: always show full summary */
@media (min-width: 992px) {
	.cc-checkout-v2__order-summary-card.is-desktop .cc-checkout-v2__summary-body {
		display: block !important;
	}

	.cc-checkout-v2__order-summary-card.is-desktop .cc-checkout-v2__summary-chevron {
		display: none;
	}

	.cc-checkout-v2__order-summary-card.is-desktop .cc-checkout-v2__summary-toggle {
		cursor: default;
		pointer-events: none;
	}
}

/* Mobile collapsed (+ / − set via JS) */
@media (max-width: 991px) {
	.cc-checkout-v2__order-summary-card.is-collapsed .cc-checkout-v2__summary-body {
		display: none;
	}
}

/* Satisfaction — same card in sidebar (step 1) and main column (step 3); icon from uploads */
body.cc-checkout-v2-active .cc-checkout-v2 .box-gua.cc-checkout-v2__box-gua-figma {
	margin-top: 0.875rem;
	padding: 0.75rem 0.875rem 0.875rem;
	border-radius: 12px;
	border: 1px solid var(--cc-checkout-border, #e2e2e2);
	box-shadow: none;
	background: #fff;
	display: flex;
	align-items: flex-start;
	gap: 0.75rem;
	text-align: left;
	max-width: 100%;
}

body.cc-checkout-v2-active .cc-checkout-v2 .cc-checkout-v2__box-gua-icon {
	display: flex;
	justify-content: flex-start;
	margin: 0;
	line-height: 0;
	flex: 0 0 auto;
}

body.cc-checkout-v2-active .cc-checkout-v2 .cc-checkout-v2__box-gua-icon img {
	display: block;
	width: 36px;
	height: 36px;
	margin: 0;
	object-fit: contain;
}

body.cc-checkout-v2-active .cc-checkout-v2 .box-gua.cc-checkout-v2__box-gua-figma .content {
	text-align: left;
	flex: 1 1 auto;
	min-width: 0;
}

body.cc-checkout-v2-active .cc-checkout-v2 .box-gua.cc-checkout-v2__box-gua-figma h3 {
	margin: 0 0 0.35rem;
	font-size: 0.875rem;
	font-weight: 700;
	line-height: 1.25;
	color: #111;
	text-align: left;
}

body.cc-checkout-v2-active .cc-checkout-v2 .box-gua.cc-checkout-v2__box-gua-figma .inner-content p.cc-checkout-v2__box-gua-copy,
body.cc-checkout-v2-active .cc-checkout-v2 .box-gua.cc-checkout-v2__box-gua-figma .inner-content p {
	font-size: 0.8125rem;
	line-height: 1.4;
	color: #555;
	text-align: left;
	margin: 0;
}

body.cc-checkout-v2-active .cc-checkout-v2 .box-gua.cc-checkout-v2__box-gua-figma .inner-content a {
	color: #1a6dcc !important;
	font-weight: 500;
}

@media (max-width: 991px) {
	body.cc-checkout-v2-active .cc-checkout-v2 .box-gua.cc-checkout-v2__box-gua-figma {
		margin-top: 0.625rem;
		padding: 0.625rem 0.75rem 0.75rem;
	}

	body.cc-checkout-v2-active .cc-checkout-v2 .cc-checkout-v2__box-gua-icon {
		margin-top: 0.125rem;
	}

	body.cc-checkout-v2-active .cc-checkout-v2 .cc-checkout-v2__box-gua-icon img {
		width: 32px;
		height: 32px;
	}

	body.cc-checkout-v2-active .cc-checkout-v2 .box-gua.cc-checkout-v2__box-gua-figma h3 {
		font-size: 0.8125rem;
		margin-bottom: 0.25rem;
	}

	body.cc-checkout-v2-active .cc-checkout-v2 .box-gua.cc-checkout-v2__box-gua-figma .inner-content p.cc-checkout-v2__box-gua-copy,
	body.cc-checkout-v2-active .cc-checkout-v2 .box-gua.cc-checkout-v2__box-gua-figma .inner-content p {
		font-size: 0.75rem;
		line-height: 1.35;
	}
}

@media (min-width: 992px) {
	body.cc-checkout-v2-active .cc-checkout-v2 .box-gua.cc-checkout-v2__box-gua-figma {
		margin-top: 1rem;
		padding: 1.1rem 1.15rem 1.2rem;
		border-radius: 16px;
	}

	body.cc-checkout-v2-active .cc-checkout-v2 .cc-checkout-v2__box-gua-icon {
		margin-top: 0.125rem;
	}

	body.cc-checkout-v2-active .cc-checkout-v2 .cc-checkout-v2__box-gua-icon img {
		width: 40px;
		height: 40px;
	}

	body.cc-checkout-v2-active .cc-checkout-v2 .box-gua.cc-checkout-v2__box-gua-figma h3 {
		font-size: 0.9375rem;
		margin-bottom: 0.45rem;
	}

	body.cc-checkout-v2-active .cc-checkout-v2 .box-gua.cc-checkout-v2__box-gua-figma .inner-content p.cc-checkout-v2__box-gua-copy,
	body.cc-checkout-v2-active .cc-checkout-v2 .box-gua.cc-checkout-v2__box-gua-figma .inner-content p {
		font-size: 0.875rem;
		line-height: 1.45;
	}
}

/* Reviews: Figma desktop = sidebar under Satisfaction; mobile = below CTA (duplicate markup, one visible) */
.cc-checkout-v2__rv--sidebar {
	display: none;
}

.cc-checkout-v2__rv--below-cta {
	margin-top: 1.5rem;
	width: 100%;
	max-width: var(--cc-checkout-form-max);
	box-sizing: border-box;
}

.cc-checkout-v2__rv--below-cta .box-rv {
	margin-top: 0;
	margin-bottom: 0;
}

/* Keep stars centered in review card (avoid inherited alignnone behavior). */
body.cc-checkout-v2-active .cc-checkout-v2 .cc-checkout-v2__review-stars {
	display: block;
	margin: 0.4rem auto 0;
}

@media (min-width: 992px) {
	.cc-checkout-v2__rv--sidebar {
		display: block;
		width: 100%;
		margin-top: 1rem;
	}

	.cc-checkout-v2__rv--below-cta {
		display: none !important;
	}
}

/* --- Main column: shipping --- */
.cc-checkout-v2__section-title {
	font-size: 1.25rem;
	font-weight: 700;
	margin: 0 0 0.35rem;
	color: #111;
}

.cc-checkout-v2__section-sub {
	margin: 0 0 1.25rem;
	font-size: 0.9rem;
	color: #444;
	line-height: 1.45;
}

/* Figma: full-width form column — theme .col2-set floats must not sit “next card” beside billing */
.cc-checkout-v2 #customer_details.col2-set {
	width: 100%;
	max-width: var(--cc-checkout-form-max);
}

.cc-checkout-v2 #customer_details.col2-set::after {
	content: '';
	display: table;
	clear: both;
}

.cc-checkout-v2 #customer_details .col-1,
.cc-checkout-v2 #customer_details .col-2 {
	float: none !important;
	width: 100% !important;
	max-width: 100% !important;
}

/* De-emphasize default Woo "Billing details" heading (we use Shipping Details title) */
.cc-checkout-v2 .woocommerce-billing-fields > h3:first-of-type {
	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;
}

.cc-checkout-v2__next-card {
	clear: both;
	margin-top: 1.75rem;
	padding: 1.15rem 1.25rem;
	background: var(--cc-checkout-bg-soft);
	border: 1px solid #dde8e2;
	border-radius: 6px;
	width: 100%;
	max-width: var(--cc-checkout-form-max);
	box-sizing: border-box;
}

.cc-checkout-v2__next-card-title {
	margin: 0 0 0.5rem;
	font-weight: 700;
	font-size: 1rem;
	color: #111;
}

.cc-checkout-v2__next-card-text {
	margin: 0 0 1.1rem;
	font-size: 0.875rem;
	color: #444;
	line-height: 1.5;
}

.cc-checkout-v2__cta-primary,
.cc-checkout-v2 .cc-checkout-v2__cta-primary.button.alt {
	display: block;
	width: 100%;
	min-height: 3.25rem;
	padding: 0.75rem 1.25rem !important;
	font-family: var(--cc-checkout-cta-font) !important;
	font-size: 1.25rem !important;
	font-weight: 700 !important;
	text-align: center;
	background: var(--cc-checkout-cta-bg) !important;
	color: #fff !important;
	border: none !important;
	border-radius: 25px !important;
	text-transform: none;
	line-height: 1.2 !important;
	box-sizing: border-box;
}

.cc-checkout-v2__cta-primary:hover,
.cc-checkout-v2 .cc-checkout-v2__cta-primary.button.alt:hover {
	background: var(--cc-checkout-cta-hover) !important;
	color: #fff !important;
}

.cc-checkout-v2__cta-foot {
	margin: 0.75rem 0 0;
	text-align: center;
	font-size: 0.8rem;
	color: var(--cc-checkout-muted);
}

.cc-checkout-v2__lede {
	color: #444;
	margin-bottom: 1rem;
	line-height: 1.5;
}

.cc-checkout-v2__section-title--center {
	text-align: center;
	width: 100%;
}

.cc-checkout-v2__lede--center {
	text-align: center;
}

.cc-checkout-v2__age-card {
	border: 1px solid var(--cc-checkout-border);
	border-radius: 6px;
	background: #fff;
	padding: 1.35rem 1.25rem 1.5rem;
	max-width: var(--cc-checkout-form-max);
	margin: 0 auto 1.5rem;
	box-sizing: border-box;
}

.cc-checkout-v2__age-card .cc-checkout-v2__age-panel {
	border: none;
	background: transparent;
	padding: 0;
	margin: 1.25rem 0 0;
}

.cc-checkout-v2__age-dob-label {
	font-weight: 600;
	margin: 0 0 0.5rem;
	color: #111;
	font-size: 0.95rem;
}

.cc-checkout-v2__age-dob-hint {
	font-size: 0.8rem;
	color: var(--cc-checkout-muted);
	margin: 0.65rem 0 0;
	line-height: 1.4;
}

.cc-checkout-v2__payment-mount #payment {
	margin-top: 0;
}

/* --- Bottom nav (Back) — hidden on step 1; button sits above the divider line --- */
.cc-checkout-v2__nav {
	display: flex;
	justify-content: flex-start;
	gap: 0.75rem;
	margin-top: 1.5rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--cc-checkout-border);
}

.cc-checkout-v2[data-cc-step='1'] .cc-checkout-v2__nav {
	display: none;
	margin-top: 0;
	padding-bottom: 0;
	border-bottom: none;
}

.cc-checkout-v2__back.button {
	background: transparent;
	border: 1px solid var(--cc-checkout-border);
	color: #333;
	border-radius: 25px;
	padding: 0.5rem 1.25rem;
	font-weight: 600;
	font-size: 0.875rem;
	min-height: 2.5rem;
}

/* --- Contact strip (Figma: larger title, full-width rule above) --- */
/* On steps with a Back button the nav's border-bottom already draws the line;
   on step 1 (nav hidden) we add the border-top via the rule below. */
.cc-checkout-v2__contact {
	margin-top: 1.5rem;
	padding-top: 0;
	border-top: none;
	text-align: initial;
}

/* .cc-checkout-v2__contact, */
.cc-checkout-v2[data-cc-step='1'] .cc-checkout-v2__contact {
	border-top: 1px solid var(--cc-checkout-border, #e0e0e0);
}


.cc-checkout-v2__contact-title {
	font-size: clamp(1.625rem, 2.8vw, 2rem);
	font-weight: 700;
	margin: 0 0 1.25rem;
	letter-spacing: -0.02em;
	color: #111;
}

.cc-checkout-v2__contact-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 0.85rem 2rem;
	font-size: 1rem;
	line-height: 1.4;
	color: #333;
}

.cc-checkout-v2__contact-list a {
	color: #1a6dcc;
	text-decoration: none;
	font-weight: 600;
}

.cc-checkout-v2__contact-list a:hover {
	text-decoration: underline;
}

/* Step 2: age-only focus — hide order summary + subtext (mockup) */
.cc-checkout-v2[data-cc-step="2"] .cc-checkout-v2__order-summary-card,
.cc-checkout-v2[data-cc-step="2"] .cc-checkout-v2__summary-sub,
.cc-checkout-v2[data-cc-step="2"] .cc-checkout-v2__coupon--below-summary {
	display: none !important;
}

/* Step 2: hide Satisfaction Guaranteed + sidebar reviews (single-column age flow) */
.cc-checkout-v2[data-cc-step='2'] .cc-checkout-v2__aside .box-gua,
.cc-checkout-v2[data-cc-step='2'] .cc-checkout-v2__aside .cc-checkout-v2__rv--sidebar {
	display: none !important;
}

/*
 * Step 2: no sidebar content — hide the column so age verification sits centered (or full width of content).
 * (Keeps sticky/flex rules from reserving space for an empty aside.)
 */
.cc-checkout-v2[data-cc-step='2'] .cc-checkout-v2__aside {
	display: none !important;
}

@media (min-width: 992px) {
	.cc-checkout-v2[data-cc-step='2'] .cc-checkout-v2__grid {
		justify-content: center;
	}

	.cc-checkout-v2[data-cc-step='2'] .cc-checkout-v2__main {
		flex: 1 1 100%;
		max-width: 100%;
	}
}

/* Step 2: slightly wider readable column when alone (still capped for line length) */
.cc-checkout-v2[data-cc-step='2'] .cc-checkout-v2__main > .cc-checkout-v2__panel--2 {
	max-width: min(40rem, 100%);
}

.cc-checkout-v2[data-cc-step='2'] .cc-checkout-v2__age-card {
	max-width: min(40rem, 100%);
}

/* Step 2: one primary button at a time (CSS backup alongside checkout-v2.js) */
.cc-checkout-v2[data-cc-step='2'] .cc-checkout-v2__age-panel:not(.is-success) #cc-age-continue-payment {
	display: none !important;
}

.cc-checkout-v2[data-cc-step='2'] .cc-checkout-v2__age-panel.is-success #cc-age-verify-btn {
	display: none !important;
}

.cc-checkout-v2[data-cc-step='2'] .cc-checkout-v2__age-panel.is-success #cc-age-continue-payment {
	display: block !important;
	width: 100%;
}

/*
 * Step 3 mobile: payment first, then order summary + sidebar trust (stacked).
 * Step 3 desktop (≥992px): same two-column rhythm as step 1 — main (payment) left, summary + reviews right.
 */
.cc-checkout-v2[data-cc-step="3"] .cc-checkout-v2__grid {
	flex-direction: column;
	align-items: stretch;
	width: 100%;
	box-sizing: border-box;
}

.cc-checkout-v2[data-cc-step="3"] .cc-checkout-v2__main {
	order: 1;
	width: 100%;
}

.cc-checkout-v2[data-cc-step="3"] .cc-checkout-v2__aside {
	order: 2;
	max-width: var(--cc-checkout-form-max);
	width: 100%;
	margin-left: auto;
	margin-right: auto;
}

.cc-checkout-v2[data-cc-step="3"] .cc-checkout-v2__aside-sticky {
	position: static;
	top: auto;
	z-index: auto;
}

.cc-checkout-v2[data-cc-step="3"] .cc-checkout-v2__summary-sub {
	display: none !important;
}

@media (min-width: 992px) {
	.cc-checkout-v2[data-cc-step="3"] .cc-checkout-v2__grid {
		flex-direction: row;
		align-items: flex-start;
		gap: var(--cc-checkout-gap-grid);
		max-width: none;
		margin-left: 0;
		margin-right: 0;
		overflow: visible;
	}

	.cc-checkout-v2[data-cc-step="3"] .cc-checkout-v2__main {
		display: flex;
		flex-direction: column;
		align-items: center;
		flex: 1;
		min-width: 0;
		width: auto;
	}

	.cc-checkout-v2[data-cc-step="3"] .cc-checkout-v2__aside {
		width: 100%;
		min-width: 0;
		max-width: var(--cc-checkout-form-max);
		flex: 0 1 var(--cc-checkout-form-max);
		align-self: flex-start;
	}

	.cc-checkout-v2[data-cc-step="3"] .cc-checkout-v2__aside-sticky {
		position: -webkit-sticky;
		position: sticky;
		top: 1.25rem;
		z-index: 2;
	}

	body.admin-bar.cc-checkout-v2-active .cc-checkout-v2[data-cc-step="3"] .cc-checkout-v2__aside-sticky {
		top: calc(1.25rem + 32px);
	}
}

/* Step 3: Satisfaction block sits under payment in the main column (sidebar copy hidden). */
.cc-checkout-v2[data-cc-step="3"] .cc-checkout-v2__aside .cc-checkout-v2__gua--step12-only {
	display: none !important;
}

.cc-checkout-v2:not([data-cc-step="3"]) .cc-checkout-v2__gua--step3-only {
	display: none !important;
}

.cc-checkout-v2__gua--step3-only {
	width: 100%;
	max-width: var(--cc-checkout-form-max);
	margin: 1.5rem auto 0;
	box-sizing: border-box;
}

/* Place order: match cart primary CTA; beat theme checkout (#payment .place-order .button). */
body.cc-checkout-v2-active .cc-checkout-v2 #payment #place_order.cc-checkout-v2__place-order,
body.cc-checkout-v2-active .cc-checkout-v2 #payment #place_order.cc-checkout-v2__cta-primary,
body.cc-checkout-v2-active .cc-checkout-v2 #payment .place-order #place_order.button.alt {
	display: flex !important;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	width: 100% !important;
	min-height: 3.25rem;
	padding: 0.75rem 1.25rem !important;
	font-family: var(--cc-checkout-cta-font) !important;
	font-size: 1.25rem !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	text-align: center;
	text-transform: none !important;
	background: var(--cc-checkout-cta-bg) !important;
	color: #fff !important;
	border: none !important;
	border-radius: 25px !important;
	box-sizing: border-box;
}

body.cc-checkout-v2-active .cc-checkout-v2 #payment #place_order.cc-checkout-v2__place-order:hover,
body.cc-checkout-v2-active .cc-checkout-v2 #payment #place_order.cc-checkout-v2__cta-primary:hover,
body.cc-checkout-v2-active .cc-checkout-v2 #payment .place-order #place_order.button.alt:hover {
	background: var(--cc-checkout-cta-hover) !important;
	color: #fff !important;
}

.cc-checkout-v2__place-order-lock {
	flex-shrink: 0;
}

.cc-checkout-v2__payment-footnote {
	margin: 1rem 0 0;
	font-size: 0.8125rem;
	line-height: 1.45;
	color: var(--cc-checkout-muted);
	text-align: center;
}

.cc-checkout-v2__place-order-help {
	margin: 0.85rem 0 0;
	font-size: 0.8125rem;
	line-height: 1.5;
	color: var(--cc-checkout-muted);
	text-align: center;
}

.cc-checkout-v2__place-order-help a {
	color: #1a6dcc;
	font-weight: 600;
	text-decoration: none;
}

.cc-checkout-v2__place-order-help a:hover {
	text-decoration: underline;
}

/*
 * Payment (Square): the Web Payments card iframe must not live under display:none or a 1×1 clip.
 * While steps 1–2 are active, panel 3 stays off-screen but with real dimensions so Square can init/tokenize.
 */
.cc-checkout-v2__panel--3.cc-checkout-v2__panel--concealed {
	position: fixed !important;
	left: -12000px !important;
	top: 0 !important;
	width: min(480px, 100vw) !important;
	height: 420px !important;
	max-height: 85vh !important;
	margin: 0 !important;
	padding: 0 !important;
	overflow: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
	z-index: -1 !important;
}

.cc-checkout-v2__panel--3:not(.cc-checkout-v2__panel--concealed) {
	position: static !important;
	left: auto !important;
	top: auto !important;
	width: auto !important;
	height: auto !important;
	max-height: none !important;
	overflow: visible !important;
	opacity: 1 !important;
	pointer-events: auto !important;
	z-index: auto !important;
}

/* Age panel (plugin) */
.cc-checkout-v2 .cc-checkout-v2__age-panel .cc-age-status {
	margin-top: 1rem;
	min-height: 1.25em;
}

/* Thank-you page: stepper only (visual step 4) */
.cc-checkout-v2-thankyou .cc-checkout-v2-thankyou__stepper {
	max-width: 720px;
	margin: 0 auto 1.75rem;
	padding: 0 1rem;
}

/* Thank-you page: Contact Us block — force below floated address columns */
body.cc-checkout-v2-thankyou .woocommerce-order .cc-checkout-v2__contact {
	clear: both !important;
	float: none !important;
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	margin-top: 2rem;
	border-top: 1px solid var(--cc-checkout-border, #e0e0e0);
	text-align: center;
}

body.cc-checkout-v2-thankyou .woocommerce-order .cc-checkout-v2__contact .footer-top {
	display: block !important;
}

body.cc-checkout-v2-thankyou .woocommerce-order .cc-checkout-v2__contact .footer-top-inner {
	width: 100% !important;
	padding: 1.25rem 1rem !important;
	box-sizing: border-box;
}

body.cc-checkout-v2-thankyou .woocommerce-order .cc-checkout-v2__contact .box-contact {
	width: 100% !important;
	max-width: 100% !important;
}

body.cc-checkout-v2-thankyou .woocommerce-order .cc-checkout-v2__contact .box-contact h3 {
	margin-bottom: 20px;
}

/* --- Billing first/last name: side-by-side on ALL viewports (Figma) --- */
.cc-checkout-v2 .woocommerce-billing-fields .form-row-first,
.cc-checkout-v2 .woocommerce-billing-fields .form-row-last {
	float: left;
	width: calc(50% - 0.5rem);
	clear: none;
}

.cc-checkout-v2 .woocommerce-billing-fields .form-row-first {
	margin-right: 1rem;
}

/* Clearfix so the next field starts on a new row */
.cc-checkout-v2 .woocommerce-billing-fields .form-row-last::after {
	content: '';
	display: table;
	clear: both;
}

/* Very narrow phones: stacked names beat cramped 50% columns */
@media (max-width: 420px) {
	.cc-checkout-v2 .woocommerce-billing-fields .form-row-first,
	.cc-checkout-v2 .woocommerce-billing-fields .form-row-last {
		float: none !important;
		width: 100% !important;
		margin-right: 0 !important;
	}
}

/* Review box: use global `.box-rv` from child `custom.css` (same look as /checkout) — do not override border/radius here */

/* Step 3 widget: hide the widget .box-rv — the PHP sidebar review box handles both views.
   On desktop the sidebar copy is visible; on mobile the --below-cta copy shows. */
.cc-checkout-v2__payment-mount .cart-custom-field--v2 .box-rv {
	display: none !important;
}

/* But keep the badges row from the widget visible (it sits outside .box-rv in updated HTML) */
.cc-checkout-v2__payment-mount .cart-custom-field--v2 .cc-checkout-v2__review-badges {
	display: flex !important;
}

/* --- PW Gift Card collapse toggle (matches coupon link style exactly) --- */
#payment #pwgc-redeem-gift-card-form {
	margin: 0 0 0.5rem;
	padding: 0;
	font-size: 13px !important;
	line-height: 1.45 !important;
}

#payment #pwgc-redeem-gift-card-form a.cc-checkout-v2__gc-link {
	display: block !important;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif !important;
	font-size: 16px !important;
	font-weight: 600 !important;
	line-height: 1.45 !important;
	color: var(--cc-checkout-green, #1a7f37) !important;
	text-decoration: underline !important;
	text-underline-offset: 2px;
	padding: 10px 0;
	cursor: pointer;
}

#payment #pwgc-redeem-gift-card-form a.cc-checkout-v2__gc-link:hover,
#payment #pwgc-redeem-gift-card-form a.cc-checkout-v2__gc-link:focus {
	text-decoration-thickness: 2px;
}

#pwgc-redeem-gift-card-form {
	margin-bottom: 1rem;
}

/* --- Award badges (both PHP `.cc-checkout-v2__review-badges-row` and widget `.cc-checkout-v2__review-badges`) --- */
.cc-checkout-v2__review-badges-row,
.cc-checkout-v2 .cc-checkout-v2__review-badges {
	display: flex !important;
	align-items: center;
	justify-content: center;
	max-width: 100%;
	margin: 1.25rem auto 0;
	gap: 1rem;
	flex-wrap: wrap;
}

.cc-checkout-v2__review-badges-row img,
.cc-checkout-v2 .cc-checkout-v2__review-badges img {
	width: 80px !important;
	height: 80px !important;
	max-width: 80px !important;
	object-fit: contain !important;
	image-rendering: auto !important;
}

@media (min-width: 600px) {
	.cc-checkout-v2__review-badges-row img,
	.cc-checkout-v2 .cc-checkout-v2__review-badges img {
		width: 108px !important;
		height: 108px !important;
		max-width: 108px !important;
	}
}

/* ============================================================
   PAGE CHROME — distraction-free shell for v2 checkout
   All selectors scoped to body.cc-checkout-v2-active so they
   never bleed onto any other page.
   ============================================================ */

/* --- Hide full-site navigation row (Shoptimizer .col-full-nav) --- */
body.cc-checkout-v2-active .col-full-nav {
	display: none !important;
}

/* --- Hide menu toggle, search, account, mobile overlays, cart drawer --- */
body.cc-checkout-v2-active .menu-toggle,
body.cc-checkout-v2-active .shoptimizer-myaccount,
body.cc-checkout-v2-active .site-search,
body.cc-checkout-v2-active .mobile-extra,
body.cc-checkout-v2-active .mobile-overlay,
body.cc-checkout-v2-active #shoptimizerCartDrawer,
body.cc-checkout-v2-active .shoptimizer-mini-cart-wrap {
	display: none !important;
}

/* --- Disable sticky header; show as static minimal bar --- */
body.cc-checkout-v2-active .site-header,
body.cc-checkout-v2-active.sticky-d .site-header,
body.cc-checkout-v2-active.sticky-m .site-header {
	position: static !important;
	top: auto !important;
	transform: none !important;
	box-shadow: none !important;
	border-bottom: 1px solid var(--cc-checkout-border);
}

/* --- Minimal header bar: logo only, no extra chrome --- */
body.cc-checkout-v2-active .main-header {
	display: flex;
	align-items: center;
	padding-top: 0.875rem !important;
	padding-bottom: 0.875rem !important;
	min-height: auto !important;
}

/* Hide the "Checkout" <h1> Shoptimizer outputs inside the header
   (our template renders its own "Secure Checkout" heading below) */
body.cc-checkout-v2-active .site-header h1 {
	display: none !important;
}

/* Site branding: flex row so logo stays tidy */
body.cc-checkout-v2-active .site-branding {
	display: flex !important;
	align-items: center;
}

/* Cap logo height so it doesn't dominate the minimal bar */
body.cc-checkout-v2-active .site-branding .custom-logo {
	max-height: 32px;
	width: auto;
}

/* --- Hide breadcrumb nav --- */
body.cc-checkout-v2-active .archive-header,
body.cc-checkout-v2-active .woocommerce-breadcrumb {
	display: none !important;
}

/* --- Remove extra top padding that .shoptimizer-archive adds --- */
body.cc-checkout-v2-active .shoptimizer-archive {
	padding-top: 0 !important;
}

body.cc-checkout-v2-active .site-main {
	padding-top: 1.5rem !important;
	padding-bottom: 2.5rem !important;
}

/* --- Hide site footer (v2 template has its own Contact Us block) --- */
body.cc-checkout-v2-active .wrap-footer {
	display: none !important;
}

/* --- Announcement / notification bars (various plugin patterns) ---
   CommerceKit notification bar, Shoptimizer top bar, Elementor
   Theme Builder header sections that are NOT the site-header. */
body.cc-checkout-v2-active .top-bar,
body.cc-checkout-v2-active .topbar-wrapper,
body.cc-checkout-v2-active .ck-notification,
body.cc-checkout-v2-active [class*="announcement-bar"],
body.cc-checkout-v2-active [class*="notice-bar"],
body.cc-checkout-v2-active .elementor-location-header > *:not(#masthead):not(.site-header) {
	display: none !important;
}

/* --- Content area: full width, no sidebar float --- */
body.cc-checkout-v2-active .content-area {
	width: 100% !important;
	float: none !important;
	padding-right: 0 !important;
	overflow: visible !important;
}

/* Avoid clipping sticky sidebar (common theme overflow-x on wrappers) */
body.cc-checkout-v2-active .site-content,
body.cc-checkout-v2-active .site-main,
body.cc-checkout-v2-active #page,
body.cc-checkout-v2-active .site {
	overflow-x: visible !important;
}

body.cc-checkout-v2-active .cc-checkout-v2 {
	overflow: visible;
}

/* Mobile / tablet: safe-area + minimum horizontal padding */
@media (max-width: 991px) {
	body.cc-checkout-v2-active .col-full {
		padding-left: max(1rem, env(safe-area-inset-left, 0px));
		padding-right: max(1rem, env(safe-area-inset-right, 0px));
	}

	/*
	 * Hard guarantee mobile gutters on checkout v2 container itself.
	 * Some theme wrappers can override `.col-full` spacing; this keeps at least 16px
	 * from both viewport edges for all form/text content in #cc-checkout-v2.
	 */
	body.cc-checkout-v2-active .cc-checkout-v2 {
		padding-left: max(1rem, env(safe-area-inset-left, 0px));
		padding-right: max(1rem, env(safe-area-inset-right, 0px));
		box-sizing: border-box;
	}
}

/* --- Desktop: constrain checkout width, comfortable padding + notches --- */
@media (min-width: 992px) {
	body.cc-checkout-v2-active .col-full {
		padding-left: max(2rem, env(safe-area-inset-left, 0px));
		padding-right: max(2rem, env(safe-area-inset-right, 0px));
	}

	body.cc-checkout-v2-active .cc-checkout-v2 {
		max-width: min(1200px, 100%);
		width: 100%;
		margin-left: auto;
		margin-right: auto;
		box-sizing: border-box;
	}

	/* Same width cap as shipping/payment column (matches `.cc-checkout-v2__panel`). */
	body.cc-checkout-v2-active .cc-checkout-v2__aside {
		max-width: var(--cc-checkout-form-max);
		flex: 0 1 var(--cc-checkout-form-max);
		min-width: 0;
	}

	body.cc-checkout-v2-active .cc-checkout-v2__order-summary-card,
	body.cc-checkout-v2-active .cc-checkout-v2__fsn,
	body.cc-checkout-v2-active .cc-checkout-v2__fsn .cgkit-fsn-bar,
	body.cc-checkout-v2-active .cc-checkout-v2__fsn .cgkit-fsn-progress-bar {
		width: 100%;
		max-width: 100%;
		box-sizing: border-box;
	}
}

/* ------------------------------------------------------------------
   Staging hardening: force checkout-v2 layout-critical rules to win
   even when cache/minify/reorder changes stylesheet precedence.
   ------------------------------------------------------------------ */
body.cc-checkout-v2-active .cc-checkout-v2 {
	padding-left: max(1rem, env(safe-area-inset-left, 0px)) !important;
	padding-right: max(1rem, env(safe-area-inset-right, 0px)) !important;
	box-sizing: border-box !important;
}

@media (min-width: 992px) {
	body.cc-checkout-v2-active .cc-checkout-v2 {
		padding-left: max(1.5rem, env(safe-area-inset-left, 0px)) !important;
		padding-right: max(1.5rem, env(safe-area-inset-right, 0px)) !important;
	}
}

body.cc-checkout-v2-active .cc-checkout-v2 .cc-checkout-v2__order-summary-card,
body.cc-checkout-v2-active .cc-checkout-v2 .cc-checkout-v2__coupon--below-summary,
body.cc-checkout-v2-active .cc-checkout-v2 .box-gua.cc-checkout-v2__box-gua-figma,
body.cc-checkout-v2-active .cc-checkout-v2 .box-rv,
body.cc-checkout-v2-active .cc-checkout-v2 .cc-checkout-v2__next-card,
body.cc-checkout-v2-active .cc-checkout-v2 .cc-checkout-v2__age-card,
body.cc-checkout-v2-active .cc-checkout-v2 .cc-checkout-v2__payment-mount,
body.cc-checkout-v2-active .cc-checkout-v2 .cc-checkout-v2__contact .box-contact {
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
}

/* Tighten the footer-top-inner padding when reused inside checkout-v2 contact strip. */
body.cc-checkout-v2-active .cc-checkout-v2 .cc-checkout-v2__contact .footer-top-inner {
	padding: 1.25rem 1rem !important;
	width: 100% !important;
}

body.cc-checkout-v2-active .cc-checkout-v2 .cc-checkout-v2__contact .box-contact h3 {
	margin-bottom: 20px;
}

body.cc-checkout-v2-active .cc-checkout-v2 .box-gua.cc-checkout-v2__box-gua-figma {
	display: flex !important;
	align-items: flex-start !important;
	gap: 0.75rem !important;
	text-align: left !important;
}

body.cc-checkout-v2-active .cc-checkout-v2 .box-gua.cc-checkout-v2__box-gua-figma .cc-checkout-v2__box-gua-icon {
	display: flex !important;
	flex: 0 0 auto !important;
	justify-content: flex-start !important;
	margin: 0 !important;
}

body.cc-checkout-v2-active .cc-checkout-v2 .box-gua.cc-checkout-v2__box-gua-figma .cc-checkout-v2__box-gua-icon img,
body.cc-checkout-v2-active .cc-checkout-v2 .box-gua.cc-checkout-v2__box-gua-figma .cc-checkout-v2__box-gua-icon .cc-checkout-v2__box-gua-icon-img {
	display: block !important;
	width: 36px !important;
	height: 36px !important;
	object-fit: contain !important;
}

body.cc-checkout-v2-active .cc-checkout-v2 .box-gua.cc-checkout-v2__box-gua-figma .content,
body.cc-checkout-v2-active .cc-checkout-v2 .box-gua.cc-checkout-v2__box-gua-figma h3,
body.cc-checkout-v2-active .cc-checkout-v2 .box-gua.cc-checkout-v2__box-gua-figma .inner-content p {
	text-align: left !important;
}

/* ============================================================
   Cart page — gutters + title parity with checkout v2
   (body.cc-cart-checkout-v2-style from child theme functions.php)
   ============================================================ */

/* Safety net if the progress hook is re-added or cached markup remains */
body.cc-cart-checkout-v2-style .woocommerce .checkout-wrap {
	display: none !important;
}

/* Match v2: no breadcrumb strip above the fold */
body.cc-cart-checkout-v2-style .archive-header,
body.cc-cart-checkout-v2-style .woocommerce-breadcrumb {
	display: none !important;
}

body.cc-cart-checkout-v2-style .shoptimizer-archive {
	padding-top: 0 !important;
}

body.cc-cart-checkout-v2-style .site-main {
	padding-top: 1.5rem !important;
	padding-bottom: 2.5rem !important;
}

/*
 * Match checkout v2 content width: inner shell uses max-width min(1200px, 100%) (see .cc-checkout-v2).
 * Child custom.css sets .content-area to max-width 1880px / width 90% on cart — override here.
 */
body.cc-cart-checkout-v2-style.woocommerce-cart .content-area {
	max-width: min(1200px, 100%) !important;
	width: 100% !important;
	margin-left: auto !important;
	margin-right: auto !important;
	float: none !important;
	box-sizing: border-box !important;
}

/* Block editor “wide” groups can still stretch; keep them inside the same column as checkout v2 */
body.cc-cart-checkout-v2-style.woocommerce-cart .content-area .alignwide {
	max-width: 100% !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

@media (max-width: 991px) {
	body.cc-cart-checkout-v2-style .col-full {
		padding-left: max(1rem, env(safe-area-inset-left, 0px)) !important;
		padding-right: max(1rem, env(safe-area-inset-right, 0px)) !important;
		box-sizing: border-box;
	}
}

@media (min-width: 992px) {
	body.cc-cart-checkout-v2-style .col-full {
		padding-left: max(2rem, env(safe-area-inset-left, 0px)) !important;
		padding-right: max(2rem, env(safe-area-inset-right, 0px)) !important;
		box-sizing: border-box;
	}

	/* Same horizontal inset feel as .cc-checkout-v2 hardening on desktop */
	body.cc-cart-checkout-v2-style.woocommerce-cart .content-area {
		padding-left: max(1.5rem, env(safe-area-inset-left, 0px)) !important;
		padding-right: max(1.5rem, env(safe-area-inset-right, 0px)) !important;
	}
}

body.cc-cart-checkout-v2-style .shoptimizer-cart-wrapper,
body.cc-cart-checkout-v2-style .woocommerce-cart-form,
body.cc-cart-checkout-v2-style .cart-collaterals {
	box-sizing: border-box;
	max-width: 100%;
}

body.cc-cart-checkout-v2-style .woocommerce-cart-form__cart-item:first-child td {
	border-top: 1px solid #e0e0e0 !important;
}

body.cc-cart-checkout-v2-style .woocommerce-cart-form .shop_table {
	border-top: 1px solid #e0e0e0 !important;
}

/* Cart page: gift card collapse toggle — same style as checkout coupon link */
body.cc-cart-checkout-v2-style #pwgc-redeem-gift-card-form {
	margin: 0 0 1.25rem;
	padding: 0;
	width: 100%;
	box-sizing: border-box;
}

body.cc-cart-checkout-v2-style #pwgc-redeem-gift-card-form a.cc-checkout-v2__gc-link {
	display: inline !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	line-height: 1.5 !important;
	color: var(--cc-checkout-green, #1a7f37) !important;
	text-decoration: underline !important;
	text-underline-offset: 2px;
	padding: 0.25rem 0;
	cursor: pointer;
}

body.cc-cart-checkout-v2-style #pwgc-redeem-gift-card-form a.cc-checkout-v2__gc-link:hover {
	text-decoration-thickness: 2px;
}

body.cc-cart-checkout-v2-style #pwgc-redeem-gift-card-form #pwgc-redeem-form label {
	display: none !important;
}

body.cc-cart-checkout-v2-style #pwgc-redeem-gift-card-form #pwgc-redeem-gift-card-container {
	display: flex !important;
	width: 100% !important;
	gap: 0.5rem;
	box-sizing: border-box;
	margin-top: 0.5rem;
}

body.cc-cart-checkout-v2-style #pwgc-redeem-gift-card-form #pwgc-redeem-gift-card-number {
	flex: 1 1 auto !important;
	width: auto !important;
	min-width: 0 !important;
	box-sizing: border-box;
}

body.cc-cart-checkout-v2-style #pwgc-redeem-gift-card-form #pwgc-redeem-button {
	flex: 0 0 auto !important;
	width: auto !important;
	white-space: nowrap;
}

/* ------------------------------------------------------------------
   AgeChecker.net popup — primary submit buttons match cart CTA
   (Hosted markup; scoped to checkout v2 body class only.)
   ------------------------------------------------------------------ */
body.cc-checkout-v2-active #agechecker-modal button[type="submit"],
body.cc-checkout-v2-active #agechecker-modal input[type="submit"],
body.cc-checkout-v2-active #agechecker button[type="submit"],
body.cc-checkout-v2-active #agechecker input[type="submit"] {
	font-family: var(--cc-checkout-cta-font) !important;
	font-size: 1.25rem !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	border-radius: 25px !important;
	border: none !important;
	background: var(--cc-checkout-cta-bg) !important;
	color: #fff !important;
	padding: 0.75rem 1.25rem !important;
	min-height: 3.25rem;
	box-sizing: border-box;
	cursor: pointer;
}

body.cc-checkout-v2-active #agechecker-modal button[type="submit"]:hover,
body.cc-checkout-v2-active #agechecker-modal input[type="submit"]:hover,
body.cc-checkout-v2-active #agechecker button[type="submit"]:hover,
body.cc-checkout-v2-active #agechecker input[type="submit"]:hover {
	background: var(--cc-checkout-cta-hover) !important;
	color: #fff !important;
}

.box-rv strong {
    color: #0d5c48;
}

.box-rv p:last-child {
    line-height: 23px;
}

.cc-checkout-v2__payment-mount form#pwgc-redeem-form {
    margin: 0.65rem 0 0;
    padding: 0.75rem;
    background: var(--cc-checkout-bg-soft);
    border: 1px solid var(--cc-checkout-border);
    border-radius: 4px;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    flex-wrap: nowrap;
    gap: 0.75rem;
    align-items: center;
    box-sizing: border-box;
}

.cc-checkout-v2__payment-mount #pwgc-redeem-form:not([hidden]) {
    display: flex !important;
}

.cc-checkout-v2__payment-mount form#pwgc-redeem-form label{
	display:none !important;
}

.cc-checkout-v2__payment-mount form#pwgc-redeem-form  #pwgc-redeem-gift-card-number {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box;
    border-color: #0f834d;
    height: 40px;
    padding-top: 0;
    padding-bottom: 0;
    border-radius: 3px;
    font-size: 15px;
    line-height: 40px;
}

.cc-checkout-v2__payment-mount input#pwgc-redeem-button {
    background: #fff !important;
    color: var(--cc-checkout-green) !important;
    border: 1px solid var(--cc-checkout-green) !important;
    height: 40px;
    box-shadow: none !important;
    width: auto;
    min-width: 10.5rem;
    white-space: nowrap;
    margin: 0 !important;
}

.cc-checkout-v2__payment-mount input#pwgc-redeem-button:hover{
	background: var(--cc-checkout-bg-soft) !important;
	color: var(--cc-checkout-green) !important;
}

.cc-checkout-v2__step.is-active:nth-child(4) .cc-checkout-v2__step-num::after {
    content: '\2713';
    font-size: 0.85rem;
    line-height: 1;
    font-weight: 700;
    color: #fff;
    display: block;
    margin-top: 0.05rem;
}

.cc-checkout-v2__step.is-active:nth-child(4) .cc-checkout-v2__step-num {
    background: var(--cc-checkout-green);
    color: transparent;
    border-color: var(--cc-checkout-green);
    font-size: 0;
    line-height: 0;
}

th.woocommerce-table__product-name.product-name {
    font-family: arboria;
}

.woocommerce-customer-details address {
    font-family: Montserrat;
}
.cart-collaterals .tax-rate th,
.cart-collaterals .tax-rate td,
.cart-collaterals .cart-discount th, 
.cart-collaterals .cart-discount td {
    border-bottom: 1px solid #e2e2e2;
}

body.woocommerce-cart .coupon-toggle {
    display: inline !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    line-height: 1.5 !important;
    color: var(--cc-checkout-green, #1a7f37) !important;
    text-decoration: underline !important;
    text-underline-offset: 2px;
    padding: 0.25rem 0;
    cursor: pointer;
    float: left;
	 margin-bottom: 10px;
}

body.woocommerce-cart .coupon-toggle a{
    display: inline !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    line-height: 1.5 !important;
    color: var(--cc-checkout-green, #1a7f37) !important;
    text-decoration: underline !important;
    text-underline-offset: 2px;
    padding: 0.25rem 0;
    cursor: pointer;
}

body.woocommerce-cart table.cart td.actions .coupon {
    clear: both;
}


@media (max-width:767px){
	body.woocommerce-cart .woocommerce-cart-form .shop_table {
		padding-top: 10px;
	}
	body.woocommerce-cart.m-cart table.cart td.product-thumbnail,
	body.woocommerce-cart.m-cart table.cart tr td.product-name {
    	border-top: none !important;
    }
	body.cc-checkout-v2-active .cc-checkout-v2 .cc-checkout-v2__panel--concealedct .woocommerce-checkout-review-order-table tr.shipping th {
		width: 131.7%;
	}
}

@media (max-width:575px){
	body.cc-checkout-v2-active .cc-checkout-v2 .cc-checkout-v2__panel--concealedct .woocommerce-checkout-review-order-table tr.shipping th {
		width: 200%;
	}
	body.cc-checkout-v2-active .cc-checkout-v2 .cc-checkout-v2__panel--concealedct .woocommerce-checkout-review-order-table tr.shipping td {
		max-width: 200%;
		width: 200%;
	}
	body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table tfoot th, body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table tfoot td {
		padding: 10px;
	}
	body.cc-cart-checkout-v2-style .woocommerce-cart-form__cart-item:first-child td{
		border-top: none !important;
	}

	body.cc-checkout-v2-active .cc-checkout-v2 .woocommerce-checkout-review-order-table {
		table-layout: fixed!important;
	}
	.cc-checkout-v2__summary-body {
		padding: 0 0.75rem 0.75rem;
	}
}
/* ------------------------------------------------------------------
   Country Fields
   We allow these to be visible so the State dropdown and Square
   payment gateway function correctly, avoiding required field errors.
   ------------------------------------------------------------------ */
