/* ========================================================================== 
   PAMI — WooCommerce Checkout
   --------------------------------------------------------------------------
   Premium, update-resistant styling for the classic WooCommerce Checkout.

   Requires:
   - WooCommerce core frontend styles;
   - PAMI main.css design tokens;
   - PAMI woocommerce-base.css foundation.

   Architecture:
   - CSS enhancement layer only;
   - no WooCommerce template overrides;
   - no PHP or JavaScript DOM restructuring;
   - preserves WooCommerce checkout AJAX updates;
   - preserves payment-gateway and shipping-method markup;
   - intentionally avoids a sticky order summary.

   Scope:
   - classic WooCommerce Checkout and related checkout endpoints;
   - no effect on Cart, Shop, Account or Single Product pages.

   Breakpoints:
   - two-column Checkout: 992px and above;
   - single-column Checkout: 991px and below;
   - single-column field groups: 680px and below.
   ========================================================================== */


/* ==========================
   LOCAL CHECKOUT TOKENS
========================== */

body.woocommerce-checkout {
	--pami-checkout-summary-width: 420px;

	--pami-checkout-column-gap:
		clamp(
			var(--space-7, 32px),
			4.5vw,
			var(--space-10, 64px)
		);

	--pami-checkout-section-gap:
		clamp(
			var(--space-7, 32px),
			4vw,
			var(--space-9, 48px)
		);

	--pami-checkout-panel-padding:
		clamp(
			var(--space-5, 24px),
			3vw,
			var(--space-7, 32px)
		);

	--pami-checkout-field-column-gap:
		var(--space-4, 16px);

	--pami-checkout-field-row-gap:
		var(--space-5, 24px);

	--pami-checkout-field-height: 50px;

	--pami-checkout-ease-luxury:
		var(--motion-easing-emphasized);

	--pami-checkout-ease-standard:
		var(--motion-easing-standard);

	--pami-checkout-transition-fast:
		var(--motion-duration-fast);
	--pami-checkout-transition-base:
		var(--motion-duration-base);
	--pami-checkout-transition-slow:
		var(--motion-duration-media);

	background-color:
		var(--color-background, #faf8f5);
}


/* ==========================
   PAGE ENVIRONMENT
========================== */

body.woocommerce-checkout .site-main {
	box-sizing: border-box;

	min-height: 72vh;

	background:
		linear-gradient(
			180deg,
			var(--color-background, #faf8f5) 0%,
			var(--color-surface-light, #fdfcfb) 100%
		);
}

body.woocommerce-checkout .page-content__body {
	box-sizing: border-box;

	width: 100%;
	max-width: var(--container-width, 1320px);

	margin-inline: auto;

	padding-top:
		clamp(
			var(--space-7, 32px),
			5vw,
			var(--space-10, 64px)
		);

	padding-right:
		var(--container-padding, 20px);

	padding-bottom:
		clamp(
			var(--space-10, 64px),
			8vw,
			120px
		);

	padding-left:
		var(--container-padding, 20px);
}

body.woocommerce-checkout
	.page-content__body
	> .woocommerce {
	width: 100%;
	min-width: 0;
}


/* ==========================
   CHECKOUT TOP NOTICES
========================== */

body.woocommerce-checkout
	.woocommerce
	.woocommerce-form-login-toggle,
body.woocommerce-checkout
	.woocommerce
	.woocommerce-form-coupon-toggle {
	margin:
		0
		0
		var(--space-4, 16px);
}

body.woocommerce-checkout
	.woocommerce
	.woocommerce-form-login-toggle
	.woocommerce-info,
body.woocommerce-checkout
	.woocommerce
	.woocommerce-form-coupon-toggle
	.woocommerce-info {
	margin: 0;
}

body.woocommerce-checkout
	.woocommerce
	form.woocommerce-form-login,
body.woocommerce-checkout
	.woocommerce
	form.checkout_coupon {
	box-sizing: border-box;

	width: 100%;

	margin:
		0
		0
		var(--space-6, 28px);

	padding:
		var(--space-5, 24px);

	background:
		linear-gradient(
			160deg,
			rgba(255, 255, 255, 0.92) 0%,
			rgba(250, 248, 245, 0.82) 100%
		);

	border:
		1px solid
		var(
			--color-border-soft,
			rgba(45, 42, 40, 0.11)
		);

	border-radius:
		var(--radius-md, 8px);

	box-shadow:
		0 14px 36px rgba(45, 42, 40, 0.045);
}

body.woocommerce-checkout
	.woocommerce
	form.woocommerce-form-login
	> p:first-child,
body.woocommerce-checkout
	.woocommerce
	form.checkout_coupon
	> p:first-child {
	margin-top: 0;
}

body.woocommerce-checkout
	.woocommerce
	form.woocommerce-form-login
	.form-row,
body.woocommerce-checkout
	.woocommerce
	form.checkout_coupon
	.form-row {
	box-sizing: border-box;
}

body.woocommerce-checkout
	.woocommerce
	form.checkout_coupon
	.form-row-first,
body.woocommerce-checkout
	.woocommerce
	form.checkout_coupon
	.form-row-last {
	width:
		calc(
			50% -
			calc(var(--space-3, 12px) / 2)
		);
}

body.woocommerce-checkout
	.woocommerce
	form.checkout_coupon
	.form-row-first {
	margin-right: var(--space-3, 12px);
}

body.woocommerce-checkout
	.woocommerce
	form.checkout_coupon
	.form-row-last {
	margin-right: 0;
}

body.woocommerce-checkout
	.woocommerce
	form.checkout_coupon
	button.button {
	width: 100%;
	min-height: var(--pami-checkout-field-height);

	margin: 0;
}


/* ========================================================================== 
   CLASSIC CHECKOUT LAYOUT
   ========================================================================== */

body.woocommerce-checkout
	.woocommerce
	form.checkout.woocommerce-checkout {
	display: grid;

	grid-template-columns:
		minmax(0, 1fr)
		minmax(
			360px,
			var(--pami-checkout-summary-width)
		);

	grid-auto-flow: row;

	column-gap:
		var(--pami-checkout-column-gap);

	row-gap:
		var(--space-4, 16px);

	align-items: start;

	width: 100%;

	margin: 0;
}

body.woocommerce-checkout
	.woocommerce
	form.checkout.woocommerce-checkout
	> .woocommerce-NoticeGroup-checkout {
	grid-column: 1 / -1;

	min-width: 0;
}

body.woocommerce-checkout
	.woocommerce
	form.checkout.woocommerce-checkout
	> #customer_details {
	grid-column: 1;
	grid-row: auto / span 2;

	min-width: 0;
}

body.woocommerce-checkout
	.woocommerce
	form.checkout.woocommerce-checkout
	> #order_review_heading {
	grid-column: 2;
	grid-row: auto;

	min-width: 0;
}

body.woocommerce-checkout
	.woocommerce
	form.checkout.woocommerce-checkout
	> #order_review {
	grid-column: 2;
	grid-row: auto;

	min-width: 0;
}


