/* ==========================================================
   grparallel 1.7.9 — Custom Checkout
   WooCommerce owns checkout logic; theme owns presentation.
   ========================================================== */
html.woocommerce-checkout, body.woocommerce-checkout {
	height: auto;
	overflow: auto;
}
body.woocommerce-checkout {
	background: #101010;
}
.checkout-page {
	min-height: 100vh;
	box-sizing: border-box;
	padding: 2.2vw 2.2vw 2.2vw calc(var(--nav-width, 4.79vw) + 2.2vw);
	background: #101010;
	color: #f3f1eb;
}
.checkout-shell {
	width: min(100%, 88vw);
	min-height: calc(100vh - 4.4vw);
	margin: 0 auto;
	box-sizing: border-box;
	padding: 2.8vw 3.2vw 3.2vw;
	border: 1px solid rgba(255,255,255,.08);
	border-radius: 1.45vw;
	background: #151515;
}
.checkout-heading {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 3vw;
	margin-bottom: 2.1vw;
}
.checkout-heading-copy { min-width: 0; }
.checkout-eyebrow {
	display: block;
	font-size: .65vw;
	line-height: 1;
	letter-spacing: .12vw;
	color: #0073aa;
	font-weight: 700;
}
.checkout-heading h1 {
	margin: .65vw 0 0;
	font-size: 4.3vw;
	line-height: .95;
	letter-spacing: -.055em;
	font-weight: 700;
}
.checkout-heading p {
	max-width: 35vw;
	margin: 1vw 0 0;
	font-size: .82vw;
	line-height: 1.6;
	color: rgba(243,241,235,.62);
}
.checkout-back-link {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	gap: .6vw;
	padding: .72vw 1vw;
	border: 1px solid rgba(255,255,255,.11);
	border-radius: 999px;
	color: #f3f1eb;
	font-size: .68vw;
	text-decoration: none;
	transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.checkout-back-link:hover {
	background: rgba(0,115,170,.12);
	border-color: rgba(0,115,170,.55);
	color: #fff;
	transform: translateY(-1px);
}
.checkout-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(25vw, .65fr);
	align-items: stretch;
	gap: 1.2vw;
}
.checkout-details,
.checkout-summary {
	min-width: 0;
	box-sizing: border-box;
	border: 1px solid rgba(255,255,255,.08);
	border-radius: 1.05vw;
	background: #191919;
}
.checkout-details { padding: 1.65vw; }
.checkout-summary {
	padding: 1.65vw;
	display: flex;
	flex-direction: column;
}
.checkout-card-header {
	display: flex;
	align-items: flex-start;
	gap: .8vw;
	padding-bottom: 1.2vw;
	border-bottom: 1px solid rgba(255,255,255,.08);
}
.checkout-card-number {
	flex: 0 0 auto;
	font-size: .58vw;
	letter-spacing: .08vw;
	color: #0073aa;
	font-weight: 700;
}
.checkout-card-header strong {
	display: block;
	font-size: 1.1vw;
	line-height: 1.1;
}
.checkout-card-header span:not(.checkout-card-number) {
	display: block;
	margin-top: .35vw;
	font-size: .62vw;
	color: rgba(243,241,235,.48);
}
.checkout-fields { padding-top: 1.15vw; }
.custom-checkout-form .form-row { margin: 0 0 1vw; }
.custom-checkout-form label {
	display: block;
	margin-bottom: .38vw;
	font-size: .62vw;
	font-weight: 600;
	color: rgba(243,241,235,.78);
}
.custom-checkout-form .required { color: #0073aa; }
.custom-checkout-form input.input-text,
.custom-checkout-form select,
.custom-checkout-form textarea {
	width: 100%;
	box-sizing: border-box;
	min-height: 2.65vw;
	padding: .65vw .75vw;
	border: 1px solid rgba(255,255,255,.12);
	border-radius: .48vw;
	background: #111;
	color: #f3f1eb;
	font: inherit;
	font-size: .72vw;
	outline: none;
	transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.custom-checkout-form textarea { min-height: 6vw; resize: vertical; }
.custom-checkout-form input.input-text:focus,
.custom-checkout-form select:focus,
.custom-checkout-form textarea:focus {
	border-color: rgba(0,115,170,.75);
	box-shadow: 0 0 0 .16vw rgba(0,115,170,.12);
	background: #131313;
}
.custom-checkout-form .woocommerce-billing-fields > h3,
.custom-checkout-form .woocommerce-shipping-fields > h3,
.custom-checkout-form .woocommerce-additional-fields > h3 {
	margin: 0 0 1vw;
	font-size: .82vw;
}
.custom-checkout-form .woocommerce-form__label-for-checkbox {
	display: inline-flex;
	align-items: center;
	gap: .4vw;
}
.custom-checkout-form .woocommerce-form__label-for-checkbox input { accent-color: #0073aa; }
.checkout-order-review {
	padding-top: 1vw;
}
.checkout-order-review table.shop_table {
	width: 100%;
	margin: 0;
	border: 0;
	border-collapse: collapse;
	background: transparent;
	color: #f3f1eb;
}
.checkout-order-review table.shop_table th,
.checkout-order-review table.shop_table td {
	padding: .7vw 0;
	border: 0;
	border-bottom: 1px solid rgba(255,255,255,.07);
	font-size: .67vw;
	vertical-align: top;
}
.checkout-order-review table.shop_table th { text-align: left; color: rgba(243,241,235,.55); font-weight: 500; }
.checkout-order-review table.shop_table td { text-align: right; }
.checkout-order-review .product-name { text-align: left !important; padding-right: .8vw !important; }
.checkout-order-review .product-total { white-space: nowrap; font-weight: 600; }
.checkout-order-review .cart-subtotal th,
.checkout-order-review .cart-subtotal td,
.checkout-order-review .order-total th,
.checkout-order-review .order-total td { font-size: .76vw; }
.checkout-order-review .order-total th,
.checkout-order-review .order-total td { border-bottom: 0; padding-top: 1vw; font-size: .95vw; }
.checkout-payment-area {
	margin-top: auto;
	padding-top: 1.2vw;
}
.checkout-payment-area #payment {
	border: 0;
	border-radius: 0;
	background: transparent;
}
.checkout-payment-area #payment ul.payment_methods {
	margin: 0 0 1vw;
	padding: 0;
	border: 0;
	list-style: none;
}
.checkout-payment-area #payment ul.payment_methods li {
	padding: .72vw .8vw;
	margin: 0 0 .45vw;
	border: 1px solid rgba(255,255,255,.08);
	border-radius: .5vw;
	background: #111;
	font-size: .66vw;
}
.checkout-payment-area #payment ul.payment_methods li input { accent-color: #0073aa; }
.checkout-payment-area #payment .payment_box {
	margin: .65vw 0 0;
	padding: .7vw;
	border-radius: .4vw;
	background: rgba(0,115,170,.07);
	color: rgba(243,241,235,.62);
	font-size: .58vw;
	line-height: 1.5;
}
.checkout-payment-area #payment .place-order {
	margin: 0;
	padding: 0;
}
.checkout-payment-area #payment .woocommerce-privacy-policy-text {
	margin: 0 0 .75vw;
	font-size: .53vw;
	line-height: 1.5;
	color: rgba(243,241,235,.42);
}
.checkout-payment-area #payment .woocommerce-terms-and-conditions-wrapper {
	font-size: .58vw;
	color: rgba(243,241,235,.55);
}
.checkout-payment-area #payment .button,
.checkout-payment-area #payment #place_order {
	width: 100%;
	min-height: 3.15vw;
	padding: .8vw 1vw;
	border: 0;
	border-radius: 999px;
	background: #0073aa;
	color: #fff;
	font: inherit;
	font-size: .74vw;
	font-weight: 700;
	letter-spacing: .01vw;
	cursor: pointer;
	transition: transform .2s ease, background .2s ease, box-shadow .2s ease;
}
.checkout-payment-area #payment #place_order:hover {
	background: #0084c3;
	transform: translateY(-1px);
	box-shadow: 0 .55vw 1.2vw rgba(0,115,170,.18);
}
.checkout-payment-area #payment #place_order:disabled {
	opacity: .45;
	cursor: not-allowed;
	transform: none;
	box-shadow: none;
}
.checkout-page .woocommerce-notices-wrapper,
.checkout-page .woocommerce-NoticeGroup {
	margin-bottom: 1vw;
}
.checkout-page .woocommerce-error,
.checkout-page .woocommerce-info,
.checkout-page .woocommerce-message {
	margin: 0 0 1vw;
	padding: .8vw 1vw;
	border: 1px solid rgba(0,115,170,.35);
	border-radius: .55vw;
	background: rgba(0,115,170,.07);
	color: #f3f1eb;
	font-size: .64vw;
}
.checkout-page .woocommerce-invalid input,
.checkout-page .woocommerce-invalid select { border-color: #b24a4a !important; }
.checkout-page .select2-container .select2-selection--single {
	height: 2.65vw;
	border: 1px solid rgba(255,255,255,.12);
	border-radius: .48vw;
	background: #111;
}
.checkout-page .select2-container .select2-selection--single .select2-selection__rendered {
	line-height: 2.65vw;
	color: #f3f1eb;
	font-size: .72vw;
}
.checkout-page .select2-container .select2-selection--single .select2-selection__arrow { height: 2.65vw; }

@media (max-width: 1100px){
	.checkout-page { padding: 20px 20px 40px 100px; }
	.checkout-shell { width: 100%; min-height: calc(100vh - 60px); padding: 36px; border-radius: 24px; }
	.checkout-heading h1 { font-size: clamp(42px, 6vw, 72px); }
	.checkout-eyebrow { font-size: 10px; letter-spacing: 1.5px; }
	.checkout-heading p { font-size: 13px; max-width: 420px; }
	.checkout-back-link { padding: 11px 15px; font-size: 11px; }
	.checkout-layout { grid-template-columns: minmax(0, 1fr) minmax(280px, .55fr); gap: 16px; }
	.checkout-details, .checkout-summary { border-radius: 16px; padding: 22px; }
	.checkout-card-header strong { font-size: 16px; }
	.checkout-card-header span:not(.checkout-card-number) { font-size: 10px; }
	.checkout-card-number { font-size: 9px; }
	.custom-checkout-form label { font-size: 10px; }
	.custom-checkout-form input.input-text, .custom-checkout-form select, .custom-checkout-form textarea { min-height: 42px; padding: 10px 12px; font-size: 12px; border-radius: 8px; }
	.custom-checkout-form textarea { min-height: 100px; }
	.checkout-order-review table.shop_table th, .checkout-order-review table.shop_table td { font-size: 11px; padding: 10px 0; }
	.checkout-order-review .cart-subtotal th, .checkout-order-review .cart-subtotal td, .checkout-order-review .order-total th, .checkout-order-review .order-total td { font-size: 13px; }
	.checkout-payment-area #payment ul.payment_methods li { padding: 11px 12px; border-radius: 8px; font-size: 11px; }
	.checkout-payment-area #payment #place_order { min-height: 50px; font-size: 12px; }
	.checkout-payment-area #payment .woocommerce-privacy-policy-text { font-size: 9px; }
}

@media (max-width: 700px){
	.checkout-page {
		min-height: 100dvh;
		height: auto;
		padding: 76px 14px 28px;
		overflow: visible;
	}
	.checkout-shell {
		width: 100%;
		min-height: 0;
		padding: 24px 16px 28px;
		border-radius: 18px;
	}
	.checkout-heading {
		align-items: flex-start;
		flex-direction: column;
		gap: 16px;
		margin-bottom: 22px;
	}
	.checkout-heading h1 { margin-top: 10px; font-size: clamp(36px, 11vw, 56px); }
	.checkout-heading p { max-width: none; margin-top: 12px; font-size: 13px; }
	.checkout-back-link { font-size: 11px; padding: 10px 14px; }
	.checkout-layout { display: flex; flex-direction: column; gap: 14px; }
	.checkout-fields .woocommerce-billing-fields__field-wrapper { display: block; }
	.checkout-payment-heading { gap: 10px; margin-bottom: 12px; }
	.checkout-payment-heading > span { font-size: 9px; }
	.checkout-payment-heading strong { font-size: 13px; }
	.checkout-payment-heading small { font-size: 9px; margin-top: 4px; }
	.checkout-details, .checkout-summary { padding: 18px; border-radius: 14px; }
	.checkout-card-header { gap: 10px; padding-bottom: 14px; }
	.checkout-card-number { font-size: 9px; }
	.checkout-card-header strong { font-size: 15px; }
	.checkout-card-header span:not(.checkout-card-number) { font-size: 10px; margin-top: 4px; }
	.checkout-fields { padding-top: 16px; }
	.custom-checkout-form .form-row { margin-bottom: 14px; }
	.custom-checkout-form label { font-size: 10px; margin-bottom: 6px; }
	.custom-checkout-form input.input-text, .custom-checkout-form select, .custom-checkout-form textarea { min-height: 44px; padding: 11px 12px; font-size: 13px; border-radius: 8px; }
	.custom-checkout-form textarea { min-height: 120px; }
	.checkout-order-review { padding-top: 14px; }
	.checkout-order-review table.shop_table th, .checkout-order-review table.shop_table td { font-size: 11px; padding: 11px 0; }
	.checkout-order-review .order-total th, .checkout-order-review .order-total td { font-size: 15px; }
	.checkout-payment-area { padding-top: 16px; }
	.checkout-payment-area #payment ul.payment_methods li { padding: 12px; margin-bottom: 7px; border-radius: 9px; font-size: 11px; }
	.checkout-payment-area #payment .payment_box { font-size: 10px; }
	.checkout-payment-area #payment #place_order { min-height: 52px; font-size: 13px; }
	.checkout-payment-area #payment .woocommerce-privacy-policy-text { font-size: 9px; }
	.checkout-page .woocommerce-error, .checkout-page .woocommerce-info, .checkout-page .woocommerce-message { padding: 11px 12px; font-size: 10px; border-radius: 8px; }
}

/* ==========================================================
   1.7.2 — minimal digital checkout + stronger payment cards
   ========================================================== */
.checkout-heading h1 {
	font-size: clamp(48px, 4.3vw, 78px);
}
.checkout-heading p {
	font-size: clamp(12px, .82vw, 15px);
}
.checkout-fields .woocommerce-billing-fields__field-wrapper {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: 1vw;
}
.checkout-fields .woocommerce-billing-fields__field-wrapper .form-row {
	width: 100%;
	float: none;
}
.checkout-fields .woocommerce-billing-fields__field-wrapper #billing_email_field,
.checkout-fields .woocommerce-billing-fields__field-wrapper #billing_country_field {
	grid-column: 1 / -1;
}
.checkout-payment-heading {
	display: flex;
	align-items: flex-start;
	gap: .8vw;
	margin-bottom: .85vw;
}
.checkout-payment-heading > span {
	flex: 0 0 auto;
	font-size: .58vw;
	letter-spacing: .08vw;
	color: #0073aa;
	font-weight: 700;
}
.checkout-payment-heading strong {
	display: block;
	font-size: .82vw;
	line-height: 1.1;
}
.checkout-payment-heading small {
	display: block;
	margin-top: .3vw;
	font-size: .56vw;
	line-height: 1.4;
	color: rgba(243,241,235,.45);
}

