/*
 * FabEngine Cart Theme — table layout matching the FabEngine workshop console.
 */

@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700;800&display=swap');

/* ── Variables ────────────────────────────────────────────────────────────── */

:root {
	--fe-font:         'Poppins', -apple-system, BlinkMacSystemFont, sans-serif;
	--fe-primary:      #1346af;
	--fe-primary-light:#e8eef9;
	--fe-bg:           #f0f4fb;
	--fe-card-bg:      #ffffff;
	--fe-card-border:  #e2e8f0;
	--fe-card-radius:  14px;
	--fe-card-shadow:  0 1px 4px rgba(19,70,175,.06), 0 4px 20px rgba(19,70,175,.07);
	--fe-value-color:  #0f172a;
	--fe-muted:        #64748b;
	--fe-accent:       #1346af;
	--fe-accent-hover: #0f39a0;
	--fe-spec-border:  #f1f5f9;
}

body.woocommerce-cart,
body.woocommerce-checkout,
body.woocommerce-order-received,
body.fe-quote-page {
	background: var(--fe-bg) !important;
	font-family: var(--fe-font) !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   Two-column grid layout
   ═══════════════════════════════════════════════════════════════════════════ */

.fe-cart-layout {
	/* !important on display + grid-template-columns because some host
	   themes (Hello Elementor, Storefront, OceanWP) apply flex/inline
	   rules to `.fe-cart-layout`-class wrappers that defeat our layout. */
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) 280px !important;
	gap: 20px;
	align-items: start;
	width: 100%;
	max-width: 100%;
	box-sizing: border-box;
	font-family: var(--fe-font);
}

/* Every direct child of the layout must stay inside its grid lane. */
.fe-cart-layout > * {
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
}

/* The .fe-cart-main div is the LEFT grid lane on both cart and checkout. */
.fe-cart-layout > .fe-cart-main {
	display: block !important;
	grid-column: 1 / span 1 !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	box-sizing: border-box;
	float: none !important;
	margin: 0 !important;
}

/* The right lane (sidebar). */
.fe-cart-layout > aside,
.fe-cart-layout > .fe-cart-sidebar-wrap {
	grid-column: 2 / span 1 !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	box-sizing: border-box !important;
	float: none !important;
	margin: 0 !important;
}

/* The WooCommerce cart form lives INSIDE .fe-cart-main and on some themes
   gets `display: inline-block; width: auto; max-width: 680px;` applied to
   `<form>` or `.woocommerce form`, which collapses the lane and produces
   the huge middle gap before the sidebar. Force it to span the lane. */
.fe-cart-main > form,
.fe-cart-main > .woocommerce-cart-form,
.fe-cart-main > .fe-cart-form,
.fe-cart-layout form.woocommerce-cart-form,
.fe-cart-layout form.fe-cart-form,
.fe-cart-layout form.checkout {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	box-sizing: border-box !important;
	float: none !important;
	margin: 0 !important;
}

/* The cart card / table wrapper inside the form must fill the form. */
.fe-cart-layout .fe-cart-table-wrap {
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box;
}

/* ─── Checkout: kill WooCommerce's default `#customer_details { width:47%; float:left }`
   so the billing card actually fills the .fe-cart-main lane on the checkout page.
   WC also injects a `.col2-set` and side-by-side `.col-1` / `.col-2` divs that
   want to live as floated columns; override them to stack full-width inside
   our custom layout. */
.fe-cart-layout #customer_details,
.fe-cart-main  #customer_details,
.fe-cart-layout #order_review_heading,
.fe-cart-layout #order_review,
.fe-cart-layout .col2-set,
.fe-cart-layout .col2-set .col-1,
.fe-cart-layout .col2-set .col-2,
.fe-cart-layout .woocommerce-billing-fields,
.fe-cart-layout .woocommerce-shipping-fields,
.fe-cart-layout .woocommerce-additional-fields {
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0 !important;
	float: none !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
	box-sizing: border-box;
}

/* Clear any sibling floats left over from WC's two-column layout so the
   following block (our sidebar trigger) doesn't collide with #customer_details. */
.fe-cart-layout #customer_details::after {
	content: "";
	display: table;
	clear: both;
}

/* Stack the two lanes at narrower viewports so the sidebar never gets
   clipped on Astra's default 1240px content container or similar. */
@media (max-width: 1200px) {
	.fe-cart-layout {
		grid-template-columns: 1fr !important;
	}
	.fe-cart-layout > form,
	.fe-cart-layout > .fe-cart-form,
	.fe-cart-layout > .woocommerce-cart-form,
	.fe-cart-layout > .fe-cart-main,
	.fe-cart-layout > aside,
	.fe-cart-layout > .fe-cart-sidebar-wrap {
		grid-column: 1 / -1 !important;
	}
}

/* Force sidebar column to stay inside its grid lane regardless of Astra aside styles */
.fe-cart-layout > aside,
.fe-cart-layout > .fe-cart-sidebar-wrap {
	min-width: 0 !important;
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
	overflow: hidden !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   Cart header + stats bar
   ═══════════════════════════════════════════════════════════════════════════ */

.fe-cart-hdr {
	grid-column: 1 / -1;
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 14px;
	background: var(--fe-card-bg);
	border: 1px solid var(--fe-card-border);
	border-radius: var(--fe-card-radius);
	box-shadow: var(--fe-card-shadow);
	padding: 20px 24px;
}

.fe-cart-hdr__title {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 22px;
	font-weight: 800;
	color: var(--fe-value-color);
	margin: 0;
	line-height: 1;
	font-family: var(--fe-font);
}

.fe-cart-hdr__title svg { opacity: .55; flex-shrink: 0; }

.fe-cart-hdr__badge {
	background: var(--fe-primary);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	padding: 3px 8px;
	border-radius: 20px;
	line-height: 1.4;
}

/* Stats bar */
.fe-cart-stats {
	display: flex;
	gap: 28px;
}

.fe-stat {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
}

.fe-stat__val {
	font-size: 20px;
	font-weight: 800;
	color: var(--fe-value-color);
	line-height: 1;
	font-family: var(--fe-font);
}

.fe-stat__val .woocommerce-Price-amount { font-size: inherit; font-weight: inherit; color: inherit; }

.fe-stat__lbl {
	font-size: 8.5px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--fe-muted);
	margin-top: 3px;
}

.fe-stat--total .fe-stat__val { color: var(--fe-primary); }

/* ═══════════════════════════════════════════════════════════════════════════
   Cart table
   ═══════════════════════════════════════════════════════════════════════════ */

.fe-cart-table-wrap {
	background: var(--fe-card-bg);
	border: 1px solid var(--fe-card-border);
	border-radius: var(--fe-card-radius);
	box-shadow: var(--fe-card-shadow);
	/* Horizontal scroll inside the card if the table is wider than the
	   column — better than clipping the rightmost cells silently. */
	overflow-x: auto;
	overflow-y: hidden;
	max-width: 100%;
	margin-bottom: 0;
}

