/**
 * Gadget5 Luxury Cart Suite — 5-Color Master Stylesheet
 * 100% Laser-Aligned Left/Right/Top Borders & Full-Bleed Mobile UX
 */

:root {
	--g5-canvas: #FAFCFD;
	--g5-ice: #F1F6F9;
	--g5-teal: #137A7F;
	--g5-teal-dark: #0D5C60;
	--g5-slate: #243C3C;
	--g5-gold: #E5B842;
	--g5-red: #D32F2F;
	--g5-line: rgba(36, 60, 60, 0.08);
}

/* Global Reset (Removes theme container dead margins) */
body.woocommerce-cart {
	background: var(--g5-canvas) !important;
	color: var(--g5-slate);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
body.woocommerce-cart thead,
body.woocommerce-cart .page-title,
body.woocommerce-cart .entry-header { display: none !important; }

body.woocommerce-cart .site-content,
body.woocommerce-cart .content-area,
body.woocommerce-cart #primary,
body.woocommerce-cart .site-main,
body.woocommerce-cart article,
body.woocommerce-cart .inside-article,
body.woocommerce-cart .entry-content {
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
}

/* Outer Container */
.woocommerce-cart .woocommerce,
.g5c-wrap {
	max-width: 1240px !important;
	width: 100% !important;
	margin: 15px auto 40px !important;
	padding: 0 16px !important;
	box-sizing: border-box !important;
}

/* Toolbar Base */
.g5-cart-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 20px;
	background: #FFFFFF;
	border: 1px solid rgba(19, 122, 127, 0.2);
	border-radius: 18px;
	box-shadow: 0 4px 18px rgba(36, 60, 60, 0.04);
}
.g5-tb-badge { background: var(--g5-gold); color: #172828; font-weight: 850; border-radius: 999px; text-transform: uppercase; white-space: nowrap; }
.g5-tb-info strong { color: var(--g5-slate); font-weight: 750; }

.g5-select-all-btn { display: inline-flex; align-items: center; cursor: pointer; position: relative; white-space: nowrap; }
.g5-select-all-btn input, .g5-row-chk input { position: absolute; opacity: 0; inset: 0; cursor: pointer; z-index: 2; }
.g5-check-box { border: 2px solid rgba(36,60,60,0.28); background: #FFF; display: grid; place-items: center; transition: all .15s ease; }
.g5-check-box:after { content: ""; border-left: 2px solid #FFF; border-bottom: 2px solid #FFF; transform: rotate(-45deg); opacity: 0; }
input:checked + .g5-check-box { background: var(--g5-teal); border-color: var(--g5-teal); }
input:checked + .g5-check-box:after { opacity: 1; }

/* ================= DESKTOP ( ≥ 900px ) 100% LASER ALIGNED 2-COLUMN LAYOUT ================= */
@media (min-width: 900px) {
	.woocommerce-cart .woocommerce,
	.g5c-wrap {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) 380px !important;
		column-gap: 30px !important;
		row-gap: 16px !important;
		align-items: start !important;
		max-width: 1240px !important;
		width: 100% !important;
		margin: 20px auto 50px !important;
		padding: 0 16px !important;
		box-sizing: border-box !important;
	}

	/* 1. Left & Right Vertical Flush Alignment for Header & Rewards */
	.woocommerce-cart .woocommerce > *:not(.woocommerce-cart-form):not(.cart-collaterals):not(.g5c-summary):not(.g5c-form),
	.g5-cart-toolbar,
	.delivery-reward,
	.g5-delivery-reward,
	.woocommerce-notices-wrapper {
		grid-column: 1 / -1 !important;
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 0 16px !important;
		box-sizing: border-box !important;
	}

	.g5-cart-toolbar {
		padding: 16px 22px !important;
		border-radius: 18px !important;
	}
	.g5-tb-info { display: flex !important; align-items: center !important; gap: 12px !important; }
	.g5-tb-badge { font-size: 9px !important; padding: 4px 10px !important; letter-spacing: .06em !important; }
	.g5-tb-info strong { font-size: 16px !important; }
	.g5-select-all-btn { gap: 8px !important; font-size: 13.5px !important; }
	.g5-check-box { width: 22px !important; height: 22px !important; border-radius: 7px !important; }
	.g5-check-box:after { width: 9px !important; height: 5px !important; }

	/* 2. Column 1: Left Form Starts Exactly at Row 0 */
	.woocommerce-cart .woocommerce-cart-form,
	.woocommerce-cart .g5c-form {
		grid-column: 1 !important;
		width: 100% !important;
		min-width: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		border: 0 !important;
	}
	.woocommerce-cart-form table.shop_table,
	.g5c-items {
		margin: 0 !important;
		padding: 0 !important;
		border: 0 !important;
	}
	.woocommerce-cart-form tbody {
		display: flex !important;
		flex-direction: column !important;
		gap: 16px !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	/* 3. Horizontal Top-Level Laser Alignment */
	.woocommerce-cart-form tr.cart_item:first-child,
	.g5c-row:first-child {
		margin-top: 0 !important;
	}

	.woocommerce-cart .cart-collaterals,
	.woocommerce-cart .g5c-summary {
		grid-column: 2 !important;
		width: 380px !important;
		max-width: 380px !important;
		position: sticky !important;
		top: 24px !important;
		margin: 0 !important;
		align-self: start !important;
	}

	/* Product Card: Spacious & Wide */
	.woocommerce-cart-form tr.cart_item,
	.g5c-row {
		position: relative !important;
		display: grid !important;
		grid-template-columns: 96px minmax(0, 1fr) !important;
		grid-template-areas:
			"thumb info"
			"thumb btm" !important;
		column-gap: 22px !important;
		row-gap: 12px !important;
		align-items: center !important;
		padding: 20px 24px 18px !important;
		background: #FFFFFF !important;
		border: 1px solid var(--g5-line) !important;
		border-radius: 22px !important;
		box-shadow: 0 4px 18px rgba(36, 60, 60, 0.04) !important;
		box-sizing: border-box !important;
		transition: transform 0.2s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s ease, border-color 0.2s ease !important;
	}

	.woocommerce-cart-form tr.cart_item:hover,
	.g5c-row:hover {
		transform: translateY(-2px);
		box-shadow: 0 10px 28px rgba(19, 122, 127, 0.10) !important;
		border-color: rgba(19, 122, 127, 0.25) !important;
	}

	.woocommerce-cart-form td.product-thumbnail,
	.g5c-thumb {
		grid-area: thumb !important;
		width: 96px !important; height: 96px !important;
		min-width: 96px !important; max-width: 96px !important;
	}
	.woocommerce-cart-form td.product-thumbnail img,
	.g5c-thumb img {
		width: 96px !important; height: 96px !important;
		border-radius: 16px !important; object-fit: cover !important;
		background: var(--g5-ice) !important; display: block !important;
	}

	.g5-item-details-wrap,
	.g5c-info {
		grid-area: info !important;
		min-width: 0 !important;
		padding: 0 !important;
		padding-right: 48px !important;
		display: flex !important;
		flex-direction: column !important;
		gap: 4px !important;
	}

	.g5-bottom-controls-row {
		grid-area: btm !important;
		display: flex !important;
		align-items: center !important;
		justify-content: space-between !important;
		width: 100% !important;
		padding-right: 48px !important;
	}
}

/* ================= MOBILE ( < 900px ) 95% FULL-BLEED ZERO-GAP MASTER LAYOUT ================= */
@media (max-width: 899px) {
	.woocommerce-cart .woocommerce,
	.g5c-wrap {
		width: 100% !important;
		max-width: 100% !important;
		margin: 4px auto 40px !important;
		padding: 0 8px !important;
		box-sizing: border-box !important;
		display: flex !important;
		flex-direction: column !important;
		gap: 10px !important;
	}

	.g5-cart-toolbar {
		padding: 12px 14px !important;
		border-radius: 16px !important;
		margin: 0 !important;
		gap: 10px !important;
	}
	.g5-tb-info {
		display: flex !important;
		flex-direction: column !important;
		align-items: flex-start !important;
		gap: 3px !important;
		min-width: 0 !important;
		flex: 1 1 auto !important;
	}
	.g5-tb-badge {
		font-size: 8px !important;
		padding: 2px 7px !important;
		letter-spacing: .05em !important;
		display: inline-block !important;
	}
	.g5-tb-info strong {
		font-size: 13.5px !important;
		color: var(--g5-slate) !important;
		line-height: 1.25 !important;
	}

	.g5-select-all-btn {
		gap: 6px !important;
		font-size: 12px !important;
		color: var(--g5-slate) !important;
		flex-shrink: 0 !important;
		background: #F1F6F9 !important;
		padding: 7px 11px !important;
		border-radius: 999px !important;
		border: 1px solid rgba(36, 60, 60, 0.08) !important;
	}
	.g5-check-box {
		width: 17px !important;
		height: 17px !important;
		border-radius: 5px !important;
	}
	.g5-check-box:after {
		width: 7px !important;
		height: 4px !important;
	}

	/* Mobile Product Card */
	.woocommerce-cart-form tr.cart_item,
	.g5c-row {
		position: relative !important;
		display: grid !important;
		grid-template-columns: 80px minmax(0, 1fr) !important;
		grid-template-areas:
			"thumb info"
			"btm btm" !important;
		column-gap: 14px !important;
		row-gap: 10px !important;
		align-items: center !important;
		padding: 14px 14px 12px !important;
		background: #FFFFFF !important;
		border: 1px solid var(--g5-line) !important;
		border-radius: 18px !important;
		box-shadow: 0 3px 14px rgba(36, 60, 60, 0.04) !important;
		width: 100% !important;
		box-sizing: border-box !important;
		margin-bottom: 10px !important;
	}

	.woocommerce-cart-form td.product-thumbnail,
	.g5c-thumb {
		grid-area: thumb !important;
		width: 80px !important; height: 80px !important;
		min-width: 80px !important; max-width: 80px !important;
	}
	.woocommerce-cart-form td.product-thumbnail img,
	.g5c-thumb img {
		width: 80px !important; height: 80px !important;
		border-radius: 12px !important; object-fit: cover !important;
		background: var(--g5-ice) !important; display: block !important;
	}

	.g5-item-details-wrap,
	.g5c-info {
		grid-area: info !important;
		min-width: 0 !important;
		padding: 0 !important;
		padding-right: 38px !important;
		display: flex !important;
		flex-direction: column !important;
		gap: 3px !important;
	}

	.g5-bottom-controls-row {
		grid-area: btm !important;
		display: flex !important;
		align-items: center !important;
		justify-content: space-between !important;
		width: 100% !important;
		padding-top: 8px !important;
		border-top: 1px solid rgba(36, 60, 60, 0.06) !important;
		margin-top: 2px !important;
		padding-right: 0 !important;
	}

	.cart-collaterals,
	.g5c-summary {
		width: 100% !important;
		max-width: 100% !important;
		position: static !important;
		margin-top: 6px !important;
		box-sizing: border-box !important;
	}
}

/* Shared Product Typography */
.woocommerce-cart-form td.product-name,
.g5c-name {
	border: 0 !important;
	padding: 0 !important;
	font-size: 15px !important;
	font-weight: 750 !important;
	color: var(--g5-slate) !important;
	line-height: 1.35 !important;
}
.woocommerce-cart-form td.product-name a,
.g5c-name a { color: var(--g5-slate) !important; text-decoration: none !important; }

/* Single Unit Price */
.woocommerce-cart-form td.product-price, .g5c-price { display: none !important; }
.g5-unit-price { font-size: 13px !important; font-weight: 650 !important; color: #5F7474 !important; margin-top: 2px !important; display: block !important; }
.g5-unit-price:before, .g5-subtotal-val:before, td.product-subtotal:before, td.product-price:before { display: none !important; content: "" !important; }

/* 3D Apple-Style Tactile Stepper Pill */
.g5-3d-stepper {
	display: inline-flex !important;
	align-items: center !important;
	gap: 4px !important;
	height: 40px !important;
	padding: 3px 4px !important;
	border: 1px solid rgba(36, 60, 60, 0.12) !important;
	border-radius: 999px !important;
	background: var(--g5-ice) !important;
	box-shadow: inset 0 1px 3px rgba(36, 60, 60, 0.05) !important;
}
.g5-3d-stepper .g5-step-btn {
	width: 32px !important;
	height: 32px !important;
	border: 0 !important;
	border-radius: 50% !important;
	background: #FFFFFF !important;
	color: var(--g5-slate) !important;
	font-size: 17px !important;
	font-weight: 900 !important;
	line-height: 1 !important;
	cursor: pointer !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	box-shadow: 0 2px 4px rgba(36, 60, 60, 0.10), inset 0 -1px 0 rgba(0, 0, 0, 0.08) !important;
	transition: transform 0.12s ease, background-color 0.15s ease !important;
}
.g5-3d-stepper .g5-step-btn:hover { background: #E8F4F5 !important; color: var(--g5-teal) !important; transform: scale(1.06); }
.g5-3d-stepper .g5-step-btn:active { transform: scale(0.92) !important; box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.15) !important; }

.g5-qty-num-box {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-width: 36px !important;
	height: 30px !important;
	padding: 0 4px !important;
	background: #FFFFFF !important;
	border: 1px solid rgba(36, 60, 60, 0.10) !important;
	border-radius: 8px !important;
	box-shadow: 0 1px 2px rgba(36, 60, 60, 0.04) !important;
}
.g5-qty-num-box input.qty {
	width: 30px !important;
	height: 26px !important;
	border: 0 !important;
	background: transparent !important;
	text-align: center !important;
	font-weight: 850 !important;
	font-size: 14.5px !important;
	color: var(--g5-slate) !important;
	margin: 0 !important;
	padding: 0 !important;
	-moz-appearance: textfield !important;
	pointer-events: none !important;
}
.g5-qty-num-box input.qty::-webkit-inner-spin-button,
.g5-qty-num-box input.qty::-webkit-outer-spin-button { display: none !important; -webkit-appearance: none !important; margin: 0 !important; }

/* Subtotal Value */
.g5-subtotal-val {
	font-size: 16.5px !important;
	font-weight: 850 !important;
	color: var(--g5-teal) !important;
	border: 0 !important;
	padding: 0 !important;
	text-align: right !important;
}

/* Professional Centered SVG Squircle Delete Button */
.g5-squircle-del {
	position: absolute !important;
	top: 14px !important;
	right: 14px !important;
	width: 34px !important;
	height: 34px !important;
	min-width: 34px !important;
	min-height: 34px !important;
	border-radius: 10px !important;
	background: #FFF1F1 !important;
	border: 1px solid rgba(211, 47, 47, 0.22) !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	cursor: pointer !important;
	padding: 0 !important;
	margin: 0 !important;
	text-decoration: none !important;
	box-shadow: 0 2px 5px rgba(211, 47, 47, 0.08) !important;
	transition: transform 0.15s ease, background-color 0.15s ease !important;
}
.g5-squircle-del:hover { background: #FFE2E2 !important; transform: scale(1.08) !important; }
.g5-squircle-del:active { transform: scale(0.92) !important; }
.g5-squircle-del svg { display: block !important; width: 13px !important; height: 13px !important; pointer-events: none !important; }

/* Selection Pill */
.g5-row-chk {
	position: absolute !important;
	top: 8px !important;
	left: 8px !important;
	z-index: 5 !important;
	background: rgba(255,255,255,0.96) !important;
	border: 1px solid var(--g5-line) !important;
	border-radius: 999px !important;
	padding: 2px 7px !important;
	display: flex !important;
	align-items: center !important;
	gap: 4px !important;
	box-shadow: 0 2px 8px rgba(36,60,60,0.06) !important;
}
.g5-row-chk-txt { font-size: 8px !important; font-weight: 800 !important; color: var(--g5-slate) !important; }

tr.cart_item.g5-dimmed, .g5c-row.g5-dimmed { opacity: 0.45 !important; background: #F8FAFB !important; }
tr.cart_item.g5-dimmed .g5-3d-stepper, .g5c-row.g5-dimmed .g5-3d-stepper { pointer-events: none !important; opacity: 0.5 !important; }

.woocommerce-cart-form td.actions, .g5c-actions, .g5c-buy-now-wrap,
.g5c-qty-wrap, .g5c-remove, .g5c-subtotal { display: none !important; }

/* ================= LUXURY POLISHED ORDER SUMMARY CARD ================= */
.cart-collaterals,
.g5c-summary {
	background: linear-gradient(180deg, #FFFFFF 0%, #FAFCFD 100%) !important;
	border: 1px solid rgba(19, 122, 127, 0.24) !important;
	border-radius: 24px !important;
	padding: 26px 24px !important;
	box-shadow: 0 16px 44px rgba(36, 60, 60, 0.07), 0 2px 6px rgba(36, 60, 60, 0.03), inset 0 1px 0 rgba(255, 255, 255, 0.95) !important;
	box-sizing: border-box !important;
	position: relative !important;
}
.cart_totals h2, .g5c-summary h2 {
	font-size: 18.5px !important;
	font-weight: 800 !important;
	color: var(--g5-slate) !important;
	margin: 0 0 18px !important;
	letter-spacing: -0.01em !important;
}
.cart_totals table.shop_table, .g5c-summary table { display: none !important; }
.cart_totals, .g5c-summary-inner, #g5c-totals { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; margin: 0 !important; }

.g5-summary-box { display: grid; gap: 14px; }
.g5-sum-row { display: flex; align-items: center; justify-content: space-between; font-size: 14.5px; font-weight: 650; color: var(--g5-slate); }
.g5-sum-row.is-total {
	border-top: 1px solid var(--g5-line);
	padding-top: 16px;
	margin-top: 4px;
}
.g5-sum-row.is-total span { font-size: 16.5px; font-weight: 800; }
.g5-sum-row.is-total strong {
	font-size: 26px;
	font-weight: 850;
	color: var(--g5-teal);
	letter-spacing: -0.02em;
}

/* Luxury Emerald Free Delivery Badge */
.g5-free-badge {
	display: inline-flex !important;
	align-items: center !important;
	gap: 4px !important;
	background: #E8F6F0 !important;
	color: #0E6245 !important;
	font-size: 11.5px !important;
	font-weight: 850 !important;
	padding: 3px 8px !important;
	border-radius: 999px !important;
	border: 1px solid rgba(14, 98, 69, 0.15) !important;
}
.g5-del-note { font-size: 11.5px; color: #5F7474; text-align: right; margin-top: -6px; }

/* Signature 3D Shimmer Checkout CTA */
.g5-checkout-btn {
	position: relative !important;
	isolation: isolate !important;
	overflow: hidden !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 8px !important;
	width: 100% !important;
	min-height: 56px !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: linear-gradient(135deg, #137A7F 0%, #0D5C60 100%) !important;
	box-shadow: 0 14px 32px rgba(19, 122, 127, 0.32), inset 0 1px 0 rgba(255, 255, 255, 0.45) !important;
	color: #FAFCFD !important;
	font-size: 15.5px !important;
	font-weight: 800 !important;
	cursor: pointer !important;
	margin-top: 18px !important;
	text-decoration: none !important;
	transition: transform 0.2s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s ease !important;
}
.g5-checkout-btn:hover {
	transform: translateY(-2px);
	box-shadow: 0 18px 38px rgba(19, 122, 127, 0.40), inset 0 1px 0 rgba(255, 255, 255, 0.60) !important;
}
.g5-checkout-btn:active {
	transform: scale(0.985);
}
.g5-checkout-btn:after {
	content: "";
	position: absolute;
	top: 0; left: -120%;
	width: 60%; height: 100%;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.28), transparent);
	transform: skewX(-25deg);
	transition: left 0.75s ease;
}
.g5-checkout-btn:hover:after {
	left: 140%;
}

.g5-chk-note { font-size: 11px; color: #5F7474; text-align: center; margin-top: 8px; }

/* Trust Badge Strip */
.g5-trust-strip {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 12px !important;
	margin-top: 14px !important;
	padding-top: 12px !important;
	border-top: 1px dashed rgba(36, 60, 60, 0.10) !important;
	font-size: 11px !important;
	color: #5F7474 !important;
	font-weight: 650 !important;
}