.checkout-page {
	padding-top: 1.2vw;
	padding-bottom: 1.2vw;
	min-height: 100vh;
}
.checkout-shell {
	min-height: calc(100vh - 2.4vw);
}
.checkout-layout {
	min-height: 31vw;
}
.checkout-details,
.checkout-summary {
	min-height: 31vw;
}
.checkout-fields .woocommerce-billing-fields > h3,
.checkout-fields .woocommerce-shipping-fields,
.checkout-fields .woocommerce-additional-fields {
	display: none;
}
.custom-checkout-form .form-row {
	margin-bottom: 1.15vw;
}
.custom-checkout-form .form-row:last-child {
	margin-bottom: 0;
}
.checkout-payment-area {
	margin-top: 1.35vw;
	padding-top: 1.35vw;
	border-top: 1px solid rgba(255,255,255,.08);
}
.checkout-payment-area #payment ul.payment_methods {
	display: grid;
	gap: .55vw;
	margin: 0 0 1vw;
}
.checkout-payment-area #payment ul.payment_methods li.wc_payment_method {
	position: relative;
	margin: 0;
	padding: 0;
	border: 1px solid rgba(255,255,255,.09);
	border-radius: .72vw;
	background: linear-gradient(180deg, rgba(255,255,255,.025), rgba(255,255,255,.01));
	overflow: hidden;
	transition: border-color .2s ease, background .2s ease, transform .2s ease;
}
.checkout-payment-area #payment ul.payment_methods li.wc_payment_method:hover {
	border-color: rgba(0,115,170,.45);
	background: rgba(0,115,170,.055);
	transform: translateY(-1px);
}
.checkout-payment-area #payment ul.payment_methods li.wc_payment_method input.input-radio {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}
.checkout-payment-area #payment ul.payment_methods li.wc_payment_method > label {
	display: flex;
	align-items: center;
	gap: .7vw;
	min-height: 3.05vw;
	box-sizing: border-box;
	margin: 0;
	padding: .72vw .82vw;
	font-size: .68vw;
	font-weight: 650;
	color: #f3f1eb;
	cursor: pointer;
}
.checkout-payment-area #payment ul.payment_methods li.wc_payment_method > label::before {
	content: '';
	flex: 0 0 auto;
	width: .9vw;
	height: .9vw;
	box-sizing: border-box;
	border: 1px solid rgba(255,255,255,.28);
	border-radius: 50%;
	background: #101010;
	box-shadow: inset 0 0 0 .18vw #101010;
	transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
}
.checkout-payment-area #payment ul.payment_methods li.wc_payment_method:has(input.input-radio:checked) {
	border-color: rgba(0,115,170,.78);
	background: linear-gradient(180deg, rgba(0,115,170,.12), rgba(0,115,170,.045));
	box-shadow: 0 0 0 1px rgba(0,115,170,.08) inset;
}
.checkout-payment-area #payment ul.payment_methods li.wc_payment_method:has(input.input-radio:checked) > label::before {
	border-color: #0073aa;
	background: #0073aa;
	box-shadow: inset 0 0 0 .2vw #101010;
}
.checkout-payment-area #payment ul.payment_methods li.wc_payment_method .payment_box {
	margin: 0;
	padding: 0 .82vw .78vw 2.4vw;
	border-radius: 0;
	background: transparent;
	font-size: .57vw;
	line-height: 1.5;
	color: rgba(243,241,235,.52);
}
.checkout-payment-area #payment ul.payment_methods li.wc_payment_method .payment_box p:last-child {
	margin-bottom: 0;
}
.checkout-payment-area #payment .place-order {
	padding-top: .1vw;
}
.checkout-payment-area #payment .woocommerce-privacy-policy-text {
	margin-bottom: .7vw;
}
.checkout-page .sa-checkout-hidden-country {
	display: none !important;
}

@media (max-width: 1100px){
	.checkout-page { padding-top: 20px; padding-bottom: 20px; }
	.checkout-shell { min-height: calc(100vh - 40px); }
	.checkout-layout, .checkout-details, .checkout-summary { min-height: 0; }
	.checkout-fields .woocommerce-billing-fields__field-wrapper { grid-template-columns: 1fr 1fr; column-gap: 14px; }
	.checkout-payment-heading { gap: 10px; margin-bottom: 12px; }
	.checkout-payment-heading > span { font-size: 9px; }
	.checkout-payment-heading strong { font-size: 13px; }
	.checkout-payment-heading small { font-size: 9px; margin-top: 4px; }
	.checkout-payment-area { margin-top: 18px; padding-top: 18px; }
	.checkout-payment-area #payment ul.payment_methods { gap: 8px; }
	.checkout-payment-area #payment ul.payment_methods li.wc_payment_method { border-radius: 10px; }
	.checkout-payment-area #payment ul.payment_methods li.wc_payment_method > label { min-height: 50px; padding: 11px 12px; font-size: 11px; gap: 10px; }
	.checkout-payment-area #payment ul.payment_methods li.wc_payment_method > label::before { width: 15px; height: 15px; box-shadow: inset 0 0 0 3px #101010; }
	.checkout-payment-area #payment ul.payment_methods li.wc_payment_method:has(input.input-radio:checked) > label::before { box-shadow: inset 0 0 0 3px #101010; }
	.checkout-payment-area #payment ul.payment_methods li.wc_payment_method .payment_box { padding: 0 12px 12px 37px; font-size: 9px; }
}

@media (max-width: 700px){
	.checkout-page { padding: 76px 14px 28px; }
	.checkout-shell { min-height: 0; }
	.checkout-payment-area { margin-top: 16px; padding-top: 16px; }
	.checkout-payment-area #payment ul.payment_methods li.wc_payment_method > label { min-height: 52px; font-size: 12px; }
	.checkout-payment-area #payment ul.payment_methods li.wc_payment_method > label::before { width: 16px; height: 16px; }
	.checkout-payment-area #payment ul.payment_methods li.wc_payment_method .payment_box { padding-left: 38px; font-size: 10px; }
}

/* ==========================================================
   grparallel 1.7.2 — compact account/coupon UI
   ========================================================== */
