/*
 * WooCommerce restyle (classic templates): checkout, cart, order received, My Account, notices.
 * Loaded after woocommerce-general/-layout/-smallscreen. Woo uses ID selectors
 * (#payment, #place_order), so some rules need `html body.woocommerce-checkout #payment …`.
 */

/* Woo's own design variables → project tokens. */
body {
	--wc-primary: var(--color-accent);
	--wc-primary-text: var(--color-white);
	--wc-secondary: var(--color-paper-2);
	--wc-secondary-text: var(--color-text);
	--wc-highlight: var(--color-accent);
	--wc-highligh-text: var(--color-white);
	--wc-content-bg: var(--color-white);
	--wc-subtext: var(--color-muted);
	--wc-red: var(--color-danger);
	--wc-green: var(--color-success);
	--wc-orange: var(--color-gold);
	--wc-blue: #3D7FD9;
	--wc-form-border-color: var(--color-line);
	--wc-form-border-radius: 12px;
	--wc-form-border-width: 1px;
	--wc-form-color-background: var(--color-white);
	--wc-form-color-text: var(--color-text);
}

/* Woo pages use the project container (Hello fallback single template). */
.cm-woo-flow .page-content {
	font-size: var(--fs-body);
}

.cm-woo-flow .page-header .entry-title {
	font-size: var(--fs-h2);
	line-height: var(--lh-h2);
}

/* ---------------------------------------------------------------- Notices (logical: work LTR + RTL) */
body .woocommerce-error,
body .woocommerce-info,
body .woocommerce-message,
body .woocommerce-notice {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px 16px;
	margin: 0 0 var(--space-5);
	padding: 14px 18px;
	padding-inline-start: 52px;
	border: 1px solid var(--color-line);
	border-inline-start: 4px solid var(--cm-notice, var(--color-ink));
	border-radius: var(--radius);
	background-color: var(--color-white);
	color: var(--color-text);
	font-size: var(--fs-small);
	line-height: 1.6;
	list-style: none;
	box-shadow: var(--shadow-sm);
}

body .woocommerce-error {
	--cm-notice: var(--color-danger);
	background-color: color-mix(in srgb, var(--color-danger) 5%, var(--color-white));
	flex-direction: column;
	align-items: stretch;
}

body .woocommerce-message {
	--cm-notice: var(--color-success);
	background-color: color-mix(in srgb, var(--color-success) 5%, var(--color-white));
}

body .woocommerce-info {
	--cm-notice: var(--color-ink);
}

/* Replace Woo's icon-font glyph with a small coloured badge. */
body .woocommerce-error::before,
body .woocommerce-info::before,
body .woocommerce-message::before {
	position: absolute;
	inset-inline-start: 18px;
	inset-block-start: 16px;
	inset-inline-end: auto;
	display: grid;
	place-items: center;
	inline-size: 20px;
	block-size: 20px;
	margin: 0;
	border-radius: 50%;
	background-color: var(--cm-notice);
	color: var(--color-white);
	font-family: Tahoma, Arial, sans-serif;
	font-size: 12px;
	font-weight: 700;
	line-height: 1;
}

body .woocommerce-error::before { content: "!"; }
body .woocommerce-info::before { content: "i"; }
body .woocommerce-message::before { content: "\2713"; }

body .woocommerce-error li {
	margin: 0;
	padding: 0;
	list-style: none;
}

body .woocommerce-error li + li {
	margin-block-start: 4px;
}

body .woocommerce-error a,
body .woocommerce-info a:not(.button),
body .woocommerce-message a:not(.button) {
	color: inherit;
	font-weight: 700;
	text-decoration: underline;
}

body .woocommerce-error .button,
body .woocommerce-info .button,
body .woocommerce-message .button {
	order: 2;
	margin-inline-start: auto;
}

.woocommerce-NoticeGroup,
.woocommerce-notices-wrapper:empty {
	margin: 0;
}

.woocommerce-notices-wrapper:not(:empty) {
	margin-block-end: var(--space-2);
}

/* Inline field errors (Woo ≥ 8). */
body .checkout-inline-error-message,
body .woocommerce-form-row .woocommerce-error-message {
	margin: 6px 0 0;
	color: var(--color-danger);
	font-size: var(--fs-xs);
	font-weight: 500;
	line-height: 1.6;
}

/* ---------------------------------------------------------------- Buttons */
body .woocommerce a.button,
body .woocommerce button.button,
body .woocommerce input.button,
body .woocommerce #respond input#submit,
body .woocommerce-page a.button,
body .woocommerce-page button.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-block-size: 44px;
	padding: 0 20px;
	border: 1px solid var(--color-line);
	border-radius: 12px;
	background-color: var(--color-white);
	color: var(--color-text);
	font-family: inherit;
	font-size: var(--fs-small);
	font-weight: 700;
	line-height: 1.4;
	text-decoration: none;
	transition: background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease), transform var(--dur) var(--ease);
}

body .woocommerce a.button:hover,
body .woocommerce button.button:hover,
body .woocommerce input.button:hover,
body .woocommerce-page a.button:hover,
body .woocommerce-page button.button:hover {
	border-color: var(--color-text);
	background-color: var(--color-white);
	color: var(--color-text);
}

body .woocommerce a.button.alt,
body .woocommerce button.button.alt,
body .woocommerce input.button.alt,
body .woocommerce-page a.button.alt,
body .woocommerce-page button.button.alt,
body .woocommerce a.checkout-button {
	border-color: var(--color-accent);
	background-color: var(--color-accent);
	color: var(--color-white);
}

body .woocommerce a.button.alt:hover,
body .woocommerce button.button.alt:hover,
body .woocommerce input.button.alt:hover,
body .woocommerce-page a.button.alt:hover,
body .woocommerce-page button.button.alt:hover,
body .woocommerce a.checkout-button:hover {
	border-color: var(--color-accent-hover);
	background-color: var(--color-accent-hover);
	color: var(--color-white);
	transform: translateY(-1px);
}

body .woocommerce button.button:disabled,
body .woocommerce button.button:disabled[disabled],
body .woocommerce button.button.disabled {
	opacity: .5;
	padding: 0 20px;
	transform: none;
}

/* ---------------------------------------------------------------- Forms */
body .woocommerce form .form-row {
	margin: 0 0 var(--space-4);
	padding: 0;
}

body .woocommerce form .form-row label,
body .woocommerce-page form .form-row label {
	display: block;
	margin-block-end: 6px;
	color: var(--color-text);
	font-size: var(--fs-small);
	font-weight: 500;
	line-height: 1.6;
}

body .woocommerce form .form-row label.checkbox,
body .woocommerce form .form-row label.woocommerce-form__label-for-checkbox {
	display: inline-flex;
	align-items: flex-start;
	gap: 10px;
	font-weight: 400;
	cursor: pointer;
}

body .woocommerce form .form-row .required {
	visibility: visible;
	color: var(--color-accent);
	font-weight: 700;
	text-decoration: none;
	border: 0;
}

body .woocommerce form .form-row .optional {
	visibility: visible;
	color: var(--color-muted);
	font-weight: 400;
}

body .woocommerce form .form-row .input-text,
body .woocommerce form .form-row select,
body .woocommerce-page form .form-row .input-text,
body .woocommerce-page form .form-row select {
	min-block-size: 50px;
	padding: 10px 16px;
	font-size: max(16px, var(--fs-body));
	line-height: 1.6;
	transition: border-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}

body .woocommerce form .form-row textarea.input-text {
	min-block-size: 110px;
}

body .woocommerce form .form-row .input-text:focus,
body .woocommerce form .form-row select:focus {
	border-color: var(--color-accent);
	box-shadow: var(--focus-ring);
	outline: none;
}

