/**
 * Cart — municipal ledger (aligned with order wizard + checkout summary).
 * Signature: navy totals masthead + ember line rail + ember checkout CTA.
 */

body.wf-page-cart {
	--cart-ink: var(--color-text-primary, #121820);
	--cart-muted: var(--color-text-secondary, #5a6573);
	--cart-navy: var(--color-bg-brand-strong, #0a2f4a);
	--cart-blue: var(--color-bg-brand, #0b4f8a);
	--cart-soft: var(--color-bg-brand-soft, #e8f1f8);
	--cart-ember: var(--color-action-primary, #c62828);
	--cart-ember-hover: var(--color-action-primary-hover, #b91c1c);
	--cart-stage: #071018;
	--cart-surface: var(--color-bg-surface, #ffffff);
	--cart-border: rgba(11, 79, 138, 0.14);
	background-color: var(--color-bg-page, #f3f6f9);
	background-image:
		radial-gradient(ellipse 120% 80% at 50% -12%, rgba(11, 79, 138, 0.11) 0%, transparent 58%),
		radial-gradient(ellipse 90% 60% at 100% 40%, rgba(232, 241, 248, 0.85) 0%, transparent 55%);
	background-attachment: fixed;
	color: var(--cart-ink);
	font-family: var(--font-sans, "Source Sans 3", "Segoe UI", sans-serif);
}

body.wf-page-cart .wd-page-content {
	max-width: none;
	padding-inline: 0;
}

body.wf-page-cart .wd-content-area.site-content {
	--wd-col-lg: 12 !important;
	max-width: none;
	width: 100%;
}

body.wf-page-cart .page-title,
body.wf-page-cart .wd-page-title,
body.wf-page-cart .wd-shop-title,
body.wf-page-cart .cart-empty.wd-empty-block-title,
body.wf-page-cart .wd-empty-block-text,
body.wf-page-cart .return-to-shop {
	display: none !important;
}

/* Top bar matches order wizard / checkout stage (#071018). */
body.wf-page-cart .whb-header .whb-row,
body.wf-page-cart .whb-header .whb-general-header,
body.wf-page-cart .whb-header .whb-sticky-row,
body.wf-page-cart .whb-header.whb-overcontent:not(.whb-sticked) .whb-row.whb-without-bg,
body.wf-page-cart .whb-header.whb-overcontent:not(.whb-sticked) .whb-row.whb-color-light.whb-without-bg,
body.wf-page-cart .whb-header.whb-sticked .whb-row,
body.wf-page-cart .whb-header.whb-sticked .whb-general-header {
	--wd-header-el-color: #ffffff;
	--wd-header-el-color-hover: rgba(255, 255, 255, 0.78);
	background:
		linear-gradient(90deg, transparent 0%, var(--color-accent-ember, #c62828) 50%, transparent 100%) bottom / 100% 1px no-repeat,
		#071018 !important;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
	color: #ffffff;
}

body.wf-page-cart .whb-header .wd-nav.wd-nav-main > li > a,
body.wf-page-cart .whb-header .wd-header-nav a,
body.wf-page-cart .whb-header .wd-tools-element > a,
body.wf-page-cart .whb-header .wd-tools-element .wd-tools-text,
body.wf-page-cart .whb-header .wd-header-cart > a,
body.wf-page-cart .whb-header .wd-header-cart .wd-cart-subtotal,
body.wf-page-cart .whb-header .wd-header-cart .amount,
body.wf-page-cart .whb-header .wd-header-cart .woocommerce-Price-amount,
body.wf-page-cart .whb-header .site-logo,
body.wf-page-cart .whb-header .wd-logo-wrap {
	color: #ffffff !important;
}

body.wf-page-cart .whb-header .wd-nav.wd-nav-main > li > a:hover,
body.wf-page-cart .whb-header .wd-header-nav a:hover,
body.wf-page-cart .whb-header .wd-tools-element > a:hover {
	color: rgba(255, 255, 255, 0.78) !important;
}

body.wf-page-cart .whb-header .wd-tools-element .wd-tools-icon,
body.wf-page-cart .whb-header .wd-tools-element .wd-tools-icon:before,
body.wf-page-cart .whb-header .wd-header-search .wd-tools-icon {
	color: #ffffff !important;
}

body.wf-page-cart .whb-header .wd-tools-element svg,
body.wf-page-cart .whb-header .wd-tools-element svg path,
body.wf-page-cart .whb-header .wd-tools-element svg use {
	fill: currentColor;
	color: #ffffff;
}

/* ─── Shell ───────────────────────────────────────────────────────────────── */

/* Page title spacer is hidden — clear the overcontent header like checkout. */
.wf-cart-summary {
	padding-bottom: var(--space-6, 2rem);
	padding-top: calc(var(--wd-header-general-h, 4.75rem) + var(--space-5, 1.5rem));
}

body.admin-bar.wf-page-cart .wf-cart-summary {
	padding-top: calc(
		var(--wd-header-general-h, 4.75rem) + var(--wd-admin-bar-h, 32px) + var(--space-5, 1.5rem)
	);
}

.wf-cart-heading {
	margin-bottom: var(--space-6, 2rem);
	max-width: 40rem;
}

.wf-cart-heading__eyebrow {
	color: var(--cart-blue);
	font-family: var(--font-mono, "IBM Plex Mono", monospace);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	margin: 0 0 0.4rem;
	text-transform: uppercase;
}

.wf-cart-summary__title {
	color: var(--cart-navy);
	font-size: clamp(1.75rem, 3vw, 2.25rem);
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: 1.2;
	margin: 0 0 var(--space-3, 0.75rem);
}

.wf-cart-summary__intro {
	color: var(--cart-muted);
	font-size: var(--type-body-size, 1rem);
	line-height: var(--type-body-line, 1.65);
	margin: 0;
	max-width: 40rem;
}

.wf-cart-summary__layout[data-state="empty"] .wf-cart-form,
.wf-cart-summary__layout[data-state="empty"] .wf-cart-collaterals {
	display: none;
}

.wf-cart-summary__empty[data-state="empty"] {
	background: var(--cart-surface);
	border: 1px solid var(--cart-border);
	border-radius: var(--radius-md, 10px);
	margin-top: var(--space-2, 0.5rem);
	padding: var(--space-5, 1.5rem);
}

.wf-cart-summary__empty p {
	margin: 0;
}

@media (min-width: 992px) {
	.wf-cart-summary__layout[data-state="default"] {
		align-items: start;
		display: grid;
		gap: var(--space-6, 2rem);
		grid-template-columns: minmax(0, 1.55fr) minmax(300px, 0.9fr);
	}

	.wf-cart-summary__layout[data-state="default"] .wf-cart-form {
		grid-column: 1;
		grid-row: 2;
	}

	.wf-cart-summary__layout[data-state="default"] .wf-cart-collaterals {
		grid-column: 2;
		grid-row: 2;
		position: sticky;
		top: calc(var(--wd-header-general-h, 5rem) + var(--wd-admin-bar-h, 0px) + 1rem);
	}

	.wf-cart-heading,
	.wf-cart-summary__empty,
	.wf-page-cart .woocommerce-notices-wrapper {
		grid-column: 1 / -1;
	}
}

/* ─── Line cards (wizard overview language) ───────────────────────────────── */

.wf-cart-summary__lines {
	display: grid;
	gap: var(--space-4, 1rem);
	list-style: none;
	margin: 0 0 var(--space-4, 1rem);
	padding: 0;
}

.wf-cart-line {
	background: var(--cart-surface);
	border: 1px solid var(--cart-border);
	border-radius: var(--radius-lg, 12px);
	box-shadow: var(--shadow-0, 0 1px 0 rgba(11, 79, 138, 0.04));
	overflow: hidden;
	padding: 1.25rem 1.35rem 1.25rem 1.45rem;
	position: relative;
}

.wf-cart-line::before {
	background: linear-gradient(180deg, var(--cart-ember) 0%, var(--cart-blue) 100%);
	content: "";
	inset: 0 auto 0 0;
	position: absolute;
	width: 3px;
}

.wf-cart-line__header {
	align-items: flex-start;
	display: flex;
	gap: var(--space-4, 1rem);
	justify-content: space-between;
	margin-bottom: var(--space-4, 1rem);
	padding-bottom: var(--space-4, 1rem);
	border-bottom: 1px solid rgba(11, 79, 138, 0.1);
}

.wf-cart-line__kicker {
	color: var(--cart-muted);
	font-size: 0.6875rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	margin: 0 0 0.35rem;
	text-transform: uppercase;
}

.wf-cart-line__title {
	color: var(--cart-navy);
	font-size: 1.25rem;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.25;
	margin: 0;
}

.wf-cart-line__title a {
	color: inherit;
	text-decoration: none;
}

.wf-cart-line__title a:hover,
.wf-cart-line__title a:focus-visible {
	color: var(--cart-blue);
}

.wf-cart-line__price {
	color: var(--cart-navy);
	flex-shrink: 0;
	font-size: 1.25rem;
	font-variant-numeric: tabular-nums;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.2;
	text-align: right;
}

.wf-cart-line__price .amount,
.wf-cart-line__price .woocommerce-Price-amount {
	color: inherit;
	font-size: inherit;
	font-weight: inherit;
}

.wf-cart-line__ledger {
	display: grid;
	gap: 0.55rem;
	margin: 0 0 var(--space-4, 1rem);
}

.wf-cart-line__row {
	align-items: start;
	display: grid;
	gap: 0.75rem;
	grid-template-columns: minmax(6.5rem, 32%) minmax(0, 1fr);
}

.wf-cart-line__row dt {
	color: var(--cart-muted);
	font-size: 0.875rem;
	font-weight: 500;
	line-height: 1.4;
	margin: 0;
}

.wf-cart-line__row dd {
	color: var(--cart-ink);
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.4;
	margin: 0;
	overflow-wrap: anywhere;
	text-align: right;
}

.wf-cart-line .variation,
.wf-cart-line .wc-item-meta {
	border-top: 1px solid rgba(11, 79, 138, 0.08);
	font-size: 0.875rem;
	margin: 0 0 var(--space-4, 1rem);
	padding-top: var(--space-3, 0.75rem);
}

.wf-cart-line__controls {
	align-items: center;
	border-top: 1px solid rgba(11, 79, 138, 0.1);
	display: flex;
	flex-wrap: wrap;
	gap: var(--space-3, 0.75rem);
	justify-content: space-between;
	padding-top: var(--space-4, 1rem);
}

.wf-cart-line__quantity {
	align-items: center;
	display: inline-flex;
	gap: var(--space-2, 0.5rem);
}

.wf-cart-line__qty-label {
	color: var(--cart-muted);
	font-size: 0.8125rem;
	font-weight: 600;
}

.wf-cart-line__quantity .quantity {
	align-items: center;
	display: inline-flex;
	gap: 0.15rem;
	margin: 0;
}

.wf-cart-line__quantity .qty,
.wf-cart-line__quantity .minus,
.wf-cart-line__quantity .plus {
	border-color: var(--cart-border) !important;
	min-height: 42px;
}

.wf-cart-line__quantity .qty {
	font-variant-numeric: tabular-nums;
	min-width: 3rem;
	text-align: center;
}

.wf-cart-line__remove {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
	color: var(--cart-muted) !important;
	font-size: 0.875rem;
	font-weight: 600;
	padding: 0.35rem 0.15rem !important;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.wf-cart-line__remove:hover,
.wf-cart-line__remove:focus-visible {
	color: var(--cart-ember) !important;
}

.wf-cart-line__remove:focus-visible {
	outline: var(--focus-outline, 2px solid var(--color-focus-ring));
	outline-offset: 2px;
}

.wf-cart-summary__actions {
	margin-top: var(--space-2, 0.5rem);
}

.wf-cart-update {
	background: transparent !important;
	border: 1px solid var(--cart-border) !important;
	border-radius: var(--radius-sm, 6px) !important;
	box-shadow: none !important;
	color: var(--cart-navy) !important;
	font-size: 0.875rem;
	font-weight: 600;
	min-height: 42px;
	padding-inline: 1rem;
	text-transform: none;
}

.wf-cart-update:hover,
.wf-cart-update:focus-visible {
	border-color: var(--cart-blue) !important;
	color: var(--cart-blue) !important;
}

/* ─── Totals panel (wizard masthead) ──────────────────────────────────────── */

.wf-cart-totals {
	background: var(--cart-surface);
	border: 1px solid var(--cart-border);
	border-radius: var(--radius-lg, 12px);
	box-shadow: var(--shadow-1, 0 4px 16px rgba(11, 79, 138, 0.08));
	overflow: hidden;
	padding: 0;
}

.wf-cart-totals__masthead {
	align-items: center;
	background: var(--cart-stage);
	color: #fff;
	display: flex;
	gap: var(--space-3, 0.75rem);
	justify-content: space-between;
	padding: 0.95rem 1.15rem;
}

.wf-cart-totals__masthead-label {
	font-family: var(--font-mono, "IBM Plex Mono", monospace);
	font-size: 0.75rem;
	font-weight: 500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.wf-cart-totals__masthead-total {
	font-size: 1.35rem;
	font-variant-numeric: tabular-nums;
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1;
}

.wf-cart-totals__masthead-total .amount,
.wf-cart-totals__masthead-total .woocommerce-Price-amount {
	color: inherit;
	font-size: inherit;
	font-weight: inherit;
}

.wf-cart-totals__body {
	padding: 1.2rem 1.25rem 1.35rem;
}

.wf-cart-totals__title {
	color: var(--cart-navy);
	font-size: 1.05rem;
	font-weight: 700;
	letter-spacing: -0.015em;
	margin: 0 0 0.4rem;
}

.wf-cart-totals__hint {
	color: var(--cart-muted);
	font-size: 0.875rem;
	line-height: 1.45;
	margin: 0 0 1.15rem;
}

.wf-cart-totals__actions {
	display: grid;
	gap: 0.75rem;
}

.wf-cart-totals__checkout {
	align-items: center;
	background: var(--cart-ember) !important;
	background-color: var(--cart-ember) !important;
	border: 0 !important;
	border-radius: var(--radius-sm, 6px) !important;
	box-shadow: none !important;
	color: #fff !important;
	display: inline-flex;
	font-size: 1rem;
	font-weight: 700;
	justify-content: center;
	min-height: 48px;
	padding: 0.75rem 1.15rem;
	text-align: center;
	text-decoration: none !important;
	text-transform: none;
}

.wf-cart-totals__checkout:hover,
.wf-cart-totals__checkout:focus-visible {
	background: var(--cart-ember-hover) !important;
	background-color: var(--cart-ember-hover) !important;
	color: #fff !important;
}

.wf-cart-totals__checkout:focus-visible {
	outline: var(--focus-outline, 2px solid var(--color-focus-ring));
	outline-offset: 2px;
}

.wf-cart-totals__continue {
	color: var(--cart-blue);
	font-size: 0.9375rem;
	font-weight: 600;
	text-align: center;
	text-decoration: underline;
	text-underline-offset: 0.15em;
}

.wf-cart-totals__continue:hover,
.wf-cart-totals__continue:focus-visible {
	color: var(--cart-navy);
}

/* ─── Empty CTA band ──────────────────────────────────────────────────────── */

.wf-cart-cta-wrap {
	padding-block: 0 var(--space-7, 3rem);
}

.wf-cart-cta-band .wf-cart-cta-band__checkout-disabled {
	opacity: 0.55;
	pointer-events: none;
}

.wf-page-cart .cart-collaterals .cross-sells {
	display: none;
}

.wf-page-cart .woocommerce-notices-wrapper {
	margin-bottom: var(--space-4, 1rem);
}

@media (max-width: 991.98px) {
	.wf-cart-line__header {
		flex-direction: column;
		gap: var(--space-3, 0.75rem);
	}

	.wf-cart-line__price {
		text-align: left;
	}

	.wf-cart-collaterals {
		margin-top: var(--space-5, 1.5rem);
	}
}