.fe-cart-table {
	/* Inset on all four sides so the table doesn't run flush to the
	   card's rounded corners. */
	width: calc(100% - 32px);
	margin: 12px 16px;
	border-collapse: collapse;
	font-family: var(--fe-font);
}

/* On very narrow viewports the inset eats too much room — drop it. */
@media (max-width: 700px) {
	.fe-cart-table {
		width: 100%;
		margin: 0;
	}
}

/* Header */
.fe-cart-table thead tr {
	background: #f8fafc;
	border-bottom: 1.5px solid var(--fe-card-border);
}

.fe-cart-table thead th {
	padding: 11px 14px;
	font-size: 9.5px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--fe-muted);
	white-space: nowrap;
	text-align: left;
	border: none;
}

/* Rows */
.fe-cart-table tbody tr { border-bottom: 1px solid #f1f5f9; transition: background .12s; }
.fe-cart-table tbody tr:last-child { border-bottom: none; }
.fe-cart-table tbody tr:hover { background: #fafbff; }

.fe-cart-table td {
	padding: 18px 16px;
	vertical-align: middle;
	font-size: 13px;
	color: var(--fe-value-color);
	border: none;
}

/* ── Column: # ────────────────────────────────────────────────────────────── */
/* Bumped from 38px → 56px so two-digit row numbers ("01", "10") don't wrap
   vertically when the table cell has its default padding. */
.fe-th-num  { width: 56px; min-width: 56px; }
.fe-col-num {
	width: 56px;
	min-width: 56px;
	padding-left: 12px !important;
	padding-right: 12px !important;
	font-size: 12px;
	font-weight: 600;
	color: var(--fe-muted);
	text-align: center;
	white-space: nowrap;
}

/* ── Column: Preview ──────────────────────────────────────────────────────── */

.fe-th-prev  { width: 78px; }
.fe-col-prev { width: 78px; }

.fe-row-thumb {
	width: 64px;
	height: 64px;
	object-fit: contain;
	border-radius: 8px;
	background: var(--fe-primary-light);
	display: block;
}

.fe-row-thumb--placeholder {
	width: 64px;
	height: 64px;
	border-radius: 8px;
	background: var(--fe-primary-light);
	display: flex;
	align-items: center;
	justify-content: center;
	color: #b8cdf0;
}

/* ── Column: Spec ─────────────────────────────────────────────────────────── */
/* Widened three times: 160 → 260 → 340 → 380. Each round freed up space
   from other columns (Infill, Unit Price, Total, Qty) and pushed it here. */
.fe-col-spec { min-width: 280px; max-width: 480px; width: 380px; }

.fe-row-name {
	display: block;
	font-weight: 700;
	font-size: 13px;
	margin-bottom: 7px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 360px;
	color: var(--fe-value-color);
}

.fe-row-name a { color: var(--fe-value-color); text-decoration: none; }
.fe-row-name a:hover { color: var(--fe-primary); }

.fe-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 5px;
}

.fe-badge {
	font-size: 10px;
	font-weight: 600;
	padding: 2px 9px;
	border-radius: 100px;
	white-space: nowrap;
	font-family: var(--fe-font);
}

.fe-badge--mat  { background: #dbeafe; color: #1e40af; }
.fe-badge--qual { background: #e0f2fe; color: #0369a1; }
.fe-badge--wt   { background: #f0fdf4; color: #15803d; border: 1px solid #bbf7d0; }

/* ── Column: Color ────────────────────────────────────────────────────────── */

.fe-th-color  { white-space: nowrap; }
.fe-col-color {
	white-space: nowrap;
	font-size: 12px;
	font-weight: 500;
}

.fe-color-dot-wrap { display: flex; align-items: center; gap: 7px; }

.fe-color-dot {
	display: inline-block;
	width: 15px;
	height: 15px;
	border-radius: 50%;
	border: 2px solid rgba(0,0,0,.12);
	flex-shrink: 0;
	vertical-align: middle;
	margin-right: 6px;
}

/* ── Column: Infill ───────────────────────────────────────────────────────── */
/* Tightened — only ever displays "15%" so the column doesn't need 100+ px. */
.fe-th-infill  { width: 64px; min-width: 64px; }
.fe-col-infill {
	width: 64px;
	min-width: 64px;
	font-size: 12px;
	font-weight: 600;
	color: var(--fe-muted);
	white-space: nowrap;
	text-align: center;
}

/* ── Column: Qty ──────────────────────────────────────────────────────────── */
/* Capped column width + slimmer stepper so the freed-up space goes to
   File · Spec without breaking the input affordance. */
.fe-th-qty  { width: 120px; min-width: 120px; }
.fe-col-qty { width: 120px; min-width: 120px; }

.fe-col-qty .quantity { display: flex; align-items: center; justify-content: center; }

.fe-col-qty .qty {
	width: 42px;
	height: 30px;
	border: 1.5px solid var(--fe-card-border, #cbd5e1);
	border-radius: 7px;
	text-align: center;
	padding: 0 2px;
	font-size: 13px;
	font-weight: 600;
	color: var(--fe-value-color, #0f172a) !important;
	background: #f8faff;
	font-family: var(--fe-font, inherit);
	transition: border-color .15s;
	-moz-appearance: textfield;
	appearance: textfield;
}
.fe-col-qty .qty::-webkit-inner-spin-button,
.fe-col-qty .qty::-webkit-outer-spin-button {
	-webkit-appearance: none;
	appearance: none;
	margin: 0;
}

.fe-col-qty .qty:focus {
	border-color: var(--fe-primary, #1346af);
	outline: none;
	box-shadow: 0 0 0 3px rgba(19,70,175,.1);
}

.fe-qty-fixed { font-size: 13px; font-weight: 600; color: var(--fe-value-color); }

/* ── Column: Unit Price ───────────────────────────────────────────────────── */
/* Cap width so the column doesn't steal space from File · Spec. */
.fe-th-price  { width: 96px; min-width: 96px; }
.fe-col-price {
	width: 96px;
	min-width: 96px;
	font-size: 13px;
	font-weight: 600;
	color: var(--fe-muted);
	white-space: nowrap;
	text-align: right;
}

.fe-col-price .woocommerce-Price-amount { color: var(--fe-muted); }

/* ── Column: Total ────────────────────────────────────────────────────────── */
/* Same width-cap treatment as Unit Price. */
.fe-th-total  { width: 110px; min-width: 110px; }
.fe-col-total {
	width: 110px;
	min-width: 110px;
	font-size: 15px;
	font-weight: 800;
	color: var(--fe-accent);
	white-space: nowrap;
	text-align: right;
}

.fe-col-total .woocommerce-Price-amount { color: var(--fe-accent); }

/* ── Column: Delete ───────────────────────────────────────────────────────── */
/* Adds breathing room between the trash button and the right edge of the card. */
.fe-th-del  { width: 64px; min-width: 64px; padding-right: 18px !important; }
.fe-col-del { width: 64px; min-width: 64px; padding-right: 18px !important; text-align: center; }

.fe-row-del {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 32px;
	height: 32px;
	border-radius: 7px;
	background: #f1f5f9;
	color: #94a3b8;
	text-decoration: none;
	transition: background .15s, color .15s;
}

.fe-row-del:hover {
	background: #fee2e2 !important;
	color: #dc2626 !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   Cart actions (coupon + update)
   ═══════════════════════════════════════════════════════════════════════════ */

.fe-cart-actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
	padding: 14px 0 0;
}

.fe-cart-coupon {
	display: flex;
	align-items: center;
	gap: 8px;
}

.fe-coupon-input {
	border: 1.5px solid var(--fe-card-border) !important;
	border-radius: 8px !important;
	padding: 9px 14px !important;
	font-size: 13px !important;
	font-family: var(--fe-font) !important;
	background: var(--fe-card-bg) !important;
	color: var(--fe-value-color) !important;
	transition: border-color .15s !important;
}

.fe-coupon-input:focus {
	border-color: var(--fe-primary) !important;
	outline: none !important;
	box-shadow: 0 0 0 3px rgba(19,70,175,.1) !important;
}

.fe-btn-coupon,
.fe-btn-update-cart {
	background: var(--fe-primary) !important;
	color: #fff !important;
	border: none !important;
	border-radius: 8px !important;
	padding: 9px 18px !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	font-family: var(--fe-font) !important;
	cursor: pointer !important;
	letter-spacing: .01em !important;
	transition: background .15s !important;
}

.fe-btn-coupon:hover,
.fe-btn-update-cart:hover { background: var(--fe-accent-hover) !important; }

.fe-btn-update-cart:disabled,
.fe-btn-update-cart[disabled] {
	background: #cbd5e1 !important;
	color: #94a3b8 !important;
	cursor: default !important;
}

.fe-cart-actions__right { display: flex; align-items: center; gap: 8px; }

/* ═══════════════════════════════════════════════════════════════════════════
   QTY stepper
   ═══════════════════════════════════════════════════════════════════════════ */

.fe-stepper {
	display: inline-flex !important;
	align-items: center !important;
	border: 1.5px solid var(--fe-card-border) !important;
	border-radius: 8px !important;
	overflow: hidden !important;
	background: #fff !important;
	height: 34px !important;
	flex-shrink: 0 !important;
}

.fe-stepper__btn {
	width: 32px;
	height: 32px;
	border: none;
	background: #f8fafc;
	color: var(--fe-value-color);
	font-size: 16px;
	cursor: pointer;
	line-height: 1;
	transition: background .12s;
	flex-shrink: 0;
}

.fe-stepper__btn:hover { background: var(--fe-primary-light); }

.fe-stepper__input {
	width: 38px !important;
	height: 32px !important;
	border: none !important;
	border-left: 1.5px solid var(--fe-card-border) !important;
	border-right: 1.5px solid var(--fe-card-border) !important;
	text-align: center !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	font-family: var(--fe-font) !important;
	color: var(--fe-value-color) !important;
	background: #fff !important;
	padding: 0 !important;
	margin: 0 !important;
	box-shadow: none !important;
	outline: none !important;
	-moz-appearance: textfield !important;
	box-sizing: content-box !important;
}

.fe-stepper__input::-webkit-outer-spin-button,
.fe-stepper__input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.fe-stepper__input:focus { outline: none; }

/* ═══════════════════════════════════════════════════════════════════════════
   Sidebar — custom card
   ═══════════════════════════════════════════════════════════════════════════ */

.fe-cart-sidebar-wrap {
	position: sticky;
	top: 20px;
	width: 100% !important;
	min-width: 0 !important;
	box-sizing: border-box !important;
	overflow: hidden !important;
}

.fe-sidebar-card {
	background: var(--fe-card-bg);
	border: 1px solid var(--fe-card-border);
	border-radius: var(--fe-card-radius);
	box-shadow: var(--fe-card-shadow);
	overflow: hidden;
	font-family: var(--fe-font);
	width: 100% !important;
	box-sizing: border-box !important;
}

.fe-sidebar-hdr {
	display: flex;
	align-items: center;
	justify-content: space-between;
	background: #0f172a;
	color: #f8fafc;
	padding: 16px 20px;
}

.fe-sidebar-hdr__title { font-size: 12px; font-weight: 700; letter-spacing: .1em; }

.fe-sidebar-hdr__badge {
	font-size: 11px;
	font-weight: 700;
	background: var(--fe-primary);
	color: #fff;
	padding: 3px 9px;
	border-radius: 20px;
}

/* Breakdown rows */
.fe-breakdown { padding: 4px 0; }

.fe-breakdown__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 11px 20px;
	border-bottom: 1px solid var(--fe-spec-border);
}

.fe-breakdown__row:last-child { border-bottom: none; }

.fe-breakdown__lbl { font-size: 13px; color: var(--fe-muted); }

.fe-breakdown__val { font-size: 13px; font-weight: 600; color: var(--fe-value-color); }
.fe-breakdown__val .woocommerce-Price-amount { color: inherit; font-weight: inherit; }

.fe-breakdown__row--discount .fe-breakdown__lbl,
.fe-breakdown__row--discount .fe-breakdown__val { color: #16a34a; }

.fe-sidebar-sep { border: none; border-top: 1px solid var(--fe-spec-border); margin: 0; }

/* Promo code */
.fe-promo { padding: 16px 20px; }

.fe-promo__label {
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .1em;
	color: var(--fe-muted);
	margin-bottom: 10px;
	text-transform: uppercase;
}

.fe-promo__form {
	display: flex;
	gap: 8px;
	/* min-width:0 + flex-shrink so the Apply button can't push the input
	   past the sidebar edge (which caused the previously cropped APPLY). */
	min-width: 0;
	max-width: 100%;
}
.fe-promo__form > * { min-width: 0; flex-shrink: 1; }

.fe-promo__input {
	flex: 1;
	border: 1.5px solid var(--fe-card-border) !important;
	border-radius: 8px !important;
	padding: 9px 12px !important;
	font-size: 13px !important;
	font-family: var(--fe-font) !important;
	color: var(--fe-value-color) !important;
	background: #fff !important;
	transition: border-color .15s !important;
}

.fe-promo__input:focus { border-color: var(--fe-primary) !important; outline: none !important; }

.fe-promo__btn {
	background: #0f172a !important;
	color: #fff !important;
	border: none !important;
	border-radius: 8px !important;
	padding: 9px 16px !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	font-family: var(--fe-font) !important;
	letter-spacing: .05em !important;
	cursor: pointer !important;
	white-space: nowrap !important;
	transition: background .15s !important;
}

.fe-promo__btn:hover { background: #1e293b !important; }

.fe-promo__active { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.fe-promo__active-lbl { font-size: 11px; color: var(--fe-muted); }

.fe-promo__chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 10px;
	font-weight: 700;
	background: var(--fe-primary-light);
	color: var(--fe-primary);
	padding: 3px 4px 3px 10px;
	border-radius: 20px;
	letter-spacing: .05em;
}
.fe-promo__chip-remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: rgba(0,0,0,.06);
	color: var(--fe-primary);
	font-size: 14px;
	line-height: 1;
	text-decoration: none !important;
	transition: background .12s, color .12s;
}
.fe-promo__chip-remove:hover,
.fe-promo__chip-remove:focus {
	background: #ef4444;
	color: #fff !important;
}

/* Sidebar total */
.fe-sidebar-total {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	padding: 16px 20px;
}

.fe-sidebar-total__lbl {
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--fe-value-color);
}

.fe-sidebar-total__val {
	font-size: 22px;
	font-weight: 800;
	color: var(--fe-value-color);
	font-family: var(--fe-font);
	letter-spacing: -.02em;
}

.fe-sidebar-total__val .woocommerce-Price-amount { font-size: inherit; font-weight: inherit; color: inherit; }

/* Checkout + quote buttons */
.fe-checkout-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	background: #0f172a;
	color: #fff !important;
	border-radius: 10px;
	font-weight: 700;
	font-size: 14px;
	font-family: var(--fe-font);
	letter-spacing: .04em;
	padding: 14px 24px;
	text-decoration: none;
	transition: background .15s;
}

.fe-checkout-btn:hover { background: #1e293b; color: #fff !important; }

.fe-quote-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: calc(100% - 40px);
	box-sizing: border-box;
	margin: 0 20px 20px;
	border: 1.5px solid var(--fe-card-border);
	border-radius: 10px;
	font-weight: 600;
	font-size: 13px;
	font-family: var(--fe-font);
	letter-spacing: .02em;
	padding: 12px 24px;
	color: var(--fe-value-color);
	text-decoration: none;
	background: none;
	cursor: pointer;
	transition: border-color .15s, color .15s;
}

.fe-quote-btn:hover { border-color: var(--fe-primary); color: var(--fe-primary); }

/* ═══════════════════════════════════════════════════════════════════════════
   Checkout — section cards (billing / shipping / notes)
   ═══════════════════════════════════════════════════════════════════════════ */

.fe-checkout-section {
	background: var(--fe-card-bg);
	border: 1px solid var(--fe-card-border);
	border-radius: var(--fe-card-radius);
	box-shadow: var(--fe-card-shadow);
	overflow: hidden;
	margin-bottom: 16px;
	font-family: var(--fe-font);
}

.fe-checkout-section__hdr {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 12px 20px;
	background: #f8fafc;
	border-bottom: 1px solid var(--fe-card-border);
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .09em;
	color: var(--fe-value-color);
	font-family: var(--fe-font);
}

.fe-checkout-section__hdr svg { opacity: .5; flex-shrink: 0; }

.fe-checkout-section__body { padding: 20px 20px 8px; }

/* Strip WooCommerce's own fieldset/legend chrome inside our cards */
.fe-checkout-section__body fieldset {
	border: none !important;
	padding: 0 !important;
	margin: 0 !important;
}

.fe-checkout-section__body legend,
.fe-checkout-section__body .woocommerce-billing-fields > h3,
.fe-checkout-section__body .woocommerce-shipping-fields > h3 {
	display: none !important;
}

/* Two-column grid for billing/shipping field wrappers */
.fe-checkout-section__body .woocommerce-billing-fields__field-wrapper,
.fe-checkout-section__body .woocommerce-shipping-fields__field-wrapper {
	display: grid;
	grid-template-columns: 1fr 1fr;
	column-gap: 16px;
}

.fe-checkout-section__body .form-row-wide {
	grid-column: 1 / -1;
}

/* Labels */
.fe-checkout-section__body .form-row label,
.fe-checkout-section__body .woocommerce-form-row label {
	display: block;
	font-size: 10.5px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--fe-muted);
	margin-bottom: 5px;
	font-family: var(--fe-font);
}

.fe-checkout-section__body .required { color: var(--fe-primary); }

/* Inputs inside checkout sections */
.fe-checkout-section__body input.input-text,
.fe-checkout-section__body textarea,
.fe-checkout-section__body select {
	border: 1.5px solid var(--fe-card-border) !important;
	border-radius: 8px !important;
	padding: 10px 14px !important;
	font-size: 13px !important;
	font-family: var(--fe-font) !important;
	color: var(--fe-value-color) !important;
	background: #fff !important;
	width: 100% !important;
	box-sizing: border-box !important;
	transition: border-color .15s, box-shadow .15s !important;
}

.fe-checkout-section__body input.input-text:focus,
.fe-checkout-section__body textarea:focus,
.fe-checkout-section__body select:focus {
	border-color: var(--fe-primary) !important;
	outline: none !important;
	box-shadow: 0 0 0 3px rgba(19,70,175,.1) !important;
}

/* Ship-to-different-address checkbox row */
.fe-checkout-section__body .woocommerce-shipping-fields #ship-to-different-address {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 0 0 12px;
	font-size: 13px;
	font-weight: 600;
	color: var(--fe-value-color);
	font-family: var(--fe-font);
	cursor: pointer;
}

/* Fallback: generic WC form inputs on checkout page (outside our section cards) */
.woocommerce-checkout .woocommerce-billing-fields input.input-text,
.woocommerce-checkout .woocommerce-shipping-fields input.input-text,
.woocommerce-checkout .woocommerce-additional-fields input.input-text,
.woocommerce-checkout .woocommerce-additional-fields textarea,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea {
	border: 1.5px solid var(--fe-card-border) !important;
	border-radius: 8px !important;
	padding: 10px 14px !important;
	font-size: 13px !important;
	font-family: var(--fe-font) !important;
	transition: border-color .15s, box-shadow .15s;
}

.woocommerce-checkout .woocommerce-billing-fields input.input-text:focus,
.woocommerce-checkout .woocommerce-shipping-fields input.input-text:focus,
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus {
	border-color: var(--fe-primary) !important;
	outline: none !important;
	box-shadow: 0 0 0 3px rgba(19,70,175,.1) !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   Checkout — order review sidebar card
   ═══════════════════════════════════════════════════════════════════════════ */

/* Reset WooCommerce's default #order_review card (we're inside .fe-sidebar-card) */
.fe-order-review-card #order_review,
.fe-order-review-card .woocommerce-checkout-review-order {
	background: none !important;
	border: none !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
	margin: 0 !important;
	width: 100% !important;
	min-width: 0 !important;
	max-width: 100% !important;
	float: none !important;
	box-sizing: border-box !important;
}

/* Also override any WC/Astra width on #payment inside the sidebar */
.fe-order-review-card #payment,
.fe-order-review-card .woocommerce-checkout-payment {
	width: 100% !important;
	min-width: 0 !important;
	max-width: 100% !important;
	float: none !important;
	box-sizing: border-box !important;
}

/* Order summary table */
.fe-order-review-card .woocommerce-checkout-review-order-table {
	width: 100%;
	border-collapse: collapse;
	font-family: var(--fe-font);
}

.fe-order-review-card .woocommerce-checkout-review-order-table thead th {
	padding: 10px 20px;
	font-size: 9px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--fe-muted);
	background: #f8fafc;
	border-bottom: 1px solid var(--fe-card-border);
	text-align: left;
}

.fe-order-review-card .woocommerce-checkout-review-order-table thead .product-total {
	text-align: right;
}

.fe-order-review-card .woocommerce-checkout-review-order-table tbody .cart_item td {
	padding: 12px 20px;
	border-bottom: 1px solid var(--fe-spec-border);
	vertical-align: middle;
	font-size: 12px;
	color: var(--fe-value-color);
}

.fe-order-review-card .woocommerce-checkout-review-order-table tbody .product-name {
	font-weight: 600;
}

.fe-order-review-card .woocommerce-checkout-review-order-table tbody .product-total {
	text-align: right;
	font-weight: 700;
	color: var(--fe-accent);
}

.fe-order-review-card .woocommerce-checkout-review-order-table tfoot th,
.fe-order-review-card .woocommerce-checkout-review-order-table tfoot td {
	padding: 10px 20px;
	font-size: 12px;
	border-bottom: 1px solid var(--fe-spec-border);
}

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

.fe-order-review-card .woocommerce-checkout-review-order-table tfoot td {
	font-weight: 600;
	color: var(--fe-value-color);
	text-align: right;
}

.fe-order-review-card .woocommerce-checkout-review-order-table tfoot .order-total th,
.fe-order-review-card .woocommerce-checkout-review-order-table tfoot .order-total td {
	font-size: 15px;
	font-weight: 800;
	border-bottom: none;
	padding-top: 14px;
	padding-bottom: 14px;
}

.fe-order-review-card .woocommerce-checkout-review-order-table tfoot .order-total td {
	color: var(--fe-primary);
}

.fe-order-review-card .woocommerce-checkout-review-order-table .woocommerce-Price-amount {
	color: inherit;
	font-weight: inherit;
}

/* ── Review order: visual item cards ────────────────────────────────────── */

.fe-review-items {
	padding: 8px 0;
	border-bottom: 1px solid var(--fe-card-border);
}

.fe-review-item {
	display: grid;
	grid-template-columns: 56px 1fr auto;
	align-items: center;
	gap: 12px;
	padding: 12px 20px;
	border-bottom: 1px solid var(--fe-spec-border);
}

.fe-review-item:last-child { border-bottom: none; }

.fe-review-item__thumb {
	width: 56px;
	height: 56px;
	border-radius: 8px;
	overflow: hidden;
	background: linear-gradient(145deg, #0b1832, #0d2550);
	flex-shrink: 0;
	display: flex;
	align-items: center;
	justify-content: center;
}

.fe-review-item__thumb canvas,
.fe-review-item__thumb img,
.fe-review-item__thumb--img img {
	width: 56px;
	height: 56px;
	object-fit: contain;
	display: block;
	border-radius: 8px;
}

.fe-review-item__placeholder {
	color: rgba(255,255,255,.4);
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
}

.fe-review-item--std .fe-review-item__thumb {
	background: var(--fe-card-border);
}

.fe-review-item__body {
	min-width: 0;
}

.fe-review-item__name {
	font-size: 12px;
	font-weight: 700;
	color: var(--fe-value-color);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	display: flex;
	align-items: center;
	gap: 6px;
	font-family: var(--fe-font);
}

.fe-review-item__qty {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 18px;
	padding: 0 5px;
	background: var(--fe-primary-light);
	color: var(--fe-primary);
	font-size: 10px;
	font-weight: 800;
	border-radius: 10px;
	flex-shrink: 0;
}

.fe-review-item__specs {
	margin-top: 4px;
	font-size: 11px;
	color: var(--fe-muted);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	font-family: var(--fe-font);
}

.fe-review-item__price {
	font-size: 13px;
	font-weight: 700;
	color: var(--fe-accent);
	white-space: nowrap;
	text-align: right;
	flex-shrink: 0;
	font-family: var(--fe-font);
}

.fe-review-item__price .woocommerce-Price-amount { color: inherit; font-weight: inherit; }

/* ── Review order: coupon ───────────────────────────────────────────────── */

.fe-review-coupon {
	border-bottom: 1px solid var(--fe-card-border);
}

.fe-applied-coupons {
	padding: 8px 20px 0;
}

.fe-applied-coupon {
	display: flex;
	align-items: center;
	gap: 7px;
	padding: 6px 0;
	font-size: 12px;
	border-bottom: 1px dashed var(--fe-spec-border);
}

.fe-applied-coupon:last-child { border-bottom: none; }

.fe-applied-coupon svg { color: #16a34a; flex-shrink: 0; }

.fe-applied-coupon__code {
	font-weight: 700;
	color: var(--fe-value-color);
	letter-spacing: .04em;
	flex: 1;
}

.fe-applied-coupon__discount {
	font-size: 12px;
	font-weight: 600;
	color: #16a34a;
}

.fe-applied-coupon__discount .woocommerce-Price-amount { color: inherit; }

.fe-applied-coupon__remove {
	color: var(--fe-muted);
	text-decoration: none;
	font-size: 15px;
	line-height: 1;
	font-weight: 700;
	padding: 0 2px;
}

.fe-applied-coupon__remove:hover { color: #ef4444; }

.fe-coupon-toggle__btn {
	display: flex;
	align-items: center;
	gap: 7px;
	width: 100%;
	padding: 11px 20px;
	background: none;
	border: none;
	font-family: var(--fe-font);
	font-size: 12px;
	font-weight: 600;
	color: var(--fe-muted);
	cursor: pointer;
	text-align: left;
}

.fe-coupon-toggle__btn:hover { color: var(--fe-primary); }

.fe-coupon-toggle__btn[aria-expanded="true"] .fe-coupon-chevron {
	transform: rotate(180deg);
}

.fe-coupon-chevron { margin-left: auto; transition: transform .2s; }

.fe-coupon-form { padding: 4px 20px 14px; }

.fe-coupon-row {
	display: flex;
	gap: 8px;
}

.fe-coupon-input {
	flex: 1;
	min-width: 0;
	width: 0;
	padding: 8px 12px !important;
	border: 1px solid var(--fe-card-border) !important;
	border-radius: 8px !important;
	font-size: 13px !important;
	font-family: var(--fe-font) !important;
	background: var(--fe-card-bg) !important;
	color: var(--fe-value-color) !important;
	outline: none !important;
	box-sizing: border-box !important;
	box-shadow: none !important;
}

.fe-coupon-input:focus { border-color: var(--fe-primary); box-shadow: 0 0 0 3px var(--fe-primary-light); }

.fe-coupon-apply {
	padding: 8px 16px;
	background: var(--fe-primary);
	color: #fff;
	border: none;
	border-radius: 8px;
	font-size: 12px;
	font-weight: 700;
	font-family: var(--fe-font);
	cursor: pointer;
	white-space: nowrap;
}

.fe-coupon-apply:hover { background: var(--fe-accent-hover); }

/* ── Review order: totals rows ──────────────────────────────────────────── */

.fe-review-totals {
	padding: 8px 0;
	border-bottom: 1px solid var(--fe-card-border);
}

.fe-review-total-row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 7px 20px;
	font-size: 12.5px;
	font-family: var(--fe-font);
}

.fe-review-total-row__lbl { color: var(--fe-muted); }
.fe-review-total-row__val { font-weight: 600; color: var(--fe-value-color); }
.fe-review-total-row__val .woocommerce-Price-amount { color: inherit; font-weight: inherit; }

.fe-review-total-row--order-total {
	padding: 14px 20px;
	border-top: 1px solid var(--fe-card-border);
	margin-top: 4px;
}

.fe-review-total-row--order-total .fe-review-total-row__lbl {
	font-size: 13px;
	font-weight: 700;
	color: var(--fe-value-color);
}

.fe-review-total-row--order-total .fe-review-total-row__val {
	font-size: 17px;
	font-weight: 800;
	color: var(--fe-primary);
}

/* Order-page totals: sits at the bottom of a section, no border below */
.fe-order-totals {
	border-bottom: none;
	border-top: 1px solid var(--fe-card-border);
	margin-top: 8px;
	padding-top: 4px;
}

/* Payment methods — 20px side padding applied at the #payment level so ALL children are inset */
.fe-order-review-card #payment {
	font-family: var(--fe-font);
	border-top: 1px solid var(--fe-card-border);
	padding: 0 20px;
	box-sizing: border-box;
}

.fe-order-review-card #payment .wc_payment_methods {
	list-style: none;
	padding: 14px 0 8px;
	margin: 0;
}

.fe-order-review-card #payment .wc_payment_methods > li {
	padding: 6px 0;
	border-bottom: 1px solid var(--fe-spec-border);
}

.fe-order-review-card #payment .wc_payment_methods > li:last-child { border-bottom: none; }

.fe-order-review-card #payment .wc_payment_methods label {
	font-size: 13px;
	font-weight: 600;
	color: var(--fe-value-color);
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--fe-font);
}