body .woocommerce form .form-row.woocommerce-invalid input.input-text,
body .woocommerce form .form-row.woocommerce-invalid select,
body .woocommerce form .form-row.woocommerce-invalid .select2-container .select2-selection {
	border-color: var(--color-danger);
	background-color: color-mix(in srgb, var(--color-danger) 4%, var(--color-white));
}

body .woocommerce form .form-row.woocommerce-invalid label {
	color: var(--color-danger);
}

body .woocommerce form .form-row.woocommerce-validated input.input-text {
	border-color: color-mix(in srgb, var(--color-success) 55%, var(--color-line));
}

body .woocommerce form .form-row input[type="tel"],
body .woocommerce form .form-row input[type="email"] {
	direction: ltr;
	text-align: start;
}

[dir="rtl"] body .woocommerce form .form-row input[type="tel"],
[dir="rtl"] body .woocommerce form .form-row input[type="email"] {
	text-align: end;
}

/* select2 (only if address fields are present). */
body .select2-container--default .select2-selection--single {
	block-size: 50px;
	border: 1px solid var(--color-line);
	border-radius: 12px;
}

body .select2-container--default .select2-selection--single .select2-selection__rendered {
	line-height: 48px;
	padding-inline: 16px 36px;
}

body .select2-container--default .select2-selection--single .select2-selection__arrow {
	block-size: 48px;
}

body .select2-dropdown {
	border-color: var(--color-line);
	border-radius: 12px;
	overflow: hidden;
}

body .select2-container--default .select2-results__option--highlighted[aria-selected],
body .select2-container--default .select2-results__option--highlighted[data-selected] {
	background-color: var(--color-accent);
}

/* ---------------------------------------------------------------- Checkout */
body.cm-checkout-focus {
	background-color: var(--color-paper);
}

.cm-checkout {
	margin: 0;
}

.cm-checkout__head {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--space-5);
	margin-block-end: clamp(24px, 4vw, 40px);
	text-align: center;
}

.cm-checkout__title {
	margin: 0;
	font-size: var(--fs-h2);
	line-height: var(--lh-h2);
}

/* Steps. */
.cm-steps {
	display: flex;
	align-items: flex-start;
	justify-content: center;
	inline-size: min(100%, 520px);
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: none;
}

.cm-steps__item {
	position: relative;
	flex: 1 1 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	color: var(--color-muted);
	font-size: var(--fs-small);
	font-weight: 500;
	line-height: 1.5;
}

.cm-steps__item + .cm-steps__item::before {
	content: "";
	position: absolute;
	inset-block-start: 16px;
	inset-inline-end: calc(50% + 24px);
	inline-size: calc(100% - 48px);
	block-size: 2px;
	border-radius: 2px;
	background-color: var(--color-line);
}

.cm-steps__item.is-done + .cm-steps__item::before,
.cm-steps__item.is-current::before {
	background-color: var(--color-accent);
}

.cm-steps__item.is-todo::before {
	background-color: var(--color-line);
}

.cm-steps__dot {
	display: grid;
	place-items: center;
	inline-size: 34px;
	block-size: 34px;
	border: 2px solid var(--color-line);
	border-radius: 50%;
	background-color: var(--color-white);
	color: var(--color-muted);
	font-size: .875rem;
	font-weight: 800;
	line-height: 1;
}

.cm-steps__dot .cm-icon {
	inline-size: 18px;
	block-size: 18px;
	stroke-width: 2.5;
}

.cm-steps__item.is-done {
	color: var(--color-text);
}

.cm-steps__item.is-done .cm-steps__dot {
	border-color: var(--color-accent);
	background-color: var(--color-accent);
	color: var(--color-white);
}

.cm-steps__item.is-current {
	color: var(--color-text);
	font-weight: 700;
}

.cm-steps__item.is-current .cm-steps__dot {
	border-color: var(--color-accent);
	color: var(--color-accent);
	box-shadow: 0 0 0 5px var(--color-accent-soft);
}

/* Two-column grid. */
.cm-checkout__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(320px, 400px);
	grid-template-areas: "main aside";
	align-items: start;
	gap: clamp(20px, 3vw, 36px);
}

.cm-checkout__main {
	grid-area: main;
	display: flex;
	flex-direction: column;
	gap: clamp(16px, 2vw, 24px);
	min-inline-size: 0;
}

.cm-checkout__aside {
	grid-area: aside;
	min-inline-size: 0;
}

.cm-checkout__aside-inner {
	position: sticky;
	inset-block-start: calc(var(--wp-admin--admin-bar--height, 0px) + var(--header-h) + 24px);
	display: flex;
	flex-direction: column;
	gap: var(--space-4);
}

.cm-checkout__card {
	padding: clamp(18px, 3vw, 32px);
	border: 1px solid var(--color-line);
	border-radius: var(--radius-lg);
	background-color: var(--color-white);
}

.cm-checkout__section-title,
.cm-checkout .woocommerce-billing-fields > h3,
.cm-checkout .woocommerce-shipping-fields > h3,
.cm-checkout .woocommerce-additional-fields > h3,
.cm-checkout #order_review_heading {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 var(--space-5);
	font-size: 1.1875rem;
	font-weight: 800;
	line-height: 1.5;
}

/* Customer details: one card, fields on a 2-col grid. */
/* Woo floats the columns (`.woocommerce .col2-set .col-1`, `.rtl …` = 0,4,0 in RTL); stay above it. */
html body .woocommerce .cm-checkout .col2-set .col-1,
html body .woocommerce .cm-checkout .col2-set .col-2 {
	float: none;
	inline-size: auto;
	max-inline-size: none;
}

.cm-checkout .col2-set .col-2:not(:has(.form-row, h3)) {
	display: none;
}

.cm-checkout .col2-set .col-2 {
	margin-block-start: var(--space-3);
}

.cm-checkout .woocommerce-billing-fields__field-wrapper,
.cm-checkout .woocommerce-shipping-fields__field-wrapper,
.cm-checkout .woocommerce-additional-fields__field-wrapper,
.cm-checkout .woocommerce-account-fields .create-account {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: var(--space-4) var(--space-5);
}

html body .cm-checkout .woocommerce-billing-fields__field-wrapper > .form-row,
html body .cm-checkout .woocommerce-shipping-fields__field-wrapper > .form-row,
html body .cm-checkout .woocommerce-additional-fields__field-wrapper > .form-row {
	grid-column: 1 / -1;
	float: none;
	inline-size: auto;
	margin: 0;
}

html body .cm-checkout .woocommerce-billing-fields__field-wrapper > .form-row-first,
html body .cm-checkout .woocommerce-billing-fields__field-wrapper > .form-row-last,
html body .cm-checkout .woocommerce-shipping-fields__field-wrapper > .form-row-first,
html body .cm-checkout .woocommerce-shipping-fields__field-wrapper > .form-row-last {
	grid-column: auto;
}

.cm-checkout .woocommerce-billing-fields__field-wrapper::before,
.cm-checkout .woocommerce-billing-fields__field-wrapper::after {
	content: none;
}

.cm-checkout .woocommerce-account-fields {
	margin-block-start: var(--space-4);
}

/* Payment. */
.cm-checkout__payment {
	position: relative;
}

html body.woocommerce-checkout #payment,
html body.woocommerce-checkout .cm-checkout #payment {
	border-radius: 0;
	background: transparent;
}

html body.woocommerce-checkout #payment ul.payment_methods {
	display: flex;
	flex-direction: column;
	gap: var(--space-3);
	margin: 0 0 var(--space-5);
	padding: 0;
	border: 0;
	list-style: none;
	text-align: start;
}

html body.woocommerce-checkout #payment ul.payment_methods::before,
html body.woocommerce-checkout #payment ul.payment_methods::after {
	content: none;
}

