/**
 * WpExperts Hub — WooCommerce pages (cart, checkout, order received, account,
 * product/shop fallbacks). Loaded only on WooCommerce pages.
 *
 * The cart/checkout/order-confirmation section at the end is carried over
 * from the previous theme: it contains targeted fixes for the WooCommerce
 * Blocks markup (hydrated layout, coupon form, payment accordion, field
 * alignment) and now runs on this theme's colour tokens.
 */

:root {
	--wpx-navy: #0F172A;
	--wpx-navy-700: #1E293B;
	--wpx-brand: #2563EB;
	--wpx-accent: #06B6D4;
	--wpx-ink: #334155;
	--wpx-border: #E2E8F0;
	--wpx-radius: 8px;
	--wpx-radius-lg: 12px;
	--wpx-radius-xl: 16px;
	--wpx-shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);
	--wpx-shadow: 0 4px 12px rgba(15, 23, 42, .07);
	--wpx-shadow-lg: 0 12px 28px rgba(15, 23, 42, .1);
	--wpx-container: 1200px;
}

/* ── Generic WooCommerce elements ──────────────────────────────────────── */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notice {
	list-style: none; margin: 0 0 18px; padding: 14px 18px; border-radius: 12px;
	border: 1px solid var(--blue-200); background: var(--blue-50); color: #1E3A8A;
	font-size: 15px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px;
}
.woocommerce-error { border-color: #FECACA; background: #FEF2F2; color: #991B1B; }
.woocommerce-message .button, .woocommerce-info .button { order: 2; }
.woocommerce .button, .woocommerce button.button, .woocommerce a.button, .woocommerce input.button, .woocommerce-page .button {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 18px;
	border: 1px solid transparent; border-radius: 10px; background: var(--blue); color: var(--white) !important;
	font: 600 14.5px/1.2 var(--sans); text-decoration: none; cursor: pointer; transition: background-color .2s;
}
.woocommerce .button:hover, .woocommerce a.button:hover, .woocommerce button.button:hover { background: var(--blue-dark); color: var(--white); }
.woocommerce .button.alt { background: var(--blue); }
.woocommerce form .form-row { margin: 0 0 16px; padding: 0; }
.woocommerce form .form-row label { display: block; font-size: 13.5px; font-weight: 600; color: var(--ink); margin-bottom: 6px; }
.woocommerce form .form-row .required { color: #DC2626; text-decoration: none; }
.woocommerce form .input-text, .woocommerce form select, .woocommerce-page form .input-text {
	width: 100%; min-height: 46px; padding: 0 14px; border-radius: 9px; border: 1px solid var(--line-strong);
	background: var(--white); font: 400 15px var(--sans); color: var(--navy);
}
.woocommerce form textarea.input-text { padding: 12px 14px; min-height: 110px; }
.woocommerce form .input-text:focus, .woocommerce form select:focus { outline: 0; border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-100); }
.woocommerce form .password-input { position: relative; display: block; }
.woocommerce form .show-password-input { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); border: 0; background: transparent; cursor: pointer; }
.woocommerce table.shop_table, .woocommerce-table {
	width: 100%; border-collapse: separate; border-spacing: 0; background: var(--white);
	border: 1px solid var(--line); border-radius: 14px; overflow: hidden; font-size: 14.5px;
}
.woocommerce table.shop_table th, .woocommerce-table th { background: var(--surface); font: 500 11.5px var(--mono); color: var(--muted); text-transform: uppercase; letter-spacing: .02em; text-align: left; padding: 12px 16px; border-bottom: 1px solid var(--line); }
.woocommerce table.shop_table td, .woocommerce-table td { padding: 14px 16px; border-bottom: 1px solid var(--surface-2); vertical-align: middle; }
.woocommerce table.shop_table tr:last-child td { border-bottom: 0; }
.woocommerce table.shop_table tfoot th, .woocommerce table.shop_table tfoot td { background: var(--white); font: 600 14.5px var(--sans); color: var(--navy); text-transform: none; }
.woocommerce-Price-amount { font-variant-numeric: tabular-nums; }
.woocommerce mark { background: var(--blue-50); color: var(--blue-dark); padding: 0 4px; border-radius: 4px; }

