/**
 * Jedi-Robe WooCommerce checkout page.
 *
 * Restyles the native WooCommerce / Shoptimizer classic checkout using the
 * established Jedi-Robe dark-commerce interface.
 *
 * The shared Cart -> Checkout -> Confirmation tracker is intentionally kept
 * in checkout-progress.css and is not duplicated here.
 *
 * WooCommerce retains ownership of checkout validation, address updates,
 * shipping calculations, payment gateways, terms acceptance, coupon handling
 * and order submission.
 *
 * @package Jedi_Theme
 * @subpackage WooCommerce_Checkout
 * @since 1.0.0
 */


/* ==========================================================================
   Checkout tokens
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received) {
	--jr-checkout-border: rgba(152, 169, 192, 0.17);
	--jr-checkout-border-strong: rgba(152, 169, 192, 0.28);
	--jr-checkout-muted: rgba(255, 255, 255, 0.62);
	--jr-checkout-quiet: rgba(255, 255, 255, 0.46);
	--jr-checkout-panel: rgba(7, 13, 21, 0.54);
}


/* ==========================================================================
   Checkout shell
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.entry-content
	> .woocommerce {
	width: 100%;
	min-width: 0;

	margin: 0;
	padding: 0;

	background: transparent;

	color: var(--jr-text);
}


/* ==========================================================================
   Main checkout layout
   ========================================================================== */

/**
 * The customer/address workspace receives the larger column.
 *
 * Order review and payment occupy one stable right-hand command panel.
 */
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout.woocommerce-checkout {
	display: grid;

	grid-template-columns:
		minmax(0, 1.18fr)
		minmax(22rem, 0.82fr);

	grid-template-rows:
		auto;

	column-gap: clamp(2rem, 4vw, 4rem);
	row-gap: 0;

	align-items: start;

	width: 100%;

	margin: 0;
	padding: 0;
}