html body.woocommerce-checkout #payment ul.payment_methods li {
	position: relative;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	margin: 0;
	padding: 14px 18px;
	border: 1px solid var(--color-line);
	border-radius: var(--radius);
	background-color: var(--color-white);
	line-height: 1.6;
	text-align: start;
	cursor: pointer;
	transition: border-color var(--dur) var(--ease), background-color var(--dur) var(--ease), box-shadow var(--dur) var(--ease);
}

html body.woocommerce-checkout #payment ul.payment_methods li:hover {
	border-color: color-mix(in srgb, var(--color-muted) 50%, var(--color-line));
}

html body.woocommerce-checkout #payment ul.payment_methods li:has(> input:checked) {
	border-color: var(--color-accent);
	background-color: color-mix(in srgb, var(--color-accent) 4%, var(--color-white));
	box-shadow: 0 0 0 1px var(--color-accent);
}

html body.woocommerce-checkout #payment ul.payment_methods li > input.input-radio {
	flex-shrink: 0;
	inline-size: 20px;
	block-size: 20px;
	margin: 0;
	accent-color: var(--color-accent);
	cursor: pointer;
}

html body.woocommerce-checkout #payment ul.payment_methods li > label {
	display: flex;
	flex: 1;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 0;
	min-block-size: 32px;
	font-weight: 700;
	font-size: .9375rem;
	cursor: pointer;
}

html body.woocommerce-checkout #payment ul.payment_methods li img {
	max-block-size: 30px;
	inline-size: auto;
	margin: 0;
	margin-inline-start: auto;
	vertical-align: middle;
}

html body.woocommerce-checkout #payment div.payment_box {
	flex-basis: 100%;
	margin: 4px 0 0;
	padding: 12px 14px;
	border-radius: var(--radius-sm);
	background-color: var(--color-paper);
	color: var(--color-muted);
	font-size: var(--fs-small);
	line-height: 1.6;
}

html body.woocommerce-checkout #payment div.payment_box::before {
	content: none;
}

html body.woocommerce-checkout #payment div.payment_box p:last-child {
	margin: 0;
}

html body.woocommerce-checkout #payment div.form-row,
html body.woocommerce-checkout #payment .place-order {
	margin: 0;
	padding: 0;
}

/* Terms. */
body .woocommerce-terms-and-conditions-wrapper {
	margin-block-end: var(--space-5);
	color: var(--color-muted);
	font-size: var(--fs-small);
	line-height: 1.6;
}

body .woocommerce-terms-and-conditions-wrapper .woocommerce-privacy-policy-text p {
	margin-block-end: var(--space-3);
}

body .woocommerce-terms-and-conditions-wrapper .form-row.validate-required {
	margin: 0;
}

body .woocommerce-terms-and-conditions-wrapper label.woocommerce-form__label-for-checkbox {
	color: var(--color-text);
	font-size: var(--fs-small);
	font-weight: 500;
}

body .woocommerce-terms-and-conditions-wrapper input#terms {
	flex-shrink: 0;
	inline-size: 20px;
	block-size: 20px;
	margin: 2px 0 0;
}

body .woocommerce-terms-and-conditions-wrapper a {
	color: var(--color-accent);
	text-decoration: underline;
}

body .woocommerce-terms-and-conditions {
	max-block-size: 220px;
	overflow-y: auto;
	padding: var(--space-4);
	border: 1px solid var(--color-line);
	border-radius: var(--radius-sm);
	background-color: var(--color-paper);
}

/* Place-order bar (button + live total). */
.cm-place-order {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: var(--space-3) var(--space-5);
}

.cm-place-order__total {
	order: 2;
	display: flex;
	flex-direction: column;
	gap: 2px;
	line-height: 1.4;
	text-align: end;
}

.cm-place-order__total span {
	color: var(--color-muted);
	font-size: var(--fs-xs);
	white-space: nowrap;
}

.cm-place-order__total strong {
	color: var(--color-text);
	font-size: 1.25rem;
	font-weight: 800;
	white-space: nowrap;
}

.cm-place-order__total .woocommerce-Price-currencySymbol {
	font-size: .8125rem;
	font-weight: 500;
	margin-inline-start: 2px;
}

html body.woocommerce-checkout #payment #place_order,
html body.woocommerce-checkout #place_order {
	order: 1;
	flex: 1 1 260px;
	float: none;
	min-block-size: 58px;
	margin: 0;
	padding: 0 28px;
	border: 0;
	border-radius: var(--radius);
	background-color: var(--color-accent);
	color: var(--color-white);
	font-size: 1.0625rem;
	font-weight: 800;
	box-shadow: 0 14px 30px -16px color-mix(in srgb, var(--color-accent) 85%, transparent);
	transition: background-color var(--dur) var(--ease), transform var(--dur) var(--ease);
}

html body.woocommerce-checkout #payment #place_order:hover {
	background-color: var(--color-accent-hover);
	transform: translateY(-1px);
}

.cm-place-order__secure {
	order: 3;
	flex-basis: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	margin: 0;
	color: var(--color-muted);
	font-size: var(--fs-xs);
}

.cm-place-order__secure .cm-icon {
	inline-size: 16px;
	block-size: 16px;
	color: var(--color-success);
}

/* Event summary card (aside). */
.cm-checkout-event {
	overflow: hidden;
	border-radius: var(--radius-lg);
	background-color: var(--color-ink);
	color: var(--color-on-ink);
}

.cm-checkout-event__media {
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background-color: var(--color-ink-2);
}

.cm-checkout-event .cm-checkout-event__img {
	display: block;
	inline-size: 100%;
	block-size: 100%;
	object-fit: cover;
}

.cm-checkout-event__body {
	padding: var(--space-5) var(--space-6) var(--space-6);
}

.cm-checkout-event__eyebrow {
	margin: 0 0 4px;
	color: var(--color-accent);
	font-size: var(--fs-xs);
	font-weight: 700;
}

.cm-checkout-event__title {
	margin: 0 0 var(--space-3);
	color: var(--color-white);
	font-size: 1.3125rem;
	font-weight: 800;
	line-height: 1.5;
}

.cm-checkout-event__title a {
	color: inherit;
}

.cm-checkout-event__meta {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 0;
	padding: 0;
	list-style: none;
	color: var(--color-on-ink-muted);
	font-size: var(--fs-small);
	line-height: 1.55;
}

.cm-checkout-event__meta li {
	display: flex;
	align-items: center;
	gap: 8px;
}

.cm-checkout-event__meta .cm-icon {
	inline-size: 18px;
	block-size: 18px;
	color: var(--color-on-ink-muted);
}

/* Order review table → summary list. */
.cm-checkout__review #order_review_heading {
	margin-block-end: var(--space-3);
}

html body .cm-checkout table.shop_table.woocommerce-checkout-review-order-table {
	margin: 0;
	border: 0;
	border-radius: 0;
	font-size: var(--fs-small);
}

.cm-checkout .woocommerce-checkout-review-order-table thead {
	position: absolute;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	inline-size: 1px;
	block-size: 1px;
	overflow: hidden;
}

html body .cm-checkout table.shop_table.woocommerce-checkout-review-order-table td,
html body .cm-checkout table.shop_table.woocommerce-checkout-review-order-table th {
	padding: 12px 0;
	border: 0;
	border-block-end: 1px dashed var(--color-line);
	background: transparent;
	line-height: 1.55;
	vertical-align: top;
}

/* Rows as two-column grids instead of a shared table grid: otherwise the wide, large «Total»
 * amount in tfoot widens the whole price column and squeezes every ticket line. */
html body .cm-checkout table.shop_table.woocommerce-checkout-review-order-table,
.cm-checkout .woocommerce-checkout-review-order-table tbody,
.cm-checkout .woocommerce-checkout-review-order-table tfoot {
	display: block;
	inline-size: 100%;
}

.cm-checkout .woocommerce-checkout-review-order-table tbody tr,
.cm-checkout .woocommerce-checkout-review-order-table tfoot tr {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: start;
}