/* ── My Account ────────────────────────────────────────────────────────── */
.wpxh-account { max-width: 1200px; margin: 0 auto; padding: clamp(24px, 4vw, 40px) var(--gutter) clamp(64px, 8vw, 96px); }
.wpxh-account .woocommerce-MyAccount-navigation, .wpxh-account .woocommerce-MyAccount-content { float: none; width: auto; }
.wpxh-account .woocommerce { display: flex; flex-wrap: wrap; gap: 32px; align-items: flex-start; }
.wpxh-account .woocommerce > .woocommerce-notices-wrapper { flex: 1 1 100%; }
.woocommerce-MyAccount-navigation {
	flex: 0 0 240px; min-width: 0; background: var(--white); border: 1px solid var(--line); border-radius: 14px;
	padding: 8px; position: sticky; top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--header-h) + 24px);
}
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
/* woocommerce-smallscreen.css adds a 2em bottom margin (0,2,1). */
.woocommerce-account .woocommerce-MyAccount-navigation ul { margin: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation ul li { margin: 0 !important; padding: 0 !important; list-style: none; border: 0 !important; }
.woocommerce-MyAccount-navigation a { text-decoration: none !important; display: flex; align-items: center; min-height: 44px; padding: 0 12px; border-radius: 9px; font-size: 14.5px; font-weight: 500; color: var(--ink); white-space: nowrap; }
.woocommerce-MyAccount-navigation a:hover { background: var(--surface); color: var(--navy); }
.woocommerce-MyAccount-navigation .is-active a { background: var(--blue-50); color: var(--blue-dark); }
.woocommerce-MyAccount-navigation-link--customer-logout a { color: var(--muted); }
.woocommerce-MyAccount-content { flex: 4 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 20px; font-size: 15px; color: var(--ink); }
.woocommerce-MyAccount-content > * { margin: 0; }
.woocommerce-MyAccount-content h2, .woocommerce-MyAccount-content h3, .woocommerce-column__title, .woocommerce-order-details__title, .woocommerce-order-downloads__title { font-size: 22px; letter-spacing: -.03em; margin: 0 0 12px; }
.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions .button { min-height: 36px; padding: 0 12px; font-size: 13.5px; background: var(--white); color: var(--navy) !important; border-color: var(--line-strong); }
.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions .button:hover { border-color: var(--blue); color: var(--blue-dark) !important; }
.woocommerce-MyAccount-content form.edit-account, .woocommerce-MyAccount-content form.woocommerce-EditAccountForm, .woocommerce-address-fields, .woocommerce-MyAccount-content .woocommerce-Addresses .woocommerce-Address {
	background: var(--white); border: 1px solid var(--line); border-radius: 14px; padding: clamp(20px, 3vw, 28px);
}
.woocommerce-MyAccount-content fieldset { border: 1px solid var(--line); border-radius: 12px; padding: 16px; margin: 8px 0 16px; }
.woocommerce-MyAccount-content legend { font-weight: 650; padding: 0 6px; }
.woocommerce-Addresses { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 16px; }
.woocommerce-Addresses::before, .woocommerce-Addresses::after { display: none; }
.woocommerce-Addresses .col-1, .woocommerce-Addresses .col-2 { width: auto; float: none; }
.woocommerce-Address-title { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 8px; }
.woocommerce-Address-title h2 { font-size: 18px; margin: 0; }
.woocommerce-MyAccount-content address { font-style: normal; line-height: 1.7; }
.wpxh-dashcards { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 14px; }
.wpxh-dashcard { text-align: left; background: var(--white); border: 1px solid var(--line); border-radius: 14px; padding: 20px; display: flex; flex-direction: column; gap: 8px; color: var(--navy); transition: border-color .2s; }
.wpxh-dashcard:hover { border-color: var(--blue); color: var(--navy); }
.wpxh-dashcard.is-tint { background: var(--blue-50); border-color: var(--blue-200); }
.wpxh-dashcard.is-tint .wpxh-mono-label { color: var(--blue-dark); }
.wpxh-dashcard strong { font-size: 30px; font-weight: 700; letter-spacing: -.04em; line-height: 1.1; }
.wpxh-dashcard strong.is-text { font-size: 17px; letter-spacing: -.01em; }
.wpxh-dashcard__link { font-size: 13.5px; color: var(--blue); font-weight: 600; }
.wpxh-recent { background: var(--white); border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
.wpxh-recent__head { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; border-bottom: 1px solid var(--surface-2); }
.wpxh-recent__head h2 { font-size: 17px !important; font-weight: 650; margin: 0 !important; letter-spacing: -.02em !important; }
.wpxh-recent__head a { font-size: 14px; font-weight: 600; }
.wpxh-recent__row { display: grid; grid-template-columns: 90px minmax(0, 1fr) auto; gap: 14px; align-items: center; padding: 14px 20px; border-bottom: 1px solid var(--surface-2); color: var(--navy); font-size: 14.5px; }
.wpxh-recent__row:last-child { border-bottom: 0; }
.wpxh-recent__row:hover { background: var(--surface); color: var(--navy); }
.wpxh-recent__row .wpxh-mono { font-size: 13px; color: var(--ink); }
.wpxh-recent__items { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wpxh-recent__total { font-weight: 600; }
.woocommerce-MyAccount-content > p:first-of-type { color: var(--muted); }

/* Guest login / register */
.wpxh-account .u-columns, .wpxh-account .woocommerce > form.login, .wpxh-account .woocommerce > form.lost_reset_password, .wpxh-account .woocommerce > form.woocommerce-ResetPassword {
	flex: 1 1 100%; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); gap: 24px;
}
.wpxh-account .u-columns::before, .wpxh-account .u-columns::after { display: none; }
.wpxh-account .u-column1, .wpxh-account .u-column2 { width: auto !important; float: none !important; }
.wpxh-account .u-columns > div > h2 { display: none; }
.woocommerce form.login, .woocommerce form.register, .woocommerce form.lost_reset_password {
	margin: 0 !important; background: var(--white); border: 1px solid var(--line) !important; border-radius: 18px !important;
	padding: clamp(22px, 3vw, 30px) !important; display: flex; flex-direction: column; gap: 4px; box-shadow: var(--shadow-card);
}
.woocommerce form.lost_reset_password { max-width: 520px; }
.woocommerce form.lost_reset_password > p:first-of-type { order: 1; color: var(--muted); }
.wpxh-authband { order: -1; display: flex; align-items: center; gap: 14px; margin: -6px 0 16px; padding-bottom: 16px; border-bottom: 1px solid var(--surface-2); }
.wpxh-authband__icon { width: 44px; height: 44px; border-radius: 12px; background: var(--grad-brand); color: var(--white); display: grid; place-items: center; flex: none; }
.wpxh-authband__title { font-size: 19px; font-weight: 700; letter-spacing: -.02em; color: var(--navy); }
.wpxh-authband__sub { font-size: 14px; color: var(--muted); }
.woocommerce form.login .button, .woocommerce form.register .button, .woocommerce form.lost_reset_password .button { width: 100%; min-height: 48px; margin-top: 6px; }
.woocommerce-form-login__rememberme { display: inline-flex !important; align-items: center; gap: 8px; font-weight: 500 !important; margin-bottom: 8px !important; }
.woocommerce-LostPassword { margin: 8px 0 0; font-size: 14px; }
.woocommerce-privacy-policy-text { font-size: 13px; color: var(--muted); }

/* Guest sign in / register: split layout (brand panel + card with tabs) */
.wpxh-main--account:has(.wpxh-auth), .wpxh-main--account:has(form.lost_reset_password) {
	background: radial-gradient(60% 40% at 50% 0%, var(--blue-50), transparent 70%), var(--surface);
}
.wpxh-account .woocommerce > .wpxh-auth { flex: 1 1 100%; }
.wpxh-auth {
	display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); width: 100%; max-width: 1080px; margin: clamp(0px, 1.5vw, 16px) auto 0;
	background: var(--white); border: 1px solid var(--line); border-radius: 24px; overflow: hidden;
	box-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 40px 80px -48px rgba(15, 23, 42, .45);
}
.wpxh-auth__brand { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 18px; padding: clamp(28px, 4vw, 52px); background: var(--navy); color: #CBD5E1; }
.wpxh-auth__brand::before { content: ""; position: absolute; inset: 0; background: radial-gradient(70% 55% at 100% 0%, rgba(37, 99, 235, .5), transparent 70%), radial-gradient(60% 45% at 0% 100%, rgba(6, 182, 212, .22), transparent 70%); }
.wpxh-auth__brand::after { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px); background-size: 32px 32px; -webkit-mask-image: linear-gradient(180deg, #000, transparent 80%); mask-image: linear-gradient(180deg, #000, transparent 80%); }
.wpxh-auth__brand > * { position: relative; z-index: 1; margin: 0 !important; }
.wpxh-auth__brand .wpxh-mono-label { color: var(--blue-300); font-size: 12px; }
.wpxh-auth__title { color: var(--white); font-size: clamp(26px, 3vw, 36px); line-height: 1.12; font-weight: 700; letter-spacing: -.04em; }
.wpxh-auth__lead { font-size: 16px; line-height: 1.6; color: #CBD5E1; }
.wpxh-auth__perks { list-style: none; padding: 0; display: grid; gap: 12px; }
.wpxh-auth__perks li { display: flex; align-items: center; gap: 12px; font-size: 15px; line-height: 1.45; color: #E2E8F0; }
.wpxh-auth__perkicon { width: 38px; height: 38px; flex: none; display: grid; place-items: center; border-radius: 11px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); color: var(--cyan-light); }
.wpxh-auth__help { margin-top: auto !important; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, .1); display: flex; align-items: center; gap: 10px; font-size: 14px; color: var(--subtle); }
.wpxh-auth__help svg { flex: none; color: var(--blue-light); }
.wpxh-auth__help a { color: var(--white); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.wpxh-auth__card { min-width: 0; display: flex; flex-direction: column; gap: 22px; padding: clamp(24px, 4vw, 48px); }
.wpxh-auth__card > .wc-block-store-notices, .wpxh-auth__card .wc-block-components-notice-banner { margin: 0 !important; }
.wpxh-auth__card > .woocommerce-notices-wrapper:empty { display: none; }
.wpxh-auth__tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; border-radius: 13px; background: var(--surface-2); border: 1px solid var(--line); }
.wpxh-auth:not(.is-tabs) .wpxh-auth__tabs, .wpxh-auth:not(.is-tabs) .wpxh-auth__switch { display: none; }
.wpxh-auth__tabs button { appearance: none; border: 0; border-radius: 10px; padding: 11px 12px; background: transparent; font: 600 14.5px/1.2 var(--sans); color: var(--ink-2); cursor: pointer; transition: background-color .2s, color .2s, box-shadow .2s; }
.wpxh-auth__tabs button:hover { color: var(--navy); }
.wpxh-auth__tabs button[aria-selected="true"] { background: var(--white); color: var(--navy); box-shadow: 0 1px 2px rgba(15, 23, 42, .08), 0 6px 14px -8px rgba(15, 23, 42, .25); }
.wpxh-auth__tabs button:focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; }
.wpxh-account .wpxh-auth .u-columns { display: block; }
.wpxh-account .wpxh-auth:not(.is-tabs) .u-columns { display: grid; gap: 36px; }
.wpxh-auth [hidden] { display: none !important; }
.wpxh-auth.is-tabs .u-columns > div:not([hidden]) { animation: wpxh-auth-in .28s ease both; }
@keyframes wpxh-auth-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
.woocommerce .wpxh-auth form.login, .woocommerce .wpxh-auth form.register { padding: 0 !important; border: 0 !important; border-radius: 0 !important; box-shadow: none; background: none; gap: 0; }
.wpxh-auth .wpxh-authband { margin: 0 0 22px; padding: 0; border: 0; }
.wpxh-auth .wpxh-authband__title { font-size: 22px; letter-spacing: -.03em; }

/* Fields (sign in, register, lost/reset password) */
.wpxh-auth form .form-row, .wpxh-account form.lost_reset_password .form-row { margin: 0 0 16px; }
.wpxh-auth form .form-row label, .wpxh-account form.lost_reset_password .form-row label { font-size: 13.5px; color: var(--navy); }
.wpxh-auth form .form-row .required, .wpxh-account form.lost_reset_password .required { color: var(--blue); }
.wpxh-auth form .input-text, .wpxh-account form.lost_reset_password .input-text {
	min-height: 50px; border-radius: 12px; border-color: var(--line-strong); background: var(--surface); padding: 0 16px;
	transition: border-color .2s, background-color .2s, box-shadow .2s;
}
.wpxh-auth form .input-text:hover, .wpxh-account form.lost_reset_password .input-text:hover { border-color: var(--subtle); }
.wpxh-auth form .input-text:focus, .wpxh-account form.lost_reset_password .input-text:focus { background: var(--white); border-color: var(--blue); box-shadow: 0 0 0 4px var(--blue-100); }
.wpxh-auth form .password-input .input-text { padding-right: 48px; }
.wpxh-auth form .show-password-input { right: 8px; width: 34px; height: 34px; border-radius: 8px; color: var(--muted); }
.wpxh-auth form .show-password-input:hover { background: var(--surface-2); color: var(--navy); }
/* wphub-stop-spam CAPTCHA: image and answer on one row */
.woocommerce form .form-row.wphub-stop-spam { display: flex; flex-wrap: wrap; align-items: stretch; gap: 8px 10px; }
.woocommerce form .form-row.wphub-stop-spam::before, .woocommerce form .form-row.wphub-stop-spam::after { display: none; }
.woocommerce form .form-row.wphub-stop-spam > label { flex: 0 0 100%; margin: 0 0 2px; }
.woocommerce form .form-row.wphub-stop-spam > img { flex: none; display: block !important; box-sizing: border-box; width: auto; height: 50px !important; max-width: 45%; margin: 0 !important; object-fit: contain; padding: 3px 8px; border-radius: 12px; border: 1px solid var(--line); background: var(--white); }
.woocommerce form .form-row.wphub-stop-spam > .input-text { flex: 1; min-width: 0; }
.woocommerce form .form-row.wpx-captcha-row, .woocommerce form .form-row:has(> img + .input-text) { display: flex; align-items: stretch; gap: 10px; }
.woocommerce form .wpx-captcha-row::before, .woocommerce form .wpx-captcha-row::after, .woocommerce form .form-row:has(> img + .input-text)::before, .woocommerce form .form-row:has(> img + .input-text)::after { display: none; }
.woocommerce form .wpx-captcha-row > img, .woocommerce form .form-row:has(> img + .input-text) > img { flex: none; height: 50px; width: auto; max-width: 45%; object-fit: contain; padding: 3px 8px; border-radius: 12px; border: 1px solid var(--line); background: var(--white); }
.woocommerce form .wpx-captcha-row > .input-text, .woocommerce form .form-row:has(> img + .input-text) > .input-text { flex: 1; min-width: 0; }
.woocommerce form .form-row:has(+ .wpx-captcha-row), .woocommerce form .form-row:has(+ .form-row > img + .input-text) { margin-bottom: 0; }
.woocommerce form .form-row.form-row:has(+ .form-row.wphub-stop-spam) { margin-bottom: 16px; }
/* Remember me + Forgot password on one row */
.woocommerce .wpxh-auth form.login { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 12px; align-items: center; }
.wpxh-auth form.login > * { grid-column: 1 / -1; }
.wpxh-auth form.login > p.form-row:not(.woocommerce-form-row) { display: contents; }
/* WooCommerce's clearfix pseudo-elements would become grid cells once the row is display: contents. */
.wpxh-auth form.login > p.form-row:not(.woocommerce-form-row)::before, .wpxh-auth form.login > p.form-row:not(.woocommerce-form-row)::after { display: none; }
.wpxh-auth form.login .woocommerce-form-login__rememberme { grid-column: 1; margin: 0 !important; font-size: 14px !important; color: var(--ink); }
.wpxh-auth form.login .woocommerce-form-login__rememberme input { width: 17px; height: 17px; accent-color: var(--blue); }
.wpxh-auth form.login .woocommerce-LostPassword { grid-column: 2; order: 1; margin: 0; font-size: 14px; font-weight: 600; }
.wpxh-auth form.login .woocommerce-form-login__submit { order: 2; grid-column: 1 / -1; }
.wpxh-auth form.login .wpxh-auth__switch { order: 3; }
/* Buttons */
.wpxh-auth form .button, .wpxh-account form.lost_reset_password .button {
	width: 100%; min-height: 52px; margin-top: 20px; border-radius: 12px; font-size: 15.5px;
	box-shadow: 0 12px 24px -14px rgba(37, 99, 235, .7); transition: background-color .2s, transform .2s, box-shadow .2s;
}
.wpxh-auth form .button::after, .wpxh-account form.lost_reset_password .button::after { content: "→"; transition: transform .2s; }
.wpxh-auth form .button:hover, .wpxh-account form.lost_reset_password .button:hover { transform: translateY(-1px); box-shadow: 0 16px 28px -14px rgba(37, 99, 235, .8); }
.wpxh-auth form .button:hover::after, .wpxh-account form.lost_reset_password .button:hover::after { transform: translateX(3px); }
.wpxh-auth form.register .form-row:has(> .button) { margin: 0; }
/* Password strength (register / reset) */
.wpxh-auth .woocommerce-password-strength, .wpxh-account form.lost_reset_password .woocommerce-password-strength { margin-top: 8px; padding: 7px 12px; border: 0; border-radius: 9px; font-size: 13px; font-weight: 600; text-align: left; }
.woocommerce-password-strength.short { background: #FEE2E2; color: #B91C1C; }
.woocommerce-password-strength.bad { background: #FFEDD5; color: #C2410C; }
.woocommerce-password-strength.good { background: var(--blue-50); color: var(--blue-dark); }
.woocommerce-password-strength.strong { background: #DCFCE7; color: #15803D; }
.wpxh-auth .woocommerce-password-hint, .wpxh-account form.lost_reset_password .woocommerce-password-hint { display: block; margin-top: 6px; font-size: 12.5px; line-height: 1.5; color: var(--muted); }
.wpxh-auth .woocommerce-privacy-policy-text:empty { display: none; }
.wpxh-auth__legal { margin: 14px 0 0 !important; font-size: 13px; line-height: 1.55; color: var(--muted); text-align: center; }
.wpxh-auth__legal a { color: var(--ink); text-decoration: underline; text-underline-offset: 2px; }
.wpxh-auth__switch { margin: 22px 0 0 !important; padding-top: 20px; border-top: 1px solid var(--surface-2); font-size: 14px; color: var(--muted); text-align: center; }
.wpxh-auth__switch a { font-weight: 650; }

/* Lost / reset password: one centred card */
.wpxh-account .woocommerce:has(> form.lost_reset_password) { justify-content: center; }
.wpxh-account .woocommerce > form.lost_reset_password { display: flex; flex-direction: column; flex: 0 1 500px; max-width: 500px; margin: clamp(0px, 1.5vw, 16px) auto 0 !important; padding: clamp(24px, 4vw, 40px) !important; border-radius: 22px !important; }
.wpxh-account form.lost_reset_password > p:first-of-type { order: 0; margin: 0 0 18px; font-size: 15px; line-height: 1.6; }
.wpxh-account form.lost_reset_password .form-row-first, .wpxh-account form.lost_reset_password .form-row-last { width: 100%; float: none; }
.wpxh-account .woocommerce > form.lost_reset_password { gap: 0; }
.wpxh-account form.lost_reset_password > .clear { display: none; }
/* "Reset link sent" confirmation: same centred card */
.wpxh-account .woocommerce:has(> .wpxh-auth__back):not(:has(form)) {
	flex-direction: column; align-items: stretch; gap: 14px; max-width: 500px; margin: clamp(0px, 1.5vw, 16px) auto 0; padding: clamp(24px, 4vw, 40px);
	background: var(--white); border: 1px solid var(--line); border-radius: 22px; box-shadow: var(--shadow-card);
}
.wpxh-account .woocommerce:has(> .wpxh-auth__back):not(:has(form)) > * { flex: none; margin: 0 !important; }
.wpxh-account .woocommerce:has(> .wpxh-auth__back):not(:has(form)) > p:not(.wpxh-auth__back) { font-size: 15px; line-height: 1.65; color: var(--ink); }
.wpxh-account .woocommerce:has(> .wpxh-auth__back):not(:has(form)) .woocommerce-message { width: 100%; }
.wpxh-main--account:has(.woocommerce > .wpxh-auth__back) { background: radial-gradient(60% 40% at 50% 0%, var(--blue-50), transparent 70%), var(--surface); }
.wpxh-account form.lost_reset_password .wpxh-authband { margin-bottom: 18px; }
.wpxh-auth__back { order: 5; margin: 18px 0 0 !important; text-align: center; font-size: 14px; }
.wpxh-auth__back a { display: inline-flex; align-items: center; gap: 4px; font-weight: 600; }
.wpxh-account .woocommerce > .wpxh-auth__back { flex: 1 1 100%; }

@media (max-width: 959px) {
	.wpxh-auth { grid-template-columns: 1fr; max-width: 620px; }
	.wpxh-auth__brand { gap: 14px; padding: 28px clamp(20px, 5vw, 36px); }
	.wpxh-auth__help { margin-top: 4px !important; }
}
@media (max-width: 600px) {
	.wpxh-auth { border-radius: 18px; }
	.wpxh-auth__brand { padding: 24px 20px; }
	.wpxh-auth__lead, .wpxh-auth__perks, .wpxh-auth__help { display: none; }
	.wpxh-auth__title { font-size: 23px; }
	.wpxh-auth__card { padding: 22px 18px 26px; gap: 18px; }
	.wpxh-auth .wpxh-authband { margin-bottom: 18px; }
	.woocommerce form .wpx-captcha-row > img, .woocommerce form .form-row:has(> img + .input-text) > img { height: 50px; max-width: 50%; }
	.woocommerce form .form-row.wphub-stop-spam > img { max-width: 50%; }
}
@media (prefers-reduced-motion: reduce) {
	.wpxh-auth.is-tabs .u-columns > div:not([hidden]) { animation: none; }
	.wpxh-auth form .button, .wpxh-auth form .button::after { transition: none; }
}

/* Downloads / licence keys */
.woocommerce-table--order-downloads td { font-size: 14px; }
.woocommerce-MyAccount-downloads-file.button { min-height: 36px !important; font-size: 13.5px !important; }
.wpexpert-licence-key { display: flex; align-items: center; gap: 8px; min-width: 0; }

/* Order details (view-order) */
.woocommerce-order-details, .woocommerce-customer-details, .woocommerce-order-downloads { margin: 0 0 24px; }
.woocommerce-customer-details address { background: var(--white); border: 1px solid var(--line); border-radius: 14px; padding: 18px; font-style: normal; line-height: 1.7; }
.woocommerce-columns--addresses { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 16px; }
.woocommerce-columns--addresses .woocommerce-column { width: auto; float: none; }
mark.order-number, mark.order-date, mark.order-status { background: none; color: var(--navy); font-weight: 650; padding: 0; }

@media (max-width: 859px) {
	.woocommerce-MyAccount-navigation { flex: 1 1 100%; position: static; padding: 6px; overflow-x: auto; }
	.woocommerce-MyAccount-navigation ul { flex-direction: row; gap: 4px; }
	.woocommerce-MyAccount-navigation a { min-height: 40px; }
	.woocommerce table.shop_table_responsive thead { display: none; }
	.woocommerce table.shop_table_responsive tr { display: block; border-bottom: 1px solid var(--line); padding: 8px 0; }
	.woocommerce table.shop_table_responsive td { display: flex; justify-content: space-between; gap: 12px; border: 0; padding: 8px 16px; text-align: right; }
	.woocommerce table.shop_table_responsive td::before { content: attr(data-title); font: 500 11.5px var(--mono); color: var(--muted); text-transform: uppercase; text-align: left; }
	.wpxh-recent__row { grid-template-columns: 70px minmax(0, 1fr); }
	.wpxh-recent__total { grid-column: 2; }
}

/* ── Ported cart / checkout / order-confirmation rules ─────────────────── */
/* ---------- WooCommerce Cart (FSE blocks) ---------- */
/* Page container -- cart is a wide, functional page, so widen past the doc-page
   cap to the site container (80rem) and reset the top padding for a tighter,
   app-like feel. */
.wpxh-main--cart {
	max-width: var(--wpx-container);
	padding-top: 2.5rem;
}
/* Page header */
.wpxh-main--cart h1.wp-block-heading {
	margin: 0;
	font-size: 2.5rem;
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.15;
	color: var(--wpx-navy);
}
.wp-block-woocommerce-cart {
	padding: 0 0 2rem;
}
/* Two-column layout: items / totals side-by-side on desktop.
   NOTE: WooCommerce's JS hydrates the cart and swaps the SSR wrapper
   `.wp-block-woocommerce-filled-cart-block` for a `.wc-block-components-sidebar-layout`
   flex row whose children default to `width:65%` (main) / `width:35%` (sidebar) —
   which makes both columns feel cramped. We override it back to a grid with a
   comfortable, fixed sidebar so the two columns use the layout below regardless of
   which markup (SSR skeleton vs hydrated) is on screen. */
.wp-block-woocommerce-filled-cart-block,
.wp-block-woocommerce-cart.is-loading .wp-block-woocommerce-filled-cart-block,
.wc-block-components-sidebar-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.75rem;
	align-items: start;
	margin: 0 auto;
}
@media (min-width: 1024px) {
	.wp-block-woocommerce-filled-cart-block,
	.wp-block-woocommerce-cart.is-loading .wp-block-woocommerce-filled-cart-block,
	.wc-block-components-sidebar-layout {
		grid-template-columns: minmax(0, 1fr) 380px;
	}
}
/* Neutralise the WooCommerce percentage widths on both render paths and let the
   grid columns decide the width. */
.wp-block-woocommerce-cart-items-block,
.wp-block-woocommerce-cart.is-loading .wp-block-woocommerce-cart-items-block,
.wc-block-components-sidebar-layout .wc-block-components-main {
	box-sizing: border-box;
	width: auto;
	min-width: 0;
	margin: 0;
	padding-right: 0;
}
.wp-block-woocommerce-cart-totals-block,
.wp-block-woocommerce-cart.is-loading .wp-block-woocommerce-cart-totals-block,
.wc-block-components-sidebar-layout .wc-block-components-sidebar {
	box-sizing: border-box;
	width: auto;
	min-width: 0;
	margin: 0;
	padding-left: 0;
}
/* --- Cart items table --- */
table.wc-block-cart-items {
	width: 100%;
	border-collapse: separate;
	border-spacing: 0 0.9rem;
}
/* Table header (Product / Price / Qty / Total) */
.wc-block-cart-items__header {
	font-size: 0.7rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: #8a93ad;
	font-weight: 700;
}
.wc-block-cart-items__header th {
	padding: 0 1rem 0.6rem;
	text-align: left;
	border-bottom: 2px solid var(--wpx-border);
}
.wc-block-cart-items__header .wc-block-cart-items__header-total { text-align: right;
}
.wc-block-cart-items__header .wc-block-cart-items__header-image { width: 84px;
}
/* Line-item rows -- card style */
.wc-block-cart-items__row {
	background: #ffffff;
	border: 1px solid var(--wpx-border);
	border-radius: var(--wpx-radius-lg);
	padding: 1rem;
	box-shadow: var(--wpx-shadow-sm);
	transition: box-shadow 0.18s ease, border-color 0.18s ease;
}
.wc-block-cart-items__row:hover {
	border-color: #c9d4ef;
	box-shadow: var(--wpx-shadow);
}
.wc-block-cart-items__row td { padding: 0 1rem; vertical-align: middle;
}
/* Item image */
.wc-block-cart-item__image { width: 84px;
}
.wc-block-cart-item__image img {
	border-radius: var(--wpx-radius);
	width: 76px;
	height: 76px;
	object-fit: contain;
	background: #f8fafc;
	border: 1px solid #eef1f7;
	padding: 0.35rem;
}
/* Product details */
.wc-block-cart-item__wrap { display: flex; flex-direction: column; gap: 0.4rem; min-width: 0;
}
.wc-block-cart-item__product { display: flex; flex-direction: column; gap: 0.45rem;
}
.wc-block-cart-item__product-name,
.wc-block-cart-item__product .wc-block-components-product-name {
	font-size: 1rem;
	font-weight: 700;
	color: var(--wpx-navy);
	line-height: 1.35;
}
.wc-block-cart-item__product .wc-block-components-product-name a {
	color: var(--wpx-navy);
	text-decoration: none;
}
.wc-block-cart-item__product .wc-block-components-product-name a:hover {
	color: var(--wpx-brand);
	text-decoration: none;
}
.wc-block-cart-item__prices {
	font-size: 0.85rem;
	font-weight: 600;
	color: #6474a0;
}
.wc-block-cart-item__prices .price,
.wc-block-cart-item__prices .woocommerce-Price-amount { color: var(--wpx-brand);
}
/* Quantity stepper -- pill control */
.wc-block-cart-item__quantity .wc-block-cart-input {
	display: inline-flex;
	align-items: center;
	gap: 0.1rem;
	border: 1px solid #d6dae3;
	border-radius: 999px;
	padding: 0.2rem 0.4rem;
	background: #f8fafc;
}
.wc-block-cart-item__quantity .wc-block-cart-input input {
	width: 42px;
	text-align: center;
	border: none;
	outline: none;
	background: transparent;
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--wpx-navy);
}
.wc-block-cart-item__quantity .wc-block-cart-input button {
	border: none;
	background: transparent;
	cursor: pointer;
	font-size: 1.1rem;
	line-height: 1;
	color: var(--wpx-navy);
	width: 24px;
	height: 24px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background-color 0.15s ease, color 0.15s ease;
}
.wc-block-cart-item__quantity .wc-block-cart-input button:hover {
	background: var(--wpx-navy);
	color: #fff;
}
/* Remove / save-for-later */
.wc-block-cart-item__remove-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 50%;
	color: #9aa4bd;
	font-size: 1.15rem;
	cursor: pointer;
	transition: all 0.15s ease;
	border: none;
	background: transparent;
}
.wc-block-cart-item__remove-link:hover {
	color: #dc2626;
	background: #fef2f2;
	transform: scale(1.08);
}
/* Subtotal column */
.wc-block-cart-item__total { text-align: right;
}
.wc-block-cart-item__total-price-and-sale-badge-wrapper,
.wc-block-cart-item__total .price,
.wc-block-cart-item__total .woocommerce-Price-amount {
	font-weight: 800;
	font-size: 1.05rem;
	color: var(--wpx-navy);
}
/* --- Order summary (right column) --- */
.wp-block-woocommerce-cart-totals-block { min-width: 0;
}
@media (min-width: 1024px) {
	.wp-block-woocommerce-cart-totals-block { position: sticky; top: 6rem;
	}
}
.wp-block-woocommerce-cart-order-summary-block {
	background: #ffffff;
	border: 1px solid var(--wpx-border);
	border-radius: var(--wpx-radius-xl);
	padding: 1.5rem;
	box-shadow: var(--wpx-shadow);
}
/* Summary heading — the classes sit ON the <h2> itself (not an ancestor), so we
   target the element directly with a small icon accent + divider. */
.wp-block-woocommerce-cart-order-summary-heading-block.wc-block-cart__totals-title,
.wp-block-woocommerce-cart-order-summary-block .wc-block-components-title,
.wp-block-woocommerce-cart-order-summary-block h2 {
	font-size: 1.3rem !important;
	font-weight: 800 !important;
	letter-spacing: -0.01em;
	color: var(--wpx-navy) !important;
	margin: 0 0 1rem !important;
	padding: 0 0 0.85rem !important;
	position: relative !important;
	display: flex !important;
	align-items: center !important;
	gap: 0.55rem !important;
}
.wp-block-woocommerce-cart-order-summary-heading-block.wc-block-cart__totals-title::before {
	content: "";
	width: 0.5rem;
	height: 1.15rem;
	border-radius: 3px;
	background: linear-gradient(180deg, var(--wpx-brand) 0%, var(--wpx-accent) 100%);
	box-shadow: 0 0 0 1px rgba(37, 99, 235, 0.18);
	flex: 0 0 auto;
}
.wp-block-woocommerce-cart-order-summary-heading-block.wc-block-cart__totals-title::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 1px;
	background: linear-gradient(90deg, var(--wpx-brand) 0%, rgba(37, 99, 235, 0.12) 70%, transparent 100%);
}
/* ---------- WooCommerce block notice banners (store-notices) ----------
   Rendered as .wc-block-components-notice-banner with is-success / is-error /
   is-info. Restyled to match the theme palette with an icon chip + card. */
.wc-block-components-notice-banner {
	display: flex !important;
	align-items: flex-start !important;
	gap: 0.7rem !important;
	margin: 0 0 1.1rem !important;
	padding: 0.9rem 1.05rem !important;
	border-radius: var(--wpx-radius-lg) !important;
	border: 1px solid !important;
	box-shadow: var(--wpx-shadow-sm);
	font-size: 0.9rem !important;
	line-height: 1.55 !important;
}
.wc-block-components-notice-banner > svg {
	width: 1.4rem !important;
	height: 1.4rem !important;
	flex: 0 0 auto !important;
	margin-top: 0.05rem;
}
.wc-block-components-notice-banner__content {
	flex: 1 1 auto;
	min-width: 0;
}
.wc-block-components-notice-banner.is-success {
	background: #f0fdf4 !important;
	border-color: #bbe6c7 !important;
	color: #166534 !important;
}
.wc-block-components-notice-banner.is-success > svg { fill: #16a34a !important;
}
.wc-block-components-notice-banner.is-success a {
	color: #15803d !important;
	font-weight: 700;
}
.wc-block-components-notice-banner.is-error {
	background: #fef2f2 !important;
	border-color: #f8c6c6 !important;
	color: #b91c1c !important;
}
.wc-block-components-notice-banner.is-error > svg { fill: #dc2626 !important;
}
.wc-block-components-notice-banner.is-error a {
	color: #b91c1c !important;
	font-weight: 700;
}
.wc-block-components-notice-banner.is-info {
	background: #eff6ff !important;
	border-color: #c4d8fb !important;
	color: #1e40af !important;
}
.wc-block-components-notice-banner.is-info > svg { fill: var(--wpx-brand) !important;
}
.wc-block-components-notice-banner.is-info a {
	color: var(--wpx-navy) !important;
	font-weight: 700;
}
.wc-block-components-notice-banner.is-dismissible .wc-block-components-notice-banner__dismiss {
	align-self: center;
	margin-left: auto;
	color: inherit !important;
	background: transparent;
	border: none;
	cursor: pointer;
}
.wc-block-components-notice-banner.is-dismissible .wc-block-components-notice-banner__dismiss svg {
	fill: currentColor;
}
/* Coupon form — card treatment.
   WooCommerce hydrates the cart and injects its own (emotion) stylesheet AFTER this
   theme's CSS, and it's enqueued with higher specificity or later load order. So every
   coupon selector below is scoped under the order-summary block to raise specificity,
   and vital props use !important to beat the injected defaults. */
.wp-block-woocommerce-cart-order-summary-coupon-form-block.wc-block-components-totals-wrapper {
	margin: 1rem 0 1.25rem;
	border-top: 2px solid var(--wpx-border);
	padding-top: 1.1rem;
}
/* --- Collapsed "Add coupons" toggle --- */
.wp-block-woocommerce-cart-order-summary-coupon-form-block .wc-block-components-totals-coupon.wc-block-components-panel {
	margin: 0 !important;
}
.wp-block-woocommerce-cart-order-summary-coupon-form-block .wc-block-components-panel__button {
	display: flex !important;
	align-items: center !important;
	gap: 0.5rem !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0.7rem 0.9rem !important;
	background: #f5f8fc !important;
	border: 1px solid #dbe4f2 !important;
	border-radius: var(--wpx-radius-lg) !important;
	color: var(--wpx-navy) !important;
	font-family: inherit !important;
	font-size: 0.85rem !important;
	font-weight: 700 !important;
	cursor: pointer !important;
	box-shadow: var(--wpx-shadow-sm);
	transition: border-color 0.18s ease, background-color 0.18s ease;
}
.wp-block-woocommerce-cart-order-summary-coupon-form-block .wc-block-components-panel__button:hover {
	border-color: var(--wpx-brand) !important;
	background: #eef4ff !important;
}
.wp-block-woocommerce-cart-order-summary-coupon-form-block .wc-block-components-panel__button-icon {
	width: 15px !important;
	height: 15px !important;
	margin-left: auto !important;
	transition: transform 0.2s ease;
}
.wp-block-woocommerce-cart-order-summary-coupon-form-block .wc-block-components-panel__button[aria-expanded="true"] .wc-block-components-panel__button-icon {
	transform: rotate(180deg);
}
/* Revealed coupon body */
.wp-block-woocommerce-cart-order-summary-coupon-form-block .wc-block-components-panel__content {
	padding: 0.5rem 0 0 !important;
}
.wp-block-woocommerce-cart-order-summary-coupon-form-block .wc-block-components-totals-coupon__content {
	background: #f5f8fc !important;
	border: 1px solid #e6edf7 !important;
	border-radius: var(--wpx-radius-lg) !important;
	padding: 0.75rem !important;
}
.wp-block-woocommerce-cart-order-summary-coupon-form-block .wc-block-components-totals-coupon__form {
	display: flex !important;
	align-items: stretch !important;
	gap: 0.5rem !important;
	flex-wrap: nowrap !important;
}
/* Coupon input — WooCommerce wraps a raw <input> in a .wc-block-components-text-input
   div with a floating <label>. Style the wrapper as the bordered box and the inner
   <input> as a clean field; hide the floating label (a real placeholder is added by JS). */
.wp-block-woocommerce-cart-order-summary-coupon-form-block .wc-block-components-text-input.wc-block-components-totals-coupon__input {
	flex: 1 1 auto !important;
	position: relative !important;
	display: flex !important;
	align-items: center !important;
	min-width: 0 !important;
	min-height: 46px !important;
	margin: 0 !important;
	padding: 0 !important;
	background: #ffffff !important;
	border: 1px solid #c6cde1 !important;
	border-radius: var(--wpx-radius) !important;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.wp-block-woocommerce-cart-order-summary-coupon-form-block .wc-block-components-text-input.wc-block-components-totals-coupon__input:focus-within,
.wp-block-woocommerce-cart-order-summary-coupon-form-block .wc-block-components-text-input.wc-block-components-totals-coupon__input.is-active {
	border-color: var(--wpx-brand) !important;
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.14) !important;
}
.wp-block-woocommerce-cart-order-summary-coupon-form-block .wc-block-components-text-input.wc-block-components-totals-coupon__input input {
	width: 100% !important;
	height: 100% !important;
	min-height: 44px !important;
	flex: 1 1 auto !important;
	margin: 0 !important;
	padding: 0 0.9rem !important;
	background: transparent !important;
	border: none !important;
	outline: none !important;
	box-shadow: none !important;
	font-family: inherit !important;
	font-size: 0.9rem !important;
	font-weight: 500 !important;
	color: var(--wpx-ink) !important;
}
.wp-block-woocommerce-cart-order-summary-coupon-form-block .wc-block-components-text-input.wc-block-components-totals-coupon__input label {
	display: none !important;
}
.wp-block-woocommerce-cart-order-summary-coupon-form-block .wc-block-components-text-input.wc-block-components-totals-coupon__input ::placeholder {
	color: #9aa4bd !important;
}
.wp-block-woocommerce-cart-order-summary-coupon-form-block .wc-block-components-text-input.wc-block-components-totals-coupon__input input:focus {
	outline: none !important;
}
.wp-block-woocommerce-cart-order-summary-coupon-form-block .wc-block-components-totals-coupon__form .wc-block-components-totals-coupon__input:focus {
	outline: none !important;
}
.wp-block-woocommerce-cart-order-summary-coupon-form-block .wc-block-components-totals-coupon__form .wc-block-components-totals-coupon__button {
	flex: 0 0 auto !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	margin: 0 !important;
	border: none !important;
	border-radius: var(--wpx-radius) !important;
	min-height: 46px !important;
	padding: 0.6rem 1.25rem !important;
	background:
		var(--wpx-brand) !important;
	color: #fff !important;
	font-family: inherit !important;
	font-size: 0.875rem !important;
	font-weight: 700 !important;
	letter-spacing: 0.02em;
	line-height: 1.25 !important;
	white-space: nowrap !important;
	height: auto !important;
	cursor: pointer !important;
	box-shadow: var(--wpx-shadow-sm);
	text-decoration: none;
	transition: box-shadow 0.15s ease, transform 0.15s ease, opacity 0.15s ease;
}
.wp-block-woocommerce-cart-order-summary-coupon-form-block .wc-block-components-totals-coupon__button:hover:not(:disabled) {
	background:
		linear-gradient(135deg, var(--wpx-navy-700) 0%, var(--wpx-brand) 100%) !important;
	box-shadow: var(--wpx-shadow);
	transform: translateY(-1px);
}
.wp-block-woocommerce-cart-order-summary-coupon-form-block .wc-block-components-totals-coupon__button--loading,
.wp-block-woocommerce-cart-order-summary-coupon-form-block .wc-block-components-totals-coupon__button:disabled {
	opacity: 0.55 !important;
	cursor: not-allowed !important;
	transform: none !important;
	box-shadow: none !important;
}
/* Applied coupon chips */
.wp-block-woocommerce-cart-order-summary-block .wc-block-components-totals-discount__coupon-list {
	list-style: none !important;
	margin: 0.35rem 0 0 !important;
	padding: 0 !important;
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 0.35rem !important;
}
.wp-block-woocommerce-cart-order-summary-block .wc-block-components-chip {
	display: inline-flex !important;
	align-items: center !important;
	gap: 0.3rem !important;
	max-width: 100% !important;
	padding: 0.22rem 0.35rem 0.22rem 0.55rem !important;
	border: 1px solid rgba(37, 99, 235, 0.18) !important;
	border-radius: 999px !important;
	background: rgba(37, 99, 235, 0.1) !important;
	color: var(--wpx-navy) !important;
	font-size: 0.75rem !important;
	font-weight: 700 !important;
}
.wp-block-woocommerce-cart-order-summary-block .wc-block-components-chip__text {
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	white-space: nowrap !important;
}
.wp-block-woocommerce-cart-order-summary-block .wc-block-components-chip__remove {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 1.15rem !important;
	height: 1.15rem !important;
	border: none !important;
	border-radius: 50% !important;
	background: rgba(37, 99, 235, 0.12) !important;
	color: var(--wpx-navy) !important;
	cursor: pointer !important;
	transition: background-color 0.15s ease, color 0.15s ease;
}
.wp-block-woocommerce-cart-order-summary-block .wc-block-components-chip__remove:hover {
	background: #dc2626 !important;
	color: #fff !important;
}
/* Coupon discount row */
.wp-block-woocommerce-cart-order-summary-block .wc-block-components-totals-discount .wc-block-components-totals-item__value {
	color: #16a34a !important;
}
/* Totals rows */
.wc-block-components-totals-wrapper { margin: 0.25rem 0;
}
.wc-block-components-totals-item {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
	padding: 0.55rem 0;
	border-bottom: 1px dashed #e6e9f0;
	font-size: 0.875rem;
}
.wc-block-components-totals-item:last-child { border-bottom: none;
}
.wc-block-components-totals-item__label,
.wc-block-components-totals-item__description { color: #6474a0; font-weight: 500;
}
.wc-block-components-totals-item__value { font-weight: 700; color: var(--wpx-navy);
}
/* Shipping fieldset */
.wc-block-components-totals-shipping { margin: 0.5rem 0;
}
.wc-block-components-totals-shipping__fieldset {
	border: 1px solid var(--wpx-border);
	border-radius: var(--wpx-radius);
	padding: 0.75rem;
	margin-top: 0.5rem;
	background: #f8fafc;
}
.wc-block-components-totals-shipping__via { font-size: 0.8rem; color: #6b7280;
}
/* Grand total */
.wp-block-woocommerce-cart-order-summary-totals-block { margin-top: 0.5rem;
}
.wc-block-components-totals-footer-item {
	border-top: 2px solid var(--wpx-border);
	border-bottom: none;
	padding-top: 1rem;
	margin-top: 0.75rem;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label {
	font-size: 1.05rem;
	font-weight: 800;
	color: var(--wpx-navy);
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
	font-size: 1.25rem;
	font-weight: 800;
	color: var(--wpx-brand);
}
/* Proceed to checkout */
.wc-block-cart__submit-container { margin-top: 1.25rem;
}
.wc-block-cart__submit { display: block; width: 100%;
}
.wc-block-cart__submit-button {
	width: 100%;
	padding: 0.95rem 1.5rem;
	background: var(--wpx-brand);
	color: #fff;
	border: none;
	border-radius: var(--wpx-radius-lg);
	font-size: 1rem;
	font-weight: 800;
	letter-spacing: 0.01em;
	cursor: pointer;
	text-align: center;
	box-shadow: var(--wpx-shadow);
	transition: box-shadow 0.18s ease, transform 0.18s ease, opacity 0.15s ease;
}
.wc-block-cart__submit-button:hover {
	background: linear-gradient(135deg, var(--wpx-navy-700) 0%, var(--wpx-brand) 100%);
	box-shadow: var(--wpx-shadow-lg);
	transform: translateY(-1px);
}
.wc-block-cart__submit-button--loading { opacity: 0.7; cursor: default; transform: none;
}
/* Express payment */
.wp-block-woocommerce-cart-express-payment-block { margin-top: 1rem;
}
/* --- Empty cart --- */
.wp-block-woocommerce-empty-cart-block { text-align: left; }
/* Older page content (before the wpxhub redesign) */
.wp-block-woocommerce-empty-cart-block .wp-block-woocommerce-product-new,
.wp-block-woocommerce-empty-cart-block > hr.is-style-dots { display: none; }
.wpxh-emptycart {
	position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: center; gap: 14px;
	padding: clamp(36px, 6vw, 64px) clamp(20px, 5vw, 56px) clamp(32px, 5vw, 48px); text-align: center;
	background: var(--white); border: 1px solid var(--line); border-radius: 24px;
	box-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 32px 64px -44px rgba(15, 23, 42, .35);
}
.wpxh-emptycart::before {
	content: ""; position: absolute; inset: 0 0 auto; height: 220px; pointer-events: none;
	background: radial-gradient(50% 100% at 50% 0%, var(--blue-50), transparent 75%);
}
.wpxh-emptycart > * { position: relative; margin: 0 !important; }
/* Cart icon tile (theme icon, drawn with a mask) */
.wpxh-emptycart__title::before {
	content: ""; display: block; width: 76px; height: 76px; margin: 0 auto 22px; border-radius: 22px;
	background: var(--white) padding-box, var(--grad-brand) border-box; border: 2px solid transparent;
	box-shadow: 0 18px 36px -18px rgba(37, 99, 235, .55);
}
.wpxh-emptycart__title::after {
	content: ""; position: absolute; top: 0; left: 50%; width: 34px; height: 34px; margin: 21px 0 0 -17px;
	background: var(--grad-brand);
	-webkit-mask: url(../icons/shopping-cart.svg) center / contain no-repeat; mask: url(../icons/shopping-cart.svg) center / contain no-repeat;
}
.wpxh-main--cart .wpxh-emptycart h2.wpxh-emptycart__title { position: relative; font-size: clamp(26px, 3vw, 34px); font-weight: 750; letter-spacing: -.035em; line-height: 1.15; color: var(--navy); }
.wpxh-emptycart__lead { max-width: 540px; font-size: 16px; line-height: 1.65; color: var(--muted); }
.wpxh-emptycart__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-top: 8px !important; }
.wpxh-emptycart__actions .wp-block-button__link {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 22px !important;
	border-radius: 12px !important; font: 600 15px/1 var(--sans); text-decoration: none; transition: background-color .2s, border-color .2s, color .2s, transform .2s, box-shadow .2s;
}
.wpxh-emptycart__primary .wp-block-button__link { background: var(--blue) !important; color: var(--white) !important; border: 1px solid var(--blue); box-shadow: 0 12px 24px -14px rgba(37, 99, 235, .8); }
.wpxh-emptycart__primary .wp-block-button__link::after { content: "→"; transition: transform .2s; }
.wpxh-emptycart__primary .wp-block-button__link:hover { background: var(--blue-dark) !important; transform: translateY(-1px); }
.wpxh-emptycart__primary .wp-block-button__link:hover::after { transform: translateX(3px); }
.wpxh-emptycart__secondary .wp-block-button__link { background: var(--white) !important; color: var(--navy) !important; border: 1px solid var(--line-strong) !important; }
.wpxh-emptycart__secondary .wp-block-button__link:hover { border-color: var(--blue) !important; color: var(--blue) !important; }
.wpxh-emptycart__perks { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 26px; list-style: none; padding: 20px 0 0 !important; margin-top: 12px !important; border-top: 1px solid var(--surface-2); }
.wpxh-emptycart__perks li { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--ink); }
.wpxh-emptycart__perks li::before {
	content: ""; width: 18px; height: 18px; flex: none; background: #16A34A;
	-webkit-mask: url(../icons/circle-check.svg) center / contain no-repeat; mask: url(../icons/circle-check.svg) center / contain no-repeat;
}
.wpxh-main--cart .wp-block-woocommerce-empty-cart-block h2.wpxh-emptycart__subhead { margin: clamp(40px, 5vw, 56px) 0 18px; font-size: 22px; font-weight: 700; letter-spacing: -.03em; color: var(--navy); text-align: left; }
/* The page intro talks about reviewing items: not shown while the cart is empty. */
.wpxh-main--cart:has(.wp-block-woocommerce-cart:not(.is-loading) .wpxh-emptycart) .wpxh-wchead__sub { display: none; }
/* Accepted payment icons */
.wp-block-woocommerce-cart-accepted-payment-methods-block {
	margin-top: 1.25rem;
	padding-top: 1rem;
	border-top: 1px dashed #e6e9f0;
	text-align: center;
}
.wp-block-woocommerce-cart-accepted-payment-methods-block img {
	height: 24px;
	opacity: 0.6;
	margin: 0 0.1rem;
}
/* Loading skeleton fallback */
.wp-block-woocommerce-cart.is-loading { min-height: 220px;
}
/* Mobile */
@media (max-width: 1023px) {
	.wc-block-cart-items__row { padding: 0.75rem;
	}
	.wc-block-cart-item__wrap { gap: 0.25rem;
	}
	.wp-block-woocommerce-cart-order-summary-block { padding: 1.25rem;
	}
}
@media (max-width: 767px) {
	.wc-block-cart-items__row td { padding: 0 0.6rem;
	}
	.wc-block-cart-item__image img { width: 60px; height: 60px;
	}
	.wc-block-components-totals-coupon__form { flex-direction: column;
	}
	.wc-block-components-totals-coupon__form .wc-block-components-totals-coupon__button { width: 100%;
	}
	.wpxh-emptycart__actions .wp-block-button, .wpxh-emptycart__actions .wp-block-button__link { width: 100%; }
	.wpxh-emptycart__perks { flex-direction: column; align-items: center; }
}
/* ==========================================================================
   WooCommerce Checkout (FSE block)
   ==========================================================================
   The cart CSS above already turns every `.wc-block-components-sidebar-layout`
   into a grid, so the checkout's hydrated two-column wrapper inherits that.
   On checkout the WooCommerce markup renders the ORDER-SUMMARY SIDEBAR FIRST in
   the DOM (before the `.wc-block-components-main` fields column), unlike the
   cart. We place the main fields on the left and the summary sidebar on the
   right with explicit grid areas so the visual order is stable on both the SSR
   skeleton and the hydrated tree. */