/* ==========================
   CUSTOMER DETAILS
========================== */

body.woocommerce-checkout
	.woocommerce
	form.checkout
	#customer_details.col2-set {
	display: grid;

	grid-template-columns:
		minmax(0, 1fr);

	gap:
		var(--pami-checkout-section-gap);

	width: 100%;

	margin: 0;
}

body.woocommerce-checkout
	.woocommerce
	form.checkout
	#customer_details.col2-set::before,
body.woocommerce-checkout
	.woocommerce
	form.checkout
	#customer_details.col2-set::after {
	content: none;

	display: none;
}

body.woocommerce-checkout
	.woocommerce
	form.checkout
	#customer_details
	> .col-1,
body.woocommerce-checkout
	.woocommerce
	form.checkout
	#customer_details
	> .col-2 {
	float: none;

	box-sizing: border-box;

	width: 100%;
	min-width: 0;

	margin: 0;
	padding:
		var(--pami-checkout-panel-padding);

	background:
		linear-gradient(
			160deg,
			rgba(255, 255, 255, 0.88) 0%,
			rgba(253, 252, 251, 0.78) 100%
		);

	border:
		1px solid
		var(
			--color-border-soft,
			rgba(45, 42, 40, 0.11)
		);

	border-radius:
		var(--radius-lg, 12px);

	box-shadow:
		0 18px 48px rgba(45, 42, 40, 0.05);

	-webkit-backdrop-filter:
		blur(12px);

	backdrop-filter:
		blur(12px);
}

body.woocommerce-checkout
	.woocommerce
	form.checkout
	#customer_details
	> .col-1:empty,
body.woocommerce-checkout
	.woocommerce
	form.checkout
	#customer_details
	> .col-2:empty {
	display: none;
}


/* ==========================
   SECTION HEADINGS
========================== */

body.woocommerce-checkout
	.woocommerce
	.woocommerce-billing-fields
	> h3,
body.woocommerce-checkout
	.woocommerce
	.woocommerce-additional-fields
	> h3,
body.woocommerce-checkout
	.woocommerce
	#order_review_heading {
	position: relative;

	margin:
		0
		0
		var(--space-6, 28px);

	padding:
		0
		0
		var(--space-4, 16px);

	font-family:
		var(
			--font-family-heading,
			Arial,
			sans-serif
		);

	font-size:
		var(
			--font-size-section-title,
			clamp(1.5rem, 2.15vw, 2rem)
		);

	font-weight:
		var(--font-weight-semibold, 600);

	line-height:
		var(--line-height-section-title, 1.15);

	letter-spacing:
		var(
			--letter-spacing-section-title,
			-0.025em
		);

	color:
		var(--color-text, #2d2a28);
}

body.woocommerce-checkout
	.woocommerce
	.woocommerce-billing-fields
	> h3::after,
body.woocommerce-checkout
	.woocommerce
	.woocommerce-additional-fields
	> h3::after,
body.woocommerce-checkout
	.woocommerce
	#order_review_heading::after {
	content: "";

	position: absolute;
	bottom: 0;
	left: 0;

	width: 42px;
	height: 1px;

	background:
		linear-gradient(
			90deg,
			var(--color-primary, #8f2727) 0%,
			var(
				--color-brand-gold-soft,
				#d1b8a1
			) 100%
		);
}


/* ==========================
   SHIPPING ADDRESS TOGGLE
========================== */

body.woocommerce-checkout
	.woocommerce
	#ship-to-different-address {
	margin:
		0
		0
		var(--space-6, 28px);

	padding: 0;

	font-family:
		var(
			--font-family-body,
			Arial,
			sans-serif
		);

	font-size:
		var(--font-size-body, 16px);

	font-weight:
		var(--font-weight-semibold, 600);

	line-height: 1.45;
	letter-spacing: -0.01em;

	color:
		var(--color-text, #2d2a28);
}