html body .cm-checkout table.shop_table.woocommerce-checkout-review-order-table tbody td,
html body .cm-checkout table.shop_table.woocommerce-checkout-review-order-table tfoot th,
html body .cm-checkout table.shop_table.woocommerce-checkout-review-order-table tfoot td {
	display: block;
	align-self: stretch;
}

html body .cm-checkout table.shop_table.woocommerce-checkout-review-order-table td.product-name,
html body .cm-checkout table.shop_table.woocommerce-checkout-review-order-table tfoot th {
	padding-inline-end: 12px;
}

.cm-checkout .woocommerce-checkout-review-order-table td.product-name {
	font-weight: 700;
}

.cm-checkout .woocommerce-checkout-review-order-table td.product-name .cm-review-thumb {
	float: inline-start;
	margin-inline-end: 12px;
}

.cm-checkout .woocommerce-checkout-review-order-table td.product-name .cm-review-name {
	display: block;
	overflow: hidden;
}

.cm-checkout .woocommerce-checkout-review-order-table td.product-total,
.cm-checkout .woocommerce-checkout-review-order-table tfoot td {
	text-align: end;
	white-space: nowrap;
	font-weight: 700;
}

.cm-review-thumb {
	flex-shrink: 0;
	inline-size: 48px;
	block-size: 48px;
	border-radius: 10px;
	object-fit: cover;
}

.cm-review-name {
	min-inline-size: 0;
}

.cm-checkout .woocommerce-checkout-review-order-table .product-quantity {
	color: var(--color-muted);
	font-weight: 500;
}

body .woocommerce table.shop_table dl.variation,
body .woocommerce-page table.shop_table dl.variation {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 0 6px;
	margin: 4px 0 0;
	color: var(--color-muted);
	font-size: var(--fs-xs);
	font-weight: 400;
	line-height: 1.6;
}

body .woocommerce table.shop_table dl.variation dt,
body .woocommerce table.shop_table dl.variation dd {
	float: none;
	margin: 0;
	padding: 0;
}

body .woocommerce table.shop_table dl.variation dt {
	font-weight: 500;
}

body .woocommerce table.shop_table dl.variation dd p {
	margin: 0;
}

.cm-checkout .woocommerce-checkout-review-order-table tfoot th {
	color: var(--color-muted);
	font-weight: 500;
	text-align: start;
}

html body .cm-checkout .woocommerce-checkout-review-order-table tfoot .order-total th,
html body .cm-checkout .woocommerce-checkout-review-order-table tfoot .order-total td {
	padding-block-start: 16px;
	border-block-end: 0;
	color: var(--color-text);
	font-size: 1.0625rem;
	font-weight: 800;
}

.cm-checkout .woocommerce-checkout-review-order-table tfoot .order-total td strong,
.cm-checkout .woocommerce-checkout-review-order-table tfoot .order-total .amount {
	font-size: 1.25rem;
}

/* Woo blockUI overlay while refreshing. */
body .woocommerce .blockUI.blockOverlay {
	border-radius: var(--radius-lg);
	background-color: rgb(247 243 236 / .7) !important;
}

/* Coupon + login toggles above the form. */
body .woocommerce-form-coupon-toggle .woocommerce-info,
body .woocommerce-form-login-toggle .woocommerce-info {
	--cm-notice: var(--color-gold);
}

body form.checkout_coupon,
body .woocommerce form.woocommerce-form-login.login {
	margin: 0 0 var(--space-5);
	padding: var(--space-5);
	border: 1px solid var(--color-line);
	border-radius: var(--radius-lg);
	background-color: var(--color-white);
}

body form.checkout_coupon {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	gap: var(--space-3);
}

body form.checkout_coupon > p:not(.form-row) {
	flex-basis: 100%;
	margin: 0;
}

html body form.checkout_coupon .form-row {
	float: none;
	inline-size: auto;
	margin: 0;
}

html body form.checkout_coupon .form-row-first {
	flex: 1 1 220px;
}

/* Checkout responsive. */
@media (max-width: 1023px) {
	.cm-checkout__grid {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas: "aside" "main";
	}

	.cm-checkout__aside-inner {
		position: static;
	}

	.cm-checkout-event {
		display: grid;
		grid-template-columns: 112px minmax(0, 1fr);
		align-items: stretch;
	}

	/* Poster fills the full card height at the inline start. */
	.cm-checkout-event__media {
		position: relative;
		aspect-ratio: auto;
		min-block-size: 112px;
	}

	.cm-checkout-event__media .cm-checkout-event__img {
		position: absolute;
		inset: 0;
		block-size: 100%; /* beats Woo's `.woocommerce img { height: auto }` */
	}

	.cm-checkout-event__body {
		padding: var(--space-4) var(--space-5);
	}

	.cm-checkout-event__title {
		font-size: 1.0625rem;
		margin-block-end: var(--space-2);
	}

	.cm-checkout-event__meta {
		gap: 2px;
		font-size: var(--fs-xs);
	}

	.cm-checkout-event__meta .cm-icon {
		inline-size: 16px;
		block-size: 16px;
	}
}

@media (max-width: 767px) {
	.cm-checkout__head {
		gap: var(--space-4);
	}

	.cm-checkout__title {
		font-size: var(--fs-h3);
	}

	.cm-steps__item {
		font-size: var(--fs-xs);
	}

	.cm-checkout .woocommerce-billing-fields__field-wrapper,
	.cm-checkout .woocommerce-shipping-fields__field-wrapper,
	.cm-checkout .woocommerce-additional-fields__field-wrapper {
		grid-template-columns: minmax(0, 1fr);
	}

	html body .cm-checkout .woocommerce-billing-fields__field-wrapper > .form-row-first,
	html body .cm-checkout .woocommerce-billing-fields__field-wrapper > .form-row-last {
		grid-column: 1 / -1;
	}

	/* Sticky total + CTA. */
	body.cm-checkout-focus {
		padding-block-end: calc(92px + env(safe-area-inset-bottom, 0px));
	}

	.cm-checkout .cm-place-order {
		position: fixed;
		inset-inline: 0;
		inset-block-end: 0;
		z-index: 800;
		flex-wrap: nowrap;
		gap: var(--space-3);
		padding: 12px var(--gutter) calc(12px + env(safe-area-inset-bottom, 0px));
		border-block-start: 1px solid var(--color-line);
		background-color: var(--color-white);
		box-shadow: 0 -12px 28px -18px rgb(11 13 16 / .35);
	}

	html body.woocommerce-checkout #payment #place_order {
		flex: 1 1 auto;
		min-block-size: 52px;
		padding: 0 16px;
		font-size: 1rem;
	}

	.cm-place-order__total strong {
		font-size: 1.0625rem;
	}

	.cm-place-order__secure {
		display: none;
	}
}

/* ---------------------------------------------------------------- Cart */
@media (min-width: 1024px) {
	.woocommerce-cart :is(.page-content, .elementor-shortcode, .elementor-widget-container) > .woocommerce:has(.woocommerce-cart-form) {
		display: grid;
		grid-template-columns: minmax(0, 1fr) 380px;
		align-items: start;
		gap: 32px;
	}

	.woocommerce-cart :is(.page-content, .elementor-shortcode, .elementor-widget-container) > .woocommerce:has(.woocommerce-cart-form) > .woocommerce-notices-wrapper {
		grid-column: 1 / -1;
	}

	.woocommerce-cart :is(.page-content, .elementor-shortcode, .elementor-widget-container) > .woocommerce:has(.woocommerce-cart-form) > .cart-collaterals {
		position: sticky;
		inset-block-start: calc(var(--wp-admin--admin-bar--height, 0px) + var(--header-h) + 24px);
	}
}

body .woocommerce-cart-form {
	padding: clamp(12px, 2vw, 24px);
	border: 1px solid var(--color-line);
	border-radius: var(--radius-lg);
	background-color: var(--color-white);
}