/* Page container -- checkout is a wide, functional page, so widen past the
   doc-page cap to the site container (80rem), same as the cart. */
.wpxh-main--checkout {
	max-width: var(--wpx-container);
	padding-top: 2.5rem;
}
/* --- Page header (mirrors the cart header) --- */
.wpxh-main--checkout h1.wp-block-heading {
	margin: 0;
	font-size: 2.5rem;
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.15;
	color: var(--wpx-navy);
}
/* --- Two-column layout (main fields / order-summary sidebar) --- */
.wp-block-woocommerce-checkout .wc-block-components-sidebar-layout,
.wc-block-components-sidebar-layout.wc-block-checkout {
	grid-template-columns: minmax(0, 1fr) 400px;
	grid-template-areas: "main sidebar";
	align-items: start;
	gap: 2rem;
}
.wp-block-woocommerce-checkout .wc-block-components-main,
.wc-block-checkout .wc-block-components-main,
/* Below WooCommerce's "large" layout it renders the phone summary (collapsed card + full summary above
   "Place order"), so stack in one column there too instead of squeezing the form next to a 400px sidebar. */
.wc-block-components-sidebar-layout.wc-block-checkout:not(.is-large) {
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas: "sidebar" "main";
}
.wc-block-components-sidebar-layout.wc-block-checkout .wc-block-components-main {
	grid-area: main;
	min-width: 0;
}
.wp-block-woocommerce-checkout .wc-block-components-sidebar,
.wc-block-checkout .wc-block-components-sidebar,
.wc-block-components-sidebar-layout.wc-block-checkout .wc-block-components-sidebar {
	grid-area: sidebar;
	min-width: 0;
}
/* Neutralise WooCommerce percentage widths and keep both columns fluid inside
   the grid (inherited from the cart section, restated for the checkout tree). */
.wp-block-woocommerce-checkout .wc-block-components-main,
.wp-block-woocommerce-checkout .wc-block-components-sidebar,
.wc-block-components-sidebar-layout.wc-block-checkout .wc-block-components-main,
.wc-block-components-sidebar-layout.wc-block-checkout .wc-block-components-sidebar {
	box-sizing: border-box;
	width: auto;
	margin: 0;
}
@media (min-width: 1200px) {
	.wc-block-components-sidebar-layout.wc-block-checkout .wc-block-components-sidebar {
		position: sticky;
		top: 6rem;
		align-self: start;
	}
}
/* --- Checkout steps (Contact / Billing / Shipping / Payment) --- */
/* WooCommerce renders these as <fieldset> and its own stylesheet resets them
   with higher specificity, so scope under the block wrapper. */
.wp-block-woocommerce-checkout .wc-block-components-checkout-step,
.wc-block-checkout .wc-block-components-checkout-step {
	margin: 0 0 1.5rem;
	padding: 1.5rem;
	background: #ffffff;
	border: 1px solid var(--wpx-border);
	border-radius: var(--wpx-radius-xl);
	box-shadow: var(--wpx-shadow-sm);
}
.wp-block-woocommerce-checkout .wc-block-components-checkout-step__heading-container,
.wc-block-checkout .wc-block-components-checkout-step__heading-container {
	margin-bottom: 1.1rem;
	padding-bottom: 0.75rem;
	border-bottom: 1px solid #eef1f7;
}
.wp-block-woocommerce-checkout .wc-block-components-checkout-step__heading,
.wc-block-checkout .wc-block-components-checkout-step__heading {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	flex-wrap: wrap;
}
.wp-block-woocommerce-checkout .wc-block-components-checkout-step__title,
.wc-block-checkout .wc-block-components-checkout-step__title {
	margin: 0;
	font-size: 1.15rem;
	font-weight: 800;
	color: var(--wpx-navy);
	letter-spacing: -0.01em;
}
.wp-block-woocommerce-checkout .wc-block-components-checkout-step__heading-content,
.wc-block-checkout .wc-block-components-checkout-step__heading-content {
	font-size: 0.8rem;
	color: #6474a0;
	font-weight: 600;
}
.wc-block-checkout__login-prompt {
	display: inline-flex;
	align-items: center;
	padding: 0.35rem 0.85rem;
	border: 1px solid rgba(37, 99, 235, 0.2);
	border-radius: 999px;
	background: rgba(37, 99, 235, 0.06);
	color: var(--wpx-brand);
	font-weight: 700;
	text-decoration: none;
	transition: background-color 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}