/* Remove WooCommerce's default triangle caret above payment description */
.fe-order-review-card #payment .payment_box::before,
.fe-order-review-card #payment .payment_box::after { display: none !important; }

.fe-order-review-card #payment .payment_box {
	background: #f8fafc;
	border: 1px solid var(--fe-card-border);
	border-radius: 8px;
	padding: 12px 14px;
	margin: 4px 0 8px;
	font-size: 12px;
	color: var(--fe-muted);
	font-family: var(--fe-font);
	line-height: 1.5;
}

.fe-order-review-card #payment .woocommerce-terms-and-conditions-wrapper {
	padding: 8px 0 4px;
	font-size: 11.5px;
	color: var(--fe-muted);
	font-family: var(--fe-font);
	line-height: 1.55;
}

.fe-order-review-card #payment .woocommerce-terms-and-conditions-wrapper a {
	color: var(--fe-primary);
	text-decoration: underline;
}

.fe-order-review-card #payment .place-order {
	padding: 12px 0 20px;
}

/* Place order button fills the #payment content box (already inset 20px each side) */
#place_order {
	width: 100% !important;
	box-sizing: border-box !important;
}

/* Place order button */
#place_order {
	background: linear-gradient(135deg, var(--fe-primary), #1a56d6) !important;
	border: none !important;
	border-radius: 10px !important;
	font-weight: 700 !important;
	font-size: 15px !important;
	font-family: var(--fe-font) !important;
	padding: 15px 24px !important;
	width: 100% !important;
	color: #fff !important;
	letter-spacing: .01em !important;
	box-shadow: 0 4px 16px rgba(19,70,175,.35) !important;
	transition: filter .15s, transform .15s !important;
	cursor: pointer !important;
}