html body .woocommerce table.shop_table.cart {
	margin: 0;
	border: 0;
	border-radius: 0;
}

html body .woocommerce table.shop_table.cart th {
	padding: 10px 8px;
	border-block-end: 1px solid var(--color-line);
	color: var(--color-muted);
	font-size: var(--fs-xs);
	font-weight: 500;
}

html body .woocommerce table.shop_table.cart td {
	padding: 16px 8px;
	border-block-start: 0;
	border-block-end: 1px solid var(--color-line);
}

body .woocommerce table.shop_table.cart td.product-name a {
	font-weight: 700;
}

body .woocommerce table.cart img,
body .woocommerce-cart table.cart img {
	inline-size: 72px;
	border-radius: 10px;
}

body .woocommerce a.remove {
	display: inline-grid;
	place-items: center;
	inline-size: 32px;
	block-size: 32px;
	border-radius: 50%;
	color: var(--color-muted) !important;
	font-size: 1.25rem;
	font-weight: 400;
	line-height: 1;
}

body .woocommerce a.remove:hover {
	background-color: var(--color-danger-soft);
	color: var(--color-danger) !important;
}

body .woocommerce .quantity .qty {
	inline-size: 4.5em;
	min-block-size: 44px;
	border: 1px solid var(--color-line);
	border-radius: 10px;
	text-align: center;
}

html body .woocommerce table.cart td.actions {
	padding-block: 16px 4px;
	border-block-end: 0;
}

html body .woocommerce table.cart td.actions .coupon {
	display: flex;
	gap: 8px;
}

html body .woocommerce table.cart td.actions .coupon .input-text {
	inline-size: 180px;
	min-block-size: 44px;
	margin: 0;
	border: 1px solid var(--color-line);
	border-radius: 10px;
}

html body.woocommerce-cart .cart-collaterals .cart_totals {
	float: none;
	inline-size: 100%;
	padding: clamp(18px, 3vw, 28px);
	border: 1px solid var(--color-line);
	border-radius: var(--radius-lg);
	background-color: var(--color-white);
}

body .cart-collaterals .cart_totals > h2 {
	margin-block-end: var(--space-4);
	font-size: 1.1875rem;
}

html body .woocommerce .cart_totals table.shop_table {
	border: 0;
	margin: 0;
}

html body .woocommerce .cart_totals table.shop_table th,
html body .woocommerce .cart_totals table.shop_table td {
	padding: 12px 0;
	border-block-start: 0;
	border-block-end: 1px dashed var(--color-line);
}

html body .woocommerce .cart_totals table.shop_table td {
	text-align: end;
}

html body .woocommerce .cart_totals .order-total th,
html body .woocommerce .cart_totals .order-total td {
	border-block-end: 0;
	font-size: 1.0625rem;
	font-weight: 800;
}

html body .woocommerce .wc-proceed-to-checkout {
	padding: var(--space-5) 0 0;
}

html body .woocommerce .wc-proceed-to-checkout a.checkout-button {
	display: flex;
	inline-size: 100%;
	min-block-size: 56px;
	margin: 0;
	border-radius: var(--radius);
	font-size: 1.0625rem;
	font-weight: 800;
}

body .cart-empty.woocommerce-info {
	justify-content: center;
	padding: var(--space-8) var(--space-6);
	font-size: var(--fs-body);
}

body .return-to-shop {
	text-align: center;
}

@media (max-width: 767px) {
	html body .woocommerce table.shop_table_responsive tr td,
	html body .woocommerce-page table.shop_table_responsive tr td {
		text-align: end;
	}

	html body .woocommerce table.shop_table_responsive tr td::before {
		float: inline-start;
		color: var(--color-muted);
		font-weight: 500;
	}

	html body .woocommerce table.cart td.actions .coupon {
		flex-direction: column;
	}

	html body .woocommerce table.cart td.actions .coupon .input-text {
		inline-size: 100%;
	}
}

/* ---------------------------------------------------------------- Order received */
body.cm-order-received :is(.page-content, .elementor-shortcode, .elementor-widget-container) > .woocommerce {
	max-inline-size: 760px;
	margin-inline: auto;
}

.cm-order {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: var(--space-5);
}

.cm-order__state {
	display: grid;
	place-items: center;
	inline-size: 76px;
	block-size: 76px;
	margin: var(--space-4) auto 0;
	border-radius: 50%;
	background-color: var(--color-success);
	color: var(--color-white);
	box-shadow: 0 0 0 10px var(--color-success-soft);
}

.cm-order__state .cm-icon {
	inline-size: 38px;
	block-size: 38px;
	stroke-width: 2.4;
}

.cm-order__state--pending {
	background-color: var(--color-gold);
	box-shadow: 0 0 0 10px var(--color-gold-soft);
}

.cm-order__state--failed {
	background-color: var(--color-danger);
	box-shadow: 0 0 0 10px var(--color-danger-soft);
}

body .cm-order .woocommerce-thankyou-order-received,
body .cm-order > .woocommerce-notice--success {
	display: block;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
	color: var(--color-text);
	font-size: var(--fs-h3);
	font-weight: 800;
	line-height: var(--lh-h3);
	text-align: center;
}

body .cm-order .woocommerce-thankyou-order-received::before {
	content: none;
}

html body .woocommerce .cm-order ul.order_details,
html body .cm-order ul.woocommerce-order-overview {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(160px, 100%), 1fr));
	gap: 1px;
	margin: 0;
	padding: 0;
	overflow: hidden;
	border: 1px solid var(--color-line);
	border-radius: var(--radius-lg);
	background-color: var(--color-line);
	list-style: none;
}

html body .woocommerce .cm-order ul.order_details::before,
html body .woocommerce .cm-order ul.order_details::after {
	content: none;
}

html body .woocommerce .cm-order ul.order_details li {
	float: none;
	margin: 0;
	padding: 16px 18px;
	border: 0;
	background-color: var(--color-white);
	color: var(--color-muted);
	font-size: var(--fs-xs);
	line-height: 1.6;
	text-transform: none;
}

html body .woocommerce .cm-order ul.order_details li strong {
	display: block;
	margin-block-start: 4px;
	color: var(--color-text);
	font-size: .9375rem;
	font-weight: 700;
	text-transform: none;
	overflow-wrap: anywhere;
}

.cm-order__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: var(--space-3);
	margin: 0;
}

body .woocommerce-order-details,
body .woocommerce-customer-details,
body .woocommerce-order-downloads {
	margin: 0;
	padding: clamp(18px, 3vw, 28px);
	border: 1px solid var(--color-line);
	border-radius: var(--radius-lg);
	background-color: var(--color-white);
}

body .woocommerce-order-details__title,
body .woocommerce-column__title,
body .woocommerce-order-downloads__title {
	margin-block-end: var(--space-4);
	font-size: 1.1875rem;
}

html body .woocommerce table.shop_table.order_details,
html body .woocommerce .woocommerce-order-details table.shop_table {
	margin: 0;
	border: 0;
}

html body .woocommerce .woocommerce-order-details table.shop_table th,
html body .woocommerce .woocommerce-order-details table.shop_table td {
	padding: 12px 0;
	border-block-start: 0;
	border-block-end: 1px dashed var(--color-line);
}

html body .woocommerce .woocommerce-order-details table.shop_table td:last-child,
html body .woocommerce .woocommerce-order-details table.shop_table tfoot td {
	text-align: end;
}

body .woocommerce-customer-details address {
	padding: 0;
	border: 0;
	font-style: normal;
	line-height: var(--lh-body);
}

html body .woocommerce .woocommerce-customer-details .col2-set .col-1,
html body .woocommerce .woocommerce-customer-details .col2-set .col-2 {
	float: none;
	inline-size: auto;
}