.checkout-utility-bar {
	display: flex;
	align-items: center;
	gap: .55vw;
	margin: 0 0 1.05vw;
	padding: .15vw 0;
}
.checkout-utility-link {
	display: inline-flex;
	align-items: center;
	gap: .28vw;
	min-height: 2vw;
	padding: .52vw .72vw;
	border: 1px solid rgba(255,255,255,.08);
	border-radius: 999px;
	background: rgba(255,255,255,.018);
	color: rgba(243,241,235,.64);
	font: inherit;
	font-size: .61vw;
	line-height: 1;
	cursor: pointer;
	transition: border-color .2s ease, background .2s ease, color .2s ease, transform .2s ease;
}
.checkout-utility-link:hover {
	border-color: rgba(0,115,170,.55);
	background: rgba(0,115,170,.08);
	color: #f3f1eb;
	transform: translateY(-1px);
}
.checkout-utility-link strong { color: #0073aa; font-weight: 700; }
.checkout-utility-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.05vw;
	height: 1.05vw;
	border-radius: 50%;
	background: rgba(0,115,170,.12);
	color: #0073aa;
	font-size: .58vw;
	font-weight: 800;
}

.checkout-modal {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2vw;
	visibility: hidden;
	opacity: 0;
	pointer-events: none;
	transition: opacity .22s ease, visibility .22s ease;
}
.checkout-modal.is-open {
	visibility: visible;
	opacity: 1;
	pointer-events: auto;
}
.checkout-modal-backdrop {
	position: absolute;
	inset: 0;
	background: rgba(5,5,5,.74);
	backdrop-filter: blur(8px);
}
.checkout-modal-dialog {
	position: relative;
	z-index: 1;
	width: min(100%, 30vw);
	box-sizing: border-box;
	padding: 1.65vw;
	border: 1px solid rgba(255,255,255,.1);
	border-radius: 1vw;
	background: #191919;
	box-shadow: 0 2vw 5vw rgba(0,0,0,.38);
	transform: translateY(.7vw) scale(.985);
	transition: transform .24s cubic-bezier(.22,.61,.36,1);
}
.checkout-modal.is-open .checkout-modal-dialog { transform: translateY(0) scale(1); }
.checkout-modal-close {
	position: absolute;
	top: .75vw;
	right: .75vw;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 1.7vw;
	height: 1.7vw;
	border: 1px solid rgba(255,255,255,.09);
	border-radius: 50%;
	background: #111;
	color: rgba(243,241,235,.7);
	font: inherit;
	font-size: 1vw;
	line-height: 1;
	cursor: pointer;
}
.checkout-modal-close:hover { color: #fff; border-color: rgba(0,115,170,.55); }
.checkout-modal-eyebrow {
	font-size: .56vw;
	letter-spacing: .1vw;
	font-weight: 700;
	color: #0073aa;
}
.checkout-modal-dialog h2 {
	margin: .6vw 0 .45vw;
	font-size: 1.55vw;
	line-height: 1;
	letter-spacing: -.03em;
}
.checkout-modal-description {
	margin: 0 0 1.15vw;
	font-size: .62vw;
	line-height: 1.55;
	color: rgba(243,241,235,.5);
}
.checkout-modal-dialog .form-row { margin: 0 0 .75vw; }
.checkout-modal-dialog label {
	display: block;
	margin-bottom: .35vw;
	font-size: .6vw;
	font-weight: 600;
	color: rgba(243,241,235,.76);
}
.checkout-modal-dialog input.input-text,
.checkout-modal-dialog input[type="password"] {
	width: 100%;
	min-height: 2.7vw;
	box-sizing: border-box;
	padding: .62vw .72vw;
	border: 1px solid rgba(255,255,255,.12);
	border-radius: .48vw;
	background: #111;
	color: #f3f1eb;
	font: inherit;
	font-size: .7vw;
	outline: none;
}
.checkout-modal-dialog input.input-text:focus,
.checkout-modal-dialog input[type="password"]:focus {
	border-color: rgba(0,115,170,.75);
	box-shadow: 0 0 0 .16vw rgba(0,115,170,.12);
}
.checkout-modal-dialog .woocommerce-form-login__rememberme {
	display: inline-flex;
	align-items: center;
	gap: .35vw;
	margin: .05vw 0 .8vw;
	font-size: .58vw;
	color: rgba(243,241,235,.55);
}
.checkout-modal-dialog .woocommerce-form-login__rememberme input {
	accent-color: #0073aa;
}
.checkout-modal-dialog .woocommerce-LostPassword { margin: -.35vw 0 .85vw; }
.checkout-modal-dialog .woocommerce-LostPassword a {
	font-size: .58vw;
	color: #0073aa;
}
.checkout-modal-dialog .woocommerce-form-login__submit,
.checkout-modal-dialog .checkout_coupon .button {
	width: 100%;
	min-height: 2.8vw;
	padding: .65vw 1vw;
	border: 0;
	border-radius: 999px;
	background: #0073aa;
	color: #fff;
	font: inherit;
	font-size: .68vw;
	font-weight: 700;
	cursor: pointer;
	transition: background .2s ease, transform .2s ease, box-shadow .2s ease;
}
.checkout-modal-dialog .woocommerce-form-login__submit:hover,
.checkout-modal-dialog .checkout_coupon .button:hover {
	background: #0084c3;
	transform: translateY(-1px);
	box-shadow: 0 .55vw 1.2vw rgba(0,115,170,.18);
}
.checkout-modal-dialog .checkout_coupon { margin: 0; }
.checkout-modal-dialog .checkout_coupon .form-row-first,
.checkout-modal-dialog .checkout_coupon .form-row-last { float: none; width: 100%; }
.checkout-modal-dialog .checkout_coupon .form-row-last { margin-top: .15vw; }
.checkout-modal-dialog .checkout_coupon .button span { float: right; }
.checkout-modal-dialog .checkout_coupon .clear { display: none; }

/* The billing area is intentionally compact: two fields + email + optional account. */
.checkout-fields .woocommerce-billing-fields__field-wrapper {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 0 1vw;
}
.checkout-fields #billing_first_name_field,
.checkout-fields #billing_last_name_field { grid-column: span 1; }
.checkout-fields #billing_email_field { grid-column: 1 / -1; }
.checkout-fields #billing_country_field { display: none !important; }
.checkout-account-box {
	grid-column: 1 / -1;
	margin-top: .15vw;
	padding-top: .95vw;
	border-top: 1px solid rgba(255,255,255,.07);
}
.checkout-checkbox {
	display: flex !important;
	align-items: center;
	gap: .6vw;
	margin: 0 !important;
	cursor: pointer;
}
.checkout-checkbox input {
	position: absolute;
	top: auto;
	width: 1px;
	height: 1px;
	opacity: 0;
	pointer-events: none;
}
.checkout-checkbox-mark {
	position: relative;
	flex: 0 0 auto;
	width: 1vw;
	height: 1vw;
	box-sizing: border-box;
	border: 1px solid rgba(255,255,255,.28);
	border-radius: .25vw;
	background: #101010;
	transition: background .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.checkout-checkbox-mark::after {
	content: '';
	position: absolute;
	left: .23vw;
	top: .12vw;
	width: .28vw;
	height: .52vw;
	border-right: 2px solid #fff;
	border-bottom: 2px solid #fff;
	transform: rotate(45deg) scale(0);
	transition: transform .16s ease;
}
.checkout-checkbox input:checked + .checkout-checkbox-mark {
	border-color: #0073aa;
	background: #0073aa;
	box-shadow: 0 0 0 .18vw rgba(0,115,170,.1);
}
.checkout-checkbox input:checked + .checkout-checkbox-mark::after { transform: rotate(45deg) scale(1); }
.checkout-checkbox > span:last-child { display: flex; flex-direction: column; gap: .16vw; }
.checkout-checkbox strong { font-size: .63vw; color: #f3f1eb; }
.checkout-checkbox small { font-size: .52vw; color: rgba(243,241,235,.42); font-weight: 400; }
.checkout-account-fields {
	display: none;
	grid-template-columns: repeat(2, minmax(0,1fr));
	gap: 0 1vw;
	margin-top: .85vw;
	padding-top: .85vw;
	border-top: 1px solid rgba(255,255,255,.06);
}
.checkout-account-box.is-open .checkout-account-fields { display: grid; }
.checkout-account-fields .form-row { margin-bottom: .75vw !important; }
.checkout-account-fields .form-row:last-child { margin-bottom: 0 !important; }
.checkout-account-fields .form-row-wide { grid-column: 1 / -1; }
.checkout-account-required {
	margin-top: .9vw;
	padding: .7vw .8vw;
	border: 1px solid rgba(178,74,74,.35);
	border-radius: .45vw;
	background: rgba(178,74,74,.06);
	font-size: .58vw;
	color: rgba(243,241,235,.62);
}
.checkout-details { height: fit-content; }
.checkout-layout { align-items: start; }
.checkout-summary { height: fit-content; }
.checkout-payment-area { margin-top: 1.1vw; }
.checkout-payment-area #payment #place_order {
	width: auto;
	min-width: 12vw;
	max-width: 100%;
	padding-left: 1.45vw;
	padding-right: 1.45vw;
}

@media (max-width: 1100px){
	.checkout-utility-bar { gap: 8px; margin-bottom: 14px; }
	.checkout-utility-link { min-height: 38px; padding: 9px 12px; font-size: 11px; gap: 5px; }
	.checkout-utility-icon { width: 18px; height: 18px; font-size: 10px; }
	.checkout-modal { padding: 20px; }
	.checkout-modal-dialog { width: min(100%, 420px); padding: 24px; border-radius: 16px; }
	.checkout-modal-close { top: 12px; right: 12px; width: 30px; height: 30px; font-size: 18px; }
	.checkout-modal-eyebrow { font-size: 9px; letter-spacing: 1.3px; }
	.checkout-modal-dialog h2 { margin: 9px 0 7px; font-size: 25px; }
	.checkout-modal-description { margin-bottom: 18px; font-size: 10px; }
	.checkout-modal-dialog label { margin-bottom: 6px; font-size: 10px; }
	.checkout-modal-dialog input.input-text, .checkout-modal-dialog input[type="password"] { min-height: 44px; padding: 11px 12px; font-size: 12px; border-radius: 8px; }
	.checkout-modal-dialog .woocommerce-form-login__rememberme, .checkout-modal-dialog .woocommerce-LostPassword a { font-size: 9px; }
	.checkout-modal-dialog .woocommerce-form-login__submit, .checkout-modal-dialog .checkout_coupon .button { min-height: 46px; padding: 11px 14px; font-size: 11px; }
	.checkout-fields .woocommerce-billing-fields__field-wrapper { grid-template-columns: 1fr 1fr; gap: 0 14px; }
	.checkout-account-box { margin-top: 3px; padding-top: 14px; }
	.checkout-checkbox { gap: 10px; }
	.checkout-checkbox-mark { width: 16px; height: 16px; border-radius: 4px; }
	.checkout-checkbox-mark::after { left: 4px; top: 2px; width: 4px; height: 8px; }
	.checkout-checkbox strong { font-size: 10px; }
	.checkout-checkbox small { font-size: 9px; }
	.checkout-account-fields { gap: 0 14px; margin-top: 12px; padding-top: 12px; }
	.checkout-account-fields .form-row { margin-bottom: 12px !important; }
	.checkout-account-required { margin-top: 12px; padding: 10px 11px; font-size: 9px; }
	.checkout-payment-area #payment #place_order { min-width: 160px; padding-left: 22px; padding-right: 22px; }
}

@media (max-width: 700px){
	.checkout-utility-bar { flex-wrap: wrap; gap: 7px; margin-bottom: 14px; }
	.checkout-utility-link { min-height: 36px; padding: 9px 11px; font-size: 10px; }
	.checkout-utility-icon { width: 17px; height: 17px; font-size: 9px; }
	.checkout-modal { align-items: flex-end; padding: 12px; }
	.checkout-modal-dialog { width: 100%; max-height: calc(100dvh - 24px); overflow: auto; padding: 22px 18px 18px; border-radius: 16px; }
	.checkout-modal-close { top: 10px; right: 10px; }
	.checkout-modal-dialog h2 { font-size: 24px; }
	.checkout-modal-description { font-size: 10px; }
	.checkout-modal-dialog .woocommerce-form-login__rememberme { font-size: 9px; }
	.checkout-fields .woocommerce-billing-fields__field-wrapper { display: block; }
	.checkout-account-fields { display: none; }
	.checkout-account-box.is-open .checkout-account-fields { display: block; }
	.checkout-account-fields .form-row { margin-bottom: 12px !important; }
	.checkout-checkbox strong { font-size: 11px; }
	.checkout-checkbox small { font-size: 9px; line-height: 1.35; }
	.checkout-payment-area #payment #place_order { width: 100%; min-width: 0; }
}
body.checkout-modal-open { overflow: hidden !important; }

/* ==========================================================
   1.7.4 — viewport-matched checkout + compact content
   ========================================================== */
@media (min-width: 1101px){
	/* Match the shell to the viewport/menu footprint instead of leaving a short bottom gap. */
	.checkout-page {
		padding-top: .94vw;
		padding-bottom: .94vw;
	}
	.checkout-shell {
		height: calc(100vh - 1.88vw);
		min-height: 0;
		max-height: calc(100vh - 1.88vw);
		display: flex;
		flex-direction: column;
		overflow: hidden;
	}
	.checkout-heading { flex: 0 0 auto; }
	.checkout-utility-bar { flex: 0 0 auto; }
	.checkout-layout {
		flex: 1 1 auto;
		min-height: 0;
		overflow: hidden;
		align-items: stretch;
	}
	.checkout-details,
	.checkout-summary {
		height: auto !important;
		min-height: 0;
		overflow: hidden;
		overscroll-behavior: contain;
	}
	.checkout-details {
		overflow-y: auto;
		scrollbar-width: thin;
		scrollbar-color: rgba(255,255,255,.18) transparent;
	}
	.checkout-summary-scroll {
		flex: 1 1 auto;
		min-height: 0;
		overflow-y: auto;
		overflow-x: hidden;
		scrollbar-width: thin;
		scrollbar-color: rgba(255,255,255,.18) transparent;
	}
	.checkout-details::-webkit-scrollbar,
	.checkout-summary-scroll::-webkit-scrollbar { width: 6px; }
	.checkout-details::-webkit-scrollbar-thumb,
	.checkout-summary-scroll::-webkit-scrollbar-thumb { background: rgba(255,255,255,.16); border-radius: 99px; }
	.checkout-summary-scroll .checkout-order-review { padding-top: 1vw; }
	.checkout-summary-scroll .checkout-payment-area { flex: none; }
}

/* Small, consistent order CTA instead of the full-width WooCommerce button. */
.checkout-payment-area #payment #place_order {
	width: auto !important;
	min-width: 10.5vw;
	max-width: 12.5vw;
	min-height: 2.65vw;
	padding: .65vw 1.25vw;
	font-size: .67vw;
}
.checkout-payment-area #payment .place-order {
	display: flex;
	align-items: flex-end;
	justify-content: flex-end;
	gap: .8vw;
}