body.woocommerce-checkout
	.woocommerce
	#ship-to-different-address
	label {
	display: flex;
	align-items: flex-start;
	gap: var(--space-3, 12px);

	margin: 0;

	cursor: pointer;
}

body.woocommerce-checkout
	.woocommerce
	#ship-to-different-address
	input {
	flex: 0 0 auto;

	width: 18px;
	height: 18px;

	margin:
		2px
		0
		0;

	cursor: pointer;
}

body.woocommerce-checkout
	.woocommerce
	#ship-to-different-address
	span {
	min-width: 0;
}


/* ==========================
   FIELD WRAPPERS
========================== */

body.woocommerce-checkout
	.woocommerce
	.woocommerce-billing-fields__field-wrapper,
body.woocommerce-checkout
	.woocommerce
	.woocommerce-shipping-fields__field-wrapper {
	display: grid;

	grid-template-columns:
		repeat(
			2,
			minmax(0, 1fr)
		);

	column-gap:
		var(--pami-checkout-field-column-gap);

	row-gap:
		var(--pami-checkout-field-row-gap);

	width: 100%;
}

body.woocommerce-checkout
	.woocommerce
	.woocommerce-billing-fields__field-wrapper
	.form-row,
body.woocommerce-checkout
	.woocommerce
	.woocommerce-shipping-fields__field-wrapper
	.form-row {
	float: none;

	grid-column: 1 / -1;

	box-sizing: border-box;

	width: auto;
	min-width: 0;

	margin: 0;
	padding: 0;
}

body.woocommerce-checkout
	.woocommerce
	.woocommerce-billing-fields__field-wrapper
	.form-row-first,
body.woocommerce-checkout
	.woocommerce
	.woocommerce-billing-fields__field-wrapper
	.form-row-last,
body.woocommerce-checkout
	.woocommerce
	.woocommerce-shipping-fields__field-wrapper
	.form-row-first,
body.woocommerce-checkout
	.woocommerce
	.woocommerce-shipping-fields__field-wrapper
	.form-row-last {
	grid-column: auto;
}

body.woocommerce-checkout
	.woocommerce
	.woocommerce-billing-fields__field-wrapper
	.form-row-wide,
body.woocommerce-checkout
	.woocommerce
	.woocommerce-shipping-fields__field-wrapper
	.form-row-wide {
	grid-column: 1 / -1;
}

body.woocommerce-checkout
	.woocommerce
	.woocommerce-additional-fields {
	margin-top:
		var(--pami-checkout-section-gap);
}

body.woocommerce-checkout
	.woocommerce
	.woocommerce-additional-fields__field-wrapper
	.form-row {
	float: none;

	width: 100%;

	margin: 0;
	padding: 0;
}

body.woocommerce-checkout
	.woocommerce
	.shipping_address {
	margin-top:
		var(--space-2, 8px);
}


/* ==========================
   FIELD LABELS
========================== */

body.woocommerce-checkout
	.woocommerce
	form.checkout
	.form-row
	label,