/* ---------------------------------------------------------------- My Account */
@media (min-width: 900px) {
	body.woocommerce-account :is(.page-content, .elementor-shortcode, .elementor-widget-container) > .woocommerce:has(> .woocommerce-MyAccount-navigation) {
		display: grid;
		grid-template-columns: 280px minmax(0, 1fr);
		align-items: start;
		gap: clamp(20px, 3vw, 36px);
	}
}

html body.woocommerce-account .woocommerce-MyAccount-navigation,
html body.woocommerce-account .woocommerce-MyAccount-content {
	float: none;
	inline-size: auto;
	max-inline-size: none;
}

body.woocommerce-account :is(.page-content, .elementor-shortcode, .elementor-widget-container) > .woocommerce::before,
body.woocommerce-account :is(.page-content, .elementor-shortcode, .elementor-widget-container) > .woocommerce::after {
	content: none;
}

.cm-account-nav {
	overflow: hidden;
	border: 1px solid var(--color-line);
	border-radius: var(--radius-lg);
	background-color: var(--color-white);
}

@media (min-width: 900px) {
	.cm-account-nav {
		position: sticky;
		inset-block-start: calc(var(--wp-admin--admin-bar--height, 0px) + var(--header-h) + 24px);
	}
}

.cm-account-nav__profile {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 4px;
	padding: var(--space-6) var(--space-5) var(--space-5);
	border-block-end: 1px solid var(--color-line);
	background:
		radial-gradient(120% 90% at 50% 0%, color-mix(in srgb, var(--color-accent) 9%, transparent), transparent 70%),
		var(--color-white);
	text-align: center;
}

.cm-account-nav__avatar {
	inline-size: 80px;
	block-size: 80px;
	margin-block-end: var(--space-2);
	border: 3px solid var(--color-white);
	border-radius: 50%;
	box-shadow: 0 0 0 1px var(--color-line);
	object-fit: cover;
}

.cm-account-nav__name {
	margin: 0;
	font-size: 1.0625rem;
	font-weight: 800;
	line-height: 1.6;
}

.cm-account-nav__email {
	margin: 0 0 var(--space-3);
	color: var(--color-muted);
	font-size: var(--fs-xs);
	overflow-wrap: anywhere;
}

.cm-account-nav ul {
	margin: 0;
	padding: var(--space-2);
	list-style: none;
}

.cm-account-nav li {
	margin: 0;
}

.cm-account-nav li a {
	position: relative;
	display: flex;
	align-items: center;
	gap: 12px;
	min-block-size: 48px;
	padding-inline: 14px;
	border-radius: 12px;
	color: var(--color-text);
	font-size: .9375rem;
	font-weight: 500;
	text-decoration: none;
}

.cm-account-nav li a .cm-icon {
	inline-size: 20px;
	block-size: 20px;
	color: var(--color-muted);
}

.cm-account-nav li a:hover {
	background-color: var(--color-paper);
}

.cm-account-nav li.is-active a {
	background-color: var(--color-accent-soft);
	color: var(--color-accent);
	font-weight: 700;
}

.cm-account-nav li.is-active a .cm-icon {
	color: var(--color-accent);
}

.cm-account-nav li.is-active a::before {
	content: "";
	position: absolute;
	inset-inline-start: 0;
	inset-block: 12px;
	inline-size: 3px;
	border-radius: 3px;
	background-color: var(--color-accent);
}

.cm-account-nav li.woocommerce-MyAccount-navigation-link--customer-logout {
	margin-block-start: var(--space-2);
	padding-block-start: var(--space-2);
	border-block-start: 1px solid var(--color-line);
}

.cm-account-nav li.woocommerce-MyAccount-navigation-link--customer-logout a {
	color: var(--color-muted);
}

@media (max-width: 899px) {
	.cm-account-nav {
		margin-block-end: var(--space-5);
	}

	.cm-account-nav__profile {
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: flex-start;
		gap: 4px 12px;
		padding: var(--space-4);
		text-align: start;
	}

	.cm-account-nav__avatar {
		inline-size: 56px;
		block-size: 56px;
		margin: 0;
	}

	.cm-account-nav__profile .cm-btn {
		margin-inline-start: auto;
	}

	.cm-account-nav__email {
		display: none;
	}

	.cm-account-nav ul {
		display: flex;
		gap: 4px;
		overflow-x: auto;
		scrollbar-width: none;
		scroll-snap-type: x proximity;
	}

	.cm-account-nav li {
		flex-shrink: 0;
		scroll-snap-align: start;
	}

	.cm-account-nav li a {
		min-block-size: 44px;
		white-space: nowrap;
	}

	.cm-account-nav li.is-active a::before {
		content: none;
	}

	.cm-account-nav li.woocommerce-MyAccount-navigation-link--customer-logout {
		margin: 0;
		padding: 0;
		border: 0;
	}
}

body .woocommerce-MyAccount-content {
	min-inline-size: 0;
	padding: clamp(18px, 3vw, 32px);
	border: 1px solid var(--color-line);
	border-radius: var(--radius-lg);
	background-color: var(--color-white);
}

body .woocommerce-MyAccount-content > h2,
body .woocommerce-MyAccount-content > h3,
body .woocommerce-MyAccount-content legend {
	margin-block-end: var(--space-4);
	font-size: 1.25rem;
	font-weight: 800;
}

body .woocommerce-MyAccount-content > p:first-of-type {
	color: var(--color-muted);
}

body .woocommerce-MyAccount-content > p a {
	color: var(--color-accent);
	font-weight: 500;
}

html body .woocommerce-MyAccount-content table.shop_table {
	margin: 0;
	border: 0;
	border-radius: 0;
}

html body .woocommerce-MyAccount-content table.shop_table th {
	color: var(--color-muted);
	font-size: var(--fs-xs);
	font-weight: 500;
}

html body .woocommerce-MyAccount-content table.shop_table th,
html body .woocommerce-MyAccount-content table.shop_table td {
	padding: 14px 8px;
	border-block-start: 0;
	border-block-end: 1px solid var(--color-line);
}

body .woocommerce-orders-table__cell-order-number a {
	color: var(--color-accent);
	font-weight: 700;
}

body .woocommerce-orders-table__cell-order-actions .button {
	min-block-size: 36px;
	padding: 0 14px;
}

body .woocommerce-orders-table__cell-order-actions .button + .button {
	margin-inline-start: 6px;
}

body mark.order-status,
body mark.order-number,
body mark.order-date {
	padding: 0 4px;
	border-radius: 4px;
	background-color: var(--color-paper);
	color: var(--color-text);
	font-weight: 700;
}

body .woocommerce-Addresses .woocommerce-Address {
	padding: var(--space-5);
	border: 1px solid var(--color-line);
	border-radius: var(--radius);
}

html body .woocommerce-account .woocommerce .woocommerce-Addresses .col-1,
html body .woocommerce-account .woocommerce .woocommerce-Addresses .col-2 {
	float: none;
	inline-size: auto;
	margin-block-end: var(--space-4);
}

body .woocommerce-EditAccountForm fieldset {
	margin: var(--space-6) 0;
	padding: var(--space-5);
	border: 1px solid var(--color-line);
	border-radius: var(--radius);
}

@media (min-width: 600px) {
	html body .woocommerce-EditAccountForm .form-row-first,
	html body .woocommerce-EditAccountForm .form-row-last {
		inline-size: 48.5%;
	}
}

/* Login / register (logged out My Account). */
html body .woocommerce-account .u-columns.col2-set {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(340px, 100%), 1fr));
	gap: var(--space-6);
}

html body .woocommerce-account .u-columns.col2-set::before,
html body .woocommerce-account .u-columns.col2-set::after {
	content: none;
}

html body .woocommerce-account .u-columns.col2-set .u-column1,
html body .woocommerce-account .u-columns.col2-set .u-column2 {
	float: none;
	inline-size: auto;
	padding: clamp(20px, 3vw, 32px);
	border: 1px solid var(--color-line);
	border-radius: var(--radius-lg);
	background-color: var(--color-white);
}