#place_order:hover {
	filter: brightness(1.08) !important;
	transform: translateY(-1px) !important;
}

/* Terms and conditions */
.fe-order-review-card #payment .woocommerce-terms-and-conditions-wrapper {
	padding: 0 20px 12px;
	font-size: 12px;
	color: var(--fe-muted);
	font-family: var(--fe-font);
}

/* ═══════════════════════════════════════════════════════════════════════════
   Checkout — fallback (non-custom-template path)
   ═══════════════════════════════════════════════════════════════════════════ */

.woocommerce-checkout #customer_details,
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout #order_review {
	background: var(--fe-card-bg);
	border: 1px solid var(--fe-card-border);
	border-radius: var(--fe-card-radius);
	box-shadow: var(--fe-card-shadow);
	padding: 24px;
	margin-bottom: 16px;
	font-family: var(--fe-font);
}

/* ═══════════════════════════════════════════════════════════════════════════
   Order confirmation / thank-you
   ═══════════════════════════════════════════════════════════════════════════ */

.woocommerce-order .woocommerce-order-details,
.woocommerce-order .woocommerce-customer-details {
	background: var(--fe-card-bg);
	border: 1px solid var(--fe-card-border);
	border-radius: var(--fe-card-radius);
	box-shadow: var(--fe-card-shadow);
	padding: 24px;
	margin-bottom: 16px;
	font-family: var(--fe-font);
}