.wc-block-checkout__login-prompt:hover {
	background: var(--wpx-brand);
	color: #fff;
	border-color: var(--wpx-brand);
	text-decoration: none;
}
.wc-block-checkout__guest-checkout-notice,
.wc-block-checkout__guest-checkout-notice p {
	font-size: 0.8rem;
	color: #6474a0;
}
/* --- Address / contact form fields --- */
.wc-block-components-address-form {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1rem;
}
.wc-block-components-address-form__address_1,
.wc-block-components-address-form__address_2,
.wc-block-components-address-form__state,
.wc-block-components-address-form__city,
.wc-block-components-address-form__postcode {
	grid-column: 1 / -1;
}
@media (min-width: 640px) {
	.wc-block-components-address-form__first_name,
	.wc-block-components-address-form__last_name {
		grid-column: span 1;
	}
}
/* Text inputs -- wrapper holds the raw <input> + a floating <label>.
   WooCommerce renders them 50px tall (`height:50px; padding:16px 12px`) and
   switches to `padding:24px 9px 8px` when filled/focused (`.is-active`,
   autofill) to make room for its shrunken floating label. That asymmetric
   padding pushed the typed text toward the bottom of the field ("aligned in
   the lower end"). The theme hides those floating labels, so that reserve is
   dead space: symmetric padding makes the content box equal the 25px
   line-height and centres the text vertically. `!important` is required --
   WooCommerce's own rules are more specific
   (`.wc-block-components-form .wc-block-components-text-input input[type=…]`). */
.wc-block-checkout__form .wc-block-components-text-input input,
.wp-block-woocommerce-checkout-fields-block .wc-block-components-text-input input {
	width: 100%;
	box-sizing: border-box;
	height: 50px;
	padding: 11.5px 14px !important;
	border: 1px solid #d6dae3;
	border-radius: var(--wpx-radius);
	background: #ffffff;
	color: var(--wpx-navy);
	font-size: 0.9rem;
	line-height: 25px;
	outline: none;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.wc-block-checkout__form .wc-block-components-text-input input::placeholder {
	color: #9aa4bd;
}
.wc-block-checkout__form .wc-block-components-text-input input:focus {
	border-color: var(--wpx-brand);
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.16);
}
.wc-block-checkout__form .wc-block-components-text-input input:disabled {
	background: #f3f4f6;
	cursor: not-allowed;
}
/* WooCommerce floats the label on the focused/with-value input; hide that
   floater and rely on the visible placeholder + aria-label. */
.wc-block-checkout__form .wc-block-components-text-input label,
.wp-block-woocommerce-checkout-fields-block .wc-block-components-text-input label {
	display: none !important;
}
/* Select (country / state via wc-blocks-components-select). */
/* Neutralise WooCommerce's floating containers so we own the field. */
.wc-block-checkout__form .wc-blocks-components-select,
.wp-block-woocommerce-checkout-fields-block .wc-blocks-components-select {
	margin: 0;
	width: 100%;
}
.wc-block-checkout__form .wc-blocks-components-select__container,
.wp-block-woocommerce-checkout-fields-block .wc-blocks-components-select__container {
	position: relative;
	width: 100%;
	box-sizing: border-box;
	background: none;
	border-radius: 0;
}
/* WooCommerce floats the label absolutely on top of the field (its
   floating-label pattern). We switch to a normal stacked label above the
   field -- consistent with the theme's text-input treatment -- so the
   label text no longer scrubs against the field's own value text. */
.wc-block-checkout__form .wc-blocks-components-select__label,
.wp-block-woocommerce-checkout-fields-block .wc-blocks-components-select__label {
	position: static;
	display: block;
	margin: 0 0 0.35rem;
	font-size: 0.8rem;
	font-weight: 600;
	color: #6474a0;
}
/* Billing/Shipping "State (optional)" label: hidden visually -- the select's
   own placeholder ("Select a state (optional)") carries the meaning -- but
   kept in the accessibility tree (sr-only), because the <select> has no
   aria-label and would otherwise lose its accessible name for screen readers.
   The state field then lines up with the City input it sits beside. */
.wc-block-checkout__form .wc-block-components-address-form__state .wc-blocks-components-select__label,
.wp-block-woocommerce-checkout-fields-block .wc-block-components-address-form__state .wc-blocks-components-select__label {
	position: absolute !important;
	top: 0 !important;
	left: 0 !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: 0 !important;
	overflow: hidden !important;
	clip: rect(0 0 0 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
	border: 0 !important;
}
/* With the label gone, the state field must keep the same vertical rhythm as
   the City input beside it: WooCommerce gives the address-form text inputs a
   12px top margin, which (via the flex line) was stretching the state wrapper
   and leaving the select floating 12px above the City input. */
.wc-block-checkout__form .wc-block-components-address-form__state,
.wp-block-woocommerce-checkout-fields-block .wc-block-components-address-form__state {
	margin-top: 12px;
}
/* The field itself -- matches the text inputs' rendered 50px height
   (border/radius/focus identical). */
.wc-block-checkout__form .wc-blocks-components-select__select,
.wp-block-woocommerce-checkout-fields-block .wc-blocks-components-select__select {
	width: 100%;
	height: 50px;
	box-sizing: border-box;
	padding: 0 2.6rem 0 0.9rem;
	border: 1px solid #d6dae3;
	border-radius: var(--wpx-radius);
	background: #ffffff url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236474a0' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 0.9rem center / 12px 12px;
	-webkit-appearance: none;
	appearance: none;
	color: var(--wpx-navy);
	font-family: inherit;
	font-size: 0.9rem;
	line-height: 1.3;
	cursor: pointer;
	outline: none;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.wc-block-checkout__form .wc-blocks-components-select__select:focus,
.wp-block-woocommerce-checkout-fields-block .wc-blocks-components-select__select:focus {
	border-color: var(--wpx-brand);
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.16);
}
.wc-block-checkout__form .wc-blocks-components-select__select:disabled,
.wp-block-woocommerce-checkout-fields-block .wc-blocks-components-select__select:disabled {
	background-color: #f3f4f6;
	cursor: not-allowed;
}
/* Hide WooCommerce's own expand icon so only our chevron shows (no double
   arrow overlapping on the right edge). */
.wc-block-checkout__form .wc-blocks-components-select__expand,
.wp-block-woocommerce-checkout-fields-block .wc-blocks-components-select__expand {
	display: none;
}
/* While a select is unset (no value chosen) it shows its placeholder option;
   theme.js toggles .wpx-select-empty so that text reads as muted placeholder
   text instead of a navy value. In the open list the disabled placeholder
   option is muted too. */
.wc-block-checkout__form .wc-blocks-components-select__select.wpx-select-empty,
.wp-block-woocommerce-checkout-fields-block .wc-blocks-components-select__select.wpx-select-empty {
	color: #9aa4bd;
}
.wc-block-checkout__form .wc-blocks-components-select__select option:disabled,
.wp-block-woocommerce-checkout-fields-block .wc-blocks-components-select__select option:disabled {
	color: #9aa4bd;
}
/* Order note textarea */
.wc-block-checkout__add-note textarea,
.wc-block-checkout__order-notes textarea,
.wc-block-checkout__form .wc-block-components-textarea {
	width: 100%;
	box-sizing: border-box;
	min-height: 84px;
	padding: 0.85rem 0.9rem;
	border: 1px solid #d6dae3;
	border-radius: var(--wpx-radius);
	background: #ffffff;
	color: var(--wpx-navy);
	font-size: 0.9rem;
	line-height: 1.5;
	font-family: inherit;
	resize: vertical;
	outline: none;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.wc-block-checkout__add-note textarea:focus,
.wc-block-checkout__form .wc-block-components-textarea:focus {
	border-color: var(--wpx-brand);
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.16);
}
/* Checkbox (order note toggle, terms) -- brand tick. */
.wc-block-components-checkbox label {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	cursor: pointer;
	position: relative;
}
.wc-block-components-checkbox .wc-block-components-checkbox__input {
	width: 20px;
	height: 20px;
	margin: 0;
	accent-color: var(--wpx-brand);
	cursor: pointer;
}
.wc-block-components-checkbox .wc-block-components-checkbox__label {
	font-size: 0.875rem;
	color: #475569;
	line-height: 1.45;
}
.wc-block-components-checkbox .wc-block-components-checkbox__label a {
	color: var(--wpx-brand);
	text-decoration: underline;
	text-underline-offset: 2px;
}
/* --- Express payment --- */
.wc-block-components-express-payment__title-container {
	margin-bottom: 0.5rem;
}
.wc-block-components-express-payment__title {
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #8a93ad;
}
.wc-block-components-express-payment__content {
	background: #f8fafc;
	border: 1px dashed #dbe1ec;
	border-radius: var(--wpx-radius-lg);
	padding: 1rem;
}
.wc-block-components-express-payment__event-buttons {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	display: grid !important;
	gap: 0.75rem !important;
}
.wc-block-components-express-payment-continue-rule {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin: 1rem 0;
	color: #8a93ad;
	font-size: 0.78rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}
.wc-block-components-express-payment-continue-rule::before,
.wc-block-components-express-payment-continue-rule::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--wpx-border);
}
/* Express Checkout (PayPal / Apple-Pay family) is a USD-only feature — INR visitors
   are offered Stripe only, so hide the express section + its "or" divider for them
   (cart + checkout). The continue-rule sits outside the express wrapper, so target it
   explicitly too. */
body.wpx-currency-inr .wc-block-components-express-payment,
body.wpx-currency-inr .wc-block-components-express-payment-continue-rule,
body.wpx-currency-inr .wc-block-components-express-payment-continue-rule--checkout,
body.wpx-currency-inr .wp-block-woocommerce-checkout-express-payment-block,
body.wpx-currency-inr .wp-block-woocommerce-cart-express-payment-block { display: none !important;
}
/* --- Payment methods --- */
.wc-block-components-radio-control {
	display: grid;
	gap: 0.6rem;
}
/* Each gateway renders as a <label> card. WooCommerce's own CSS positions the
   radio absolutely (`position:relative; padding-left:48px` on the option +
   `position:absolute; left:0; top:16px` on the input) to reserve a gutter for
   it. The original card styles switched the option to `display:flex` but
   dropped that gutter while the radio stayed absolute -- so the dot landed on
   the label text. We keep the card, restore the radio as a normal flex item,
   and nullify its absolute positioning so the dot sits beside the text. */
.wc-block-components-radio-control__option {
	position: relative;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	gap: 0.85rem;
	width: 100%;
	padding: 0.95rem 1.1rem;
	border: 1px solid var(--wpx-border);
	border-radius: var(--wpx-radius-lg);
	background: #ffffff;
	cursor: pointer;
	transition: border-color 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
}
.wc-block-components-radio-control__option:hover {
	border-color: #c9d4ef;
}
.wc-block-components-radio-control__option-checked {
	border-color: var(--wpx-brand);
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.10);
	background: #f5f8ff;
}
.wc-block-components-radio-control__option input[type="radio"],
.wc-block-components-radio-control__accordion-option input[type="radio"] {
	position: static;
	left: auto;
	top: auto;
	transform: none;
	appearance: auto;
	accent-color: var(--wpx-brand);
	flex: 0 0 auto;
	width: 18px;
	height: 18px;
	margin: 0;
	cursor: pointer;
}
/* WooCommerce renders a custom radio via `appearance:none` + a `:checked:before`
   dot (absolutely centered on the nearest positioned ancestor). We switch to
   the native branded radio, so neutralise that pseudo-element -- otherwise a
   stray black dot floats in the middle of the label text. `!important` is
   required: WooCommerce's own rule
   `.radio-control .recadio-control__input:checked:before` is highly specific. */
.wc-block-components-radio-control .wc-block-components-radio-control__option input[type="radio"]::before,
.wc-block-components-radio-control .wc-block-components-radio-control__accordion-option input[type="radio"]::before,
.wc-block-components-radio-control .wc-block-components-radio-control__option input[type="radio"]::after,
.wc-block-components-radio-control .wc-block-components-radio-control__accordion-option input[type="radio"]::after {
	display: none !important;
}
.wc-block-components-radio-control__option input[type="radio"]:focus-visible {
	outline: 2px solid var(--wpx-brand);
	outline-offset: 3px;
}
.wc-block-components-radio-control__label-group,
.wc-block-components-radio-control__option-layout {
	flex: 1;
	min-width: 0;
}
.wc-block-components-radio-control__label,
.wc-block-components-radio-control__option-layout .wc-block-components-radio-control__label {
	font-weight: 700;
	color: var(--wpx-navy);
	font-size: 0.95rem;
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}
.wc-block-components-radio-control__description {
	font-size: 0.8rem;
	color: #6b7280;
	margin-top: 0.15rem;
}
/* --- Accordion payment options (the real, hydrated markup) --- */
/* On the live checkout each gateway renders as an OUTER
   `.wc-block-components-radio-control-accordion-option` that wraps the inner
   `label.__option` (radio + title) plus an appended `.accordion-content`
   description. WooCommerce groups them as one list: it draws borders via
   pseudo `:after` dividers and paints a dark inset ring
   (`box-shadow: inset 0 0 0 1.5px currentColor`) on the checked
   `--checked-option-highlighted` option. That inset ring stacks on top of the
   card's border and looks like a doubled border, so we neutralise it and
   instead build one clean card per gateway (outer option = the card border +
   radius; inner label just hosts the radio + title row). */
.wc-block-components-radio-control-accordion-option {
	box-sizing: border-box;
	margin: 0;
	border: 1px solid var(--wpx-border);
	border-radius: var(--wpx-radius-lg);
	background: #ffffff;
	width: 100%;
	overflow: hidden;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.wc-block-components-radio-control-accordion-option:last-child {
	margin-bottom: 0;
}
/* WooCommerce's pseudo dividers/inset ring below the card; we manage our own. */
.wc-block-components-radio-control .wc-block-components-radio-control-accordion-option::after,
.wc-block-components-radio-control .wc-block-components-radio-control-accordion-option--checked-option-highlighted::after {
	display: none !important;
}
/* Neutralise WooCommerce's dark `inset 0 0 0 1.5px currentColor` ring (that
   "double border" on the checked option) and apply our brand ring instead. */
.wc-block-components-radio-control .wc-block-components-radio-control-accordion-option--checked-option-highlighted {
	border-color: var(--wpx-brand);
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.10) !important;
	border-radius: var(--wpx-radius-lg);
}
/* Let the inner label be a transparent header row (its border lives on the
   outer card). */
.wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__option {
	position: relative;
	border: 0;
	border-radius: 0;
	background: transparent;
}
.wc-block-components-radio-control-accordion-option--checked-option-highlighted
	.wc-block-components-radio-control__option {
	border: 0;
	box-shadow: none;
	background: transparent;
}
.wc-block-components-radio-control-accordion-option .wc-block-components-radio-control__label img {
	height: 22px;
	max-height: 22px;
	max-width: 100%;
	object-fit: contain;
	object-position: left;
}
/* Checkout side: the description that WooCommerce appends under the selected
   payment method (`...__content` / `.wc-block-components-radio-control-accordion-content`).
   Align it left, keep it inside the card's horizontal padding, and separate it
   from the title row with a soft divider. */
.wc-block-components-radio-control-accordion-content {
	padding: 0.4rem 1.1rem 1.05rem;
	border-top: 1px solid #eef1f7;
	font-size: 0.825rem;
	line-height: 1.55;
	color: #5b6b94;
}
.wc-block-components-radio-control-accordion-content > div {
	text-align: left;
}
.wc-block-components-radio-control-accordion-content p {
	margin: 0.3rem 0;
	text-align: left;
}
.wc-block-components-radio-control-accordion-content p:first-child {
	margin-top: 0;
}
.wc-block-components-radio-control-accordion-content p.ppcp-place-order-description {
	text-align: left !important;
	font-size: 0.78rem;
	color: #8a93ad;
}
.wc-block-components-payment-method-icons img {
	height: 22px;
	max-height: 22px;
	width: auto;
}
/* --- Terms --- */
.wc-block-checkout__terms {
	font-size: 0.85rem;
	color: #475569;
	padding: 1rem 0;
}
.wc-block-checkout__terms--with-separator {
	border-top: 1px solid var(--wpx-border);
	margin-top: 0.25rem;
}
.wc-block-checkout__terms a {
	color: var(--wpx-brand);
	text-decoration: underline;
	text-underline-offset: 2px;
}
/* --- Place order / actions --- */
.wc-block-checkout__actions {
	margin-top: 0.5rem;
}
.wc-block-checkout__actions_row--justify-flex-end {
	display: flex;
	justify-content: flex-end;
}
.wc-block-components-checkout-place-order-button {
	width: 100%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 1rem 1.5rem;
	background: var(--wpx-brand);
	color: #fff;
	border: none;
	border-radius: var(--wpx-radius-lg);
	font-size: 1rem;
	font-weight: 800;
	letter-spacing: 0.01em;
	cursor: pointer;
	text-align: center;
	box-shadow: var(--wpx-shadow);
	transition: box-shadow 0.18s ease, transform 0.18s ease, opacity 0.15s ease, background 0.18s ease;
}
.wc-block-components-checkout-place-order-button:hover {
	background: linear-gradient(135deg, var(--wpx-navy-700) 0%, var(--wpx-brand) 100%);
	box-shadow: var(--wpx-shadow-lg);
	transform: translateY(-1px);
	color: #fff;
}
.wc-block-components-checkout-place-order-button:disabled {
	opacity: 0.6;
	cursor: not-allowed;
	transform: none;
	box-shadow: none;
}
/* --- Order summary (sidebar) card --- */
.wc-block-components-sidebar.wc-block-checkout__sidebar {
	background: #ffffff;
	border: 1px solid var(--wpx-border);
	border-radius: var(--wpx-radius-xl);
	padding: 1.75rem;
	box-shadow: var(--wpx-shadow);
}
.wp-block-woocommerce-checkout-order-summary-block {
	margin: 0;
}
/* Summary title row (collapsible). */
.wc-block-components-checkout-order-summary__title {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0 0 0.25rem;
	/* Horizontal padding matches the 6px inset of the summary content below,
	   so the header lines up with the product rows; the divider still spans
	   the full card content width. */
	padding: 0 6px 0.9rem;
	border-bottom: 1px solid #eef1f7;
	cursor: pointer;
}
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-checkout-order-summary__title-text {
	flex: 1;
	display: flex;
	align-items: center;
	/* WooCommerce adds `margin: 0 0 8px 16px`, which shoved the title text
	   off-centre inside the flex row and out of line with the items. */
	margin: 0 !important;
	font-size: 1.02rem !important;
	font-weight: 800 !important;
	letter-spacing: -0.01em;
	color: var(--wpx-navy);
	text-transform: none;
}
/* Receipt chip ahead of the title -- gives the header a clear focal point. */
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-checkout-order-summary__title-text::before {
	content: "";
	flex: 0 0 auto;
	width: 30px;
	height: 30px;
	margin-right: 0.65rem;
	border-radius: 9px;
	background-color: rgba(37, 99, 235, 0.09);
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%232563eb' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 2v20l2-1 2 1 2-1 2 1 2-1 2 1 2-1 2 1V2l-2 1-2-1-2 1-2-1-2 1-2-1-2 1-2-1z'/%3E%3Cpath d='M8 7h8'/%3E%3Cpath d='M8 11h8'/%3E%3Cpath d='M8 15h5'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 16px 16px;
}
.wc-block-components-checkout-order-summary__title-price {
	font-size: 0.95rem;
	font-weight: 800;
	color: var(--wpx-brand);
	padding: 0.28rem 0.75rem;
	border-radius: 999px;
	background: rgba(37, 99, 235, 0.08);
	white-space: nowrap;
}
.wc-block-components-checkout-order-summary__title-icon {
	display: inline-flex;
	align-items: center;
	color: #8a93ad;
	transition: transform 0.2s ease;
}
.wc-block-components-checkout-order-summary__title-icon svg {
	width: 16px;
	height: 16px;
}
.wc-block-components-checkout-order-summary__title.is-open .wc-block-components-checkout-order-summary__title-icon {
	transform: rotate(180deg);
}
/* Summary items */
.wc-block-components-checkout-order-summary__content .wc-block-components-order-summary {
	margin: 0.35rem 0 0;
}
/* Inset every block inside the card (items, coupon, totals) so nothing runs
   flush against the card's border. */