html body .woocommerce-account .u-columns h2 {
	font-size: 1.25rem;
}

html body .woocommerce form.login,
html body .woocommerce form.register,
html body .woocommerce form.lost_reset_password {
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	text-align: start;
}

html body .woocommerce form.login .woocommerce-form-login__submit,
html body .woocommerce form.register .woocommerce-form-register__submit {
	float: none;
	inline-size: 100%;
	min-block-size: 52px;
	margin-block-start: var(--space-3);
	border-color: var(--color-accent);
	background-color: var(--color-accent);
	color: var(--color-white);
	font-size: 1rem;
}

html body .woocommerce form.login .woocommerce-form-login__rememberme {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin: var(--space-2) 0 0;
	font-weight: 400;
}

html body .woocommerce .lost_password a {
	color: var(--color-accent);
	font-size: var(--fs-small);
}

/* ---------------------------------------------------------------- Account: sign in + register
   Both forms as equal cards side by side (stacked on mobile); compact privacy note. */
body .woocommerce form.woocommerce-form-register.register {
	margin: 0 0 var(--space-5);
	padding: var(--space-5);
	border: 1px solid var(--color-line);
	border-radius: var(--radius-lg);
	background-color: var(--color-white);
}

body .woocommerce #customer_login.col2-set {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(20px, 3vw, 40px);
	align-items: start;
}

body .woocommerce #customer_login.col2-set::before,
body .woocommerce #customer_login.col2-set::after {
	display: none;
}

body .woocommerce #customer_login .u-column1,
body .woocommerce #customer_login .u-column2 {
	float: none;
	inline-size: auto;
	max-inline-size: none;
	margin: 0;
}

body .woocommerce #customer_login h2 {
	margin-block-end: var(--space-4);
	font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem);
}

body .woocommerce form.register .woocommerce-privacy-policy-text,
body .woocommerce form.register .woocommerce-privacy-policy-text p {
	color: var(--color-muted);
	font-size: var(--fs-small);
	line-height: 1.6;
}

@media (max-width: 767px) {
	body .woocommerce #customer_login.col2-set {
		grid-template-columns: minmax(0, 1fr);
	}
}
/* The password strength box appears when the field loses focus (often on the very tap on Register)
   and used to push the button down mid-tap, so the tap missed. Its space is reserved up front. */
body .woocommerce form.register .woocommerce-form-row:has(#reg_password) {
	position: relative;
	padding-block-end: 40px;
}

body .woocommerce form.register .woocommerce-password-strength {
	position: absolute;
	inset-inline: 0;
	inset-block-end: 4px;
	margin: 0;
	padding: 4px 10px;
	border: 0;
	border-radius: 8px;
	font-size: var(--fs-small);
	font-weight: 600;
	line-height: 1.6;
	text-align: start;
}

body .woocommerce form.register .woocommerce-password-hint {
	display: block;
	margin-block-start: 6px;
	color: var(--color-muted);
	font-size: var(--fs-small);
}
/* ---------------------------------------------------------------- Sign in / Create account card
   One centred card: welcome title, a segmented two-tab switch with a sliding pill, one form at a
   time (theme.js initAuthTabs). Before JS (or with registration off) both forms simply stack. */
body .woocommerce .cm-auth {
	position: relative;
	max-inline-size: 500px;
	margin: clamp(8px, 3vw, 32px) auto clamp(32px, 6vw, 72px);
	padding: clamp(24px, 4vw, 40px);
	border: 1px solid var(--color-line);
	border-radius: 24px;
	background:
		radial-gradient(120% 70% at 100% 0%, color-mix(in srgb, var(--color-accent) 9%, transparent), transparent 60%),
		var(--color-white);
	box-shadow: 0 30px 70px -40px rgb(11 13 16 / .35);
}

body .woocommerce .cm-auth__intro {
	margin-block-end: 24px;
	text-align: center;
}

body .woocommerce .cm-auth__title {
	margin: 0 0 8px;
	font-size: clamp(1.5rem, 1.2rem + 1.2vw, 1.9rem);
	line-height: 1.2;
}

body .woocommerce .cm-auth__lead {
	margin: 0 auto;
	max-inline-size: 36ch;
	color: var(--color-muted);
	font-size: var(--fs-small);
	line-height: 1.6;
}

/* Segmented switch. */
body .woocommerce .cm-auth__tabs {
	position: relative;
	display: none;
	grid-template-columns: 1fr 1fr;
	margin-block-end: 28px;
	padding: 5px;
	border-radius: 999px;
	background: color-mix(in srgb, var(--color-ink) 6%, var(--color-white));
	box-shadow: inset 0 0 0 1px var(--color-line);
}

body .woocommerce .cm-auth.is-ready .cm-auth__tabs {
	display: grid;
}

body .woocommerce .cm-auth__tab {
	position: relative;
	z-index: 1;
	min-block-size: 46px;
	padding: 0 12px;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: var(--color-muted);
	font: inherit;
	font-size: .95rem;
	font-weight: 700;
	cursor: pointer;
	transition: color .25s ease;
}

body .woocommerce .cm-auth__tab:hover {
	color: var(--color-text);
}

body .woocommerce .cm-auth__tab[aria-selected="true"] {
	color: var(--color-white);
}

body .woocommerce .cm-auth__tab:focus-visible {
	outline: 2px solid var(--color-accent);
	outline-offset: 2px;
}

body .woocommerce .cm-auth__ink {
	position: absolute;
	inset-block: 5px;
	inset-inline-start: 5px;
	inline-size: calc(50% - 5px);
	border-radius: 999px;
	background: var(--color-accent);
	box-shadow: 0 8px 20px -8px color-mix(in srgb, var(--color-accent) 70%, transparent);
	transition: transform .35s cubic-bezier(.32, .72, 0, 1);
}

body .woocommerce .cm-auth[data-active="register"] .cm-auth__ink {
	transform: translateX(100%);
}

[dir="rtl"] body .woocommerce .cm-auth[data-active="register"] .cm-auth__ink {
	transform: translateX(-100%);
}