body.woocommerce-checkout
	.woocommerce
	form.checkout
	.form-row
	legend {
	margin-bottom:
		var(--space-2, 8px);

	font-size:
		var(--font-size-small, 14px);

	font-weight:
		var(--font-weight-medium, 500);

	line-height: 1.45;

	color:
		var(--color-text, #2d2a28);

	transition:
		color
		var(--pami-checkout-transition-fast)
		var(--pami-checkout-ease-standard);
}

body.woocommerce-checkout
	.woocommerce
	form.checkout
	.form-row:focus-within
	> label {
	color:
		var(--color-primary, #8f2727);
}

body.woocommerce-checkout
	.woocommerce
	form.checkout
	.form-row
	.optional {
	font-size:
		var(--font-size-caption, 13px);

	font-weight:
		var(--font-weight-regular, 400);

	color:
		var(--color-text-muted, #8d8378);
}


/* ==========================
   CHECKOUT FORM CONTROLS
========================== */

body.woocommerce-checkout
	.woocommerce
	form.checkout
	:is(
		input.input-text,
		textarea,
		select
	) {
	box-sizing: border-box;

	width: 100%;
	min-height:
		var(--pami-checkout-field-height);

	padding:
		13px
		15px;

	color:
		var(--color-text, #2d2a28);

	background-color:
		rgba(255, 255, 255, 0.72);

	border:
		1px solid
		var(
			--color-border,
			rgba(45, 42, 40, 0.18)
		);

	border-radius:
		var(--radius-sm, 6px);

	box-shadow:
		inset 0 1px 1px
		rgba(45, 42, 40, 0.025);

	transition:
		background-color
		var(--pami-checkout-transition-base)
		var(--pami-checkout-ease-luxury),
		border-color
		var(--pami-checkout-transition-base)
		var(--pami-checkout-ease-luxury),
		box-shadow
		var(--pami-checkout-transition-base)
		var(--pami-checkout-ease-luxury);
}

body.woocommerce-checkout
	.woocommerce
	form.checkout
	textarea {
	min-height: 136px;

	resize: vertical;
}

body.woocommerce-checkout
	.woocommerce
	form.checkout
	select {
	padding-right: 44px;
}

body.woocommerce-checkout
	.woocommerce
	form.checkout
	:is(
		input.input-text,
		textarea,
		select
	):hover {
	background-color:
		rgba(255, 255, 255, 0.9);

	border-color:
		rgba(143, 39, 39, 0.3);
}

body.woocommerce-checkout
	.woocommerce
	form.checkout
	:is(
		input.input-text,
		textarea,
		select
	):focus {
	background-color:
		var(--color-white, #ffffff);

	border-color:
		var(--color-primary, #8f2727);

	outline:
		var(--focus-ring-width, 3px)
		solid
		var(
			--focus-ring-color,
			rgba(143, 39, 39, 0.55)
		);

	outline-offset: 1px;

	box-shadow:
		0 0 0 1px
		var(--color-primary, #8f2727);
}

@supports selector(:focus-visible) {
	body.woocommerce-checkout
		.woocommerce
		form.checkout
		:is(
			input.input-text,
			textarea,
			select
		):focus:not(:focus-visible) {
		outline: none;

		box-shadow:
			inset 0 1px 1px
			rgba(45, 42, 40, 0.025);
	}
}


/* ==========================
   SELECT2 CHECKOUT FIELDS
========================== */

body.woocommerce-checkout
	.woocommerce
	form.checkout
	.select2-container {
	width: 100%;
	max-width: 100%;
}

body.woocommerce-checkout
	.woocommerce
	form.checkout
	.select2-container
	.select2-selection--single {
	min-height:
		var(--pami-checkout-field-height);

	background-color:
		rgba(255, 255, 255, 0.72);

	border-color:
		var(
			--color-border,
			rgba(45, 42, 40, 0.18)
		);
}

body.woocommerce-checkout
	.woocommerce
	form.checkout
	.select2-container
	.select2-selection--single
	.select2-selection__rendered {
	line-height:
		calc(
			var(--pami-checkout-field-height) -
			2px
		);
}

body.woocommerce-checkout
	.woocommerce
	form.checkout
	.select2-container
	.select2-selection--single
	.select2-selection__arrow {
	height:
		calc(
			var(--pami-checkout-field-height) -
			2px
		);
}


body.woocommerce-checkout
	.woocommerce
	form.checkout
	.select2-container--default.select2-container--focus
	.select2-selection--single,
body.woocommerce-checkout
	.woocommerce
	form.checkout
	.select2-container--default.select2-container--open
	.select2-selection--single,
body.woocommerce-checkout
	.woocommerce
	form.checkout
	.select2-container
	.select2-selection--single:focus {
	background-color:
		var(--color-white, #ffffff);

	border-color:
		var(--color-primary, #8f2727);

	outline:
		var(--focus-ring-width, 3px)
		solid
		var(
			--focus-ring-color,
			rgba(143, 39, 39, 0.55)
		);

	outline-offset: 1px;

	box-shadow:
		0 0 0 1px
		var(--color-primary, #8f2727);
}


/* ==========================
   ACCOUNT CREATION
========================== */

body.woocommerce-checkout
	.woocommerce
	.woocommerce-account-fields {
	margin-top:
		var(--space-6, 28px);

	padding-top:
		var(--space-5, 24px);

	border-top:
		1px solid
		var(
			--color-border-soft,
			rgba(45, 42, 40, 0.11)
		);
}

body.woocommerce-checkout
	.woocommerce
	.woocommerce-account-fields
	.create-account {
	margin: 0;
}

body.woocommerce-checkout
	.woocommerce
	.woocommerce-account-fields
	label.checkbox {
	display: flex;
	align-items: flex-start;
	gap: var(--space-3, 12px);

	margin: 0;

	cursor: pointer;
}

body.woocommerce-checkout
	.woocommerce
	.woocommerce-account-fields
	input[type="checkbox"] {
	flex: 0 0 auto;

	width: 18px;
	height: 18px;

	margin-top: 2px;
}


/* ==========================
   VALIDATION FEEDBACK
========================== */

body.woocommerce-checkout
	.woocommerce
	form.checkout
	.form-row.woocommerce-invalid
	> label,
body.woocommerce-checkout
	.woocommerce
	form.checkout
	.form-row.woocommerce-invalid-required-field
	> label {
	color:
		var(--color-error, #b3261e);
}

body.woocommerce-checkout
	.woocommerce
	form.checkout
	.form-row.woocommerce-validated
	> label {
	color:
		var(--color-text, #2d2a28);
}

body.woocommerce-checkout
	.woocommerce
	form.checkout
	.woocommerce-NoticeGroup-checkout {
	margin:
		0
		0
		var(--space-6, 28px);
}


/* ========================================================================== 
   ORDER REVIEW
   ========================================================================== */

body.woocommerce-checkout
	.woocommerce
	#order_review_heading {
	align-self: end;
}

body.woocommerce-checkout
	.woocommerce
	#order_review {
	position: relative;

	isolation: isolate;

	box-sizing: border-box;

	width: 100%;
	min-width: 0;

	margin: 0;
	padding:
		var(--pami-checkout-panel-padding);

	background:
		linear-gradient(
			155deg,
			rgba(255, 255, 255, 0.95) 0%,
			rgba(250, 248, 245, 0.88) 100%
		);

	border:
		1px solid
		var(
			--color-border-soft,
			rgba(45, 42, 40, 0.11)
		);

	border-radius:
		var(--radius-lg, 12px);

	box-shadow:
		0 22px 56px rgba(45, 42, 40, 0.075);

	-webkit-backdrop-filter:
		blur(16px);

	backdrop-filter:
		blur(16px);
}


/* ==========================
   ORDER REVIEW TABLE
========================== */

body.woocommerce-checkout
	.woocommerce
	#order_review
	table.woocommerce-checkout-review-order-table {
	width: 100%;

	margin: 0;

	table-layout: auto;

	background: transparent;

	border: 0;
	border-collapse: separate;
	border-spacing: 0;
	border-radius: 0;

	box-shadow: none;
}

body.woocommerce-checkout
	.woocommerce
	#order_review
	table.woocommerce-checkout-review-order-table
	thead
	th {
	padding:
		0
		0
		var(--space-4, 16px);

	font-size: 0.6875rem;
	font-weight:
		var(--font-weight-semibold, 600);

	line-height: 1.3;
	letter-spacing: 0.12em;
	text-transform: uppercase;

	color:
		var(--color-text-muted, #8d8378);

	background: transparent;

	border: 0;
	border-bottom:
		1px solid
		var(
			--color-border-soft,
			rgba(45, 42, 40, 0.11)
		);
}

body.woocommerce-checkout
	.woocommerce
	#order_review
	table.woocommerce-checkout-review-order-table
	thead
	th.product-total {
	text-align: right;
}

body.woocommerce-checkout
	.woocommerce
	#order_review
	table.woocommerce-checkout-review-order-table
	tbody
	td {
	padding:
		var(--space-4, 16px)
		0;

	vertical-align: top;

	font-size:
		var(--font-size-small, 14px);

	line-height: 1.5;

	color:
		var(--color-text-light, #6a625c);

	background: transparent;

	border: 0;
	border-bottom:
		1px solid
		var(
			--color-border-soft,
			rgba(45, 42, 40, 0.11)
		);
}

body.woocommerce-checkout
	.woocommerce
	#order_review
	table.woocommerce-checkout-review-order-table
	tbody
	td.product-name {
	padding-right:
		var(--space-4, 16px);

	font-weight:
		var(--font-weight-medium, 500);

	color:
		var(--color-text, #2d2a28);

	overflow-wrap: break-word;
	word-break: normal;
}

body.woocommerce-checkout
	.woocommerce
	#order_review
	table.woocommerce-checkout-review-order-table
	tbody
	td.product-total {
	width: 34%;

	font-weight:
		var(--font-weight-medium, 500);

	font-variant-numeric:
		tabular-nums;

	text-align: right;
	white-space: nowrap;

	color:
		var(--color-text, #2d2a28);
}

body.woocommerce-checkout
	.woocommerce
	#order_review
	.product-quantity {
	font-weight:
		var(--font-weight-regular, 400);

	color:
		var(--color-text-muted, #8d8378);
}

body.woocommerce-checkout
	.woocommerce
	#order_review
	.wc-item-meta,
body.woocommerce-checkout
	.woocommerce
	#order_review
	dl.variation {
	display: grid;

	grid-template-columns:
		max-content
		minmax(0, 1fr);

	gap:
		var(--space-1, 4px)
		var(--space-2, 8px);

	margin:
		var(--space-2, 8px)
		0
		0;

	font-size:
		var(--font-size-caption, 13px);

	line-height: 1.45;

	color:
		var(--color-text-muted, #8d8378);
}

body.woocommerce-checkout
	.woocommerce
	#order_review
	:is(
		.wc-item-meta,
		dl.variation
	)
	:is(
		dt,
		dd,
		li,
		p
	) {
	float: none;

	margin: 0;
	padding: 0;
}


/* ==========================
   ORDER TOTALS
========================== */

body.woocommerce-checkout
	.woocommerce
	#order_review
	table.woocommerce-checkout-review-order-table
	tfoot
	th,
body.woocommerce-checkout
	.woocommerce
	#order_review
	table.woocommerce-checkout-review-order-table
	tfoot
	td {
	padding:
		var(--space-4, 16px)
		0;

	vertical-align: top;

	font-size:
		var(--font-size-small, 14px);

	line-height: 1.5;

	background: transparent;

	border: 0;
	border-bottom:
		1px solid
		var(
			--color-border-soft,
			rgba(45, 42, 40, 0.11)
		);
}

body.woocommerce-checkout
	.woocommerce
	#order_review
	table.woocommerce-checkout-review-order-table
	tfoot
	th {
	padding-right:
		var(--space-4, 16px);

	font-weight:
		var(--font-weight-medium, 500);

	text-align: left;

	color:
		var(--color-text-light, #6a625c);
}

body.woocommerce-checkout
	.woocommerce
	#order_review
	table.woocommerce-checkout-review-order-table
	tfoot
	td {
	font-weight:
		var(--font-weight-medium, 500);

	font-variant-numeric:
		tabular-nums;

	text-align: right;

	color:
		var(--color-text, #2d2a28);
}

body.woocommerce-checkout
	.woocommerce
	#order_review
	table.woocommerce-checkout-review-order-table
	tfoot
	tr.order-total
	th,
body.woocommerce-checkout
	.woocommerce
	#order_review
	table.woocommerce-checkout-review-order-table
	tfoot
	tr.order-total
	td {
	padding-top:
		var(--space-5, 24px);

	padding-bottom:
		var(--space-5, 24px);

	font-weight:
		var(--font-weight-semibold, 600);

	color:
		var(--color-text, #2d2a28);

	border-bottom: 0;
}

body.woocommerce-checkout
	.woocommerce
	#order_review
	table.woocommerce-checkout-review-order-table
	tfoot
	tr.order-total
	td
	.woocommerce-Price-amount {
	font-size:
		var(
			--font-size-display-price,
			clamp(1.25rem, 1.7vw, 1.5rem)
		);

	line-height: 1.2;
	letter-spacing: -0.02em;
}


/* ==========================
   SHIPPING METHODS
========================== */

body.woocommerce-checkout
	.woocommerce
	#order_review
	ul#shipping_method,
body.woocommerce-checkout
	.woocommerce
	#order_review
	ul.woocommerce-shipping-methods {
	display: grid;

	gap:
		var(--space-2, 8px);

	margin: 0;
	padding: 0;

	text-align: left;

	list-style: none;
}

body.woocommerce-checkout
	.woocommerce
	#order_review
	ul#shipping_method
	li,
body.woocommerce-checkout
	.woocommerce
	#order_review
	ul.woocommerce-shipping-methods
	li {
	display: grid;

	grid-template-columns:
		18px
		minmax(0, 1fr);

	column-gap:
		var(--space-2, 8px);

	align-items: start;

	margin: 0;
	padding: 0;
}

body.woocommerce-checkout
	.woocommerce
	#order_review
	ul#shipping_method
	input,
body.woocommerce-checkout
	.woocommerce
	#order_review
	ul.woocommerce-shipping-methods
	input {
	width: 16px;
	height: 16px;

	margin:
		3px
		0
		0;

	cursor: pointer;
}

body.woocommerce-checkout
	.woocommerce
	#order_review
	ul#shipping_method
	label,
body.woocommerce-checkout
	.woocommerce
	#order_review
	ul.woocommerce-shipping-methods
	label {
	min-width: 0;

	margin: 0;

	font-size:
		var(--font-size-caption, 13px);

	font-weight:
		var(--font-weight-regular, 400);

	line-height: 1.5;

	color:
		var(--color-text-light, #6a625c);

	cursor: pointer;
}


/* ========================================================================== 
   PAYMENT METHODS
   ========================================================================== */

body.woocommerce-checkout
	.woocommerce
	#payment {
	margin:
		var(--space-6, 28px)
		0
		0;

	padding:
		var(--space-6, 28px)
		0
		0;

	background: transparent;

	border: 0;
	border-top:
		1px solid
		var(
			--color-border-soft,
			rgba(45, 42, 40, 0.11)
		);

	border-radius: 0;

	box-shadow: none;
}

body.woocommerce-checkout
	.woocommerce
	#payment
	ul.payment_methods {
	display: grid;

	gap:
		var(--space-3, 12px);

	margin: 0;
	padding: 0;

	background: transparent;

	border: 0;

	list-style: none;
}

body.woocommerce-checkout
	.woocommerce
	#payment
	ul.payment_methods
	> li.wc_payment_method {
	display: grid;

	grid-template-columns:
		18px
		minmax(0, 1fr);

	column-gap:
		var(--space-3, 12px);

	align-items: start;

	margin: 0;
	padding:
		var(--space-4, 16px);

	background-color:
		rgba(255, 255, 255, 0.54);

	border:
		1px solid
		var(
			--color-border-soft,
			rgba(45, 42, 40, 0.11)
		);

	border-radius:
		var(--radius-md, 8px);

	transition:
		background-color
		var(--pami-checkout-transition-base)
		var(--pami-checkout-ease-luxury),
		border-color
		var(--pami-checkout-transition-base)
		var(--pami-checkout-ease-luxury),
		box-shadow
		var(--pami-checkout-transition-base)
		var(--pami-checkout-ease-luxury);
}

body.woocommerce-checkout
	.woocommerce
	#payment
	ul.payment_methods
	> li.wc_payment_method
	> input.input-radio {
	grid-column: 1;

	width: 17px;
	height: 17px;

	margin:
		3px
		0
		0;

	cursor: pointer;
}

body.woocommerce-checkout
	.woocommerce
	#payment
	ul.payment_methods
	> li.wc_payment_method
	> label {
	display: flex;
	align-items: flex-start;
	gap:
		var(--space-2, 8px);

	grid-column: 2;

	min-width: 0;

	margin: 0;

	font-size:
		var(--font-size-small, 14px);

	font-weight:
		var(--font-weight-semibold, 600);

	line-height: 1.5;

	color:
		var(--color-text, #2d2a28);

	cursor: pointer;
}

body.woocommerce-checkout
	.woocommerce
	#payment
	ul.payment_methods
	> li.wc_payment_method
	> label
	img {
	float: none;

	flex: 0 0 auto;

	width: auto;
	max-width: 108px;
	max-height: 28px;

	margin:
		-2px
		0
		0
		auto;
}

body.woocommerce-checkout
	.woocommerce
	#payment
	ul.payment_methods
	> li.wc_payment_method
	.payment_box {
	grid-column: 1 / -1;

	box-sizing: border-box;

	width: 100%;

	margin:
		var(--space-4, 16px)
		0
		0;

	padding:
		var(--space-4, 16px);

	font-size:
		var(--font-size-caption, 13px);

	line-height: 1.65;

	color:
		var(--color-text-light, #6a625c);

	background:
		rgba(250, 248, 245, 0.82);

	border:
		1px solid
		var(
			--color-border-soft,
			rgba(45, 42, 40, 0.11)
		);

	border-radius:
		var(--radius-sm, 6px);

	box-shadow: none;
}

body.woocommerce-checkout
	.woocommerce
	#payment
	ul.payment_methods
	> li.wc_payment_method
	.payment_box::before {
	content: none;

	display: none;
}

body.woocommerce-checkout
	.woocommerce
	#payment
	ul.payment_methods
	> li.wc_payment_method
	.payment_box
	> :first-child {
	margin-top: 0;
}

body.woocommerce-checkout
	.woocommerce
	#payment
	ul.payment_methods
	> li.wc_payment_method
	.payment_box
	> :last-child {
	margin-bottom: 0;
}

@supports selector(li:has(input:checked)) {
	body.woocommerce-checkout
		.woocommerce
		#payment
		ul.payment_methods
		> li.wc_payment_method:has(
			> input.input-radio:checked
		) {
		background-color:
			rgba(143, 39, 39, 0.035);

		border-color:
			rgba(143, 39, 39, 0.26);

		box-shadow:
			0 10px 28px
			rgba(45, 42, 40, 0.035);
	}
}


/* ==========================
   PLACE ORDER
========================== */

body.woocommerce-checkout
	.woocommerce
	#payment
	.form-row.place-order {
	float: none;

	width: 100%;

	margin: 0;
	padding:
		var(--space-6, 28px)
		0
		0;

	background: transparent;
}

body.woocommerce-checkout
	.woocommerce
	#payment
	.woocommerce-terms-and-conditions-wrapper {
	margin:
		0
		0
		var(--space-5, 24px);
}

body.woocommerce-checkout
	.woocommerce
	#payment
	.woocommerce-privacy-policy-text,
body.woocommerce-checkout
	.woocommerce
	#payment
	.woocommerce-terms-and-conditions-wrapper {
	font-size:
		var(--font-size-caption, 13px);

	line-height: 1.65;

	color:
		var(--color-text-muted, #8d8378);
}

body.woocommerce-checkout
	.woocommerce
	#payment
	label.woocommerce-form__label-for-checkbox {
	display: flex;
	align-items: flex-start;
	gap:
		var(--space-3, 12px);

	margin:
		var(--space-4, 16px)
		0;

	cursor: pointer;
}

body.woocommerce-checkout
	.woocommerce
	#payment
	label.woocommerce-form__label-for-checkbox
	input {
	flex: 0 0 auto;

	width: 18px;
	height: 18px;

	margin-top: 2px;
}

body.woocommerce-checkout
	.woocommerce
	#payment
	#place_order {
	float: none;

	width: 100%;
	min-height: 54px;

	margin: 0;
	padding:
		16px
		var(--space-6, 28px);

	font-size: 0.75rem;
	font-weight:
		var(--font-weight-semibold, 600);

	line-height: 1;
	letter-spacing: 0.085em;
	text-align: center;
	text-transform: uppercase;

	border-radius:
		var(--radius-sm, 6px);
}


/* ========================================================================== 
   AJAX / PROCESSING STATES
   ========================================================================== */

body.woocommerce-checkout
	.woocommerce
	form.checkout.processing,
body.woocommerce-checkout
	.woocommerce
	#order_review.processing,
body.woocommerce-checkout
	.woocommerce
	#order_review[aria-busy="true"] {
	cursor: progress;
}

body.woocommerce-checkout
	.woocommerce
	#order_review.processing {
	overflow: hidden;
}

body.woocommerce-checkout
	.woocommerce
	#order_review
	.blockUI.blockOverlay {
	border-radius: inherit;

	-webkit-backdrop-filter:
		blur(2px);

	backdrop-filter:
		blur(2px);

	cursor: progress;
}

body.woocommerce-checkout
	.woocommerce
	#order_review
	.blockUI.blockOverlay::before {
	content: "";

	position: absolute;
	top: 50%;
	left: 50%;

	width: 30px;
	height: 30px;

	margin:
		-15px
		0
		0
		-15px;

	background: none;

	border:
		2px solid
		rgba(143, 39, 39, 0.16);

	border-top-color:
		var(--color-primary, #8f2727);

	border-radius:
		var(--radius-full, 999px);

	box-shadow:
		0 5px 16px
		rgba(45, 42, 40, 0.08);

	animation:
		pami-checkout-loading-spin
		760ms
		linear
		infinite;
}

@keyframes pami-checkout-loading-spin {
	to {
		transform:
			rotate(360deg);
	}
}


/* ========================================================================== 
   ORDER-PAY COMPATIBILITY
   ========================================================================== */

body.woocommerce-checkout
	.woocommerce
	form#order_review {
	box-sizing: border-box;

	width: min(
		100%,
		760px
	);

	margin-inline: auto;
}

body.woocommerce-checkout
	.woocommerce
	form#order_review
	#payment {
	margin-top:
		var(--space-6, 28px);
}


/* ========================================================================== 
   RESPONSIVE
   ========================================================================== */

@media (max-width: 1279px) and (min-width: 992px) {
	body.woocommerce-checkout {
		--pami-checkout-summary-width: 380px;

		--pami-checkout-column-gap:
			var(--space-7, 32px);
	}
}

@media (max-width: 991px) {
	body.woocommerce-checkout
		.woocommerce
		form.checkout.woocommerce-checkout {
		grid-template-columns:
			minmax(0, 1fr);

		row-gap:
			var(--space-7, 32px);
	}

	body.woocommerce-checkout
		.woocommerce
		form.checkout.woocommerce-checkout
		> #customer_details,
	body.woocommerce-checkout
		.woocommerce
		form.checkout.woocommerce-checkout
		> #order_review_heading,
	body.woocommerce-checkout
		.woocommerce
		form.checkout.woocommerce-checkout
		> #order_review {
		grid-column: 1;
		grid-row: auto;
	}

	body.woocommerce-checkout
		.woocommerce
		form.checkout.woocommerce-checkout
		> #order_review_heading {
		margin-top:
			var(--space-3, 12px);

		margin-bottom: 0;
	}

	body.woocommerce-checkout
		.woocommerce
		#order_review_heading {
		align-self: auto;
	}
}

@media (max-width: 680px) {
	body.woocommerce-checkout
		.page-content__body {
		padding-top:
			var(--space-6, 28px);

		padding-right:
			var(--container-padding, 18px);

		padding-bottom:
			var(--space-9, 48px);

		padding-left:
			var(--container-padding, 18px);
	}

	body.woocommerce-checkout
		.woocommerce
		form.checkout
		#customer_details
		> .col-1,
	body.woocommerce-checkout
		.woocommerce
		form.checkout
		#customer_details
		> .col-2,
	body.woocommerce-checkout
		.woocommerce
		#order_review {
		padding:
			var(--space-5, 24px);

		-webkit-backdrop-filter: none;
		backdrop-filter: none;
	}

	body.woocommerce-checkout
		.woocommerce
		.woocommerce-billing-fields__field-wrapper,
	body.woocommerce-checkout
		.woocommerce
		.woocommerce-shipping-fields__field-wrapper {
		grid-template-columns:
			minmax(0, 1fr);
	}

	body.woocommerce-checkout
		.woocommerce
		.woocommerce-billing-fields__field-wrapper
		.form-row,
	body.woocommerce-checkout
		.woocommerce
		.woocommerce-billing-fields__field-wrapper
		.form-row-first,
	body.woocommerce-checkout
		.woocommerce
		.woocommerce-billing-fields__field-wrapper
		.form-row-last,
	body.woocommerce-checkout
		.woocommerce
		.woocommerce-shipping-fields__field-wrapper
		.form-row,
	body.woocommerce-checkout
		.woocommerce
		.woocommerce-shipping-fields__field-wrapper
		.form-row-first,
	body.woocommerce-checkout
		.woocommerce
		.woocommerce-shipping-fields__field-wrapper
		.form-row-last {
		grid-column: 1;
	}

	body.woocommerce-checkout
		.woocommerce
		form.checkout_coupon
		.form-row-first,
	body.woocommerce-checkout
		.woocommerce
		form.checkout_coupon
		.form-row-last {
		float: none;

		width: 100%;

		margin-right: 0;
	}

	body.woocommerce-checkout
		.woocommerce
		form.checkout_coupon
		.form-row-first {
		margin-bottom:
			var(--space-3, 12px);
	}

	body.woocommerce-checkout
		.woocommerce
		#order_review
		table.woocommerce-checkout-review-order-table
		tbody
		td.product-total {
		width: 38%;
	}
}

@media (max-width: 420px) {
	body.woocommerce-checkout
		.woocommerce
		form.checkout
		#customer_details
		> .col-1,
	body.woocommerce-checkout
		.woocommerce
		form.checkout
		#customer_details
		> .col-2,
	body.woocommerce-checkout
		.woocommerce
		#order_review {
		padding:
			var(--space-4, 16px);
	}

	body.woocommerce-checkout
		.woocommerce
		#payment
		ul.payment_methods
		> li.wc_payment_method {
		padding:
			var(--space-3, 12px);
	}

	body.woocommerce-checkout
		.woocommerce
		#payment
		ul.payment_methods
		> li.wc_payment_method
		> label {
		flex-wrap: wrap;
	}

	body.woocommerce-checkout
		.woocommerce
		#payment
		ul.payment_methods
		> li.wc_payment_method
		> label
		img {
		max-width: 92px;

		margin-left: 0;
	}

	body.woocommerce-checkout
		.woocommerce
		#payment
		#place_order {
		min-height: 52px;

		padding-right:
			var(--space-4, 16px);

		padding-left:
			var(--space-4, 16px);
	}
}


/* ==========================
   TOUCH DEVICES
========================== */

@media (hover: none) {
	body.woocommerce-checkout
		.woocommerce
		form.checkout
		:is(
			input.input-text,
			textarea,
			select
		):hover {
		background-color:
			rgba(255, 255, 255, 0.72);

		border-color:
			var(
				--color-border,
				rgba(45, 42, 40, 0.18)
			);
	}
}


/* ==========================
   REDUCED MOTION
========================== */

@media (prefers-reduced-motion: reduce) {
	body.woocommerce-checkout
		.woocommerce
		form.checkout
		.form-row
		label,
	body.woocommerce-checkout
		.woocommerce
		form.checkout
		:is(
			input.input-text,
			textarea,
			select
		),
	body.woocommerce-checkout
		.woocommerce
		#payment
		ul.payment_methods
		> li.wc_payment_method {
		transition: none;
	}

	body.woocommerce-checkout
		.woocommerce
		#order_review
		.blockUI.blockOverlay::before {
		animation: none;
	}
}