.woocommerce-order table.woocommerce-table--order-details td,
.woocommerce-order table.woocommerce-table--order-details th {
	border-color: var(--fe-spec-border) !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   Block Cart (Gutenberg)
   ═══════════════════════════════════════════════════════════════════════════ */

.wc-block-cart-items__row,
.wc-block-cart-item {
	background: var(--fe-card-bg) !important;
	border: 1px solid var(--fe-card-border) !important;
	border-left: 3px solid var(--fe-primary) !important;
	border-radius: var(--fe-card-radius) !important;
	box-shadow: var(--fe-card-shadow) !important;
	margin-bottom: 10px !important;
	padding: 12px 16px !important;
}

.wc-block-cart-item__product-name,
.wc-block-cart-item__product-name a {
	font-weight: 700 !important;
	color: var(--fe-value-color) !important;
	font-size: 13px !important;
	text-decoration: none !important;
	font-family: var(--fe-font) !important;
}

.wc-block-cart-item__total-price-and-sale-price,
.wc-block-cart-item__prices .wc-block-formatted-money-amount {
	font-weight: 800 !important;
	color: var(--fe-primary) !important;
	font-size: 15px !important;
	font-family: var(--fe-font) !important;
}

.wc-block-components-quantity-selector {
	border: 1.5px solid var(--fe-card-border) !important;
	border-radius: 8px !important;
	overflow: hidden !important;
}

.wc-block-components-quantity-selector__button {
	background: #f8faff !important;
	border: none !important;
	color: var(--fe-primary) !important;
	width: 32px !important;
}

.wc-block-cart__submit-button,
.wc-block-cart__submit .wc-block-cart__submit-button {
	background: linear-gradient(135deg, var(--fe-primary), #1a56d6) !important;
	color: #fff !important;
	border: none !important;
	border-radius: 10px !important;
	font-weight: 700 !important;
	font-size: 14px !important;
	font-family: var(--fe-font) !important;
	width: 100% !important;
	padding: 14px !important;
	box-shadow: 0 4px 16px rgba(19,70,175,.3) !important;
}

.wc-block-checkout__actions .wc-block-components-checkout-place-order-button {
	background: linear-gradient(135deg, var(--fe-primary), #1a56d6) !important;
	border: none !important;
	border-radius: 10px !important;
	font-weight: 700 !important;
	font-size: 15px !important;
	font-family: var(--fe-font) !important;
	width: 100% !important;
	padding: 14px !important;
}

.wc-block-checkout__step {
	background: var(--fe-card-bg) !important;
	border: 1px solid var(--fe-card-border) !important;
	border-radius: var(--fe-card-radius) !important;
	box-shadow: var(--fe-card-shadow) !important;
	padding: 24px !important;
	margin-bottom: 12px !important;
}

.wc-block-cart__sidebar,
.wc-block-components-totals-wrapper {
	background: var(--fe-card-bg) !important;
	border: 1px solid var(--fe-card-border) !important;
	border-radius: var(--fe-card-radius) !important;
	box-shadow: var(--fe-card-shadow) !important;
	padding: 20px !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   Hide WordPress / WooCommerce page title on cart page
   ═══════════════════════════════════════════════════════════════════════════ */

body.woocommerce-cart .entry-title,
body.woocommerce-cart h1.page-title,
body.woocommerce-cart .wp-block-post-title,
body.woocommerce-cart .page-header,
body.woocommerce-cart .woocommerce-breadcrumb ~ h1 {
	display: none !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   3D canvas in cart rows
   ═══════════════════════════════════════════════════════════════════════════ */

.fe-cart-canvas {
	display: block;
	border-radius: 8px;
	background: #f1f5f9;
}

/* ═══════════════════════════════════════════════════════════════════════════
   Cart update overlay + spinner
   ═══════════════════════════════════════════════════════════════════════════ */

#fe-cart-overlay {
	display: none;
	position: fixed;
	top: 0; left: 0;
	width: 100%; height: 100%;
	z-index: 9999;
	background: rgba(240, 244, 251, 0.72);
	align-items: center;
	justify-content: center;
	backdrop-filter: blur(2px);
	-webkit-backdrop-filter: blur(2px);
}

#fe-cart-overlay.active { display: flex; }

.fe-cart-spinner {
	width: 52px; height: 52px;
	border: 4px solid var(--fe-primary-light);
	border-top-color: var(--fe-primary);
	border-radius: 50%;
	animation: fe-spin .7s linear infinite;
	box-shadow: 0 4px 24px rgba(19, 70, 175, .15);
}

@keyframes fe-spin { to { transform: rotate(360deg); } }

/* ═══════════════════════════════════════════════════════════════════════════
   Thank-you / Order-confirmation page
   ═══════════════════════════════════════════════════════════════════════════ */

/* Suppress WooCommerce default h1 on the order-received page */
body.woocommerce-order-received .entry-title,
body.woocommerce-order-received h1.page-title { display: none; }

/* Slightly smaller header badge on thank-you */
.fe-thankyou-layout .fe-cart-hdr__badge {
	font-size: 13px;
}

/* Failed-order left column */
.fe-thankyou-failed .fe-checkout-section {
	border-left: 3px solid #ef4444;
}

/* Action buttons on failed payment */
.fe-thankyou-actions {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	margin-top: 18px;
}

/* Order items table */
.fe-order-items-body { padding: 0; }

.fe-order-items-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 13.5px;
}

.fe-order-items-table thead th {
	padding: 10px 14px;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--fe-muted);
	border-bottom: 1px solid var(--fe-card-border);
	background: var(--fe-section-hdr-bg, #f8fafc);
}

.fe-order-items-table tbody td {
	padding: 12px 14px;
	border-bottom: 1px solid var(--fe-card-border);
	vertical-align: middle;
}

.fe-order-items-table tbody tr:last-child td { border-bottom: none; }

.fe-order-items-table tfoot th,
.fe-order-items-table tfoot td {
	padding: 8px 14px;
	font-size: 13px;
	color: var(--fe-muted);
	border-bottom: 1px solid var(--fe-card-border);
}

.fe-order-items-table tfoot tr:last-child th,
.fe-order-items-table tfoot tr:last-child td {
	font-size: 14px;
	font-weight: 700;
	color: var(--fe-value-color);
	border-bottom: none;
}

.fe-order-item-qty,
.fe-order-item-total { text-align: right; }

/* Order status badge */
.fe-order-status-badge {
	display: inline-block;
	padding: 2px 9px;
	border-radius: 20px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.fe-order-status-pending     { background: #fef9c3; color: #854d0e; }
.fe-order-status-processing  { background: #dbeafe; color: #1e40af; }
.fe-order-status-on-hold     { background: #fff7ed; color: #9a3412; }
.fe-order-status-completed   { background: #dcfce7; color: #166534; }
.fe-order-status-cancelled   { background: #fee2e2; color: #991b1b; }
.fe-order-status-refunded    { background: #f3f4f6; color: #374151; }
.fe-order-status-failed      { background: #fee2e2; color: #991b1b; }
.fe-order-status-in-production { background: #ede9fe; color: #4c1d95; }

/* WooCommerce order-received native notice */
.woocommerce-thankyou-order-received {
	font-size: 14px;
	color: var(--fe-value-color);
}

/* ═══════════════════════════════════════════════════════════════════════════
   Responsive
   ═══════════════════════════════════════════════════════════════════════════ */

@media (max-width: 960px) {
	.fe-cart-layout {
		grid-template-columns: 1fr;
	}
	.fe-cart-sidebar-wrap { position: static; }
}

@media (max-width: 700px) {
	.fe-cart-hdr { flex-direction: column; align-items: flex-start; }
	.fe-cart-stats { gap: 16px; flex-wrap: wrap; }

	/* Collapse table: hide color, infill, unit price columns */
	.fe-th-color, .fe-col-color,
	.fe-th-infill, .fe-col-infill,
	.fe-th-price, .fe-col-price { display: none; }

	.fe-cart-table thead th { padding: 9px 8px; font-size: 8.5px; }
	.fe-cart-table td { padding: 10px 8px; }
	.fe-row-name { max-width: 140px; }
	.fe-col-num { display: none; }
	.fe-th-num  { display: none; }

	.fe-promo__form { flex-wrap: wrap; }
	.fe-promo__input { min-width: 100px; }

	/* Billing / shipping fields: single column on phones */
	.fe-checkout-section__body .woocommerce-billing-fields__field-wrapper,
	.fe-checkout-section__body .woocommerce-shipping-fields__field-wrapper { grid-template-columns: 1fr; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   Astra theme resets — hard overrides so theme styles cannot bleed in
   ═══════════════════════════════════════════════════════════════════════════ */

/* Stepper − / + buttons */
.fe-stepper .fe-stepper__btn,
button.fe-stepper__btn {
	all: unset !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 32px !important;
	height: 32px !important;
	padding: 0 !important;
	margin: 0 !important;
	border: none !important;
	border-radius: 0 !important;
	background: #f8fafc !important;
	color: var(--fe-value-color) !important;
	font-size: 18px !important;
	font-weight: 400 !important;
	line-height: 1 !important;
	cursor: pointer !important;
	box-shadow: none !important;
	text-shadow: none !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	flex-shrink: 0 !important;
	box-sizing: border-box !important;
}
.fe-stepper .fe-stepper__btn:hover { background: var(--fe-primary-light) !important; }

/* Delete (trash) link */
a.fe-row-del,
.fe-row-del {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 32px !important;
	height: 32px !important;
	min-width: 32px !important;
	padding: 0 !important;
	margin: 0 !important;
	border-radius: 7px !important;
	background: #f1f5f9 !important;
	color: #94a3b8 !important;
	text-decoration: none !important;
	box-shadow: none !important;
	border: none !important;
	box-sizing: border-box !important;
}
a.fe-row-del:hover, .fe-row-del:hover {
	background: #fee2e2 !important;
	color: #dc2626 !important;
}

/* Checkout button — general hard resets against Astra */
a.fe-checkout-btn,
.fe-checkout-btn {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 8px !important;
	box-sizing: border-box !important;
	padding: 14px 24px !important;
	background: #0f172a !important;
	color: #fff !important;
	border: none !important;
	border-radius: 10px !important;
	font-family: var(--fe-font) !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	letter-spacing: .04em !important;
	text-decoration: none !important;
	text-transform: none !important;
	text-shadow: none !important;
	box-shadow: none !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	cursor: pointer !important;
	transition: background .15s !important;
}
a.fe-checkout-btn:hover, .fe-checkout-btn:hover { background: #1e293b !important; color: #fff !important; }

/* Cart sidebar checkout button — constrained width with side margins */
.fe-sidebar-card a.fe-checkout-btn,
.fe-sidebar-card .fe-checkout-btn {
	width: calc(100% - 40px) !important;
	margin: 0 20px 12px !important;
}

/* Promo APPLY button */
button.fe-promo__btn, .fe-promo__btn {
	padding: 10px 18px !important;
	border-radius: 8px !important;
	background: var(--fe-value-color) !important;
	color: #fff !important;
	border: none !important;
	font-family: var(--fe-font) !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	letter-spacing: .06em !important;
	box-shadow: none !important;
	text-shadow: none !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	cursor: pointer !important;
	white-space: nowrap !important;
	box-sizing: border-box !important;
}
button.fe-promo__btn:hover, .fe-promo__btn:hover { opacity: .85 !important; }

/* Coupon toggle "Add coupon" button in checkout sidebar */
button.fe-coupon-toggle__btn, .fe-coupon-toggle__btn {
	all: unset !important;
	display: flex !important;
	align-items: center !important;
	gap: 6px !important;
	width: 100% !important;
	box-sizing: border-box !important;
	padding: 12px 20px !important;
	font-family: var(--fe-font) !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	color: var(--fe-muted) !important;
	background: none !important;
	border: none !important;
	cursor: pointer !important;
	text-shadow: none !important;
	box-shadow: none !important;
}
button.fe-coupon-toggle__btn:hover, .fe-coupon-toggle__btn:hover { color: var(--fe-primary) !important; }

/* Coupon Apply button */
button.fe-coupon-apply, .fe-coupon-apply {
	all: unset !important;
	padding: 8px 14px !important;
	background: var(--fe-primary) !important;
	color: #fff !important;
	border-radius: 8px !important;
	font-family: var(--fe-font) !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	cursor: pointer !important;
	white-space: nowrap !important;
	flex-shrink: 0 !important;
	box-sizing: border-box !important;
	text-shadow: none !important;
	box-shadow: none !important;
}
button.fe-coupon-apply:hover, .fe-coupon-apply:hover { background: var(--fe-accent-hover) !important; }

/* Clamp every descendant inside the sidebar so nothing escapes the column */
.fe-sidebar-card { overflow: hidden !important; }
.fe-sidebar-card > *,
.fe-sidebar-card #order_review > *,
.fe-sidebar-card #payment > * {
	max-width: 100% !important;
	box-sizing: border-box !important;
}

/* ═══════════════════════════════════════════════════════════════════════════
   Mobile — phone breakpoint (must come after Astra overrides to win specificity)
   ═══════════════════════════════════════════════════════════════════════════ */

@media (max-width: 480px) {
	/* ── Cart table → card layout ───────────────────────────────────────── */
	.fe-cart-table thead           { display: none; }
	.fe-cart-table,
	.fe-cart-table tbody           { display: block; }

	.fe-cart-table tr.fe-cart-row {
		display: grid;
		grid-template-columns: 64px 1fr 40px;
		grid-template-rows: auto auto;
		gap: 6px 10px;
		padding: 12px;
		border-bottom: 1px solid var(--fe-card-border);
		align-items: center;
	}

	.fe-cart-table td              { padding: 0; border: none; vertical-align: middle; }

	/* Cell placement */
	.fe-col-prev  { grid-row: 1 / 3; grid-column: 1; }
	.fe-col-spec  { grid-row: 1;     grid-column: 2; }
	.fe-col-del   { grid-row: 1;     grid-column: 3; align-self: start; }
	.fe-col-qty   { grid-row: 2;     grid-column: 2; }
	.fe-col-total { grid-row: 2;     grid-column: 3; text-align: right; font-size: 14px; }

	/* ── Bigger stepper + delete (match Astra selector specificity) ─────── */
	.fe-stepper                              { height: 40px !important; }
	.fe-stepper .fe-stepper__btn,
	button.fe-stepper__btn                   { width: 40px !important; height: 40px !important; font-size: 20px !important; }
	.fe-stepper__input                       { height: 40px !important; }
	a.fe-row-del,
	.fe-row-del                              { width: 40px !important; height: 40px !important; min-width: 40px !important; }

	/* ── Cart coupon / actions stack ────────────────────────────────────── */
	.fe-cart-actions                         { flex-direction: column; align-items: stretch; }
	.fe-cart-coupon                          { flex-wrap: wrap; }
	.fe-coupon-input                         { flex: 1; min-width: 100px !important; }

	/* ── Stats bar — tighter ────────────────────────────────────────────── */
	.fe-stat__val                            { font-size: 16px; }
	.fe-cart-stats                           { gap: 12px; }
}