/* Panels: the tab names the form, so the panel heading is only for the stacked fallback. */
body .woocommerce .cm-auth.is-ready .cm-auth__panel-title {
	position: absolute;
	inline-size: 1px;
	block-size: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

body .woocommerce .cm-auth__panel + .cm-auth__panel {
	margin-block-start: 32px;
}

body .woocommerce .cm-auth.is-ready .cm-auth__panel + .cm-auth__panel {
	margin-block-start: 0;
}

body .woocommerce .cm-auth.is-ready .cm-auth__panel:not([hidden]) {
	animation: cm-auth-in .35s ease both;
}

@keyframes cm-auth-in {
	from { opacity: 0; transform: translateY(6px); }
	to { opacity: 1; transform: none; }
}

/* The forms sit inside the card, so they lose their own card look. */
body .woocommerce .cm-auth form.woocommerce-form-login.login,
body .woocommerce .cm-auth form.woocommerce-form-register.register {
	margin: 0;
	padding: 0;
	border: 0;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

body .woocommerce .cm-auth .cm-auth__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 16px;
	margin-block: 4px 8px;
}

body .woocommerce .cm-auth .cm-auth__row .woocommerce-form-login__rememberme {
	margin: 0;
}

body .woocommerce .cm-auth .cm-auth__link,
body .woocommerce .cm-auth .cm-auth__switch a {
	color: var(--color-accent);
	font-size: var(--fs-small);
	font-weight: 600;
	text-decoration: none;
}

body .woocommerce .cm-auth .cm-auth__link:hover,
body .woocommerce .cm-auth .cm-auth__switch a:hover {
	text-decoration: underline;
}

body .woocommerce .cm-auth .cm-auth__switch {
	margin: 20px 0 0;
	padding-block-start: 18px;
	border-block-start: 1px solid var(--color-line);
	color: var(--color-muted);
	font-size: var(--fs-small);
	text-align: center;
}

body .woocommerce .cm-auth.is-ready .cm-auth__switch {
	display: block;
}

body .woocommerce .cm-auth .woocommerce-form-login__submit,
body .woocommerce .cm-auth .woocommerce-form-register__submit {
	min-block-size: 54px;
	border-radius: 14px;
}

@media (prefers-reduced-motion: reduce) {
	body .woocommerce .cm-auth__ink,
	body .woocommerce .cm-auth.is-ready .cm-auth__panel:not([hidden]) {
		transition: none;
		animation: none;
	}
}
/* Signed-out My account: the welcome card is the page; the generic «My account» title goes. */
body.woocommerce-account:not(.logged-in) .page-header {
	position: absolute;
	inline-size: 1px;
	block-size: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}
/* ---------------------------------------------------------------- Card to card payment */
body .woocommerce .cm-c2c {
	display: grid;
	gap: 14px;
	margin-block: 12px;
}

body .woocommerce .cm-c2c--panel {
	margin-block: 24px;
	padding: clamp(18px, 3vw, 28px);
	border: 1px solid var(--color-line);
	border-radius: var(--radius-lg);
	background: var(--color-white);
}

body .woocommerce .cm-c2c__title {
	margin: 0;
	font-size: 1.25rem;
}

body .woocommerce .cm-c2c__intro,
body .woocommerce .cm-c2c__note {
	margin: 0 0 4px;
	color: var(--color-muted);
	font-size: var(--fs-small);
	line-height: 1.7;
}

/* The bank card itself: real card proportions (85.6 × 54 mm), chip, contactless mark, number in
   four groups, holder at the bottom; a soft sheen and the accent glow give it depth. */
body .woocommerce .cm-c2c__wallet {
	container-type: inline-size;
	display: grid;
	justify-items: center;
	gap: 14px;
	padding-block: 6px 4px;
}

body .woocommerce .cm-c2c__card {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	inline-size: min(100%, 380px);
	aspect-ratio: 1.586;
	padding: clamp(16px, 5%, 24px) clamp(18px, 6%, 26px);
	overflow: hidden;
	isolation: isolate;
	border-radius: 18px;
	background:
		radial-gradient(90% 120% at 100% 0%, color-mix(in srgb, var(--color-accent) 70%, transparent) 0%, transparent 55%),
		radial-gradient(70% 90% at 0% 100%, rgb(214 180 92 / .22) 0%, transparent 60%),
		linear-gradient(135deg, #1b1f27 0%, #0b0d10 70%);
	color: #fff;
	box-shadow:
		0 1px 0 rgb(255 255 255 / .18) inset,
		0 0 0 1px rgb(255 255 255 / .06) inset,
		0 24px 50px -24px rgb(11 13 16 / .75),
		0 10px 20px -12px color-mix(in srgb, var(--color-accent) 45%, transparent);
	direction: ltr;
	text-align: left;
}

/* Sheen and two faint rings, like a printed card pattern. */
body .woocommerce .cm-c2c__card::before,
body .woocommerce .cm-c2c__card::after {
	content: "";
	position: absolute;
	z-index: -1;
	pointer-events: none;
}

body .woocommerce .cm-c2c__card::before {
	inset: 0;
	background: linear-gradient(115deg, transparent 30%, rgb(255 255 255 / .09) 45%, transparent 60%);
}

body .woocommerce .cm-c2c__card::after {
	inset-block-start: -40%;
	inset-inline-end: -25%;
	inline-size: 85%;
	aspect-ratio: 1;
	border-radius: 50%;
	box-shadow: 0 0 0 1px rgb(255 255 255 / .05), 0 0 0 26px rgb(255 255 255 / .012), 0 0 0 27px rgb(255 255 255 / .035);
}

body .woocommerce .cm-c2c__card-top,
body .woocommerce .cm-c2c__card-mid,
body .woocommerce .cm-c2c__card-bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

body .woocommerce .cm-c2c__bank {
	font-size: .95rem;
	font-weight: 700;
	letter-spacing: .02em;
	text-transform: capitalize;
}

body .woocommerce .cm-c2c__brand {
	color: rgb(255 255 255 / .7);
	font-size: .8rem;
	font-weight: 800;
	letter-spacing: .06em;
}

/* EMV chip. */
body .woocommerce .cm-c2c__chip {
	position: relative;
	inline-size: 44px;
	block-size: 33px;
	border-radius: 7px;
	background:
		linear-gradient(90deg, transparent 32%, rgb(90 70 20 / .35) 32% 34%, transparent 34% 66%, rgb(90 70 20 / .35) 66% 68%, transparent 68%),
		linear-gradient(0deg, transparent 46%, rgb(90 70 20 / .35) 46% 54%, transparent 54%),
		linear-gradient(135deg, #f3dd9a, #c9a24c 55%, #e9cf85);
	box-shadow: 0 0 0 1px rgb(0 0 0 / .25) inset;
}

body .woocommerce .cm-c2c__nfc {
	inline-size: 26px;
	block-size: 26px;
	color: rgb(255 255 255 / .75);
}

body .woocommerce .cm-c2c__number {
	display: flex;
	justify-content: space-between;
	gap: 6px;
	/* Sized to the card, not the screen: the 16 digits always fit on one line. */
	font-size: clamp(.95rem, 6.2cqi, 1.55rem);
	font-weight: 700;
	letter-spacing: .08em;
	font-variant-numeric: tabular-nums;
	white-space: nowrap;
	text-shadow: 0 1px 1px rgb(0 0 0 / .5);
}

body .woocommerce .cm-c2c__holder {
	display: grid;
	gap: 2px;
	font-size: .95rem;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
}

body .woocommerce .cm-c2c__holder small {
	color: rgb(255 255 255 / .55);
	font-size: .62rem;
	font-weight: 600;
	letter-spacing: .14em;
}

body .woocommerce .cm-c2c__copy {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	inline-size: min(100%, 380px);
	min-block-size: 46px;
	padding: 0 18px;
	border: 1px solid var(--color-line);
	border-radius: 14px;
	background: var(--color-white);
	color: var(--color-text);
	font: inherit;
	font-size: .95rem;
	font-weight: 700;
	cursor: pointer;
	transition: background-color .2s ease, border-color .2s ease, color .2s ease, transform .2s ease;
}

body .woocommerce .cm-c2c__copy:hover {
	border-color: var(--color-accent);
	color: var(--color-accent);
}

body .woocommerce .cm-c2c__copy.is-copied {
	border-color: var(--color-success);
	background: var(--color-success);
	color: #fff;
}

body .woocommerce .cm-c2c__copy:active {
	transform: scale(.98);
}
body .woocommerce .cm-c2c__copy--small {
	min-block-size: 30px;
	margin-inline-start: 8px;
	padding: 0 10px;
	border-color: var(--color-line);
	background: transparent;
	color: var(--color-text);
}

body .woocommerce .cm-c2c__facts {
	display: grid;
	gap: 8px;
	margin: 0;
}

body .woocommerce .cm-c2c__facts > div {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 6px 16px;
	padding-block: 8px;
	border-block-end: 1px solid var(--color-line);
}

body .woocommerce .cm-c2c__facts dt {
	color: var(--color-muted);
	font-size: var(--fs-small);
}

body .woocommerce .cm-c2c__facts dd {
	margin: 0;
	font-weight: 700;
}

body .woocommerce .cm-c2c__fields .form-row {
	margin-block: 10px 0;
	padding: 0;
}

body .woocommerce .cm-c2c__fields .description {
	display: block;
	margin-block-start: 4px;
	color: var(--color-muted);
	font-size: var(--fs-xs);
}