/* ==========================================================================
   Customer details column
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout.woocommerce-checkout
	> #customer_details {
	grid-column: 1;
	grid-row: 1;

	align-self: start;

	float: none;

	width: 100%;
	min-width: 0;

	margin: 0;
	padding: 0;
}


/**
 * Remove Shoptimizer's internal checkout floats.
 */
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	#customer_details
	> .col-1,
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	#customer_details
	> .col-2 {
	float: none;

	width: 100%;

	margin: 0;
	padding: 0;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	#customer_details
	> .col-2 {
	margin-top: 1.75rem;
}


/* ==========================================================================
   Billing section
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-billing-fields {
	width: 100%;

	margin: 0;
	padding: 0;
}


/* ==========================================================================
   Section headings
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-billing-fields
	> h3,
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-additional-fields
	> h3 {
	position: relative;

	margin:
		0
		0
		1.35rem;

	padding:
		0
		0
		0.85rem;

	border-bottom: 1px solid var(--jr-checkout-border);

	color: var(--jr-text);
}


/**
 * Short green signal rail beneath functional checkout headings.
 */
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-billing-fields
	> h3::after,
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-additional-fields
	> h3::after {
	position: absolute;
	bottom: -1px;
	left: 0;

	width: 3.5rem;
	height: 1px;

	background:
		linear-gradient(
			90deg,
			var(--jr-green-light),
			transparent
		);

	content: "";
}


/* ==========================================================================
   Billing / shipping field grids
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-billing-fields__field-wrapper,
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-shipping-fields__field-wrapper {
	display: grid;

	grid-template-columns:
		repeat(2, minmax(0, 1fr));

	column-gap: 1rem;
	row-gap: 1rem;

	width: 100%;

	margin: 0;
	padding: 0;
}


/* ==========================================================================
   Checkout form rows
   ========================================================================== */

/**
 * Default every WooCommerce field to the full form width.
 */
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	#customer_details
	.form-row {
	grid-column: 1 / -1;

	float: none;

	width: 100%;

	margin: 0;
	padding: 0;
}


/**
 * Name pairs receive one column each.
 */
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	#customer_details
	.form-row-first,
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	#customer_details
	.form-row-last {
	grid-column: auto;

	width: 100%;

	margin: 0;
}


/* ==========================================================================
   Input wrapper
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-input-wrapper {
	display: block;

	width: 100%;
	min-width: 0;
}


/* ==========================================================================
   Checkout labels
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	#customer_details
	.form-row
	> label:not(.screen-reader-text),
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-additional-fields
	.form-row
	> label:not(.screen-reader-text) {
	display: block;

	margin:
		0
		0
		0.38rem;

	padding: 0;

	color: var(--jr-text);
}


/* ==========================================================================
   Required / optional labels
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.required {
	color: var(--jr-danger);

	text-decoration: none;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.optional {
	color: var(--jr-checkout-quiet);
}


/* ==========================================================================
   Checkout controls
   ========================================================================== */

/**
 * Same control dimensions and dark surface established on Contact Us and
 * My Account.
 */
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout
	input.input-text,
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout
	input[type="text"],
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout
	input[type="email"],
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout
	input[type="tel"],
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout
	input[type="password"],
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout
	select,
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout
	textarea {
	box-sizing: border-box;

	width: 100%;
	max-width: none;
	min-height: 3rem;

	margin: 0;
	padding:
		0.75rem
		0.85rem;

	border: 1px solid rgba(152, 169, 192, 0.22);
	border-radius: 0;

	outline: 0;

	background: rgba(2, 6, 9, 0.84);

	color: var(--jr-text);
	caret-color: var(--jr-text);

	font: inherit;

	box-shadow: none;

	transition:
		border-color 150ms ease,
		background 150ms ease,
		box-shadow 150ms ease;
}


/* ==========================================================================
   Placeholder
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout
	input::placeholder,
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout
	textarea::placeholder {
	color: rgba(255, 255, 255, 0.44);

	opacity: 1;
}


/* ==========================================================================
   Control focus
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout
	input.input-text:focus,
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout
	input[type="text"]:focus,
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout
	input[type="email"]:focus,
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout
	input[type="tel"]:focus,
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout
	input[type="password"]:focus,
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout
	select:focus,
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout
	textarea:focus {
	border-color: rgba(69, 217, 107, 0.62);

	outline: 0;

	background: rgba(3, 8, 12, 0.96);

	color: var(--jr-text);
	caret-color: var(--jr-text);

	box-shadow:
		0 0 0 3px rgba(69, 217, 107, 0.07);
}


/* ==========================================================================
   Browser autofill
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout
	input:-webkit-autofill,
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout
	input:-webkit-autofill:hover,
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout
	input:-webkit-autofill:focus {
	-webkit-text-fill-color: var(--jr-text);

	caret-color: var(--jr-text);

	box-shadow:
		0 0 0 1000px #020609 inset;

	transition:
		background-color 9999s ease-out 0s;
}


/* ==========================================================================
   Textarea
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout
	textarea {
	min-height: 8rem;

	resize: vertical;

	line-height: 1.55;
}


/* ==========================================================================
   SelectWoo
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.select2-container {
	display: block;

	width: 100%;
	max-width: none;

	margin: 0;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.select2-container--default
	.select2-selection--single {
	position: relative;

	display: flex;

	width: 100%;
	min-height: 3rem;

	align-items: center;

	margin: 0;

	border: 1px solid rgba(152, 169, 192, 0.22);
	border-radius: 0;

	outline: 0;

	background: rgba(2, 6, 9, 0.84);

	color: var(--jr-text);

	box-shadow: none;

	transition:
		border-color 150ms ease,
		background 150ms ease,
		box-shadow 150ms ease;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.select2-container--default
	.select2-selection--single
	.select2-selection__rendered {
	width: 100%;

	padding:
		0.75rem
		3rem
		0.75rem
		0.85rem;

	color: var(--jr-text);
}


/* ==========================================================================
   SelectWoo arrow
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.select2-container--default
	.select2-selection--single
	.select2-selection__arrow {
	position: absolute;
	top: 0;
	right: 0.85rem;

	display: grid;

	width: 1rem;
	height: 100%;

	place-items: center;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.select2-container--default
	.select2-selection--single
	.select2-selection__arrow
	b {
	position: static;

	width: 0;
	height: 0;

	margin: 0;

	border-width: 5px 4px 0;
	border-style: solid;
	border-color:
		rgba(255, 255, 255, 0.72)
		transparent
		transparent;

	transform: none;
}


/* ==========================================================================
   SelectWoo focus / open
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.select2-container--default
	.select2-selection--single:focus,
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.select2-container--open
	.select2-selection--single {
	border-color: rgba(69, 217, 107, 0.62);

	background: rgba(3, 8, 12, 0.96);

	box-shadow:
		0 0 0 3px rgba(69, 217, 107, 0.07);
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.select2-container--open
	.select2-selection__arrow
	b {
	border-width: 0 4px 5px;
	border-color:
		transparent
		transparent
		rgba(255, 255, 255, 0.72);
}


/* ==========================================================================
   SelectWoo dropdown
   ========================================================================== */

/**
 * SelectWoo mounts the open dropdown outside the checkout form, so this rule
 * is scoped through the checkout body rather than #customer_details.
 */
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.select2-container--open
	.select2-dropdown {
	border: 1px solid rgba(152, 169, 192, 0.28);
	border-radius: 0;

	background: #050a10;

	color: var(--jr-text);

	box-shadow:
		0 1rem 2rem rgba(0, 0, 0, 0.32);
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.select2-container--default
	.select2-search--dropdown {
	padding: 0;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.select2-container--default
	.select2-search--dropdown
	.select2-search__field {
	width: 100%;
	min-height: 2.75rem;

	margin: 0;
	padding:
		0.65rem
		0.85rem;

	border: 0;
	border-bottom: 1px solid rgba(152, 169, 192, 0.22);

	outline: 0;

	background: rgba(2, 6, 9, 0.96);

	color: var(--jr-text);
	caret-color: var(--jr-text);

	box-shadow: none;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.select2-container--default
	.select2-results__option {
	padding:
		0.65rem
		0.85rem;

	background: transparent;

	color: rgba(255, 255, 255, 0.82);

	font-size: 0.86rem;
	line-height: 1.4;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.select2-container--default
	.select2-results__option[aria-selected="true"] {
	background: rgba(45, 166, 83, 0.06);

	color: var(--jr-green-light);
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.select2-container--default
	.select2-results__option--highlighted[aria-selected] {
	background: rgba(45, 166, 83, 0.14);

	color: var(--jr-text);
}


/* ==========================================================================
   SelectWoo admin-bar correction
   ========================================================================== */

/**
 * Match the correction already required by the My Account SelectWoo fields
 * when the WordPress frontend admin toolbar is present.
 */
body.admin-bar.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.select2-container--open
	> .select2-dropdown {
	transform: translateY(-32px);
}


@media screen and (max-width: 782px) {

	body.admin-bar.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
		.select2-container--open
		> .select2-dropdown {
		transform: translateY(-46px);
	}
}


/* ==========================================================================
   Shipping section
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-shipping-fields {
	width: 100%;

	margin: 0;
	padding:
		1.5rem
		0
		0;

	border-top: 1px solid var(--jr-checkout-border);
}


/* ==========================================================================
   Deliver-to-different-address control
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	#ship-to-different-address {
	margin:
		0
		0
		1.35rem;

	padding: 0;

	color: var(--jr-text);

    border: none;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	#ship-to-different-address
	label {
	display: inline-flex;

	align-items: center;

	gap: 0.7rem;

	margin: 0;

	color: var(--jr-text);

	cursor: pointer;
}


/* ==========================================================================
   Checkout checkboxes
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	input.input-checkbox {
	-webkit-appearance: none;
	appearance: none;

	display: inline-grid;

	flex: 0 0 1.05rem;

	width: 1.05rem;
	height: 1.05rem;

	place-content: center;

	margin: 0;
	padding: 0;

	border: 1px solid rgba(152, 169, 192, 0.58);
	border-radius: 0.1rem;

	background: rgba(2, 6, 9, 0.92);

	cursor: pointer;

	box-shadow:
		inset 0 1px 0 rgba(255, 255, 255, 0.025);

	transition:
		border-color 150ms ease,
		background 150ms ease,
		box-shadow 150ms ease;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	input.input-checkbox::before {
	display: block;

	margin: 0;

	color: var(--jr-green-light);

	content: "✓";

	font-family: Arial, sans-serif;
	font-size: 0.72rem;
	font-weight: 700;
	line-height: 1;

	opacity: 0;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	input.input-checkbox:checked {
	border-color: var(--jr-green-light);

	background: rgba(3, 10, 7, 0.96);
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	input.input-checkbox:checked::before {
	opacity: 1;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	input.input-checkbox:focus-visible {
	border-color: var(--jr-green-light);

	outline: 0;

	box-shadow:
		0 0 0 3px rgba(69, 217, 107, 0.1);
}


/* ==========================================================================
   Shipping address
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.shipping_address {
	width: 100%;

	margin: 0;
	padding: 0;
}


/* ==========================================================================
   Additional fields / order notes
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-additional-fields {
	width: 100%;

	margin:
		1.75rem
		0
		0;

	padding:
		1.5rem
		0
		0;

	border-top: 1px solid var(--jr-checkout-border);
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-additional-fields__field-wrapper
	.form-row {
	float: none;

	width: 100%;

	margin: 0;
	padding: 0;
}


/* ==========================================================================
   WooCommerce validation
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.form-row.woocommerce-invalid
	input.input-text,
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.form-row.woocommerce-invalid
	.select2-selection--single {
	border-color: rgba(232, 91, 91, 0.72);
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.form-row.woocommerce-validated
	input.input-text,
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.form-row.woocommerce-validated
	.select2-selection--single {
	border-color: rgba(69, 217, 107, 0.36);
}


/* ==========================================================================
   Order review heading
   ========================================================================== */

/**
 * The heading and #order_review visually combine into one command panel.
 */
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout.woocommerce-checkout
	> #order_review_heading {
	position: relative;
	top: auto;
	z-index: 2;
	isolation: isolate;

	grid-column: 2;
	grid-row: 1;

	align-self: start;

	float: none;

	width: 100%;

	margin: 0;
	padding:
		1.4rem
		1.5rem
		1rem;

	border:
		1px
		solid
		var(--jr-checkout-border-strong);
	border-bottom: 0;

	background: transparent;

	color: var(--jr-text);

	font-size: clamp(1.3rem, 1.2rem + 0.2vw, 1.5rem);
	font-weight: 740;
	letter-spacing: -0.02em;
	line-height: 1.2;

	transform: none;
}


/**
 * Sci-fi upper-left lock.
 */
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	#order_review_heading::before {
	position: absolute;
	top: -1px;
	left: -1px;

	width: 1.35rem;
	height: 1.35rem;

	border-top: 2px solid var(--jr-green-light);
	border-left: 2px solid var(--jr-green-light);

	content: "";

	pointer-events: none;
}


/* ==========================================================================
   Order review panel
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout.woocommerce-checkout
	> #order_review {
	position: relative;
	top: auto;
	z-index: 1;

	grid-column: 2;
	grid-row: 1;

	align-self: start;

	float: none;

	width: 100%;
	min-width: 0;

	margin: 0;
	padding:
		5rem
		1.5rem
		1.5rem;

	border:
		1px
		solid
		var(--jr-checkout-border-strong);
	border-top: 0;

	border-radius: 0;

	background:
		linear-gradient(
			135deg,
			rgba(255, 255, 255, 0.025),
			transparent 42%
		),
		radial-gradient(
			circle at 100% 0,
			rgba(111, 203, 255, 0.05),
			transparent 18rem
		),
		var(--jr-checkout-panel);

	color: var(--jr-text);

	box-shadow:
		0 1.5rem 3.5rem rgba(0, 0, 0, 0.24),
		inset 0 1px 0 rgba(255, 255, 255, 0.025);

	transform: none;
}


/**
 * Lower-right technical lock.
 */
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	#order_review::after {
	position: absolute;
	right: -1px;
	bottom: -1px;

	width: 1.35rem;
	height: 1.35rem;

	border-right: 1px solid rgba(111, 203, 255, 0.48);
	border-bottom: 1px solid rgba(111, 203, 255, 0.48);

	content: "";

	pointer-events: none;
}


/* ==========================================================================
   Order review table
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	#order_review
	.woocommerce-checkout-review-order-table {
	width: 100%;

	margin: 0;
	padding: 0;

	border: 0;
	border-collapse: collapse;
	border-spacing: 0;

	background: transparent;

	color: var(--jr-text);
}

/* ==========================================================================
   Order table heading
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-checkout-review-order-table
	thead
	th {
	padding:
		0
		0
		0.8rem;

	border: 0;
	border-bottom: 1px solid var(--jr-checkout-border);

	background: transparent;

	color: var(--jr-checkout-muted);

	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	line-height: 1.2;

	text-transform: uppercase;
}

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	#order_review .shop_table tr.shipping th {
	border-right: none;
}

/* ==========================================================================
   Order product rows
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-checkout-review-order-table
	tbody
	tr.cart_item {
	border-bottom: 1px solid var(--jr-checkout-border);

	background: transparent;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-checkout-review-order-table
	tbody
	td {
	padding:
		0.75rem
		0;

	border: 0;

	background: transparent;

	color: var(--jr-text);

	font-size: 0.94rem;
	line-height: 1.42;

	vertical-align: middle;
}


/* ==========================================================================
   Checkout product cell
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-checkout-review-order-table
	td.product-name {
	padding-right: 1rem;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.product-item-thumbnail {
	float: left;

	width: 3.5rem;
	height: 3.5rem;

	margin:
		0
		0.8rem
		0
		0;

	padding: 0.2rem;

	border: 1px solid rgba(152, 169, 192, 0.17);

	background: #fff;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.product-item-thumbnail
	img {
	display: block;

	width: 100%;
	height: 100%;

	margin: 0;

	object-fit: contain;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.cg-checkout-table-product-name {
	overflow: hidden;

	color: var(--jr-text);

	font-weight: 560;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.product-quantity {
	color: var(--jr-checkout-muted);

	font-size: 0.82rem;
	font-weight: 700;

	white-space: nowrap;
}


/* ==========================================================================
   Product totals
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-checkout-review-order-table
	td.product-total {
	color: var(--jr-text);

	font-size: 0.94rem;
	font-weight: 650;

	text-align: right;

	white-space: nowrap;
}

/* ==========================================================================
   Order Shipping rows
   ========================================================================== */
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-checkout-review-order-table
	thead
	th.product-total {
	text-align: right;
}

/* ==========================================================================
   Order totals rows
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-checkout-review-order-table
	tfoot
	tr {
	border-bottom: 1px solid var(--jr-checkout-border);

	background: transparent;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-checkout-review-order-table
	tfoot
	th,
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-checkout-review-order-table
	tfoot
	td {
	padding:
		0.9rem
		0;

	border: 0;

	background: transparent;

	color: var(--jr-text);

	font-size: 0.95rem;
	line-height: 1.5;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-checkout-review-order-table
	tfoot
	th {
	font-weight: 700;

	text-align: left;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-checkout-review-order-table
	tfoot
	td {
	text-align: right;
}


/* ==========================================================================
   Checkout shipping method
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-checkout-review-order-table
	tr.woocommerce-shipping-totals
	td {
	text-align: left;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-checkout-review-order-table
	#shipping_method {
	width: 100%;

	margin: 0;
	padding: 0;

	list-style: none;

	text-align: left;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-checkout-review-order-table
	#shipping_method
	li {
	width: 100%;

	margin: 0;
	padding: 0;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-checkout-review-order-table
	#shipping_method
	label {
	display: flex;

	width: 100%;

	align-items: center;

	margin: 0;
	padding: 0;

	color: var(--jr-text);

	font-size: 0.95rem;
	font-weight: 700;

	text-align: left;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-checkout-review-order-table
	#shipping_method
	label
	.amount {
	margin-left: auto;
	padding-left: 1rem;

	font-weight: 500;

	white-space: nowrap;
}


/* ==========================================================================
   Final order total
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-checkout-review-order-table
	.order-total {
	border-bottom: 0;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-checkout-review-order-table
	.order-total
	th,
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-checkout-review-order-table
	.order-total
	td {
	padding-top: 1rem;

	font-size: 1.08rem;
	font-weight: 800;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-checkout-review-order-table
	.order-total
	.amount {
	font-size: 1.3rem;
	font-weight: 850;
}


/* ==========================================================================
   Checkout restriction message
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.wp-jedi-toolkit-checkout-restriction-message {
	margin:
		1rem
		0
		0;

	padding:
		1rem
		1.1rem;

	border: 1px solid rgba(232, 91, 91, 0.28);
	border-left: 2px solid var(--jr-danger);

	border-radius: 0;

	background:
		linear-gradient(
			90deg,
			rgba(232, 91, 91, 0.09),
			rgba(10, 17, 27, 0.82) 70%
		);

	color: var(--jr-text);

	box-shadow: none;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.wp-jedi-toolkit-checkout-restriction-message
	strong,
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.wp-jedi-toolkit-checkout-restriction-message
	span {
	display: block;

	color: inherit;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.wp-jedi-toolkit-checkout-restriction-message
	span {
	margin-top: 0.35rem;

	color: var(--jr-checkout-muted);

	font-size: 0.88rem;
	line-height: 1.5;
}


/* ==========================================================================
   Payment area
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	#payment {
	margin:
		1.25rem
		0
		0;

	padding:
		1.25rem
		0
		0;

	border-top: 1px solid var(--jr-checkout-border);

	background: transparent;

	color: var(--jr-text);

	box-shadow: none;
}


/* ==========================================================================
   Payment methods
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	#payment
	ul.payment_methods {
	margin: 0;
	padding: 0;

	border: 0;

	background: transparent;

	list-style: none;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	#payment
	li.wc_payment_method {
	position: relative;

	margin:
		0
		0
		0.75rem;

	padding: 10px 10px 10px 0;

	border: 1px solid var(--jr-checkout-border-strong);
	border-radius: 0;

	background: rgba(2, 6, 9, 0.52);
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	#payment
	li.wc_payment_method:last-child {
	margin-bottom: 0;
}


/* ==========================================================================
   Payment radios
   ========================================================================== */

/**
 * WooCommerce gateways may hide their native radio controls. The payment
 * label therefore provides the consistent visible selection indicator.
 */
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	#payment
	input.input-radio {
	position: absolute;

	width: 1px;
	height: 1px;

	opacity: 0;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	#payment
	.wc_payment_method
	> label {
	position: relative;

	margin: 0;
	padding: 0rem
            0rem
            0rem
            2.6rem;

	color: var(--jr-text);

	cursor: pointer;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	#payment
	.wc_payment_method
	> label::before {
	position: absolute;
	left: 0.95rem;
    top: 5.5px;
	content: "";
	background: #fff;
}

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	#payment
	input.input-radio:focus-visible
	+ label {
	outline: 2px solid var(--jr-blue-light);
	outline-offset: -2px;
}


/* ==========================================================================
   Gateway logos
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	#payment
	.wc_payment_method
	label
	img {
	max-height: 1.8rem;

	margin-left: auto;
}

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	#payment
	.wc_payment_method
	label
	img[title*="Trustly" i] {
	filter: brightness(0) invert(1) drop-shadow(0 0 1rem rgba(255, 255, 255, 0.07));
}

/* ==========================================================================
   Payment description
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	#payment
	.payment_box {
	position: relative;

	margin: 0;

	padding:
		0
		0
		0
		2.6rem;

	border: 0;

	background: transparent;

	color: var(--jr-checkout-muted);

	box-shadow: none;

	font-size: 0.86rem;
	line-height: 1.55;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	#payment
	.payment_box::before {
	display: none;

	content: none;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	#payment
	.payment_box
	p {
	margin: 0;

	color: inherit;
}


/* ==========================================================================
   Place-order section
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	#payment
	.place-order {
	float: none;

	width: 100%;

	margin:
		1.25rem
		0
		0;

	padding:
		1.1rem
		0
		0;

	border-top: 1px solid var(--jr-checkout-border);

	background: transparent;
}


/* ==========================================================================
   Privacy information
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-privacy-policy-text {
	font-size: 0.82rem;
	line-height: 1.55;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-privacy-policy-text
	p {
	margin:
		0
		0
		1rem;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-privacy-policy-text
	a,
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-terms-and-conditions-checkbox-text
	a {
	color: var(--jr-text);

	text-decoration: underline;
	text-decoration-color: rgba(69, 217, 107, 0.48);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}


/* ==========================================================================
   Terms checkbox
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-terms-and-conditions-wrapper
	.form-row {
	margin:
		0
		0
		1rem;

	padding: 0;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-terms-and-conditions-wrapper
	label.checkbox {
	display: flex;

	align-items: flex-start;

	gap: 0.65rem;

	margin: 0;

	color: var(--jr-text);

	font-size: 0.84rem;
	line-height: 1.5;

	cursor: pointer;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-terms-and-conditions-wrapper
	label.checkbox
	input {
	margin-top: 0.14rem;
}


/* ==========================================================================
   Place order button
   ========================================================================== */

/**
 * Match the primary transactional action already established on the Basket.
 */
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	#place_order {
	position: relative;

	display: flex;
	float: none;

	width: 100%;
	min-height: 3.25rem;

	align-items: center;
	justify-content: center;

	margin: 0;
	padding:
		0.8rem
		1rem;

	border: 1px solid var(--jr-green-light);
	border-radius: 0;

	background:
		linear-gradient(
			135deg,
			var(--jr-green-light),
			var(--jr-green)
		);

	color: #080a0e;

	font-size: 0.88rem;
	font-weight: 800;
	letter-spacing: 0.015em;
	line-height: 1.1;

	text-decoration: none;

	box-shadow:
		0 0.7rem 1.5rem rgba(0, 0, 0, 0.24),
		0 0 1rem rgba(45, 166, 83, 0.08),
		inset 0 1px 0 rgba(255, 255, 255, 0.14);

	transform: translateY(0);

	transition:
		filter 180ms ease,
		transform 180ms ease,
		box-shadow 180ms ease;
}


@media (hover: hover) and (pointer: fine) {

	body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
		#place_order:hover {
		color: #080a0e;

		filter: brightness(1.06);

		transform: translateY(-1px);

		box-shadow:
			0 0.9rem 1.8rem rgba(0, 0, 0, 0.3),
			0 0 1.25rem rgba(45, 166, 83, 0.14);
	}
}


/* ==========================================================================
   Existing trust-symbol strip
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	#order_review
	.cart-custom-field {
	margin:
		1rem
		0
		0;

	padding: 0;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	#order_review
	.cart-custom-field
	p,
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	#order_review
	.cart-custom-field
	h4 {
	margin: 0;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	#order_review
	.cart-custom-field
	img {
	display: block;

	width: 100%;
	height: auto;

	margin: 0;
	padding: 0.35rem;

	border: 1px solid var(--jr-checkout-border);

	background: #fff;
}


/* ==========================================================================
   WooCommerce notices
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	:is(
		.woocommerce-message,
		.woocommerce-info,
		.woocommerce-error
	) {
	margin:
		0
		0
		1.5rem;

	padding:
		1rem
		1.15rem;

	border: 1px solid var(--jr-checkout-border-strong);
	border-radius: 0;

	background: rgba(10, 17, 27, 0.82);

	color: var(--jr-text);

	box-shadow: none;

	font-size: 0.9rem;
	line-height: 1.55;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-message {
	border-left: 2px solid var(--jr-success);
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-info {
	border-left: 2px solid var(--jr-blue);
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.woocommerce-error {
	border-left: 2px solid var(--jr-danger);
}


/* ==========================================================================
   Checkout coupon
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.coupon-wrapper {
	width: 100%;
	max-width: 46rem;

	margin:
		1.75rem
		0
		0;

	padding:
		1rem
		0
		0;

	border-top: 1px solid var(--jr-checkout-border);
}


/* ==========================================================================
   Coupon toggle
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.coupon-wrapper
	.woocommerce-form-coupon-toggle
	.woocommerce-info {
	margin: 0;

	padding: 0;

	border: 0;

	background: transparent;

	color: var(--jr-checkout-muted);

	font-size: 0.88rem;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.coupon-wrapper
	.showcoupon {
	color: var(--jr-text);

	font-weight: 650;

	text-decoration: underline;
	text-decoration-color: rgba(69, 217, 107, 0.48);
	text-underline-offset: 0.18em;
}


/* ==========================================================================
   Open coupon form
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout_coupon {
	grid-template-columns:
		minmax(0, 1fr)
		auto;

	gap: 0.6rem;

	width: 100%;

	margin:
		1rem
		0
		0;

	padding: 0;

	border: 0;

	background: transparent;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout_coupon
	.form-row {
	float: none;

	width: 100%;

	margin: 0;
	padding: 0;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout_coupon
	#coupon_code {
	width: 100%;
	min-height: 3.35rem;

	margin: 0;
	padding:
		0.75rem
		0.85rem;

	border: 1px solid var(--jr-checkout-border-strong);
	border-radius: 0;

	outline: 0;

	background: rgba(2, 6, 9, 0.84);

	color: var(--jr-text);

	font-size: 0.95rem;

	box-shadow: none;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout_coupon
	#coupon_code:focus {
	border-color: rgba(69, 217, 107, 0.62);

	box-shadow:
		0 0 0 3px rgba(69, 217, 107, 0.07);
}


/* ==========================================================================
   Coupon secondary button
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout_coupon
	button.button {
	position: relative;
	isolation: isolate;
	overflow: hidden;

	display: inline-flex;

	min-height: 3.35rem;

	align-items: center;
	justify-content: center;

	margin: 0;
	padding:
		0.9rem
		1.45rem;

	border: 1px solid rgba(152, 169, 192, 0.48);
	border-radius: 0;

	background:
		linear-gradient(
			135deg,
			rgba(255, 255, 255, 0.045),
			transparent 42%
		),
		linear-gradient(
			180deg,
			rgba(14, 24, 36, 0.96),
			rgba(6, 12, 20, 0.96)
		);

	color: #f7f9fc;

	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: 0.065em;
	line-height: 1.1;

	text-align: center;
	text-transform: uppercase;

	box-shadow:
		0 0.65rem 1.5rem rgba(0, 0, 0, 0.24),
		inset 0 1px 0 rgba(255, 255, 255, 0.07),
		inset 0 -1px 0 rgba(69, 217, 107, 0.08);

	transform: translateY(0);

	transition:
		transform 180ms ease,
		border-color 180ms ease,
		box-shadow 180ms ease,
		color 180ms ease,
		filter 180ms ease;
}


body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout_coupon
	button.button::after {
	position: absolute;
	right: 0.45rem;
	bottom: 0.4rem;

	width: 0.42rem;
	height: 0.42rem;

	border-right: 1px solid rgba(247, 249, 252, 0.62);
	border-bottom: 1px solid rgba(247, 249, 252, 0.62);

	content: "";

	pointer-events: none;
}


@media (hover: hover) and (pointer: fine) {

	body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
		form.checkout_coupon
		button.button:hover {
		border-color: rgba(69, 217, 107, 0.68);

		color: #fff;

		filter: brightness(1.1);

		box-shadow:
			0 1rem 2.2rem rgba(0, 0, 0, 0.32),
			0 0 1.2rem rgba(45, 166, 83, 0.16),
			inset 0 1px 0 rgba(255, 255, 255, 0.1);

		transform: translateY(-2px);
	}
}


/* ==========================================================================
   Tablet
   ========================================================================== */

@media (max-width: 1100px) {

	body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
		form.checkout.woocommerce-checkout {
		grid-template-columns:
			minmax(0, 1fr);

		grid-template-rows:
			auto
			auto;

		column-gap: 0;
		row-gap: 2rem;
	}


	body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
		form.checkout.woocommerce-checkout
		> #customer_details {
		grid-column: 1;
		grid-row: 1;
	}


	body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
		form.checkout.woocommerce-checkout
		> #order_review_heading,
	body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
		form.checkout.woocommerce-checkout
		> #order_review {
		grid-column: 1;
		grid-row: 2;
	}
}


/* ==========================================================================
   Mobile
   ========================================================================== */

@media (max-width: 720px) {

	body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
		.woocommerce-billing-fields__field-wrapper,
	body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
		.woocommerce-shipping-fields__field-wrapper {
		grid-template-columns:
			minmax(0, 1fr);

		column-gap: 0;
	}


	body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
		#customer_details
		.form-row-first,
	body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
		#customer_details
		.form-row-last {
		grid-column: 1;
	}




	body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
		.product-item-thumbnail {
		width: 3rem;
		height: 3rem;

		margin-right: 0.65rem;
	}


	body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
		.woocommerce-checkout-review-order-table
		tbody
		td {
		font-size: 0.88rem;
	}


	body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
		form.checkout_coupon {
		grid-template-columns:
			minmax(0, 1fr);
	}


	body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
		form.checkout_coupon
		button.button {
		width: 100%;
	}
}


/* ==========================================================================
   Reduced motion
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {

	body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
		form.checkout
		input,
	body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
		form.checkout
		select,
	body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
		form.checkout
		textarea,
	body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
		.select2-selection--single,
	body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
		#place_order,
	body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
		form.checkout_coupon
		button.button {
		transition: none;
	}


	body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
		#place_order:hover,
	body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
		form.checkout_coupon
		button.button:hover {
		transform: none;
	}
}

/**
 * Jedi-Robe checkout validation notice positioning.
 *
 * Places WooCommerce's dynamically injected checkout validation group in its
 * own full-width grid row. When the notice exists, the customer-details and
 * order-review areas are shifted to the following row using the document
 * sibling relationship already provided by WooCommerce.
 *
 * No empty validation row is created when checkout errors are absent.
 *
 * @package Jedi_Theme
 * @subpackage WooCommerce_Checkout
 * @since 1.0.0
 */


/**
 * Checkout validation layout for wrapped and unwrapped WooCommerce errors.
 *
 * The top-level notice occupies row 1 across both columns. Billing and the
 * order panel move to row 2; at the existing 1100px breakpoint the order
 * panel moves to row 3. Removing the notice restores the normal layout.
 * Existing notice colours, typography and borders remain authoritative.
 *
 * @package Jedi_Theme
 * @subpackage WooCommerce_Checkout
 */
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout.woocommerce-checkout
	> :is(.woocommerce-NoticeGroup-checkout, .woocommerce-error, [role="alert"]:has(.woocommerce-error)) {
	position: static;
	display: block;
	float: none;
	clear: both;
	grid-column: 1 / -1;
	grid-row: 1;
	box-sizing: border-box;
	width: 100%;
	min-width: 0;
	height: auto;
	margin: 0 0 1.25rem;
}

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout.woocommerce-checkout
	> :is(.woocommerce-NoticeGroup-checkout, [role="alert"]:has(.woocommerce-error)),
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout.woocommerce-checkout
	> .woocommerce-NoticeGroup-checkout > div {
	position: static;
	display: block;
	float: none;
	width: 100%;
	height: auto;
	padding: 0;
}

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout.woocommerce-checkout
	> .woocommerce-NoticeGroup-checkout > div {
	margin: 0;
}

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout.woocommerce-checkout
	> :is(.woocommerce-NoticeGroup-checkout, [role="alert"]:has(.woocommerce-error)) .woocommerce-error {
	position: static;
	display: block;
	float: none;
	box-sizing: border-box;
	width: 100%;
	height: auto;
	margin: 0;
}

/** Restore notice padding even when the bare list has inline padding: 0. */
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout.woocommerce-checkout
	> .woocommerce-error {
	padding: 1rem 1.15rem !important;
}

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout.woocommerce-checkout
	> :is(.woocommerce-NoticeGroup-checkout, .woocommerce-error, [role="alert"]:has(.woocommerce-error))
	~ :is(#customer_details, #order_review_heading, #order_review) {
	grid-row: 2;
}

@media (max-width: 1100px) {
	body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	form.checkout.woocommerce-checkout
	> :is(.woocommerce-NoticeGroup-checkout, .woocommerce-error, [role="alert"]:has(.woocommerce-error))
	~ :is(#order_review_heading, #order_review) {
		grid-row: 3;
	}
}

/**
 * Jedi-Robe checkout inline validation messages.
 *
 * Keeps WooCommerce's field-level validation message directly beneath its
 * associated control while matching the dark checkout interface.
 *
 * WooCommerce retains ownership of validation state and aria-describedby
 * relationships.
 *
 * @package Jedi_Theme
 * @subpackage WooCommerce_Checkout
 * @since 1.0.0
 */


/* ==========================================================================
   Inline validation message
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.checkout-inline-error-message {
	display: block;

	width: 100%;

	margin:
		0.35rem
		0
		0;

	padding: 0;

	color: var(--jr-danger);

	font-size: 0.8rem;
	font-weight: 550;
	line-height: 1.4;

	text-align: left;
}


/* ==========================================================================
   Invalid field
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.form-row.woocommerce-invalid
	input.input-text,
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.form-row.woocommerce-invalid
	.select2-selection--single {
	border-color: rgba(232, 91, 91, 0.78);

	background:
		linear-gradient(
			90deg,
			rgba(232, 91, 91, 0.025),
			rgba(2, 6, 9, 0.84) 18%
		);

	box-shadow:
		inset 2px 0 0 rgba(232, 91, 91, 0.7);
}


/* ==========================================================================
   Invalid field focus
   ========================================================================== */

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.form-row.woocommerce-invalid
	input.input-text:focus,
body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received)
	.form-row.woocommerce-invalid
	.select2-container--open
	.select2-selection--single {
	border-color: var(--jr-danger);

	box-shadow:
		0 0 0 3px rgba(232, 91, 91, 0.08),
		inset 2px 0 0 rgba(232, 91, 91, 0.8);
}


body.jr-dark-commerce.woocommerce-checkout h1 {
	color: var(--jr-text);
	font-size: 1.5rem;
}

body.jr-dark-commerce.woocommerce-checkout:not(.woocommerce-order-received) #order_review .cart-custom-field img {
    background: none;
}