.wc-block-components-checkout-order-summary__content {
	padding: 0 6px;
}
.wc-block-components-order-summary {
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
	display: grid !important;
	gap: 0.1rem !important;
}
.wc-block-components-order-summary-item {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	padding: 0.75rem 0;
	border-bottom: 1px dashed #e6e9f0;
}
.wc-block-components-order-summary-item:last-child { border-bottom: none;
}
.wc-block-components-order-summary-item__image {
	flex: 0 0 54px;
	width: 54px;
	height: 54px;
	overflow: hidden;
	border-radius: var(--wpx-radius);
	background: #f8fafc;
	border: 1px solid #eef1f7;
	display: flex;
	align-items: center;
	justify-content: center;
}
.wc-block-components-order-summary-item__image img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
	display: block;
}
.wc-block-components-order-summary-item__description {
	flex: 1;
	min-width: 0;
	line-height: 1.35;
	/* WooCommerce indents this column 24px (room for its quantity badge
	   overlay) which crammed the product text in the 400px card -- the badge
	   lives inside the image tile here, so drop the indent. `!important`
	   matches WC's own `.order-summary .order-summary-item__description`
	   (0,2,0) rule that sets `padding: 4px 12px 12px 24px`. */
	padding: 0 !important;
}
/* Only the product name (and price) in the checkout summary -- the long
   product description wrapped into several lines and crowded the card. */
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-product-metadata {
	display: none !important;
}
/* Quantity badge: WooCommerce straddles it across the image's top-right
   corner (`right:0; top:0; transform:translate(50%,-50%)`), and the image
   tile's `overflow:hidden` clipped the outer half -- rendering as "half a
   dot". Seat it fully inside the corner as a navy pill with a white ring so
   it reads as a proper quantity badge. */
.wc-block-components-order-summary .wc-block-components-order-summary-item__quantity {
	top: 3px !important;
	right: 3px !important;
	left: auto !important;
	transform: none !important;
	min-width: 18px;
	min-height: 18px;
	padding: 0 5px;
	border-radius: 999px;
	background: var(--wpx-navy) !important;
	box-shadow: 0 0 0 2px #ffffff;
	font-size: 0.68rem;
	font-weight: 700;
	line-height: 1;
	letter-spacing: 0.02em;
}
.wc-block-components-order-summary .wc-block-components-order-summary-item__quantity span {
	color: #ffffff !important;
	padding: 0 !important;
}
.wc-block-components-order-summary-item__total-price {
	font-weight: 800;
	font-size: 0.95rem;
	color: var(--wpx-navy);
	white-space: nowrap;
}
.wc-block-components-order-summary-item__individual-prices {
	display: flex;
	gap: 0.4rem;
	align-items: baseline;
	flex-wrap: wrap;
}
.wc-block-components-order-summary-item__individual-price {
	font-size: 0.78rem;
	color: #6474a0;
	font-weight: 600;
}
/* Checkout order summary totals reuse the cart totals styles
   (`.wc-block-components-totals-item` etc. defined above). */
/* WooCommerce paints a 1px separator on every `.totals-wrapper`; above the
   Total that stacked with the footer row's own 2px divider (two borders).
   The card structure + the footer divider carry the separation now. */
.wc-block-components-checkout-order-summary__content .wc-block-components-totals-wrapper {
	border-top: 0 !important;
}
/* Align the Subtotal / Total rows with the product rows above (WooCommerce
   pads them 16px horizontally, which left them floating out of line). */
.wc-block-components-checkout-order-summary__content .wc-block-components-totals-item {
	padding-left: 0 !important;
	padding-right: 0 !important;
}
/* Coupon inside the checkout order summary (mirrors the cart coupon block). */
/* WooCommerce pads the coupon panel 16px horizontally, which offset the pill
   from the items/totals above it once the content is inset -- align it. */
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-coupon.wc-block-components-panel {
	padding-left: 0;
	padding-right: 0;
}
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-panel__button {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	width: 100%;
	margin-top: 0.5rem;
	/* WooCommerce zeroes the button's left padding, so the "Add coupon" text
	   touched the pill's rounded edge -- give the label room on both sides. */
	padding: 0.5rem 1rem !important;
	border: 1px solid rgba(37, 99, 235, 0.18);
	border-radius: 999px;
	background: rgba(37, 99, 235, 0.06);
	color: var(--wpx-brand);
	font-size: 0.8rem;
	font-weight: 700;
	cursor: pointer;
}
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-panel__button-icon svg {
	transition: transform 0.2s ease;
}
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-panel__button:focus,
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-panel__button:hover {
	background: rgba(37, 99, 235, 0.12);
}
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-coupon__form {
	display: flex;
	gap: 0.5rem;
	margin-top: 0.5rem;
}
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-coupon__input {
	flex: 1;
}
.wp-block-woocommerce-checkout-order-summary-block input.wc-block-components-totals-coupon__input-input,
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-coupon__input input {
	width: 100%;
	height: 42px;
	box-sizing: border-box;
	padding: 0 0.85rem;
	border: 1px solid #d6dae3;
	border-radius: var(--wpx-radius);
	background: #fff;
	color: var(--wpx-navy);
	font-size: 0.85rem;
	outline: none;
}
.wp-block-woocommerce-checkout-order-summary-block input.wc-block-components-totals-coupon__input-input:focus,
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-coupon__input input:focus {
	border-color: var(--wpx-brand);
	box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.14);
}
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-coupon__button {
	height: 42px;
	padding: 0 1.15rem;
	background: var(--wpx-brand);
	color: #fff;
	border: none;
	border-radius: var(--wpx-radius);
	font-size: 0.85rem;
	font-weight: 700;
	cursor: pointer;
}
.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-coupon__button:disabled {
	opacity: 0.55;
	cursor: not-allowed;
}
/* ============================================================
   WooCommerce Order Confirmation (order-received) page
   ============================================================ */
.wpxh-main--order {
	max-width: 80rem;
	padding: 2.5rem 1rem 3.5rem;
}
/* --- Hero / status block --- */
.wc-block-order-confirmation-status {
	position: relative;
	text-align: center;
	max-width: 46rem;
	margin: 0 auto 2rem;
	padding: 2.75rem 1.5rem 2.25rem;
	background: linear-gradient(160deg, #ffffff 0%, #f4f8ff 100%);
	border: 1px solid var(--wpx-border);
	border-radius: var(--wpx-radius-xl);
	box-shadow: var(--wpx-shadow);
}
.wc-block-order-confirmation-status::before {
	content: "";
	display: block;
	width: 64px;
	height: 64px;
	margin: 0 auto 1.1rem;
	border-radius: 50%;
	background-color: #16a34a;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ffffff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: center;
	background-size: 32px;
	box-shadow: 0 8px 18px rgba(22, 163, 74, 0.35);
}
.wc-block-order-confirmation-status h1 {
	margin: 0 0 0.4rem;
	font-size: 1.9rem;
	font-weight: 800;
	color: var(--wpx-navy);
}
.wc-block-order-confirmation-status p {
	margin: 0;
	color: #5b6478;
	font-size: 1.02rem;
}
.wpexpert-order-num {
	color: var(--wpx-brand);
}
.wc-block-order-confirmation-status-description {
	max-width: 46rem;
	margin: -1.1rem auto 2rem;
	text-align: center;
	color: #5b6478;
}
.wc-block-order-confirmation-status-description .button {
	display: inline-block;
	margin-top: 0.5rem;
	padding: 0.55rem 1.1rem;
	border-radius: var(--wpx-radius);
	background: var(--wpx-brand);
	color: #fff;
	font-weight: 600;
	text-decoration: none;
}
/* --- Two-column grid (collapses to a centered single column when the
       side column has no address/additional data, e.g. digital orders) --- */
.wpxh-order__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: 1.5rem;
	align-items: start;
	max-width: 64rem;
	margin: 0 auto 2rem;
}
.wpxh-order__grid:has(.wpxh-order__side > *) {
	grid-template-columns: minmax(0, 1fr) 340px;
	max-width: none;
}
/* --- Card wrapper for each order block --- */
.wpxh-order__main > .wc-block-order-confirmation-summary,
.wpxh-order__main > .wc-block-order-confirmation-totals,
.wpxh-order__main > .wc-block-order-confirmation-downloads,
.wpxh-order__main > .wc-block-order-confirmation-additional-information,
.wpxh-order__side > .wc-block-order-confirmation-billing-address,
.wpxh-order__side > .wc-block-order-confirmation-shipping-address,
.wpxh-order__side > .wc-block-order-confirmation-additional-fields {
	display: block;
	background: #fff;
	border: 1px solid var(--wpx-border);
	border-radius: var(--wpx-radius-lg);
	box-shadow: var(--wpx-shadow-sm);
	padding: 1.5rem 1.5rem 1.6rem;
	margin-bottom: 1.25rem;
}
/* Card titles (added via ::before because the blocks ship no heading) */
.wc-block-order-confirmation-summary::before { content: "Order summary";
}
.wc-block-order-confirmation-totals::before { content: "Order details";
}
.wc-block-order-confirmation-downloads::before { content: "Downloads";
}
.wc-block-order-confirmation-billing-address::before { content: "Billing details";
}
.wc-block-order-confirmation-shipping-address::before { content: "Shipping details";
}
.wc-block-order-confirmation-additional-fields::before { content: "Additional information";
}
.wpxh-order__main > [class*="wc-block-order-confirmation"]::before,
.wpxh-order__side > [class*="wc-block-order-confirmation"]::before {
	display: flex;
	align-items: center;
	margin-bottom: 1rem;
	padding-bottom: 0.7rem;
	border-bottom: 1px solid #eef1f7;
	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: var(--wpx-navy);
}
/* --- Summary list (Order #, Date, Total, Email, Payment) --- */
.wc-block-order-confirmation-summary-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 0.75rem 1.5rem;
}
.wc-block-order-confirmation-summary-list-item {
	display: flex;
	flex-direction: column;
	gap: 0.15rem;
	padding: 0.7rem 0.9rem;
	background: #f7f9fc;
	border: 1px solid #eef1f7;
	border-radius: var(--wpx-radius);
}
.wc-block-order-confirmation-summary-list-item__key {
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: #8a93ad;
	font-weight: 700;
}
.wc-block-order-confirmation-summary-list-item__value {
	font-size: 0.98rem;
	font-weight: 600;
	color: var(--wpx-navy);
}
/* --- Totals + Downloads tables --- */
.wc-block-order-confirmation-totals__table,
.wc-block-order-confirmation-downloads__table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.92rem;
}
.wc-block-order-confirmation-totals__table thead th,
.wc-block-order-confirmation-downloads__table thead th {
	text-align: left;
	padding: 0.5rem 0.75rem;
	border-bottom: 2px solid #eef1f7;
	font-size: 0.74rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: #8a93ad;
}
.wc-block-order-confirmation-totals__table tbody td,
.wc-block-order-confirmation-downloads__table tbody td {
	padding: 0.85rem 0.75rem;
	border-bottom: 1px solid #f0f2f6;
	vertical-align: middle;
}
.wc-block-order-confirmation-totals__table tbody tr:last-child td,
.wc-block-order-confirmation-downloads__table tbody tr:last-child td {
	border-bottom: none;
}
.wc-block-order-confirmation-totals__product,
.wc-block-order-confirmation-downloads__table .download-product {
	font-weight: 600;
	color: var(--wpx-navy);
}
.wc-block-order-confirmation-totals__total {
	text-align: right;
	font-weight: 600;
	color: var(--wpx-navy);
}
.wc-block-order-confirmation-totals__table tfoot th {
	text-align: left;
	padding: 0.7rem 0.75rem;
	color: var(--wpx-navy);
	font-weight: 600;
}
.wc-block-order-confirmation-totals__table tfoot td {
	text-align: right;
	padding: 0.7rem 0.75rem;
	font-weight: 700;
	color: var(--wpx-navy);
}
.wc-block-order-confirmation-totals__table tfoot tr:last-child th,
.wc-block-order-confirmation-totals__table tfoot tr:last-child td {
	border-top: 2px solid #e5e7eb;
	font-size: 1.05rem;
}
.download-remaining,
.download-expires {
	color: #8a93ad;
	white-space: nowrap;
}
.wc-block-order-confirmation-downloads__table .download-file a {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	background: var(--wpx-brand);
	color: #fff !important;
	text-decoration: none !important;
	padding: 0.5rem 0.9rem;
	border-radius: var(--wpx-radius);
	font-size: 0.82rem;
	font-weight: 600;
}
.wc-block-order-confirmation-downloads__table .download-file a:hover {
	background: #1d4fd0;
}
/* License key shown beneath each download on the order-received page */
.wpexpert-licence-key {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 0.4rem 0.5rem;
	margin-top: 0.6rem;
	padding: 0.55rem 0.65rem;
	background: #f1f5ff;
	border: 1px dashed #b9c9f0;
	border-radius: var(--wpx-radius);
}
.wpexpert-licence-key__label {
	font-size: 0.68rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--wpx-brand);
}
.wpexpert-licence-key__value {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 0.82rem;
	font-weight: 600;
	color: var(--wpx-navy);
	word-break: break-all;
}
.wpexpert-licence-key__copy {
	margin-left: auto;
	padding: 0.3rem 0.7rem;
	border: 1px solid var(--wpx-brand);
	border-radius: var(--wpx-radius);
	background: #fff;
	color: var(--wpx-brand);
	font-size: 0.72rem;
	font-weight: 700;
	cursor: pointer;
	transition: background-color 0.15s ease, color 0.15s ease;
}
.wpexpert-licence-key__copy:hover,
.wpexpert-licence-key__copy.is-copied {
	background: var(--wpx-brand);
	color: #fff;
}
/* Licence key rendered inside the My Account downloads table cell */
.woocommerce-table--order-downloads td.licence-key {
	min-width: 220px;
}
.woocommerce-table--order-downloads td.licence-key .wpexpert-licence-key {
	margin-top: 0;
}
.wc-block-order-confirmation-order-note {
	margin-top: 1rem;
	padding: 0.9rem 1rem;
	background: #fffbeb;
	border: 1px solid #fde68a;
	border-radius: var(--wpx-radius);
	font-size: 0.9rem;
	color: #7c5e10;
}
.wc-block-order-confirmation-order-note__label {
	font-weight: 700;
	margin-right: 0.3rem;
}
/* --- Billing / Shipping address --- */
.wc-block-order-confirmation-billing-address address,
.wc-block-order-confirmation-shipping-address address {
	font-style: normal;
	color: var(--wpx-ink);
	line-height: 1.7;
	font-size: 0.94rem;
}
.wc-block-order-confirmation-billing-address .woocommerce-customer-details--phone {
	margin: 0.4rem 0 0;
	color: #5b6478;
}
/* --- Additional fields --- */
.wc-block-order-confirmation-additional-fields .wc-block-components-additional-fields-list {
	margin: 0;
}
.wc-block-order-confirmation-additional-fields dt {
	margin-top: 0.6rem;
	font-size: 0.72rem;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: #8a93ad;
	font-weight: 700;
}
.wc-block-order-confirmation-additional-fields dd {
	margin: 0 0 0.4rem;
	font-weight: 600;
	color: var(--wpx-navy);
}
/* --- "What's next" CTA --- */
/* --- Responsive --- */
@media (max-width: 1023px) {
	.wpxh-order__grid {
		grid-template-columns: 1fr;
	}
	.wc-block-components-checkout-step {
		padding: 1.25rem;
		margin-bottom: 1.25rem;
	}
	.wc-block-components-sidebar.wc-block-checkout__sidebar {
		padding: 1.5rem;
	}
}
@media (max-width: 767px) {
	.wp-block-woocommerce-checkout .wc-block-components-checkout-step,
	.wc-block-checkout .wc-block-components-checkout-step,
	/* WooCommerce zeroes the numbered steps' padding in its .is-mobile/.is-small layout (0,3,0). */
	.wpxh-main--checkout .wc-block-checkout__form fieldset.wc-block-components-checkout-step {
		padding: 1rem;
	}
	.wp-block-woocommerce-checkout .wc-block-components-checkout-step__heading-container,
	.wc-block-checkout .wc-block-components-checkout-step__heading-container {
		padding-bottom: 0.6rem;
		margin-bottom: 0.9rem;
	}
	.wp-block-woocommerce-checkout .wc-block-components-sidebar-layout,
	.wc-block-components-sidebar-layout.wc-block-checkout {
		grid-template-columns: 1fr;
		/* WooCommerce's phone layout: collapsed summary on top, full summary above "Place order". */
		grid-template-areas: "sidebar" "main";
	}
	.wc-block-components-order-summary-item__image {
		flex-basis: 46px;
		width: 46px;
		height: 46px;
	}
	.wp-block-woocommerce-checkout-order-summary-block .wc-block-components-totals-coupon__form {
		flex-direction: column;
	}
}
@media (max-width: 600px) {
	.wc-block-order-confirmation-summary-list {
		grid-template-columns: 1fr;
	}
	.wc-block-order-confirmation-status {
		padding: 2.25rem 1rem 1.75rem;
	}
	.wc-block-order-confirmation-status h1 {
		font-size: 1.5rem;
	}
	.wc-block-order-confirmation-totals__table,
	.wc-block-order-confirmation-downloads__table {
		display: block;
		overflow-x: auto;
		white-space: nowrap;
	}
}
/* ── Overrides on top of the ported rules (new design) ─────────────────── */
.wpxh-wcbody .wp-block-woocommerce-cart, .wpxh-wcbody .wp-block-woocommerce-checkout { max-width: none; margin: 0; }
.wc-block-components-button:not(.is-link).contained,
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button { background: var(--blue) !important; border-radius: 10px !important; box-shadow: none !important; }
.wc-block-cart__submit-button:hover, .wc-block-components-checkout-place-order-button:hover { background: var(--blue-dark) !important; }
.wpxh-order .wp-block-woocommerce-order-confirmation-status { font-size: clamp(22px, 2.6vw, 30px); font-weight: 700; letter-spacing: -.03em; }
.wpxh-order__grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 24px; align-items: start; margin-top: 24px; }
.wpxh-order__main, .wpxh-order__side { display: flex; flex-direction: column; gap: 20px; }
.wpxh-order__main > *, .wpxh-order__side > * { margin: 0 !important; }
.wpxh-order__next { margin-top: 32px; padding: clamp(22px, 3vw, 30px); border-radius: 18px; background: var(--navy); color: var(--white); display: flex; flex-direction: column; gap: 12px; }
.wpxh-order__next > * { margin: 0 !important; }
.wpxh-order__next h2 { color: var(--white); font-size: 22px; }
.wpxh-order__next p { color: #CBD5E1; }
.wpxh-order__next .wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--white); border-color: rgba(148, 163, 184, .4); }
@media (max-width: 959px) { .wpxh-order__grid { grid-template-columns: 1fr; } }
/* Page wrappers: the inner .wpxh-wchead/.wpxh-wcbody centre the content. */
.wpxh-main--cart, .wpxh-main--checkout, .wpxh-main--order { max-width: none !important; margin: 0 !important; padding: 0 !important; }
.wpxh-main--cart h1.wp-block-heading, .wpxh-main--checkout h1.wp-block-heading { font-size: clamp(32px, 4vw, 48px); font-weight: 700; letter-spacing: -.04em; }
.wpxh-main--order .wpxh-wcbody { padding-top: clamp(32px, 5vw, 56px); }

/* =====================================================================
 * My Account: section header, Orders and Downloads
 * =================================================================== */