/* AJAX modal forms are independent from WooCommerce's default form layout. */
.checkout-modal-field { margin: 0 0 .85vw; }
.checkout-modal-field label {
	display: block;
	margin: 0 0 .38vw;
	font-size: .62vw;
	line-height: 1.25;
	font-weight: 600;
	color: rgba(243,241,235,.78);
}
.checkout-modal-field label span { color: #0073aa; }
.checkout-modal-field input.input-text,
.checkout-modal-field input[type="text"],
.checkout-modal-field input[type="password"] {
	display: block;
	width: 100%;
	min-height: 2.65vw;
	box-sizing: border-box;
	padding: .62vw .72vw;
	border: 1px solid rgba(255,255,255,.12);
	border-radius: .48vw;
	background: #111;
	color: #f3f1eb;
	font: inherit;
	font-size: .7vw;
	outline: none;
}
.checkout-modal-field input:focus {
	border-color: rgba(0,115,170,.75);
	box-shadow: 0 0 0 .16vw rgba(0,115,170,.12);
}
.checkout-modal-checkbox {
	display: inline-flex;
	align-items: center;
	gap: .48vw;
	margin: .1vw 0 .95vw;
	font-size: .6vw;
	font-weight: 600;
	color: rgba(243,241,235,.58);
	cursor: pointer;
}
.checkout-modal-checkbox input {
	position: absolute;
	width: 1px;
	height: 1px;
	opacity: 0;
	pointer-events: none;
}
.checkout-modal-checkbox-mark {
	position: relative;
	width: .95vw;
	height: .95vw;
	box-sizing: border-box;
	border: 1px solid rgba(255,255,255,.28);
	border-radius: .22vw;
	background: #101010;
}
.checkout-modal-checkbox-mark::after {
	content: '';
	position: absolute;
	left: .22vw;
	top: .1vw;
	width: .27vw;
	height: .5vw;
	border-right: 2px solid #fff;
	border-bottom: 2px solid #fff;
	transform: rotate(45deg) scale(0);
	transition: transform .14s ease;
}
.checkout-modal-checkbox input:checked + .checkout-modal-checkbox-mark {
	background: #0073aa;
	border-color: #0073aa;
	box-shadow: 0 0 0 .16vw rgba(0,115,170,.1);
}
.checkout-modal-checkbox input:checked + .checkout-modal-checkbox-mark::after { transform: rotate(45deg) scale(1); }
.checkout-modal-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1vw;
	margin-top: .15vw;
}
.checkout-modal-primary {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: .8vw;
	width: 100%;
	min-height: 2.7vw;
	padding: .65vw 1vw;
	border: 0;
	border-radius: 999px;
	background: #0073aa;
	color: #fff;
	font: inherit;
	font-size: .68vw;
	font-weight: 700;
	cursor: pointer;
	transition: background .2s ease, transform .2s ease, box-shadow .2s ease;
}
.checkout-modal-primary:hover { background: #0084c3; transform: translateY(-1px); box-shadow: 0 .55vw 1.2vw rgba(0,115,170,.18); }
.checkout-modal-primary:disabled { opacity: .55; cursor: wait; transform: none; box-shadow: none; }
.checkout-modal-link-button {
	flex: 0 0 auto;
	border: 0;
	background: transparent;
	padding: 0;
	color: #0073aa;
	font: inherit;
	font-size: .6vw;
	font-weight: 600;
	cursor: pointer;
	text-align: left;
}
.checkout-modal-link-button:hover { color: #25a6df; }
.checkout-modal-status {
	min-height: 1.1vw;
	margin-top: .7vw;
	font-size: .58vw;
	line-height: 1.45;
	color: rgba(243,241,235,.52);
}
.checkout-modal-status.is-error { color: #d97878; }
.checkout-modal-status.is-success { color: #66b9df; }
.checkout-modal-status.is-loading { color: rgba(243,241,235,.48); }
.checkout-modal-dialog .checkout-ajax-coupon .form-row { margin: 0 0 .75vw; }
.checkout-modal-dialog .checkout-ajax-coupon .button { width: 100%; }
.checkout-modal-dialog .checkout-ajax-coupon .clear { display: none; }
.checkout-modal-dialog .checkout-ajax-coupon .form-row-first,
.checkout-modal-dialog .checkout-ajax-coupon .form-row-last { float: none; width: 100%; }
.checkout-account-hint {
	display: block;
	margin-top: -.35vw;
	font-size: .5vw;
	line-height: 1.4;
	color: rgba(243,241,235,.38);
}

@media (max-width: 1100px){
	.checkout-payment-area #payment #place_order {
		min-width: 145px;
		max-width: 180px;
		min-height: 46px;
		padding: 10px 18px;
		font-size: 11px;
	}
	.checkout-modal-field label { font-size: 10px; margin-bottom: 6px; }
	.checkout-modal-field input.input-text,
	.checkout-modal-field input[type="text"],
	.checkout-modal-field input[type="password"] { min-height: 44px; padding: 11px 12px; font-size: 12px; border-radius: 8px; }
	.checkout-modal-checkbox { gap: 8px; margin-bottom: 14px; font-size: 10px; }
	.checkout-modal-checkbox-mark { width: 16px; height: 16px; border-radius: 4px; }
	.checkout-modal-checkbox-mark::after { left: 4px; top: 2px; width: 4px; height: 8px; }
	.checkout-modal-actions { gap: 14px; }
	.checkout-modal-primary { min-height: 46px; padding: 11px 14px; font-size: 11px; }
	.checkout-modal-link-button { font-size: 10px; }
	.checkout-modal-status { min-height: 14px; margin-top: 9px; font-size: 9px; }
	.checkout-account-hint { margin-top: -4px; font-size: 9px; }
}

@media (max-width: 700px){
	.checkout-shell { overflow: visible; }
	.checkout-details, .checkout-summary { overflow: visible; }
	.checkout-payment-area #payment .place-order { align-items: stretch; }
	.checkout-payment-area #payment #place_order { width: 100% !important; max-width: none; min-width: 0; min-height: 52px; font-size: 13px; }
	.checkout-modal-actions { align-items: stretch; flex-direction: column; gap: 12px; }
	.checkout-modal-link-button { order: 2; text-align: center; }
	.checkout-modal-primary { width: 100%; }
}

/* 1.7.4 — the customer card owns its height; long content scrolls inside the card. */
@media (min-width: 1101px){
	.checkout-details,
	.checkout-summary {
		min-height: 0;
	}
	.checkout-details {
		padding-bottom: 1.4vw;
	}
}

/* ==========================================================
   1.7.5 — contained order-review scroll + clean coupon modal
   ========================================================== */
.checkout-summary-scroll {
	min-height: 0;
}
.checkout-modal-dialog .checkout-ajax-coupon .form-row-first,
.checkout-modal-dialog .checkout-ajax-coupon .form-row-last {
	display: block !important;
	float: none !important;
	clear: both !important;
	width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}
.checkout-modal-dialog .checkout-ajax-coupon .form-row-first {
	margin-bottom: .9vw !important;
}
.checkout-modal-dialog .checkout-ajax-coupon .form-row-last {
	margin-bottom: 0 !important;
}
.checkout-modal-dialog .checkout-ajax-coupon .form-row-first label {
	display: block;
	margin-bottom: .4vw;
}
.checkout-modal-dialog .checkout-ajax-coupon .form-row-first input.input-text {
	display: block;
	width: 100% !important;
}
.checkout-modal-dialog .checkout-ajax-coupon .form-row-last .button {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 100% !important;
}
@media (min-width: 1101px){
	.checkout-summary-scroll {
		margin-right: -.35vw;
		padding-right: .35vw;
	}
}
@media (max-width: 700px){
	.checkout-summary-scroll {
		overflow: visible;
	}
	.checkout-modal-dialog .checkout-ajax-coupon .form-row-first {
		margin-bottom: 12px !important;
	}
}

/* The digital-plugin checkout does not need WooCommerce's order-notes section. */
.checkout-details .woocommerce-additional-fields,
.checkout-details .woocommerce-additional-fields__field-wrapper,
.checkout-details .checkout-additional-fields {
	display: none !important;
}

.checkout-account-box {
	margin-top: .2vw;
	padding-top: 1.05vw;
}
.checkout-account-fields {
	margin-top: .95vw;
	padding-top: .95vw;
}

/* ==========================================================
   1.7.6 — stable internal summary scroll + modal controls + reCAPTCHA
   ========================================================== */
@media (min-width: 1101px){
	.checkout-summary {
		height: 100% !important;
		min-height: 0 !important;
		overflow: hidden !important;
		align-self: stretch;
	}
	.checkout-summary-scroll {
		height: 0;
		flex: 1 1 0 !important;
		min-height: 0 !important;
		overflow-y: auto !important;
		overflow-x: hidden !important;
		overscroll-behavior: contain;
		scrollbar-width: thin;
		scrollbar-color: rgba(255,255,255,.18) transparent;
	}
}
.checkout-modal-checkbox {
	position: relative;
	align-items: center;
	min-height: 1.15vw;
}
.checkout-modal-checkbox input {
	position: absolute !important;
	left: 0 !important;
	top: 0 !important;
	width: 1px !important;
	height: 1px !important;
	margin: 0 !important;
	padding: 0 !important;
	opacity: 0 !important;
	appearance: none !important;
	-webkit-appearance: none !important;
}
.checkout-modal-checkbox-mark {
	flex: 0 0 auto;
	display: inline-block;
}
.checkout-modal-dialog .checkout-ajax-coupon .form-row-last .button {
	box-sizing: border-box;
	min-height: 2.7vw;
	padding: .65vw 1vw;
	border: 1px solid rgba(0,115,170,.65) !important;
	border-radius: 999px !important;
	background: #0073aa !important;
	color: #fff !important;
	font: inherit;
	font-size: .68vw !important;
	font-weight: 700;
	line-height: 1.2;
	cursor: pointer;
	transition: background .2s ease, transform .2s ease, box-shadow .2s ease;
}
.checkout-modal-dialog .checkout-ajax-coupon .form-row-last .button:hover {
	background: #0084c3 !important;
	transform: translateY(-1px);
	box-shadow: 0 .55vw 1.2vw rgba(0,115,170,.18);
}
.recaptcha-disclosure {
	max-width: 58rem;
	margin: .55vw 0 .8vw;
	font-size: 9px;
	line-height: 1.45;
	color: rgba(243,241,235,.28);
}
.recaptcha-disclosure a {
	color: rgba(243,241,235,.45);
}
.recaptcha-disclosure a:hover {
	color: #0073aa;
}
.grecaptcha-badge {
	visibility: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
}
@media (max-width: 1100px){
	.checkout-modal-checkbox { min-height: 16px; }
	.checkout-modal-dialog .checkout-ajax-coupon .form-row-last .button { min-height: 46px; padding: 11px 14px; font-size: 11px !important; }
	.recaptcha-disclosure { margin: 8px 0 12px; font-size: 8px; }
}

/* ==========================================================
   grparallel 1.7.9 — final checkout geometry / consent
   Desktop: shell and cards fill the viewport; only the product
   list scrolls. Payment stays pinned and visible.
   ========================================================== */
@media (min-width: 1101px){
	.checkout-shell {
		height: calc(100vh - 2.4vw) !important;
		min-height: 0 !important;
		display: flex;
		flex-direction: column;
		overflow: hidden;
	}
	.checkout-heading,
	.checkout-utility-bar {
		flex: 0 0 auto;
	}
	.checkout-layout {
		flex: 1 1 auto;
		min-height: 0 !important;
		align-items: stretch !important;
	}
	.checkout-details,
	.checkout-summary {
		height: auto !important;
		min-height: 0 !important;
	}
	.checkout-details {
		overflow: hidden;
	}
	.checkout-summary {
		display: flex !important;
		flex-direction: column !important;
		overflow: hidden !important;
	}
	.checkout-summary-scroll {
		height: auto !important;
		flex: 1 1 auto !important;
		min-height: 0 !important;
		overflow-y: auto !important;
		overflow-x: hidden !important;
		overscroll-behavior: contain;
	}
	.checkout-payment-area {
		flex: 0 0 auto;
		max-height: 42%;
		overflow-y: auto;
		overflow-x: hidden;
		scrollbar-width: thin;
		scrollbar-color: rgba(255,255,255,.12) transparent;
		margin-top: 1vw !important;
		padding-top: 1vw !important;
	}
	.checkout-payment-area #payment .place-order {
		padding-bottom: 0 !important;
	}
	.checkout-privacy-consent {
		flex: 0 0 auto;
		display: flex !important;
		align-items: center;
		gap: .5vw;
		margin: .65vw 0 0;
		font-size: .55vw;
		line-height: 1.35;
		color: rgba(243,241,235,.46);
		cursor: pointer;
	}
	.checkout-privacy-consent input,
	.site-privacy-consent input {
		position: absolute;
		width: 1px;
		height: 1px;
		op: auto;
		left: auto;
		op: -9999px;
		op: -9999px;
		op: -9999px;
		op: -9999px;
		op: -9999px;
		op: -9999px;
		opacity: 0;
		pointer-events: none;
	}
	.checkout-privacy-consent-mark,
	.site-privacy-consent-mark {
		position: relative;
		flex: 0 0 auto;
		width: .85vw;
		height: .85vw;
		box-sizing: border-box;
		border: 1px solid rgba(255,255,255,.28);
		border-radius: .2vw;
		background: #101010;
	}
	.checkout-privacy-consent-mark::after,
	.site-privacy-consent-mark::after {
		content: '';
		position: absolute;
		left: .19vw;
		top: .08vw;
		width: .23vw;
		height: .45vw;
		border-right: 2px solid #fff;
		border-bottom: 2px solid #fff;
		transform: rotate(45deg) scale(0);
		transition: transform .15s ease;
	}
	.checkout-privacy-consent input:checked + .checkout-privacy-consent-mark,
	.site-privacy-consent input:checked + .site-privacy-consent-mark {
		border-color: #0073aa;
		background: #0073aa;
		box-shadow: 0 0 0 .16vw rgba(0,115,170,.1);
	}
	.checkout-privacy-consent input:checked + .checkout-privacy-consent-mark::after,
	.site-privacy-consent input:checked + .site-privacy-consent-mark::after {
		transform: rotate(45deg) scale(1);
	}
	.checkout-privacy-consent a {
		color: #0073aa;
		text-decoration: none;
	}
	.checkout-privacy-consent a:hover { text-decoration: underline; }
}

@media (max-width: 1100px){
	.checkout-privacy-consent {
		display: flex;
		align-items: center;
		gap: 8px;
		margin: 12px 0 0;
		font-size: 9px;
		line-height: 1.45;
		color: rgba(243,241,235,.5);
	}
	.checkout-privacy-consent input,
	.site-privacy-consent input {
		position: absolute;
		width: 1px;
		height: 1px;
		left: -9999px;
		opacity: 0;
	}
	.checkout-privacy-consent-mark,
	.site-privacy-consent-mark {
		position: relative;
		flex: 0 0 auto;
		width: 16px;
		height: 16px;
		box-sizing: border-box;
		border: 1px solid rgba(255,255,255,.28);
		border-radius: 4px;
		background: #101010;
	}
	.checkout-privacy-consent-mark::after,
	.site-privacy-consent-mark::after {
		content: '';
		position: absolute;
		left: 4px;
		top: 2px;
		width: 4px;
		height: 8px;
		border-right: 2px solid #fff;
		border-bottom: 2px solid #fff;
		transform: rotate(45deg) scale(0);
		transition: transform .15s ease;
	}
	.checkout-privacy-consent input:checked + .checkout-privacy-consent-mark,
	.site-privacy-consent input:checked + .site-privacy-consent-mark {
		border-color: #0073aa;
		background: #0073aa;
	}
	.checkout-privacy-consent input:checked + .checkout-privacy-consent-mark::after,
	.site-privacy-consent input:checked + .site-privacy-consent-mark::after {
		transform: rotate(45deg) scale(1);
	}
	.checkout-privacy-consent a { color: #0073aa; text-decoration: none; }
}

@media (max-width: 700px){
	.checkout-shell {
		height: auto !important;
		overflow: visible;
	}
	.checkout-details,
	.checkout-summary {
		height: auto !important;
		overflow: visible !important;
	}
	.checkout-summary-scroll {
		overflow: visible !important;
	}
}

/* No visible Google reCAPTCHA copy/badge in the site's UI. */
.recaptcha-disclosure { display: none !important; }

/* ==========================================================
   grparallel 1.7.9 — checkout regression fixes
   ========================================================== */
@media (min-width: 1101px){
	/* The layout must be a child of a flexing form; otherwise the shell
	   stretches but the checkout grid keeps its content height and gets clipped. */
	.checkout-shell > .custom-checkout-form {
		display: flex;
		flex: 1 1 auto;
		min-height: 0;
		flex-direction: column;
	}
	.checkout-shell > .custom-checkout-form > .checkout-layout {
		flex: 1 1 auto;
		min-height: 0;
		height: auto;
	}
	.checkout-details,
	.checkout-summary {
		height: auto !important;
		min-height: 0 !important;
	}
	.checkout-details {
		overflow-y: auto !important;
		overflow-x: hidden !important;
	}
	.checkout-summary {
		display: flex !important;
		flex-direction: column !important;
		overflow: hidden !important;
	}
	.checkout-summary-scroll {
		flex: 1 1 0 !important;
		height: 0 !important;
		min-height: 0 !important;
		overflow-y: auto !important;
		overflow-x: hidden !important;
	}
	.checkout-payment-area {
		flex: 0 0 auto !important;
		max-height: 15vw;
		overflow: auto;
	}
	.checkout-privacy-consent {
		flex: 0 0 auto;
		margin-top: .7vw;
		margin-bottom: 0;
	}
}

/* Keep the WooCommerce password meter/hint inside the account field and readable. */
.checkout-account-fields .woocommerce-password-strength {
	display: block;
	box-sizing: border-box;
	width: 100%;
	margin: -.35vw 0 .35vw !important;
	padding: .35vw .55vw;
	border-radius: .3vw;
	font-size: .62vw !important;
	line-height: 1.25 !important;
	font-weight: 700;
	text-align: center;
}
.checkout-account-fields .woocommerce-password-strength.short,
.checkout-account-fields .woocommerce-password-strength.bad {
	background: rgba(194, 87, 87, .18) !important;
	color: #e99a9a !important;
}
.checkout-account-fields .woocommerce-password-strength.good {
	background: rgba(207, 156, 67, .18) !important;
	color: #e5c27d !important;
}
.checkout-account-fields .woocommerce-password-strength.strong {
	background: rgba(0, 115, 170, .16) !important;
	color: #75c8ed !important;
}
.checkout-account-fields .woocommerce-password-hint {
	display: block;
	margin: .2vw 0 .65vw !important;
	font-size: .58vw !important;
	line-height: 1.45 !important;
	color: rgba(243,241,235,.52) !important;
}
.checkout-account-fields .woocommerce-password-hint:empty { display: none; }

/* The hidden native checkbox must stay at its real location. Putting it at
   left:-9999px makes the browser horizontally scroll to it when the label is clicked. */
.site-privacy-consent {
	position: relative;
}
.site-privacy-consent input {
	position: absolute !important;
	left: 0 !important;
	top: 50% !important;
	width: 16px !important;
	height: 16px !important;
	margin: -8px 0 0 !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

/* The modal checkbox uses the same predictable geometry at every desktop zoom. */
.checkout-modal-checkbox {
	position: relative;
	display: flex !important;
	align-items: center !important;
	justify-content: flex-start !important;
	gap: .48vw !important;
	min-height: 1.15vw;
	line-height: 1.2 !important;
	margin: .15vw 0 .95vw !important;
}
.checkout-modal-checkbox > span:last-child {
	display: block !important;
	line-height: 1.2 !important;
}
.checkout-modal-checkbox-mark {
	position: relative !important;
	flex: 0 0 .95vw !important;
	width: .95vw !important;
	height: .95vw !important;
	margin: 0 !important;
}

/* No reCAPTCHA disclosure text should be visible in the design. */
.checkout-page .recaptcha-disclosure,
.checkout-page .grecaptcha-badge {
	display: none !important;
	visibility: hidden !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

@media (max-width: 1100px){
	.checkout-shell > .custom-checkout-form {
		display: block;
	}
	.checkout-shell > .custom-checkout-form > .checkout-layout {
		display: grid;
	}
	.checkout-payment-area { max-height: none; overflow: visible; }
	.checkout-account-fields .woocommerce-password-strength {
		margin: -4px 0 5px !important;
		padding: 6px 8px;
		border-radius: 4px;
		font-size: 11px !important;
	}
	.checkout-account-fields .woocommerce-password-hint {
		margin: 4px 0 8px !important;
		font-size: 10px !important;
	}
	.checkout-modal-checkbox {
		gap: 8px !important;
		min-height: 16px;
	}
	.checkout-modal-checkbox-mark {
		flex-basis: 16px !important;
		width: 16px !important;
		height: 16px !important;
	}
}

/* ==========================================================
   grparallel 1.7.9 — checkout polish / validation / zoom
   ========================================================== */

/* Keep the checkout hero typography visually stable when desktop browser
   zoom is changed (the global script exposes --zoom-compensation). */
.checkout-heading h1 {
	font-size: var(--checkout-heading-size, clamp(48px, 4.3vw, 78px));
}
.checkout-heading p {
	font-size: var(--checkout-subheading-size, clamp(12px, .82vw, 15px));
}

/* Privacy links stay part of the muted interface instead of looking like
   default browser/WooCommerce blue links. */
.checkout-privacy-consent a,
.checkout-payment-area #payment .woocommerce-privacy-policy-text a,
.checkout-page .woocommerce-terms-and-conditions-wrapper a {
	color: rgba(243,241,235,.58) !important;
	text-decoration: underline;
	text-decoration-color: rgba(243,241,235,.25);
	text-underline-offset: .12em;
	transition: color .18s ease, text-decoration-color .18s ease;
}
.checkout-privacy-consent a:hover,
.checkout-payment-area #payment .woocommerce-privacy-policy-text a:hover,
.checkout-page .woocommerce-terms-and-conditions-wrapper a:hover {
	color: #f3f1eb !important;
	text-decoration-color: rgba(243,241,235,.65);
}

/* The backdrop now fades and blurs instead of appearing as a hard jump. */
.checkout-modal-backdrop {
	background: rgba(5,5,5,0);
	backdrop-filter: blur(0);
	-webkit-backdrop-filter: blur(0);
	transition: background-color .24s ease, backdrop-filter .28s ease, -webkit-backdrop-filter .28s ease;
}
.checkout-modal.is-open .checkout-modal-backdrop {
	background: rgba(5,5,5,.74);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}

/* Password strength belongs below the input, never over it. */
.checkout-account-fields .woocommerce-password-strength {
	position: relative;
	z-index: 1;
	margin: .45vw 0 .45vw !important;
	padding: .42vw .6vw !important;
	min-height: 0;
	line-height: 1.35 !important;
}
.checkout-account-fields .woocommerce-password-hint {
	position: relative;
	z-index: 1;
	margin: .3vw 0 .7vw !important;
	line-height: 1.5 !important;
}

/* AJAX/client-side checkout validation is presented in the same visual
   language as the rest of the page, rather than WooCommerce's raw notice. */
.checkout-client-validation {
	margin: 0 0 1vw;
	padding: .75vw 1vw;
	border: 1px solid rgba(194,87,87,.35);
	border-radius: .55vw;
	background: rgba(194,87,87,.07);
	color: #e9a0a0;
	font-size: .64vw;
	line-height: 1.45;
}
.checkout-client-validation strong { color: #f3c0c0; }
.checkout-page .checkout-invalid-field input,
.checkout-page .checkout-invalid-field select {
	border-color: rgba(194,87,87,.78) !important;
	box-shadow: 0 0 0 .14vw rgba(194,87,87,.08) !important;
}

/* Compact CTA: enough visual weight to finish the order without becoming a
   giant pill that competes with the checkout heading. */
@media (min-width: 1101px){
	.checkout-payment-area #payment #place_order {
		min-width: 180px;
		max-width: 210px;
		min-height: 44px;
		padding: 11px 18px;
		font-size: 12px;
	}
	.checkout-payment-area #payment .place-order {
		margin-top: 8px;
	}
}

@media (max-width: 1100px){
	.checkout-client-validation { margin: 0 0 12px; padding: 10px 12px; font-size: 10px; }
	.checkout-account-fields .woocommerce-password-strength { margin: 7px 0 7px !important; padding: 7px 8px !important; font-size: 11px !important; }
	.checkout-account-fields .woocommerce-password-hint { margin: 5px 0 9px !important; font-size: 10px !important; }
}

/* ==========================================================
   grparallel 1.8.1 — shared page geometry / mobile checkout
   ========================================================== */
@media (min-width: 1101px){
	.checkout-page { padding: 0 !important; min-height: 100vh; }
	.checkout-shell {
		width: calc(100% - var(--nav-width) - 5.5vw) !important;
		height: calc(100vh - 36px) !important;
		min-height: 0 !important;
		max-height: none !important;
		margin: 18px 3.5vw 18px calc(var(--nav-width) + 2vw) !important;
	}
	.checkout-payment-area #payment #place_order {
		width: calc(210px * var(--zoom-compensation)) !important;
		min-width: calc(180px * var(--zoom-compensation)) !important;
		max-width: calc(210px * var(--zoom-compensation)) !important;
		min-height: calc(44px * var(--zoom-compensation)) !important;
		padding: calc(11px * var(--zoom-compensation)) calc(18px * var(--zoom-compensation)) !important;
		font-size: calc(12px * var(--zoom-compensation)) !important;
	}
}
@media (max-width: 700px){
	html.woocommerce-checkout, body.woocommerce-checkout {
		height: auto !important; min-height: 100%; overflow-x: hidden !important; overflow-y: auto !important;
		-webkit-overflow-scrolling: touch;
	}
	body.woocommerce-checkout { overscroll-behavior-y: auto !important; }
	html.woocommerce-checkout, body.woocommerce-checkout { height: auto !important; min-height: 100dvh !important; overflow: hidden !important; }
	.checkout-page { height: 100dvh !important; min-height: 100dvh !important; max-height: 100dvh !important; overflow-y: auto !important; overflow-x: hidden !important; -webkit-overflow-scrolling: touch; padding-bottom: 100px !important; }
	.checkout-shell { height: auto !important; min-height: 0 !important; max-height: none !important; overflow: visible !important; }
	.checkout-utility-bar { flex-wrap: nowrap !important; gap: 8px !important; overflow-x: auto !important; overflow-y: hidden !important; padding-bottom: 2px; scrollbar-width: none; }
	.checkout-utility-bar::-webkit-scrollbar { display: none; }
	.checkout-utility-link { flex: 0 0 auto !important; white-space: nowrap !important; min-height: 38px !important; }
	.custom-checkout-form input.input-text,
	.custom-checkout-form input[type="email"],
	.custom-checkout-form input[type="password"],
	.custom-checkout-form input[type="text"],
	.custom-checkout-form select,
	.custom-checkout-form textarea,
	.checkout-modal-dialog input.input-text,
	.checkout-modal-dialog input[type="text"],
	.checkout-modal-dialog input[type="password"],
	.checkout-modal-dialog input[type="email"] { font-size: 16px !important; }
	.checkout-modal { overflow-y: auto !important; -webkit-overflow-scrolling: touch; }
	.checkout-modal-dialog { max-height: calc(100dvh - 24px) !important; overflow-y: auto !important; -webkit-overflow-scrolling: touch; }
	.checkout-account-fields .woocommerce-password-strength { margin: 8px 0 6px !important; line-height: 1.3 !important; white-space: normal !important; }
	.checkout-account-fields .woocommerce-password-hint { margin: 6px 0 10px !important; line-height: 1.45 !important; }
}

/* ==========================================================
   grparallel 1.8.2 — checkout/mobile/account unification
   ========================================================== */
@media (max-width: 700px){
	/* Mobile checkout is a normal document: the page itself scrolls. */
	html.woocommerce-checkout,
	body.woocommerce-checkout {
		height: auto !important;
		min-height: 100% !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		-webkit-overflow-scrolling: touch;
	}
	body.woocommerce-checkout { overflow-y: auto !important; }
	.checkout-page {
		height: auto !important;
		min-height: 100dvh !important;
		max-height: none !important;
		overflow: visible !important;
		padding-bottom: 110px !important;
	}
	.checkout-layout { display: flex !important; flex-direction: column !important; }
	.checkout-details { order: 1 !important; }
	.checkout-summary { order: 2 !important; }
	.checkout-summary-scroll { overflow: visible !important; height: auto !important; }
	.checkout-payment-area { max-height: none !important; overflow: visible !important; }
	.checkout-payment-area #payment .place-order {
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
		justify-content: flex-start !important;
		gap: 10px !important;
	}
	.checkout-payment-area #payment #place_order {
		width: 100% !important;
		min-width: 0 !important;
		max-width: none !important;
		min-height: 52px !important;
		padding: 13px 18px !important;
		font-size: 13px !important;
		border-radius: 999px !important;
	}
	.checkout-privacy-consent {
		position: relative !important;
		display: flex !important;
		align-items: flex-start !important;
		gap: 10px !important;
		margin: 14px 0 0 !important;
		font-size: 10px !important;
		line-height: 1.45 !important;
	}
	.checkout-privacy-consent input {
		position: absolute !important;
		left: 0 !important;
		top: 0 !important;
		width: 1px !important;
		height: 1px !important;
		margin: 0 !important;
		opacity: 0 !important;
		pointer-events: none !important;
	}
	.checkout-privacy-consent-mark {
		flex: 0 0 16px !important;
		width: 16px !important;
		height: 16px !important;
		margin-top: 1px !important;
	}
}

/* Keep the account popup physically stable when desktop browser zoom is
   reduced: all key dimensions scale with the same compensation as the nav. */
.global-account-dialog {
	width: min(calc(680px * var(--zoom-compensation)), calc(100vw - 48px));
	padding: calc(42px * var(--zoom-compensation));
	border-radius: calc(24px * var(--zoom-compensation));
}
.global-account-dialog h2 {
	font-size: calc(48px * var(--zoom-compensation));
}
.global-account-dialog > p,
.global-account-dialog form > label:not(.global-account-check),
.global-account-dialog form > label input[type="text"],
.global-account-dialog form > label input[type="email"],
.global-account-dialog form > label input[type="password"] {
	font-size: calc(14px * var(--zoom-compensation));
}
.global-account-dialog form > label input[type="text"],
.global-account-dialog form > label input[type="email"],
.global-account-dialog form > label input[type="password"] {
	min-height: calc(52px * var(--zoom-compensation));
	padding: calc(12px * var(--zoom-compensation)) calc(14px * var(--zoom-compensation));
	margin-top: calc(7px * var(--zoom-compensation));
	border-radius: calc(10px * var(--zoom-compensation));
}
.global-account-check {
	gap: calc(10px * var(--zoom-compensation)) !important;
	font-size: calc(13px * var(--zoom-compensation)) !important;
}
.global-account-check-mark {
	width: calc(18px * var(--zoom-compensation));
	height: calc(18px * var(--zoom-compensation));
	flex-basis: calc(18px * var(--zoom-compensation));
}

@media (max-width: 700px){
	.global-account-dialog {
		width: 100%;
		padding: 28px 20px 24px;
		border-radius: 18px;
	}
	.global-account-dialog h2 { font-size: 42px; }
	.global-account-dialog > p { font-size: 13px; }
	.global-account-dialog form > label:not(.global-account-check) { font-size: 11px; }
	.global-account-dialog form > label input[type="text"],
	.global-account-dialog form > label input[type="email"],
	.global-account-dialog form > label input[type="password"] {
		font-size: 16px;
		min-height: 52px;
	}
	.global-account-check { gap: 10px !important; font-size: 13px !important; }
	.global-account-check-mark { width: 18px; height: 18px; flex-basis: 18px; }
}

/* ==========================================================
   1.8.5 — mobile checkout scrolling + unified account popup polish
   ========================================================== */

/* Mobile checkout must remain a normal vertical document. */
@media (max-width: 700px){
	html.woocommerce-checkout,
	body.woocommerce-checkout {
		height: auto !important;
		min-height: 100% !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		-webkit-overflow-scrolling: touch;
	}
	body.woocommerce-checkout {
		touch-action: pan-y;
	}
	.checkout-page {
		height: auto !important;
		min-height: 100dvh !important;
		overflow: visible !important;
		-webkit-overflow-scrolling: touch;
	}
	.checkout-shell {
		height: auto !important;
		min-height: 0 !important;
		overflow: visible !important;
	}
	.checkout-layout {
		height: auto !important;
		min-height: 0 !important;
		overflow: visible !important;
	}
}

/* ==========================================================
   grparallel 1.8.5 — force mobile checkout document scrolling
   ========================================================== */
@media (max-width: 700px){
	html.woocommerce-checkout {
		height: auto !important;
		min-height: 100% !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
	}
	body.woocommerce-checkout:not(.checkout-modal-open) {
		height: auto !important;
		min-height: 100% !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		-webkit-overflow-scrolling: touch;
		touch-action: pan-y;
	}
	.checkout-page {
		position: relative !important;
		height: auto !important;
		min-height: 100dvh !important;
		max-height: none !important;
		overflow: visible !important;
	}
	.checkout-shell,
	.checkout-layout {
		height: auto !important;
		max-height: none !important;
		overflow: visible !important;
	}
}

/* ==========================================================
   grparallel 1.8.5 — final mobile checkout document scroll
   ========================================================== */
@media (max-width: 700px){
	html:has(.checkout-page),
	body:has(.checkout-page) {
		height: auto !important;
		min-height: 100% !important;
		max-height: none !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		-webkit-overflow-scrolling: touch !important;
		touch-action: pan-y !important;
	}
	body:has(.checkout-page) {
		position: relative !important;
	}
	.checkout-page,
	.checkout-shell,
	.checkout-layout,
	.checkout-details,
	.checkout-summary {
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
		overflow: visible !important;
	}
}

/* ==========================================================
   grparallel 1.8.6 — mobile checkout: one explicit scroll root
   ========================================================== */
@media (max-width: 700px){
	/* Keep the site's global body locked, but give checkout its own
	   deterministic vertical scroll context. This avoids the horizontal
	   homepage scroll rules and the global body overflow lock fighting
	   with the checkout. */
	html:has(.checkout-page),
	body:has(.checkout-page) {
		width: 100% !important;
		height: 100% !important;
		min-height: 100% !important;
		overflow: hidden !important;
		overscroll-behavior: none !important;
	}

	.checkout-page {
		position: fixed !important;
		inset: 0 !important;
		width: 100% !important;
		height: 100dvh !important;
		min-height: 100dvh !important;
		max-height: none !important;
		overflow-x: hidden !important;
		overflow-y: auto !important;
		-webkit-overflow-scrolling: touch !important;
		overscroll-behavior-y: none !important;
		overscroll-behavior-x: none !important;
		touch-action: pan-y !important;
		padding-top: 84px !important;
		padding-bottom: 32px !important;
		background: #101010 !important;
	}

	.checkout-shell {
		width: 100% !important;
		min-height: 0 !important;
		height: auto !important;
		max-height: none !important;
		overflow: visible !important;
		padding-bottom: 0 !important;
	}

	.checkout-layout {
		width: 100% !important;
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
		overflow: visible !important;
	}

	/* Utility actions: two equal, fully visible buttons. */
	.checkout-utility-bar {
		display: flex !important;
		width: 100% !important;
		flex-wrap: nowrap !important;
		gap: 8px !important;
		overflow: visible !important;
		padding: 0 !important;
	}

	.checkout-utility-link {
		flex: 1 1 0 !important;
		min-width: 0 !important;
		width: auto !important;
		max-width: none !important;
		white-space: nowrap !important;
		overflow: hidden !important;
		text-overflow: ellipsis !important;
		padding-left: 10px !important;
		padding-right: 10px !important;
	}

	/* The customer card should feel like a full section rather than
	   collapsing to the height of just its fields. It can still grow. */
	.checkout-details {
		width: 100% !important;
		min-height: calc(100dvh - 170px) !important;
		height: auto !important;
		max-height: none !important;
		overflow: visible !important;
	}

	.checkout-summary {
		width: 100% !important;
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
		overflow: visible !important;
	}

	.checkout-summary-scroll,
	.checkout-payment-area {
		height: auto !important;
		min-height: 0 !important;
		max-height: none !important;
		overflow: visible !important;
	}

	/* Do not leave a giant artificial tail after the privacy consent. */
	.checkout-privacy-consent {
		margin-bottom: 0 !important;
		padding-bottom: 0 !important;
	}

	/* Prevent browser overscroll from exposing a different layer as a
	   bright strip when the user keeps swiping after reaching the end. */
	.checkout-page,
	.checkout-page * {
		overscroll-behavior-x: none !important;
	}
}

/* ==========================================================
   GRPARALLEL 2.4.16 — checkout final architecture
   ========================================================== */
.checkout-customer-confirmation-row a { color: rgba(243,241,235,.75) !important; }
.checkout-account-required-fields .woocommerce-password-strength { margin-top: 8px !important; }
.checkout-account-required-fields .woocommerce-password-hint { margin-top: 6px !important; }
@media (min-width:1101px){
	.checkout-payment-area #payment #place_order { min-width: 190px; max-width: 220px; min-height: 44px; }
}
@media (max-width:700px){
	html:has(.checkout-page), body:has(.checkout-page) { height:auto !important; min-height:100% !important; overflow:hidden !important; }
	.checkout-page { position:fixed !important; inset:0 !important; height:100dvh !important; max-height:none !important; overflow-y:auto !important; overflow-x:hidden !important; touch-action:pan-y !important; }
	.checkout-shell { height:auto !important; min-height:0 !important; overflow:visible !important; }
	.checkout-layout { height:auto !important; min-height:0 !important; overflow:visible !important; }
	.checkout-details, .checkout-summary { height:auto !important; min-height:0 !important; overflow:visible !important; }
	.checkout-payment-area #payment #place_order { width:100% !important; min-height:50px !important; margin-top:10px !important; font-size:12px !important; }
	.checkout-customer-confirmation-row { gap:12px; }
	.checkout-customer-confirmation-row strong { max-width:65%; }
}

/* ==========================================================
 * GRPARALLEL 2.4.16 — checkout final fixes
 * ========================================================== */
.checkout-account-required-fields .woocommerce-password-strength {
    color: #f3f1eb !important;
    background: rgba(0,115,170,.12) !important;
    margin: 8px 0 6px !important;
    padding: 7px 9px !important;
    border-radius: 7px;
    line-height: 1.35 !important;
}
.checkout-account-required-fields .woocommerce-password-strength.short,
.checkout-account-required-fields .woocommerce-password-strength.bad { color:#f2a4a4 !important; background:rgba(194,87,87,.16) !important; }
.checkout-account-required-fields .woocommerce-password-strength.good { color:#e8c982 !important; background:rgba(207,156,67,.15) !important; }
.checkout-account-required-fields .woocommerce-password-strength.strong { color:#8bd6f6 !important; background:rgba(0,115,170,.16) !important; }
.woocommerce-checkout .woocommerce-remove-coupon {
    display:inline-flex !important; align-items:center; justify-content:center;
    margin-left:.45vw; padding:.22vw .5vw; border:1px solid rgba(0,115,170,.4);
    border-radius:999px; color:#0073aa !important; background:rgba(0,115,170,.07);
    font-size:.55vw; font-weight:800; text-decoration:none !important; cursor:pointer;
}
.woocommerce-checkout .woocommerce-remove-coupon:hover { color:#fff !important; background:#0073aa; border-color:#0073aa; }
.checkout-account-required-fields .woocommerce-password-hint { display:block; clear:both; margin:6px 0 10px !important; }
@media (max-width:700px){ .woocommerce-checkout .woocommerce-remove-coupon { padding:4px 7px; font-size:9px; } }

/* ==========================================================
 * GRPARALLEL 2.4.16 — checkout polish
 * ========================================================== */
.checkout-page .woocommerce-error,
.checkout-page .woocommerce-info,
.checkout-page .woocommerce-message {
	position:relative; padding-left:1vw !important; display:flex; align-items:center; gap:.5vw; list-style:none;
}
.checkout-page .woocommerce-error::before,
.checkout-page .woocommerce-info::before,
.checkout-page .woocommerce-message::before {
	position:static !important; float:none !important; flex:0 0 auto; margin:0 !important;
}
.checkout-page .woocommerce-error a,
.checkout-page .woocommerce-info a,
.checkout-page .woocommerce-message a {
	color:#65c6f0 !important; font-weight:700; text-decoration:none; border-bottom:1px solid rgba(101,198,240,.35);
}
.checkout-page .woocommerce-error a:hover,
.checkout-page .woocommerce-info a:hover,
.checkout-page .woocommerce-message a:hover { color:#fff !important; border-color:#fff; }
.woocommerce-remove-coupon {
	display:inline-flex !important; align-items:center; justify-content:center; margin-left:.45vw; padding:.18vw .48vw;
	border:1px solid rgba(194,87,87,.42); border-radius:999px; background:rgba(194,87,87,.08);
	color:#e99a9a !important; font-size:.52vw; font-weight:800; line-height:1.2; text-decoration:none !important; transition:.18s ease;
}
.woocommerce-remove-coupon:hover { background:rgba(194,87,87,.2); color:#fff !important; border-color:rgba(194,87,87,.7); }
.woocommerce-remove-coupon.is-loading { opacity:.45; pointer-events:none; }
.checkout-summary-scroll { min-height:8vw; }
.checkout-account-fields .woocommerce-password-strength { color:#f3f1eb !important; }
@media(max-width:700px){
	.woocommerce-remove-coupon { margin-left:5px; padding:3px 7px; font-size:9px; }
	.checkout-page .woocommerce-error,.checkout-page .woocommerce-info,.checkout-page .woocommerce-message { padding:10px 12px !important; gap:7px; font-size:10px !important; }
	.checkout-summary-scroll { min-height:180px; }
}

/* ==========================================================
 * GRPARALLEL 2.4.16 — checkout stability
 * ========================================================== */
.checkout-privacy-consent-inline {
    margin-top:1vw !important;
    padding-top:1vw;
    border-top:1px solid rgba(255,255,255,.08);
}
.checkout-privacy-consent-inline span:last-child { min-width:0; }
.checkout-privacy-consent-inline a { color:#0073aa !important; }
.checkout-page .woocommerce-remove-coupon {
    width:1.35em !important;
    height:1.35em !important;
    min-width:1.35em !important;
    min-height:1.35em !important;
    padding:0 !important;
    margin-left:.45vw !important;
    border-radius:50% !important;
    font-size:0 !important;
    line-height:1 !important;
    vertical-align:middle;
    color:#73c8eb !important;
    background:rgba(0,115,170,.08) !important;
    border:1px solid rgba(0,115,170,.4) !important;
}
.checkout-page .woocommerce-remove-coupon::before { content:'×'; font-size:.85em; line-height:1; }
.checkout-page .woocommerce-remove-coupon:hover { background:#0073aa !important; color:#fff !important; }
.checkout-notices { flex:0 0 auto; position:relative; z-index:20; min-height:0; }
.checkout-notices:empty { display:none; }
.checkout-notices .checkout-client-validation { margin:.55vw 0; }
@media(min-width:701px){
    .checkout-shell { position:relative; }
    .checkout-shell > .checkout-notices {
        position:absolute;
        left:3vw;
        right:3vw;
        top:10.2vw;
        pointer-events:none;
    }
    .checkout-shell > .checkout-notices > * { pointer-events:auto; }
}
@media(max-width:700px){
    .checkout-privacy-consent-inline { margin-top:12px !important; padding-top:12px; }
    .checkout-page .woocommerce-remove-coupon { width:24px !important; height:24px !important; min-width:24px !important; min-height:24px !important; margin-left:6px !important; }
}

/* ==========================================================
 * GRPARALLEL 2.4.16 — checkout final coupon/login polish
 * ========================================================== */
.checkout-page .cart-discount td {
    display:flex !important;
    align-items:center !important;
    justify-content:flex-end !important;
    gap:.45vw !important;
    white-space:nowrap !important;
}
.checkout-page .cart-discount td .woocommerce-remove-coupon {
    flex:0 0 auto !important;
    margin-left:0 !important;
    vertical-align:middle !important;
}
.checkout-page .woocommerce-remove-coupon {
    width:1.35em !important;
    height:1.35em !important;
    min-width:1.35em !important;
    min-height:1.35em !important;
    padding:0 !important;
    margin-left:0 !important;
    border-radius:50% !important;
    font-size:0 !important;
    line-height:1 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
}
.checkout-page .woocommerce-remove-coupon::before {
    content:'×' !important;
    display:block !important;
    font-size:16px !important;
    line-height:1 !important;
    color:currentColor !important;
}
.checkout-page .woocommerce-error li { min-width:0; }
.checkout-page .woocommerce-error .showlogin { cursor:pointer !important; }
@media(max-width:700px){
    .checkout-page .cart-discount td { gap:6px !important; }
    .checkout-page .woocommerce-remove-coupon { width:24px !important; height:24px !important; min-width:24px !important; min-height:24px !important; }
    .checkout-page .woocommerce-remove-coupon::before { font-size:16px !important; }
}

/* ==========================================================
 * GRPARALLEL 2.4.16 — checkout final stability
 * ========================================================== */

/* Coupon remove: keep only the circular ×, and size it in vw so browser
 * zoom does not collapse it. The text is visually hidden without using
 * font-size:0 on the element itself (that made em-based sizing become zero). */
.checkout-page .woocommerce-remove-coupon {
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    flex:0 0 1.25vw !important;
    width:1.25vw !important;
    height:1.25vw !important;
    min-width:1.25vw !important;
    min-height:1.25vw !important;
    padding:0 !important;
    margin:0 !important;
    border:1px solid rgba(0,115,170,.42) !important;
    border-radius:50% !important;
    background:rgba(0,115,170,.08) !important;
    color:#73c8eb !important;
    font-size:.05vw !important;
    line-height:1 !important;
    text-indent:-9999px !important;
    overflow:hidden !important;
    vertical-align:middle !important;
    text-decoration:none !important;
    transition:transform .18s ease, background-color .18s ease, border-color .18s ease !important;
}
.checkout-page .woocommerce-remove-coupon::before {
    content:'×' !important;
    display:block !important;
    width:auto !important;
    height:auto !important;
    margin:0 !important;
    font-size:.9vw !important;
    line-height:1 !important;
    text-indent:0 !important;
    color:currentColor !important;
}
.checkout-page .woocommerce-remove-coupon:hover {
    background:#0073aa !important;
    border-color:#0073aa !important;
    color:#fff !important;
    transform:translateY(-1px) !important;
}

.checkout-page .cart-discount td .woocommerce-remove-coupon { margin:0 !important; }

/* Existing-email error: the login link is a real action, not a decorative
 * WooCommerce text link. JS opens the site's global login popup. */
.checkout-page .woocommerce-error .showlogin,
.checkout-page .woocommerce-error .sa-checkout-login-link {
    display:inline-flex !important;
    align-items:center !important;
    min-width:0 !important;
    margin-left:.2em !important;
    color:#65c6f0 !important;
    border:0 !important;
    border-bottom:1px solid rgba(101,198,240,.35) !important;
    text-decoration:none !important;
    cursor:pointer !important;
}
.checkout-page .woocommerce-error .showlogin:hover,
.checkout-page .woocommerce-error .sa-checkout-login-link:hover {
    color:#fff !important;
    border-bottom-color:#fff !important;
}

/* Alerts must never sit over the order-review column and make its scroll area
 * look as if it collapsed to two products. */
@media (min-width:701px){
    .checkout-shell > .checkout-notices {
        left:3vw !important;
        right:55% !important;
        top:10.2vw !important;
    }
    .checkout-summary-scroll {
        min-height:8vw !important;
    }
}

@media (hover:none) and (pointer:coarse){
    .checkout-page .woocommerce-remove-coupon {
        flex-basis:24px !important;
        width:24px !important;
        height:24px !important;
        min-width:24px !important;
        min-height:24px !important;
        font-size:1px !important;
        text-indent:-9999px !important;
    }
    .checkout-page .woocommerce-remove-coupon::before { font-size:16px !important; }
    .checkout-page .cart-discount td { gap:6px !important; }
}


/* Количество в названии плагина */
.checkout-page .woocommerce-checkout-review-order-table .product-quantity { display: none; }