.wpxh-acchead { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 14px 20px; }
.wpxh-acchead__text { flex: 1 1 320px; min-width: 0; }
.woocommerce-MyAccount-content .wpxh-acchead h2 { display: flex; align-items: center; gap: 10px; margin: 0 0 6px; font-size: 26px; letter-spacing: -.035em; color: var(--navy); }
.wpxh-acchead__count { display: inline-flex; align-items: center; height: 24px; padding: 0 9px; border-radius: 999px; background: var(--blue-50); border: 1px solid var(--blue-100); font: 600 12px/1 var(--mono); letter-spacing: 0; color: var(--blue-dark); }
.wpxh-acchead p { margin: 0; font-size: 14.5px; line-height: 1.6; color: var(--muted); max-width: 620px; }
.wpxh-acchead__extra { flex: 0 1 280px; }

/* Orders table */
.woocommerce-MyAccount-content table.woocommerce-orders-table { border-radius: 16px; box-shadow: var(--shadow-card); }
.woocommerce-orders-table thead th { padding: 13px 20px; }
.woocommerce-orders-table tbody th, .woocommerce-orders-table tbody td { padding: 16px 20px; vertical-align: middle; border-bottom: 1px solid var(--surface-2); background: var(--white); transition: background-color .15s; }
.woocommerce-orders-table tbody tr:hover > * { background: var(--surface); }
.woocommerce-orders-table tbody tr:last-child > * { border-bottom: 0; }
.woocommerce-MyAccount-content table.woocommerce-orders-table { table-layout: fixed; }
.woocommerce-orders-table__header-order-date { width: 112px; }
.woocommerce-orders-table__header-order-status { width: 128px; }
.woocommerce-orders-table__header-order-total { width: 112px; }
.woocommerce-orders-table__header-order-actions { width: 104px; }
/* WooCommerce renders the order number cell as <th scope="row">: reset the header-cell look. */
.woocommerce-MyAccount-content table.woocommerce-orders-table tbody th { font: 400 15px/1.5 var(--sans); text-transform: none; letter-spacing: 0; color: var(--ink); background: var(--white); text-align: left; }
.woocommerce-MyAccount-content table.woocommerce-orders-table tbody tr:hover > th { background: var(--surface); }
.woocommerce-orders-table__cell-order-number { min-width: 0; }
.wpxh-ordno { display: block; font: 650 15px/1.3 var(--sans); color: var(--navy); letter-spacing: -.01em; }
.wpxh-ordno:hover { color: var(--blue); }
.wpxh-orditems { display: block; margin-top: 3px; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; color: var(--muted); }
.wpxh-orditems em { font-style: normal; font-weight: 600; color: var(--ink); }
.woocommerce-orders-table__cell-order-date time { font-size: 14px; color: var(--ink); white-space: nowrap; }
.wpxh-ordtotal { display: block; font-size: 15px; font-weight: 650; color: var(--navy); white-space: nowrap; }
.wpxh-ordtotal del { font-weight: 400; color: var(--subtle); }
.wpxh-orditemcount { display: block; margin-top: 2px; font-size: 12.5px; color: var(--muted); }
.wpxh-status { display: inline-flex; align-items: center; gap: 7px; padding: 5px 11px 5px 9px; border-radius: 999px; font-size: 12.5px; font-weight: 600; line-height: 1.2; white-space: nowrap; background: var(--surface-2); color: var(--muted); }
.wpxh-status i { width: 7px; height: 7px; border-radius: 50%; background: currentColor; flex: none; }
.wpxh-status--processing { background: var(--blue-50); color: var(--blue-dark); }
.wpxh-status--completed { background: #DCFCE7; color: #15803D; }
.wpxh-status--on-hold { background: #FEF3C7; color: #B45309; }
.wpxh-status--refunded { background: #F3E8FF; color: #7E22CE; }
.wpxh-status--failed { background: #FEE2E2; color: #B91C1C; }
.wpxh-status--cancelled, .wpxh-status--pending, .wpxh-status--checkout-draft { background: var(--surface-2); color: var(--muted); }
.woocommerce-orders-table__cell-order-actions { text-align: right; white-space: nowrap; }
.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions .button { display: inline-flex !important; align-items: center; justify-content: center; gap: 6px; min-height: 36px; padding: 0 14px; margin: 2px 0 2px 6px; border-radius: 10px; font-size: 13.5px; line-height: 1; transition: border-color .15s, color .15s, background-color .15s; }
.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions .button:hover { border-color: var(--blue); color: var(--blue) !important; background: var(--white); }
.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions .button.view::after { content: "→"; transition: transform .15s; }
.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions .button.view:hover::after { transform: translateX(2px); }
.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions .button.pay { background: var(--blue); border-color: var(--blue); color: var(--white) !important; }
.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions .button.pay:hover { background: var(--blue-dark); color: var(--white) !important; }
.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions .button.cancel { color: #B91C1C !important; }
.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions .button.cancel:hover { border-color: #FCA5A5; background: #FEF2F2; }
.woocommerce-MyAccount-content .woocommerce-pagination { display: flex; justify-content: space-between; gap: 12px; }
.woocommerce-MyAccount-content .woocommerce-pagination .button { min-height: 40px; padding: 0 16px; border-radius: 10px; background: var(--white); border-color: var(--line-strong); color: var(--navy) !important; }
.woocommerce-MyAccount-content .woocommerce-pagination .button:hover { border-color: var(--blue); color: var(--blue) !important; background: var(--white); }
.woocommerce-MyAccount-content .woocommerce-pagination .woocommerce-button--previous::before { content: "←"; }
.woocommerce-MyAccount-content .woocommerce-pagination .woocommerce-button--next { margin-left: auto; }
.woocommerce-MyAccount-content .woocommerce-pagination .woocommerce-button--next::after { content: "→"; }

/* Downloads: one card per download */
.wpxh-dlfilter { position: relative; display: block; }
.wpxh-dlfilter svg { position: absolute; left: 13px; top: 50%; transform: translateY(-50%); color: var(--subtle); pointer-events: none; }
.wpxh-dlfilter input { width: 100%; height: 42px; padding: 0 14px 0 38px; border-radius: 11px; border: 1px solid var(--line-strong); background: var(--white); font: 400 14.5px var(--sans); color: var(--navy); transition: border-color .2s, box-shadow .2s; }
.wpxh-dlfilter input:focus { outline: 0; border-color: var(--blue); box-shadow: 0 0 0 3px var(--blue-100); }
.wpxh-dlwrap [hidden] { display: none !important; }
:is(.wpxh-dlwrap, .woocommerce-MyAccount-content .woocommerce-order-downloads) table.woocommerce-table--order-downloads { display: block; border: 0; border-radius: 0; background: none; box-shadow: none; overflow: visible; }
:is(.wpxh-dlwrap, .woocommerce-MyAccount-content .woocommerce-order-downloads) table.woocommerce-table--order-downloads thead { display: none; }
:is(.wpxh-dlwrap, .woocommerce-MyAccount-content .woocommerce-order-downloads) table.woocommerce-table--order-downloads tbody { display: grid; gap: 12px; }
:is(.wpxh-dlwrap, .woocommerce-MyAccount-content .woocommerce-order-downloads) table.woocommerce-table--order-downloads tr {
	display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-areas: "prod btn" "key key"; gap: 14px 20px; align-items: center;
	padding: 18px 20px; border: 1px solid var(--line); border-radius: 16px; background: var(--white); box-shadow: 0 1px 2px rgba(15, 23, 42, .03);
	transition: border-color .2s, box-shadow .2s;
}
:is(.wpxh-dlwrap, .woocommerce-MyAccount-content .woocommerce-order-downloads) table.woocommerce-table--order-downloads tr:hover { border-color: var(--blue-200); box-shadow: 0 16px 32px -24px rgba(37, 99, 235, .45); }
.woocommerce :is(.wpxh-dlwrap, .woocommerce-MyAccount-content .woocommerce-order-downloads) table.woocommerce-table--order-downloads tbody td { display: block !important; padding: 0 !important; border: 0 !important; text-align: left !important; background: none !important; }
.woocommerce :is(.wpxh-dlwrap, .woocommerce-MyAccount-content .woocommerce-order-downloads) table.woocommerce-table--order-downloads tbody td::before { display: none !important; }
:is(.wpxh-dlwrap, .woocommerce-MyAccount-content .woocommerce-order-downloads) td.download-product { grid-area: prod; min-width: 0; }
:is(.wpxh-dlwrap, .woocommerce-MyAccount-content .woocommerce-order-downloads) td.download-file { grid-area: btn; }
:is(.wpxh-dlwrap, .woocommerce-MyAccount-content .woocommerce-order-downloads) td.licence-key { grid-area: key; min-width: 0; }
.wpxh-dlprod { display: flex; align-items: center; gap: 14px; min-width: 0; }
.wpxh-dlprod__icon { width: 46px; height: 46px; flex: none; display: grid; place-items: center; border-radius: 13px; background: var(--grad-tint); border: 1px solid var(--blue-100); color: var(--blue); }
.wpxh-dlprod__text { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.wpxh-dlprod__name { font-size: 15.5px; font-weight: 650; line-height: 1.35; letter-spacing: -.01em; }
.wpxh-dlprod__name a { color: var(--navy); }
.wpxh-dlprod__name a:hover { color: var(--blue); }
.wpxh-dlprod__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 2px 8px; font-size: 13px; color: var(--muted); }
.wpxh-dlprod__meta i { font-style: normal; color: var(--line-strong); }
.wpxh-dlprod__meta a { color: var(--muted); text-decoration: underline; text-decoration-color: var(--line-strong); text-underline-offset: 2px; }
.wpxh-dlprod__meta a:hover { color: var(--blue); }
.woocommerce-MyAccount-content .wpxh-dlbtn.button { min-height: 42px; padding: 0 18px; border-radius: 11px; font-size: 14px; white-space: nowrap; box-shadow: 0 10px 20px -14px rgba(37, 99, 235, .8); }
.wpxh-dlkey { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; padding: 10px 10px 10px 14px; border-radius: 12px; background: var(--surface); border: 1px dashed var(--line-strong); }
.wpxh-dlkey__label { font: 500 11.5px var(--mono); text-transform: uppercase; letter-spacing: .03em; color: var(--muted); }
.wpxh-dlkey__value { flex: 1 1 220px; min-width: 0; font: 500 13.5px/1.4 var(--mono); color: var(--navy); background: none; padding: 0; overflow-wrap: anywhere; }
.wpxh-dlkey__copy, .wpxh-dlkey__get { height: 32px; padding: 0 12px; border-radius: 8px; border: 1px solid var(--line-strong); background: var(--white); font: 600 13px/1 var(--sans); color: var(--navy); cursor: pointer; transition: border-color .15s, color .15s, background-color .15s; }
.wpxh-dlkey__copy:hover, .wpxh-dlkey__get:hover { border-color: var(--blue); color: var(--blue); }
.wpxh-dlkey__copy.is-copied { border-color: #86EFAC; background: #F0FDF4; color: #15803D; }
.wpxh-dlkey__none { flex: 1 1 200px; font-size: 13.5px; color: var(--muted); }
.wpxh-dlkey__form { margin: 0; }
.wpxh-dlkey__get { border-color: var(--blue-200); color: var(--blue-dark); background: var(--blue-50); }
.wpxh-dlempty { margin: 0; padding: 28px; border: 1px dashed var(--line-strong); border-radius: 16px; text-align: center; color: var(--muted); }

@media (max-width: 859px) {
	.woocommerce-MyAccount-content table.woocommerce-orders-table { border: 0; background: none; box-shadow: none; overflow: visible; table-layout: auto; }
	.woocommerce-MyAccount-content table.woocommerce-orders-table tbody th { background: none; }
	.woocommerce-MyAccount-content table.woocommerce-orders-table tbody { display: grid; gap: 12px; }
	.woocommerce-MyAccount-content table.woocommerce-orders-table tr {
		display: grid !important; grid-template-columns: minmax(0, 1fr) auto; gap: 10px 12px; align-items: center;
		padding: 16px !important; border: 1px solid var(--line) !important; border-radius: 14px; background: var(--white);
	}
	.woocommerce .woocommerce-MyAccount-content table.woocommerce-orders-table tbody tr > * { display: block !important; padding: 0 !important; border: 0 !important; text-align: left !important; background: none !important; }
	.woocommerce-MyAccount-content table.woocommerce-orders-table tr > *::before { display: none !important; }
	.woocommerce-orders-table__cell-order-number { grid-column: 1; grid-row: 1; min-width: 0; }
	.woocommerce-orders-table__cell-order-status { grid-column: 2; grid-row: 1; justify-self: end; }
	.woocommerce-orders-table__cell-order-date { grid-column: 1; grid-row: 2; }
	.woocommerce .woocommerce-MyAccount-content table.woocommerce-orders-table tbody tr > .woocommerce-orders-table__cell-order-total { grid-column: 2; grid-row: 2; text-align: right !important; }
	.woocommerce .woocommerce-MyAccount-content table.woocommerce-orders-table tbody tr > .woocommerce-orders-table__cell-order-actions { grid-column: 1 / -1; display: flex !important; gap: 8px; padding-top: 12px !important; border-top: 1px solid var(--surface-2) !important; }
	.woocommerce-MyAccount-content .woocommerce-orders-table__cell-order-actions .button { flex: 1; margin: 0; }
	.wpxh-orditems { max-width: none; white-space: normal; }
	.wpxh-orditemcount { text-align: right; }
}
@media (max-width: 600px) {
	:is(.wpxh-dlwrap, .woocommerce-MyAccount-content .woocommerce-order-downloads) table.woocommerce-table--order-downloads tr { grid-template-columns: minmax(0, 1fr); grid-template-areas: "prod" "key" "btn"; padding: 16px; }
	.woocommerce-MyAccount-content .wpxh-dlbtn.button { width: 100%; }
	.wpxh-acchead__extra { flex-basis: 100%; }
}

/* =====================================================================
 * My Account: view order
 * =================================================================== */
/* WooCommerce's one-line summary is replaced by the header card. */
.wpxh-orderhead ~ p:has(> mark.order-number) { display: none; }
.wpxh-orderhead {
	position: relative; overflow: hidden; display: flex; flex-direction: column; gap: 16px;
	padding: 20px 24px 20px; background: var(--white); border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow-card);
}
.wpxh-orderhead::before { content: ""; position: absolute; inset: 0 0 auto; height: 4px; background: var(--grad-brand); }
.wpxh-orderhead > * { position: relative; margin: 0; }
.wpxh-orderhead__back { display: inline-flex; align-items: center; gap: 4px; align-self: flex-start; font-size: 13.5px; font-weight: 600; color: var(--muted); }
.wpxh-orderhead__back:hover { color: var(--blue); }
.wpxh-orderhead__top { display: flex; flex-direction: column; gap: 6px; }
.wpxh-orderhead__title { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.woocommerce-MyAccount-content .wpxh-orderhead h2 { margin: 0; font-size: clamp(24px, 3vw, 30px); letter-spacing: -.04em; color: var(--navy); }
.wpxh-orderhead .wpxh-status { font-size: 13px; padding: 6px 12px 6px 10px; }
.wpxh-orderhead__help { margin: 0; font-size: 14.5px; line-height: 1.55; color: var(--muted); }
.wpxh-orderhead__facts { display: grid; grid-template-columns: repeat(3, minmax(0, auto)) minmax(0, 1fr); margin: 0; border: 1px solid var(--surface-2); border-radius: 13px; background: var(--surface); overflow: hidden; }
.wpxh-orderhead__facts > div { min-width: 0; padding: 12px 16px; border-right: 1px solid var(--surface-2); }
.wpxh-orderhead__facts > div:last-child { border-right: 0; }
.wpxh-orderhead__facts dt { margin: 0 0 3px; font: 500 11px var(--mono); text-transform: uppercase; letter-spacing: .04em; color: var(--muted); }
.wpxh-orderhead__facts dd { margin: 0; font-size: 15px; font-weight: 650; color: var(--navy); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wpxh-orderhead__facts .is-wide dd { font-weight: 500; font-size: 14px; }
.wpxh-orderhead__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; }
.woocommerce-MyAccount-content .wpxh-orderhead__action.button { min-height: 38px; padding: 0 16px; border-radius: 10px; font-size: 13.5px; }
.woocommerce-MyAccount-content .wpxh-orderhead__action.cancel { background: var(--white); border-color: #FCA5A5; color: #B91C1C !important; }
.woocommerce-MyAccount-content .wpxh-orderhead__action:not(.pay):not(.cancel) { background: var(--white); border-color: var(--line-strong); color: var(--navy) !important; }
.wpxh-orderhead__support { display: inline-flex; align-items: center; gap: 7px; margin-left: auto; font-size: 13.5px; color: var(--muted); }
.wpxh-orderhead__support svg { color: var(--blue); flex: none; }
.wpxh-orderhead__support a { font-weight: 600; }

/* Section titles inside the order */
.woocommerce-MyAccount-content .woocommerce-order-downloads__title,
.woocommerce-MyAccount-content .woocommerce-order-details__title,
.woocommerce-MyAccount-content .woocommerce-customer-details .woocommerce-column__title,
.woocommerce-MyAccount-content .woocommerce-OrderUpdates ~ h2, .woocommerce-MyAccount-content > h2 {
	margin: 0 0 12px; font: 700 20px/1.3 var(--sans); letter-spacing: -.03em; color: var(--navy);
}
.woocommerce-MyAccount-content .woocommerce-order-downloads, .woocommerce-MyAccount-content .woocommerce-order-details, .woocommerce-MyAccount-content .woocommerce-customer-details { margin: 0; }

/* Order details: receipt card */
.woocommerce-MyAccount-content .woocommerce-order-details { padding: 20px 24px 8px; background: var(--white); border: 1px solid var(--line); border-radius: 18px; box-shadow: var(--shadow-card); }
.woocommerce-MyAccount-content table.woocommerce-table--order-details { border: 0; border-radius: 0; box-shadow: none; background: none; overflow: visible; }
.woocommerce .woocommerce-MyAccount-content table.woocommerce-table--order-details :is(th, td) { background: none !important; padding: 13px 0; border: 0 !important; border-bottom: 1px solid var(--surface-2) !important; }
.woocommerce .woocommerce-MyAccount-content table.woocommerce-table--order-details thead th { padding: 0 0 10px; border-bottom: 1px solid var(--line) !important; }
.woocommerce-MyAccount-content table.woocommerce-table--order-details .product-total, .woocommerce-MyAccount-content table.woocommerce-table--order-details tfoot td { text-align: right; }
.woocommerce-MyAccount-content table.woocommerce-table--order-details .woocommerce-table__product-name a { font-weight: 600; color: var(--navy); }
.woocommerce-MyAccount-content table.woocommerce-table--order-details .woocommerce-table__product-name a:hover { color: var(--blue); }
.woocommerce-MyAccount-content table.woocommerce-table--order-details .product-quantity { display: inline-flex; margin-left: 6px; padding: 2px 8px; border-radius: 999px; background: var(--surface-2); font: 600 12px/1.5 var(--mono); color: var(--muted); }
.woocommerce-MyAccount-content table.woocommerce-table--order-details .wc-item-meta { margin: 6px 0 0; padding: 0; list-style: none; font-size: 13px; color: var(--muted); }
.woocommerce-MyAccount-content table.woocommerce-table--order-details .wc-item-meta p { display: inline; margin: 0; }
.woocommerce-MyAccount-content table.woocommerce-table--order-details td.product-total { font-weight: 600; color: var(--navy); white-space: nowrap; }
.woocommerce-MyAccount-content table.woocommerce-table--order-details tfoot th { font: 500 14px var(--sans); text-transform: none; letter-spacing: 0; color: var(--muted); text-align: left; }
.woocommerce-MyAccount-content table.woocommerce-table--order-details tfoot td { font-size: 14.5px; font-weight: 600; color: var(--navy); overflow-wrap: anywhere; }
.woocommerce-MyAccount-content table.woocommerce-table--order-details td.product-name { min-width: 150px; }
.woocommerce .woocommerce-MyAccount-content table.woocommerce-table--order-details tfoot tr:last-child > * { border-bottom: 0 !important; }
.woocommerce .woocommerce-MyAccount-content table.woocommerce-table--order-details tfoot tr:has(.wpxh-grandtotal) > * { padding: 16px 0; border-top: 1px solid var(--line) !important; }
.woocommerce-MyAccount-content table.woocommerce-table--order-details tfoot tr:has(.wpxh-grandtotal) th { font-weight: 700; color: var(--navy); font-size: 15px; }
.wpxh-grandtotal { font-size: 20px; font-weight: 750; letter-spacing: -.02em; color: var(--navy); }
.wpxh-grandtotal small { font-size: 12.5px; font-weight: 500; color: var(--muted); }
.woocommerce-MyAccount-content .order-again { margin: 4px 0 16px; }
.woocommerce-MyAccount-content .order-again .button { min-height: 40px; border-radius: 10px; }

/* Billing / shipping address */
.woocommerce-MyAccount-content .woocommerce-customer-details address {
	margin: 0; padding: 18px 20px; border: 1px solid var(--line); border-radius: 16px; background: var(--white);
	box-shadow: var(--shadow-card); font-size: 14.5px; line-height: 1.7; color: var(--ink);
}
.woocommerce-MyAccount-content .woocommerce-customer-details address p { margin: 8px 0 0; padding-top: 8px; border-top: 1px dashed var(--line); }
.woocommerce-MyAccount-content .woocommerce-customer-details address p + p { margin-top: 0; border-top: 0; padding-top: 2px; }

@media (max-width: 700px) {
	.wpxh-orderhead { padding: 18px; }
	.wpxh-orderhead__facts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.wpxh-orderhead__facts > div { padding: 11px 12px; }
	.wpxh-orderhead__facts > div:nth-child(3) { border-right: 0; }
	.wpxh-orderhead__facts dd { white-space: normal; overflow-wrap: anywhere; }
	.wpxh-orderhead__facts .is-wide { grid-column: 1 / -1; border-right: 0; border-top: 1px solid var(--surface-2); }
	.wpxh-orderhead__support { display: block; margin-left: 0; line-height: 1.6; }
	.wpxh-orderhead__support svg { display: inline-block; vertical-align: -3px; margin-right: 4px; }
	.woocommerce-MyAccount-content .woocommerce-order-details { padding: 18px 18px 6px; }
	/* Receipt rows as label / value lines so long values (e-mail, currency) wrap cleanly. */
	.woocommerce-MyAccount-content table.woocommerce-table--order-details, .woocommerce-MyAccount-content table.woocommerce-table--order-details :is(thead, tbody, tfoot) { display: block; width: 100%; }
	.woocommerce-MyAccount-content table.woocommerce-table--order-details :is(thead, tbody) tr { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
	.woocommerce .woocommerce-MyAccount-content table.woocommerce-table--order-details :is(thead, tbody) :is(th, td) { display: block; }
	.woocommerce-MyAccount-content table.woocommerce-table--order-details tbody td.product-name { flex: 1 1 auto; min-width: 0; }
	.woocommerce-MyAccount-content table.woocommerce-table--order-details tbody td.product-total { flex: none; }
	.woocommerce .woocommerce-MyAccount-content table.woocommerce-table--order-details tbody tr > * { border-bottom: 0 !important; }
	.woocommerce-MyAccount-content table.woocommerce-table--order-details tbody tr { border-bottom: 1px solid var(--surface-2); }
	.woocommerce .woocommerce-MyAccount-content table.woocommerce-table--order-details thead tr > * { border-bottom: 0 !important; }
	.woocommerce-MyAccount-content table.woocommerce-table--order-details thead tr { border-bottom: 1px solid var(--line); }
	.woocommerce-MyAccount-content table.woocommerce-table--order-details tfoot tr { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; border-bottom: 1px solid var(--surface-2); }
	.woocommerce-MyAccount-content table.woocommerce-table--order-details tfoot tr:last-child { border-bottom: 0; }
	.woocommerce .woocommerce-MyAccount-content table.woocommerce-table--order-details tfoot :is(th, td) { display: block; border: 0 !important; }
	.woocommerce-MyAccount-content table.woocommerce-table--order-details tfoot th { flex: none; }
	.woocommerce-MyAccount-content table.woocommerce-table--order-details tfoot td { flex: 1 1 auto; min-width: 0; }
	.woocommerce-MyAccount-content table.woocommerce-table--order-details tfoot tr:has(.wpxh-grandtotal) { border-top: 1px solid var(--line); }
	.woocommerce .woocommerce-MyAccount-content table.woocommerce-table--order-details tfoot tr:has(.wpxh-grandtotal) > * { border-top: 0 !important; }
	.woocommerce-MyAccount-content table.woocommerce-table--order-details td.product-name { min-width: 0; }
}

/* =====================================================================
 * Cart & checkout: title band with progress steps
 * =================================================================== */
.wpxh-commhero { position: relative; overflow: hidden; background: var(--navy); color: #CBD5E1; }
.wpxh-commhero::before { content: ""; position: absolute; inset: 0; background: radial-gradient(45% 110% at 95% 0%, rgba(37, 99, 235, .45), transparent 70%), radial-gradient(35% 90% at 0% 100%, rgba(6, 182, 212, .16), transparent 70%); pointer-events: none; }
.wpxh-commhero::after { content: ""; position: absolute; inset: 0; background-image: linear-gradient(rgba(255, 255, 255, .04) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .04) 1px, transparent 1px); background-size: 32px 32px; -webkit-mask-image: linear-gradient(90deg, transparent 35%, #000); mask-image: linear-gradient(90deg, transparent 35%, #000); pointer-events: none; }
.wpxh-commhero__inner { position: relative; z-index: 1; max-width: 1200px; margin: 0 auto; padding: clamp(28px, 4vw, 48px) var(--gutter) clamp(30px, 4vw, 48px); display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: 24px 40px; }
.wpxh-commhero__text { display: flex; flex-direction: column; gap: 10px; min-width: 0; }
.wpxh-commhero__text > * { margin: 0 !important; }
.wpxh-commhero .wpxh-crumbs ol { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; margin: 0; padding: 0; font: 500 12px var(--mono); color: var(--subtle); }
.wpxh-commhero .wpxh-crumbs li + li::before { content: "/"; margin-right: 6px; color: rgba(255, 255, 255, .25); }
.wpxh-commhero .wpxh-crumbs a { color: var(--subtle); }
.wpxh-commhero .wpxh-crumbs a:hover { color: var(--white); }
.wpxh-commhero .wpxh-crumbs [aria-current] { color: #E2E8F0; }
.wpxh-commhero__eyebrow { display: inline-flex; align-items: center; gap: 7px; align-self: flex-start; margin-top: 8px !important; padding: 5px 11px; border-radius: 999px; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12); font: 600 11.5px/1 var(--mono); text-transform: uppercase; letter-spacing: .06em; color: var(--cyan-light); }
.wpxh-commhero__title { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; font-size: clamp(32px, 4.2vw, 48px); font-weight: 750; line-height: 1.08; letter-spacing: -.045em; color: var(--white); }
.wpxh-commhero__count { display: inline-flex; align-items: center; height: 30px; padding: 0 12px; border-radius: 999px; background: rgba(96, 165, 250, .16); border: 1px solid rgba(96, 165, 250, .3); font: 600 13px/1 var(--mono); letter-spacing: 0; color: var(--blue-300); }
.wpxh-commhero__count[hidden] { display: none; }
.wpxh-commhero__intro { max-width: 560px; font-size: 16px; line-height: 1.6; color: #CBD5E1; }
.wpxh-commhero__intro--empty { display: none; }
.wpxh-main--cart:has(.wp-block-woocommerce-cart:not(.is-loading) .wpxh-emptycart) .wpxh-commhero__intro:not(.wpxh-commhero__intro--empty) { display: none; }
.wpxh-main--cart:has(.wp-block-woocommerce-cart:not(.is-loading) .wpxh-emptycart) .wpxh-commhero__intro--empty { display: block; }
/* Steps */
.wpxh-flow { display: flex; align-items: center; gap: 0; list-style: none; margin: 0; padding: 12px 16px; border-radius: 16px; background: rgba(255, 255, 255, .05); border: 1px solid rgba(255, 255, 255, .1); }
.wpxh-flow__item { display: flex; align-items: center; }
.wpxh-flow__item > a, .wpxh-flow__item { gap: 10px; color: var(--subtle); font-size: 14px; font-weight: 600; }
.wpxh-flow__item > a { display: flex; align-items: center; color: inherit; }
.wpxh-flow__item + .wpxh-flow__item::before { content: ""; width: clamp(24px, 3vw, 44px); height: 2px; margin: 0 12px; border-radius: 2px; background: rgba(255, 255, 255, .14); }
.wpxh-flow__item.is-done + .wpxh-flow__item::before { background: linear-gradient(90deg, var(--blue-light), rgba(96, 165, 250, .4)); }
.wpxh-flow__dot { width: 30px; height: 30px; flex: none; display: grid; place-items: center; border-radius: 50%; border: 1.5px solid rgba(255, 255, 255, .22); font: 700 13px/1 var(--mono); color: var(--subtle); }
.wpxh-flow__item.is-current { color: var(--white); }
.wpxh-flow__item.is-current .wpxh-flow__dot { border: 0; background: var(--grad-brand); color: var(--white); box-shadow: 0 0 0 4px rgba(37, 99, 235, .25); }
.wpxh-flow__item.is-done { color: #E2E8F0; }
.wpxh-flow__item.is-done .wpxh-flow__dot { border-color: rgba(96, 165, 250, .5); background: rgba(37, 99, 235, .2); color: var(--blue-300); }
.wpxh-flow__item.is-done a:hover { color: var(--white); }

/* Trust row (below the cart / checkout) */
.wpxh-trustrow { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 28px !important; }
.wpxh-trustrow > .wpxh-trustrow__item { position: relative; margin: 0; padding: 16px 18px 16px 62px; border-radius: 14px; border: 1px solid var(--line); background: var(--white); font-size: 13.5px; line-height: 1.55; color: var(--muted); }
.wpxh-trustrow__item strong { display: block; margin-bottom: 2px; font-size: 14.5px; color: var(--navy); }
.wpxh-trustrow__item::before { content: ""; position: absolute; left: 16px; top: 16px; width: 34px; height: 34px; border-radius: 10px; background: var(--grad-tint); border: 1px solid var(--blue-100); }
.wpxh-trustrow__item::after { content: ""; position: absolute; left: 25px; top: 25px; width: 16px; height: 16px; background: var(--blue); -webkit-mask: var(--wpxh-trust-icon) center / contain no-repeat; mask: var(--wpxh-trust-icon) center / contain no-repeat; }
.wpxh-trustrow__item.is-secure { --wpxh-trust-icon: url(../icons/lock.svg); }
.wpxh-trustrow__item.is-download { --wpxh-trust-icon: url(../icons/download.svg); }
.wpxh-trustrow__item.is-licence { --wpxh-trust-icon: url(../icons/badge-check.svg); }
.wpxh-main--cart:has(.wp-block-woocommerce-cart:not(.is-loading) .wpxh-emptycart) .wpxh-trustrow { display: none; }

/* =====================================================================
 * Cart with products
 * =================================================================== */
.wpxh-main--cart .wpxh-wcbody, .wpxh-main--checkout .wpxh-wcbody { padding-top: clamp(28px, 4vw, 44px); }
.wpxh-main--cart .wc-block-cart { align-items: start; }
/* Items: one card */
.wpxh-main--cart table.wc-block-cart-items { display: block; width: 100%; margin: 0; border: 1px solid var(--line); border-radius: 20px; background: var(--white); box-shadow: var(--shadow-card); overflow: hidden; }
.wpxh-main--cart table.wc-block-cart-items > * { display: block; }
.wpxh-main--cart .wc-block-cart-items tr.wc-block-cart-items__header { display: none !important; }
.wpxh-main--cart .wc-block-cart-items tr.wc-block-cart-items__header--unused { display: grid; grid-template-columns: 84px minmax(0, 1fr) auto; gap: 18px; padding: 14px 24px; margin: 0; border: 0; border-bottom: 1px solid var(--surface-2); background: var(--surface); }
.wpxh-main--cart .wc-block-cart-items__header th { padding: 0 !important; border: 0 !important; background: none !important; font: 500 11.5px var(--mono) !important; text-transform: uppercase; letter-spacing: .05em; color: var(--muted) !important; text-align: left; }
.wpxh-main--cart .wc-block-cart-items__header th.wc-block-cart-items__header-image span { display: none; }
.wpxh-main--cart .wc-block-cart-items__header th:first-child:not(.wc-block-cart-items__header-image) { grid-column: 1 / 3; }
.wpxh-main--cart .wc-block-cart-items__header-total { text-align: right !important; }
.wpxh-main--cart .wc-block-cart-items tr.wc-block-cart-items__row { display: grid !important; grid-template-columns: 132px minmax(0, 1fr) auto; gap: 18px; align-items: start; margin: 0 !important; padding: 22px 24px !important; border: 0 !important; border-bottom: 1px solid var(--surface-2) !important; border-radius: 0 !important; background: none !important; box-shadow: none !important; }
.wpxh-main--cart .wc-block-cart-items tr.wc-block-cart-items__row:last-child { border-bottom: 0 !important; }
.wpxh-main--cart .wc-block-cart-items__row > td { display: block; padding: 0 !important; border: 0 !important; background: none !important; }
.wpxh-main--cart .wc-block-cart-item__image img { display: block; width: 132px !important; height: 88px !important; max-width: none; object-fit: cover; border-radius: 12px; border: 1px solid var(--blue-100); background: var(--blue-50); box-shadow: 0 8px 18px -14px rgba(37, 99, 235, .6); }
.wpxh-main--cart .wc-block-cart-item__wrap { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.wpxh-main--cart .wc-block-cart-item__product .wc-block-components-product-name { font-size: 16.5px !important; font-weight: 650 !important; line-height: 1.35; letter-spacing: -.015em; color: var(--navy) !important; text-decoration: none; }
.wpxh-main--cart .wc-block-cart-item__product .wc-block-components-product-name:hover { color: var(--blue) !important; }
.wpxh-main--cart .wc-block-cart-item__prices { font-size: 13.5px; color: var(--muted); }
.wpxh-main--cart .wc-block-cart-item__prices .wc-block-components-product-price { color: var(--muted) !important; font-weight: 500; }
.wpxh-main--cart .wc-block-cart-item__prices .wc-block-components-product-price::after { content: " each"; }
.wpxh-main--cart .wc-block-components-product-metadata { margin: 0 !important; font-size: 13.5px; line-height: 1.55; color: var(--muted); max-width: 520px; }
/* Cart items show name, price and quantity only; the product description is not repeated here.
   (Variation / add-on details in the same metadata block stay visible.) */
.wpxh-main--cart .wc-block-cart-item__product .wc-block-components-product-metadata__description { display: none !important; }
.wpxh-main--cart .wc-block-cart-item__quantity { display: flex; align-items: center; gap: 12px; margin-top: 6px; }
.wpxh-main--cart .wc-block-components-quantity-selector { display: inline-flex; align-items: center; height: 38px; margin: 0 !important; border: 1px solid var(--line-strong) !important; border-radius: 11px !important; background: var(--white); overflow: hidden; }
.wpxh-main--cart .wc-block-components-quantity-selector::after { display: none !important; }
.wpxh-main--cart .wc-block-components-quantity-selector__button { width: 36px !important; min-width: 36px; height: 100% !important; border: 0 !important; background: var(--white) !important; color: var(--ink) !important; font-size: 18px !important; opacity: 1 !important; transition: background-color .15s, color .15s; }
.wpxh-main--cart .wc-block-components-quantity-selector__button:hover:not(:disabled) { background: var(--blue-50) !important; color: var(--blue) !important; }
.wpxh-main--cart .wc-block-components-quantity-selector__button:disabled { color: var(--line-strong) !important; }
.wpxh-main--cart .wc-block-components-quantity-selector__input { width: 44px !important; min-width: 0; height: 100% !important; border: 0 !important; border-left: 1px solid var(--surface-2) !important; border-right: 1px solid var(--surface-2) !important; border-radius: 0 !important; box-shadow: none !important; font: 600 14.5px var(--sans) !important; color: var(--navy) !important; text-align: center; }
.wpxh-main--cart .wc-block-cart-item__remove-link { display: inline-flex !important; align-items: center; justify-content: center; gap: 6px; width: 38px !important; height: 38px !important; padding: 0 !important; transform: none !important; border: 1px solid transparent !important; border-radius: 10px; background: none !important; font: 600 13px var(--sans) !important; color: var(--muted) !important; text-decoration: none !important; cursor: pointer; transition: color .15s, background-color .15s, border-color .15s; }
.wpxh-main--cart .wc-block-cart-item__remove-link svg { width: 18px !important; height: 18px !important; flex: none; fill: currentColor; }
.wpxh-main--cart .wc-block-cart-item__remove-link:hover { color: #B91C1C !important; background: #FEF2F2 !important; border-color: #FECACA !important; }
.wpxh-main--cart .wc-block-cart-item__total { text-align: right; }
.wpxh-main--cart .wc-block-cart-item__total .wc-block-components-product-price, .wpxh-main--cart .wc-block-cart-item__total .wc-block-formatted-money-amount { font-size: 17px !important; font-weight: 700 !important; letter-spacing: -.01em; color: var(--navy) !important; white-space: nowrap; }
.wpxh-main--cart .wc-block-components-sale-badge { margin-top: 6px; }

/* Summary: one sticky card that also holds the Proceed button */
.wpxh-main--cart .wc-block-cart__sidebar {
	position: sticky; top: calc(var(--header-h) + 20px); padding: 22px !important; border: 1px solid var(--line); border-radius: 20px; background: var(--white); box-shadow: var(--shadow-card);
}
.wpxh-main--cart .wc-block-cart__sidebar .wp-block-woocommerce-cart-order-summary-block { padding: 0 !important; border: 0 !important; background: none !important; box-shadow: none !important; }
.wpxh-main--cart .wc-block-cart__totals-title, .wpxh-main--cart h2.wc-block-cart__totals-title {
	display: flex !important; align-items: center; gap: 10px; margin: 0 0 14px !important; padding: 0 0 14px !important; border-bottom: 1px solid var(--surface-2) !important;
	font: 700 18px/1.3 var(--sans) !important; letter-spacing: -.02em !important; text-transform: none !important; color: var(--navy) !important; background: none !important;
}
.wpxh-main--cart .wc-block-cart__totals-title::before { content: ""; position: static; width: 20px; height: 20px; flex: none; background: var(--blue); -webkit-mask: url(../icons/receipt.svg) center / contain no-repeat; mask: url(../icons/receipt.svg) center / contain no-repeat; border: 0; border-radius: 0; }
.wpxh-main--cart .wc-block-cart__totals-title::after { display: none !important; content: none; }
.wpxh-main--cart .wc-block-cart__sidebar .wc-block-components-totals-wrapper { padding: 14px 0 !important; border: 0 !important; border-top: 1px solid var(--surface-2) !important; }
.wpxh-main--cart .wc-block-cart__sidebar .wc-block-components-totals-wrapper:first-of-type, .wpxh-main--cart .wc-block-cart__sidebar .wp-block-woocommerce-cart-order-summary-coupon-form-block { padding-top: 0 !important; border-top: 0 !important; }
.wpxh-main--cart .wc-block-cart__sidebar .wc-block-components-totals-wrapper:empty { display: none; }
.wpxh-main--cart .wc-block-cart__sidebar .wc-block-components-totals-wrapper::before, .wpxh-main--cart .wc-block-cart__sidebar .wc-block-components-totals-wrapper::after { display: none !important; }
.wpxh-main--cart .wc-block-components-totals-footer-item { padding: 0 !important; margin: 0; border: 0 !important; }
.wpxh-main--cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__label { font-size: 16px !important; font-weight: 700 !important; color: var(--navy) !important; }
.wpxh-main--cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value, .wpxh-main--cart .wc-block-components-totals-footer-item .wc-block-formatted-money-amount { font-size: 24px !important; font-weight: 750 !important; letter-spacing: -.02em; color: var(--navy) !important; }
.wpxh-main--cart .wp-block-woocommerce-proceed-to-checkout-block { margin: 16px 0 0 !important; padding: 0 !important; }
.wpxh-main--cart .wc-block-cart__submit-button, .wpxh-main--cart .wc-block-cart__submit-container .wc-block-components-button {
	display: flex !important; width: 100%; min-height: 54px !important; align-items: center; justify-content: center; gap: 10px; border-radius: 14px !important; border: 0 !important;
	background: var(--blue) !important; color: var(--white) !important; font: 650 16px/1 var(--sans) !important; letter-spacing: -.01em; box-shadow: 0 16px 32px -18px rgba(37, 99, 235, .9) !important; transition: background-color .2s, transform .2s !important;
}
.wpxh-main--cart .wc-block-cart__submit-button:hover { background: var(--blue-dark) !important; transform: translateY(-1px); }
.wpxh-main--cart .wc-block-cart__submit-button .wc-block-components-button__text::before { content: ""; display: inline-block; width: 16px; height: 16px; margin-right: 8px; vertical-align: -2px; background: currentColor; -webkit-mask: url(../icons/lock.svg) center / contain no-repeat; mask: url(../icons/lock.svg) center / contain no-repeat; }
.wpxh-main--cart .wc-block-cart__submit-container::after { content: "Secure checkout · instant download"; display: block; margin-top: 10px; text-align: center; font-size: 12.5px; color: var(--muted); }
.wpxh-main--cart .wp-block-woocommerce-cart-accepted-payment-methods-block { margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--line); }

@media (max-width: 900px) {
	.wpxh-commhero__inner { grid-template-columns: minmax(0, 1fr); }
	.wpxh-flow { justify-self: start; }
	.wpxh-trustrow { grid-template-columns: minmax(0, 1fr); }
	.wpxh-main--cart .wc-block-cart__sidebar { position: static; }
}
@media (max-width: 600px) {
	.wpxh-flow { padding: 10px 12px; width: 100%; justify-content: space-between; }
	.wpxh-flow__item + .wpxh-flow__item::before { flex: 1; width: auto; margin: 0 8px; }
	.wpxh-flow__item:not(:last-child) { flex: 1; }
	.wpxh-flow__item + .wpxh-flow__item:not(:last-child)::before { order: -1; }
	.wpxh-flow__label { font-size: 13px; }
	.wpxh-main--cart .wc-block-cart-items tr.wc-block-cart-items__header { display: none; }
	.wpxh-main--cart .wc-block-cart-items tr.wc-block-cart-items__row { grid-template-columns: 96px minmax(0, 1fr); padding: 18px !important; gap: 14px; }
	.wpxh-main--cart .wc-block-cart-item__image img { width: 96px !important; height: 64px !important; border-radius: 10px; }
	/* Two columns: WooCommerce pins product (cols 2-4) and total to row 1, so place both explicitly. */
	.wpxh-main--cart table.wc-block-cart-items tr.wc-block-cart-items__row > td.wc-block-cart-item__product { grid-column: 2; grid-row: 1; }
	.wpxh-main--cart table.wc-block-cart-items tr.wc-block-cart-items__row > td.wc-block-cart-item__total { grid-column: 2; grid-row: 2; text-align: left; }
	.wpxh-main--cart .wc-block-cart__sidebar { padding: 18px !important; }
}

/* =====================================================================
 * Checkout polish
 * =================================================================== */
/* Numbered steps: badge inside each section title */
.wpxh-main--checkout .wc-block-components-checkout-step--with-step-number .wc-block-components-checkout-step__title { display: flex !important; align-items: center; gap: 12px; }
.wpxh-main--checkout .wc-block-components-checkout-step--with-step-number .wc-block-components-checkout-step__title::before {
	content: counter(checkout-step) !important; position: static !important; left: auto !important; top: auto !important; flex: none;
	display: inline-grid; place-items: center; width: 30px !important; height: 30px; border-radius: 50%;
	background: var(--grad-brand); color: var(--white) !important; font: 700 13px/1 var(--mono) !important; box-shadow: 0 6px 14px -8px rgba(37, 99, 235, .8);
}
.wpxh-main--checkout .wc-block-components-checkout-step--with-step-number .wc-block-components-checkout-step__content::before { display: none !important; }
.wpxh-main--checkout .wc-block-components-checkout-step--with-step-number::after { display: none !important; }
/* Order summary: the sidebar is the card; no second border inside it */
.wpxh-main--checkout .wp-block-woocommerce-checkout-order-summary-block { border: 0 !important; border-radius: 0 !important; padding: 0 !important; box-shadow: none !important; background: none !important; }
.wpxh-main--checkout .wc-block-checkout__sidebar { border-radius: 20px !important; box-shadow: var(--shadow-card); }
.wpxh-main--checkout :is(.wc-block-checkout__sidebar, .checkout-order-summary-block-fill) .wc-block-components-totals-wrapper { margin: 0 !important; padding: 14px 0 !important; border: 0 !important; border-top: 1px solid var(--surface-2) !important; }
.wpxh-main--checkout :is(.wc-block-checkout__sidebar, .checkout-order-summary-block-fill) .wc-block-components-totals-item__description:empty, .wpxh-main--cart .wc-block-cart__sidebar .wc-block-components-totals-item__description:empty { display: none; }
.wpxh-main--cart .wc-block-cart__sidebar .wc-block-components-totals-wrapper { margin: 0 !important; }
.wpxh-main--checkout :is(.wc-block-checkout__sidebar, .checkout-order-summary-block-fill) .wc-block-components-totals-wrapper:empty { display: none; }
.wpxh-main--checkout :is(.wc-block-checkout__sidebar, .checkout-order-summary-block-fill) .wc-block-components-totals-wrapper::before, .wpxh-main--checkout :is(.wc-block-checkout__sidebar, .checkout-order-summary-block-fill) .wc-block-components-totals-wrapper::after { display: none !important; }
.wpxh-main--checkout :is(.wc-block-checkout__sidebar, .checkout-order-summary-block-fill) .wc-block-components-totals-item { padding: 4px 0 !important; }
.wpxh-main--checkout :is(.wc-block-checkout__sidebar, .checkout-order-summary-block-fill) .wc-block-components-totals-footer-item { padding: 6px 0 0 !important; margin: 0 !important; border: 0 !important; }
.wpxh-main--checkout :is(.wc-block-checkout__sidebar, .checkout-order-summary-block-fill) .wc-block-components-totals-footer-item .wc-block-components-totals-item__label { font-size: 16px !important; font-weight: 700 !important; color: var(--navy) !important; }
.wpxh-main--checkout :is(.wc-block-checkout__sidebar, .checkout-order-summary-block-fill) .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
.wpxh-main--checkout :is(.wc-block-checkout__sidebar, .checkout-order-summary-block-fill) .wc-block-components-totals-footer-item .wc-block-formatted-money-amount { font-size: 24px !important; font-weight: 750 !important; letter-spacing: -.02em; color: var(--navy) !important; }
/* Phone layout: WooCommerce repeats the summary above "Place order" (.checkout-order-summary-block-fill); same card as the steps. */
.wpxh-main--checkout .checkout-order-summary-block-fill { margin-bottom: 16px; padding: 4px 16px 16px !important; background: #fff !important; border: 1px solid var(--wpx-border) !important; border-radius: var(--wpx-radius-xl) !important; box-shadow: var(--wpx-shadow-sm); }
.wpxh-main--checkout .checkout-order-summary-block-fill .wp-block-woocommerce-checkout-order-summary-totals-block { padding-bottom: 0 !important; }
/* Place order: full-width button, "Return to cart" underneath */
.wpxh-main--checkout .wc-block-checkout__actions_row { display: flex !important; flex-direction: column-reverse; align-items: stretch; gap: 14px; }
.wpxh-main--checkout .wc-block-components-checkout-place-order-button {
	width: 100% !important; min-height: 56px !important; border: 0 !important; border-radius: 14px !important; background: var(--blue) !important; color: var(--white) !important;
	font: 650 16.5px/1 var(--sans) !important; box-shadow: 0 16px 32px -18px rgba(37, 99, 235, .9) !important; transition: background-color .2s, transform .2s !important;
}
.wpxh-main--checkout .wc-block-components-checkout-place-order-button:hover:not(:disabled) { background: var(--blue-dark) !important; transform: translateY(-1px); }
.wpxh-main--checkout .wc-block-components-checkout-place-order-button__text::before { content: ""; display: inline-block; width: 17px; height: 17px; margin-right: 9px; vertical-align: -3px; background: currentColor; -webkit-mask: url(../icons/lock.svg) center / contain no-repeat; mask: url(../icons/lock.svg) center / contain no-repeat; }
.wpxh-main--checkout .wc-block-components-checkout-return-to-cart-button { display: inline-flex !important; align-items: center; justify-content: center; gap: 6px; align-self: center; white-space: nowrap; font-size: 14px; font-weight: 600; color: var(--muted) !important; text-decoration: none; }
.wpxh-main--checkout .wc-block-components-checkout-return-to-cart-button:hover { color: var(--blue) !important; }
.wpxh-main--checkout .wc-block-components-checkout-return-to-cart-button svg { width: 18px; height: 18px; position: static !important; fill: currentColor; }
.wpxh-main--checkout .wc-block-checkout__terms { font-size: 13.5px; color: var(--muted); }

/* Checkout summary: card-style thumbnail (3:2); quantity badge bottom-right
   so it does not cover the PREMIUM / FREE flag. */
.wpxh-main--checkout .wc-block-components-order-summary-item__image { flex: 0 0 84px !important; width: 84px !important; height: 56px !important; padding: 0; overflow: visible; border: 0; background: none; }
.wpxh-main--checkout .wc-block-components-order-summary-item__image img { width: 84px !important; height: 56px !important; max-width: none; max-height: none; object-fit: cover; border-radius: 10px; border: 1px solid var(--blue-100); background: var(--blue-50); }
.wpxh-main--checkout .wc-block-components-order-summary .wc-block-components-order-summary-item__quantity { top: auto !important; bottom: -6px !important; right: -6px !important; }
@media (max-width: 767px) {
	.wpxh-main--checkout .wc-block-components-order-summary-item__image { flex-basis: 72px !important; width: 72px !important; height: 48px !important; }
	.wpxh-main--checkout .wc-block-components-order-summary-item__image img { width: 72px !important; height: 48px !important; }
}

/* ── Order received (inc/order-received.php) ─────────────────────────────── */
.wpxh-commhero--received .wpxh-commhero__count { font-family: var(--mono); letter-spacing: 0; }
.wpxh-commhero--received.is-success .wpxh-commhero__eyebrow { background: rgba(16, 185, 129, .14); border-color: rgba(52, 211, 153, .35); color: #6EE7B7; }
.wpxh-commhero--received.is-error .wpxh-commhero__eyebrow { background: rgba(239, 68, 68, .14); border-color: rgba(248, 113, 113, .35); color: #FCA5A5; }
.wpxh-commhero--received.is-waiting .wpxh-commhero__eyebrow { background: rgba(245, 158, 11, .14); border-color: rgba(251, 191, 36, .35); color: #FCD34D; }
.wpxh-commhero--received.is-success .wpxh-flow__item.is-done:last-child .wpxh-flow__dot { border: 0; background: linear-gradient(135deg, #10B981, #06B6D4); color: var(--white); box-shadow: 0 0 0 4px rgba(16, 185, 129, .22); }
.wpxh-commhero--received.is-error .wpxh-flow__item.is-current .wpxh-flow__dot { background: #EF4444; box-shadow: 0 0 0 4px rgba(239, 68, 68, .25); }
.wpxh-commhero--received .wpxh-commhero__intro { max-width: 620px; }

.wpxh-received { max-width: 1200px; margin: 0 auto; padding: clamp(24px, 4vw, 40px) var(--gutter) clamp(48px, 6vw, 80px); }
.wpxh-received__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, 360px); gap: clamp(18px, 2.4vw, 28px); align-items: start; }
.wpxh-received__main, .wpxh-received__side { display: flex; flex-direction: column; gap: clamp(18px, 2.4vw, 24px); min-width: 0; }
.wpxh-received__side { position: sticky; top: calc(var(--header-h) + 20px); }
.wpxh-received__card { background: var(--white); border: 1px solid var(--line); border-radius: var(--r-xl); padding: clamp(18px, 2.4vw, 26px); box-shadow: var(--shadow-card); }
.wpxh-received__card h2 { margin: 0 0 14px; font-size: 18px; font-weight: 650; letter-spacing: -.02em; color: var(--navy); }
.wpxh-received__cardhead { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.wpxh-received__cardhead h2 { margin: 0; }
.wpxh-received__ready { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; color: #047857; }
.wpxh-received__ready svg { color: #10B981; }
.wpxh-received__hook { margin-bottom: 18px; }

/* Plugins + licence keys */
.wpxh-received__plugins { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.wpxh-received__plugin { border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; }
.wpxh-received__plugintop { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 16px 18px; }
.wpxh-received__pluginicon { width: 46px; height: 46px; border-radius: 12px; display: grid; place-items: center; color: var(--white); background: var(--grad-brand); box-shadow: var(--shadow-lift); }
.wpxh-received__pluginname { min-width: 0; }
.wpxh-received__pluginname h3 { margin: 0; font-size: 16px; font-weight: 650; letter-spacing: -.015em; line-height: 1.3; }
.wpxh-received__pluginname h3 a { color: var(--navy); text-decoration: none; }
.wpxh-received__pluginname h3 a:hover { color: var(--blue); }
.wpxh-received__pluginname span { display: block; margin-top: 3px; font: 500 12.5px var(--mono); color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wpxh-received__dl { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.wpxh-received__key { padding: 14px 18px 16px; background: var(--grad-tint); border-top: 1px solid var(--blue-100); }
.wpxh-received__keyhead { display: flex; align-items: center; justify-content: space-between; gap: 8px 14px; flex-wrap: wrap; margin-bottom: 8px; }
.wpxh-received__keyhead span { display: inline-flex; align-items: center; gap: 6px; font: 600 11.5px/1.2 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--blue-dark); }
.wpxh-received__keyhead small { font-size: 12.5px; color: var(--ink); }
.wpxh-received__keyrow { display: flex; align-items: stretch; gap: 8px; }
.wpxh-received__keyrow code { flex: 1; min-width: 0; display: flex; align-items: center; padding: 10px 14px; border-radius: var(--r-md); background: var(--white); border: 1px solid var(--blue-200); font: 600 14.5px/1.3 var(--mono); letter-spacing: .02em; color: var(--navy); overflow-wrap: anywhere; user-select: all; }
.wpxh-received__copy { flex: none; padding: 0 16px; border-radius: var(--r-md); border: 1px solid var(--blue); background: var(--white); color: var(--blue); font: 600 14px var(--sans); cursor: pointer; transition: background-color .15s, color .15s; }
.wpxh-received__copy:hover { background: var(--blue); color: var(--white); }
.wpxh-received__copy.is-copied { border-color: #10B981; background: #10B981; color: var(--white); }
.wpxh-received__copy:focus-visible { outline: 3px solid var(--blue-300); outline-offset: 2px; }

/* Get started */
.wpxh-received__steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.wpxh-received__steps li { display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 14px; align-items: start; }
.wpxh-received__steps li > span { width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--navy); color: var(--white); font: 600 14px var(--mono); }
.wpxh-received__steps strong { display: block; font-size: 15px; color: var(--navy); margin-top: 6px; }
.wpxh-received__steps p { margin: 3px 0 0; font-size: 14.5px; line-height: 1.6; color: var(--muted); }

/* Pending / failed / gateway output */
.wpxh-received__pending { display: flex; gap: 14px; align-items: flex-start; background: #FFFBEB; border-color: #FDE68A; }
.wpxh-received__pending > span { width: 44px; height: 44px; flex: none; border-radius: 12px; display: grid; place-items: center; background: #FEF3C7; color: #B45309; }
.wpxh-received__pending h2 { margin-bottom: 6px; }
.wpxh-received__pending p, .wpxh-received__retry p { margin: 0; color: var(--ink); line-height: 1.6; }
.wpxh-received__retry { border-color: #FECACA; background: #FEF2F2; }
.wpxh-received__actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px !important; }
.wpxh-received__extra > *:first-child { margin-top: 0; }
.wpxh-received__extra > *:last-child { margin-bottom: 0; }
.wpxh-received__locked { max-width: 640px; margin: 0 auto; text-align: center; }

/* Summary sidebar */
.wpxh-received__status { display: inline-flex; padding: 3px 10px; border-radius: 999px; font-size: 12.5px; font-weight: 600; background: var(--surface-2); color: var(--ink); }
.wpxh-received__status.is-success { background: #ECFDF5; color: #047857; }
.wpxh-received__status.is-error { background: #FEF2F2; color: #B91C1C; }
.wpxh-received__status.is-waiting { background: #FFFBEB; color: #B45309; }
.wpxh-received__facts { margin: 0 0 16px; display: grid; gap: 8px; }
.wpxh-received__facts div, .wpxh-received__totals div { display: flex; justify-content: space-between; gap: 12px; }
.wpxh-received__facts dt, .wpxh-received__totals dt { color: var(--muted); font-size: 14px; }
.wpxh-received__facts dd, .wpxh-received__totals dd { margin: 0; text-align: right; font-size: 14px; font-weight: 500; color: var(--navy); overflow-wrap: anywhere; min-width: 0; }
.wpxh-received__items { list-style: none; margin: 0; padding: 14px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); display: grid; gap: 10px; }
.wpxh-received__items li { display: flex; justify-content: space-between; gap: 12px; font-size: 14.5px; color: var(--navy); }
.wpxh-received__items em { font-style: normal; color: var(--muted); }
.wpxh-received__items strong { white-space: nowrap; font-weight: 600; }
.wpxh-received__totals { margin: 14px 0 0; display: grid; gap: 8px; }
.wpxh-received__totals .is-total { margin-top: 4px; padding-top: 12px; border-top: 1px dashed var(--line-strong); }
.wpxh-received__totals .is-total dt { color: var(--navy); font-weight: 650; font-size: 15px; }
.wpxh-received__totals .is-total dd { font-size: 20px; font-weight: 750; letter-spacing: -.02em; }
.wpxh-received__totals small { display: block; font-size: 12px; color: var(--muted); font-weight: 400; }
.wpxh-received__billing { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
.wpxh-received__billing h3 { margin: 0 0 6px; font: 600 11.5px/1.2 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.wpxh-received__billing address { font-style: normal; font-size: 14px; line-height: 1.6; color: var(--ink); }
.wpxh-received__help { background: var(--navy); border-color: var(--navy); color: #CBD5E1; }
.wpxh-received__help h2 { color: var(--white); margin-bottom: 8px; }
.wpxh-received__help p { margin: 0 0 12px; font-size: 14px; line-height: 1.6; }
.wpxh-received__mail { display: inline-flex; align-items: center; gap: 8px; color: var(--cyan-300); font-weight: 600; text-decoration: none; overflow-wrap: anywhere; }
.wpxh-received__mail:hover { color: var(--white); }
.wpxh-received__links { list-style: none; margin: 14px 0 0; padding: 12px 0 0; border-top: 1px solid rgba(255, 255, 255, .12); display: grid; gap: 6px; }
.wpxh-received__links a { color: #E2E8F0; font-size: 14px; text-decoration: none; }
.wpxh-received__links a::after { content: " →"; color: var(--subtle); }
.wpxh-received__links a:hover { color: var(--white); }

@media (max-width: 960px) {
	.wpxh-received__grid { grid-template-columns: minmax(0, 1fr); }
	.wpxh-received__side { position: static; }
}
@media (max-width: 600px) {
	.wpxh-received__plugintop { grid-template-columns: auto minmax(0, 1fr); }
	.wpxh-received__dl { grid-column: 1 / -1; justify-content: stretch; }
	.wpxh-received__dl .wpxh-btn { flex: 1; justify-content: center; }
	.wpxh-received__keyrow { flex-direction: column; }
	.wpxh-received__copy { min-height: 44px; }
}
